.admin-page { min-height: 100vh; }
.admin-back { display: inline-flex; align-items: center; min-height: 44px; color: white; text-decoration: none; font-weight: 750; padding: 0 14px; }
.admin-lock { color: white; background: #ffffff20; border: 1px solid #ffffff30; border-radius: 12px; padding: 0 16px; }
.admin-shell { width: min(1220px, 100%); margin: 0 auto; padding: 36px 24px 60px; }
.admin-card { padding: 28px; border: 1px solid var(--line); border-radius: 24px; background: var(--paper); box-shadow: 0 8px 25px #173f3508; }
.admin-card h3 { font-size: 25px; letter-spacing: -.03em; margin: 12px 0 8px; }
.admin-card > p:not(.card-label), .admin-intro p { color: var(--muted); line-height: 1.55; }
.admin-card .card-label { font-size: 11px; }
.admin-login { max-width: 490px; margin: 7vh auto; padding: 36px; }
.admin-login h2 { font-size: 34px; letter-spacing: -.045em; line-height: 1.12; }
.admin-intro { display: flex; align-items: center; justify-content: space-between; margin: 0 0 28px; }
.admin-intro h2 { font-size: clamp(26px, 4vw, 40px); letter-spacing: -.04em; margin: 0; }
.admin-intro p { margin-bottom: 0; }
.admin-tag { color: var(--forest); background: var(--mint); font-size: 12px; font-weight: 850; border-radius: 50px; padding: 9px 16px; }
.admin-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 22px; align-items: start; }
.admin-side { display: grid; gap: 22px; }
.admin-card form { display: grid; gap: 12px; }
.admin-card label { display: block; color: var(--forest); font-size: 13px; font-weight: 800; margin-top: 5px; }
.admin-card input:not([type="checkbox"]):not([type="range"]), .admin-card select, .admin-card textarea { width: 100%; min-width: 0; min-height: 48px; padding: 10px 12px; border: 1px solid #b4c5ba; border-radius: 11px; color: var(--ink); background: white; font: inherit; font-size: 16px; }
.admin-card textarea { resize: vertical; line-height: 1.6; }
.admin-sliders { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; padding: 12px 0 0; }
.admin-sliders output { float: right; color: var(--muted); font-variant-numeric: tabular-nums; }
.admin-sliders input { width: 100%; accent-color: var(--forest-2); min-height: 35px; }
.admin-card .admin-check { display: flex; align-items: center; gap: 10px; font-weight: 650; line-height: 1.45; margin: 0; }
.admin-check input { width: 20px; height: 20px; flex-shrink: 0; accent-color: var(--forest); }
.admin-button-row { display: flex; flex-wrap: wrap; gap: 8px; }
.secondary-button { border-radius: 12px; padding: 0 14px; color: var(--forest); background: var(--mint); font-weight: 750; font-size: 13px; }
.admin-card .check-button { border-radius: 12px; min-height: 48px; font-size: 14px; }
.admin-status { margin: 0; min-height: 20px; color: var(--forest-2); font-size: 14px; line-height: 1.5; }
.admin-status.error { color: #a5362a; }
.admin-diagnostics { border-top: 1px solid var(--line); margin-top: 12px; padding-top: 18px; }
.admin-diagnostics summary { cursor: pointer; font-size: 13px; font-weight: 800; }
.admin-card dl { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 12px; font-size: 13px; line-height: 1.5; }
.admin-card dt { color: var(--muted); }
.admin-card dd { margin: 0; overflow-wrap: anywhere; font-weight: 650; }
.progress-card { grid-column: 1 / -1; }
.progress-heading { display: flex; justify-content: space-between; gap: 24px; align-items: center; margin-bottom: 18px; }
.progress-heading label { min-width: 180px; }
.progress-heading select { margin-top: 5px; }
.parent-dashboard h4 { margin-top: 24px; }
.admin-card .settings-note { font-size: 12px; margin: 0; line-height: 1.5; }
@media (max-width: 800px) { .admin-grid { grid-template-columns: 1fr; } .admin-shell { padding: 22px 14px; } .admin-card { padding: 22px; } .progress-heading { flex-direction: column; align-items: stretch; } .admin-tag { display: none; } }
@media (max-width: 480px) { .admin-page .brand-mark { display: none; } .admin-back { font-size: 12px; padding: 0 5px; } .admin-lock { font-size: 12px; padding: 0 9px; } .admin-login { margin-top: 20px; } .admin-sliders { grid-template-columns: 1fr; gap: 5px; } }
