:root{--ink: #e8efe9;--ink-dim: #9aab9e;--bg: #121714;--bg-elev: #1a221c;--line: rgba(232, 239, 233, .1);--amber: #e0a23a;--amber-deep: #b87a18;--green: #3dbe6e;--yellow: #e2c15a;--red: #e0574f;--panel: rgba(26, 34, 28, .92);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--font: "Schibsted Grotesk", "Avenir Next", sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font);color:var(--ink);background:radial-gradient(120% 80% at 100% -10%,rgba(224,162,58,.16),transparent 45%),radial-gradient(90% 60% at 0% 0%,rgba(61,190,110,.1),transparent 40%),linear-gradient(180deg,#151c17 0%,var(--bg) 40%,#0e130f 100%);background-attachment:fixed;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--amber)}.app-shell{width:min(430px,100%);margin:0 auto;min-height:100dvh;padding:calc(.75rem + var(--safe-top)) .9rem calc(5.75rem + var(--safe-bottom));position:relative}.login-shell{width:min(430px,100%);margin:0 auto;min-height:100dvh;padding:calc(1.25rem + var(--safe-top)) .9rem calc(1.5rem + var(--safe-bottom));display:flex;flex-direction:column;justify-content:center}.login-error{margin:0;color:var(--red);font-size:.88rem;font-weight:700}.brand-bar{display:flex;align-items:end;justify-content:space-between;gap:.75rem;margin-bottom:1rem;animation:rise .42s ease both}.brand{margin:0;font-size:clamp(2.1rem,9vw,2.55rem);font-weight:800;letter-spacing:-.04em;line-height:.95}.brand span{color:var(--amber)}.brand-meta{margin:.35rem 0 0;color:var(--ink-dim);font-size:.82rem;font-weight:600}.install-banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:0 0 .85rem;padding:.7rem .8rem;border-radius:14px;border:1px solid rgba(224,162,58,.28);background:linear-gradient(135deg,#e0a23a24,#1a221ceb);animation:rise .5s ease both}.install-copy{min-width:0}.install-copy strong{display:block;font-size:.88rem;letter-spacing:-.02em}.install-copy p{margin:.15rem 0 0;color:var(--ink-dim);font-size:.72rem;font-weight:600;line-height:1.35}.install-actions{display:flex;flex-shrink:0;gap:.35rem}.about-app{margin-top:1.5rem;padding-top:.75rem;border-top:1px solid var(--line)}.about-app code{font-family:var(--mono);font-size:.78em;color:var(--amber)}.tab-panel{animation:rise .48s ease both}.hero-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem;margin-bottom:.85rem}.btn{border:1px solid transparent;border-radius:14px;padding:.85rem .9rem;font-weight:700;letter-spacing:-.01em;transition:transform .14s ease,opacity .14s ease}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:wait}.btn-primary{background:linear-gradient(135deg,var(--amber) 0%,var(--amber-deep) 100%);color:#1a1408}.btn-secondary{background:var(--bg-elev);border-color:var(--line);color:var(--ink)}.btn-ghost{background:transparent;border-color:var(--line);color:var(--ink-dim)}.btn-small{padding:.45rem .7rem;border-radius:10px;font-size:.85rem}.mode-hint{margin:.35rem 0 0;font-size:.78rem;max-width:36rem}.mode-row{display:flex;gap:.4rem;margin-bottom:.75rem}.chip{border:1px solid var(--line);background:transparent;color:var(--ink-dim);border-radius:999px;padding:.35rem .7rem;font-size:.8rem;font-weight:700}.chip.active{color:#1a1408;background:var(--ink);border-color:var(--ink)}.not-checked{margin:0 0 .75rem;padding:.65rem .75rem;border-left:3px solid var(--amber);background:#e0a23a14;color:var(--ink-dim);font-size:.8rem;font-weight:600;line-height:1.35}.flash-ok{margin:0 0 .75rem;padding:.65rem .75rem;border-left:3px solid var(--green);background:#3dbe6e1f;color:var(--ink);font-size:.8rem;font-weight:600;line-height:1.35}.not-checked strong{color:var(--amber);font-weight:800}.results-table{--results-cols: 14px max-content max-content max-content 64px;--results-gap: .85rem;display:grid;grid-template-columns:var(--results-cols);column-gap:var(--results-gap);row-gap:0;align-items:center;justify-content:start;width:max-content;max-width:100%;border-top:1px solid var(--line);overflow-x:auto;-webkit-overflow-scrolling:touch}.results-head{display:grid;grid-template-columns:14px 1fr auto 2.6rem;gap:.45rem;padding:.2rem .1rem .35rem;color:var(--ink-dim);font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.results-head.with-trend,.results-table>.results,.results-table .result-row.compact.with-trend{display:contents}.results-head.with-trend>*{padding:.25rem 0 .35rem;color:var(--ink-dim);font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;text-align:left;border-bottom:1px solid var(--line)}.results{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--line)}.result-row{display:grid;grid-template-columns:12px 1fr auto;gap:.65rem;align-items:center;padding:.55rem .1rem;border-bottom:1px solid var(--line);min-height:44px}.result-row.compact{grid-template-columns:14px 1fr auto 2.6rem;gap:.45rem;padding:.38rem .1rem;min-height:36px}.results-table .result-row.compact.with-trend>*{padding-top:.4rem;padding-bottom:.4rem;border-bottom:1px solid var(--line);min-height:40px;box-sizing:border-box;display:flex;align-items:center;align-self:stretch}.results-table .result-row.compact.with-trend>.tool-cell,.results-table .result-row.compact.with-trend>.price-now{flex-direction:column;align-items:flex-start;justify-content:center;gap:.05rem}.tool-actions{display:flex;align-items:center;justify-content:space-between;gap:.65rem;margin:0 0 .75rem}.tool-actions-hint{margin:0;font-size:.72rem;text-align:right}.tool-cell{min-width:0;text-align:left;justify-self:start}.results-table .tool-cell{max-width:none}.trend-cell{width:64px;min-width:64px;display:flex;align-items:center;justify-content:flex-start}.tool-name-btn{display:block;width:auto;max-width:none;margin:0;padding:0;border:0;background:none;color:var(--ink);font:inherit;font-size:.92rem;font-weight:700;letter-spacing:-.02em;text-align:left;white-space:nowrap;overflow:visible;text-overflow:clip;text-decoration:underline;text-decoration-color:#e0a23a73;text-underline-offset:.15em}.tool-name-btn:hover,.tool-name-btn:focus-visible{color:var(--amber);text-decoration-color:#e0a23ad9;outline:none}.tool-detail-modal{width:min(420px,100%)}.tool-name-edit{min-width:0}.tool-name-form{display:grid;gap:.4rem}.tool-name-input{width:100%;box-sizing:border-box;padding:.45rem .55rem;border-radius:8px;border:1px solid rgba(224,162,58,.45);background:#00000040;color:var(--ink);font:inherit;font-size:1rem;font-weight:700}.tool-name-form-actions{display:flex;gap:.4rem}.tool-rename-btn{margin-top:.35rem;padding:0;border:0;background:none;color:var(--amber);font-weight:700}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tool-detail-facts{margin:0 0 .75rem;display:grid;gap:.55rem}.tool-detail-facts>div{display:grid;gap:.12rem}.tool-detail-facts dt{margin:0;color:var(--ink-dim);font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.tool-detail-facts dd{margin:0;font-size:.95rem;font-weight:600;letter-spacing:-.02em}.tool-detail-link-row{margin:0 0 .85rem}.tool-detail-link{font-size:.82rem;font-weight:700;text-decoration:none;border-bottom:1px solid rgba(224,162,58,.55)}.tool-detail-link:hover{color:var(--amber)}.tool-detail-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.45rem}.tool-detail-actions .btn{width:100%;padding-left:.4rem;padding-right:.4rem;font-size:.82rem}.tool-detail-actions-hint{margin:.55rem 0 0;font-size:.68rem;text-align:center}.pct-inline{margin:.05rem 0 0;color:var(--green);font-family:var(--mono);font-size:.72rem;font-weight:700;font-variant-numeric:tabular-nums;text-align:left}.pct-inline.muted-pct{color:var(--ink-dim);font-weight:600}.pct-inline.over-pct{color:var(--red, #e0574f);font-weight:600;opacity:.9}.btn-bought{border:1px solid var(--line);background:transparent;color:var(--ink-dim);border-radius:8px;padding:.35rem .2rem;font-size:.68rem;font-weight:800;letter-spacing:.02em;text-transform:uppercase;line-height:1.1}.btn-bought:hover,.btn-bought:active{color:var(--ink);border-color:#e0a23a73;background:#e0a23a1a}.watch-toolbar{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.35rem}.watch-hint{margin:0 0 .85rem;font-size:.78rem}.bought-heading{margin:1.25rem 0 .5rem;font-size:.85rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-dim)}.card-bought{opacity:.78}.trend-spark{display:block;width:64px;height:28px;color:var(--ink-dim);flex-shrink:0;pointer-events:none}.trend-spark-btn{display:inline-flex;align-items:center;justify-content:flex-start;margin:0;padding:.15rem 0;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ink-dim);cursor:pointer;flex-shrink:0;width:100%}.trend-spark-btn:hover,.trend-spark-btn:focus-visible{border-color:#e0a23a73;background:#e0a23a14;outline:none}html.chart-modal-open,html.chart-modal-open body{overflow:hidden!important;overscroll-behavior:none;touch-action:none}.chart-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;width:100dvw;height:100vh;height:100dvh;z-index:400;display:flex;align-items:center;justify-content:center;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:max(.75rem,env(safe-area-inset-top,0px)) max(.75rem,env(safe-area-inset-right,0px)) max(.75rem,env(safe-area-inset-bottom,0px)) max(.75rem,env(safe-area-inset-left,0px));background:#080c09c7;touch-action:pan-y;box-sizing:border-box}.chart-modal{width:min(720px,100%);max-width:720px;max-height:calc(100dvh - 1.5rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));margin:auto;border:1px solid rgba(232,239,233,.16);border-radius:18px;background:#1a221c;padding:.95rem 1rem 1.05rem;box-shadow:0 22px 56px #0000008c;color:var(--ink);overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;flex-shrink:0;box-sizing:border-box}.chart-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.65rem;position:sticky;top:0;z-index:2;background:#1a221c;padding-bottom:.15rem}.chart-modal-title{margin:0;font-size:1.1rem;font-weight:800;letter-spacing:-.03em}.chart-modal-sub{margin:.2rem 0 0;font-size:.72rem}.chart-modal-wrap{width:100%;height:min(280px,42dvh);min-height:180px;border:1px solid rgba(232,239,233,.08);border-radius:12px;padding:.35rem .2rem;background:#0000002e;touch-action:pan-y;pointer-events:auto}.chart-modal-wrap .recharts-wrapper,.chart-modal-wrap .recharts-surface,.chart-modal-wrap svg,.chart-modal-wrap canvas{touch-action:pan-y!important}.chart-modal-footer{margin:.55rem 0 0;font-size:.72rem}@media(orientation:landscape)and (max-height:560px){.chart-modal{max-height:calc(100dvh - .75rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}.chart-modal-wrap{height:min(160px,38dvh);min-height:140px}}.price.status-green,.price-link.status-green{color:var(--green)}.price.status-yellow,.price-link.status-yellow{color:#e2c15a}.price.status-red,.price-link.status-red{color:var(--red)}.trend-legend{margin:.65rem 0 0;font-size:.72rem}.dot{width:9px;height:9px;border-radius:50%;background:var(--ink-dim);box-shadow:0 0 0 3px #ffffff0a}.dot.green{background:var(--green);box-shadow:0 0 0 3px #3dbe6e2e}.dot.yellow{background:#e2c15a;box-shadow:0 0 0 3px #e2c15a29}.dot.red{background:var(--red);box-shadow:0 0 0 3px #e0574f29}.dot.none{background:#556057}.tool-name{margin:0;font-size:.95rem;font-weight:700;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tool-sub{margin:.1rem 0 0;color:var(--ink-dim);font-size:.72rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.price-now,.price-was{text-align:left;justify-self:start;min-width:0}.price-now{display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.price-current-wrap{display:inline-flex;align-items:baseline;gap:var(--results-gap, .45rem);white-space:nowrap}.price-was{display:flex;align-items:baseline;justify-content:flex-start;overflow:hidden}.price-priors{display:inline-flex;align-items:baseline;gap:.15rem .2rem;white-space:nowrap;font-variant-numeric:tabular-nums}.price-prior{display:inline-flex;align-items:baseline;gap:.2rem;font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:-.02em;color:var(--ink-dim);white-space:nowrap}.price-prior-val{opacity:.85}.price-trail-sep{opacity:.55;font-weight:500}.price-was-empty{font-family:var(--mono);font-size:.68rem;color:var(--ink-dim);opacity:.35}.price-globe{display:inline-flex;align-items:center;justify-content:center;color:var(--ink-dim);text-decoration:none;line-height:1;border-radius:999px;padding:.12rem}.price-globe-spacer{display:inline-block;width:14px;height:14px}.price-globe:hover,.price-globe:focus-visible{color:var(--amber);outline:none;background:#e0a23a1f}.price-globe-icon{display:block}.del-note{margin:.05rem 0 0;color:var(--ink-dim);font-size:.58rem;font-weight:700;letter-spacing:-.01em;white-space:nowrap;text-align:left}.price{margin:0;font-family:var(--mono);font-size:1rem;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums;display:inline-block;text-align:left;min-width:4.5ch}.price-link{color:var(--ink);text-decoration:none;border-bottom:1px solid rgba(224,162,58,.55)}.price-link:hover{color:var(--amber)}.pct{margin:.1rem 0 0;color:var(--green);font-size:.72rem;font-weight:700}.pct-col{text-align:right;color:var(--green);font-family:var(--mono);font-size:.78rem;font-weight:700;min-height:1em}.shop-link{display:inline-block;margin-top:.1rem;font-size:.68rem;font-weight:700;text-decoration:none;color:var(--amber)}.shop-link:hover{text-decoration:underline}.result-row.compact .tool-name{font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-row.compact .price{font-size:.95rem}.empty{color:var(--ink-dim);font-size:.92rem;padding:1rem 0}.nav{position:fixed;left:0;right:0;bottom:0;z-index:50;width:min(430px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:.25rem;padding:.45rem .55rem calc(.45rem + var(--safe-bottom));background:#0e130ff7;border-top:1px solid var(--line)}.nav button{border:0;background:transparent;color:var(--ink-dim);padding:.55rem .2rem;border-radius:12px;font-size:.72rem;font-weight:700}.nav button.active{color:var(--ink);background:#e8efe914}.section-title{margin:0 0 .65rem;font-size:1.15rem;font-weight:800;letter-spacing:-.03em}.card-list{display:grid;gap:.55rem}.card{padding:.8rem .85rem;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.card h3{margin:0;font-size:.98rem;letter-spacing:-.02em}.card p{margin:.25rem 0 0;color:var(--ink-dim);font-size:.78rem;font-weight:600}.row-actions{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.65rem}.form{display:grid;gap:.55rem;margin-bottom:1rem}.form label{display:grid;gap:.25rem;font-size:.72rem;font-weight:700;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.04em}.quick-add-form textarea{width:100%;resize:vertical;min-height:4.5rem;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);padding:.7rem .75rem;font:inherit;line-height:1.35}.quick-add-form textarea:focus{outline:2px solid rgba(224,162,58,.45);outline-offset:1px}.form input,.form select{border:1px solid var(--line);border-radius:12px;background:#ffffff08;color:var(--ink);padding:.7rem .75rem;font-size:.95rem;text-transform:none;letter-spacing:0;font-weight:600}.toggle{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem 0;border-bottom:1px solid var(--line);font-size:.9rem;font-weight:650}.toggle input{width:1.1rem;height:1.1rem}.chart-wrap{width:100%;height:180px;margin-top:.5rem}.muted{color:var(--ink-dim);font-size:.8rem;font-weight:600}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(min-width:860px){.app-shell{width:min(960px,100%);padding-top:1.5rem}.nav{width:min(960px,100%)}.results{font-size:1.02rem}.result-row{padding:.65rem .2rem}.results-table{--results-cols: 14px max-content max-content max-content 72px;--results-gap: 1.1rem;overflow-x:visible}.results-table .tool-cell{max-width:none}.results-table .tool-name-btn{white-space:nowrap;overflow:visible}.trend-cell{width:72px;min-width:72px}.trend-spark{width:72px}.price-was{max-width:none}}@media(orientation:landscape)and (max-height:560px){.app-shell{width:100%;max-width:none;padding:calc(.4rem + var(--safe-top)) max(1rem,env(safe-area-inset-right,0px)) calc(4.35rem + var(--safe-bottom)) max(1rem,env(safe-area-inset-left,0px))}.nav{width:100%;max-width:none;padding-left:max(.55rem,env(safe-area-inset-left,0px));padding-right:max(.55rem,env(safe-area-inset-right,0px))}.brand-bar{margin-bottom:.45rem}.brand{font-size:clamp(1.45rem,4.5vw,1.9rem)}.brand-meta{font-size:.72rem}.hero-actions{margin-bottom:.55rem}.tool-name,.tool-name-btn,.result-row.compact .tool-name,.result-row.compact .tool-name-btn{white-space:normal}.results-table{--results-cols: 14px max-content max-content max-content 72px;--results-gap: .95rem}.results-table .tool-cell{max-width:none}.trend-cell{width:72px;min-width:72px}.trend-spark{width:72px}.price-was{max-width:none}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
