/* Monetra: glass over deep teal. Colors are tokens; Settings (Phase 3) will rewrite the --vars. */
:root{--bg1:#071a1f;--bg2:#0f3a3f;--ink:#e8f3f1;--mute:#8fb0ad;--acc:#2dd4bf;--gold:#f5b942;--bad:#ff7a7a;
--blur:18px;--glass:rgba(255,255,255,.07);--edge:rgba(255,255,255,.14);--r:18px;--pad:20px}
:root[data-theme=light]{--bg1:#e9f6f4;--bg2:#cfe9e5;--ink:#0b2b2f;--mute:#4c6f6b;--glass:rgba(255,255,255,.55);--edge:rgba(11,43,47,.14)}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{font:16px/1.5 "Segoe UI",system-ui,sans-serif;color:var(--ink);background:linear-gradient(135deg,var(--bg1),var(--bg2)) fixed;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:600;margin:0 0 .5em;letter-spacing:-.01em}
.glass{background:var(--glass);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--edge);border-radius:var(--r);box-shadow:0 10px 40px rgba(0,0,0,.25)}
button,input{font:inherit;color:inherit}
input{width:100%;padding:12px 14px;margin:6px 0 14px;border-radius:12px;border:1px solid var(--edge);background:rgba(0,0,0,.18)}
input:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
label{font-size:.85rem;color:var(--mute)}
.btn{background:var(--acc);color:#052b2b;border:0;border-radius:12px;padding:12px 18px;font-weight:600;cursor:pointer;width:100%;transition:transform .15s,opacity .15s}
.btn:active{transform:scale(.98)}.btn[disabled]{opacity:.5}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--edge);width:auto}
a{color:var(--acc);cursor:pointer;text-decoration:none}
.muted{color:var(--mute)}
/* Auth */
.auth{min-height:100vh;display:grid;place-items:center;padding:20px}
.auth .card{width:min(420px,100%);padding:32px 28px;animation:rise .5s ease both}
.brand{display:flex;align-items:center;gap:10px;font:600 1.5rem Georgia,serif;margin-bottom:18px}
.brand svg{width:34px;height:34px}
.row{display:flex;justify-content:space-between;gap:10px;font-size:.9rem;margin-top:14px}
.code{letter-spacing:.5em;text-align:center;font-size:1.5rem}
/* Shell */
.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
.side{margin:14px;padding:18px 12px;position:sticky;top:14px;height:calc(100vh - 28px);overflow:auto}
.side .brand{padding:0 8px}
.nav a{display:block;padding:10px 12px;border-radius:12px;color:var(--mute);transition:background .15s,color .15s}
.nav a:hover{background:var(--glass)}
.nav a.on{background:rgba(45,212,191,.16);color:var(--ink);box-shadow:inset 3px 0 var(--acc)}
.main{padding:24px;max-width:1000px;width:100%}
.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.burger{display:none}
.panel{padding:var(--pad);margin-bottom:16px}
.empty{text-align:center;padding:48px 16px}
.sess{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--edge)}
.skel{height:18px;border-radius:8px;margin:10px 0;background:linear-gradient(90deg,var(--glass),var(--edge),var(--glass));background-size:200% 100%;animation:sh 1.2s infinite}
#toasts{position:fixed;right:16px;bottom:80px;display:grid;gap:8px;z-index:50}
.toast{padding:12px 16px;border-radius:12px;max-width:320px;animation:rise .3s ease both}
.toast.err{border-color:var(--bad)}
.bottom{display:none}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes sh{to{background-position:-200% 0}}
@media(max-width:800px){
 .shell{display:block}
 .side{display:none;position:fixed;inset:0 25% 0 0;margin:0;height:auto;z-index:40;border-radius:0 var(--r) var(--r) 0}
 .side.open{display:block}
 .burger{display:inline-block}
 .main{padding:16px 14px 90px}
 .bottom{display:flex;position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));justify-content:space-around;padding:8px;z-index:30}
 .bottom a{color:var(--mute);font-size:.8rem;padding:6px 10px}.bottom a.on{color:var(--acc)}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Phase 2 */
select{width:100%;padding:12px 14px;margin:6px 0 14px;border-radius:12px;border:1px solid var(--edge);background:rgba(0,0,0,.25);color:inherit;font:inherit}
.bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.bar input,.bar select{width:auto;flex:1;min-width:120px;margin:0}
.ov{position:fixed;inset:0;background:rgba(0,0,0,.5);display:grid;place-items:center;z-index:60;padding:16px;overflow:auto}
.modal{width:min(440px,100%);padding:24px;max-height:92vh;overflow:auto}
.fab{position:fixed;right:18px;bottom:calc(86px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;border:0;background:var(--gold);color:#2b1c00;font-size:30px;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.4);z-index:35}
@media(min-width:801px){.fab{bottom:24px}}
.acts{display:flex;gap:6px;flex-wrap:wrap}.acts button{padding:6px 10px;font-size:.8rem}
.inc{color:var(--acc)}.exp{color:var(--bad)}
.meter{height:8px;border-radius:6px;background:var(--edge);margin-top:6px;overflow:hidden}.meter i{display:block;height:100%;background:var(--acc)}
.meter.warn i{background:var(--gold)}.meter.bad i{background:var(--bad)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}.stats .panel{margin:0}
.big{font:600 1.6rem Georgia,serif}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}
/* Phase 3 */
.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.charts .panel{margin:0}
.legend{display:grid;gap:4px;font-size:.85rem;margin-top:8px}.legend .sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}
table.t{width:100%;border-collapse:collapse;font-size:.9rem}.t td,.t th{padding:6px 4px;text-align:start;border-bottom:1px solid var(--edge)}
.setgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0 18px}
[dir=rtl] .nav a.on{box-shadow:inset -3px 0 var(--acc)}
@media print{.side,.bottom,.fab,.bar,.top button,#toasts,.noprint{display:none!important}.shell{display:block}body{background:#fff;color:#000}.glass{background:#fff;box-shadow:none;border:1px solid #ccc}}
