*{box-sizing:border-box}body{margin:0;background:#f3f6fb;color:#172840;font:15px system-ui,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;background:#fff;color:#173456;border:1px solid #cbd6e4;border-radius:8px;padding:.65rem .9rem}button:hover{background:#eaf3ff}button:disabled{opacity:.55;cursor:wait}.primary{background:#145ebc;color:white;border-color:#145ebc}.primary:hover{background:#104e9d}input,select,textarea{min-width:0;border:1px solid #bccadb;border-radius:8px;padding:.65rem;background:white;color:inherit}label{display:grid;gap:.35rem}.login,.card{background:white;border:1px solid #dce5ef;border-radius:14px;padding:1.25rem}.login{max-width:420px;margin:12vh auto;display:grid;gap:1rem}.layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:#122743;color:white;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.sidebar nav{display:grid;gap:.4rem}.sidebar button{text-align:left;background:transparent;color:white;border-color:transparent}.sidebar button:hover,.sidebar button[aria-current]{background:#24456c}.content{min-width:0;padding:clamp(1rem,3vw,2.5rem)}h1,h2,p{margin:0 0 .7rem}.muted,small{color:#586a81}.sidebar small{color:#b8cde6}.toolbar,.cards,.grid{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;margin:1rem 0}.cards .card{flex:1 1 155px}.metric{display:block;font-size:2rem;font-weight:750;margin-top:.35rem}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));align-items:start}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:.7rem;border-bottom:1px solid #e4ebf3}th{font-size:.8rem;color:#50647f}td button{margin:.2rem}.badge{display:inline-block;padding:.25rem .5rem;border-radius:6px;background:#e5f1ff}.pending{background:#fff0be}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;text-align:center}.calendar button{padding:.4rem .1rem}.calendar .marked{background:#dbeaff}.bars{display:flex;align-items:flex-end;gap:.25rem;min-height:125px;overflow:auto}.bar{flex:1;min-width:24px;text-align:center;font-size:.72rem}.bar i{display:block;background:#377bcd;border-radius:4px 4px 0 0;margin:.2rem auto;width:75%}dialog{border:1px solid #dce5ef;border-radius:14px;width:min(850px,95vw);max-height:90vh;color:inherit}dialog::backdrop{background:#10213c88}fieldset{border:1px solid #dce5ef;border-radius:8px;margin:.8rem 0;padding:.75rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:.75rem}.error{color:#a42525}.actions{display:flex;gap:.5rem;justify-content:flex-end}.detail{white-space:pre-wrap;overflow-wrap:anywhere}.empty{padding:1rem;color:#586a81}
@media(max-width:700px){.layout{display:block}.sidebar nav{display:flex;flex-wrap:wrap}.login{margin:8vh 1rem}.content{padding:1rem}}
@media print{.sidebar,.toolbar,td:last-child button,dialog{display:none}.layout{display:block}.content{padding:0}}
[hidden]{display:none!important}
:root[data-theme="dark"]{color-scheme:dark}
[data-theme="dark"] body{background:#101826;color:#e3edf9}
[data-theme="dark"] .sidebar{background:#0b1321}
[data-theme="dark"] .card,[data-theme="dark"] .login,[data-theme="dark"] dialog{background:#192538;border-color:#354761}
[data-theme="dark"] input,[data-theme="dark"] select,[data-theme="dark"] textarea,[data-theme="dark"] button:not(.primary):not(.sidebar button){background:#223149;color:#e3edf9;border-color:#4c617e}
[data-theme="dark"] button:not(.primary):not(.sidebar button):hover{background:#324762}
[data-theme="dark"] small,[data-theme="dark"] .muted,[data-theme="dark"] .empty,[data-theme="dark"] th{color:#aebfd5}
[data-theme="dark"] th,[data-theme="dark"] td,[data-theme="dark"] fieldset{border-color:#354761}
[data-theme="dark"] .badge{background:#203d63;color:#deebff}
[data-theme="dark"] .pending{background:#493a20;color:#ffe5a7}
[data-theme="dark"] .error{color:#ffaaaa}
[data-theme="dark"] .calendar button.marked{background:#244977}
.brand{display:flex;align-items:center;gap:.65rem}.brand img{display:block;flex:none;object-fit:contain;border-radius:5px}
