:root{
  --bg:#f4f5f7;--card:#fff;--text:#111827;--muted:#6b7280;--line:#e5e7eb;--primary:#111827;--primaryText:#fff;--soft:#f3f4f6;--shadow:0 10px 25px rgba(15,23,42,.06);
  --okBg:#dcfce7;--ok:#166534;--warnBg:#fef3c7;--warn:#92400e;--badBg:#fee2e2;--bad:#991b1b;
}
body.dark-mode{--bg:#0b1220;--card:#111827;--text:#e5e7eb;--muted:#9ca3af;--line:#253044;--primary:#e5e7eb;--primaryText:#111827;--soft:#1f2937;--shadow:0 10px 25px rgba(0,0,0,.3)}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--text)}
.app{max-width:1320px;margin:0 auto;padding:28px}
.hero{background:linear-gradient(135deg,#111827,#1f2937);color:white;border-radius:28px;padding:30px;box-shadow:0 20px 45px rgba(0,0,0,.18)}
.hero small{color:#cbd5e1;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.hero h1{font-size:34px;margin:10px 0}.hero p{color:#d1d5db;max-width:920px;line-height:1.5}
.tabs{display:grid;grid-template-columns:repeat(10,1fr);gap:8px;background:var(--card);padding:10px;border-radius:20px;margin:22px 0;box-shadow:var(--shadow);border:1px solid var(--line)}
.tab{border:0;border-radius:14px;padding:12px 8px;font-weight:900;background:transparent;color:var(--muted);cursor:pointer}.tab.active{background:var(--primary);color:var(--primaryText)}
.section{display:none}.section.active{display:block}.grid{display:grid;gap:16px}.grid4{grid-template-columns:repeat(4,1fr)}.grid3{grid-template-columns:repeat(3,1fr)}.grid2{grid-template-columns:repeat(2,1fr)}
.card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:var(--shadow)}.dark-card{background:#111827;color:white;border-color:#111827}.stat-title{font-size:13px;color:var(--muted);font-weight:800}.dark-card .stat-title,.dark-card .stat-sub{color:#d1d5db}.stat-value{font-size:25px;font-weight:950;margin:8px 0}.stat-sub{font-size:12px;color:var(--muted)}
h2{font-size:20px;margin-bottom:16px}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:950;border:1px solid}.ok{background:var(--okBg);color:var(--ok);border-color:#bbf7d0}.warn{background:var(--warnBg);color:var(--warn);border-color:#fde68a}.bad{background:var(--badBg);color:var(--bad);border-color:#fecaca}.info{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}
input,select,textarea{width:100%;border:1px solid #d1d5db;border-radius:14px;padding:12px;background:white;color:#111827;font-size:14px;outline:none}textarea{min-height:80px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:#111827;box-shadow:0 0 0 4px rgba(17,24,39,.1)}label{display:block;font-size:13px;font-weight:900;color:var(--text);margin-bottom:7px}.formgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.formgrid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.btn{border:0;border-radius:14px;background:#111827;color:white;font-weight:950;padding:13px 16px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:filter .15s,transform .12s}.btn:hover:not(:disabled){filter:brightness(.85);transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn.red{background:#fee2e2;color:#991b1b}.btn.light{background:var(--soft);color:var(--text);border:1px solid var(--line)}.btn.green{background:#dcfce7;color:#166534}.btn.small{padding:8px 10px;font-size:12px;border-radius:10px}
table{width:100%;border-collapse:collapse;font-size:13px;min-width:1200px}th{text-align:left;color:var(--muted);text-transform:uppercase;font-size:11px;border-bottom:1px solid var(--line);padding:12px}td{border-bottom:1px solid var(--line);padding:12px}.tablewrap{overflow:auto}.progress{height:10px;background:#e5e7eb;border-radius:999px;overflow:hidden;margin-top:12px}.bar{height:100%;background:#111827;border-radius:999px}.row{display:flex;align-items:center;justify-content:space-between;gap:14px}.muted{color:var(--muted);font-size:13px}.list{display:grid;gap:12px}.item{border:1px solid var(--line);border-radius:18px;padding:16px;background:var(--card)}.item-clickable{cursor:pointer;transition:box-shadow .15s,transform .12s}.item-clickable:hover{box-shadow:0 8px 24px rgba(15,23,42,.12);transform:translateY(-2px)}canvas{max-height:310px}.footer{margin-top:26px;text-align:center;color:var(--muted);font-size:12px}
.brandbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.brand-left{display:flex;align-items:center;gap:12px}.brand-logo{width:54px;height:54px;border-radius:16px;object-fit:contain;background:white;border:1px solid #e5e7eb;padding:6px}.brand-name{font-size:18px;font-weight:950;color:var(--text)}.brand-powered{font-size:12px;color:var(--muted);font-weight:800}.top-actions{display:flex;gap:10px;align-items:center}.logout{background:var(--card);color:var(--text);border:1px solid var(--line)}
.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#111827,#374151)}.auth-card{width:100%;max-width:460px;background:white;border-radius:28px;padding:28px;box-shadow:0 25px 80px rgba(0,0,0,.28)}.auth-logo{width:82px;height:82px;border-radius:24px;object-fit:contain;background:#f9fafb;border:1px solid #e5e7eb;padding:8px;margin-bottom:14px}.auth-title{font-size:28px;font-weight:950;margin:4px 0;color:#111827}.auth-sub{color:#6b7280;font-size:14px;line-height:1.45;margin-bottom:18px}.auth-toggle{display:grid;grid-template-columns:1fr 1fr;background:#f3f4f6;border-radius:16px;padding:5px;margin:16px 0}.auth-toggle button{border:0;border-radius:12px;padding:11px;font-weight:900;cursor:pointer;background:transparent;color:#4b5563}.auth-toggle button.active{background:#111827;color:white}.auth-form{display:grid;gap:12px}.auth-error{display:none;background:#fee2e2;color:#991b1b;border:1px solid #fecaca;border-radius:14px;padding:12px;font-size:13px;font-weight:700}.auth-success{display:none;background:#dcfce7;color:#166534;border:1px solid #bbf7d0;border-radius:14px;padding:12px;font-size:13px;font-weight:700}.hidden{display:none!important}.filters{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:14px}.pill{display:inline-flex;padding:6px 10px;border-radius:999px;background:var(--soft);font-size:12px;font-weight:900;color:var(--text);border:1px solid var(--line)}
@media(max-width:1000px){.app{padding:14px}.tabs{grid-template-columns:repeat(2,1fr)}.grid4,.grid3,.grid2,.formgrid,.formgrid3,.filters{grid-template-columns:1fr}.hero h1{font-size:26px}.brandbar{align-items:flex-start;flex-direction:column}.top-actions{width:100%;flex-wrap:wrap}.btn{width:100%}}
.tabs.no-config{grid-template-columns:repeat(9,1fr)}
.loading-screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#111827,#374151);z-index:9999}
.loading-spinner{width:42px;height:42px;border:4px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:_spin .75s linear infinite}
@keyframes _spin{to{transform:rotate(360deg)}}
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-card{background:var(--card);border-radius:24px;padding:28px;box-shadow:0 25px 80px rgba(0,0,0,.3);width:100%;max-width:700px;position:relative}
.modal-close-btn{position:absolute;top:14px;right:14px;background:#fee2e2;color:#991b1b;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s;padding:0;flex-shrink:0}.modal-close-btn:hover{background:#fecaca}
.pwd-wrap{position:relative}.pwd-wrap input{padding-right:44px}
.pwd-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--muted);padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;width:28px;height:28px;transition:color .15s;flex-shrink:0}.pwd-toggle:hover{color:var(--text)}
