:root{--teal:#159d9b;--dark:#142d3e;--mint:#def5f4;--bg:#f5fafa;--line:#e4eeee;--muted:#72858d}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#405762;font-family:Inter,Arial,sans-serif}a{text-decoration:none;color:#087f80}.shell{min-height:100vh}.side{position:fixed;inset:0 auto 0 0;width:250px;background:#fff;border-right:1px solid var(--line);padding:24px 16px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:10px;padding:0 10px 24px}.brand>b{width:40px;height:40px;border-radius:12px;background:var(--teal);color:white;display:grid;place-items:center;font:800 22px Manrope}.brand strong{display:block;color:var(--dark);font:800 18px Manrope}.brand small{display:block;color:#809097;font-size:9px;font-weight:800;letter-spacing:1.3px}.side nav{display:flex;flex-direction:column;gap:4px}.side nav a{padding:11px 12px;border-radius:10px;color:#536a74;font-size:13px;font-weight:600}.side nav a.active,.side nav a:hover{background:var(--mint);color:#087f80}.side nav a.disabled{opacity:.4;cursor:not-allowed}.userbox{margin-top:auto;border-top:1px solid var(--line);padding:16px 8px 10px;display:flex;gap:10px;align-items:center}.avatar{width:34px;height:34px;border-radius:50%;background:var(--mint);color:#087f80;display:grid;place-items:center;font-weight:800}.userbox strong,.userbox small{display:block}.userbox strong{font-size:12px;color:var(--dark)}.userbox small{font-size:9px;color:#8a999e;margin-top:3px}.logout{padding:8px;color:#6b7c84;font-size:12px;font-weight:700}.main{margin-left:250px;min-height:100vh}.top{height:88px;background:white;border-bottom:1px solid var(--line);padding:0 38px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:5}.top h1{margin:8px 0 0;font:800 26px Manrope;color:var(--dark)}.top>a{font-size:12px;font-weight:800}.eyebrow{display:inline-flex;padding:7px 12px;border-radius:30px;background:var(--mint);color:#087f80;font-size:9px;font-weight:800;letter-spacing:1.1px}.menu{display:none}.content{padding:32px 38px;max-width:1400px;margin:auto}.welcome{background:linear-gradient(135deg,#fff,#f0fafa);border:1px solid var(--line);border-radius:18px;padding:28px;display:flex;justify-content:space-between;align-items:center;gap:20px}.welcome h2{margin:12px 0 8px;font:800 28px Manrope;color:var(--dark)}.welcome p{margin:0;color:var(--muted);line-height:1.6}.primary{display:inline-flex;justify-content:center;align-items:center;border:0;background:var(--teal);color:white!important;border-radius:10px;padding:12px 18px;font-weight:800;cursor:pointer;box-shadow:0 8px 20px #159d9b25}.primary:hover{background:#087f80}.primary.small{width:auto;white-space:nowrap;font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}.stat,.panel{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 25px #142d3e0b}.stat{padding:20px}.stat span,.stat small{display:block;color:var(--muted);font-size:11px}.stat strong{display:block;color:var(--dark);font:800 30px Manrope;margin:7px 0 4px}.panel{overflow:hidden}.panelhead{padding:20px 22px;border-bottom:1px solid var(--line)}.panelhead h3{margin:8px 0 0;font:800 19px Manrope;color:var(--dark)}.roadmap div{padding:16px 22px;border-bottom:1px solid #edf3f3;color:#91a0a6;font-size:11px}.roadmap b{color:var(--dark);margin-left:12px;font-size:12px}.roadmap small{margin-left:15px}.roadmap .done,.roadmap .current{color:#087f80;background:#fbfefe}.login{min-height:100vh;display:grid;place-items:center;padding:30px;background:linear-gradient(135deg,#eef9f8,#f7fbfb)}.login-card{width:min(980px,100%);min-height:600px;display:grid;grid-template-columns:46% 54%;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 25px 80px #142d3e24}.login-left{padding:44px;background:linear-gradient(145deg,#123247,#1d4d62);color:white;display:flex;flex-direction:column}.login-left .brand strong{color:white}.login-left .brand small{color:#bdd0d6}.copy{margin:auto 0}.copy h1{font:800 37px/1.12 Manrope;margin:18px 0 14px}.copy h1 span{color:#62d8d2}.copy p{color:#c5d7dc;line-height:1.7}.points{color:#dcebed;font-size:11px;line-height:2}.login-right{padding:40px;display:flex;flex-direction:column;justify-content:center}.login-right h2{margin:17px 0 7px;font:800 31px Manrope;color:var(--dark)}.muted{color:var(--muted);font-size:12px;line-height:1.6}.login-right label,.setup label{display:block;margin:20px 0 7px;color:var(--dark);font-size:11px;font-weight:800}.login-right input,.setup input{width:100%;padding:12px;border:1px solid #d8e5e6;border-radius:10px;outline:0}.login-right input:focus,.setup input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #159d9b18}.pw{position:relative}.pw input{padding-right:60px}.pw button{position:absolute;right:7px;top:6px;border:0;background:none;color:#087f80;font-size:10px;font-weight:800;padding:7px}.login-right .primary{width:100%;margin-top:22px}.alert,.ok{margin-top:15px;padding:11px 13px;border-radius:10px;font-size:12px}.alert{background:#fff0f0;color:#a33b3b}.ok{background:#effaf6;color:#23765d}.note{margin-top:20px;padding:13px;background:#f5fafa;border-radius:11px}.note b,.note small{display:block}.note b{font-size:11px;color:var(--dark)}.note small{font-size:10px;color:var(--muted);margin-top:3px}.simple{min-height:100vh;display:grid;place-items:center;padding:30px}.setup{width:min(520px,100%);background:white;border:1px solid var(--line);border-radius:20px;padding:30px}.setup h1{font:800 28px Manrope;color:var(--dark)}.setup .primary{width:100%;margin-top:22px}@media(max-width:900px){.side{transform:translateX(-100%);transition:.2s}.side.open{transform:translateX(0)}.main{margin-left:0}.menu{display:block;border:0;background:var(--mint);color:#087f80;width:38px;height:38px;border-radius:10px}.top{padding:0 18px}.top>a{display:none}.content{padding:22px 18px}.stats{grid-template-columns:1fr 1fr}}@media(max-width:700px){.welcome{flex-direction:column;align-items:flex-start}.login-card{grid-template-columns:1fr}.login-left{min-height:300px;padding:28px}.login-right{padding:28px 22px}.copy h1{font-size:29px}}@media(max-width:420px){.stats{grid-template-columns:1fr}}
