:root,[data-theme=sage-linen]{--bg-base: #F8F7F4;--bg-surface: #EFECE6;--bg-card: #FFFFFF;--border: #E3DFD6;--text: #2D3732;--text-muted: #66736C;--accent: #4A6B5D;--accent-on-surface: #FFFFFF;--success: #4E7A68;--warn: #B88242;--danger: #B05851;--radius-card: 16px;--radius-btn: 10px;--shadow-subtle: 0 4px 20px rgba(45, 55, 50, .05);--transition-calm: .2s cubic-bezier(.16, 1, .3, 1);color-scheme:light}[data-theme=dusk-slate]{--bg-base: #111418;--bg-surface: #181D24;--bg-card: #1F2630;--border: #2D3745;--text: #E6EDF3;--text-muted: #8B98A5;--accent: #7AA2F7;--accent-on-surface: #0E141E;--success: #68B684;--warn: #D99B52;--danger: #E06C75;--radius-card: 16px;--radius-btn: 10px;--shadow-subtle: 0 4px 24px rgba(0, 0, 0, .4);--transition-calm: .2s cubic-bezier(.16, 1, .3, 1);color-scheme:dark}[data-theme=nordic-mist]{--bg-base: #F1F5F9;--bg-surface: #E2E8F0;--bg-card: #FFFFFF;--border: #CBD5E1;--text: #1E293B;--text-muted: #64748B;--accent: #3B82A6;--accent-on-surface: #FFFFFF;--success: #3D7D70;--warn: #B87333;--danger: #A84855;--radius-card: 16px;--radius-btn: 10px;--shadow-subtle: 0 4px 20px rgba(30, 41, 59, .05);--transition-calm: .2s cubic-bezier(.16, 1, .3, 1);color-scheme:light}[data-theme=matcha-night]{--bg-base: #121714;--bg-surface: #19211C;--bg-card: #202B24;--border: #2C3A32;--text: #E3ECE5;--text-muted: #8A9B8F;--accent: #5E8C71;--accent-on-surface: #0F1A13;--success: #68A67E;--warn: #C4924A;--danger: #BD5D55;--radius-card: 16px;--radius-btn: 10px;--shadow-subtle: 0 4px 24px rgba(0, 0, 0, .4);--transition-calm: .2s cubic-bezier(.16, 1, .3, 1);color-scheme:dark}:root{--calm-base: var(--bg-base);--calm-surface: var(--bg-surface);--calm-card: var(--bg-card);--calm-border: var(--border);--calm-text: var(--text);--calm-muted: var(--text-muted);--calm-accent: var(--accent);--calm-accent-on-surface: var(--accent-on-surface);--calm-danger: var(--danger);--calm-danger-bg: rgba(176, 88, 81, .08);--calm-danger-border: var(--danger);--calm-shadow: var(--shadow-subtle);--font-heading: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%;-moz-text-size-adjust:100%;scroll-padding-top:96px}body{background-color:var(--bg-base);color:var(--text);font-family:var(--font-body);min-height:100vh;min-height:100dvh;overflow-x:clip;line-height:1.55;padding-bottom:48px;transition:background-color var(--transition-calm),color var(--transition-calm);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--text);font-weight:700;line-height:1.3}a{color:var(--accent);text-decoration:none;transition:color var(--transition-calm)}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.tabular-num,.countdown-num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum";font-family:ui-monospace,SF Mono,Monaco,Cascadia Code,Menlo,Consolas,monospace}.current-price,.original-price,.detail-current-price,.detail-original-price,.row-price,.journal-price,.stat-value,.stat-value-big,.avoided-amount{font-variant-numeric:tabular-nums}body:has(.modal-backdrop:not(.hidden)),body:has(#mobile-drawer:not(.hidden)){overflow:hidden}.glass-panel{background-color:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-subtle);border-radius:var(--radius-card);transition:background-color var(--transition-calm),border-color var(--transition-calm)}.glass-panel-inner{background-color:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-btn);padding:18px;margin-bottom:16px;transition:background-color var(--transition-calm),border-color var(--transition-calm)}.app-header{background-color:var(--bg-surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;padding-top:env(safe-area-inset-top);transition:background-color var(--transition-calm),border-color var(--transition-calm)}.header-container{max-width:1200px;margin:0 auto;padding:16px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px}.brand{display:flex;align-items:center;gap:12px}.brand-icon{font-size:1.8rem;line-height:1}.brand-text h1{font-size:1.35rem;font-weight:700;color:var(--text);letter-spacing:-.01em}.tagline{font-size:.8rem;color:var(--text-muted)}.header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.header-theme-switcher{display:flex;align-items:center}.tab-nav{display:flex;gap:4px;padding:0 24px;max-width:1200px;margin:0 auto;overflow-x:auto;border-bottom:1px solid var(--border)}.tab-btn{display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid transparent;border-bottom:none;color:var(--text-muted);padding:10px 18px;font-size:.875rem;font-weight:500;border-radius:var(--radius-btn) var(--radius-btn) 0 0;cursor:pointer;white-space:nowrap;transition:all var(--transition-calm);min-height:44px;font-family:var(--font-body)}.tab-btn:hover{color:var(--text);background-color:var(--bg-card)}.tab-btn.is-active{color:var(--text);background-color:var(--bg-card);border-color:var(--border);border-bottom:2px solid var(--accent);font-weight:600}.main-content{max-width:1200px;margin:28px auto;padding:0 24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:var(--radius-btn);font-weight:500;font-size:.875rem;cursor:pointer;border:1px solid transparent;transition:background-color var(--transition-calm),color var(--transition-calm),border-color var(--transition-calm),filter var(--transition-calm);font-family:var(--font-body);line-height:1.4;min-height:44px;text-decoration:none}.btn-primary{background-color:var(--accent);color:var(--accent-on-surface);border-color:var(--accent)}.btn-primary:hover{filter:brightness(.93)}.btn-secondary{background-color:var(--bg-surface);color:var(--text);border-color:var(--border)}.btn-secondary:hover{background-color:var(--bg-base);border-color:var(--text-muted)}.btn-sm{min-height:38px;padding:6px 12px;font-size:.825rem}.btn-xs{min-height:30px;padding:4px 8px;font-size:.75rem}.btn-lg{min-height:44px;padding:12px 22px;font-size:.95rem}.btn-icon{min-width:44px;min-height:44px;padding:8px;border-radius:var(--radius-btn);background:var(--bg-surface);border:1px solid var(--border);color:var(--text-muted)}.btn-icon:hover{color:var(--danger);border-color:var(--danger);background:var(--bg-card)}.btn-buy.locked,.btn-detail-buy.locked{background-color:var(--bg-surface);color:var(--text-muted);border-color:var(--border);cursor:not-allowed;opacity:.7}.btn-buy.active,.btn-detail-buy.active{background-color:var(--success);color:var(--accent-on-surface);border-color:var(--success)}.btn-purchased,.btn-purchased-lg{font-size:.85rem;font-weight:600;color:var(--success);display:inline-flex;align-items:center;gap:6px;background:var(--bg-surface);padding:6px 12px;border-radius:var(--radius-btn);border:1px solid var(--border);min-height:38px}.btn-warn{background:transparent;border-color:var(--border);color:var(--warn)}.btn-warn:hover{background:var(--bg-surface);border-color:var(--warn)}.btn-restore{background:var(--bg-surface);border-color:var(--border);color:var(--accent)}.btn-restore:hover{border-color:var(--accent);background:var(--bg-card)}.btn-logout{background:var(--bg-surface);color:var(--text-muted);border:1px solid var(--border);min-height:44px;min-width:44px;padding:8px 14px;border-radius:var(--radius-btn);font-size:.85rem;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all var(--transition-calm);font-family:var(--font-body)}.btn-logout:hover{color:var(--text);border-color:var(--text-muted);background:var(--bg-card)}.btn-mobile-menu{display:none}.theme-switcher-pill{display:inline-flex;align-items:center;background-color:var(--bg-base);border:1px solid var(--border);border-radius:999px;padding:3px;gap:2px;transition:background-color var(--transition-calm),border-color var(--transition-calm)}.theme-pill-btn{display:inline-flex;align-items:center;gap:6px;background:transparent;border:none;border-radius:999px;color:var(--text-muted);font-size:.775rem;font-weight:500;padding:8px 14px;min-height:44px;min-width:44px;cursor:pointer;transition:background-color var(--transition-calm),color var(--transition-calm);font-family:var(--font-body);white-space:nowrap}.theme-pill-btn:hover{color:var(--text)}.theme-pill-btn.is-active{background-color:var(--accent);color:var(--accent-on-surface);font-weight:600}.theme-pill-tag{font-size:.7rem;opacity:.75;text-transform:capitalize}.theme-mode-symbol{font-size:.85rem;line-height:1}.login-theme-bar{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:24px}.login-theme-label{font-size:.8rem;font-weight:500;color:var(--text-muted)}.theme-switcher-login{flex-wrap:wrap;justify-content:center}.mobile-drawer{position:fixed;top:0;left:0;width:100%;height:100vh;height:100dvh;z-index:1000;display:flex;justify-content:flex-end}.mobile-drawer-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#00000073}.mobile-drawer-sheet{position:relative;width:85%;max-width:360px;height:100%;background:var(--bg-card);border-left:1px solid var(--border);box-shadow:var(--shadow-subtle);padding:24px;padding-top:max(24px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:24px;z-index:1;overflow-y:auto}.mobile-drawer-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);padding-bottom:16px}.mobile-drawer-brand{display:flex;align-items:center;gap:10px}.mobile-drawer-brand h2{font-size:1.25rem;color:var(--text)}.mobile-drawer-group-title{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);display:block;margin-bottom:12px}.theme-switcher-mobile-list{display:flex;flex-direction:column;gap:8px}.theme-mobile-btn{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;min-height:48px;border-radius:var(--radius-btn);background:var(--bg-surface);border:1px solid var(--border);color:var(--text);font-family:var(--font-body);cursor:pointer;transition:background-color var(--transition-calm),border-color var(--transition-calm),color var(--transition-calm);text-align:left}.theme-mobile-btn:hover{border-color:var(--text-muted)}.theme-mobile-btn.is-active{background-color:var(--accent);color:var(--accent-on-surface);border-color:var(--accent)}.theme-mobile-btn-text{display:flex;flex-direction:column;flex:1}.theme-mobile-name{font-size:.9rem;font-weight:600}.theme-mobile-mode{font-size:.75rem;opacity:.8}.theme-check-icon{font-weight:700;font-size:1rem}.mobile-drawer-user-section{margin-top:auto;border-top:1px solid var(--border);padding-top:20px;display:flex;flex-direction:column;gap:12px}.mobile-user-email{font-size:.85rem;color:var(--text-muted);word-break:break-all}.btn-mobile-logout{width:100%}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:16px;padding:24px 28px;margin-bottom:28px}.stat-card{display:flex;flex-direction:column}.stat-label{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.stat-value{font-size:1.75rem;font-weight:700;font-family:var(--font-heading);color:var(--text);margin-top:4px}.wishlist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:24px}.product-card{display:flex;flex-direction:column;overflow:hidden;background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-subtle);transition:transform var(--transition-calm),box-shadow var(--transition-calm),border-color var(--transition-calm);cursor:pointer}.product-card:hover{transform:translateY(-2px);border-color:var(--accent)}.card-image-wrapper{position:relative;width:100%;height:200px;background-color:var(--bg-surface);overflow:hidden;border-bottom:1px solid var(--border)}.card-image{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-calm)}.product-card:hover .card-image{transform:scale(1.03)}.card-image-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#00000040;display:flex;justify-content:center;align-items:center;opacity:0;transition:opacity var(--transition-calm)}.product-card:hover .card-image-overlay{opacity:1}.overlay-text{background:var(--accent);color:var(--accent-on-surface);padding:6px 14px;border-radius:var(--radius-btn);font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:6px}.store-badge,.store-badge-lg{padding:4px 10px;border-radius:999px;font-size:.725rem;font-weight:600;letter-spacing:.03em;background:var(--bg-surface);color:var(--text);border:1px solid var(--border);display:inline-flex;align-items:center;gap:4px}.store-badge{position:absolute;top:12px;left:12px;z-index:2}.price-drop-badge{position:absolute;top:12px;right:12px;background:var(--bg-surface);color:var(--success);border:1px solid var(--border);padding:4px 10px;border-radius:999px;font-size:.725rem;font-weight:700;z-index:2}.regret-badge{position:absolute;top:12px;right:12px;background:var(--bg-surface);border:1px solid var(--border);color:var(--warn);font-size:.725rem;font-weight:600;padding:4px 10px;border-radius:999px;z-index:3}.product-card.is-regret{opacity:.82}.product-card.is-regret .card-image{filter:grayscale(.5)}.card-content{padding:22px;display:flex;flex-direction:column;flex-grow:1}.card-title{font-size:1.05rem;font-weight:600;line-height:1.5;margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;height:3em}.card-link-description{font-size:.825rem;color:var(--text-muted);line-height:1.5;margin-bottom:16px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;height:3.6em;background:var(--bg-surface);padding:8px 12px;border-radius:var(--radius-btn);border:1px solid var(--border)}.card-price-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:16px}.price-badge-container{display:flex;align-items:baseline;gap:8px;background:var(--bg-surface);border:1px solid var(--border);padding:6px 12px;border-radius:var(--radius-btn);max-width:100%;min-width:0}.price-label-tag{font-size:.65rem;font-weight:700;letter-spacing:.08em;color:var(--text-muted)}.current-price{font-size:1.2rem;font-weight:700;font-family:var(--font-heading);color:var(--text)}.current-price.price-unknown{font-size:.9rem;color:var(--warn);font-weight:600}.original-price{font-size:.85rem;color:var(--text-muted);text-decoration:line-through;margin-left:6px}.sparkline-wrapper{display:flex;align-items:center;gap:6px;min-width:0;max-width:100%}.sparkline-svg{max-width:100%;height:auto}.sparkline-placeholder{font-size:.725rem;color:var(--text-muted)}.sparkline-trend{font-size:.75rem;font-weight:700}.trend-down{color:var(--success)}.trend-up{color:var(--danger)}.timer-container{background:var(--bg-surface);border:1px solid var(--border);padding:12px 14px;border-radius:var(--radius-btn);margin-bottom:16px}.timer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.825rem}.timer-badge{display:flex;align-items:center;gap:5px;color:var(--text-muted)}.timer-status{font-weight:600}.timer-status.ready{color:var(--success)}.timer-status.waiting{color:var(--warn)}.progress-bar-track{width:100%;height:6px;background:var(--bg-card);border:1px solid var(--border);border-radius:999px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:999px;transition:width var(--transition-calm),background-color var(--transition-calm);background-color:var(--accent)}.progress-bar-fill.stage-accent{background-color:var(--accent)}.progress-bar-fill.stage-warn{background-color:var(--warn)}.progress-bar-fill.stage-ready,.progress-bar-fill.ready{background-color:var(--success)}.card-notes{font-size:.8rem;color:var(--text-muted);font-style:italic;margin-bottom:16px;background:var(--bg-surface);padding:8px 12px;border-radius:var(--radius-btn);border:1px solid var(--border)}.card-actions{display:flex;align-items:center;gap:8px;margin-top:auto}.empty-state{text-align:center;padding:56px 28px;max-width:520px;margin:56px auto;background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-subtle)}.empty-icon{font-size:3.5rem;margin-bottom:16px;line-height:1}.empty-state h2{font-size:1.4rem;margin-bottom:8px;color:var(--text)}.empty-state p{color:var(--text-muted);margin-bottom:24px;font-size:.925rem;line-height:1.6}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100vh;height:100dvh;background:#00000073;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px;overflow-y:auto}.modal-card{width:100%;max-width:520px;padding:32px;background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-subtle)}.detail-modal-card{max-width:820px;padding:28px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.modal-header h2{font-size:1.3rem;display:flex;align-items:center;gap:8px}.btn-close{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-muted);font-size:1.4rem;cursor:pointer;width:44px;height:44px;min-width:44px;min-height:44px;border-radius:50%;display:flex;justify-content:center;align-items:center;transition:all var(--transition-calm)}.btn-close:hover{color:var(--text);border-color:var(--text-muted);background:var(--bg-base)}.detail-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:28px}@media (max-width: 720px){.detail-layout{grid-template-columns:1fr}}.detail-image-section{display:flex;flex-direction:column;gap:12px}.detail-image-container{width:100%;height:300px;border-radius:var(--radius-btn);overflow:hidden;background:var(--bg-surface);border:1px solid var(--border)}.detail-image{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-calm)}.detail-image:hover{transform:scale(1.02)}.seller-info{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-muted);background:var(--bg-surface);border:1px solid var(--border);padding:8px 12px;border-radius:var(--radius-btn)}.detail-info-section{display:flex;flex-direction:column}.detail-title{font-size:1.25rem;font-weight:700;line-height:1.4;margin-bottom:16px;color:var(--text)}.price-main{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px}.detail-current-price{font-size:1.8rem;font-weight:800;font-family:var(--font-heading);color:var(--text)}.detail-original-price{font-size:1rem;color:var(--text-muted);text-decoration:line-through}.detail-savings-badge{background:var(--bg-surface);color:var(--success);border:1px solid var(--border);padding:4px 10px;border-radius:999px;font-size:.8rem;font-weight:700}.timer-box-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:.85rem}.timer-title{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--text-muted)}.cooling-status-pill{padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:700;border:1px solid var(--border)}.cooling-status-pill.ready{background:var(--bg-surface);color:var(--success)}.cooling-status-pill.waiting{background:var(--bg-surface);color:var(--warn)}.timer-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.time-stat{display:flex;flex-direction:column}.stat-meta{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.stat-detail{font-size:.9rem;font-weight:600;color:var(--text);margin-top:2px}.detail-description-box{max-height:220px;overflow-y:auto}.description-header{display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;color:var(--text-muted);margin-bottom:12px}.btn-refresh-desc{margin-left:auto;font-size:.75rem;padding:3px 8px}.description-body-formatted{display:flex;flex-direction:column;gap:6px;font-size:.875rem;line-height:1.55;color:var(--text)}.desc-heading{font-size:.875rem;font-weight:700;color:var(--accent);margin-top:6px;border-bottom:1px solid var(--border);padding-bottom:3px}.desc-spec-row{display:flex;align-items:baseline;gap:8px;background:var(--bg-surface);border:1px solid var(--border);padding:4px 10px;border-radius:var(--radius-btn)}.desc-spec-key{color:var(--text);font-size:.8rem;font-weight:700;white-space:nowrap}.desc-spec-val{color:var(--text-muted);font-size:.825rem}.desc-bullet-row{display:flex;align-items:flex-start;gap:8px;padding:2px 4px}.bullet-dot{color:var(--accent);font-weight:800;font-size:1rem;line-height:1}.desc-paragraph{margin-bottom:2px}.description-empty-state{display:flex;flex-direction:column;gap:4px}.empty-desc-text{color:var(--text-muted);font-style:italic}.desc-hint{font-size:.75rem;color:var(--text-muted)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.detail-notes-box{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-btn);padding:12px 14px;margin-bottom:20px}.notes-header{display:flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;color:var(--text-muted);margin-bottom:6px}.notes-body{font-size:.9rem;color:var(--text)}.detail-actions{display:flex;align-items:center;gap:10px;margin-top:auto;padding-top:16px;border-top:1px solid var(--border)}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:.85rem;font-weight:600;margin-bottom:8px;color:var(--text)}.form-input{width:100%;padding:12px 14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-btn);color:var(--text);font-family:var(--font-body);font-size:1rem;transition:border-color var(--transition-calm)}.form-input:focus{outline:none;border-color:var(--accent)}.form-select,select.form-input{width:100%;padding:12px 14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-btn);color:var(--text);font-family:var(--font-body);font-size:1rem;min-height:44px;transition:border-color var(--transition-calm)}.radio-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.radio-label{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-btn);font-size:.85rem;color:var(--text);cursor:pointer;min-height:44px;transition:border-color var(--transition-calm)}.radio-label:hover{border-color:var(--accent)}.detect-badge{font-size:.8rem;font-weight:600;margin-top:8px;padding:6px 10px;border-radius:var(--radius-btn);display:inline-block;background:var(--bg-surface);border:1px solid var(--border);color:var(--text)}.modal-error{background:var(--bg-surface);border:1px solid var(--danger);color:var(--danger);padding:12px 14px;border-radius:var(--radius-btn);font-size:.85rem;margin-bottom:20px}.modal-footer{display:flex;justify-content:flex-end;gap:12px}.hidden{display:none!important}.app-footer{text-align:center;font-size:.8rem;color:var(--text-muted);margin-top:48px;padding-top:24px;border-top:1px solid var(--border);max-width:1200px;margin-left:auto;margin-right:auto}.stats-page{display:flex;flex-direction:column;gap:20px}.stat-value-big{font-size:1.9rem;font-weight:800;color:var(--accent);line-height:1.1;margin:4px 0}.stat-item-title{font-size:.9rem;font-weight:600;color:var(--text);margin-top:6px;line-height:1.3}.stat-subnote{font-size:.75rem;color:var(--text-muted);margin-top:3px}.dim{opacity:.5}.stat-card.full{width:100%}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:16px}.stats-grid .stat-card{padding:22px}.hour-heatmap{display:flex;align-items:flex-end;gap:3px;height:90px;margin-top:12px;padding:6px 2px 0;border-bottom:1px solid var(--border)}.hour-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:3px}.hour-bar-fill{width:100%;max-width:16px;background:var(--accent);border-radius:3px 3px 0 0;min-height:2px;transition:height var(--transition-calm)}.hour-label{font-size:.6rem;color:var(--text-muted)}.stat-row{display:flex;align-items:center;gap:10px;margin-top:8px}.stat-row-label{flex:0 0 110px;font-size:.8rem;font-weight:600;text-transform:capitalize;color:var(--text)}.stat-bar{flex:1;background:var(--bg-surface);border:1px solid var(--border);border-radius:999px;height:8px;overflow:hidden}.stat-bar-fill{height:100%;background:var(--accent);border-radius:999px;transition:width var(--transition-calm)}.stat-bar-fill.is-peak{background:var(--success)}.stat-row-val{flex:0 0 auto;font-size:.78rem;color:var(--text-muted)}body.login-active{padding-bottom:0;background-color:var(--bg-base)}.login-view-wrapper{min-height:100vh;min-height:100dvh;width:100%;display:flex;align-items:center;justify-content:center;background-color:var(--bg-base);color:var(--text);padding:32px 16px;box-sizing:border-box;overflow-x:hidden;font-family:var(--font-body);transition:background-color var(--transition-calm),color var(--transition-calm)}.login-card{width:100%;max-width:420px;background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);padding:40px 32px;box-sizing:border-box;box-shadow:var(--shadow-subtle);transition:background-color var(--transition-calm),border-color var(--transition-calm)}.login-header{text-align:center;margin-bottom:24px}.login-logo-mark{font-size:2.25rem;line-height:1;margin-bottom:12px}.login-brand{font-size:1.6rem;font-weight:700;color:var(--text);margin:0 0 6px;letter-spacing:-.01em}.login-subtitle{font-size:.875rem;color:var(--text-muted);margin:0;line-height:1.45}.login-form{display:flex;flex-direction:column;gap:18px}.login-error-banner{background-color:var(--bg-surface);border:1px solid var(--danger);color:var(--danger);border-radius:var(--radius-btn);padding:10px 14px;font-size:.85rem;line-height:1.4;margin-bottom:4px}.login-error-banner.hidden{display:none}.login-field{display:flex;flex-direction:column;gap:6px}.login-label{font-size:.825rem;font-weight:500;color:var(--text)}.login-input{width:100%;height:44px;padding:10px 14px;box-sizing:border-box;background-color:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-btn);color:var(--text);font-size:1rem;font-family:inherit;transition:border-color var(--transition-calm)}.login-input::placeholder{color:var(--text-muted);opacity:.7}.login-input:focus{outline:none;border-color:var(--accent)}.login-input:disabled{opacity:.6;cursor:not-allowed}.login-options-row{display:flex;align-items:center;justify-content:flex-start;min-height:44px}.login-checkbox-label{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 6px;font-size:.85rem;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border-radius:var(--radius-btn)}.login-checkbox-label:focus-within{outline:2px solid var(--accent);outline-offset:2px}.login-checkbox-label input[type=checkbox]{width:18px;height:18px;flex:0 0 auto;accent-color:var(--accent);cursor:pointer}.login-submit-btn{width:100%;min-height:44px;height:44px;display:flex;align-items:center;justify-content:center;gap:8px;background-color:var(--accent);color:var(--accent-on-surface);border:1px solid var(--accent);border-radius:var(--radius-btn);font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;transition:filter var(--transition-calm);margin-top:6px}.login-submit-btn:hover:not(:disabled){filter:brightness(.93)}.login-submit-btn:disabled{opacity:.65;cursor:not-allowed}.login-spinner{width:16px;height:16px;border:2px solid var(--accent-on-surface);border-top-color:transparent;border-radius:50%;animation:calm-spin .7s linear infinite}.login-spinner.hidden{display:none}@keyframes calm-spin{to{transform:rotate(360deg)}}.login-footer{text-align:center;margin-top:8px}.login-footnote{font-size:.8rem;color:var(--text-muted);margin:0;line-height:1.4}@media (max-width: 900px){.header-theme-switcher{display:none}.btn-mobile-menu{display:inline-flex}.btn-logout span{display:none}.btn-logout{padding:8px}}@media (max-width: 600px){.header-container{padding:12px 16px}.main-content{padding:0 16px;margin:20px auto}.tagline,.app-header .btn-primary span{display:none}.app-header .btn-primary{padding:8px 12px}.login-card{border-radius:var(--radius-btn);padding:28px 20px}.radio-options{grid-template-columns:1fr}}.offline-banner{background-color:var(--bg-surface);border:1px solid var(--warn);color:var(--text);padding:10px 18px;border-radius:var(--radius-btn);margin:16px auto 0;max-width:1200px;display:flex;align-items:center;gap:10px;font-size:.875rem;font-weight:500;box-shadow:var(--shadow-subtle);animation:fadeIn .2s ease-out}.life-energy-tag{font-size:.825em;font-weight:400;color:var(--text-muted);letter-spacing:.01em;white-space:nowrap}.btn-header-wage{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-weight:500;padding:8px 14px;min-height:40px;border:1px solid var(--border);background:var(--bg-card);color:var(--text);border-radius:var(--radius-btn);transition:all .2s cubic-bezier(.16,1,.3,1)}.btn-header-wage:hover{background:var(--bg-surface);border-color:var(--accent)}.wage-modal-card{max-width:480px;width:92%;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);padding:24px;box-shadow:var(--shadow-subtle)}.wage-modal-explainer{font-size:.925rem;line-height:1.6;color:var(--text-muted);margin-bottom:20px}.wage-input-group{display:flex;gap:10px;align-items:center}.wage-currency-select{width:110px;flex-shrink:0;min-height:44px}.wage-amount-input{flex:1;min-height:44px}.drawer-group-sub{font-size:.8rem;color:var(--text-muted);margin:-4px 0 12px;line-height:1.4}.drawer-wage-box{display:flex;flex-direction:column;gap:12px}.drawer-wage-inputs{display:flex;gap:8px}.drawer-currency-select{width:100px;flex-shrink:0;min-height:44px}.drawer-wage-input{flex:1;min-height:44px}.drawer-wage-actions{display:flex;gap:8px}.drawer-wage-actions .btn{flex:1;min-height:44px}.journal-header-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);padding:24px;margin-bottom:24px;box-shadow:var(--shadow-subtle)}.journal-stats-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:16px;margin-bottom:12px}.journal-intro-text{font-size:.9rem;color:var(--text-muted);line-height:1.5;border-top:1px solid var(--border);padding-top:12px;margin-top:8px}.decision-journal-feed{display:flex;flex-direction:column;gap:20px}.journal-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);padding:20px 24px;box-shadow:var(--shadow-subtle);transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1),border-color .2s ease-out}.journal-card:hover{border-color:var(--accent)}.journal-card-top{display:flex;gap:18px;align-items:flex-start}.journal-thumb-container{width:72px;height:72px;border-radius:12px;overflow:hidden;flex-shrink:0;background:var(--bg-surface);border:1px solid var(--border);cursor:pointer}.journal-thumb{width:100%;height:100%;object-fit:cover;display:block}.journal-meta-section{flex:1;min-width:0}.journal-badges-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}.journal-title{font-size:1.1rem;font-weight:600;color:var(--text);margin-bottom:6px;line-height:1.35;cursor:pointer;word-break:break-word}.journal-title:hover{color:var(--accent)}.journal-price-dates{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:.875rem}.journal-price-row{display:flex;align-items:baseline;gap:4px}.journal-price{font-weight:700;color:var(--text)}.journal-dates-row{display:flex;align-items:center;gap:6px;color:var(--text-muted);font-size:.8rem}.date-item{display:inline-flex;align-items:center;gap:4px}.date-sep{opacity:.5}.journal-reflections-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:18px 0 14px}.journal-reflection-col{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:8px}.col-header{display:flex;align-items:center;gap:8px}.col-indicator-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot-then{background:var(--warn)}.dot-now{background:var(--success)}.col-title{font-size:.725rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.col-body{font-size:.925rem;line-height:1.55}.reflection-quote{color:var(--text);font-style:italic;border-left:2px solid var(--border);padding-left:10px;margin:0}.highlight-now{border-left-color:var(--success)}.reflection-empty{font-size:.85rem;color:var(--text-muted);font-style:italic}.journal-card-footer{display:flex;justify-content:flex-end;border-top:1px solid var(--border);padding-top:12px;margin-top:6px}.journal-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.resolve-modal-card{max-width:480px;width:92%;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);padding:24px;box-shadow:var(--shadow-subtle)}.resolve-prompt-subtitle{font-size:.925rem;color:var(--text-muted);line-height:1.55;margin-bottom:14px}.resolve-item-preview{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:16px}.resolve-preview-title{font-size:.95rem;font-weight:600;color:var(--text);line-height:1.35}.resolve-preview-price{font-size:.875rem;color:var(--text-muted);margin-top:4px}.resolve-textarea{min-height:80px;resize:vertical}.resolve-modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.resolve-delete-alt{margin-top:12px;text-align:center;border-top:1px solid var(--border);padding-top:12px}.btn-text-link{background:none;border:none;color:var(--danger);font-size:.825rem;cursor:pointer;text-decoration:underline;padding:4px 8px;min-height:36px;transition:opacity .2s ease-out}.btn-text-link:hover{opacity:.8}.review-page{display:flex;flex-direction:column;gap:24px;max-width:1200px;margin:0 auto}.review-header-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);padding:28px;box-shadow:var(--shadow-subtle)}.review-pill{display:inline-flex;align-items:center;gap:6px;font-size:.775rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:8px}.review-date-range{font-size:.95rem;color:var(--text-muted);margin-top:4px}.review-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:16px;margin:20px 0}.review-action-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:18px;margin-top:8px}.btn-save-digest{min-height:44px;font-size:.925rem;padding:10px 20px}.digest-feedback-msg{font-size:.875rem;font-weight:600;color:var(--success);animation:fadeIn .2s ease-out}.review-sections-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:20px}.review-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);padding:20px;box-shadow:var(--shadow-subtle);display:flex;flex-direction:column}.review-section-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.section-title-wrap{display:flex;align-items:center;gap:8px}.section-title-wrap h3{font-size:1rem;font-weight:600;color:var(--text)}.section-badge{background:var(--bg-surface);border:1px solid var(--border);border-radius:20px;padding:2px 10px;font-size:.8rem;font-weight:700;color:var(--text-muted)}.icon-ready{color:var(--success)}.icon-avoided{color:var(--warn)}.icon-nearing{color:var(--accent)}.section-desc{font-size:.825rem;color:var(--text-muted);margin-bottom:14px;line-height:1.4}.section-empty-row{font-size:.85rem;color:var(--text-muted);font-style:italic;padding:16px 0;text-align:center;background:var(--bg-surface);border-radius:8px;border:1px dashed var(--border)}.review-item-list{list-style:none;display:flex;flex-direction:column;gap:10px}.review-list-row{min-width:0;background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;cursor:pointer;transition:border-color .2s ease-out,transform .2s ease-out}.review-list-row:hover{border-color:var(--accent)}.review-row-main{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;min-width:0}.row-title{font-size:.925rem;font-weight:600;color:var(--text);min-width:0;flex:1 1 auto;white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.row-price{font-size:.85rem;font-weight:700;color:var(--text);flex-shrink:0}.review-row-meta{display:flex;align-items:center;gap:8px;font-size:.8rem}.review-row-note{font-size:.8rem;color:var(--text-muted);font-style:italic;padding-left:8px;border-left:2px solid var(--border);margin-top:4px}.days-left-pill{font-size:.775rem;color:var(--warn);font-weight:600}.mini-progress-bar{flex:1;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.mini-progress-fill{height:100%;background:var(--accent);border-radius:3px}.saved-digests-history{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);padding:24px;box-shadow:var(--shadow-subtle)}.history-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;border-bottom:1px solid var(--border);padding-bottom:12px}.history-count{font-size:.85rem;color:var(--text-muted)}.history-empty{padding:20px;text-align:center;color:var(--text-muted);font-size:.9rem}.saved-digests-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:16px}.saved-digest-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:8px}.digest-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.digest-week-tag{font-size:.8rem;font-weight:700;text-transform:uppercase;color:var(--accent)}.digest-saved-date{font-size:.775rem;color:var(--text-muted)}.digest-card-avoided{display:flex;align-items:baseline;gap:6px;font-size:.85rem}.avoided-label{color:var(--text-muted)}.avoided-amount{font-weight:700;color:var(--warn)}.digest-summary-text{font-size:.875rem;color:var(--text);line-height:1.5}.detail-reflection-box{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-top:12px}.detail-reflection-resolve{border-left:3px solid var(--success)}.card-reflection-note{font-size:.825rem;color:var(--text);background:var(--bg-surface);padding:6px 10px;border-radius:6px;border-left:2px solid var(--accent);margin-top:6px}.capture-mode-tabs{display:flex;gap:4px;background:var(--bg-surface);border:1px solid var(--border);border-radius:999px;padding:3px;margin-bottom:10px}.capture-mode-tab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 12px;border:none;border-radius:999px;background:transparent;color:var(--text-muted);font-family:var(--font-body);font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background-color var(--transition-calm),color var(--transition-calm)}.capture-mode-tab:hover{color:var(--text)}.capture-mode-tab.is-active{background:var(--accent);color:var(--accent-on-surface)}.capture-mode-hint{font-size:.78rem;color:var(--text-muted);text-align:center;margin-bottom:18px}.subnav{margin-bottom:22px}.subnav-pills{display:flex;flex-wrap:wrap;gap:8px}.subnav-btn{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 16px;background:var(--bg-card);color:var(--text-muted);border:1px solid var(--border);border-radius:999px;font-family:var(--font-body);font-size:.825rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background-color var(--transition-calm),color var(--transition-calm),border-color var(--transition-calm)}.subnav-btn:hover{color:var(--text);border-color:var(--text-muted)}.subnav-btn.is-active{background:var(--accent);color:var(--accent-on-surface);border-color:var(--accent);font-weight:600}.subnav-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;padding:1px 7px;border:1px solid currentColor;border-radius:999px;font-size:.72rem;opacity:.85}.subnav-select{display:none}.reading-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.tag-chip-row{display:flex;flex-wrap:wrap;gap:8px}.tag-chip{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:6px 16px;background:var(--bg-surface);border:1px solid var(--border);border-radius:999px;color:var(--text);font-family:var(--font-body);font-size:.8rem;font-weight:500;cursor:pointer;transition:background-color var(--transition-calm),color var(--transition-calm),border-color var(--transition-calm)}.tag-chip:hover{border-color:var(--accent)}.tag-chip.is-active{background:var(--accent);color:var(--accent-on-surface);border-color:var(--accent);font-weight:600}.reading-toolbar-hint{font-size:.8rem;color:var(--text-muted)}.reading-search-box{position:relative;display:flex;align-items:center;flex:1 1 240px;max-width:340px;min-width:200px}.reading-search-box .icon-xs{position:absolute;left:12px;pointer-events:none;color:var(--text-muted)}.reading-search-input{min-height:44px;padding-left:36px}.reading-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:16px}.link-card{display:flex;flex-direction:column;gap:10px;padding:18px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-subtle);cursor:pointer;transition:transform var(--transition-calm),border-color var(--transition-calm),box-shadow var(--transition-calm)}.link-card:hover{transform:translateY(-2px);border-color:var(--accent)}.link-card.read{opacity:.78}.link-card.archived{opacity:.7}.link-card-top{display:flex;align-items:flex-start;gap:10px}.link-favicon{width:20px;height:20px;border-radius:4px;margin-top:3px;flex-shrink:0}.link-favicon-fallback{display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;background:var(--bg-surface);border:1px solid var(--border)}.link-headings{min-width:0;flex:1}.link-domain{display:block;font-size:.75rem;font-weight:600;letter-spacing:.02em;color:var(--text-muted);word-break:break-all;margin-bottom:2px}.link-title{font-size:.98rem;font-weight:600;line-height:1.45;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.link-status-pill{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;padding:2px 10px;border-radius:999px;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-muted);font-size:.7rem;font-weight:600}.link-desc{font-size:.85rem;color:var(--text-muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.link-tag-row{display:flex;flex-wrap:wrap;gap:6px}.tag-chip-static{display:inline-flex;align-items:center;padding:2px 10px;border:1px solid var(--border);border-radius:999px;background:var(--bg-surface);color:var(--text-muted);font-size:.72rem;font-weight:500}.link-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:.75rem;color:var(--text-muted)}.reading-time-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border:1px solid var(--border);border-radius:999px;background:var(--bg-surface);font-weight:600}.link-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;padding-top:6px}.reading-empty-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:6px}.link-detail-card{max-width:560px;max-height:90vh;overflow-y:auto}.link-detail-head{border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:20px;display:flex;flex-direction:column;gap:10px}.link-detail-url{font-size:.85rem;font-weight:600;word-break:break-all}.link-detail-desc{font-size:.875rem;color:var(--text-muted);line-height:1.55}.link-detail-footer{flex-wrap:wrap}@media (max-width: 640px){.tab-nav{flex-wrap:wrap;padding:0 12px;gap:0;overflow-x:hidden}.tab-btn{padding:10px 12px;font-size:.8rem}.subnav-pills{display:none}.subnav-select{display:block;width:100%;min-height:44px}.reading-toolbar{flex-direction:column;align-items:stretch}.reading-search-box{max-width:none;min-width:0}.reading-grid{grid-template-columns:1fr}.link-actions .btn{flex:1 1 auto}}@media (max-width: 640px){.journal-reflections-grid{grid-template-columns:1fr}.journal-card-top{flex-direction:column}.journal-thumb-container{width:100%;height:140px}.btn-header-wage span{display:none}.btn-header-wage{padding:8px 10px}.review-sections-grid{grid-template-columns:1fr}}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:16px}.skeleton-card{min-height:300px;padding:16px;display:flex;flex-direction:column;gap:12px}.skeleton-media{height:150px;border-radius:var(--radius-btn);background:var(--bg-surface)}.skeleton-line{height:16px;border-radius:999px;background:var(--bg-surface)}.skeleton-line-short{width:60%}.skeleton-media,.skeleton-line{position:relative;overflow:hidden}.skeleton-media:after,.skeleton-line:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--bg-card),transparent);animation:skeleton-shimmer 1.4s infinite}@keyframes skeleton-shimmer{to{transform:translate(100%)}}.skeleton-note{text-align:center;color:var(--text-muted);font-size:.9rem;margin-top:16px}@media (prefers-reduced-motion: reduce){.skeleton-media:after,.skeleton-line:after{animation:none}}.bottom-nav,.btn-fab{display:none}@media (max-width: 640px){.app-header .tab-nav,#btn-open-modal,.btn-mobile-menu{display:none}.brand-text h1{font-size:1.15rem}.header-actions{gap:6px;flex-wrap:nowrap}html{scroll-padding-top:calc(84px + env(safe-area-inset-top))}body{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;align-items:stretch;gap:2px;background:var(--bg-surface);border-top:1px solid var(--border);padding:6px 6px calc(6px + env(safe-area-inset-bottom))}.bottom-nav .tab-btn{flex:1 1 0;min-width:0;min-height:52px;flex-direction:column;justify-content:center;gap:3px;padding:6px 2px;font-size:.75rem;border-radius:var(--radius-btn);border-bottom:none;overflow:hidden}.bottom-nav-label{max-width:100%;overflow:hidden;text-overflow:ellipsis}.bottom-nav .tab-btn.is-active{background:var(--bg-card);border-color:transparent;color:var(--accent)}.bottom-nav .tab-btn:active{background:var(--bg-card)}.bottom-nav .tab-btn .icon-xs{width:20px;height:20px}.btn-fab{position:fixed;right:16px;bottom:calc(80px + env(safe-area-inset-bottom));z-index:95;display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border:none;border-radius:50%;background:var(--accent);color:var(--accent-on-surface);box-shadow:var(--shadow-subtle);cursor:pointer;transition:filter var(--transition-calm),transform var(--transition-calm)}.btn-fab:active{transform:scale(.96);filter:brightness(.93)}.modal-backdrop{align-items:flex-end;padding:0}.modal-card{max-height:92vh;max-height:92dvh;overflow-y:auto;width:100%;border-radius:var(--radius-card) var(--radius-card) 0 0;border-bottom:none;padding:14px 20px 0;animation:sheet-up .26s cubic-bezier(.16,1,.3,1)}.modal-card:before{content:"";display:block;width:44px;height:4px;margin:0 auto 12px;border-radius:999px;background:var(--border)}.modal-footer,.detail-actions{position:sticky;bottom:0;z-index:2;background:var(--bg-card);margin:16px -20px 0;padding:12px 20px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--border)}.modal-footer .btn{flex:1}.detail-actions{flex-wrap:wrap}.detail-actions .btn-lg{flex:1 1 auto}.wishlist-grid{grid-template-columns:1fr}.subnav-pills{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scroll-padding-inline:16px;gap:8px;margin-inline:-16px;padding-inline:16px;padding-bottom:4px;scrollbar-width:none}.subnav-pills::-webkit-scrollbar{display:none}.subnav-btn{flex:0 0 auto;scroll-snap-align:start}.subnav-select{display:none}.btn-sm{min-height:44px;padding:8px 14px}.btn-xs{min-height:44px;padding:8px 12px}.btn-text-link{min-height:44px}.card-actions,.link-actions,.journal-actions{gap:10px}.card-notes,.stat-subnote,.stat-row-val,.reading-toolbar-hint,.capture-mode-hint,.desc-hint,.tag-chip,.tag-chip-static,.link-meta,.journal-dates-row,.digest-saved-date,.section-desc{font-size:.8125rem}.subnav-count{font-size:.75rem}.price-label-tag,.hour-label{font-size:.6875rem}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.modal-card{animation:none}}
