*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--border:#333;--header-bg:#1a1a2e;--accent:#1a3a5c;--focus:#1a6fb5;--danger:#c0392b;--inp-bg:#fff;--inp-border:#aaa;--section-bg:#f0f4f8}body{color:#111;background:#e8ecf0;min-height:100vh;font-family:Segoe UI,Arial,sans-serif;font-size:14px}.top-nav{background:var(--header-bg);color:#fff;z-index:200;align-items:center;gap:16px;height:50px;padding:0 20px;display:flex;position:-webkit-sticky;position:sticky;top:0}.nav-brand{letter-spacing:.5px;font-size:16px;font-weight:700}.nav-brand span{color:#90caf9}.nav-links{flex-wrap:wrap;gap:8px;display:flex}.nav-links a{color:#90caf9;border-radius:4px;padding:6px 12px;font-size:13px;font-weight:600;text-decoration:none;transition:background .15s}.nav-links a:hover{color:#fff;background:rgba(255,255,255,.12)}.nav-user{align-items:center;gap:10px;margin-left:auto;display:flex}.nav-username{color:#b0d4f1;font-size:13px;font-weight:600}.btn-logout{color:#fff;cursor:pointer;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:4px;padding:4px 12px;font-size:12px;font-weight:600;transition:background .15s}.btn-logout:hover{background:rgba(255,80,80,.35)}.page{max-width:960px;margin:0 auto;padding:24px 16px}.page-wide{max-width:1200px;margin:0 auto;padding:24px 16px}.card{background:#fff;border-radius:8px;margin-bottom:20px;padding:24px;box-shadow:0 1px 4px rgba(0,0,0,.1)}.card-title{color:var(--accent);border-bottom:2px solid var(--section-bg);margin-bottom:16px;padding-bottom:10px;font-size:16px;font-weight:700}.btn{cursor:pointer;border:none;border-radius:5px;align-items:center;gap:6px;padding:8px 18px;font-size:13px;font-weight:600;text-decoration:none;transition:background .15s,opacity .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:#1c4a73}.btn-success{color:#fff;background:#27ae60}.btn-success:hover:not(:disabled){background:#219a52}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#a93226}.btn-ghost{color:var(--accent);background:0 0;border:1px solid #bbb}.btn-ghost:hover:not(:disabled){background:var(--section-bg)}.btn-sm{padding:5px 12px;font-size:12px}.form-row{flex-wrap:wrap;gap:16px;margin-bottom:14px;display:flex}.form-group{flex-direction:column;flex:1;gap:5px;min-width:180px;display:flex}.form-group.full{flex:0 0 100%}label{color:#555;text-transform:uppercase;letter-spacing:.3px;font-size:12px;font-weight:600}input[type=text],input[type=date],input[type=time],input[type=number],textarea,select{border:1px solid var(--inp-border);background:var(--inp-bg);color:#111;border-radius:4px;padding:8px 10px;font-family:inherit;font-size:13px;transition:border-color .15s}input:focus,textarea:focus,select:focus{border-color:var(--focus);outline:none;box-shadow:0 0 0 2px rgba(26,111,181,.15)}textarea{resize:vertical;min-height:60px}.radio-group{align-items:center;gap:16px;padding:8px 0;display:flex}.radio-group label{text-transform:none;cursor:pointer;align-items:center;gap:6px;font-size:13px;font-weight:400;display:flex}.radio-group input[type=radio],.radio-group input[type=checkbox]{cursor:pointer;width:15px;height:15px}.sig-wrapper{background:#fff;border:1px solid #ccc;border-radius:4px;display:inline-block}.sig-wrapper canvas{cursor:crosshair;display:block}.sig-actions{gap:8px;margin-top:6px;display:flex}.tbl-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}thead tr{background:var(--accent);color:#fff}thead th{text-align:left;letter-spacing:.4px;text-transform:uppercase;white-space:nowrap;padding:9px 10px;font-size:11px;font-weight:700}tbody tr{border-bottom:1px solid #e5e7eb;transition:background .1s}tbody tr:hover{background:#f0f6ff}tbody td{color:#222;vertical-align:middle;padding:9px 10px}tbody td input,tbody td select{border:1px solid #ccc;border-radius:3px;width:100%;padding:5px 6px;font-size:12px}.badge{letter-spacing:.3px;text-transform:uppercase;border-radius:12px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.badge-si{color:#1e40af;background:#dbeafe}.badge-pa{color:#92400e;background:#fef3c7}.badge-setup,.badge-yes{color:#166534;background:#dcfce7}.badge-no{color:#991b1b;background:#fee2e2}.actions{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.spacer{flex:1}.login-wrap{background:var(--header-bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-box{background:#fff;border-radius:10px;width:100%;max-width:360px;padding:40px 36px;box-shadow:0 4px 24px rgba(0,0,0,.3)}.login-title{color:var(--accent);text-align:center;margin-bottom:8px;font-size:20px;font-weight:700}.login-sub{color:#777;text-align:center;margin-bottom:24px;font-size:13px}.login-err{color:#991b1b;background:#fee2e2;border-radius:5px;margin-bottom:16px;padding:10px 14px;font-size:13px}.login-form{flex-direction:column;gap:14px;display:flex}.login-form label{color:#555;text-transform:uppercase;font-size:12px;font-weight:700}.login-form input{border:1px solid #ccc;border-radius:5px;padding:10px 12px;font-size:14px}.home-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:20px;display:grid}.home-card{color:inherit;background:#fff;border:2px solid transparent;border-radius:10px;flex-direction:column;gap:10px;padding:28px 24px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex;box-shadow:0 2px 8px rgba(0,0,0,.08)}.home-card:hover{border-color:var(--focus);box-shadow:0 4px 16px rgba(26,111,181,.15)}.home-card-icon{font-size:32px}.home-card-title{color:var(--accent);font-size:16px;font-weight:700}.home-card-desc{color:#666;font-size:13px;line-height:1.5}.home-card-code{color:#999;text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:700}.tabs{border-bottom:2px solid #ddd;gap:4px;margin-bottom:20px;display:flex}.tab-btn{color:#777;cursor:pointer;background:0 0;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;padding:8px 18px;font-size:13px;font-weight:600;transition:color .15s}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-btn:hover:not(.active){color:#333}.alert{border-radius:5px;margin-bottom:16px;padding:10px 16px;font-size:13px}.alert-err{color:#991b1b;background:#fee2e2;border:1px solid #fca5a5}.alert-info{color:#1e40af;background:#eff6ff;border:1px solid #93c5fd}.alert-ok{color:#166534;background:#dcfce7;border:1px solid #86efac}.section-hdr{text-transform:uppercase;letter-spacing:.5px;color:#fff;background:var(--accent);border-radius:8px 8px 0 0;margin:-24px -24px 16px;padding:6px 12px;font-size:11px;font-weight:700}@media (max-width:640px){.staff-tbl thead{display:none}.staff-tbl tbody tr{background:#fafbfc;border:1px solid #ddd;border-radius:8px;margin-bottom:14px;display:block;box-shadow:0 1px 3px rgba(0,0,0,.07)}.staff-tbl tbody td{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:flex}.staff-tbl tbody td:last-child{border-bottom:none}.staff-tbl tbody td:before{content:attr(data-label);color:#555;text-transform:uppercase;letter-spacing:.3px;flex-shrink:0;min-width:100px;font-size:11px;font-weight:700}.staff-tbl tbody td[data-label=""]{justify-content:flex-end}.staff-tbl tbody td[data-label=""]:before{display:none}.staff-tbl tbody td input,.staff-tbl tbody td select{flex:1;min-width:0;width:auto!important}}@media print{.top-nav,.btn,.no-print{display:none!important}.page,.page-wide{max-width:100%;padding:0}.card{box-shadow:none;border:1px solid #ccc}body{background:#fff}}
