:root{--bg:#f5f8fc;--surface:#ffffff;--surface-soft:#f8fbff;--border:#dce5f1;--text:#142033;--muted:#5e718d;--brand:#1967d2;--brand-soft:#e7f0ff;--danger-bg:#ffeceb;--danger-text:#9f2424;--success-bg:#e8f8ee;--success-text:#1d6c3b;--success-border:#bce5cb;--shadow:0 10px 28px rgba(20,32,51,0.08)}*{box-sizing:border-box}body,html{margin:0;padding:0;font-family:Avenir Next,SF Pro Text,Segoe UI,sans-serif;background:radial-gradient(circle at 18% 12%,#ffffff 0,var(--bg) 54%,#edf3fb 100%);color:var(--text)}a{color:inherit;text-decoration:none}.page-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{border-right:1px solid var(--border);background:linear-gradient(180deg,#ffffff,#f6f9ff);padding:1.25rem}.brand-row{display:flex;align-items:center;gap:.6rem}.brand-mark{width:2rem;height:2rem;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:.78rem;color:#fff;background:linear-gradient(135deg,#1d4ed8,#0ea5e9)}.brand{font-size:1.14rem;font-weight:700;letter-spacing:.01em}.nav-list{margin-top:1.5rem;display:grid;grid-gap:.42rem;gap:.42rem}.nav-link{display:flex;align-items:center;gap:.55rem;padding:.66rem .72rem;border-radius:10px;border:1px solid transparent;color:#2a3d5a;transition:all .14s ease}.nav-link:hover{background:var(--surface);border-color:var(--border)}.nav-link-icon{width:1.58rem;height:1.58rem;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:.66rem;font-weight:700;color:var(--brand);background:var(--brand-soft)}.nav-link-text{font-size:.93rem;font-weight:600}.nav-link.active{color:var(--brand);background:var(--brand-soft);border-color:#c9dcfb}.main{padding:1.3rem 1.35rem}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:.9rem 1rem;box-shadow:var(--shadow)}.title{margin:0;font-size:1.45rem;font-weight:800}.subtitle{margin:.2rem 0 0;color:var(--muted);font-size:.9rem}.card-grid{display:grid;grid-gap:.9rem;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1rem;box-shadow:var(--shadow)}.card h3,.card h4{margin:0 0 .55rem}.metric{font-size:1.9rem;font-weight:800;margin:.25rem 0 0;color:#123059;text-align:center}.metric-card{display:grid;grid-gap:.2rem;gap:.2rem}.metric-title-row{display:flex;align-items:center;gap:.5rem}.metric-title-row h3{margin:0}.metric-icon{width:1.9rem;height:1.9rem;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #cfe0f6;background:#eff5ff;color:#1a4f9d;flex:0 0 auto}.metric-icon svg{width:1.05rem;height:1.05rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.metric-subline{text-align:center}.section{margin-top:1rem}.form,.form-grid{display:grid;grid-gap:.8rem;gap:.8rem}.form-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.form-grid-4{grid-template-columns:repeat(4,minmax(180px,1fr))}label{display:grid;grid-gap:.35rem;gap:.35rem;font-size:.85rem;font-weight:600;color:#2d4365}.button-link,button,input,select,textarea{border-radius:10px;border:1px solid #c8d5e7;background:#fff;color:var(--text);padding:.62rem .7rem;font-size:.92rem;line-height:1.2}input:focus,select:focus,textarea:focus{outline:none;border-color:#8cb8f9;box-shadow:0 0 0 3px rgba(30,102,214,.14)}textarea{min-height:96px;resize:vertical}button{cursor:pointer;background:linear-gradient(180deg,#1f7bff,#1967d2);border-color:#1967d2;color:#fff;font-weight:700;transition:transform .1s ease,box-shadow .1s ease}button:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(25,103,210,.28)}.button-link.secondary,button.secondary{background:#eff5ff;border-color:#cfdef8;color:#1b4f9f}.button-link.secondary:hover,button.secondary:hover{box-shadow:none}.button-link.danger,button.danger{background:#fff1f1;border-color:#f3b0b0;color:#a42424}.button-link.danger:hover,button.danger:hover{box-shadow:none}.button-link{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;text-decoration:none;font-weight:700}.button-link.active{background:#dceaff;border-color:#9ec2fb}.button-link.disabled{opacity:.45;pointer-events:none}.table-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.6rem;margin-bottom:.9rem}.table-toolbar .toolbar-field{min-width:12rem}.table-toolbar .toolbar-field.search{min-width:16rem;flex:1 1 16rem}.table-toolbar .toolbar-buttons{display:flex;gap:.45rem;align-items:center}.table-toolbar .toolbar-checkbox{align-items:center;display:inline-flex;gap:.5rem;min-height:2.75rem}.table-toolbar .toolbar-checkbox input[type=checkbox]{accent-color:var(--brand);border-radius:4px;height:1rem;margin:0;padding:0;width:1rem}.action-wrap{gap:.5rem}.action-wrap,.table-action-form{display:flex;flex-wrap:wrap;align-items:center}.table-action-form{margin:0;gap:.45rem}.table-action-form select{min-width:9rem}.action-cell{min-width:11rem}.note-details summary{cursor:pointer;font-weight:700;color:#1b4f9f}.note-body{margin-top:.45rem;border:1px solid #d7e5f8;border-radius:8px;background:#f8fbff;color:#324a68;padding:.5rem .55rem;white-space:pre-wrap;max-width:22rem}.icon-btn{width:2rem;height:2rem;border-radius:8px;border:1px solid #c8d5e7;background:#f4f8ff;color:#1b4f9f;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer}.icon-btn svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.icon-btn:hover{background:#e8f0ff}.icon-btn.disabled{opacity:.45;pointer-events:none}.icon-btn.danger{background:#fff2f2;border-color:#f2b8b8;color:#af2b2b}.icon-btn.danger:hover{background:#ffe8e8}.icon-btn.neutral{background:#f5f8fc;color:#335177}.status-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.2rem .5rem;font-size:.75rem;font-weight:700;border:1px solid #cfdcf0;background:#f3f8ff;color:#294e88}.table-pagination{margin-top:.9rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem}.pagination-info{color:#5e718d;font-size:.88rem}.modal-backdrop{position:fixed;inset:0;background:rgba(18,27,45,.5);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:40}.modal-card{width:min(640px,100%);max-height:min(80vh,680px);overflow:auto;border-radius:14px;border:1px solid #d7e5f8;background:#fff;box-shadow:0 20px 50px rgba(16,24,40,.25);padding:1rem}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.modal-body pre{margin:0;white-space:pre-wrap;font-family:inherit;font-size:.95rem;color:#2e4567}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table td,.table th{text-align:left;padding:.68rem;border-bottom:1px solid #e5edf8;vertical-align:top}.table th{color:#365175;font-weight:700;background:#f8fbff}.badge{display:inline-block;border-radius:999px;padding:.23rem .6rem;font-size:.72rem;font-weight:700;background:#edf4ff;border:1px solid #d4e2f8;color:#2a4f8d}.warning-banner{border-radius:12px;border:1px solid #f5c8c5;background:var(--danger-bg);color:var(--danger-text)}.success-banner,.warning-banner{margin-bottom:1rem;padding:.8rem .9rem;font-weight:600}.success-banner{border-radius:12px;border:1px solid var(--success-border);background:var(--success-bg);color:var(--success-text)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:min(460px,100%);background:#ffffff;border:1px solid var(--border);border-radius:16px;padding:1.3rem;box-shadow:var(--shadow)}.muted{color:var(--muted)}.muted-link{color:#2e598f;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;word-break:break-word}.muted-link:hover{color:#1b4f9f}.warning{color:var(--danger-text)}@media (max-width:860px){.form-grid-4{grid-template-columns:repeat(2,minmax(180px,1fr))}.page-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--border)}.topbar{padding:.85rem .9rem}}@media (max-width:620px){.form-grid-4{grid-template-columns:1fr}}