/* base.css — Reset, body, layout, shared utilities */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:"DM Sans",sans-serif;background:var(--bg);color:var(--text);line-height:1.5;display:flex;min-height:100vh;transition:background .2s,color .2s}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit}

/* Layout */
.main{margin-left:var(--sw);flex:1;display:flex;flex-direction:column;min-width:0;transition:margin .25s}
.content{padding:16px 20px;flex:1}
.page{display:none;flex-direction:column;gap:14px}
.page.active{display:flex}

/* Load bar */
.load-bar{position:fixed;top:0;left:0;height:3px;background:var(--green);z-index:999;width:0;transition:width .3s;border-radius:0 2px 2px 0}

/* Toast */
.toast-wrap{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:999}
.toast{background:var(--text);color:var(--surface);padding:10px 16px;border-radius:var(--r);font-size:12.5px;opacity:0;transform:translateY(8px);transition:all .25s;pointer-events:none;max-width:280px;box-shadow:var(--shm)}
.toast.show{opacity:1;transform:translateY(0);pointer-events:all}
.toast.ok{background:var(--green)}.toast.err{background:var(--red)}

/* Metrics grid */
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.mc{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl2);padding:14px 16px;position:relative;overflow:hidden;box-shadow:var(--sh)}
.mc-a{position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:3px 0 0 3px}
.mc-lbl{font-size:10.5px;color:var(--t2);margin-bottom:5px;text-transform:uppercase;letter-spacing:.04em}
.mc-val{font-size:26px;font-weight:600;line-height:1.1;margin-bottom:4px}
.mc-ch{font-size:11px;color:var(--t3)}.mc-ch.up{color:var(--green)}.mc-ch.dn{color:var(--red)}

/* Grid layouts */
.grid2{display:grid;grid-template-columns:1fr 210px;gap:12px}
.grid2e{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}

/* Card */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl2);overflow:hidden;box-shadow:var(--sh)}
.card-hdr{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px}
.card-title{font-size:13px;font-weight:600}
.card-sub{font-size:11px;color:var(--t3);margin-top:2px}
.card-act{font-size:11.5px;color:var(--green);background:none;border:none;padding:4px 8px;border-radius:6px;cursor:pointer}
.card-act:hover{background:var(--gl)}

/* Buttons */
.btn{padding:7px 14px;border-radius:var(--r);font-size:12.5px;border:1px solid var(--bmd);background:var(--surface);color:var(--text);display:flex;align-items:center;gap:6px;transition:all .12s;white-space:nowrap;cursor:pointer}
.btn:hover{background:var(--s2)}
.btn-p{background:var(--green);color:#fff;border-color:var(--green)}
.btn-p:hover{background:var(--gd)}
.btn-sm{padding:5px 11px;font-size:12px}

/* Table */
.tbl-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse}
.tbl th{font-size:10.5px;font-weight:500;color:var(--t2);text-transform:uppercase;letter-spacing:.04em;padding:9px 14px;text-align:left;background:var(--s2);border-bottom:1px solid var(--border);white-space:nowrap;cursor:pointer;user-select:none;transition:color .12s}
.tbl th:hover{color:var(--text)}
.tbl th .si{display:inline-block;margin-left:4px;opacity:.4;font-size:9px}
.tbl th.asc .si::after{content:"↑"}.tbl th.desc .si::after{content:"↓"}.tbl th:not(.asc):not(.desc) .si::after{content:"↕"}
.tbl td{font-size:12.5px;padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:middle}
.tbl tr:last-child td{border-bottom:none}
.tbl tbody tr{transition:background .1s}.tbl tbody tr:hover td{background:var(--s2)}
.tbl tbody tr.rh{background:rgba(216,90,48,.04)}.tbl tbody tr.rh:hover td{background:rgba(216,90,48,.08)}

/* Lead cell */
.lc{display:flex;align-items:center;gap:8px}
.av-sm{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;flex-shrink:0}
.ln{font-size:12.5px;font-weight:500}.lm{font-size:10px;color:var(--t3)}

/* Badges */
.badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:20px;font-size:10.5px;font-weight:500;white-space:nowrap}
.bh{background:var(--rl);color:var(--rd)}.bw{background:var(--al);color:var(--ad)}.bc{background:var(--bl);color:var(--bd)}
.b-in{background:#E8F4FD;color:#1565C0}.b-re{background:var(--pl);color:var(--pd)}
.b-it{background:var(--al);color:var(--ad)}.b-qu{background:var(--ol);color:var(--od)}
.b-de{background:var(--rl);color:var(--rd)}.b-so{background:var(--gl);color:var(--gd)}
.b-do{background:var(--gray-l);color:var(--gray-d)}
.b-bo{background:var(--gl);color:var(--gd)}.b-me{background:var(--al);color:var(--ad)}
.b-bl{background:var(--pl);color:var(--pd)}.b-gr{background:var(--gray-l);color:var(--gray-d)}

/* Score mini bar */
.sw2{display:flex;align-items:center;gap:7px}
.sb2{width:44px;height:4px;border-radius:2px;background:var(--s2);overflow:hidden}
.sf2{height:100%;border-radius:2px}
.sn{font-size:11.5px;font-weight:600;font-family:"DM Mono",monospace}

/* WA button */
.wa-btn{padding:5px 11px;border-radius:8px;font-size:11px;border:1px solid var(--green);background:var(--gl);color:var(--gd);display:flex;align-items:center;gap:4px;white-space:nowrap;transition:all .12s;cursor:pointer;text-decoration:none}
.wa-btn:hover{background:var(--green);color:#fff}
.cp-btn{padding:5px 11px;border-radius:8px;font-size:11px;border:1px solid var(--bmd);background:var(--s2);color:var(--t2);white-space:nowrap;transition:all .12s;cursor:pointer}
.cp-btn:hover{background:var(--surface);color:var(--text)}

/* Status bar */
.sbar{background:var(--surface);border-top:1px solid var(--border);padding:5px 20px;display:flex;align-items:center;gap:16px;font-size:11px;color:var(--t3)}
.sdot{width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0}.sdot.off{background:var(--t3)}

/* Empty state */
.empty-s{padding:48px 20px;text-align:center;color:var(--t3)}
.empty-i{font-size:32px;margin-bottom:10px}
.empty-t{font-size:14px;font-weight:500;color:var(--t2);margin-bottom:5px}
.empty-sb{font-size:12px}

/* Pulse dot */
.adot{width:7px;height:7px;border-radius:50%;background:var(--red);flex-shrink:0;animation:pulse 1.5s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}

/* FAB */
.fab{display:none;position:fixed;bottom:24px;right:20px;width:52px;height:52px;border-radius:50%;background:var(--green);color:#fff;border:none;font-size:24px;box-shadow:var(--shm);z-index:150;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s}
.fab:hover{transform:scale(1.08)}.fab:active{transform:scale(.95)}

/* Overlay */
.sb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:199;backdrop-filter:blur(2px)}
