:root {
  --red: #d80f1f;
  --red-dark: #a70815;
  --ink: #17191d;
  --muted: #6f7580;
  --line: #e7e9ed;
  --panel: #ffffff;
  --bg: #f5f6f8;
  --success: #11986b;
  --warning: #d78a09;
  --danger: #d64045;
  --shadow: 0 14px 40px rgba(21, 24, 29, .08);
}
*{box-sizing:border-box}
body.locked{overflow:hidden}
body.locked .app-shell{display:none}
.login-gate{position:fixed;inset:0;z-index:999;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 78% 18%,rgba(216,15,31,.22),transparent 32%),linear-gradient(135deg,#111317,#20242b)}
.login-gate.hidden{display:none}
.login-card{width:min(100%,430px);background:rgba(255,255,255,.98);border:1px solid rgba(255,255,255,.5);border-radius:24px;padding:34px;box-shadow:0 30px 80px rgba(0,0,0,.35);text-align:center}
.login-brand-mark{width:58px;height:58px;margin:0 auto 20px;border-radius:17px;background:linear-gradient(135deg,var(--red),var(--red-dark));color:#fff;display:grid;place-items:center;font-size:30px;font-weight:800;box-shadow:0 14px 30px rgba(216,15,31,.28)}
.login-eyebrow{margin:0 0 8px;color:var(--red);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}
.login-card h1{margin:0;font-size:30px}
.login-copy{margin:12px auto 24px;max-width:340px;color:var(--muted);font-size:14px;line-height:1.6}
.login-card form{text-align:left}
.login-card label{display:block;margin-bottom:8px;font-size:12px;font-weight:700}
.password-field{display:flex;align-items:center;border:1px solid #d8dbe0;border-radius:13px;background:#fff;overflow:hidden;transition:.2s}
.password-field:focus-within{border-color:var(--red);box-shadow:0 0 0 4px rgba(216,15,31,.10)}
.password-field input{min-width:0;flex:1;border:0;outline:0;padding:14px 15px;font:inherit;background:transparent}
.password-toggle{border:0;background:transparent;padding:0 14px;color:var(--red);font-size:12px;font-weight:700;cursor:pointer}
.login-submit{width:100%;border:0;border-radius:13px;padding:14px 18px;background:linear-gradient(135deg,var(--red),var(--red-dark));color:#fff;font-weight:800;cursor:pointer;box-shadow:0 12px 26px rgba(216,15,31,.22);transition:.2s}
.login-submit:hover{transform:translateY(-1px);filter:brightness(.98)}
.login-error{min-height:20px;margin:7px 0 7px;color:var(--danger);font-size:12px}
.login-card small{display:block;margin-top:22px;color:#8a9099;font-size:10px;line-height:1.5}
.login-card.shake{animation:login-shake .35s ease}
@keyframes login-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
@media(max-width:520px){.login-card{padding:27px 22px;border-radius:20px}.login-card h1{font-size:26px}}

html,body{margin:0;min-height:100%;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--ink)}
button{font:inherit}
.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}
.sidebar{position:sticky;top:0;height:100vh;background:#16181c;color:#fff;padding:24px 18px;display:flex;flex-direction:column;z-index:20}
.brand{display:flex;align-items:center;gap:12px;padding:2px 8px 28px}
.brand-mark{width:42px;height:42px;border-radius:13px;background:var(--red);display:grid;place-items:center;font-weight:800;font-size:24px;box-shadow:0 10px 24px rgba(216,15,31,.25)}
.brand strong,.brand span{display:block}.brand strong{font-size:20px;letter-spacing:.06em}.brand span{font-size:12px;color:#aeb3bc;margin-top:2px}
.nav{display:flex;flex-direction:column;gap:7px}
.nav-item{border:0;background:transparent;color:#b8bdc6;border-radius:12px;padding:12px 14px;text-align:left;display:flex;gap:12px;align-items:center;cursor:pointer;transition:.2s}
.nav-item span{width:22px;text-align:center}.nav-item:hover{background:#22252b;color:#fff}.nav-item.active{background:linear-gradient(135deg,var(--red),var(--red-dark));color:#fff;box-shadow:0 10px 26px rgba(216,15,31,.23)}
.sidebar-footer{margin-top:auto;border-top:1px solid #2b2e34;padding:18px 8px 0;color:#8f959f}.sidebar-footer small{display:block;margin-top:7px}.system-status{display:flex;align-items:center;gap:8px;color:#d5d8dd;font-size:13px}.pulse{width:8px;height:8px;border-radius:50%;background:#32d296;box-shadow:0 0 0 5px rgba(50,210,150,.12)}
.main{min-width:0}.topbar{min-height:94px;padding:20px 32px;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;position:sticky;top:0;z-index:10}.topbar h1{margin:3px 0 0;font-size:25px}.eyebrow{margin:0;color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.09em}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:14px}.icon-button,.menu-button{border:1px solid var(--line);background:#fff;border-radius:12px;cursor:pointer}.icon-button{width:42px;height:42px;position:relative}.notification-dot{position:absolute;width:8px;height:8px;background:var(--red);border:2px solid #fff;border-radius:50%;top:8px;right:9px}.user-card{display:flex;align-items:center;gap:10px}.avatar{width:42px;height:42px;background:#22252a;color:#fff;border-radius:12px;display:grid;place-items:center;font-weight:800}.user-card strong,.user-card span{display:block}.user-card strong{font-size:13px}.user-card span{font-size:11px;color:var(--muted);margin-top:3px}.menu-button{display:none;width:42px;height:42px}.content{padding:28px 32px 48px;max-width:1600px;margin:auto}
.hero{background:linear-gradient(125deg,#1b1d22,#292d34);color:#fff;border-radius:22px;padding:28px;display:flex;justify-content:space-between;gap:24px;align-items:center;box-shadow:var(--shadow);position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:rgba(216,15,31,.25);right:-90px;top:-120px}.hero h2{font-size:30px;margin:6px 0 10px;max-width:720px}.hero p{margin:0;color:#c8ccd3;line-height:1.6;max-width:690px}.hero-actions{display:flex;gap:10px;position:relative;z-index:1}.btn{border:0;border-radius:11px;padding:11px 15px;font-weight:700;cursor:pointer}.btn-primary{background:var(--red);color:#fff}.btn-secondary{background:#fff;color:#1a1c20}.section-head{display:flex;align-items:end;justify-content:space-between;margin:28px 0 14px}.section-head h2{margin:0;font-size:19px}.section-head p{margin:5px 0 0;color:var(--muted);font-size:13px}.text-button{border:0;background:transparent;color:var(--red);font-weight:700;cursor:pointer}
.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-top:18px}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 7px 22px rgba(30,33,39,.04)}.kpi-top{display:flex;justify-content:space-between;align-items:center}.kpi-icon{width:38px;height:38px;border-radius:11px;background:#f2f3f5;display:grid;place-items:center}.kpi-trend{font-size:11px;font-weight:700;color:var(--success)}.kpi strong{display:block;font-size:26px;margin:13px 0 5px}.kpi span{font-size:12px;color:var(--muted)}
.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:18px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 8px 24px rgba(30,33,39,.04)}.panel h3{margin:0 0 4px;font-size:16px}.panel-subtitle{font-size:12px;color:var(--muted);margin:0 0 18px}.chart{height:235px;display:flex;align-items:end;gap:13px;padding:16px 4px 0;border-bottom:1px solid var(--line)}.bar-wrap{flex:1;height:100%;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:8px}.bar{width:100%;max-width:36px;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,var(--red),#ff6470);min-height:18px;transition:.2s}.bar:hover{filter:brightness(.9);transform:translateY(-2px)}.bar-label{font-size:10px;color:var(--muted)}
.location-list,.activity-list{display:flex;flex-direction:column;gap:10px}.location-row,.activity-row{display:flex;align-items:center;gap:12px;padding:12px;border-radius:12px;background:#f8f9fa}.status-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.status-good{background:var(--success)}.status-warn{background:var(--warning)}.status-bad{background:var(--danger)}.location-row strong,.activity-row strong{display:block;font-size:13px}.location-row span,.activity-row span{font-size:11px;color:var(--muted)}.row-meta{margin-left:auto;text-align:right}.score{font-weight:800;font-size:13px}.activity-icon{width:34px;height:34px;border-radius:10px;background:#fff;display:grid;place-items:center;border:1px solid var(--line)}
.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.entity-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:19px;box-shadow:0 8px 22px rgba(20,23,28,.04)}.entity-card-top{display:flex;align-items:center;justify-content:space-between}.entity-logo{width:44px;height:44px;border-radius:13px;background:#191b20;color:#fff;display:grid;place-items:center;font-weight:800}.badge{font-size:11px;font-weight:700;padding:6px 9px;border-radius:999px}.badge-good{background:#e7f7f1;color:#0b825b}.badge-warn{background:#fff4db;color:#a56800}.entity-card h3{margin:16px 0 5px}.entity-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:17px 0}.mini-stat{background:#f7f8fa;border-radius:10px;padding:10px}.mini-stat strong,.mini-stat span{display:block}.mini-stat strong{font-size:14px}.mini-stat span{font-size:10px;color:var(--muted);margin-top:3px}.card-actions{display:flex;gap:8px}.card-actions .btn{flex:1;padding:9px;font-size:12px}.btn-light{background:#f1f2f4;color:#24272c}
.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:18px}.data-table{width:100%;border-collapse:collapse;min-width:820px}.data-table th,.data-table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line);font-size:12px}.data-table th{background:#fafafb;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.data-table tr:last-child td{border-bottom:0}.person{display:flex;align-items:center;gap:10px}.person-avatar{width:34px;height:34px;border-radius:10px;background:#e9ebef;display:grid;place-items:center;font-weight:700}.priority{font-weight:700}.priority-high{color:var(--danger)}.priority-medium{color:var(--warning)}.priority-low{color:var(--success)}
.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.kanban-col{background:#eceef1;border-radius:16px;padding:13px;min-height:430px}.kanban-head{display:flex;align-items:center;justify-content:space-between;padding:5px 3px 12px}.kanban-head strong{font-size:13px}.count{width:24px;height:24px;border-radius:8px;background:#fff;display:grid;place-items:center;font-size:11px}.task-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px;margin-bottom:10px;box-shadow:0 6px 16px rgba(20,23,28,.04)}.task-card h4{font-size:13px;margin:8px 0}.task-card p{font-size:11px;color:var(--muted);line-height:1.45}.task-meta{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted);margin-top:12px}.tag{display:inline-block;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:5px 7px;border-radius:7px;background:#f0f1f3}
.progress-row{margin:15px 0}.progress-label{display:flex;justify-content:space-between;font-size:12px;margin-bottom:7px}.progress{height:9px;background:#eceef1;border-radius:99px;overflow:hidden}.progress span{display:block;height:100%;background:var(--red);border-radius:inherit}.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.metric-big{font-size:38px;font-weight:800;margin:14px 0 4px}.muted{color:var(--muted)}
.empty-note{padding:70px 20px;text-align:center;background:#fff;border:1px dashed #cfd3d8;border-radius:18px}.empty-note h2{margin:12px 0 8px}.toast{position:fixed;right:24px;bottom:24px;background:#191b20;color:#fff;padding:13px 16px;border-radius:12px;box-shadow:var(--shadow);opacity:0;transform:translateY(10px);pointer-events:none;transition:.25s;z-index:50;font-size:13px}.toast.show{opacity:1;transform:none}
@media(max-width:1180px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.cards-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-280px;transition:.25s;width:260px}.sidebar.open{left:0}.menu-button{display:inline-grid;place-items:center}.topbar{padding:16px 20px}.content{padding:20px}.dashboard-grid,.report-grid{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(2,1fr)}.kanban{grid-template-columns:1fr}.user-card div:last-child{display:none}}
@media(max-width:620px){.hero{align-items:flex-start;flex-direction:column}.hero h2{font-size:24px}.hero-actions{width:100%}.hero-actions .btn{flex:1}.kpi-grid,.cards-grid{grid-template-columns:1fr}.topbar-actions .icon-button{display:none}.content{padding:16px}.topbar h1{font-size:21px}}
