:root{--bg:#f3f7f8;--card:#fff;--ink:#10263d;--muted:#617181;--line:#dce6e8;--teal:#0f8585;--teal-dark:#08706f;--danger:#b43b3b;--success:#277a54;--shadow:0 16px 44px rgba(22,51,70,.10);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}a{color:inherit}.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(320px,520px) 1fr}.auth-panel{padding:clamp(28px,5vw,70px);background:#fff;display:flex;flex-direction:column;justify-content:center}.auth-visual{position:relative;background:linear-gradient(145deg,rgba(8,63,76,.90),rgba(15,133,133,.72)),url('/assets/images/hero.webp') center/cover;min-height:100vh}.auth-visual-copy{position:absolute;left:8%;right:8%;bottom:10%;color:#fff;max-width:620px}.auth-visual h2{font-size:clamp(32px,4vw,62px);line-height:1.04;margin:0 0 18px}.auth-visual p{font-size:18px;line-height:1.7}.brand-link img{width:170px;height:auto}.auth-card{margin-top:38px;max-width:430px}.auth-card h1{font-size:36px;margin:0 0 8px}.auth-card>p{color:var(--muted);line-height:1.65;margin-bottom:28px}.field{display:grid;gap:7px;margin-bottom:17px}.field label{font-size:14px;font-weight:750}.field input,.field select,.field textarea,.toolbar input{width:100%;border:1px solid #cbd9dd;border-radius:11px;padding:12px 13px;font:inherit;background:#fff;color:var(--ink);outline:none}.field input:focus,.field select:focus,.field textarea:focus,.toolbar input:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(15,133,133,.13)}.field textarea{min-height:100px;resize:vertical}.button{appearance:none;border:0;border-radius:11px;padding:12px 18px;font:750 15px/1.2 inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}.button-primary{background:var(--teal);color:#fff}.button-primary:hover{background:var(--teal-dark)}.button-secondary{background:#e8f3f3;color:var(--teal-dark)}.button-danger{background:#fff0f0;color:var(--danger);border:1px solid #f0caca}.button-small{padding:8px 11px;font-size:13px;border-radius:9px}.button-block{width:100%}.auth-links{display:flex;justify-content:space-between;gap:16px;margin-top:20px;font-size:14px}.auth-links a{color:var(--teal-dark);font-weight:700}.message{display:none;border-radius:10px;padding:11px 13px;margin:0 0 16px;font-size:14px}.message.show{display:block}.message.error{background:#fff0f0;color:#8b2929;border:1px solid #f0caca}.message.success{background:#ecf8f2;color:#176242;border:1px solid #bee5d0}.app-layout{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{background:#102d3a;color:#fff;padding:25px 18px;position:sticky;top:0;height:100vh}.sidebar-brand img{width:170px;filter:brightness(0) invert(1)}.sidebar-user{margin:28px 4px;padding:16px;border-radius:14px;background:rgba(255,255,255,.08)}.sidebar-user strong,.sidebar-user small{display:block}.sidebar-user small{opacity:.7;margin-top:5px}.nav{display:grid;gap:6px}.nav button{border:0;background:transparent;color:rgba(255,255,255,.75);padding:12px 14px;border-radius:10px;text-align:left;font:700 14px inherit;cursor:pointer}.nav button:hover,.nav button.active{color:#fff;background:rgba(42,194,186,.18)}.sidebar-footer{position:absolute;left:18px;right:18px;bottom:22px}.sidebar-footer button{width:100%;background:rgba(255,255,255,.08);color:#fff}.main{min-width:0}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);padding:0 32px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:5}.topbar h1{font-size:21px}.main-content{padding:30px;max-width:1500px;margin:0 auto}.view{display:none}.view.active{display:block}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.page-heading h2{font-size:30px;margin:0 0 7px}.page-heading p{margin:0;color:var(--muted)}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.stat-card,.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.stat-card{padding:23px}.stat-card small{color:var(--muted);font-weight:700}.stat-card strong{display:block;font-size:38px;margin-top:9px}.card{padding:22px;margin-top:20px}.card h3{margin-top:0}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:18px}.toolbar input{max-width:380px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:13px;background:#fff}table{width:100%;border-collapse:collapse;min-width:800px}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid #e8eef0;vertical-align:top;font-size:14px}th{background:#f7fafb;color:#516575;font-size:12px;text-transform:uppercase;letter-spacing:.045em}tr:last-child td{border-bottom:0}.badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:12px;font-weight:800;background:#edf3f5;color:#466}.badge.pending{background:#fff5df;color:#87600d}.badge.approved,.badge.active{background:#e8f7ef;color:#267149}.badge.rejected,.badge.disabled{background:#fff0f0;color:#9a3434}.empty{text-align:center;padding:35px;color:var(--muted)}dialog{width:min(720px,calc(100% - 28px));border:0;border-radius:18px;padding:0;box-shadow:0 30px 100px rgba(0,0,0,.3)}dialog::backdrop{background:rgba(9,30,42,.6)}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--line)}.dialog-head h3{margin:0}.dialog-close{border:0;background:#edf3f4;border-radius:9px;width:36px;height:36px;cursor:pointer}.dialog-body{padding:22px 24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.span-2{grid-column:1/-1}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}.muted{color:var(--muted)}@media(max-width:900px){.auth-page{grid-template-columns:1fr}.auth-visual{display:none}.app-layout{grid-template-columns:1fr}.sidebar{position:static;height:auto}.sidebar-footer{position:static;margin-top:20px}.nav{grid-template-columns:repeat(2,1fr)}.topbar{padding:0 18px}.main-content{padding:20px}.stats-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}}@media(max-width:560px){.auth-panel{padding:26px 20px}.auth-links{flex-direction:column}.page-heading{flex-direction:column}.nav{grid-template-columns:1fr}.toolbar{flex-direction:column;align-items:stretch}.toolbar input{max-width:none}}
