:root{--color-brand-dark: #1a1a2e;--color-brand-darker: #16213e;--color-brand-darkest: #0f0f1f;--color-gold: #ffd700;--color-gold-subtle: #fffef5;--color-text-primary: #212529;--color-text-secondary: #495057;--color-text-muted: #6c757d;--color-text-placeholder:#adb5bd;--color-border: #dee2e6;--color-surface: #ffffff;--color-surface-raised: #f8f9fa;--color-surface-hover: #e9ecef;--color-bg: #f5f5f5;--color-green: #198754;--color-green-bg: #d4edda;--color-green-text: #155724;--color-red-bg: #f8d7da;--color-red-text: #721c24;--color-blue: #0d6efd;--color-grey-bg: #e2e3e5;--color-grey-text: #383d41;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--touch-target: 44px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-pill: 12px;--font-size-xs: .75rem;--font-size-sm: .8125rem;--font-size-base: .9375rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--header-height: 52px;--bottom-bar-height: 56px}*,*:before,*:after{box-sizing:border-box;margin:0;-webkit-tap-highlight-color:transparent}html{overscroll-behavior:none}body{min-height:100vh;color:var(--color-text-primary);background:var(--color-bg);line-height:1.6;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:var(--font-size-base);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:pan-y;overscroll-behavior-y:contain}#app{min-height:100vh}.app-layout[data-v-94e04d57]{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.app-header[data-v-94e04d57]{background:linear-gradient(135deg,var(--color-brand-dark) 0%,var(--color-brand-darker) 100%);color:#fff;padding-top:env(safe-area-inset-top);position:sticky;top:0;z-index:10;box-shadow:0 2px 4px #00000026}.header-inner[data-v-94e04d57]{height:var(--header-height);display:flex;align-items:center;padding:0 var(--space-4)}.app-title[data-v-94e04d57]{font-size:var(--font-size-lg);font-weight:700;margin:0;color:var(--color-gold)}.app-main[data-v-94e04d57]{flex-grow:1;max-width:1200px;width:100%;margin:0 auto;padding:var(--space-4);padding-bottom:calc(var(--bottom-bar-height) + env(safe-area-inset-bottom) + var(--space-4))}.bottom-nav[data-v-94e04d57]{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;background:linear-gradient(135deg,var(--color-brand-dark) 0%,var(--color-brand-darker) 100%);border-top:1px solid rgba(255,255,255,.08);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -2px 8px #0003}.tab-item[data-v-94e04d57]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;height:var(--bottom-bar-height);gap:2px;text-decoration:none;color:#ffffff8c;min-height:var(--touch-target);transition:color .15s,background-color .15s;-webkit-user-select:none;user-select:none}.tab-item[data-v-94e04d57]:active{background-color:#ffffff0f;color:#ffffffd9}.tab-item.active[data-v-94e04d57]{color:var(--color-gold)}.tab-icon[data-v-94e04d57]{width:22px;height:22px}.tab-label[data-v-94e04d57]{font-size:var(--font-size-xs);font-weight:600;letter-spacing:.02em}.spot-price-bar[data-v-86bd40c5]{background:linear-gradient(135deg,var(--color-brand-dark) 0%,var(--color-brand-darker) 100%);color:#e0e0e0;padding:var(--space-3) var(--space-4);display:flex;align-items:center;border-radius:var(--radius-lg);margin-bottom:var(--space-6)}.spot-loading[data-v-86bd40c5]{color:var(--color-text-placeholder)}.spot-content[data-v-86bd40c5]{display:flex;align-items:baseline;gap:var(--space-2);flex-wrap:wrap}.spot-label[data-v-86bd40c5]{font-weight:500;color:var(--color-text-placeholder)}.spot-value[data-v-86bd40c5]{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-gold)}.spot-unit[data-v-86bd40c5]{color:var(--color-text-placeholder);font-size:var(--font-size-sm)}.spot-time[data-v-86bd40c5]{color:var(--color-text-muted);font-size:var(--font-size-xs);margin-left:auto}.alert-card[data-v-c5cb0bf5]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);transition:box-shadow .2s}.alert-card.unread[data-v-c5cb0bf5]{border-left:4px solid var(--color-gold);background:var(--color-gold-subtle)}@media(hover:hover){.alert-card[data-v-c5cb0bf5]:hover{box-shadow:0 2px 8px #0000001a}}.alert-header[data-v-c5cb0bf5]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-3);gap:var(--space-2)}.alert-titles[data-v-c5cb0bf5]{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.vendor-name[data-v-c5cb0bf5]{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.product-name[data-v-c5cb0bf5]{font-size:var(--font-size-md);font-weight:600;margin:0;color:var(--color-text-primary);white-space:normal;word-break:break-word}.unread-badge[data-v-c5cb0bf5]{background:var(--color-gold);color:var(--color-brand-dark);font-size:var(--font-size-xs);font-weight:700;padding:.15rem var(--space-2);border-radius:var(--radius-pill);text-transform:uppercase;flex-shrink:0}.alert-details[data-v-c5cb0bf5]{display:grid;grid-template-columns:1fr;gap:.4rem;margin-bottom:var(--space-3)}@media(min-width:400px){.alert-details[data-v-c5cb0bf5]{grid-template-columns:1fr 1fr;gap:.4rem 1rem}}.detail-row[data-v-c5cb0bf5]{display:flex;gap:.4rem;align-items:baseline}.label[data-v-c5cb0bf5]{color:var(--color-text-muted);font-size:var(--font-size-xs)}.value[data-v-c5cb0bf5]{font-weight:500;font-size:var(--font-size-sm)}.value.price[data-v-c5cb0bf5]{color:var(--color-green);font-weight:700}.value.premium[data-v-c5cb0bf5]{color:var(--color-blue);font-weight:600}.alert-actions[data-v-c5cb0bf5]{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.btn-costco[data-v-c5cb0bf5]{display:inline-flex;align-items:center;justify-content:center;min-height:var(--touch-target);padding:var(--space-2) var(--space-4);background:var(--color-brand-dark);color:#fff;text-decoration:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:500;transition:background .15s;-webkit-user-select:none;user-select:none}.btn-costco[data-v-c5cb0bf5]:active{background:var(--color-brand-darkest);transform:scale(.97)}@media(hover:hover){.btn-costco[data-v-c5cb0bf5]:hover{background:var(--color-brand-darker)}}.btn-mark-read[data-v-c5cb0bf5]{display:inline-flex;align-items:center;justify-content:center;min-height:var(--touch-target);padding:var(--space-2) var(--space-4);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-muted);cursor:pointer;transition:all .15s;-webkit-user-select:none;user-select:none}.btn-mark-read[data-v-c5cb0bf5]:active{background:var(--color-border);transform:scale(.97)}@media(hover:hover){.btn-mark-read[data-v-c5cb0bf5]:hover{background:var(--color-surface-raised);border-color:var(--color-text-placeholder)}}.section-header[data-v-8fb400eb]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);gap:var(--space-2)}.section-header h2[data-v-8fb400eb]{font-size:var(--font-size-xl);font-weight:600;margin:0;color:var(--color-text-primary)}.btn-mark-all[data-v-8fb400eb]{display:inline-flex;align-items:center;justify-content:center;min-height:var(--touch-target);padding:var(--space-2) var(--space-4);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-muted);cursor:pointer;transition:all .15s;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn-mark-all[data-v-8fb400eb]:active{background:var(--color-border);transform:scale(.97)}@media(hover:hover){.btn-mark-all[data-v-8fb400eb]:hover{background:var(--color-surface-raised);border-color:var(--color-text-placeholder)}}.alerts-list[data-v-8fb400eb]{display:flex;flex-direction:column;gap:var(--space-3)}.loading[data-v-8fb400eb],.empty-state[data-v-8fb400eb]{text-align:center;padding:3rem var(--space-4);color:var(--color-text-muted);font-size:var(--font-size-md)}
