:root{--bg:#f6f7fb;--surface:#fff;--surface-2:#eef1f7;--border:#dfe3ec;--text:#1f2430;--muted:#6b7280;--brand:#1f3a8a;--brand-ink:#fff;--danger:#b42318}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--brand);text-decoration:none}.app{display:flex;min-height:100vh}.app-sidebar{width:240px;background:#0f1b3d;color:#c9d2ec;padding:16px 10px;display:flex;flex-direction:column;gap:4px}.app-sidebar .brand{color:#fff;font-weight:700;padding:8px 10px 14px}.app-sidebar .brand small{display:block;font-weight:400;color:#8ea0d0;font-size:12px}.sidebar-link,.sidebar-group{display:block;width:100%;text-align:left;background:none;border:0;color:#c9d2ec;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:14px}.sidebar-link:hover,.sidebar-group:hover{background:#1b2a55;color:#fff}.sidebar-link.active{background:var(--brand);color:#fff}.menu-children{margin-left:10px;border-left:1px solid #24345f}.sidebar-sep{height:1px;background:#24345f;margin:8px 4px}.app-main{flex:1;display:flex;flex-direction:column}.app-banner{background:var(--surface);border-bottom:1px solid var(--border);padding:12px 20px;display:flex;justify-content:space-between;align-items:center}.app-content{padding:20px}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px}.toolbar .spacer{flex:1}.page-title{margin:0;font-size:20px}.page-sub{margin:2px 0 0;color:var(--muted);font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px}.grid-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px}.kpi .n{font-size:24px;font-weight:700}.kpi .l{color:var(--muted);font-size:13px}table{width:100%;border-collapse:collapse;background:var(--surface)}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);font-size:14px}th{background:var(--surface-2)}tr[role=button]{cursor:pointer}tbody tr:hover{background:#f2f5fc}input,select,textarea{width:100%;padding:8px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:#fff}.btn{background:var(--brand);color:var(--brand-ink);border:0;padding:8px 14px;border-radius:8px;cursor:pointer;font-size:14px}.btn.secondary{background:var(--surface-2);color:var(--text)}.btn.danger{background:var(--danger);color:#fff}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid.cols-3{grid-template-columns:1fr 1fr 1fr}@media (max-width: 820px){.form-grid.cols-3{grid-template-columns:1fr 1fr}}@media (max-width: 560px){.form-grid,.form-grid.cols-3{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.field label{font-size:13px;color:var(--muted)}.hint{font-size:12px;color:var(--muted)}.alert{padding:10px 12px;border-radius:8px;margin:8px 0}.alert.error{background:#fdecea;color:var(--danger);border:1px solid #f5c6c2}.right{text-align:right}.muted{color:var(--muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f1b3d59;display:flex;align-items:flex-start;justify-content:center;padding:40px;z-index:50}.modal{background:#fff;border-radius:12px;padding:18px;width:640px;max-width:100%;max-height:calc(100vh - 80px);display:flex;flex-direction:column}.modal h3{margin-top:0}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px;flex:0 0 auto}.modal-body{flex:1 1 auto;overflow:auto}.modal-foot{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;flex:0 0 auto}.print-only{display:none}.report-head{text-align:center;margin:6px 0 14px}.report-head .rh-company{font-size:19px;font-weight:700;letter-spacing:.3px;color:var(--navy,#0f1b3d)}.report-head .rh-slogan{font-size:12px;color:var(--muted);margin-top:1px}.report-head .rh-title{font-weight:600;margin-top:5px}.report-head hr{border:0;border-top:1px solid var(--border,#d9dee8);margin-top:8px}@media print{@page{margin:0}.app-sidebar,.app-banner,.no-print{display:none!important}.app-main{margin:0!important}.app-content{padding:14mm!important}.app,.print-only{display:block!important}}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#0f1b3d}.login-card{background:#fff;border-radius:14px;padding:28px;width:360px}
