:root{background:#f7f7f4;color:#1c2321;font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif;--z-surface: #ffffff;--z-surface-soft: #f8faf8;--z-border-soft: #e3e8e3;--z-text: #1c2321;--z-text-muted: #65736f}:root[data-theme=dark]{background:#111412;color:#f4f6f3;color-scheme:dark;--z-surface: #171c18;--z-surface-soft: #1d241f;--z-border-soft: #303a34;--z-text: #f4f6f3;--z-text-muted: #aab4af}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;max-width:100%;min-width:0;overflow-x:hidden;padding:0;width:100%}body{background:#f7f7f4}:root[data-theme=dark] body{background:#111412}button{align-items:center;background:#fff;border:1px solid #d8ddd8;border-radius:8px;color:#1c2321;cursor:pointer;display:inline-flex;font:inherit;gap:8px;min-height:40px;padding:0 14px}:root[data-theme=dark] button{background:#1d231f;border-color:#333c36;color:#f4f6f3}:root[data-theme=dark] button:disabled{opacity:.45}button:disabled{cursor:not-allowed;opacity:.5}.album-app{background:#f7f7f4;margin:0 auto;max-width:980px;min-width:0;min-height:100vh;padding:18px 22px 44px;width:100%}:root[data-theme=dark] .album-app{background:#111412;color:#f4f6f3}.app-header{align-items:center;display:flex;gap:16px;justify-content:space-between;margin:4px 0 24px;position:relative}.nav-left,.nav-actions{align-items:center;display:flex;gap:10px;min-width:0}h1{font-size:24px;line-height:1.2;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-icon,.icon,.add-button{justify-content:center;min-height:42px;padding:0;width:42px}.nav-icon{border-radius:999px}.admin-menu,.upload-menu{background:#fff;border:1px solid #d8ddd8;border-radius:8px;box-shadow:0 18px 48px #1c232124;display:grid;gap:8px;max-width:calc(100vw - 32px);min-width:min(220px,calc(100vw - 32px));padding:10px;position:absolute;right:0;top:calc(100% + 8px);z-index:20;width:min(360px,calc(100vw - 32px))}.menu-backdrop{background:transparent;border:0;color:transparent;cursor:default;top:72px;right:0;bottom:0;left:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;position:fixed;padding:0;touch-action:pan-y;z-index:15}:root[data-theme=dark] .admin-menu,:root[data-theme=dark] .upload-menu{background:#191f1b;border-color:#313b35;box-shadow:0 18px 48px #00000061}.admin-status{align-items:center;color:#196237;display:inline-flex;gap:8px;padding:6px 4px}.admin-toggle{align-items:center;display:inline-flex;gap:8px;padding:6px 4px}.admin-toggle input{block-size:18px;inline-size:18px}.menu-danger{color:#a33131}.primary{background:#1f6f5f;border-color:#1f6f5f;color:#fff}:root[data-theme=dark] .primary{background:#27a77e;border-color:#27a77e;color:#06110d}.searchbar{align-items:center;background:#fff;border:1px solid #d8ddd8;border-radius:999px;display:flex;gap:8px;margin:-8px 0 18px;padding:4px 8px 4px 14px}:root[data-theme=dark] .searchbar{background:#191f1b;border-color:#313b35}:root[data-theme=dark] .searchbar input,:root[data-theme=dark] textarea{background:#191f1b;color:#f4f6f3}:root[data-theme=dark] .searchbar input::placeholder,:root[data-theme=dark] textarea::placeholder{color:#7d8983}.searchbar input{border:0;flex:1;font:inherit;min-height:36px;min-width:0;outline:0}:root[data-theme=dark] h1,:root[data-theme=dark] h2,:root[data-theme=dark] strong,:root[data-theme=dark] .trip-list-row,:root[data-theme=dark] .trip-list-row strong,:root[data-theme=dark] .trip-main-row strong{color:#f4f6f3}:root[data-theme=dark] .trip-list-row span,:root[data-theme=dark] .trip-main-row span,:root[data-theme=dark] .trip-stats-row,:root[data-theme=dark] .editor-hint,:root[data-theme=dark] .home-copy p,:root[data-theme=dark] .overview-copy p,:root[data-theme=dark] .day-hero p,:root[data-theme=dark] .trip-info p,:root[data-theme=dark] .trip-info small,:root[data-theme=dark] .day-info p,:root[data-theme=dark] .day-info span,:root[data-theme=dark] .day-info small,:root[data-theme=dark] .day-info em,:root[data-theme=dark] .meta p,:root[data-theme=dark] .section-heading span{color:#aeb8b2}:root[data-theme=dark] .notice{background:#173624;color:#a9e8bf}:root[data-theme=dark] .error{background:#3a1d19;color:#ffb5a8}:root[data-theme=dark] .trip-card{background:#1b241f;box-shadow:0 18px 46px #00000042}:root[data-theme=dark] .trip-cover,:root[data-theme=dark] .trip-hero-cover,:root[data-theme=dark] .day-cover,:root[data-theme=dark] .day-detail-cover,:root[data-theme=dark] .preview{background:#252d28}:root[data-theme=dark] .new-trip-card,:root[data-theme=dark] .daily-date-bar,:root[data-theme=dark] .day-picker,:root[data-theme=dark] .calendar-field,:root[data-theme=dark] .daily-route-bar,:root[data-theme=dark] .media-switcher,:root[data-theme=dark] .media-switcher button,:root[data-theme=dark] .daily-media-item,:root[data-theme=dark] .route-detail-page section,:root[data-theme=dark] .day-detail,:root[data-theme=dark] .day-card,:root[data-theme=dark] .info-card,:root[data-theme=dark] .story-section,:root[data-theme=dark] .route-section,:root[data-theme=dark] .note-sheet,:root[data-theme=dark] .empty{background:#191f1b;border-color:#303a34;color:#f4f6f3}:root[data-theme=dark] .calendar-date-list button,:root[data-theme=dark] .media-actions button,:root[data-theme=dark] .voice-play{background:#202722;border-color:#343f38;color:#f4f6f3}:root[data-theme=dark] .calendar-date-list button.active,:root[data-theme=dark] .media-switcher button.active{background:#18392b;border-color:#2da176;color:#b9f2d3}:root[data-theme=dark] .daily-note,:root[data-theme=dark] .route-detail-page p,:root[data-theme=dark] .story-section p,:root[data-theme=dark] .day-detail-block p{color:#d5ddd8}:root[data-theme=dark] .danger{color:#ffb3aa}.notice,.error{border-radius:8px;margin:12px 0;padding:10px 12px}.notice{background:#e8f4ec;color:#235c38}.error{background:#fae7e2;color:#8d2b1c}.reauthorize-drive-button{background:#b83b2d;border:0;border-radius:10px;color:#fff;cursor:pointer;display:block;font-size:16px;margin:-4px 0 14px;max-width:100%;padding:11px 16px}.reauthorize-drive-button:disabled{cursor:wait;opacity:.65}:root[data-theme=dark] .reauthorize-drive-button{background:#d26052;color:#190b08}.notice-toast{align-items:center;border-radius:12px;box-shadow:0 12px 32px #1c23211f;display:inline-flex;gap:12px;left:50%;max-width:min(640px,calc(100vw - 32px));min-width:0;padding:12px 14px;position:fixed;top:72px;transform:translate(-50%);transition:opacity .18s ease,transform .18s ease;z-index:80;overflow-wrap:anywhere;width:max-content}.notice-toast.success{background:#e8f4ec;color:#235c38}.notice-toast.error{background:#fae7e2;color:#8d2b1c}.notice-toast.closing{opacity:0;transform:translate(-50%) translateY(-4px)}.notice-toast-close{align-items:center;border:0;border-radius:999px;background:transparent;color:inherit;display:inline-flex;justify-content:center;min-height:28px;min-width:28px;padding:0}.notice-toast-close:hover{background:#0000000f}:root[data-theme=dark] .notice-toast.success{background:#173624;color:#a9e8bf}:root[data-theme=dark] .notice-toast.error{background:#3a1d19;color:#ffb5a8}:root[data-theme=dark] .notice-toast-close:hover{background:#ffffff14}.home-screen,.trip-screen{display:grid;gap:16px;width:100%}.home-copy{max-width:680px}.home-copy p,.overview-copy p,.day-hero p{color:#68746f;font-size:14px;letter-spacing:.02em;margin:0 0 8px}.home-copy h2{font-size:clamp(28px,4vw,48px);line-height:1.08;margin:0;max-width:760px}.trip-grid,.day-grid,.media-grid{display:grid}.trip-grid{gap:22px;grid-template-columns:minmax(0,1fr);width:100%}.trip-card{align-items:stretch;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;border:0;border-radius:20px;box-shadow:0 18px 46px #1d2b2617;display:grid;grid-template-columns:minmax(0,1fr);gap:0;justify-items:stretch;min-height:0;overflow:hidden;padding:16px;text-align:left;width:100%}.trip-list-row{align-items:baseline;color:#17201c;display:flex;flex-wrap:wrap;gap:9px;line-height:1.35;padding:0 2px}.trip-list-row span{color:#5e6a65;font-size:15px}.trip-list-row strong{font-size:18px;font-weight:800}.trip-cover,.trip-hero-cover,.day-cover,.day-detail-cover,.preview{background:#e9ede8;overflow:hidden}.trip-cover{border-radius:16px;display:block;min-width:0;position:relative;width:100%}.trip-cover:before{background-image:var(--trip-cover-src);background-position:center;background-size:cover;content:"";filter:blur(18px);top:-18px;right:-18px;bottom:-18px;left:-18px;opacity:.42;position:absolute;transform:scale(1.05)}.new-trip-card{background:transparent;border:1px dashed #bfc9c3;border-radius:8px;color:#4f5c57;justify-content:center;min-height:52px;width:100%}.trip-cover img,.trip-hero-cover img,.day-cover img,.day-detail-cover img,.preview img,.preview video{display:block;height:100%;image-orientation:from-image;object-fit:cover;width:100%}.trip-cover img{height:auto;object-fit:contain;position:relative;z-index:1}.trip-card-body{display:grid;gap:8px;padding:14px 2px 0}.trip-main-row{align-items:center;display:flex;flex-wrap:wrap;gap:9px;line-height:1.4}.trip-main-row strong{color:#17201c;font-size:20px;font-weight:850;line-height:1.25}.trip-main-row span{color:#69756f;font-size:14px}.trip-stats-row{align-items:center;color:#5e6a65;display:flex;flex-wrap:wrap;font-size:14px;gap:14px;line-height:1.4;padding:0 2px 2px}.trip-cover>span,.trip-hero-cover span,.day-cover span,.day-detail-cover span{align-items:center;color:#6a746f;display:flex;font-size:30px;font-weight:700;height:100%;justify-content:center}.trip-info,.day-info{align-content:center;display:grid;gap:8px;padding:20px}.trip-info p,.trip-info small,.day-info p,.day-info span,.day-info small,.day-info em,.meta p{color:#65716d;margin:0}.trip-info h2,.day-info h2,.overview-copy h2,.day-hero h2,.section-heading h2{margin:0}.trip-info h2{font-size:clamp(34px,7vw,58px);line-height:1}.trip-hero{display:grid;gap:14px}.trip-hero-cover{aspect-ratio:4 / 3;border-radius:8px}.trip-hero p,.trip-hero span{color:#65716d;margin:0}.trip-hero h2{font-size:clamp(42px,8vw,72px);line-height:.95;margin:0}.info-card-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.info-card{background:#fff;border:1px solid rgba(31,38,35,.06);border-radius:8px;display:grid;gap:8px;min-height:104px;padding:16px}.info-card.wide{grid-column:span 2}.info-card span,.story-section h2,.route-section h2,.day-detail-block>span{color:#68746f;font-size:14px;font-weight:600}.info-card strong{color:#17201c;font-size:20px;line-height:1.25}.story-section,.route-section,.day-detail{background:#fff;border-radius:8px;padding:22px}.story-section h2,.route-section h2{margin:0 0 12px}.story-section p{color:#2f3b36;font-size:17px;line-height:1.8;margin:0}.route-stack{display:grid;gap:0}.route-stop{background:transparent;border:0;border-radius:0;display:grid;grid-template-columns:48px minmax(0,1fr);min-height:54px;padding:0;position:relative;text-align:left}.route-stop:not(:last-child):after{background:#cfd8d2;content:"";height:24px;left:15px;position:absolute;top:39px;width:2px}.route-stop span{align-items:center;background:#eef3ef;border-radius:999px;color:#50605a;display:flex;font-size:12px;height:32px;justify-content:center;width:32px}.route-stop strong{align-self:center;font-size:18px}.section-heading{align-items:end;display:flex;justify-content:space-between;gap:16px;margin-top:4px}.section-heading h2{font-size:24px}.section-heading span{color:#68746f}.day-grid{gap:14px;grid-template-columns:1fr}.day-card{align-items:stretch;background:#fff;border:1px solid rgba(31,38,35,.08);border-radius:8px;display:grid;grid-template-columns:220px minmax(0,1fr);overflow:hidden;padding:0;text-align:left}.day-card.empty-day{min-height:0}.day-cover{aspect-ratio:4 / 3}.day-info h2{font-size:22px}.day-info em{font-style:normal;line-height:1.5}.day-info b{color:#1f332c;font-size:14px}.day-detail{display:grid;gap:22px}.day-detail-cover{aspect-ratio:4 / 3;border-radius:8px}.day-detail-copy{display:grid;gap:18px}.day-detail-copy>p{color:#65716d;margin:0}.day-detail-copy h2{font-size:clamp(34px,7vw,58px);line-height:1;margin:0}.day-detail-block{display:grid;gap:8px}.day-detail-block strong{font-size:18px}.day-detail-block p{color:#34413c;line-height:1.7;margin:0}.day-counts{background:#fff;display:flex;gap:18px;flex-wrap:wrap}.day-counts strong{background:#f2f4f0;border-radius:8px;display:grid;font-size:24px;line-height:1;min-width:86px;padding:12px}.day-counts span{color:#6a746f;font-size:12px;font-weight:500;margin-top:6px}.mini-map{background:linear-gradient(135deg,#eef4f1,#f8f5ed);border:1px solid rgba(31,38,35,.08);border-radius:8px;color:#1f332c;font-weight:700;line-height:1.5;padding:18px}.media-heading{margin-top:22px}.daily-page{display:grid;gap:12px;touch-action:pan-y}.daily-date-shell{position:relative}.daily-date-bar,.daily-route-bar{background:transparent;border:0;border-radius:0;min-height:0;padding:0;width:100%}.daily-date-bar{align-items:baseline;color:#17201c;display:flex;font-size:20px;gap:8px;justify-content:flex-start}.daily-date-bar strong,.daily-date-bar time{font-weight:800}.daily-date-bar span{color:#9aa39e}.day-picker{background:#fffffff5;border:1px solid rgba(31,38,35,.08);border-radius:8px;box-shadow:0 18px 50px #2329261f;display:grid;gap:10px;left:0;max-width:calc(100vw - 32px);min-width:min(260px,calc(100vw - 32px));padding:12px;position:absolute;top:calc(100% + 8px);z-index:15;width:min(420px,calc(100vw - 32px))}.calendar-field{display:grid;gap:6px}.calendar-field span{color:#68746f;font-size:13px;font-weight:700}.calendar-field input{border:1px solid #d4ddd7;border-radius:8px;font:inherit;min-height:40px;padding:0 10px}.day-picker-caption{color:#68746f;font-size:12px;font-weight:700}.calendar-date-list{display:grid;gap:6px;grid-template-columns:repeat(3,minmax(0,1fr));max-height:min(58vh,520px);overflow:auto}.day-picker button{border:0;display:grid;gap:2px;justify-content:center}.day-picker button time{color:#68746f;font-size:12px}.day-picker button.active{background:#eef4f1}.daily-route-bar{color:#5d6a64;display:block;font-size:15px;line-height:1.5;text-align:left}.route-detail{background:#fff;border:1px solid rgba(31,38,35,.08);border-radius:8px;display:grid;gap:8px;padding:16px}.route-detail h2,.route-detail p{margin:0}.route-detail h2{font-size:18px}.route-detail p{color:#4e5a55;line-height:1.65}.route-detail-page{display:grid;gap:14px}.route-detail-page>p{color:#68746f;margin:0}.route-detail-page h2{font-size:clamp(28px,7vw,48px);line-height:1.08;margin:0 0 4px}.route-detail-page section{background:#fff;border:1px solid rgba(31,38,35,.06);border-radius:8px;display:grid;gap:8px;padding:16px}.route-detail-card{gap:6px}.route-detail-page span{color:#68746f;font-size:14px;font-weight:700}.route-detail-page strong{font-size:18px}.route-detail-page p{color:#34413c;line-height:1.7;margin:0}.media-switcher{align-items:center;display:flex;gap:8px;flex-wrap:wrap;overflow-x:hidden;padding:4px 0 8px}.media-switcher button{background:transparent;border:0;border-radius:999px;color:#66736d;flex:0 0 auto;min-height:34px;padding:0 12px}.media-switcher button.active{background:#17201c;color:#fff}.daily-timeline{display:grid;gap:18px}.daily-media-item{background:transparent;display:grid;gap:0;min-width:0}.daily-timeline .preview{aspect-ratio:auto;background:transparent;border-radius:8px;display:block;overflow:hidden}.daily-timeline .image-preview-button{display:block;height:auto;width:100%}.daily-timeline .image-preview-button img,.daily-timeline .preview img{display:block;height:auto;object-fit:contain;width:100%}.daily-timeline .video-preview-shell,.daily-timeline .video-preview-shell video{display:block;height:auto;width:100%}.daily-note{color:#2f3b36;font-size:16px;line-height:1.65;margin:0}.daily-caption{align-items:center;display:flex;min-height:44px;padding:8px 2px 0}.admin-caption{align-items:stretch;flex-direction:column;gap:8px;min-height:48px}.media-actions{align-items:center;display:grid;gap:8px;grid-template-columns:minmax(0,auto) minmax(0,1fr) minmax(0,auto);min-width:0;width:100%}.media-actions button{background:transparent;border:0;color:#52605a;min-height:38px;padding:0 6px;white-space:nowrap}.media-actions button:nth-child(2){justify-content:center}.media-actions .danger{color:#9b2b22;justify-content:flex-end}.voice-play{background:transparent;border:0;color:#26332e;justify-content:flex-start;min-height:34px;padding:0 2px}.voice-audio{display:block;max-width:100%;width:100%}.note-modal{align-items:end;background:#1016136b;display:flex;top:0;right:0;bottom:0;left:0;padding:18px;position:fixed;z-index:1001;max-width:100%;overflow-x:hidden;width:100%}.note-sheet{background:var(--z-surface);color:var(--z-text);border-radius:8px;box-shadow:0 24px 70px #00000038;display:grid;gap:14px;margin:0 auto;max-width:620px;min-width:0;max-height:calc(100dvh - 32px);overflow-x:hidden;padding:18px;width:100%}.editor-sheet{max-height:min(82dvh,760px);overflow-x:hidden;overflow-y:auto}.cover-sheet{max-width:680px}.cover-current{display:grid;gap:8px}.cover-current span,.cover-hint{color:var(--z-text-muted);font-size:14px;margin:0}.cover-current img{aspect-ratio:4 / 3;border-radius:8px;display:block;object-fit:cover;width:100%}.cover-choice-grid{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.cover-choice-grid button{background:transparent;border:0;border-radius:8px;min-height:0;overflow:hidden;padding:0}.cover-choice-grid img{aspect-ratio:4 / 3;display:block;object-fit:cover;width:100%}.editor-sheet label{color:var(--z-text-muted);display:grid;gap:6px;font-size:14px;font-weight:700}.editor-sheet input,.editor-sheet textarea,.editor-sheet select{border:1px solid #d8ddd8;border-radius:8px;font:inherit;min-height:42px;max-width:100%;min-width:0;padding:10px 12px;width:100%}input,textarea,select{font-size:16px;max-width:100%;min-width:0}.editor-sheet textarea{min-height:92px;resize:vertical}.editor-card{background:var(--z-surface-soft);border:1px solid var(--z-border-soft);border-radius:14px;display:grid;gap:10px;padding:14px}.editor-card input,.editor-card textarea{margin:0}.editor-field-head{align-items:center;display:flex;gap:10px;justify-content:space-between}.editor-field-head span{font-size:15px}.editor-card-actions{display:flex;gap:8px}.add-field-shell{display:grid;gap:10px}.add-field-menu{background:var(--z-surface);border:1px solid var(--z-border-soft);border-radius:14px;display:grid;gap:6px;padding:10px}.add-field-menu button{justify-content:flex-start}.editor-hint{color:var(--z-text-muted);font-size:14px;line-height:1.55;margin:0}.itinerary-input,.itinerary-export{font-family:ui-monospace,SFMono-Regular,Consolas,Microsoft YaHei,monospace;min-height:220px}.import-preview{background:#eef7f1;border-radius:8px;color:#235c38;margin:0;padding:10px 12px}.import-preview p,.route-detail-page p,.daily-route-bar,.error,.notice,.card,.note-sheet,.admin-menu,.upload-menu{max-width:100%;min-width:0;overflow-wrap:anywhere;word-break:break-word}.import-job-status{align-items:stretch;background:var(--z-surface);border:1px solid var(--z-border-soft);border-radius:8px;display:grid;gap:8px;margin:12px 0;max-width:100%;min-width:0;padding:12px;width:100%}.import-job-status>div{display:grid;gap:2px;min-width:0}.import-job-status span{color:var(--z-text-muted);overflow-wrap:anywhere}.import-job-status progress{max-width:100%;width:100%}.import-job-status button{justify-self:end}.itinerary-sheet hr{border:0;border-top:1px solid #e1e6e1;margin:4px 0;width:100%}:root[data-theme=dark] .editor-sheet label{color:var(--z-text-muted)}:root[data-theme=dark] .editor-sheet input,:root[data-theme=dark] .editor-sheet textarea,:root[data-theme=dark] .editor-sheet select{background:#111613;border-color:#303a34;color:#f4f6f3}:root[data-theme=dark] .note-sheet{background:var(--z-surface);color:var(--z-text)}:root[data-theme=dark] .editor-card{background:var(--z-surface-soft);border-color:var(--z-border-soft)}:root[data-theme=dark] .add-field-menu{background:var(--z-surface);border-color:var(--z-border-soft)}:root[data-theme=dark] .import-preview{background:#173624;color:#a9e8bf}:root[data-theme=dark] .itinerary-sheet hr{border-top-color:#303a34}.note-sheet h2{font-size:20px;margin:0}.note-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.route-detail-page p{white-space:pre-wrap}.delete-trip-sheet{gap:14px}.delete-warning{color:#a33131;font-weight:700;margin:0}.delete-list{color:#6a5a5a;margin:0;padding-left:22px}:root[data-theme=dark] .delete-list{color:#d2c7c7}.back-to-top{background:#17201cdb;border:0;border-radius:999px;bottom:22px;color:#fff;min-height:40px;padding:0 16px;position:fixed;right:22px;z-index:12}.media-grid{gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.media-grid.editing{gap:14px;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.media-tile{background:#fff;border-radius:8px;min-width:0;overflow:hidden;position:relative}.media-grid.editing .media-tile{border-radius:8px}.preview{aspect-ratio:4 / 3;display:flex;width:100%}.video-preview-shell{height:100%;position:relative;width:100%}.video-preview-shell video{height:100%;left:0;object-fit:contain;position:absolute;top:0;width:100%}.video-poster-button{background:#101513;border:0;cursor:pointer;display:block;min-height:0;padding:0;position:relative;width:100%;z-index:1}.video-poster-button img{display:block;height:auto;image-orientation:from-image;object-fit:contain;width:100%}.video-poster-fallback{align-items:center;color:#dce5df;display:flex;font-size:14px;height:100%;justify-content:center;width:100%}.media-grid .video-poster-button{height:100%}.media-grid .video-poster-button img{height:100%;object-fit:cover}.video-play-button{align-items:center;background:#18211fb8;border:0;border-radius:999px;box-shadow:0 8px 24px #0000003d;cursor:pointer;display:flex;height:72px;justify-content:center;left:50%;min-height:72px;padding:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:72px;z-index:2}.video-play-button span{border-bottom:15px solid transparent;border-left:22px solid #fff;border-top:15px solid transparent;display:block;height:0;margin-left:5px;width:0}.image-preview-button{background:transparent;border:0;border-radius:0;display:block;height:100%;min-height:0;padding:0;width:100%}.image-preview-button img{cursor:zoom-in}.preview-fallback{align-items:center;color:#65736f;display:flex;font-size:14px;height:100%;justify-content:center;padding:12px;text-align:center;width:100%}.meta{min-width:0}.tile-meta{align-items:flex-end;background:linear-gradient(180deg,#0000,#0000008f);bottom:0;color:#fff;display:flex;font-size:12px;gap:8px;justify-content:space-between;left:0;min-height:58px;padding:24px 10px 9px;pointer-events:none;position:absolute;right:0}.note-dot{background:#ffffff3d;border-radius:999px;padding:2px 7px}.edit-panel{background:#fff;border-top:1px solid #e1e4df;display:grid;gap:10px;padding:10px}.note{margin-top:10px}textarea{border:1px solid #cfd7d2;border-radius:8px;display:block;font:inherit;min-height:78px;padding:10px;resize:vertical;width:100%}.note div{display:flex;gap:8px;margin-top:8px}.danger{color:#9b2b22}.empty{background:#fff;border:1px dashed #c8d2cc;border-radius:8px;color:#65736f;padding:28px;text-align:center}.lightbox{align-items:center;background:#000;cursor:zoom-out;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;overflow:hidden;position:fixed;touch-action:none;-webkit-user-select:none;user-select:none;z-index:1000}.lightbox img{max-height:96vh;max-width:96vw;object-fit:contain;transform-origin:center;transition:transform 80ms linear;-webkit-user-drag:none}.lightbox-video{max-height:86vh;max-width:96vw}.lightbox-nav{background:#ffffff29;border:0;border-radius:999px;color:#fff;height:46px;justify-content:center;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:46px}.lightbox-nav.previous{left:18px}.lightbox-nav.next{right:18px;transform:translateY(-50%) rotate(180deg)}.lightbox-caption{align-items:center;bottom:0;color:#fff;display:flex;gap:10px;justify-content:center;left:0;padding:18px 18px 24px;position:absolute;right:0}.lightbox-caption button{background:#ffffff29;border:0;color:#fff;min-height:34px}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:760px){.album-app{padding:16px max(16px,env(safe-area-inset-right)) 36px max(16px,env(safe-area-inset-left))}.app-header,.home-screen,.trip-screen,.route-detail-page,.daily-page,.trip-grid,.daily-timeline{max-width:100%;min-width:0;width:100%}.note-modal{padding:16px}.note-sheet{max-height:calc(100dvh - 32px);width:100%}.admin-menu,.upload-menu{position:fixed;right:16px;top:72px}h1{font-size:21px}.trip-card,.day-card,.info-card-grid{grid-template-columns:1fr}.info-card.wide{grid-column:auto}.story-section,.route-section,.day-detail{padding:18px}.day-counts{gap:8px}.day-counts strong{flex:1;min-width:0}.media-grid{gap:4px;grid-template-columns:repeat(2,minmax(0,1fr))}.trip-hero-cover,.day-cover,.day-detail-cover{aspect-ratio:4 / 3}.preview{min-height:0}.icon{justify-self:start}}
