:root{color-scheme:light;font-family:Inter,Hiragino Sans,Yu Gothic UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-text-primary: #0f172a;--color-text-secondary: #475569;--color-text-tertiary: #64748b;--color-text-muted: #94a3b8;--color-border: #e2e8f0;--color-border-input: #cbd5e1;--color-body-bg-start: #f7fafc;--color-body-bg-end: #eef3f9;--color-app-bg: #f5f7fb;--color-surface: #ffffff;--color-surface-subtle: #f8fafc;--color-surface-subtle-2: #f1f5f9;--color-code-bg: #eef2ff;--color-panel-bg: rgba(255, 255, 255, .92);--color-panel-border: rgba(148, 163, 184, .2);--color-panel-shadow: rgba(15, 23, 42, .07);--color-accent: #2563eb;--color-accent-strong: #1d4ed8;--color-accent-soft-bg: #eff6ff;--color-accent-soft-bg-2: #dbeafe;--color-accent-soft-border: #bfdbfe;--color-danger: #be123c;--color-danger-soft-bg: #fff1f2;--color-danger-soft-border: #fecdd3;--pref-level-0: #dde6f2;--pref-level-1: #c3d9f8;--pref-level-2: #93c5fd;--pref-level-3: #60a5fa;--pref-level-4: #3b82f6;--pref-level-5: #1d4ed8;--map-bg: #eef4fc;--map-stroke: #ffffff;color:var(--color-text-primary);background:var(--color-app-bg)}[data-theme=dark]{color-scheme:dark;--color-text-primary: #f1f5f9;--color-text-secondary: #cbd5e1;--color-text-tertiary: #94a3b8;--color-text-muted: #64748b;--color-border: #2d3b52;--color-border-input: #334155;--color-body-bg-start: #0b1220;--color-body-bg-end: #10192e;--color-app-bg: #0b1220;--color-surface: #16213a;--color-surface-subtle: #131d33;--color-surface-subtle-2: #182342;--color-code-bg: #1e2b4d;--color-panel-bg: rgba(22, 33, 58, .85);--color-panel-border: rgba(100, 116, 139, .25);--color-panel-shadow: rgba(0, 0, 0, .35);--color-accent: #60a5fa;--color-accent-strong: #93c5fd;--color-accent-soft-bg: rgba(37, 99, 235, .18);--color-accent-soft-bg-2: rgba(37, 99, 235, .28);--color-accent-soft-border: rgba(96, 165, 250, .35);--color-danger: #fb7185;--color-danger-soft-bg: rgba(190, 18, 60, .2);--color-danger-soft-border: rgba(251, 113, 133, .35);--pref-level-0: #2b3d60;--pref-level-1: #31568c;--pref-level-2: #2f6fd6;--pref-level-3: #4a86ec;--pref-level-4: #74a7f5;--pref-level-5: #a9ccff;--map-bg: #060b16;--map-stroke: #060b16}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,var(--color-body-bg-start) 0%,var(--color-body-bg-end) 100%);transition:background-color .35s ease,color .35s ease}button,input,select,textarea{font:inherit}button{cursor:pointer}code{background:var(--color-code-bg);padding:.15rem .4rem;border-radius:.5rem}*{transition:background-color .25s ease,border-color .25s ease,color .25s ease}.app-shell,.panel,.memory-card,.pref-card,.badge-card,.wishlist-item,.cost-list-item,.bottom-nav-item,.primary-button,.ghost-button,.upload-button,.status-pill,.stat-card{transition:background-color .25s ease,border-color .25s ease,color .25s ease,transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .25s ease,opacity .2s ease}.tab-content,.add-prompt{animation:view-fade-in .28s ease}@keyframes view-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.app-shell{max-width:1480px;margin:0 auto;padding:24px}.hero{display:flex;justify-content:space-between;gap:20px;padding:24px 28px;background:linear-gradient(135deg,#0f172a,#1e3a8a 52%,#2563eb);color:#fff;border-radius:24px;box-shadow:0 24px 48px #0f172a29}.hero h1{margin:0;font-size:clamp(2rem,4vw,3.2rem);line-height:1.1}.eyebrow{margin:0 0 8px;text-transform:uppercase;letter-spacing:.18em;font-size:.82rem;opacity:.82}.hero-copy{max-width:760px;margin:12px 0 0;font-size:1rem;opacity:.92}.hero-side{display:flex;flex-direction:column;gap:12px;min-width:240px}.status-pill{background:#ffffff24;border:1px solid rgba(255,255,255,.22);padding:12px 14px;border-radius:999px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.status-pill.secondary{background:#0f172a38}.panel{background:var(--color-panel-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-panel-border);border-radius:20px;box-shadow:0 14px 32px var(--color-panel-shadow)}.soft-panel{padding:28px}.section-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.section-header h2{margin:0;font-size:1.12rem}.section-header span{color:var(--color-text-tertiary);font-size:.95rem}.stats-grid{margin-top:14px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.stat-card{padding:10px 14px;border-radius:14px;color:#fff;display:flex;flex-direction:column;gap:2px}.stat-card strong{font-size:1.35rem;line-height:1.15}.stat-label{opacity:.86;font-size:.74rem}.accent-warm{background:linear-gradient(135deg,#e26d5a,#f08f67)}.accent-blue{background:linear-gradient(135deg,var(--color-accent),#4f8df5)}.accent-gold{background:linear-gradient(135deg,#b7791f,#d69e2e)}.accent-green{background:linear-gradient(135deg,#0f766e,#10b981)}.toolbar{margin-top:18px;padding:16px 18px;display:flex;justify-content:space-between;gap:16px;align-items:center}.toolbar-left{flex:1}.toolbar-right{display:flex;gap:10px;flex-wrap:wrap}.search-input{width:100%;padding:12px 14px;border:1px solid var(--color-border-input);border-radius:14px;background:var(--color-surface)}.message-banner{margin-top:14px;padding:14px 18px;border-radius:16px;background:var(--color-accent-soft-bg);color:var(--color-accent-strong);border:1px solid var(--color-accent-soft-border)}.main-grid{margin-top:18px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(360px,.9fr);gap:18px}.main-left,.main-right{display:flex;flex-direction:column;gap:18px}.map-panel{padding:18px}.map-shell{height:520px;overflow:hidden;border-radius:18px}.map-shell>div{width:100%;height:100%}.map-panel-empty{padding:24px}.check-list{margin:16px 0 0;padding-left:18px;color:var(--color-text-secondary)}.check-list li+li{margin-top:6px}.check-list.compact{margin-top:10px}.info-window{max-width:220px}.info-window strong{display:block;margin-bottom:4px}.info-window p{margin:0;font-size:.88rem;color:var(--color-text-secondary)}.memory-list-panel{padding:18px}.memory-list{display:grid;gap:14px}.memory-card{display:grid;grid-template-columns:140px 1fr;gap:14px;border:1px solid var(--color-border);border-radius:18px;padding:12px;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;background:var(--color-surface)}.memory-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #0f172a14}.memory-card.selected{border-color:var(--color-accent);box-shadow:0 0 0 3px #2563eb26}.memory-card-cover{width:100%;height:118px;overflow:hidden;border-radius:14px;background:var(--color-surface-subtle-2)}.memory-card-cover img,.memory-card-cover video{width:100%;height:100%;object-fit:cover;display:block}.memory-card-placeholder{display:grid;place-items:center;height:100%;font-size:2rem}.memory-card-body{display:flex;flex-direction:column;gap:8px;min-width:0}.memory-card-top{display:flex;justify-content:space-between;align-items:start;gap:12px}.memory-card-top h3{margin:0;font-size:1.02rem}.memory-subline,.memory-notes{margin:0;color:var(--color-text-tertiary)}.memory-notes{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.memory-card-actions{display:flex;gap:8px;margin-top:auto;flex-wrap:wrap}.memory-card-actions .ghost-button{white-space:nowrap}.chip{display:inline-flex;align-items:center;border:1px solid;padding:4px 10px;border-radius:999px;font-size:.82rem;white-space:nowrap}.form-panel{padding:18px}.memory-form{display:flex;flex-direction:column;gap:14px}.memory-form label,.trip-create-form label,.trip-edit-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;color:var(--color-text-secondary)}.memory-form input,.memory-form select,.memory-form textarea,.trip-create-form input,.trip-edit-form input{border:1px solid var(--color-border-input);border-radius:14px;padding:12px 14px;background:var(--color-surface);color:var(--color-text-primary)}.memory-form textarea{resize:vertical;min-height:120px}.inline-grid{display:grid;gap:12px}.three-cols{grid-template-columns:repeat(3,minmax(0,1fr))}.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.rating-field{max-width:220px}.empty-hint{color:var(--color-text-tertiary);font-size:.92rem;margin:4px 0 0}.upload-panel{border:1px dashed var(--color-text-muted);border-radius:18px;padding:16px;display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--color-surface-subtle)}.upload-panel p{margin:6px 0 0;color:var(--color-text-tertiary);font-size:.9rem}.media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.media-tile{border:1px solid var(--color-border);border-radius:16px;padding:8px;background:var(--color-surface)}.media-tile.readonly{opacity:.86}.media-tile img,.media-tile video{width:100%;height:160px;object-fit:cover;border-radius:12px;background:var(--color-surface-subtle-2)}.media-tile span{display:block;font-size:.88rem;color:var(--color-text-secondary);margin-top:8px}.media-tile-footer{display:flex;justify-content:space-between;align-items:center;gap:8px}.media-caption-input{width:100%;margin-top:8px;border:1px solid var(--color-border);border-radius:10px;padding:8px 10px;background:var(--color-surface);font-size:.85rem;color:var(--color-text-primary)}.media-caption{display:block;font-size:.82rem;color:var(--color-text-secondary);margin-top:8px;font-weight:500}.form-actions{display:flex;justify-content:flex-end}.note-panel{padding:18px}.note-panel h2{margin:0 0 6px}.primary-button,.ghost-button,.upload-button{border:none;border-radius:999px;padding:11px 16px;font-weight:700;transition:transform .15s ease,opacity .15s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.primary-button{background:linear-gradient(135deg,var(--color-accent-strong),var(--color-accent));color:#fff}.ghost-button,.upload-button{background:var(--color-accent-soft-bg);color:var(--color-accent-strong);border:1px solid var(--color-accent-soft-border)}.ghost-button.danger{background:var(--color-danger-soft-bg);color:var(--color-danger);border-color:var(--color-danger-soft-border)}.primary-button:hover,.ghost-button:hover,.upload-button:hover{transform:translateY(-1px)}.import-button{position:relative;overflow:hidden}.empty-panel{text-align:center;color:var(--color-text-tertiary)}.empty-panel h2{color:var(--color-text-primary)}.loading-overlay{position:fixed;inset:0;display:grid;place-items:center;background:var(--color-panel-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--color-text-primary);font-size:1.2rem;font-weight:700}.signin-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 20%,var(--color-accent-soft-bg-2),transparent 60%),radial-gradient(circle at 80% 30%,#fef3c7,transparent 55%),linear-gradient(180deg,var(--color-surface-subtle),#eef2ff)}.signin-card{max-width:460px;width:100%;padding:32px;border-radius:28px;background:var(--color-panel-bg);border:1px solid var(--color-panel-border);box-shadow:0 28px 60px var(--color-panel-shadow)}.signin-card h1{margin:4px 0 12px;font-size:1.8rem}.signin-lead{color:var(--color-text-secondary);margin:0 0 18px}.signin-form{display:flex;flex-direction:column;gap:12px}.signin-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;color:var(--color-text-primary)}.signin-form input{padding:12px 14px;border-radius:14px;border:1px solid var(--color-border-input);background:var(--color-surface)}.signin-success{margin:0;color:#047857;font-size:.92rem}.signin-error-text{margin:0;color:var(--color-danger);font-size:.92rem}.signin-warning{background:#fef3c7;border:1px solid #fde68a;color:#78350f;padding:14px 16px;border-radius:16px;display:flex;flex-direction:column;gap:10px}.signin-warning p{margin:0}.signin-error{background:var(--color-danger-soft-bg);border:1px solid var(--color-danger-soft-border);color:var(--color-danger);padding:14px 16px;border-radius:16px;margin-bottom:12px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.signin-error p{margin:0}.signin-meta{margin:22px 0 0;padding-left:18px;color:var(--color-text-secondary);font-size:.9rem}.signin-meta li+li{margin-top:6px}@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.main-grid{grid-template-columns:1fr}}@media(max-width:760px){.app-shell{padding:14px}.hero{padding:20px;flex-direction:column}.toolbar{flex-direction:column;align-items:stretch}.toolbar-right{width:100%}.memory-card{grid-template-columns:1fr}.memory-card-actions .ghost-button{flex:1 1 calc(50% - 8px);text-align:center;justify-content:center}.three-cols,.media-grid{grid-template-columns:1fr}.map-shell{height:380px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat-card{padding:9px 12px}.stat-card strong{font-size:1.2rem}}.memory-notification{display:flex;align-items:flex-start;gap:14px;margin-top:18px;padding:16px 20px;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #fbbf24;border-radius:20px;box-shadow:0 4px 16px #fbbf242e}.notif-icon{font-size:1.8rem;flex-shrink:0}.notif-body{display:flex;flex-direction:column;gap:8px}.notif-item{display:flex;align-items:center;gap:10px;color:#78350f}.notif-thumb{width:52px;height:52px;border-radius:10px;object-fit:cover;flex-shrink:0}.stat-sub{font-size:.7rem;opacity:.82;margin-top:-1px}.achievement-splash{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;background:#080c1ee0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:splash-fade-in .45s ease both}.achievement-splash.splash-complete{animation:splash-fade-in .45s ease both,splash-glow 1.6s ease .2s both}@keyframes splash-fade-in{0%{opacity:0}to{opacity:1}}@keyframes splash-glow{0%,to{box-shadow:inset 0 0 #ffd77800}50%{box-shadow:inset 0 0 180px #ffd7782e}}.splash-inner{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px;max-width:480px;width:100%;color:#fff;text-align:center}.splash-eyebrow{margin:0;font-size:.95rem;letter-spacing:.12em;opacity:.85;animation:splash-pop .5s ease .1s both}.splash-map{width:min(78vw,380px);filter:drop-shadow(0 12px 32px rgba(0,0,0,.45))}.splash-map-svg svg{width:100%;height:auto;display:block}.splash-map-svg .prefecture{transition:opacity .35s ease,filter .35s ease,transform .35s ease}.splash-map-svg .prefecture.splash-dim{opacity:.18}.splash-map-svg .prefecture.splash-lit{opacity:1;animation:splash-pref-pop .45s ease both}@keyframes splash-pref-pop{0%{opacity:.18;filter:brightness(2.2);transform:scale(1.06)}to{opacity:1;filter:brightness(1);transform:scale(1)}}.splash-stats{display:flex;flex-direction:column;gap:2px;animation:splash-pop .5s ease .25s both}.splash-rate{font-size:3rem;line-height:1;background:linear-gradient(135deg,#ffd97a,#ff9d5c);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}.splash-sub{font-size:.9rem;opacity:.85}.splash-complete-label{margin-top:8px;font-size:.95rem;color:#ffd97a;animation:splash-pop .5s ease both}@keyframes splash-pop{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.achievement-banner{margin-top:14px;width:100%;display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:999px;border:1px solid var(--color-panel-border);background:var(--color-panel-bg);box-shadow:0 4px 12px var(--color-panel-shadow);color:var(--color-text-primary, inherit);font:inherit;cursor:pointer;text-align:left}.achievement-banner:hover{filter:brightness(1.04)}.achievement-banner-icon{font-size:1.1rem}.achievement-banner-text{font-size:.85rem;white-space:nowrap}.achievement-banner-text strong{font-size:1rem}.achievement-banner-bar{flex:1;height:8px;border-radius:999px;background:var(--color-accent-soft-bg, rgba(90, 130, 240, .15));overflow:hidden}.achievement-banner-fill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#ffd97a,#ff9d5c);transition:width .6s ease}.achievement-banner-replay{font-size:.75rem;opacity:.7}.prefecture-progress-bar-wrap{margin-top:14px;padding:16px 20px;background:var(--color-panel-bg);border:1px solid var(--color-panel-border);border-radius:18px;box-shadow:0 4px 12px var(--color-panel-shadow)}.prefecture-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-weight:600;color:var(--color-text-primary)}.prefecture-progress-count{color:var(--color-text-secondary);font-size:.95rem}.prefecture-progress-track{height:14px;background:var(--color-border);border-radius:999px;overflow:hidden}.prefecture-progress-fill{height:100%;background:linear-gradient(90deg,var(--color-accent),#10b981);border-radius:999px;transition:width .6s ease}.bottom-nav{display:flex;justify-content:center;gap:8px;margin-top:18px;padding:10px 16px;background:var(--color-panel-bg);border:1px solid var(--color-panel-border);border-radius:20px;box-shadow:0 4px 16px var(--color-panel-shadow)}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 24px;border:none;border-radius:14px;background:transparent;color:var(--color-text-tertiary);font-weight:600;font-size:.88rem;transition:background .15s ease,color .15s ease}.bottom-nav-item.active{background:linear-gradient(135deg,var(--color-accent-soft-bg),var(--color-accent-soft-bg-2));color:var(--color-accent-strong)}.bottom-nav-emoji{font-size:1.4rem}.bottom-nav-label{font-size:.78rem}.tab-content{margin-top:18px}.add-prompt{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;color:var(--color-text-tertiary);padding:32px}.prefecture-collection{display:flex;flex-direction:column;gap:20px}.pref-header{display:flex;justify-content:space-between;align-items:center}.pref-header h2{margin:0}.pref-count-badge{background:linear-gradient(135deg,var(--color-accent),#10b981);color:#fff;padding:6px 16px;border-radius:999px;font-weight:700;font-size:.9rem}.pref-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.pref-card{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:16px;border:2px solid transparent;text-align:left;transition:transform .15s ease,box-shadow .15s ease;cursor:pointer}.pref-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0f172a1a}.pref-card.visited{background:linear-gradient(135deg,var(--color-accent-soft-bg),var(--color-accent-soft-bg-2));border-color:var(--color-accent-soft-border)}.pref-card.unvisited{background:var(--color-surface-subtle);border-color:var(--color-border);opacity:.7}.pref-card.pref-selected{border-color:var(--color-accent);box-shadow:0 0 0 3px #2563eb33}.pref-name{font-weight:700;font-size:.92rem;color:var(--color-text-primary)}.pref-stats{display:flex;flex-direction:column;gap:2px;font-size:.78rem;color:var(--color-accent)}.pref-last{color:var(--color-text-tertiary)}.pref-unvisited-label{font-size:.78rem;color:var(--color-text-muted)}.pref-count-badge-master{background:linear-gradient(135deg,#f59e0b,#fbbf24);animation:pref-master-glow 2.4s ease-in-out infinite}@keyframes pref-master-glow{0%,to{box-shadow:0 0 #f59e0b66}50%{box-shadow:0 0 0 8px #f59e0b00}}.japan-map-wrap{display:flex;flex-direction:column;align-items:center;gap:8px}.japan-map-svg{width:100%;max-width:660px;aspect-ratio:1 / 1;background:var(--map-bg);border:1px solid var(--color-border);border-radius:20px;padding:8px}.japan-map-svg svg{width:100%;height:100%;display:block}.japan-map-svg .prefecture{stroke:var(--map-stroke);stroke-width:2.4;cursor:pointer;transition:filter .15s ease,stroke-width .15s ease}.japan-map-svg .boundary-line{display:none}.japan-map-svg .prefecture:hover{filter:brightness(1.12)}.japan-map-svg .prefecture:focus-visible{outline:none;stroke:var(--color-accent);stroke-width:2.5}.japan-map-svg .pref-level-0{fill:var(--pref-level-0)}.japan-map-svg .pref-level-1{fill:var(--pref-level-1)}.japan-map-svg .pref-level-2{fill:var(--pref-level-2)}.japan-map-svg .pref-level-3{fill:var(--pref-level-3)}.japan-map-svg .pref-level-4{fill:var(--pref-level-4)}.japan-map-svg .pref-level-5{fill:var(--pref-level-5)}.japan-map-svg .pref-svg-complete{stroke:#f59e0b;stroke-width:1.6}.japan-map-svg .pref-svg-selected{stroke:var(--color-accent);stroke-width:3}.japan-map-loading,.japan-map-error{padding:24px;text-align:center;color:var(--color-text-muted);font-size:.88rem}.japan-map-credit{margin:0;font-size:.72rem;color:var(--color-text-muted);text-align:center}.japan-map-credit a{color:inherit;text-decoration:underline}.pref-legend{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;font-size:.78rem;color:var(--color-text-secondary)}.pref-legend-label{font-weight:600}.pref-legend-item{display:inline-flex;align-items:center;gap:5px}.pref-legend-swatch{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid var(--color-border)}.pref-legend-swatch.pref-level-0{background-color:var(--pref-level-0)}.pref-legend-swatch.pref-level-1{background-color:var(--pref-level-1)}.pref-legend-swatch.pref-level-2{background-color:var(--pref-level-2)}.pref-legend-swatch.pref-level-3{background-color:var(--pref-level-3)}.pref-legend-swatch.pref-level-4{background-color:var(--pref-level-4)}.pref-legend-swatch.pref-level-5{background-color:var(--pref-level-5)}@media(max-width:480px){.japan-map-svg{max-width:100%}.pref-legend{gap:6px;font-size:.72rem}}.pref-detail-panel{padding:20px;background:var(--color-surface-subtle);border-radius:18px;border:1px solid var(--color-border)}.pref-detail-panel h3{margin:0}.pref-detail-header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.pref-memory-list{display:flex;flex-direction:column;gap:12px}.pref-memory-card{display:flex;gap:12px;padding:12px;background:var(--color-surface);border-radius:14px;border:1px solid var(--color-border)}.pref-memory-thumb{width:64px;height:64px;border-radius:10px;object-fit:cover;flex-shrink:0}.pref-memory-card p{margin:2px 0;font-size:.88rem;color:var(--color-text-tertiary)}.pref-memory-notes{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pref-memory-actions{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}.timeline{display:flex;flex-direction:column;gap:28px}.timeline h2{margin:0 0 8px}.timeline-empty{text-align:center;color:var(--color-text-tertiary);padding:32px}.timeline-year{display:flex;flex-direction:column;gap:16px}.timeline-year-label{font-size:1.8rem;font-weight:800;color:var(--color-text-primary);padding-bottom:8px;border-bottom:3px solid var(--color-accent)}.timeline-year-body{display:flex;flex-direction:column;gap:16px;padding-left:16px;border-left:2px solid var(--color-border)}.timeline-month{display:flex;flex-direction:column;gap:10px}.timeline-month-label{font-weight:700;color:var(--color-accent);font-size:.95rem}.timeline-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.timeline-card{display:flex;flex-direction:column;gap:8px;padding:0;border:1px solid var(--color-border);border-radius:16px;overflow:hidden;background:var(--color-surface);text-align:left;transition:transform .15s ease,box-shadow .15s ease;cursor:pointer}.timeline-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0f172a1a}.timeline-card-cover{height:130px;overflow:hidden;background:var(--color-surface-subtle-2)}.timeline-card-cover img{width:100%;height:100%;object-fit:cover;display:block}.timeline-card-placeholder{display:grid;place-items:center;height:100%;font-size:2.4rem}.timeline-card-body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:4px}.timeline-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.timeline-date{font-size:.8rem;color:var(--color-text-tertiary)}.timeline-card-body strong{font-size:.98rem;color:var(--color-text-primary)}.timeline-card-body p{margin:0;font-size:.85rem;color:var(--color-text-tertiary)}.timeline-rating{font-size:.85rem}.timeline-notes{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:760px){.bottom-nav-item{padding:10px 14px}.pref-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.timeline-cards{grid-template-columns:1fr}.bottom-nav{gap:4px}}.form-section-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}.form-section-tab{padding:8px 14px;border-radius:10px;border:1.5px solid var(--color-border);background:var(--color-surface-subtle);color:var(--color-text-tertiary);font-size:.82rem;font-weight:600;transition:all .15s ease;white-space:nowrap}.form-section-tab.active{background:linear-gradient(135deg,var(--color-accent-soft-bg),var(--color-accent-soft-bg-2));border-color:var(--color-accent-soft-border);color:var(--color-accent-strong)}.milestone-section{display:flex;flex-direction:column;gap:16px}.milestone-desc{color:var(--color-text-tertiary);font-size:.9rem;margin:0}.milestone-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.milestone-checkbox{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:12px;border:1.5px solid var(--color-border);background:var(--color-surface-subtle);cursor:pointer;transition:all .15s ease;font-size:.88rem;color:var(--color-text-secondary)}.milestone-checkbox.checked{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#fbbf24;color:#78350f;font-weight:600}.milestone-checkbox input{display:none}.timeline-card-cover{position:relative}.milestone-badge{position:absolute;top:8px;left:8px;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;font-size:.72rem;font-weight:700;padding:3px 8px;border-radius:999px;box-shadow:0 2px 8px #fbbf2466}.milestone-chip{display:inline-block;background:#fef3c7;color:#78350f;border:1px solid #fde68a;border-radius:999px;font-size:.72rem;padding:2px 8px;margin-right:4px}.timeline-milestones{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.diary-section{display:flex;flex-direction:column;gap:16px}.diary-generate-btn{align-self:flex-start}.diary-disabled-note{padding:14px 18px;background:var(--color-surface-subtle-2);border-radius:12px;color:var(--color-text-tertiary);font-size:.88rem}.diary-disabled-note code{background:var(--color-border);padding:2px 6px;border-radius:6px;font-size:.85rem}.diary-error-note{padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;color:#b91c1c;font-size:.85rem}.slideshow{margin-top:18px;border:1px solid var(--color-border);border-radius:18px;overflow:hidden;background:#0f172a}.slideshow-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;color:#fff;font-size:.88rem}.slideshow-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:240px}.slideshow-img{max-height:340px;max-width:100%;object-fit:contain;display:block}.slideshow-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff26;border:none;color:#fff;font-size:2rem;padding:8px 14px;border-radius:8px;cursor:pointer;transition:background .15s ease}.slideshow-nav:hover{background:#ffffff4d}.slideshow-nav.prev{left:8px}.slideshow-nav.next{right:8px}.slideshow-dots{display:flex;justify-content:center;gap:6px;padding:10px}.dot{width:8px;height:8px;border-radius:50%;background:#ffffff4d;border:none;cursor:pointer;transition:background .15s ease}.dot.active{background:#fff}.cost-section{display:flex;flex-direction:column;gap:16px}.cost-total-banner{padding:14px 18px;background:linear-gradient(135deg,var(--color-accent-soft-bg),var(--color-accent-soft-bg-2));border:1px solid var(--color-accent-soft-border);border-radius:14px;font-size:1.1rem;color:var(--color-text-primary)}.cost-total-banner strong{font-size:1.4rem;color:var(--color-accent-strong);margin-left:8px}.cost-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.cost-input-wrap{display:flex;align-items:center;gap:6px}.cost-input-wrap input{flex:1}.cost-unit{color:var(--color-text-tertiary);font-size:.9rem;white-space:nowrap}.cost-dashboard{display:flex;flex-direction:column;gap:24px}.cost-dashboard h2{margin:0}.cost-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.cost-summary-card{display:flex;flex-direction:column;gap:4px;padding:16px 18px;background:linear-gradient(135deg,var(--color-accent-soft-bg),var(--color-accent-soft-bg-2));border:1px solid var(--color-accent-soft-border);border-radius:16px}.cost-summary-card span{font-size:.85rem;color:var(--color-text-secondary)}.cost-summary-card strong{font-size:1.2rem;color:var(--color-accent-strong)}.cost-summary-card small{font-size:.78rem;color:var(--color-text-muted)}.cost-empty{text-align:center;color:var(--color-text-muted);padding:24px}.cost-chart-panel,.cost-list-panel{background:var(--color-surface-subtle);border-radius:16px;padding:18px;border:1px solid var(--color-border)}.cost-chart-panel h3,.cost-list-panel h3{margin:0 0 14px;font-size:1rem}.cost-bars{display:flex;flex-direction:column;gap:10px}.cost-bar-row{display:flex;align-items:center;gap:10px}.cost-bar-label{width:120px;font-size:.82rem;color:var(--color-text-secondary);flex-shrink:0}.cost-bar-track{flex:1;height:12px;background:var(--color-border);border-radius:999px;overflow:hidden}.cost-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-accent),#10b981);border-radius:999px;transition:width .5s ease}.cost-bar-value{width:90px;text-align:right;font-size:.82rem;color:var(--color-accent-strong);font-weight:600;flex-shrink:0}.cost-list{display:flex;flex-direction:column;gap:8px}.cost-list-item{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--color-surface);border-radius:12px;border:1px solid var(--color-border)}.cost-list-info{display:flex;flex-direction:column;gap:2px}.cost-list-info strong{font-size:.92rem;color:var(--color-text-primary)}.cost-list-info span{font-size:.8rem;color:var(--color-text-muted)}.cost-list-total{font-weight:700;color:var(--color-accent-strong);font-size:.95rem}@media(max-width:760px){.cost-bar-label{width:80px;font-size:.75rem}.cost-bar-value{width:70px;font-size:.75rem}.milestone-grid{grid-template-columns:1fr 1fr}.form-section-tabs{gap:4px}.form-section-tab{font-size:.76rem;padding:7px 10px}}.search-filter-bar{display:flex;flex-direction:column;gap:12px;flex:1}.search-filter-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filter-toggle{position:relative}.filter-badge{display:inline-block;background:var(--color-accent);color:#fff;font-size:.7rem;font-weight:700;border-radius:999px;padding:1px 6px;margin-left:4px}.search-filter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;padding:14px;background:var(--color-surface-subtle);border-radius:14px;border:1px solid var(--color-border)}.search-filter-grid label{display:flex;flex-direction:column;gap:4px;font-size:.82rem;color:var(--color-text-tertiary)}.wishlist{display:flex;flex-direction:column;gap:20px}.wishlist h2{margin:0}.wishlist-form{display:flex;gap:8px;flex-wrap:wrap;padding:16px;background:var(--color-surface-subtle);border-radius:14px;border:1px solid var(--color-border)}.wishlist-place-input{flex:2;min-width:180px}.wishlist-notes-input{flex:2;min-width:160px}.wishlist-empty{text-align:center;color:var(--color-text-muted);padding:24px}.wishlist-section h3{font-size:1rem;margin:0 0 10px;color:var(--color-text-secondary)}.wishlist-items{display:flex;flex-direction:column;gap:8px}.wishlist-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px}.wishlist-item.achieved{background:#f0fdf4;border-color:#bbf7d0}.wishlist-check{width:32px;height:32px;border-radius:50%;border:2px solid var(--color-border-input);background:var(--color-surface);color:var(--color-text-muted);font-weight:700;flex-shrink:0}.wishlist-check.checked{background:#22c55e;border-color:#22c55e;color:#fff}.wishlist-item-body{flex:1;display:flex;flex-direction:column;gap:2px}.wishlist-item-body strong{font-size:.95rem;color:var(--color-text-primary)}.wishlist-item-body p{margin:0;font-size:.82rem;color:var(--color-text-tertiary)}.wishlist-priority{font-size:.78rem;color:#f59e0b}.badge-gallery{display:flex;flex-direction:column;gap:20px;position:relative}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.badge-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 12px;border-radius:16px;border:2px solid var(--color-border);background:var(--color-surface-subtle);text-align:center}.badge-card.achieved{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#fbbf24;box-shadow:0 4px 14px #fbbf2440}.badge-card.locked{opacity:.55;filter:grayscale(.6)}.badge-emoji{font-size:2.2rem}.badge-label{font-size:.82rem;color:var(--color-text-primary)}.badge-progress-track{width:100%;height:6px;background:var(--color-border);border-radius:999px;overflow:hidden}.badge-progress-fill{height:100%;background:linear-gradient(90deg,#f59e0b,#fbbf24);border-radius:999px;transition:width .5s ease}.badge-progress-label{font-size:.7rem;color:var(--color-text-muted)}.badge-toast{position:fixed;top:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:16px 24px;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;border-radius:18px;box-shadow:0 12px 30px #fbbf2466;z-index:999;animation:badge-pop .4s ease}.badge-toast-emoji{font-size:2.4rem}.badge-toast strong{display:block;font-size:1rem}.badge-toast p{margin:0;font-size:.9rem}@keyframes badge-pop{0%{transform:translate(-50%) scale(.6);opacity:0}60%{transform:translate(-50%) scale(1.05);opacity:1}to{transform:translate(-50%) scale(1)}}.pdf-album-panel{margin-top:24px;padding:20px;background:var(--color-surface-subtle);border-radius:16px;border:1px solid var(--color-border)}.pdf-album-panel h3{margin:0 0 8px}.pdf-album-note{color:var(--color-text-tertiary);font-size:.85rem;margin:0 0 16px;line-height:1.6}.pdf-album-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.pdf-album-empty{color:var(--color-text-muted);font-size:.85rem;margin-top:10px}@media(max-width:760px){.badge-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.badge-emoji{font-size:1.8rem}.wishlist-form{flex-direction:column}.wishlist-place-input,.wishlist-notes-input{width:100%}.bottom-nav{flex-wrap:wrap}.bottom-nav-item{padding:8px 10px}}@media(min-width:761px)and (max-width:1024px){.app-shell{padding:20px}.hero{padding:22px 24px}.hero h1{font-size:clamp(1.7rem,3.6vw,2.4rem)}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.main-grid{grid-template-columns:1fr}.main-left,.main-right{gap:16px}.map-shell{height:420px}.memory-card{grid-template-columns:120px 1fr}.toolbar{flex-wrap:wrap}.toolbar-right{width:100%;justify-content:flex-start}.search-filter-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.cost-summary-grid,.pref-grid,.badge-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.timeline-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.primary-button,.ghost-button,.upload-button{padding:13px 18px;min-height:44px}.bottom-nav-item{padding:12px 22px;min-height:44px}.memory-card-actions .ghost-button{padding:10px 14px}}@media(min-width:900px)and (max-width:1024px){.main-grid{grid-template-columns:minmax(0,1.3fr) minmax(300px,.9fr)}}.theme-toggle{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:#ffffff1f;color:#fff;font-weight:600;font-size:.85rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background-color .2s ease,transform .18s cubic-bezier(.2,.8,.2,1)}.theme-toggle:hover{background:#ffffff38;transform:translateY(-1px)}.theme-toggle:active{transform:translateY(0)}.theme-toggle-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;transition:transform .35s cubic-bezier(.2,.8,.2,1)}[data-theme=dark] .theme-toggle-icon{transform:rotate(180deg)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}:focus{outline:none}:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px;border-radius:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.field-error{border-color:var(--color-danger)!important;background:var(--color-danger-soft-bg)}.field-error-message{color:var(--color-danger);font-size:.8rem;font-weight:600;margin-top:2px}.form-errors-summary{color:var(--color-danger);background:var(--color-danger-soft-bg);border:1px solid var(--color-danger-soft-border);border-radius:10px;padding:8px 12px;font-size:.88rem;margin:0 0 10px}.toast-container{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:1000;display:flex;flex-direction:column;gap:8px;width:min(92vw,420px);pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border);box-shadow:0 12px 28px var(--color-panel-shadow);font-size:.9rem;animation:toast-slide-in .22s cubic-bezier(.2,.8,.2,1)}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.toast-success{border-color:#86efac}.toast-error{border-color:var(--color-danger-soft-border)}.toast-info{border-color:var(--color-accent-soft-border)}.toast-icon{flex-shrink:0}.toast-message{flex:1;line-height:1.4}.toast-action{flex-shrink:0;background:none;border:none;color:var(--color-accent);font-weight:700;font-size:.88rem;padding:4px 8px;border-radius:8px}.toast-action:hover{background:var(--color-accent-soft-bg)}.toast-close{flex-shrink:0;background:none;border:none;color:var(--color-text-muted);font-size:1.1rem;line-height:1;padding:2px 4px}.toast-close:hover{color:var(--color-text-primary)}.confirm-overlay{position:fixed;inset:0;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:1100;padding:20px;animation:view-fade-in .18s ease}.confirm-dialog{width:min(92vw,420px);background:var(--color-surface);border-radius:18px;padding:22px;box-shadow:0 24px 48px #0000004d}.confirm-dialog h3{margin:0 0 10px;color:var(--color-text-primary)}.confirm-dialog p{margin:0 0 20px;color:var(--color-text-secondary);line-height:1.6}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:10px}.danger-button{background:var(--color-danger);border-color:var(--color-danger)}.danger-button:hover{filter:brightness(1.08)}@keyframes skeleton-pulse{0%,to{opacity:.55}50%{opacity:1}}.skeleton-block{background:var(--color-surface-subtle-2);border-radius:16px;animation:skeleton-pulse 1.4s ease-in-out infinite}.skeleton-dashboard{display:flex;flex-direction:column;gap:16px;margin:16px 0}.skeleton-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.skeleton-stat-card{height:58px}.skeleton-main-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px}.skeleton-map{height:420px}.skeleton-list{display:flex;flex-direction:column;gap:12px}.skeleton-card{height:120px}@media(max-width:1100px){.skeleton-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skeleton-main-grid{grid-template-columns:1fr}}.error-boundary-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--color-app-bg)}.error-boundary-card{max-width:480px;width:100%;background:var(--color-surface);border-radius:20px;padding:32px;text-align:center;box-shadow:0 24px 48px var(--color-panel-shadow)}.error-boundary-card h1{font-size:1.3rem;margin:0 0 12px}.error-boundary-card p{color:var(--color-text-secondary);line-height:1.6;margin:0 0 12px}.error-boundary-detail{font-size:.8rem;color:var(--color-text-muted);background:var(--color-surface-subtle);border-radius:10px;padding:8px 10px;word-break:break-word}.error-boundary-note{font-size:.85rem}.safe-image-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:60px;background:var(--color-surface-subtle-2);color:var(--color-text-muted);font-size:1.6rem;border-radius:inherit}.tab-loading{padding:32px;text-align:center;color:var(--color-text-muted);font-size:.9rem}.cost-pie-wrap{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:16px 4px 20px}.cost-pie{flex-shrink:0;filter:drop-shadow(0 4px 10px var(--color-panel-shadow))}.cost-pie path{transition:transform .2s ease;transform-origin:50% 50%}.cost-pie path:hover{transform:scale(1.03)}.cost-pie-legend{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;min-width:220px;flex:1}.cost-pie-legend li{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--color-text-secondary)}.cost-pie-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;flex-shrink:0}.cost-pie-legend-label{flex:1}.cost-pie-legend-value{font-weight:700;color:var(--color-text-primary)}@media(max-width:760px){.cost-pie-wrap{flex-direction:column;align-items:stretch}.cost-pie{align-self:center}.cost-pie-legend{grid-template-columns:1fr}}.slideshow-stage{user-select:none;-webkit-user-select:none;touch-action:none}.slideshow-img{will-change:transform}.slideshow-caption{padding:8px 16px;color:#f1f5f9;background:#0f172a59;font-size:.9rem;line-height:1.5;text-align:center}.pref-memory-card-clickable{cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);color:inherit;text-align:left;width:100%;font:inherit;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.pref-memory-card-clickable:hover{transform:translateY(-1px);box-shadow:0 6px 18px var(--color-panel-shadow);border-color:var(--color-accent-soft-border)}.pref-memory-card-clickable:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.media-caption-input{width:100%;padding:6px 10px;border:1px solid var(--color-border-input);border-radius:8px;background:var(--color-surface);color:var(--color-text-primary);font-size:.85rem}.media-caption-input:focus{outline:2px solid var(--color-accent-soft-border);outline-offset:1px}.memory-card-cover img,.timeline-card-cover img,.pref-memory-thumb,.notif-thumb{animation:media-fade-in .3s ease}@keyframes media-fade-in{0%{opacity:0}to{opacity:1}}.timeline-year-label{display:flex;align-items:baseline;gap:10px}.timeline-year-count{font-size:.78rem;font-weight:500;color:var(--color-text-tertiary);background:var(--color-surface-subtle-2);padding:2px 8px;border-radius:999px}.timeline-month-label{display:flex;align-items:baseline;gap:8px}.timeline-month-count{font-size:.7rem;color:var(--color-text-muted);background:transparent}.memory-card[role=button]{cursor:pointer}.memory-card[role=button]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:12px}.trip-list-panel{display:flex;flex-direction:column;gap:16px}.trip-create-form{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:16px;background:var(--color-surface-subtle);border:1px solid var(--color-border)}.form-panel-wrap{margin-top:18px}.trip-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.trip-card{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:18px;border:1px solid var(--color-border);background:var(--color-surface);text-align:left;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.trip-card:hover{transform:translateY(-2px);box-shadow:0 10px 22px #0f172a1a;border-color:var(--color-accent-soft-border)}.trip-card-top{display:flex;align-items:center;gap:8px}.trip-card-emoji{font-size:1.3rem}.trip-card-top h3{margin:0;font-size:1.05rem;color:var(--color-text-primary)}.trip-card-meta{display:flex;flex-direction:column;gap:2px;font-size:.84rem;color:var(--color-text-tertiary)}.trip-card-notes{margin:4px 0 0;font-size:.86rem;color:var(--color-text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.trip-detail-panel{display:flex;flex-direction:column;gap:18px}.trip-detail-header{display:flex;flex-direction:column;gap:14px}.trip-back-button{align-self:flex-start}.trip-detail-title{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.trip-detail-title-main h2{margin:0;font-size:1.2rem}.trip-detail-dates{margin:4px 0 0;color:var(--color-text-tertiary);font-size:.9rem}.trip-detail-notes{margin:4px 0 0;color:var(--color-text-secondary);font-size:.92rem}.trip-detail-actions{display:flex;gap:8px;flex-wrap:wrap}.trip-edit-form{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:16px;background:var(--color-surface-subtle);border:1px solid var(--color-border)}.route-map{padding:18px 14px 10px;border-radius:18px;background:var(--color-surface-subtle);border:1px solid var(--color-border);overflow-x:auto}.route-map-empty{color:var(--color-text-tertiary);font-size:.92rem;padding:14px;text-align:center}.route-map-track{display:flex;align-items:flex-start;min-width:max-content;padding-bottom:6px}.route-map-step{display:flex;align-items:center}.route-map-line{width:36px;height:2px;background:var(--color-border-input);margin:0 2px;flex-shrink:0}.route-map-node-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;width:92px}.route-map-node{width:40px;height:40px;border-radius:50%;border:2px solid var(--color-accent-soft-border);background:var(--color-surface);display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:transform .15s ease,box-shadow .15s ease}.route-map-node:hover{transform:scale(1.08)}.route-map-node.active{box-shadow:0 0 0 3px var(--color-accent-soft-bg-2);background:var(--color-accent-soft-bg)}.route-map-node-index{font-weight:700;font-size:.92rem}.route-map-label{display:flex;flex-direction:column;align-items:center;gap:1px;text-align:center}.route-map-label-emoji{font-size:.9rem}.route-map-label-title{font-size:.78rem;font-weight:600;color:var(--color-text-secondary);max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-map-label-date{font-size:.7rem;color:var(--color-text-muted)}.trip-stop-tabs{display:flex;flex-wrap:wrap;gap:8px}.trip-stop-tab{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-size:.88rem;white-space:nowrap}.trip-stop-tab-index{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--color-surface-subtle-2);font-size:.72rem;font-weight:700}.trip-stop-tab.active{background:var(--color-accent-soft-bg);border-color:var(--color-accent-soft-border);color:var(--color-accent-strong);font-weight:700}.trip-stop-tab.add{color:var(--color-accent-strong);border-style:dashed}@media(max-width:640px){.two-cols,.trip-card-grid{grid-template-columns:1fr}.trip-detail-title{flex-direction:column}}.map-url-preview-link{font-size:.82rem;color:var(--color-accent-strong);text-decoration:none;width:fit-content}.map-url-preview-link:hover{text-decoration:underline}.map-link-button{white-space:nowrap}.map-link-fallback{opacity:.82}.album-movie-open-btn{align-self:flex-start}.album-movie-overlay{position:fixed;inset:0;background:#0a0c14eb;z-index:1000;display:flex;align-items:center;justify-content:center;padding:18px}.album-movie-empty{display:flex;flex-direction:column;gap:14px;align-items:center;color:#fff}.album-movie-frame{width:min(720px,100%);max-height:100%;display:flex;flex-direction:column;gap:10px}.album-movie-progress-row{display:flex;gap:4px}.album-movie-progress-track{flex:1;height:5px;background:#ffffff38;border-radius:5px;overflow:hidden}.album-movie-progress-fill{height:100%;width:0%;background:linear-gradient(90deg,#f472b6,#a78bfa,#60a5fa);border-radius:5px}.album-movie-progress-fill.filled{width:100%}.album-movie-progress-fill.active{animation-name:album-movie-fill;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes album-movie-fill{0%{width:0%}to{width:100%}}.album-movie-top-bar{display:flex;justify-content:space-between;align-items:center;color:#fff}.album-movie-title{font-weight:700;font-size:.95rem;background:linear-gradient(135deg,#ec4899,#8b5cf6,#3b82f6);padding:6px 16px;border-radius:999px;box-shadow:0 4px 14px #8b5cf673}.album-movie-close{background:#ffffff1f;border:none;color:#fff;width:32px;height:32px;border-radius:50%;font-size:1rem;cursor:pointer}.album-movie-stage{position:relative;flex:1;min-height:320px;max-height:62vh;border-radius:24px;overflow:hidden;background:radial-gradient(circle at 50% 25%,#1e293b,#0b1120 60%,#020617);box-shadow:0 18px 50px #00000080,0 0 0 1px #8b5cf640;display:flex;align-items:center;justify-content:center}.album-movie-media{width:100%;height:100%;object-fit:contain;background:#000}.album-movie-kenburns{animation-name:album-movie-kenburns;animation-timing-function:ease-in-out;animation-fill-mode:forwards;animation-play-state:paused}.album-movie-kenburns.animating{animation-play-state:running}@keyframes album-movie-kenburns{0%{transform:scale(1.02) translate(0) rotate(0)}to{transform:scale(1.18) translate(-1.6%,1.2%) rotate(1deg)}}.album-movie-kenburns-alt{animation-name:album-movie-kenburns-alt}@keyframes album-movie-kenburns-alt{0%{transform:scale(1.18) translate(1.6%,-1.2%) rotate(-1deg)}to{transform:scale(1.02) translate(0) rotate(0)}}@keyframes album-pop-in{0%{opacity:0;transform:scale(.82) rotate(-2.5deg)}60%{opacity:1;transform:scale(1.04) rotate(.8deg)}to{opacity:1;transform:scale(1) rotate(0)}}.album-movie-pop{animation:album-pop-in .5s cubic-bezier(.34,1.56,.64,1) both}.album-movie-nav{position:absolute;top:50%;transform:translateY(-50%);background:#00000059;border:none;color:#fff;width:40px;height:40px;border-radius:50%;font-size:1.6rem;line-height:1;cursor:pointer;display:grid;place-items:center}.album-movie-nav.prev{left:10px}.album-movie-nav.next{right:10px}.album-movie-nav{transition:transform .18s cubic-bezier(.34,1.56,.64,1),background .15s ease}.album-movie-nav:hover{transform:translateY(-50%) scale(1.15);background:#8b5cf68c}.album-movie-caption{color:#fff;font-size:.9rem;text-align:center;padding:4px 14px;animation:album-pop-in .45s cubic-bezier(.34,1.56,.64,1) both}.album-movie-controls{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.album-movie-controls .ghost-button{background:#ffffff1f;color:#fff;border-color:#ffffff40}.album-movie-count{color:#fff;font-size:.82rem;opacity:.85}@media(max-width:640px){.album-movie-stage{max-height:50vh;min-height:240px}}.field-block{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}.field-label{font-size:.95rem;font-weight:700;color:var(--color-text-primary);display:inline-flex;align-items:center;gap:6px;letter-spacing:.02em}.field-required{font-size:.7rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#f472b6,#ec4899);padding:2px 8px;border-radius:999px;font-style:normal;margin-left:4px}.field-input-lg{width:100%;padding:14px 16px;border:1.5px solid var(--color-border-input);border-radius:14px;background:var(--color-surface);color:var(--color-text-primary);font-size:1rem;line-height:1.5;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.field-input-lg:focus{outline:none;border-color:#f472b6;box-shadow:0 0 0 4px #f472b62e;background:var(--color-surface)}.field-input-lg::placeholder{color:var(--color-text-muted);font-size:.95rem}.field-row{display:grid;gap:14px;margin-bottom:18px}.field-row.two-cols{grid-template-columns:1fr}@media(min-width:640px){.field-row.two-cols{grid-template-columns:1fr 1fr}}.category-chip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.category-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:14px 8px;background:var(--color-surface);border:2px solid var(--color-border);border-radius:16px;cursor:pointer;color:var(--color-text-primary);font:inherit;transition:transform .12s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease;min-height:84px;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.category-chip:hover{transform:translateY(-1px);box-shadow:0 4px 14px var(--color-panel-shadow)}.category-chip:active{transform:translateY(0)}.category-chip.selected{color:#fff;transform:translateY(-1px)}.category-chip-emoji{font-size:1.9rem;line-height:1}.category-chip-label{font-size:.8rem;font-weight:600;text-align:center;line-height:1.25}@media(max-width:480px){.category-chip-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.category-chip{min-height:76px;padding:10px 6px}.category-chip-emoji{font-size:1.6rem}.category-chip-label{font-size:.72rem}}.rating-stars{display:inline-flex;align-items:center;gap:4px;padding:8px 12px;border-radius:16px;background:linear-gradient(135deg,#fff7ed,#fef2f2);border:1.5px solid #fecaca;flex-wrap:wrap}[data-theme=dark] .rating-stars{background:linear-gradient(135deg,#fbbf241a,#f472b61a);border-color:#fbbf244d}.rating-star{background:transparent;border:none;font-size:2.1rem;padding:4px 6px;cursor:pointer;color:#cbd5e1;transition:transform .12s ease,filter .12s ease;line-height:1;-webkit-tap-highlight-color:transparent}.rating-star:hover{transform:scale(1.15)}.rating-star:active{transform:scale(.95)}.rating-star.filled{color:#f59e0b;filter:drop-shadow(0 2px 4px rgba(245,158,11,.35))}.rating-clear{margin-left:12px;padding:6px 12px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:999px;color:var(--color-text-secondary);font-size:.8rem;cursor:pointer;transition:background .15s ease}.rating-clear:hover{background:var(--color-surface-subtle)}@media(max-width:480px){.field-input-lg{padding:12px 14px;font-size:.95rem}.field-label{font-size:.88rem}.rating-star{font-size:1.9rem}}.memory-detail-panel{display:flex;flex-direction:column;gap:20px}.memory-detail-header{display:flex;flex-direction:column;gap:14px}.memory-detail-title-main{display:flex;flex-direction:column;gap:8px}.memory-detail-title-main h2{margin:0;font-size:1.35rem;line-height:1.35}.memory-detail-chip{align-self:flex-start;font-size:.82rem;padding:4px 12px}.memory-detail-subline{margin:0;color:var(--color-text-secondary);font-size:.95rem}.memory-detail-contributors{margin:0;display:flex;gap:14px;flex-wrap:wrap;font-size:.85rem;color:var(--color-text-tertiary)}.memory-detail-actions{display:flex;gap:8px;flex-wrap:wrap}.memory-detail-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.memory-detail-media-item{margin:0;display:flex;flex-direction:column;gap:6px}.memory-detail-media-item img,.memory-detail-media-item video{width:100%;border-radius:12px;object-fit:cover;max-height:320px}.memory-detail-media-item figcaption{display:flex;flex-direction:column;gap:2px;font-size:.82rem;color:var(--color-text-secondary)}.memory-detail-addedby{color:var(--color-text-tertiary);font-size:.78rem}.memory-detail-media-count{margin:8px 0 0;font-size:.82rem;color:var(--color-text-tertiary)}.memory-detail-fields{margin:0;display:flex;flex-direction:column;gap:10px}.memory-detail-field{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}.memory-detail-field dt{font-size:.85rem;color:var(--color-text-tertiary);min-width:130px}.memory-detail-field dd{margin:0;font-size:.95rem}.memory-detail-rating-num{margin-left:8px;font-size:.82rem;color:var(--color-text-tertiary)}.memory-detail-section h3{margin:0 0 8px;font-size:1.02rem}.memory-detail-notes{margin:0;white-space:pre-wrap;line-height:1.8;font-size:.95rem}.memory-detail-diary{background:var(--color-bg-soft, rgba(120, 140, 255, .06));border:1px solid rgba(120,140,255,.18);border-radius:14px;padding:16px}.memory-detail-costs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.memory-detail-costs li{display:flex;justify-content:space-between;gap:12px;font-size:.9rem}.contributor-label{margin:6px 0 0;font-size:.8rem;color:var(--color-text-tertiary)}.passkey-button{width:100%;padding:16px 20px;font-size:1.05rem;font-weight:700;letter-spacing:.02em;border-radius:16px}.passkey-hint{margin:8px 0 0;text-align:center;font-size:.85rem;color:var(--color-text-tertiary)}.passkey-fallback{margin-top:12px;padding:12px 14px;border:1px solid var(--color-danger-soft-border);background:var(--color-danger-soft-bg);border-radius:12px;font-size:.88rem}.passkey-fallback p{margin:0 0 4px}.passkey-fallback p:last-child{margin-bottom:0}.signin-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--color-text-muted);font-size:.82rem}.signin-divider:before,.signin-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.passkey-back{align-self:flex-start;margin-bottom:8px;font-size:.85rem}.passkey-prompt-dialog{max-width:420px}.passkey-prompt-dialog h3{display:flex;align-items:center;gap:6px}.media-carousel{position:relative}.media-carousel-track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;border-radius:14px}.media-carousel-track::-webkit-scrollbar{display:none}.media-carousel-item{margin:0;flex:0 0 85%;scroll-snap-align:center;display:flex;flex-direction:column;gap:6px;background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:14px;padding:8px}.media-carousel-item img,.media-carousel-item video{width:100%;border-radius:10px;object-fit:contain;max-height:320px;background:#0f172a}.media-carousel-item figcaption{display:flex;flex-direction:column;gap:2px;font-size:.82rem;color:var(--color-text-secondary);padding:0 4px 4px}.media-carousel-nav{position:absolute;top:40%;transform:translateY(-50%);z-index:2;width:40px;height:40px;border-radius:999px;border:1px solid var(--color-panel-border);background:var(--color-panel-bg);color:var(--color-text-primary);font-size:1.5rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 12px var(--color-panel-shadow);transition:background .15s ease,transform .12s ease;-webkit-tap-highlight-color:transparent}.media-carousel-nav:hover{background:var(--color-surface-subtle-2)}.media-carousel-nav:active{transform:translateY(-50%) scale(.94)}.media-carousel-nav.prev{left:6px}.media-carousel-nav.next{right:6px}@media(min-width:761px){.media-carousel-item{flex-basis:55%}.media-carousel-item img,.media-carousel-item video{max-height:380px}}@media(prefers-reduced-motion:reduce){.media-carousel-track{scroll-behavior:auto}}
