:root{
  --bg:#eef4fb;
  --surface:#ffffff;
  --surface-2:#f6f8fc;
  --text:#273043;
  --muted:#6d7789;
  --line:#e3e8f1;
  --primary:#35295f;
  --primary-2:#6d75ff;
  --blue:#2fb8ed;
  --green:#05d081;
  --red:#e9325d;
  --orange:#f27e44;
  --shadow:0 14px 35px rgba(39,48,67,.12);
  --radius:18px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
a{color:inherit;text-decoration:none}.app{min-height:100vh;display:flex}.sidebar{width:294px;background:#1f2023;color:#d8dce6;position:fixed;left:0;top:0;bottom:0;z-index:30;transform:translateX(0);transition:.25s;box-shadow:var(--shadow)}.brand{height:110px;display:flex;align-items:center;justify-content:center;background:#0c0c0d;border-bottom:1px solid rgba(255,255,255,.04);font-weight:900;letter-spacing:.08em}.brand .mark{color:#ff5a27;margin-right:8px}.sidebar small{display:block;text-transform:uppercase;letter-spacing:.22em;color:#9ba1ad;font-weight:800;font-size:12px;margin:24px 28px 10px}.nav a{display:flex;align-items:center;gap:16px;padding:18px 28px;font-size:19px;font-weight:700;color:#bcc3d3;border-left:4px solid transparent}.nav a.active{background:var(--primary);color:#7f92ff;border-left-color:#7f92ff}.nav a:hover{background:rgba(255,255,255,.04)}.nav .ico{width:24px;text-align:center}.main{margin-left:294px;width:calc(100% - 294px);min-height:100vh}.topbar{height:76px;background:#1d1d1f;display:flex;align-items:center;gap:20px;padding:0 24px;color:#fff;position:sticky;top:0;z-index:20}.hamb{border:0;background:#2c2c2f;color:#fff;width:56px;height:56px;border-radius:0;font-size:33px;cursor:pointer}.spacer{flex:1}.pill{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:#ecfff7;color:#129966;font-weight:800}.user-pill{background:#2a2a2d;border-radius:999px;padding:10px 14px;color:#e8e8ec}.content{padding:28px;max-width:1440px}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:16px}.page-title{font-size:32px;margin:0;font-weight:900}.grid{display:grid;gap:18px}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;border:1px solid rgba(255,255,255,.75)}.metric{min-height:118px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative}.metric:after{content:"";position:absolute;right:-40px;bottom:-60px;width:160px;height:160px;border-radius:50%;background:rgba(47,184,237,.12)}.metric .label{font-weight:800;color:var(--text)}.metric .value{font-size:42px;line-height:1;font-weight:300;text-align:right;z-index:2}.metric.green{background:var(--green)}.metric.blue{background:var(--blue)}.metric.red{background:var(--red);color:#230816}.metric.money .value{text-align:center;color:var(--blue);font-size:44px}.metric .tag{align-self:center;z-index:2}.btn{border:0;border-radius:14px;padding:12px 18px;font-size:17px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:8px;background:#fff;color:#2f80d8;box-shadow:0 5px 12px rgba(39,48,67,.13);white-space:nowrap}.btn.primary{background:#2f80d8;color:#fff}.btn.danger{color:#e9335b}.btn.orange{color:#eb7d42}.btn.dark{background:#202327;color:#fff}.btn.small{font-size:13px;padding:8px 10px;border-radius:10px}.muted{color:var(--muted)}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:780px}.table th{background:#f0f0f0;color:#666;text-align:left;font-weight:800;padding:18px}.table td{padding:18px;border-bottom:1px solid var(--line);vertical-align:middle;color:#5e6878}.table tr:hover td{background:#fbfcff}.status{padding:6px 10px;border-radius:999px;font-size:12px;font-weight:900;display:inline-flex}.status.ok{background:#cdf9e8;color:#087f52}.status.bad{background:#ffe0e8;color:#c21844}.status.warn{background:#fff1d8;color:#b65b14}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.field label{display:block;font-size:14px;font-weight:900;color:#687386;margin-bottom:8px}.field input,.field select,.field textarea{width:100%;border:1px solid #dce3ee;border-radius:10px;padding:14px 15px;font-size:16px;background:#fff;color:#273043}.field textarea{min-height:90px;resize:vertical}.actions{display:flex;gap:12px;justify-content:flex-end;align-items:center;flex-wrap:wrap;margin-top:18px}.alert{padding:14px 16px;border-radius:12px;margin-bottom:18px;font-weight:700}.alert.success{background:#dff9ec;color:#086b45}.alert.error{background:#ffe0e8;color:#9d1435}.tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.tabs a{padding:10px 14px;border-radius:999px;background:#fff;color:#637086;box-shadow:0 3px 9px rgba(0,0,0,.06);font-weight:800}.tabs a.active{background:var(--primary);color:#fff}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:22px;background:linear-gradient(135deg,#17151f,#35295f 55%,#101114)}.login-box{width:min(440px,100%);background:#fff;border-radius:26px;padding:34px;box-shadow:0 30px 80px rgba(0,0,0,.35)}.login-logo{text-align:center;font-size:25px;font-weight:950;letter-spacing:.08em;margin-bottom:22px}.login-logo span{color:#ff5a27}.quick{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:18px}.quick .mini{background:#f7f9fc;border-radius:16px;padding:14px;text-align:center}.quick .mini strong{font-size:22px}.drawer-backdrop{display:none}.hr{height:1px;background:var(--line);margin:20px 0}.note{padding:14px 16px;background:#fff8ed;border-left:4px solid #f27e44;border-radius:12px;color:#6e4932}.modal-card{border-top:8px solid var(--primary)}.right{text-align:right}.nowrap{white-space:nowrap}.kpi-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.kpi{background:#fff;border-radius:16px;padding:16px;box-shadow:0 8px 20px rgba(39,48,67,.08)}.kpi b{display:block;font-size:24px;margin-top:6px}.footer-note{font-size:12px;color:#7c8494;margin-top:28px;text-align:center}.dark body,.dark{--bg:#12141a;--surface:#1d2028;--surface-2:#232733;--text:#f0f3f8;--muted:#a9b1c1;--line:#343948}.dark .table th{background:#272b35;color:#ccd3e1}.dark .field input,.dark .field select,.dark .field textarea{background:#151820;color:#f0f3f8;border-color:#373d4a}.dark .btn{background:#252a35}.dark .card{border-color:#262b35}.dark .metric.red{color:#fff}.dark .pill{background:#0e3b2b;color:#8ef0c9}.dark .topbar{background:#111214}.dark .sidebar{background:#161719}@media(max-width:1100px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:820px){.sidebar{transform:translateX(-100%);width:68vw;min-width:290px}.sidebar.open{transform:translateX(0)}.drawer-backdrop.show{display:block;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:25}.main{margin-left:0;width:100%}.content{padding:20px 14px}.page-title{font-size:26px}.topbar{height:78px}.grid-4,.grid-3,.form-grid{grid-template-columns:1fr}.metric .value{font-size:38px}.table{min-width:650px}.brand{height:98px}.nav a{font-size:18px}.card{padding:18px}.page-head{align-items:flex-start;flex-direction:column}.quick{grid-template-columns:1fr}}@media(min-width:821px){.hamb.closeonly{display:none}}
.template-box{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;padding:16px;margin:12px 0}.template-box textarea{min-height:130px}.check{display:inline-flex;align-items:center;gap:8px;font-weight:800;color:var(--muted);margin-top:10px}.check input{width:auto}.inline-form{margin:0}.msg-preview{white-space:pre-wrap;background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:14px;color:var(--muted)}
@media(max-width:820px){.nav a{padding:16px 24px}.user-pill{font-size:12px;max-width:58vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{font-size:15px}.topbar{gap:12px;padding:0 14px}}
.login-box.wide{width:min(760px,100%)}
.login-links{text-align:center;margin-top:18px;font-weight:800;color:#2f80d8}.login-links a{text-decoration:none;color:#2f80d8}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:820px){.grid-2{grid-template-columns:1fr}.login-box.wide{width:min(520px,100%)}}
