*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#0f1117;--color-surface:#1a1d27;--color-border:#2a2d3a;--color-text:#e4e4e7;--color-text-muted:#9ca3af;--color-accent:#c19a6b;--color-accent-hover:#d4ad7e;--color-profit:#22c55e;--color-loss:#ef4444;--color-warning:#eab308;--focus-ring:0 0 0 3px hsla(33,41%,59%,.5)}html{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.6;color:var(--color-text);background-color:var(--color-bg)}.skip-link{position:absolute;top:-100%;left:1rem;z-index:1000;padding:.5rem 1rem;background:var(--color-accent);color:var(--color-bg);font-weight:600;text-decoration:none;border-radius:0 0 .25rem .25rem}.skip-link:focus{top:0;outline:none;box-shadow:var(--focus-ring)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}header{padding:1rem 2rem;border-bottom:1px solid var(--color-border);background-color:var(--color-surface)}header,header nav{display:flex;align-items:center}header nav{justify-content:space-between;width:100%;max-width:72rem;margin:0 auto}.site-title{font-size:1.25rem;font-weight:700;color:var(--color-accent);text-decoration:none}.site-title:hover{color:var(--color-accent-hover)}.version-badge{font-family:Courier New,Courier,monospace;font-size:.75rem;color:#4caf50;text-decoration:none;margin-left:.5rem;vertical-align:middle}.version-badge:hover{text-decoration:underline;color:#66bb6a}.auth-status{display:flex;align-items:center;gap:.75rem;font-size:.875rem}.auth-user{color:var(--color-text-muted)}.auth-link{color:var(--color-accent);text-decoration:none;font-size:.875rem}.auth-link:hover{color:var(--color-accent-hover);text-decoration:underline}.nav-left{display:flex;align-items:center;gap:2rem}.nav-links{display:flex;list-style:none;gap:.25rem}.nav-link{color:var(--color-text-muted);text-decoration:none;padding:.375rem .75rem;border-radius:.375rem;font-size:.875rem;font-weight:500;transition:color .15s,background-color .15s}.nav-link:hover{color:var(--color-text);background-color:var(--color-border)}.nav-link--active{color:var(--color-accent);background-color:hsla(33,41%,59%,.1)}main{min-height:calc(100vh - 8rem);padding:2rem;max-width:72rem;margin:0 auto}footer{border-top:1px solid var(--color-border);padding:1.5rem 2rem;text-align:center}.legal-disclaimer{font-size:.75rem;color:var(--color-text-muted);max-width:72rem;margin:0 auto}.hero{text-align:center;padding:3rem 0 2rem}.hero h1{font-size:2.5rem;font-weight:800;color:var(--color-accent);letter-spacing:-.025em}.hero-subtitle{font-size:1.125rem;color:var(--color-text-muted);margin-top:.5rem}.feature-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));grid-gap:1.5rem;gap:1.5rem;margin:2rem 0}.feature-card{display:flex;flex-direction:column;padding:1.5rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;text-decoration:none;color:var(--color-text);transition:border-color .2s,transform .2s}.feature-card:hover{border-color:var(--color-accent);transform:translateY(-2px)}.feature-icon{font-size:2rem;margin-bottom:.75rem}.feature-card h2{font-size:1.125rem;font-weight:700;color:var(--color-text);margin-bottom:.5rem}.feature-card p{font-size:.875rem;color:var(--color-text-muted);line-height:1.5;flex-grow:1}.feature-cta{display:inline-block;margin-top:1rem;font-size:.875rem;font-weight:600;color:var(--color-accent)}.feature-card:hover .feature-cta{color:var(--color-accent-hover)}.getting-started{margin:2rem 0;padding:1.5rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem}.getting-started h2{font-size:1.125rem;font-weight:700;margin-bottom:1rem}.getting-started ol{padding-left:1.5rem;display:flex;flex-direction:column;gap:.5rem}.getting-started li{color:var(--color-text-muted);font-size:.9375rem}.getting-started a{color:var(--color-accent);text-decoration:none}.getting-started a:hover{text-decoration:underline}.api-key-section{display:flex;flex-direction:column;gap:1.5rem}.permissions-info{padding:1.25rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:.5rem}.permissions-info h3{font-size:.9375rem;font-weight:600;margin-bottom:.5rem}.permissions-help{font-size:.8125rem;color:var(--color-text-muted);margin-bottom:.75rem}.permissions-help a{color:var(--color-accent);text-decoration:none}.permissions-help a:hover{text-decoration:underline}.permissions-list{list-style:none;display:flex;flex-direction:column;gap:.375rem}.permissions-list li{font-size:.8125rem;display:flex;align-items:baseline;gap:.5rem}.perm-icon{width:1rem;text-align:center;flex-shrink:0}.perm-desc{color:var(--color-text-muted)}.perm-granted .perm-icon{color:var(--color-profit)}.perm-missing .perm-icon,.perm-missing strong{color:var(--color-loss)}.key-status{padding:1rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:.5rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.status-badge{font-size:.8125rem;font-weight:600;padding:.25rem .75rem;border-radius:1rem}.status-configured{color:var(--color-profit);background-color:rgba(34,197,94,.1)}.key-meta{font-size:.8125rem;color:var(--color-text-muted)}.key-form{display:flex;flex-direction:column;gap:.5rem}.key-form label{font-size:.875rem;font-weight:600}.key-input-row{display:flex;gap:.5rem}.key-input-row input{flex:1 1;font-family:monospace}.price-range-filter{margin-top:1rem;padding:1rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:.5rem}.price-range-filter>label{display:block;font-size:.875rem;font-weight:600;margin-bottom:.5rem}.price-range-display{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.9375rem}.price-range-value{padding:.25rem .5rem;background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:.25rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.price-range-separator{color:var(--color-text-muted);font-size:.8125rem}.price-range-sliders{display:flex;flex-direction:column;gap:.5rem}.range-slider-group{display:flex;align-items:center;gap:.75rem}.range-slider-group label{font-size:.8125rem;color:var(--color-text-muted);width:2rem;flex-shrink:0}.range-slider-group input[type=range]{flex:1 1;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--color-border);border-radius:3px;outline:none;cursor:pointer}.range-slider-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--color-accent);cursor:pointer;border:2px solid var(--color-bg);box-shadow:0 1px 3px rgba(0,0,0,.3)}.range-slider-group input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--color-accent);cursor:pointer;border:2px solid var(--color-bg);box-shadow:0 1px 3px rgba(0,0,0,.3)}.coins{display:inline-flex;align-items:baseline;gap:.25rem;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.coin-icon{font-weight:700;font-size:.8em;margin-left:1px}.coin-gold .coin-icon{color:gold}.coin-silver .coin-icon{color:silver}.coin-copper .coin-icon{color:#cd7f32}.coin-negative{color:var(--color-loss)}.text-profit{color:var(--color-profit)}.text-loss{color:var(--color-loss)}.profit-meta{font-size:.8125rem;color:var(--color-text-muted);margin-bottom:.75rem}.daily-cap-badge{font-size:.75rem;color:var(--color-text-muted)}.section-desc{font-size:.875rem;color:var(--color-text-muted);margin-bottom:1rem;line-height:1.5}.profit-actions{display:flex;align-items:center;gap:1rem;margin-top:.75rem}.save-msg{font-size:.8125rem;color:var(--color-profit)}.shopping-meta{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem;color:var(--color-text-muted);margin-bottom:.75rem}.row-completed{opacity:.5}.line-through{text-decoration:line-through}.text-muted{color:var(--color-text-muted)}.shopping-actions{display:flex;gap:.5rem;margin-top:.75rem}.btn-small{padding:.125rem .375rem;font-size:.75rem;border-radius:.25rem;border:none;cursor:pointer}.btn-danger{background-color:rgba(239,68,68,.15);color:var(--color-loss);border:1px solid rgba(239,68,68,.3)}.btn-danger:hover{background-color:rgba(239,68,68,.25)}.btn-secondary{background-color:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);padding:.375rem .75rem;border-radius:.375rem;cursor:pointer;font-size:.8125rem}.btn-secondary:hover{background-color:var(--color-border)}.info-box{padding:1rem 1.25rem;background-color:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.3);border-radius:.5rem;color:var(--color-text);font-size:.875rem}.info-box a{color:var(--color-accent);text-decoration:none;font-weight:600}.info-box a:hover{text-decoration:underline}h1{font-size:1.5rem;font-weight:700;margin-bottom:1.5rem}h2{font-size:1.25rem;margin-bottom:1rem}.btn,button,h2{font-weight:600}.btn,button{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;color:var(--color-bg);background-color:var(--color-accent);border:none;border-radius:.375rem;cursor:pointer;transition:background-color .15s}.btn:hover,button:hover{background-color:var(--color-accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}button.btn-danger{background-color:var(--color-loss)}button.btn-danger:hover{background-color:#dc2626}button.btn-secondary{background-color:var(--color-border);color:var(--color-text)}button.btn-secondary:hover{background-color:#3a3d4a}input[type=number],input[type=password],input[type=text],select{padding:.5rem .75rem;font-size:.875rem;color:var(--color-text);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:.375rem}input:focus,select:focus{border-color:var(--color-accent);box-shadow:var(--focus-ring);outline:none}table{width:100%;border-collapse:collapse;font-size:.875rem}th{text-align:left;padding:.75rem;border-bottom:2px solid var(--color-border);white-space:nowrap}th,th button{font-weight:600;color:var(--color-text-muted)}th button{background:none;font-size:.875rem;padding:0;cursor:pointer}th button:hover{color:var(--color-text);background:none}td{padding:.75rem;border-bottom:1px solid var(--color-border);vertical-align:middle}tr:hover td{background-color:hsla(0,0%,100%,.02)}.error{color:var(--color-loss);padding:.75rem;background-color:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.2);border-radius:.375rem}.error,.success{font-size:.875rem}.success{color:var(--color-profit)}.loading{color:var(--color-text-muted);font-size:.875rem}@media (forced-colors:active){.skip-link{border:2px solid ButtonText}:focus-visible{outline:2px solid Highlight}}@media (max-width:640px){.nav-left,header nav{flex-direction:column;align-items:flex-start;gap:.75rem}.hero h1{font-size:1.75rem}.feature-cards{grid-template-columns:1fr}}@media (max-width:320px){header{padding:.75rem 1rem}footer,main{padding:1rem}}