@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap";:root{color:#172334;font-synthesis:none;--ink:#172b3f;--accent:#087d72;--soft:#f3f6f8;background:#f7f8fa;font-family:DM Sans,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}.project,button{cursor:pointer}a{color:inherit;text-decoration:none}.login-wrap,.shell{min-height:100vh}.brand,.shell,.sidebar{display:flex}.sidebar{background:#fff;border-right:1px solid #e5e9ef;flex-direction:column;gap:28px;width:245px;min-width:245px;padding:25px 15px}.brand{align-items:center;gap:12px;padding:0 12px;font-size:18px;font-weight:700}.brandmark{color:#fff;background:#182e40;border-radius:9px;place-items:center;width:33px;height:33px;display:grid}.side-group{letter-spacing:1px;color:#9ba5b4;padding:0 14px 8px;font-size:11px;font-weight:700}.side-item{color:#536174;border-radius:9px;align-items:center;gap:11px;margin:3px 0;padding:12px 14px;font-size:13px;font-weight:600;display:flex}.side-item.active{color:#17665e;background:#e9f2f1}.side-foot{color:#66748a;background:#f7f8fa;border-radius:12px;margin-top:auto;padding:13px;font-size:12px}.workspace{flex:1;min-width:0}.topbar{border-bottom:1px solid #e6e9ee;justify-content:space-between;align-items:center;height:75px;display:flex}.muted{color:#748195}.tag{color:#247466;background:#edf7f4;border-radius:6px;padding:5px 9px;font-size:11px;font-weight:700;display:inline-flex}.container{max-width:1400px;margin:auto;padding:34px}.heading{justify-content:space-between;align-items:center;gap:15px;margin-bottom:23px;display:flex}h1{margin:0 0 5px;font-size:26px}h2{margin:0 0 13px;font-size:16px}.sub{color:#788597;margin:0;font-size:13px}.primary{color:#fff;background:#1a665d;border:0;border-radius:9px;padding:11px 17px;font-weight:700}.secondary{color:#354559;background:#fff;border:1px solid #dfe5ec;border-radius:9px;padding:10px 15px}.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:20px 0 24px;display:grid}.metric,.panel,.project{background:#fff;border:1px solid #e4e9ee;border-radius:12px;padding:22px}.metric .num{margin:12px 0 0;font-size:28px;font-weight:700}.projects{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.project:hover{box-shadow:0 10px 26px #243a4a0d}.project-head{align-items:center;gap:12px;display:flex}.project-avatar{color:#234d70;background:#e8f0f7;border-radius:12px;place-items:center;width:42px;height:42px;font-weight:700;display:grid}.pname{font-size:16px;font-weight:700}.meta{color:#8290a0;margin-top:4px;font-size:12px}.project-bottom{border-top:1px solid #eff1f3;justify-content:space-between;margin-top:22px;padding-top:17px;font-size:12px;display:flex}.empty{color:#7c8899;text-align:center;padding:35px}.field{color:#465569;margin:13px 0;font-size:12px;font-weight:700;display:block}.field input,.field select{background:#fff;border:1px solid #dce3ea;border-radius:9px;outline-color:#4c9689;width:100%;margin-top:7px;padding:12px;display:block}.modal-bg{z-index:5;background:#0e1c2a70;place-items:center;padding:15px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;width:100%;max-width:480px;padding:26px;box-shadow:0 24px 60px #12213226}.modal-top{justify-content:space-between;align-items:center;display:flex}.close{background:0 0;border:0;font-size:24px}.tabs{border-bottom:1px solid #e3e8ef;gap:25px;margin:26px 0 23px;display:flex;overflow-x:auto}.tab{color:#778497;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:12px 0}.tab.selected{color:#17675d;border-color:#17675d;font-weight:700}.req{border-bottom:1px solid #eff1f3;justify-content:space-between;align-items:center;gap:12px;padding:18px 0;display:flex}.req:last-child{border:0}.code{color:#536376;overflow-wrap:anywhere;font:12px ui-monospace,monospace}.notice{color:#426e66;background:#f2faf8;border:1px solid #dbe8e5;border-radius:9px;padding:15px;font-size:13px}.login-wrap{background:radial-gradient(circle at 70% 10%,#e3efec,#f7f8fa 58%);place-items:center;padding:20px;display:grid}.login-card{background:#fff;border:1px solid #e3e8ef;border-radius:17px;width:100%;max-width:410px;padding:36px;box-shadow:0 20px 70px #182e400c}.login-card h1{margin-top:25px}.error{color:#b33c35;font-size:13px}.mobile-nav{display:none}@media (width<=900px){.topbar{padding:0 18px}.container{padding:23px 16px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.projects{grid-template-columns:1fr}.mobile-nav{background:#fff;border-bottom:1px solid #e6e9ee;gap:12px;padding:11px 15px;display:flex;overflow:auto}.mobile-nav button{white-space:nowrap;background:#f1f5f7;border:0;border-radius:8px;padding:9px 12px}.sidebar{display:none}}@media (width<=520px){.cards{grid-template-columns:1fr 1fr}.metric{padding:15px}.metric .num{font-size:23px}.heading{align-items:flex-start}.heading .primary{padding:10px;font-size:12px}.topbar{height:62px}.modal{padding:20px}}body{color:var(--ink);background:#f3f6f9}.sidebar{color:#d2deea;background:#111d2a;border-right:1px solid #223346;padding:24px 13px}.sidebar .brand{color:#fff;font-size:19px}.sidebar .brandmark{background:#15766d}.sidebar .side-group{color:#73849a}.sidebar .side-item{color:#adbbcb!important;background:0 0!important}.sidebar .side-item.active{color:#91e3d2!important;background:#233f48!important}.sidebar .side-item:hover{background:#213144!important}.sidebar .side-foot{color:#b1c1cd;background:#1c2d3d;border:1px solid #344558}.topbar{background:#fff;padding:0 34px;box-shadow:0 1px 2px #10283b08}.container{max-width:1500px}h1{letter-spacing:-.9px;font-size:28px;font-weight:700}.metric,.panel,.project{border:1px solid #dde5eb;box-shadow:0 2px 6px #172b3f05}.metric{background:linear-gradient(145deg,#fff,#fafcfd)}.metric .num{letter-spacing:-1px;font-size:32px}.project{border-radius:14px;padding:22px;transition:box-shadow .2s}.project:hover{border-color:#a6cbc5;transform:translateY(-1px);box-shadow:0 12px 28px #122e3a11}.project-avatar{color:#14766a;background:#e7f5f0;font-size:15px}.primary{background:#146e65}.primary:hover{background:#0d544d}.tag{color:#137366;background:#eaf6f2}.tabs{gap:28px}
