[hidden]{display:none!important}
.nav-group:not(.open) .nav-sub{display:none}.nav-toggle{justify-content:flex-start}.nav-caret{margin-left:auto;font-size:11px;color:var(--muted);transition:transform .18s}.nav-group.open .nav-caret{transform:rotate(180deg)}.desktop-collapse{display:inline-flex}body.sidebar-collapsed .sidebar{width:76px}body.sidebar-collapsed .main-shell{margin-left:76px;width:calc(100% - 76px)}body.sidebar-collapsed .brand span,body.sidebar-collapsed .brand strong,body.sidebar-collapsed .nav-link span,body.sidebar-collapsed .nav-caret,body.sidebar-collapsed .nav-sub{display:none}body.sidebar-collapsed .brand{justify-content:center;padding:16px 10px}body.sidebar-collapsed .nav-link{justify-content:center;padding:12px}.lookup-control{display:grid;grid-template-columns:1fr auto;gap:8px}.lookup-control input[readonly]{background:#f8fafc;color:#334155}.transaction-table input[readonly]{background:#f8fafc}.transaction-table .row-actions{width:70px}.page-subtitle{margin:-10px 0 18px;color:var(--muted)}.doc-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.doc-meta div{border:1px solid var(--line);border-radius:8px;padding:10px;background:#f8fafc}.doc-meta span{display:block;color:var(--muted);font-size:12px}.doc-meta strong{display:block;margin-top:4px}.signature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:42px;text-align:center}.signature-line{border-top:1px solid #111;padding-top:8px;margin-top:56px}@media(max-width:960px){.desktop-collapse{display:none}body.sidebar-collapsed .main-shell{margin-left:0;width:100%}.doc-meta{grid-template-columns:1fr}.lookup-control{grid-template-columns:1fr}}
:root{--bg:#f5f7fb;--line:#dfe5ef;--text:#172033;--muted:#667085;--primary:#2563eb;--soft:#e8f0ff;--success:#16803c;--danger:#dc2626;--warning:#b7791f;--shadow:0 12px 32px rgba(15,23,42,.08)}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,Segoe UI,sans-serif;background:var(--bg);color:var(--text);font-size:14px}a{text-decoration:none;color:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:280px;background:#fff;border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;overflow:auto;z-index:20}.brand{display:flex;gap:12px;align-items:center;padding:20px;border-bottom:1px solid var(--line)}.brand-mark{width:42px;height:42px;border-radius:8px;background:#2563eb;color:#fff;display:grid;place-items:center;font-weight:800}.brand span,.topbar span{display:block;color:var(--muted);font-size:12px}.nav{padding:12px}.nav-link,.nav-toggle{display:flex;gap:10px;align-items:center;width:100%;padding:10px 12px;border:0;background:transparent;border-radius:8px;color:#334155;font:inherit}.nav-link:hover,.nav-link.active,.nav-sub a.active{background:var(--soft);color:var(--primary)}.nav-sub{margin:2px 0 8px 36px}.nav-sub a{display:block;padding:8px 10px;border-radius:7px;color:#475569}.main-shell{margin-left:280px;width:calc(100% - 280px);min-height:100vh;display:flex;flex-direction:column}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:0 24px;position:sticky;top:0;z-index:10}.topbar h1{font-size:20px;margin:0}.topbar-user{margin-left:auto;display:flex;gap:12px;align-items:center;text-align:right}.icon-btn{display:none}.content{padding:24px;flex:1}.footer{background:#fff;border-top:1px solid var(--line);padding:16px 24px;color:var(--muted)}.page-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:18px}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:18px;margin-bottom:16px}.kpi{display:flex;justify-content:space-between}.kpi strong{display:block;font-size:26px;margin-top:8px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff}table{width:100%;border-collapse:collapse}th,td{padding:11px 12px;border-bottom:1px solid var(--line)}th{background:#f8fafc;text-align:left;font-size:12px;text-transform:uppercase;color:#475569;position:sticky;top:0}.num{text-align:right}.actions{display:flex;gap:6px;flex-wrap:wrap}.btn{display:inline-flex;gap:7px;align-items:center;justify-content:center;border:1px solid transparent;border-radius:8px;padding:9px 13px;font-weight:600;cursor:pointer;background:#fff}.btn-sm{padding:6px 9px;font-size:12px}.btn-primary{background:var(--primary);color:#fff}.btn-secondary{border-color:var(--line)}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-warning{background:#f59e0b;color:#fff}.filter,.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.field label{display:block;font-weight:600;margin-bottom:6px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff}textarea{min-height:84px}.alert{padding:12px 14px;border-radius:8px;margin-bottom:14px;border:1px solid}.alert-success{background:#ecfdf3;border-color:#b7ebc6;color:#166534}.alert-danger{background:#fef2f2;border-color:#fecaca;color:#991b1b}.alert-warning{background:#fffbeb;border-color:#fde68a;color:#92400e}.badge{display:inline-block;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700}.badge-success{background:#dcfce7;color:#166534}.badge-danger{background:#fee2e2;color:#991b1b}.badge-warning{background:#fef3c7;color:#92400e}.badge-primary{background:#dbeafe;color:#1d4ed8}.badge-info{background:#e0f2fe;color:#0369a1}.badge-secondary,.badge-muted{background:#f1f5f9;color:#475569}.auth-page{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:28px}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.35);display:grid;place-items:center;z-index:99;padding:18px}.modal{background:#fff;border-radius:10px;border:1px solid var(--line);box-shadow:var(--shadow);padding:20px;max-width:420px;width:100%;max-height:92vh;overflow:auto}.modal-wide{max-width:920px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.status-critical{background:#fff7ed}.table-info{margin:0 0 10px;color:var(--muted)}.pagination{display:flex;gap:6px;margin-top:14px;flex-wrap:wrap}.pagination a,.pagination span{padding:7px 11px;border:1px solid var(--line);border-radius:7px;background:#fff}.pagination .active{background:var(--primary);color:#fff}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.detail-grid div{border:1px solid var(--line);border-radius:8px;padding:10px;background:#f8fafc}.detail-grid span{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}.detail-grid strong{font-weight:600;word-break:break-word}.confirm-head{display:flex;gap:12px;align-items:flex-start}.confirm-head h3{margin:0 0 6px}.confirm-head p{margin:0;color:var(--muted)}.confirm-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-weight:800}.confirm-icon.danger{background:#fee2e2;color:#991b1b}.confirm-icon.warning{background:#fef3c7;color:#92400e}.confirm-icon.success{background:#dcfce7;color:#166534}.lookup-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.lookup-head h3{margin:0}.lookup-body{margin-top:12px}.lookup-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:8px}.lookup-row strong{display:block}.lookup-row span{display:block;color:var(--muted);font-size:12px}.lookup-pages{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}@media(max-width:960px){.sidebar{transform:translateX(-100%)}.sidebar.open{transform:none}.main-shell{margin-left:0;width:100%}.icon-btn{display:block}.grid-4,.grid-2,.filter,.form-grid,.detail-grid{grid-template-columns:1fr}.modal{max-width:100%}}@media print{.sidebar,.topbar,.footer,.filter,.actions,.btn{display:none!important}.main-shell,.content{margin:0;width:100%;padding:0}.card{box-shadow:none;border:0}}
