:root{--maroon:#6b1734;--maroon2:#8a2447;--ink:#17202a;--muted:#697386;--line:#e8e4e6;--bg:#f7f5f6;--card:#fff;--success:#147a50;--danger:#b4233b;--warn:#9a6500;--shadow:0 12px 35px rgba(34,16,24,.08)}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:#21151a;color:#fff;padding:22px 16px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:8px 10px 24px}.brand-mark{width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,var(--maroon2),#4d1027);display:grid;place-items:center;font-weight:900;font-size:22px;box-shadow:0 8px 22px rgba(0,0,0,.2)}.brand h1{font-size:18px;margin:0}.brand small{display:block;color:#d7c7ce;margin-top:2px}.nav-title{font-size:11px;color:#9d8992;letter-spacing:.12em;text-transform:uppercase;margin:14px 10px 7px}.nav a{display:flex;align-items:center;gap:10px;color:#e9dfe3;padding:11px 12px;border-radius:10px;margin:3px 0;font-size:14px}.nav a:hover,.nav a.active{background:#38232c;color:#fff}.nav .dot{width:8px;height:8px;border-radius:50%;background:#8d6576}.nav a.active .dot{background:#fff}.side-bottom{position:absolute;left:16px;right:16px;bottom:18px;border-top:1px solid #402c35;padding-top:14px}.user-chip{font-size:13px;color:#e8dce1}.user-chip span{display:block;color:#9f8b94;font-size:12px;margin-top:3px}.logout{margin-top:10px;width:100%;border:1px solid #5c3d4a;background:transparent;color:#fff;border-radius:9px;padding:9px;cursor:pointer}.main{min-width:0}.topbar{height:72px;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:5}.topbar strong{font-size:18px}.status-pill{font-size:12px;border:1px solid #d8e9df;background:#f0faf5;color:var(--success);padding:7px 10px;border-radius:999px}.content{padding:28px;max-width:1500px;margin:auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px}.page-head h2{font-size:27px;margin:0}.page-head p{margin:7px 0 0;color:var(--muted);font-size:14px}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;padding:10px 15px;font-weight:700;font-size:14px;cursor:pointer}.btn-primary{background:var(--maroon);color:white}.btn-primary:hover{background:#57112a}.btn-secondary{background:white;border:1px solid var(--line);color:var(--ink)}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:var(--shadow)}.stat .label{font-size:13px;color:var(--muted)}.stat .value{font-size:30px;font-weight:850;margin-top:8px}.stat .hint{font-size:12px;color:#8a7d83;margin-top:8px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:20px}.card h3{margin:0 0 14px;font-size:17px}.mt{margin-top:18px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;color:#756a70;font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:12px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:13px 12px;border-bottom:1px solid #f0edef;vertical-align:middle}.table tr:last-child td{border-bottom:0}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:#f5f1f3;border:1px solid #ebe3e7;border-radius:7px;padding:4px 7px}.badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:750;background:#f1edef;color:#5f4c54}.badge.green{background:#e9f8f0;color:var(--success)}.badge.amber{background:#fff5df;color:var(--warn)}.badge.red{background:#fdecef;color:var(--danger)}.toolbar{display:flex;gap:10px;align-items:center}.search{min-width:260px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px;outline:none}.search:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:#b88a9d;box-shadow:0 0 0 3px rgba(107,23,52,.08)}.form-card{max-width:1000px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:13px;font-weight:700;color:#50464a}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:10px;padding:11px 12px;outline:none}.field textarea{min-height:96px;resize:vertical}.form-actions{display:flex;gap:10px;margin-top:20px}.alert{padding:12px 14px;border-radius:10px;margin-bottom:16px;font-size:14px}.alert.success{background:#eaf8f1;color:#126641;border:1px solid #ccebdc}.alert.error{background:#fff0f2;color:#96233b;border:1px solid #f2cfd7}.errors{margin:0;padding-left:18px}.empty{padding:34px;text-align:center;color:var(--muted)}.pagination-row{display:flex;justify-content:space-between;align-items:center;margin-top:14px;color:var(--muted);font-size:13px}.login-page{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr;background:#fff}.login-visual{background:linear-gradient(145deg,#2b1720,#6b1734 70%,#8c2b50);color:#fff;padding:64px;display:flex;flex-direction:column;justify-content:space-between}.login-visual .hero-mark{width:68px;height:68px;border-radius:20px;background:rgba(255,255,255,.12);display:grid;place-items:center;font-size:34px;font-weight:900}.login-visual h1{font-size:46px;line-height:1.04;margin:20px 0 16px;max-width:650px}.login-visual p{color:#eadce2;max-width:620px;line-height:1.7}.login-box-wrap{display:grid;place-items:center;padding:40px}.login-box{width:min(420px,100%)}.login-box h2{font-size:30px;margin:0}.login-box .sub{color:var(--muted);margin:8px 0 26px}.login-box .field{margin-bottom:14px}.login-box .btn{width:100%;padding:12px;margin-top:4px}.check{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--muted)}.security-note{margin-top:20px;padding:12px;border-radius:10px;background:#faf7f8;color:#74636b;font-size:12px;line-height:1.55;border:1px solid #eee5e9}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.module{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff}.module strong{display:block;margin-bottom:6px}.module p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.phase{font-size:11px;color:#6b1734;background:#f8eaf0;border-radius:999px;padding:4px 8px;display:inline-block;margin-top:10px}@media(max-width:1050px){.grid4{grid-template-columns:repeat(2,1fr)}.module-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:800px){.shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.side-bottom{position:relative;left:auto;right:auto;bottom:auto;margin-top:20px}.content{padding:18px}.topbar{padding:0 18px}.grid4,.form-grid,.module-grid{grid-template-columns:1fr}.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-box-wrap{padding:28px}.page-head{align-items:flex-start;flex-direction:column}.toolbar{width:100%;flex-wrap:wrap}.search{min-width:0;flex:1}}

/* Milestone 1.1 usability corrections */
.sidebar{display:flex;flex-direction:column;overflow:hidden}.brand{flex:0 0 auto}.brand-logo{width:46px;height:46px;object-fit:cover;border-radius:12px;background:#120b0e}.nav{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px}.nav::-webkit-scrollbar{width:5px}.nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:10px}.side-bottom{position:static;left:auto;right:auto;bottom:auto;flex:0 0 auto;margin-top:10px}.text-warn{color:var(--warn);font-weight:700}.btn-danger{background:#fff0f2;color:var(--danger);border:1px solid #f2cfd7}.approval-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.approval-actions input{border:1px solid var(--line);border-radius:9px;padding:9px 10px;min-width:120px}.approval-actions input[name="decision_note"]{min-width:180px}.module-link{display:block;transition:.15s ease}.module-link:hover{transform:translateY(-1px);border-color:#d8c5cd;box-shadow:var(--shadow)}.login-logo{width:150px;height:150px;object-fit:contain;border-radius:24px;background:rgba(0,0,0,.12);padding:4px}.field small{color:var(--muted);font-size:12px}
@media(max-width:800px){.sidebar{height:auto;overflow:visible}.nav{overflow:visible}.side-bottom{margin-top:20px}.login-logo{width:110px;height:110px}}
