:root{--b: #0f172a;--t: #0b1220;--muted: #6b7280;--card: #fff;--bg: #f6f7fb;--line: #e5e7eb;--control-h: 42px}*{box-sizing:border-box}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;background:var(--bg);color:var(--t)}.container{max-width:1200px;margin:0 auto;padding:24px}.login-container{min-height:100vh;display:flex;justify-content:center;align-items:center;background:#e6daf0}.login-card{max-width:420px;width:100%;padding:24px;background:#fff;border-radius:8px;box-shadow:0 4px 12px #0000001a;text-align:center}.login-logo{width:100px;height:auto;margin-bottom:16px}.login-title{margin:0 0 16px;font-size:1.5rem;font-weight:600}.login-form{text-align:left}.login-form input{width:100%;margin-bottom:12px;padding:10px;border-radius:4px;border:1px solid #ccc;font-size:14px}.login-error{color:#dc143c;margin-top:8px;margin-bottom:8px;font-size:14px}.login-btn{width:100%;padding:10px;border-radius:4px;border:none;background:#007bff;color:#fff;font-size:16px;cursor:pointer;transition:background .2s}.login-btn:hover:not(:disabled){background:#0056b3}.login-btn:disabled{opacity:.7;cursor:not-allowed}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:420px}.login-form{display:flex;flex-direction:column;gap:12px}.login-form>div{display:flex;flex-direction:column}.form-error{color:#dc143c;font-size:13px;background:#fff1f1;border:1px solid #ffd1d1;padding:8px 10px;border-radius:10px}.login-btn{height:var(--control-h);border-radius:10px}.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px}.header .title{flex:1;text-align:center}.logo{height:50px;width:auto;object-fit:contain}.logo.left{margin-right:auto}.logo.right{margin-left:auto}h1{margin:0 0 8px;font-size:28px}.muted{color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;margin:12px 0;box-shadow:0 1px 2px #0000000a}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:12px}.grid>div{display:flex;flex-direction:column}label{font-size:12px;color:var(--muted);margin-bottom:6px}input{height:var(--control-h);padding:0 12px;font-size:14px;border:1px solid var(--line);border-radius:10px;outline:none}input:focus{border-color:#93c5fd;box-shadow:0 0 0 3px #93c5fd4d}.apply-col{display:flex;align-items:end}.apply-col{display:flex;flex-direction:column}.ghost-label{visibility:hidden}.apply-col .btn{width:100%;height:var(--control-h);padding:0 20px;font-size:14px;border-radius:10px;display:flex;align-items:center;justify-content:center}.export-bar{margin-top:12px;display:flex;gap:12px}.export-bar .btn{flex:1}.btn{padding:10px 14px;border-radius:10px;border:1px solid #1d4ed8;background:#1d4ed8;color:#fff;cursor:pointer}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.pdf{background:#d32f2f;border-color:#d32f2f}.btn.pdf:hover{background:#b71c1c;border-color:#b71c1c}.btn.excel{background:#2e7d32;border-color:#2e7d32}.btn.excel:hover{background:#1b5e20;border-color:#1b5e20}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:14px}.th,.td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left}.tr:hover{background:#fafafa}.select,select{height:var(--control-h);padding:0 12px;font-size:14px;border:1px solid var(--line);border-radius:10px;outline:none;background:#fff;appearance:none;-moz-appearance:none;-webkit-appearance:none;background-image:none}.select:focus,select:focus{border-color:#93c5fd;box-shadow:0 0 0 3px #93c5fd4d}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.metric{display:flex;flex-direction:column;gap:6px}.metric strong{font-size:22px}.pagination{display:flex;align-items:center;gap:12px;justify-content:flex-end;padding-top:12px}.pagination button{padding:8px 12px;border:1px solid var(--line);background:#fff;border-radius:10px;cursor:pointer}.pagination button:disabled{opacity:.5;cursor:not-allowed}footer{margin-top:24px;color:var(--muted)}
