*{box-sizing:border-box}html,body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#15313a;background:#f4f7f7}a{color:inherit}
.login-body{min-height:100vh;background:#eef4f3}
.login-shell{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}
.brand-panel{padding:7vw;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;background:linear-gradient(135deg,#063f48,#0f6970);color:#fff}
.brand-panel:after{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-180px;bottom:-170px}
.brand-mark{font-size:38px;font-weight:800;letter-spacing:.08em;margin-bottom:45px}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:.18em;color:#2c8b88;margin:0 0 15px}
.brand-panel .eyebrow{color:#9fe1d8}
.brand-panel h1{font-size:clamp(38px,5vw,68px);line-height:1.02;max-width:760px;margin:0 0 24px}
.brand-panel p{font-size:18px;line-height:1.6;max-width:620px;color:#d4e8e7}
.brand-footer{position:absolute;bottom:7vw;font-size:14px;letter-spacing:.08em}
.login-panel{display:flex;align-items:center;justify-content:center;padding:45px}
.card{background:#fff;border-radius:24px;padding:34px;box-shadow:0 14px 45px rgba(18,55,62,.09)}
.login-card{width:min(460px,100%)}
.card h2{font-size:30px;margin:0 0 10px}.muted{color:#6d7f84;line-height:1.55}
form{display:grid;gap:16px;margin-top:25px}label{font-size:13px;font-weight:700;color:#435d63;display:grid;gap:8px}
input,select{width:100%;padding:14px 15px;border:1px solid #d9e2e2;border-radius:12px;font:inherit;background:#fff;outline:none}
input:focus,select:focus{border-color:#218078;box-shadow:0 0 0 3px rgba(33,128,120,.1)}
.btn{display:inline-flex;justify-content:center;align-items:center;padding:14px 18px;background:#0c666b;color:#fff;border:0;border-radius:12px;font-weight:800;text-decoration:none;cursor:pointer}
.alert{padding:12px 14px;border-radius:10px;background:#fff0ef;color:#9b3028;font-size:14px}.success{padding:12px 14px;border-radius:10px;background:#edf9f2;color:#216344;font-size:14px}
.security-note{font-size:12px;color:#829297;line-height:1.5;margin-top:24px}
hr{border:0;border-top:1px solid #edf1f1;width:100%}
.app-body{min-height:100vh}.topbar{height:78px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid #e5ecec}
.brand-small{font-weight:900;letter-spacing:.06em}.brand-small span{font-weight:600;color:#5f7b80;margin-left:8px;font-size:12px}
.userbox{display:flex;align-items:center;gap:18px;font-size:13px}.userbox a,.topbar>a{color:#33747a;text-decoration:none}
.dashboard{padding:55px 5vw;max-width:1450px;margin:auto}.dashboard>h1{font-size:42px;margin:0 0 8px}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:34px}.module{background:#fff;border-radius:20px;padding:28px;text-decoration:none;box-shadow:0 10px 30px rgba(18,55,62,.06);border:1px solid #edf2f2}
.module span{font-size:12px;color:#2c8b88;font-weight:900}.module h3{font-size:20px;margin:28px 0 8px}.module p{margin:0;color:#6d7f84;line-height:1.5}
.admin-grid{display:grid;grid-template-columns:360px 1fr;gap:24px;margin-top:28px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:13px;border-bottom:1px solid #e8eeee}th{color:#658086}.check{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:9px;font-weight:600}.check input{width:auto}
@media(max-width:900px){.login-shell{grid-template-columns:1fr}.brand-panel{min-height:40vh;padding:42px 28px}.brand-panel h1{font-size:39px}.brand-footer{display:none}.login-panel{padding:25px}.grid{grid-template-columns:1fr 1fr}.admin-grid{grid-template-columns:1fr}.topbar{padding:0 22px}.dashboard{padding:36px 22px}}
@media(max-width:560px){.brand-panel{min-height:360px}.brand-mark{font-size:28px;margin-bottom:34px}.brand-panel h1{font-size:34px}.brand-panel p{font-size:15px}.login-panel{padding:18px}.card{padding:24px;border-radius:18px}.grid{grid-template-columns:1fr}.dashboard>h1{font-size:34px}.userbox strong{display:none}}
