:root{--navy:#0e2841;--navy-light:#1b3f61;--ink:#1a1d21;--ink-muted:#5b6570;--line:#dfe3e8;--surface:#fff;--canvas:#f5f7f9;--accent:#0f6cbd;--ok:#107c41;--warn:#9a6700;--danger:#b42318;--danger-bg:#fef3f2;--ok-bg:#ecfdf3;--warn-bg:#fffaeb;--radius:6px;--shadow:0 1px 2px #1018280f, 0 1px 3px #1018281a}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Segoe UI,Roboto,-apple-system,BlinkMacSystemFont,Arial,sans-serif;font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{margin:0 0 4px;font-size:20px;font-weight:600}h2{margin:0 0 12px;font-size:15px;font-weight:600}p{margin:0 0 12px}.shell{min-height:100vh;display:flex}.sidebar{background:var(--navy);color:#cfd8e3;flex-direction:column;flex:0 0 216px;width:216px;padding:18px 0;display:flex}.sidebar-brand{color:#fff;letter-spacing:.04em;text-transform:uppercase;padding:0 18px 18px;font-size:13px;font-weight:600;line-height:1.3}.sidebar-brand span{letter-spacing:.02em;text-transform:none;color:#8fa4bb;margin-top:2px;font-size:11px;font-weight:400;display:block}.nav{flex-direction:column;flex:1;gap:1px;display:flex}.nav a{color:#cfd8e3;border-left:3px solid #0000;padding:8px 18px;font-size:13.5px}.nav a:hover{background:var(--navy-light);color:#fff;text-decoration:none}.nav a[aria-current=page]{background:var(--navy-light);color:#fff;border-left-color:#6ba4dc;font-weight:600}.nav-section{text-transform:uppercase;letter-spacing:.08em;color:#7f95ad;padding:14px 18px 4px;font-size:10.5px}.sidebar-footer{color:#9fb2c7;border-top:1px solid #ffffff1f;padding:14px 18px 0;font-size:12px}.sidebar-footer strong{color:#fff;font-weight:600;display:block}.sidebar-footer form{margin-top:8px}.sidebar-footer button{color:#9fb2c7;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.sidebar-footer button:hover{color:#fff}.main{flex-direction:column;flex:1;min-width:0;display:flex}.page-header{background:var(--surface);border-bottom:1px solid var(--line);padding:16px 28px}.page-header .subtitle{color:var(--ink-muted);margin:0;font-size:13px}.page-body{flex:1;padding:22px 28px 48px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:18px;padding:18px}.card-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:18px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px}.stat .label{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-muted);font-size:11.5px}.stat .value{font-variant-numeric:tabular-nums;font-size:26px;font-weight:600;line-height:1.2}table.data{border-collapse:collapse;width:100%;font-size:13.5px}table.data th{text-align:left;color:var(--ink-muted);border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;padding:8px 10px;font-size:12px;font-weight:600}table.data td{border-bottom:1px solid var(--line);vertical-align:top;padding:9px 10px}table.data tr:last-child td{border-bottom:none}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}.badge{border-radius:10px;padding:2px 8px;font-size:11.5px;font-weight:600;line-height:1.5;display:inline-block}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.danger{background:var(--danger-bg);color:var(--danger)}.badge.muted{color:var(--ink-muted);background:#f2f4f7}.empty{color:var(--ink-muted);text-align:center;padding:28px 10px;font-size:13.5px}.milestone{border-left:3px solid var(--line);color:var(--ink-muted);margin-bottom:10px;padding:2px 0 2px 12px;font-size:13px}.milestone.done{border-left-color:var(--ok);color:var(--ink)}.milestone strong{color:var(--ink);font-weight:600;display:block}.field{margin-bottom:14px}label{margin-bottom:4px;font-size:12.5px;font-weight:600;display:block}input[type=text],input[type=email],input[type=password],input[type=time],input[type=date],input[type=number],select,textarea{border:1px solid var(--line);border-radius:var(--radius);width:100%;font:inherit;background:var(--surface);color:var(--ink);padding:8px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}button.primary{background:var(--navy);color:#fff;border:1px solid var(--navy);border-radius:var(--radius);font:inherit;cursor:pointer;padding:9px 16px;font-weight:600}button.primary:hover{background:var(--navy-light)}button.primary:disabled{opacity:.6;cursor:not-allowed}.alert{border-radius:var(--radius);border:1px solid #0000;margin-bottom:14px;padding:10px 12px;font-size:13.5px}.alert.error{background:var(--danger-bg);color:var(--danger);border-color:#fecdc9}.alert.info{color:#175cd3;background:#eff8ff;border-color:#b2ddff}.alert.warn{color:#b54708;background:#fffaeb;border-color:#fedf89}.login-page{background:var(--navy);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--surface);border-radius:8px;width:100%;max-width:380px;padding:30px 28px;box-shadow:0 12px 32px #00000047}.login-card h1{margin-bottom:2px;font-size:17px}.login-card .subtitle{color:var(--ink-muted);margin-bottom:20px;font-size:13px}.login-card button{width:100%;margin-top:6px}.mono{font-family:Cascadia Mono,Consolas,SF Mono,Menlo,monospace;font-size:12.5px}.button-link{background:var(--navy);color:#fff;border-radius:var(--radius);padding:8px 14px;font-size:13.5px;font-weight:600;display:inline-block}.button-link:hover{background:var(--navy-light);text-decoration:none}
