:root{--navy:#0f2a4a;--blue:#1e6fd9;--ice:#e8f1fc;--bg:#f4f6fa;--card:#fff;--txt:#1b2533;--mut:#6b7686;--ok:#16a34a;--warn:#d97706;--bad:#dc2626;--ot:#7c3aed;--r:14px}
*{box-sizing:border-box}
body{margin:0;font-family:'Heebo','Assistant',Arial,sans-serif;background:var(--bg);color:var(--txt);font-size:15px;line-height:1.5}
a{color:var(--blue);text-decoration:none}
header.top{background:var(--navy);color:#fff;padding:0 24px;display:flex;align-items:center;gap:24px;height:60px}
header.top .brand{font-weight:800;font-size:18px;letter-spacing:.2px}
header.top .brand span{color:#7cc0ff;font-weight:500;margin-inline-start:8px;font-size:14px}
header.top nav{display:flex;gap:4px;flex:1}
header.top nav a{color:#cfe0f5;padding:8px 12px;border-radius:8px;font-weight:500}
header.top nav a.on,header.top nav a:hover{background:rgba(255,255,255,.12);color:#fff}
header.top .who{font-size:13px;color:#cfe0f5;display:flex;gap:10px;align-items:center}
main{max-width:1200px;margin:0 auto;padding:24px}
h1{font-size:24px;margin:0 0 4px}h2{font-size:18px;margin:0 0 12px}h3{font-size:15px;margin:0 0 8px}
.sub{color:var(--mut);margin:0 0 20px}
.card{background:var(--card);border-radius:var(--r);box-shadow:0 1px 3px rgba(15,42,74,.08);padding:20px;margin-bottom:20px}
.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:860px){.g2,.g3,.g4{grid-template-columns:1fr}}
.stat{background:var(--card);border-radius:var(--r);padding:16px 18px;box-shadow:0 1px 3px rgba(15,42,74,.08)}
.stat .v{font-size:26px;font-weight:800}.stat .l{color:var(--mut);font-size:13px}
table{width:100%;border-collapse:collapse}th,td{text-align:right;padding:9px 10px;border-bottom:1px solid #edf0f5;vertical-align:top}
th{font-size:13px;color:var(--mut);font-weight:600;background:#fafbfd}
input,select,textarea,button{font:inherit}
input,select,textarea{border:1px solid #d5dbe5;border-radius:9px;padding:8px 10px;background:#fff;min-width:0}
input:focus,select:focus{outline:2px solid #bcd7fb;border-color:var(--blue)}
.btn{background:var(--blue);color:#fff;border:0;border-radius:9px;padding:9px 16px;font-weight:600;cursor:pointer;display:inline-block}
.btn:hover{filter:brightness(1.08)}.btn.sec{background:#e6ecf5;color:var(--navy)}.btn.ok{background:var(--ok)}.btn.bad{background:var(--bad)}.btn.sm{padding:5px 10px;font-size:13px}
.link{background:none;border:0;color:var(--bad);cursor:pointer;padding:0;font-size:13px}
form.inline{display:inline}
.row{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.row label{display:flex;flex-direction:column;font-size:13px;color:var(--mut);gap:4px}
.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;background:#eef2f7;color:#425066}
.pill.ok{background:#dcfce7;color:#166534}.pill.warn{background:#fef3c7;color:#92400e}.pill.bad{background:#fee2e2;color:#991b1b}.pill.ot{background:#ede9fe;color:#5b21b6}.pill.blue{background:var(--ice);color:#1e4f8f}
.flash{padding:12px 16px;border-radius:10px;margin-bottom:16px;font-weight:500}.flash.ok{background:#dcfce7;color:#14532d}.flash.err{background:#fee2e2;color:#7f1d1d}
.issues{margin:0;padding-inline-start:18px;color:#92400e}.issues li{margin:2px 0}
.bar{height:10px;background:#e8edf4;border-radius:99px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--blue);border-radius:99px}
.bar.ot>i{background:var(--ot)}
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}
@media(max-width:1000px){.week{grid-template-columns:1fr}}
.day{background:#fff;border:1px solid #e6eaf1;border-radius:12px;padding:10px;min-height:130px}
.day.off{background:#f8f9fb;opacity:.75}.day.today{border-color:var(--blue);box-shadow:0 0 0 2px #cfe2fb}
.day .dh{display:flex;justify-content:space-between;font-weight:700;font-size:14px;margin-bottom:6px}.day .dh small{color:var(--mut);font-weight:500}
.blk{border-radius:8px;padding:5px 8px;margin:4px 0;font-size:13px;background:var(--ice);color:#173f72;display:flex;justify-content:space-between;align-items:center;gap:4px}
.blk.ot{background:#ede9fe;color:#4c1d95}.blk.pending{background:#fff7e6;color:#92400e;border:1px dashed #f59e0b}.blk.rejected{background:#f3f4f6;color:#9ca3af;text-decoration:line-through}
.day .tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
.day .miss{font-size:12px;color:var(--warn);margin-top:4px}
.tl{position:relative;height:34px;background:repeating-linear-gradient(to left,#f3f6fa 0,#f3f6fa calc(100%/18 - 1px),#e3e8ef calc(100%/18 - 1px),#e3e8ef calc(100%/18));border-radius:8px;direction:rtl}
.tl .s{position:absolute;top:4px;bottom:4px;background:#cfe2fb;border:1px solid #8fbaf3;border-radius:6px}
.tl .s.idle{background:#fde2e2;border-color:#f19999}
.tl .e{position:absolute;top:2px;width:4px;height:30px;border-radius:2px;transform:translateX(50%)}
.e.login{background:#0ea5e9}.e.order{background:#16a34a}.e.call{background:#f59e0b}.e.other{background:#64748b}.e.out{outline:2px solid var(--bad);outline-offset:1px}
.tlh{display:flex;justify-content:space-between;font-size:11px;color:var(--mut);direction:rtl;margin-top:2px}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--mut)}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-inline-end:4px;vertical-align:middle}
.login-wrap{min-height:100vh;display:grid;place-items:center;background:linear-gradient(160deg,#0f2a4a,#1e4f8f 60%,#7cc0ff)}
.login-card{background:#fff;border-radius:18px;padding:32px;width:min(400px,92vw);box-shadow:0 20px 50px rgba(0,0,0,.25)}
.login-card input{width:100%;margin:6px 0 12px}.login-card .btn{width:100%}
.muted{color:var(--mut);font-size:13px}code,pre{font-family:ui-monospace,Menlo,monospace;direction:ltr;text-align:left}
pre{background:#0f172a;color:#e2e8f0;padding:14px;border-radius:10px;overflow:auto;font-size:13px}
.ltr{direction:ltr;unicode-bidi:embed}

.e.lead{background:#0891b2}
.target-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:20px}
.target-card h2{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.target-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.target-grid .target-stats{grid-template-columns:1fr 1fr}
@media(max-width:860px){.target-stats{grid-template-columns:1fr 1fr}}
.target-stats .stat{box-shadow:none;border:1px solid #e6eaf1;padding:12px 14px}
.target-stats .v small{font-size:14px;font-weight:500;color:var(--mut)}
.target-earn{color:var(--ok)}
