:root{--blue:#1769aa;--dark:#102a43;--bg:#f4f7fb;--card:#fff;--muted:#6b7c93;--line:#e3eaf2;--green:#1f9d68;--orange:#e08b24}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--dark)}a{text-decoration:none;color:inherit}.layout{display:flex;min-height:100vh}.side{width:245px;background:#fff;border-right:1px solid var(--line);padding:24px 16px;position:sticky;top:0;align-self:flex-start;height:100vh;overflow-y:auto}.brand{font-size:25px;font-weight:800;color:var(--blue);padding:8px 12px 28px}.nav a{display:block;padding:12px 14px;border-radius:10px;color:#425466;margin:3px 0}.nav a:hover,.nav a.active{background:#eaf4ff;color:var(--blue);font-weight:700}.main{flex:1;min-width:0}.top{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px}.content{padding:30px;max-width:1250px;margin:auto}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.grid2{display:grid;grid-template-columns:2fr 1fr;gap:20px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 4px 18px #19324d08}.stat b{font-size:28px;display:block;margin-top:8px}.muted{color:var(--muted)}.progress{height:11px;background:#e8eef5;border-radius:20px;overflow:hidden}.progress span{display:block;height:100%;background:var(--blue)}.btn{display:inline-block;background:var(--blue);color:white;border:0;border-radius:9px;padding:10px 15px;cursor:pointer;font-weight:700}.btn.secondary{background:#e9f2fa;color:var(--blue)}.btn.green{background:var(--green)}.btn.orange{background:var(--orange)}input,textarea,select{width:100%;padding:11px;border:1px solid #ccd7e3;border-radius:9px;margin:6px 0 14px;font:inherit}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px;border-bottom:1px solid var(--line)}.badge{display:inline-block;padding:5px 9px;border-radius:20px;background:#eaf4ff;color:var(--blue);font-size:12px;font-weight:700}.badge.green{background:#e7f7ef;color:var(--green)}.badge.orange{background:#fff4df;color:#a96612}.alert{padding:12px;border-radius:10px;background:#eaf4ff;margin-bottom:18px}.timeline{border-left:2px solid #dce6f0;padding-left:20px}.timeline div{margin-bottom:18px}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#eaf4ff,#f7fbff)}.loginbox{width:410px;background:#fff;padding:35px;border-radius:20px;box-shadow:0 20px 60px #19324d18}.logo{text-align:center;font-size:30px;font-weight:900;color:var(--blue);margin-bottom:8px}@media(max-width:850px){.side{position:static;width:100%;height:auto}.layout{display:block}.main{margin-left:0}.nav{display:flex;overflow:auto}.grid,.grid2{grid-template-columns:1fr 1fr}.top{padding:0 15px}}@media(max-width:550px){.grid,.grid2{grid-template-columns:1fr}.content{padding:15px}.side{padding:10px}}
.demo-banner{background:#e8a33d;color:#1a1410;text-align:center;padding:9px 16px;font-size:13px;font-weight:700;letter-spacing:.02em}
.demo-banner span{font-weight:500;opacity:.85}
.side .back{padding:0 12px;margin:0 0 6px}
.side .back a{color:var(--muted);font-size:12px}
.side .back a:hover{color:var(--blue)}
.login .back{position:absolute;top:18px;left:18px;margin:0}
.login .back a{color:var(--muted);font-size:13px}
.login{position:relative}
body{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.side{padding-top:calc(24px + env(safe-area-inset-top,0px))}
code{background:#eaf4ff;color:var(--blue);padding:2px 6px;border-radius:5px;font-size:12px}
