:root{--bg:#f3f7f5;--surface:#fff;--surface2:#f8fbf9;--ink:#13231d;--muted:#6d7d76;--line:#dfe9e4;--green:#0a8f63;--green2:#066c4b;--green-soft:#dff5eb;--orange:#a76800;--orange-soft:#fff1cf;--red:#a4332b;--red-soft:#ffe7e4;--shadow:0 12px 34px rgba(20,61,45,.08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:radial-gradient(circle at 100% 0,#e2f5ed 0,transparent 27rem),var(--bg)}a{color:inherit}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:#071712;color:#d9e7e1;padding:22px 15px 18px;display:flex;flex-direction:column;z-index:20;border-right:1px solid #16352a}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;padding:2px 8px 23px}.brand-mark{display:grid;place-items:center;width:39px;height:39px;border-radius:12px;background:linear-gradient(145deg,#20bd82,#087452);font-weight:900;color:white;box-shadow:0 8px 22px rgba(18,173,115,.25)}.brand strong{display:block;font-size:16px;color:#fff}.brand small,.user-mini small,.mobile-topbar small{display:block;color:#89a69a;font-size:11px;margin-top:2px}.side-nav{display:flex;flex-direction:column;gap:5px}.side-nav a{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:11px;text-decoration:none;color:#adc4ba;font-size:14px;font-weight:650;transition:.15s}.side-nav a:hover{background:#10281f;color:#fff}.side-nav a.active{background:#123b2c;color:#fff;box-shadow:inset 3px 0 #23c184}.nav-icon{width:22px;text-align:center;font-size:16px}.sidebar-foot{margin-top:auto;border-top:1px solid #17362b;padding:16px 7px 0}.user-mini{display:flex;gap:10px;align-items:center;min-width:0}.user-mini>span:last-child{min-width:0}.user-mini strong,.user-mini small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#173c2f;color:#c7f5e2;font-weight:800}.logout-link{display:inline-block;margin:13px 0 0 44px;color:#85a69a;font-size:12px;text-decoration:none}.main-area{margin-left:248px;min-height:100vh;display:flex;flex-direction:column}.mobile-topbar{display:none}.content{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:34px 0 60px;flex:1}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:var(--green2);font-size:11px;font-weight:800;margin:0 0 5px}h1{font-size:30px;line-height:1.16;margin:0;letter-spacing:-.03em}h2{font-size:17px;margin:0 0 15px;letter-spacing:-.01em}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 12px}.section-head h2{margin:0}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.card{background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 2px 7px rgba(20,61,45,.02)}.metric-card{position:relative;overflow:hidden}.metric-card:after{content:"";position:absolute;right:-26px;top:-26px;width:88px;height:88px;border-radius:50%;background:#eff8f4}.metric-top{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:1}.metric-icon{width:35px;height:35px;border-radius:10px;display:grid;place-items:center;background:var(--green-soft);color:var(--green2);font-weight:900}.stat{font-size:31px;font-weight:850;line-height:1;margin:18px 0 6px;letter-spacing:-.04em}.muted{color:var(--muted)}.tiny{font-size:12px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.btn,button{appearance:none;border:0;background:linear-gradient(180deg,#0b996a,#087d57);color:#fff;padding:10px 14px;border-radius:10px;cursor:pointer;text-decoration:none;font-weight:750;font:inherit;font-size:14px;box-shadow:0 5px 13px rgba(5,120,82,.13)}.btn:hover,button:hover{filter:brightness(.97)}.btn.secondary,button.secondary{background:#eef4f1;color:#29483c;box-shadow:none}.btn.danger,button.danger{background:#a63b33}.btn.small,button.small{padding:7px 10px;font-size:12px}.btn.ghost{background:transparent;border:1px solid var(--line);color:#345247;box-shadow:none}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #cedbd5;border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-size:14px;outline:none;transition:border .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:#6bc1a1;box-shadow:0 0 0 3px rgba(10,143,99,.09)}label{display:block;font-weight:730;font-size:13px;margin-bottom:6px}.field{margin-bottom:14px}.help{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.5}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 2px 7px rgba(20,61,45,.02)}table{width:100%;border-collapse:collapse;min-width:700px}th,td{padding:13px 14px;border-bottom:1px solid #edf2ef;text-align:left;font-size:13px;vertical-align:middle}th{background:#f7faf8;color:#607168;font-size:11px;text-transform:uppercase;letter-spacing:.05em}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:#fbfdfc}.badge{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:750;background:#eef2f0;color:#586961}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.7}.badge.ok{background:var(--green-soft);color:#076443}.badge.warn{background:var(--orange-soft);color:var(--orange)}.badge.bad{background:var(--red-soft);color:var(--red)}.alert{padding:12px 14px;border-radius:11px;margin:0 0 16px;background:#eaf0ed;border:1px solid #dce7e2;font-size:13px}.alert.success{background:var(--green-soft);border-color:#c8eadb}.alert.error{background:var(--red-soft);border-color:#ffd1cd}.footer{text-align:center;color:#7b8c84;font-size:11px;padding:20px}.split{display:grid;grid-template-columns:1fr 1fr;gap:15px}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#edf3f0;padding:2px 5px;border-radius:5px;font-size:.93em}.progress{height:7px;background:#e9f0ed;border-radius:999px;overflow:hidden;min-width:110px}.progress span{display:block;height:100%;background:linear-gradient(90deg,#10a16f,#2bc28b);border-radius:inherit}.progress-label{display:flex;justify-content:space-between;gap:12px;margin-top:6px;color:var(--muted);font-size:11px}.quick-actions{display:flex;gap:9px;flex-wrap:wrap}.empty{padding:38px 18px;text-align:center;color:var(--muted)}.event{display:flex;gap:11px;align-items:flex-start;padding:12px 0;border-bottom:1px solid #edf2ef}.event:last-child{border-bottom:0}.event-dot{margin-top:6px;width:8px;height:8px;border-radius:50%;background:#82a095;flex:0 0 auto}.event-dot.ok{background:#12a671}.event-dot.bad{background:#c24a40}.event-body{min-width:0}.event-body strong{font-size:13px}.event-body p{margin:3px 0;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-body time{font-size:10px;color:#91a098}.status-list{display:grid;gap:10px}.status-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:10px 0;border-bottom:1px solid #edf2ef}.status-row:last-child{border-bottom:0}.status-check{display:flex;gap:9px;align-items:center}.status-bullet{width:9px;height:9px;border-radius:50%;background:#bdc8c3}.status-bullet.ok{background:#16a873}.status-bullet.bad{background:#c24a40}.kv{font-size:12px;color:var(--muted);word-break:break-word}.login-page{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:#071712}.login-hero{padding:8vw;display:flex;flex-direction:column;justify-content:center;color:#fff;position:relative;overflow:hidden}.login-hero:before,.login-hero:after{content:"";position:absolute;border-radius:50%;filter:blur(1px)}.login-hero:before{width:380px;height:380px;right:-100px;top:-120px;background:rgba(27,193,129,.12)}.login-hero:after{width:280px;height:280px;left:-100px;bottom:-100px;background:rgba(27,193,129,.08)}.login-hero .brand{padding:0 0 34px;position:relative;z-index:1}.login-hero h2{font-size:42px;line-height:1.06;max-width:520px;margin:0 0 16px;letter-spacing:-.04em;position:relative;z-index:1}.login-hero p{max-width:540px;color:#9fbbb0;line-height:1.65;position:relative;z-index:1}.login-side{background:#f4f8f6;display:grid;place-items:center;padding:24px}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:var(--shadow)}.login-card h1{font-size:27px;margin-bottom:7px}.login-card>p{margin-top:0}.login-card button{width:100%;padding:12px}.login-notes{display:grid;gap:10px;margin-top:25px}.login-note{display:flex;gap:9px;color:#9ab2a8;font-size:12px}.login-note span:first-child{color:#2fc28b}.menu-overlay{display:none}.online-dot{width:9px;height:9px;border-radius:50%;background:#22c785;box-shadow:0 0 0 4px rgba(34,199,133,.12)}@media(max-width:960px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar{width:220px}.main-area{margin-left:220px}.content{width:min(100% - 28px,1180px)}}@media(max-width:760px){body{background:var(--bg)}.sidebar{transform:translateX(-102%);transition:transform .2s;width:250px;box-shadow:16px 0 45px rgba(0,0,0,.25)}body.menu-open .sidebar{transform:translateX(0)}.main-area{margin-left:0}.mobile-topbar{height:60px;padding:0 15px;background:#071712;color:#fff;display:grid;grid-template-columns:42px 1fr 22px;align-items:center;position:sticky;top:0;z-index:15}.mobile-topbar strong,.mobile-topbar small{display:block}.menu-btn{width:36px;height:36px;padding:0;background:#123126;box-shadow:none}.content{width:calc(100% - 24px);padding:22px 0 45px}.page-head{margin-bottom:16px}h1{font-size:25px}.split{grid-template-columns:1fr}.menu-overlay{display:block;position:fixed;inset:0;background:rgba(0,0,0,.36);z-index:19;opacity:0;visibility:hidden;transition:.2s}body.menu-open .menu-overlay{opacity:1;visibility:visible}.login-page{grid-template-columns:1fr;background:#f4f8f6}.login-hero{display:none}.login-side{min-height:100vh}.grid{gap:10px}.card{border-radius:14px;padding:15px}}@media(max-width:460px){.grid{grid-template-columns:1fr 1fr}.stat{font-size:27px}.metric-card{padding:13px}.metric-icon{width:30px;height:30px}.quick-actions .btn{flex:1;text-align:center}.login-side{padding:14px}.login-card{padding:22px 18px}}
