@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@500;600&display=swap";:root{--ink: #14181f;--muted: #687184;--paper: #f6f5f0;--surface: #ffffff;--primary: #1f5f5b;--primary-d: #164542;--accent: #d98324;--danger: #c0392b;--danger-bg: #fdecea;--positive: #2f7d4f;--positive-bg: #e9f4ed;--line: #e6e3db;--line-strong: #d6d2c7;--radius: 10px;--shadow: 0 1px 2px rgba(20, 24, 31, .04), 0 8px 24px rgba(20, 24, 31, .06);--sans: "Inter", system-ui, sans-serif;--display: "Space Grotesk", system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}.num{font-family:var(--mono);font-feature-settings:"tnum"}.shell{display:grid;grid-template-columns:248px 1fr;min-height:100%}.sidebar{background:var(--primary-d);color:#cfe3e0;padding:22px 16px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.brand{font-family:var(--display);font-weight:700;font-size:20px;color:#fff;letter-spacing:-.02em;display:flex;align-items:center;gap:9px;margin-bottom:22px;padding:0 8px}.brand .dot{width:11px;height:11px;border-radius:3px;background:var(--accent);transform:rotate(45deg)}.brand small{display:block;font-family:var(--sans);font-weight:500;font-size:11px;color:#8fb3af;letter-spacing:.04em}.nav-group{font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:#6f9591;margin:16px 10px 6px}.nav-item{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:8px;color:#bcd6d2;font-size:14px;font-weight:500}.nav-item:hover{background:#ffffff0f;color:#fff}.nav-item.active{background:var(--primary);color:#fff}.nav-item .ic{width:18px;text-align:center;opacity:.9}.sidebar .spacer{flex:1}.userbox{border-top:1px solid rgba(255,255,255,.1);padding-top:14px;margin-top:8px;font-size:13px}.userbox b{color:#fff;display:block;font-weight:600}.userbox .role{color:#8fb3af;font-size:11.5px;text-transform:capitalize}.userbox button{margin-top:10px;background:transparent;border:1px solid rgba(255,255,255,.18);color:#cfe3e0;padding:6px 10px;border-radius:7px;font-size:12.5px;width:100%}.userbox button:hover{border-color:var(--accent);color:#fff}.main{padding:26px 34px 60px;max-width:1240px;width:100%}.topbar{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:22px;gap:16px;flex-wrap:wrap}.page-title{font-family:var(--display);font-size:25px;font-weight:700;letter-spacing:-.02em;margin:0}.page-sub{color:var(--muted);font-size:13.5px;margin:3px 0 0}.btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);padding:8px 14px;border-radius:8px;font-size:13.5px;font-weight:600;transition:.12s}.btn:hover{border-color:var(--ink)}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-d);border-color:var(--primary-d)}.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn-ghost{border-color:transparent;background:transparent;padding:6px 9px}.btn-danger{color:var(--danger);border-color:var(--line-strong)}.btn-danger:hover{border-color:var(--danger);background:var(--danger-bg)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:5px 10px;font-size:12.5px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:22px}.kpi{padding:16px 18px;position:relative;overflow:hidden}.kpi .label{font-size:12px;color:var(--muted);font-weight:600;letter-spacing:.02em}.kpi .value{font-family:var(--mono);font-size:26px;font-weight:600;margin-top:8px;letter-spacing:-.01em}.kpi .foot{font-size:11.5px;color:var(--muted);margin-top:4px}.kpi .tick{position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--primary)}.kpi.warn .tick{background:var(--danger)}.kpi.warn .value{color:var(--danger)}.kpi.accent .tick{background:var(--accent)}.grid-2{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}.mobile-topbar,.sidebar-backdrop{display:none}.hamburger{background:transparent;border:1px solid var(--line-strong);border-radius:8px;font-size:18px;line-height:1;padding:6px 11px;color:var(--ink)}.mobile-brand{font-family:var(--display);font-weight:700;font-size:16px;display:inline-flex;align-items:center;gap:8px}.mobile-brand .dot{width:9px;height:9px;border-radius:3px;background:var(--accent);transform:rotate(45deg)}.live{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--muted)}.live .pulse{width:8px;height:8px;border-radius:50%;background:var(--positive);animation:live-pulse 1.8s ease-out infinite}.mobile-topbar .live{margin-left:auto}.sidebar .live{color:#8fb3af}.live-row{margin-top:10px}@keyframes live-pulse{0%{box-shadow:0 0 #2f7d4f8c}70%{box-shadow:0 0 0 7px #2f7d4f00}to{box-shadow:0 0 #2f7d4f00}}.nav-item .nav-badge{margin-left:auto;background:var(--danger);color:#fff;font-size:10.5px;font-weight:700;line-height:1;padding:3px 7px;border-radius:999px;min-width:18px;text-align:center}@media (prefers-reduced-motion: reduce){.live .pulse{animation:none}}.panel{padding:18px 20px}.panel h3{font-family:var(--display);font-size:15px;margin:0 0 14px;font-weight:600}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.search{flex:1;min-width:200px}.input,select.input{width:100%;padding:8px 11px;border:1px solid var(--line-strong);border-radius:8px;font-size:13.5px;font-family:inherit;background:var(--surface);color:var(--ink)}.input:focus{outline:2px solid var(--primary);outline-offset:-1px;border-color:var(--primary)}table.tbl{width:100%;border-collapse:collapse}.tbl th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--line)}.tbl td{padding:11px 12px;border-bottom:1px solid var(--line);font-size:13.5px;vertical-align:middle}.tbl tr:last-child td{border-bottom:none}.tbl tbody tr:hover{background:#fafaf7}.tbl .right{text-align:right}.cell-sub{color:var(--muted);font-size:12px}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:600;background:#eef0ec;color:var(--muted)}.badge.green{background:var(--positive-bg);color:var(--positive)}.badge.red{background:var(--danger-bg);color:var(--danger)}.badge.amber{background:#fbf0e0;color:#a4651a}.badge.dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14181f6b;display:flex;align-items:flex-start;justify-content:center;padding:60px 16px;z-index:50;overflow-y:auto}.modal{background:var(--surface);border-radius:14px;width:100%;max-width:540px;box-shadow:0 24px 60px #00000040}.modal-head{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-head h3{font-family:var(--display);margin:0;font-size:17px}.modal-body{padding:20px 22px}.modal-foot{padding:14px 22px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px}.field{margin-bottom:14px}.field label{display:block;font-size:12.5px;font-weight:600;margin-bottom:5px;color:#3a4252}.field .hint{font-size:11.5px;color:var(--muted);margin-top:4px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.empty{text-align:center;padding:46px 20px;color:var(--muted)}.empty .big{font-family:var(--display);font-size:16px;color:var(--ink);margin-bottom:4px}.error-banner{background:var(--danger-bg);color:var(--danger);padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:14px}.skeleton{background:linear-gradient(90deg,#eee 25%,#f5f5f5 37%,#eee 63%);background-size:400% 100%;animation:sk 1.3s ease infinite;border-radius:6px}@keyframes sk{0%{background-position:100% 0}to{background-position:-100% 0}}.auth{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.auth-art{background:var(--primary-d);color:#cfe3e0;padding:56px 52px;display:flex;flex-direction:column;justify-content:space-between}.auth-art .lead{font-family:var(--display);font-size:32px;line-height:1.18;color:#fff;font-weight:700;letter-spacing:-.02em}.auth-art .lead span{color:var(--accent)}.auth-form{display:flex;align-items:center;justify-content:center;padding:40px}.auth-form .box{width:100%;max-width:360px}.auth-form h1{font-family:var(--display);font-size:24px;margin:0 0 6px}.auth-stat{border-top:1px solid rgba(255,255,255,.12);padding-top:18px;display:flex;gap:26px}.auth-stat b{font-family:var(--mono);font-size:19px;color:#fff;display:block}.auth-stat span{font-size:12px}@media (max-width: 920px){.shell,.grid-2{grid-template-columns:1fr}.mobile-topbar{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:40;background:var(--surface);border-bottom:1px solid var(--line);padding:10px 16px}.sidebar{position:fixed;inset:0 auto 0 0;width:264px;max-width:82vw;height:100vh;z-index:60;overflow-y:auto;transform:translate(-100%);transition:transform .25s ease}.sidebar.open{transform:translate(0);box-shadow:0 0 40px #0006}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#14181f73;z-index:55}.main{padding:20px 22px 48px;max-width:100%}}@media (max-width: 640px){.main{padding:16px 14px 44px}.page-title{font-size:21px}.kpi .value{font-size:22px}.panel{padding:14px}table.tbl{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}.field-row{grid-template-columns:1fr}.overlay{padding:20px 12px}.modal-head,.modal-body,.modal-foot{padding-left:16px;padding-right:16px}}@media (max-width: 400px){.kpis{grid-template-columns:1fr}.page-title{font-size:19px}.topbar .btn{width:100%;justify-content:center}.modal-foot{flex-wrap:wrap}.modal-foot .btn{flex:1;justify-content:center}}@media (max-width: 760px){.auth{grid-template-columns:1fr;min-height:100vh}.auth-art{display:none}.auth-form{padding:36px 20px}}
