:root{
  --bg:#F8FAFC;
  --card:#FFFFFF;
  --text:#0F172A;
  --muted:#64748B;
  --line:#E2E8F0;
  --blue:#2563EB;
  --blue-dark:#1D4ED8;
  --green:#16A34A;
  --orange:#F97316;
  --red:#DC2626;
  --shadow:0 18px 50px rgba(15,23,42,.08);
  --radius:22px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
a{text-decoration:none;color:inherit}
.container{width:min(1120px,92vw);margin:0 auto}
.center-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px}
.login-card{width:min(430px,92vw);background:var(--card);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);padding:34px}
.brand{display:flex;align-items:center;gap:14px;margin-bottom:28px}
.logo-mark{width:48px;height:48px;border-radius:16px;background:var(--text);color:white;display:flex;align-items:center;justify-content:center;font-weight:800}
.brand-title{font-size:24px;font-weight:800}
.brand-sub{font-size:13px;color:var(--muted);margin-top:2px}
label{display:block;font-size:14px;font-weight:700;margin:16px 0 8px}
input,textarea,select{width:100%;border:1px solid var(--line);border-radius:16px;padding:16px 18px;font-size:18px;background:white;outline:none}
textarea{min-height:110px;resize:vertical}
input:focus,textarea:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(37,99,235,.12)}
.btn{border:0;border-radius:16px;padding:16px 20px;font-size:16px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn-primary{background:var(--blue);color:white}
.btn-primary:hover{background:var(--blue-dark)}
.btn-light{background:#EEF2FF;color:var(--blue)}
.btn-danger{background:#FEE2E2;color:var(--red)}
.btn-full{width:100%;margin-top:18px}
.error{background:#FEF2F2;color:#991B1B;border:1px solid #FECACA;padding:12px 14px;border-radius:14px;margin-bottom:12px}
.topbar{background:white;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.topbar-inner{height:74px;display:flex;align-items:center;justify-content:space-between}
.user-chip{font-size:14px;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:28px 0}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}
.module-card{min-height:170px;display:flex;flex-direction:column;justify-content:space-between;transition:.18s}
.module-card:hover{transform:translateY(-2px)}
.icon{font-size:34px}
.card-title{font-size:22px;font-weight:850;margin-top:12px}
.card-sub{font-size:14px;color:var(--muted);margin-top:6px}
.badge{display:inline-flex;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800;background:#DCFCE7;color:#166534}
.badge-muted{background:#F1F5F9;color:#64748B}
.page-title{font-size:34px;font-weight:900;margin:30px 0 8px}
.page-sub{color:var(--muted);font-size:16px;margin-bottom:22px}
.menu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:22px 0}
.stat-value{font-size:26px;font-weight:900;margin-top:10px}
.stat-label{color:var(--muted);font-weight:700}
.table-card{overflow:auto}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:14px;border-bottom:1px solid var(--line);white-space:nowrap}
th{font-size:13px;color:var(--muted)}
.wizard{min-height:calc(100vh - 74px);display:flex;align-items:center;justify-content:center;padding:28px}
.wizard-card{width:min(620px,94vw);background:white;border:1px solid var(--line);border-radius:32px;box-shadow:var(--shadow);padding:32px}
.step{font-size:14px;font-weight:900;color:var(--blue);margin-bottom:18px}
.question{font-size:42px;font-weight:950;margin:0 0 22px;letter-spacing:-1px}
.big-input{font-size:36px;font-weight:850;text-align:center;padding:22px;border-radius:22px}
.actions{display:flex;gap:12px;margin-top:20px}
.actions .btn{flex:1}
.summary-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 0}
.summary-total{font-size:22px;font-weight:900}
.notice{background:#EFF6FF;color:#1E3A8A;border:1px solid #BFDBFE;padding:14px;border-radius:16px;margin:14px 0}
@media(max-width:800px){
  .grid,.menu-grid,.stat-grid{grid-template-columns:1fr}
  .question{font-size:34px}
  .big-input{font-size:30px}
  .topbar-inner{height:auto;padding:14px 0;gap:10px;align-items:flex-start;flex-direction:column}
}
