:root{
  --bg:#f6f4ee; --surface:#ffffff; --surface2:#f0ede3; --text:#1d1b16; --muted:#6b6658; --line:#ddd8c8;
  --gold:#a67c00; --gold-soft:#f3e7b8; --buy:#0f8a4f; --sell:#c4302b; --wait:#9a6b00; --info:#2a5db0;
  --buy-bg:#dff3e8; --sell-bg:#fbe3e1; --wait-bg:#fbefcf; --none-bg:#e9e6dc;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0f0f0d; --surface:#181714; --surface2:#211f1a; --text:#ece8da; --muted:#9a9584; --line:#34312a;
    --gold:#e0b83a; --gold-soft:#3a3115; --buy:#3ecf8e; --sell:#ff6b63; --wait:#f0b840; --info:#6fa0ff;
    --buy-bg:#12301f; --sell-bg:#3a1613; --wait-bg:#3a2e10; --none-bg:#26241e;
  }
}
:root[data-theme="dark"]{
  --bg:#0f0f0d; --surface:#181714; --surface2:#211f1a; --text:#ece8da; --muted:#9a9584; --line:#34312a;
  --gold:#e0b83a; --gold-soft:#3a3115; --buy:#3ecf8e; --sell:#ff6b63; --wait:#f0b840; --info:#6fa0ff;
  --buy-bg:#12301f; --sell-bg:#3a1613; --wait-bg:#3a2e10; --none-bg:#26241e;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.wrap{max-width:1180px;margin:0 auto;padding:0 16px}
a{color:var(--gold)}
h1,h2,h3{margin:0 0 .5rem;line-height:1.25}
h2{font-size:1.05rem}
h3{font-size:.95rem;margin-top:1rem;color:var(--muted);font-weight:600}
.muted{color:var(--muted)} .small{font-size:.85rem}
.hidden{display:none!important}

.top{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.top-in{display:flex;align-items:center;gap:16px;min-height:56px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--text);text-decoration:none}
.logo{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--gold);color:#fff;font-weight:800;font-size:.85rem}
.nav{display:flex;gap:4px;flex:1;flex-wrap:wrap}
.nav a{padding:8px 12px;border-radius:8px;text-decoration:none;color:var(--muted);font-weight:600}
.nav a.on,.nav a:hover{background:var(--gold-soft);color:var(--text)}
.clock{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}

main{padding-top:16px;padding-bottom:8px}
.grid{display:grid;gap:16px;margin-bottom:16px}
.g2{grid-template-columns:1fr}
@media(min-width:820px){.g2{grid-template-columns:1fr 1fr}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:16px;min-width:0}
.grid .card{margin-bottom:0}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.between{justify-content:space-between}

.price{font-size:2.4rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.decision{font-size:2rem;font-weight:800;letter-spacing:.01em}
.decision.buy{color:var(--buy)} .decision.sell{color:var(--sell)} .decision.wait{color:var(--wait)} .decision.none{color:var(--muted)}
.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.04em;background:var(--none-bg);color:var(--muted)}
.badge.ok{background:var(--buy-bg);color:var(--buy)} .badge.bad{background:var(--sell-bg);color:var(--sell)} .badge.warn{background:var(--wait-bg);color:var(--wait)}
.meter{height:8px;background:var(--surface2);border-radius:99px;overflow:hidden;margin:12px 0 4px}
.meter-fill{height:100%;width:0;background:var(--gold);transition:width .4s}
.headline{margin:.75rem 0 0;font-weight:600}

.banner{padding:12px 16px;border-radius:12px;margin-bottom:16px;font-weight:600}
.banner.bad{background:var(--sell-bg);color:var(--sell);border:1px solid var(--sell)}
.banner.warn{background:var(--wait-bg);color:var(--wait);border:1px solid var(--wait)}

.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0}
.kv dt{color:var(--muted)} .kv dd{margin:0;font-variant-numeric:tabular-nums;font-weight:600;text-align:right;overflow-wrap:anywhere}
.kv dd.buy{color:var(--buy)} .kv dd.sell{color:var(--sell)}

.chart{height:380px;width:100%}
@media(max-width:600px){.chart{height:300px}}
.tfs{display:flex;gap:4px;flex-wrap:wrap}
.tfs button,.btn{font:inherit;font-weight:600;border:1px solid var(--line);background:var(--surface2);color:var(--text);padding:6px 12px;border-radius:8px;cursor:pointer;min-height:36px}
.tfs button.on,.btn{background:var(--gold);border-color:var(--gold);color:#fff}
.tfs button:not(.on){background:var(--surface2);color:var(--text)}
.btn:hover{filter:brightness(1.08)} .btn:focus-visible,.tfs button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--info);outline-offset:2px}
.btn.danger{background:var(--sell);border-color:var(--sell)}
.btn.ghost{background:transparent;color:var(--text);border-color:var(--line)}
.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}
.l::before{content:"";display:inline-block;width:14px;height:3px;margin-right:6px;vertical-align:middle;border-radius:2px}
.l20::before{background:#f0b840}.l50::before{background:#4aa3ff}.l100::before{background:#b06cff}.l200::before{background:#ff6b63}

.scroll{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.tbl th,.tbl td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.tbl th{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}
.up{color:var(--buy);font-weight:700}.down{color:var(--sell);font-weight:700}.range{color:var(--wait);font-weight:700}

.calc{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:8px}
label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--muted)}
input,select,textarea{font:inherit;color:var(--text);background:var(--surface2);border:1px solid var(--line);border-radius:8px;padding:8px 10px;min-height:38px;max-width:100%}
.calc input{width:140px}
hr{border:0;border-top:1px solid var(--line);margin:16px 0}

.explain h3{margin-top:.9rem}
.explain ul,.list{margin:.25rem 0 0;padding-left:1.1rem}
.list{list-style:none;padding:0}
.list li{padding:8px 0;border-bottom:1px solid var(--line)}
.list li:last-child{border-bottom:0}
.tag{display:inline-block;font-size:.7rem;font-weight:800;text-transform:uppercase;padding:1px 7px;border-radius:6px;margin-right:6px;background:var(--none-bg);color:var(--muted)}
.tag.high{background:var(--sell-bg);color:var(--sell)} .tag.medium{background:var(--wait-bg);color:var(--wait)}
.interp{font-style:italic;color:var(--muted);font-size:.85rem;display:block;margin-top:2px}

.foot{padding-top:8px;padding-bottom:32px;color:var(--muted);font-size:.8rem}

/* forms / admin */
.form-narrow{max-width:380px;margin:40px auto}
.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.msg{padding:10px 14px;border-radius:10px;margin-bottom:12px}
.msg.ok{background:var(--buy-bg);color:var(--buy)} .msg.err{background:var(--sell-bg);color:var(--sell)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.tabs a{padding:6px 12px;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--text);font-weight:600}
.tabs a.on{background:var(--gold);border-color:var(--gold);color:#fff}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.stat{background:var(--surface2);border-radius:10px;padding:10px 12px}
.stat b{display:block;font-size:1.25rem;font-variant-numeric:tabular-nums}
.stat span{color:var(--muted);font-size:.78rem}
