*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f4f6f9;color:#1f2937}.login-body{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#111827,#b91c1c)}.login-card{width:100%;max-width:420px;background:#fff;border-radius:18px;padding:30px;box-shadow:0 20px 50px rgba(0,0,0,.25)}.brand{display:flex;gap:14px;align-items:center;margin-bottom:24px}.brand-mark{width:52px;height:52px;border-radius:14px;background:#dc2626;color:#fff;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:800}.brand h1{font-size:22px;margin:0}.brand p{margin:4px 0 0;color:#6b7280}label{display:block;margin-top:14px;margin-bottom:6px;font-weight:700}input{width:100%;padding:13px 14px;border:1px solid #d1d5db;border-radius:10px}button{width:100%;margin-top:20px;background:#dc2626;color:#fff;border:0;border-radius:10px;padding:13px 16px;font-weight:800;cursor:pointer}.alert{background:#fee2e2;color:#991b1b;padding:12px;border-radius:10px;margin-bottom:12px}.layout{display:flex;min-height:100vh}.sidebar{width:260px;background:#111827;color:#fff;padding:20px;display:flex;flex-direction:column;gap:8px}.logo{font-weight:900;font-size:22px;margin-bottom:24px;color:#fff}.sidebar a{color:#d1d5db;text-decoration:none;padding:12px 14px;border-radius:10px}.sidebar a.active,.sidebar a:hover{background:#dc2626;color:#fff}.main{flex:1;padding:24px}.topbar{display:flex;justify-content:space-between;align-items:center;background:#fff;border-radius:16px;padding:18px 22px;margin-bottom:22px;box-shadow:0 4px 16px rgba(0,0,0,.06)}.topbar h1{margin:0;font-size:24px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:22px}.card,.panel{background:#fff;border-radius:16px;padding:22px;box-shadow:0 4px 16px rgba(0,0,0,.06)}.card span{display:block;color:#6b7280;margin-bottom:10px}.card strong{font-size:34px;color:#111827}.panel h2{margin-top:0}@media(max-width:900px){.layout{display:block}.sidebar{width:100%;}.cards{grid-template-columns:1fr 1fr}}@media(max-width:600px){.cards{grid-template-columns:1fr}.topbar{display:block}}
.btn{display:inline-block;background:#dc2626;color:#fff!important;text-decoration:none;border-radius:10px;padding:10px 14px;font-weight:800;margin-right:8px}.btn.secondary{background:#111827}.success{background:#dcfce7;color:#166534;padding:12px;border-radius:10px;margin-bottom:12px}.form-grid{max-width:780px}.form-grid h2{margin-top:28px;border-top:1px solid #e5e7eb;padding-top:22px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid #e5e7eb}th{font-size:13px;color:#6b7280;text-transform:uppercase}.table-wrap{overflow:auto}.badge{background:#f3f4f6;border-radius:999px;padding:5px 10px;font-size:12px}

select{width:100%;padding:13px 14px;border:1px solid #d1d5db;border-radius:10px;background:#fff}.login-card.wide{max-width:560px}.form-inline{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.form-inline label{margin-top:0}@media(max-width:800px){.form-inline{grid-template-columns:1fr}}

.filter-grid{display:grid;grid-template-columns:120px 1fr 1fr auto;gap:12px;align-items:end}@media(max-width:900px){.filter-grid{grid-template-columns:1fr}}

.solo{max-width:960px;margin:0 auto;padding:24px}.question-card{margin-bottom:18px}.option{display:block;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:12px;margin:8px 0;font-weight:500}.option input{width:auto;margin-right:8px}.question-img{max-width:100%;border-radius:12px;border:1px solid #e5e7eb}.score-big{font-size:54px;font-weight:900;color:#dc2626;margin:10px 0}

.preview-question{border:1px solid #e5e7eb;border-radius:12px;padding:14px;margin:12px 0;background:#fafafa}.preview-question ol{margin-top:8px}

.dot{display:inline-block;width:16px;height:16px;border-radius:50%}.dot.green,.cal-dot.green{background:#16a34a}.dot.yellow{background:#eab308}.dot.red,.cal-dot.red{background:#dc2626}.cal-dot.blue{background:#2563eb}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:18px}.cal-head{font-weight:800;text-align:center;background:#111827;color:#fff;border-radius:8px;padding:10px}.cal-day{min-height:86px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:8px}.cal-day.empty{background:#f3f4f6}.cal-dot{display:inline-block;width:14px;height:14px;border-radius:50%;margin:4px 3px 0 0}@media(max-width:700px){.calendar-grid{gap:4px}.cal-day{min-height:58px;padding:5px}.cal-head{font-size:12px;padding:6px}}

.planner-topics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.planner-subject{border:1px solid #e5e7eb;border-radius:14px;padding:16px;background:#fafafa}.planner-subject h3{margin-top:0}.checkline{display:block;margin:8px 0;font-weight:500}.checkline input{width:auto;margin-right:8px}@media(max-width:800px){.planner-topics{grid-template-columns:1fr}}

/* Rocker-inspired polish */
.sidebar.rocker{background:linear-gradient(180deg,#111827,#1f2937);box-shadow:8px 0 24px rgba(0,0,0,.12)}
.brand-mini{display:flex;align-items:center;gap:12px;margin-bottom:22px;padding:10px;border-bottom:1px solid rgba(255,255,255,.12)}
.brand-icon{width:44px;height:44px;border-radius:12px;background:#dc2626;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:26px}
.brand-mini strong{display:block;color:#fff;font-size:18px}.brand-mini small{color:#cbd5e1}
.sidebar nav{display:flex;flex-direction:column;gap:6px}.rocker-topbar p{margin:4px 0 0;color:#6b7280}.user-pill{display:flex;gap:10px;align-items:center;background:#f3f4f6;border-radius:999px;padding:8px 14px}.user-pill span{font-size:12px;color:#6b7280}.metric-card{position:relative;overflow:hidden}.metric-card:after{content:"";position:absolute;right:-20px;bottom:-20px;width:90px;height:90px;background:rgba(220,38,38,.08);border-radius:50%}.metric-card small{display:block;color:#6b7280;margin-top:6px}.quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.action-card{display:block;background:#fff;border-radius:16px;padding:18px;text-decoration:none;color:#111827;font-weight:800;box-shadow:0 4px 16px rgba(0,0,0,.06);border-left:5px solid #dc2626}.action-card:hover{transform:translateY(-2px);transition:.15s}.panel{border:1px solid #eef2f7}@media(max-width:1000px){.quick-actions{grid-template-columns:1fr 1fr}.user-pill{margin-top:12px;display:inline-flex}}@media(max-width:600px){.quick-actions{grid-template-columns:1fr}}

/* Official SmartLatihan logo */
.login-logo-img{max-width:280px;width:100%;height:auto;display:block;margin:0 auto 10px}.center-brand{justify-content:center;text-align:center}.brand-logo-img{max-width:190px;width:100%;height:auto;display:block}.brand-mini:has(.brand-logo-img){justify-content:center;background:#fff;border-radius:14px;padding:12px}
