.auth-screen{min-height:100vh;background:radial-gradient(circle at 78% 15%,#d6e7e8 0,transparent 35%),linear-gradient(140deg,#e8f1f2,#f7f8f4);display:grid;grid-template-columns:1fr minmax(360px,540px) 1fr;align-content:start;gap:24px;padding:28px}
.auth-brand{grid-column:1/-1;display:flex;align-items:center;gap:11px;color:#193347;max-width:1200px;width:100%;margin:auto}.auth-brand .identity-mark{background:#193347}.auth-brand strong{display:block;letter-spacing:.09em}.auth-brand small{display:block;color:#728595;font-size:12px;margin-top:2px}
.auth-card{grid-column:2;background:#fff;border:1px solid #e0e9ea;border-radius:18px;padding:32px 38px 28px;box-shadow:0 24px 60px #17344819;margin:32px 0 55px}
.auth-intro h1{font-size:28px;color:#173448;margin:8px 0 7px}.auth-intro p{font-size:14px;color:#647b88;line-height:1.6;margin:0 0 20px}.auth-tabs{display:flex;gap:22px;border-bottom:1px solid #dce7eb;margin-bottom:19px}.auth-tabs button{border:0;border-bottom:3px solid transparent;padding:9px 4px 11px;background:none;color:#667c89;font-weight:700}.auth-tabs button.active{border-color:#d9ad30;color:#193c50}
.auth-form{display:grid;gap:15px}.auth-form label{display:block;min-width:0;color:#405c6b;font-size:13px;font-weight:650}.auth-form em,.age-picks em{color:#b55a4e;font-style:normal}.auth-form input,.auth-form select,.admin-filter{display:block;width:100%;margin-top:6px;border:1px solid #ccdae1;border-radius:8px;background:#fff;padding:11px 12px;min-height:43px;color:#193547;font-size:14px}.auth-form input::placeholder{color:#9aabb4}.auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.auth-submit{width:100%;margin-top:3px;padding:13px}.age-picks{border:1px solid #dbe6e9;border-radius:9px;padding:11px 12px 12px;margin:0}.age-picks legend{font-size:13px;color:#405c6b;font-weight:650;padding:0 3px}.age-picks small{font-weight:400;color:#8293a0}.age-list{display:flex;flex-wrap:wrap;gap:8px}.age-list label{position:relative;cursor:pointer}.age-list input{position:absolute;opacity:0;width:1px;height:1px}.age-list span{display:block;border:1px solid #d1dfe4;border-radius:18px;padding:6px 9px;background:#f6f9fa;color:#496575;font-size:12px}.age-list input:checked+span{background:#193e53;border-color:#193e53;color:#fff}.age-list input:focus-visible+span{outline:2px solid #2582b2;outline-offset:2px}.auth-message{min-height:21px;font-size:13px;color:#1d8068;line-height:1.5;margin:15px 0 0}.auth-message.error{color:#b3483d}.auth-footnote{font-size:11px;line-height:1.55;color:#8293a0;border-top:1px solid #e7ecef;padding-top:13px;margin:6px 0 0}.config-message{border:1px solid #e9bd79;background:#fff8ea;color:#745521;border-radius:8px;padding:11px 13px;line-height:1.5;margin-bottom:16px;font-size:13px}.config-message code{background:#fff1ce;padding:1px 4px;border-radius:3px}
.topbar-actions{flex-wrap:wrap;justify-content:flex-end}.topbar .cloud-nav{padding:8px 10px;font-size:12px}.topbar #profileButton{max-width:105px;overflow:hidden;text-overflow:ellipsis}.topbar .save-status{min-width:116px}
.library-heading{display:flex;align-items:center;justify-content:space-between;color:#193347;font-weight:750;font-size:16px;border-bottom:1px solid #e1e9ed;padding-bottom:9px;margin-bottom:10px}.my-lessons{max-height:225px;overflow:auto;display:grid;gap:6px;margin-bottom:20px}.my-lesson-row{display:flex;align-items:center;border:1px solid #e1e8ec;border-radius:8px;background:#f8fafb}.my-lesson-row.selected{border-color:#81b8c6;background:#eaf5f7}.lesson-open{border:0;background:transparent;color:#1e4053;padding:10px;flex:1;min-width:0;text-align:left}.lesson-open strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-open small{display:block;color:#7a929e;margin-top:3px;font-size:11px}.lesson-delete{border:0;background:transparent;color:#ad655b;font-size:21px;padding:6px 11px;align-self:stretch}.lesson-delete:hover{background:#f9eae8}.empty-note{font-size:14px;color:#6c8290;padding:18px 6px}.my-lessons+.rail-heading{border-top:1px solid #e1e9ed;padding-top:16px}
.cloud-dialog{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px}.cloud-dialog-scrim{position:absolute;inset:0;background:#0d2433b5}.cloud-dialog-panel{position:relative;background:#fff;border-radius:12px;box-shadow:0 22px 70px #102a3c58;width:min(100%,1080px);max-height:92vh;display:flex;flex-direction:column;overflow:hidden}.cloud-dialog-panel>header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e5ebee;padding:16px 21px}.cloud-dialog-panel h2{font-size:19px;color:#1c394b;margin:0}.cloud-dialog-panel>header button{border:0;background:#f1f5f6;color:#385368;border-radius:50%;width:32px;height:32px;font-size:22px;line-height:1}.cloud-dialog-panel #dialogBody{padding:20px;overflow:auto}.dialog-hint{color:#627b89;font-size:13px;margin:0 0 16px;line-height:1.55}.table-scroll{overflow:auto;max-height:60vh;border:1px solid #e2eaee;border-radius:9px}.data-table{border-collapse:collapse;width:100%;min-width:650px;font-size:13px}.data-table th{position:sticky;top:0;background:#f2f6f7;text-align:left;color:#506a78;font-size:12px;white-space:nowrap}.data-table td,.data-table th{padding:12px;border-bottom:1px solid #e9eef0;vertical-align:top}.data-table td{color:#264356}.data-table td small{display:block;color:#7b919d;margin-top:3px}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#f8fafb}.data-table tr[hidden]{display:none}.data-table td .text-button{white-space:nowrap;padding:0}.profile-form{max-width:620px}.profile-form #profileMessage{margin:0;color:#22806b;font-size:13px}.admin-metrics{display:flex;gap:10px;margin-bottom:16px}.admin-metrics>div{min-width:130px;border-radius:9px;background:#f2f7f8;padding:12px 15px}.admin-metrics strong{display:block;font-size:25px;color:#173d51}.admin-metrics span{font-size:12px;color:#677f8c}.admin-tabs{display:flex;gap:9px;margin-bottom:10px}.admin-tabs button{border:1px solid #d5e3e7;background:#f7fafb;border-radius:7px;padding:9px 14px;color:#315466;font-weight:700}.admin-tabs button.active{background:#193e53;color:#fff}.admin-filter{max-width:500px;margin:0 0 14px}.admin-preview{display:grid;gap:18px;background:#eaf0f2;padding:16px;max-height:67vh;overflow:auto}.admin-preview .sheet{max-width:800px;margin:0 auto;min-height:780px}
@media(max-width:1100px){.topbar{height:auto;min-height:76px;padding:12px 18px}.topbar-actions{gap:6px}}
@media(max-width:760px){.auth-screen{display:block;padding:18px}.auth-card{padding:22px 18px;margin:30px auto;max-width:540px}.topbar-actions{justify-content:flex-start}.topbar .save-status{width:100%;text-align:left}.topbar .cloud-nav{padding:7px 8px}.cloud-dialog{padding:8px}.cloud-dialog-panel{max-height:96vh}.cloud-dialog-panel #dialogBody{padding:13px}.admin-preview{padding:8px}.admin-preview .sheet{min-height:650px}}
@media(max-width:430px){.auth-grid{grid-template-columns:1fr}.auth-intro h1{font-size:23px}.topbar-actions .button{font-size:11px}}
.forgot-password{justify-self:end;font-size:12px}
.topbar-actions a.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.quota-badge{font-size:12px;color:#ffe295;border:1px solid #a1854b;border-radius:7px;padding:7px 10px;max-width:100%;line-height:1.5}
.lesson-empty-state{min-height:calc(100vh - 76px);display:grid;place-items:center;padding:22px}
.lesson-empty-state>div{width:min(100%,480px);padding:36px;background:#fff;border:1px solid #dde8ed;border-radius:15px;box-shadow:0 14px 45px #19334716;text-align:center}
.lesson-empty-state h2{font-size:23px;margin:9px 0}.lesson-empty-state p{color:#637e8a;line-height:1.6;margin:0 0 23px;font-size:14px}
.lesson-empty-state .button{min-width:180px}
.lesson-fields select{display:block;width:100%;margin-top:6px;border:1px solid #cedbe3;border-radius:7px;background:#fff;padding:9px 10px;font-size:15px;font-weight:400;min-height:39px}
.cloud-dialog a.text-button{display:inline-block;text-decoration:none;margin:0 0 12px}
@media print{.auth-screen,.cloud-dialog{display:none!important}.admin-preview{display:none!important}}
.admin-export-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:0 0 16px}
.admin-export-controls label{flex:1 1 230px;font-size:13px;font-weight:700;color:#496675}
.admin-export-controls select{display:block;width:100%;min-height:40px;margin-top:5px;padding:8px 10px;border:1px solid #ccdae1;border-radius:7px;background:#fff;color:#193547}
.admin-export-controls .button{min-height:40px}
.admin-notice{background:#e7f5ee;border:1px solid #b8dec8;border-radius:8px;padding:10px 12px;color:#26664c;font-size:13px;margin:0 0 14px}
.grant-form{max-width:560px}.grant-form .grant-target{font-size:15px;color:#254355;font-weight:750;margin:0}
.grant-form .grant-summary{font-size:13px;color:#607988;margin:0}
.grant-form .grant-footnote{font-size:12px;color:#6d8290;line-height:1.6;margin:0}
.grant-message{color:#b3483d;font-size:13px;min-height:19px;margin:0}
.grant-manager{max-width:650px;display:grid;gap:12px}
.grant-manager>.grant-target{font-size:16px;font-weight:750;color:#254355;margin:0}
.grant-manager>.grant-summary{font-size:13px;color:#526b79;margin:0 0 2px}
.grant-section{border:1px solid #dce7eb;border-radius:10px;background:#fbfdfd;padding:15px;display:grid;gap:12px}
.grant-section h3{font-size:15px;color:#26495b;margin:0 0 2px}
.grant-section>label{display:block;color:#405c6b;font-size:13px;font-weight:650}
.grant-section>label input{display:block;width:100%;margin-top:6px;border:1px solid #ccdae1;border-radius:8px;background:#fff;padding:9px 11px;min-height:43px;color:#193547;font-size:14px}
.grant-actions{display:flex;flex-wrap:wrap;gap:8px;margin:-3px 0 3px}
.grant-section .grant-footnote{margin:0;font-size:12px;line-height:1.5;color:#6d8290}
.grant-revoke{background:#fff4f2;border-color:#e9b5ad;color:#9b3e35;justify-self:start}
.grant-revoke:hover{background:#ffe9e4}
.grant-section button:disabled{opacity:.48;cursor:not-allowed}
@media(max-width:760px){.admin-export-controls .button{width:100%}}

/* Site identity: keep the uploaded transparent badge readable on the dark header. */
.brand-logo-frame{display:grid;place-items:center;flex:none;width:64px;height:64px;overflow:hidden;border-radius:12px;background:#fff;box-shadow:0 2px 10px #10243424}
.brand-logo-frame img{display:block;width:100%;height:100%;object-fit:contain}
.auth-logo-frame{width:88px;height:88px;border:1px solid #e2e9e7}
.auth-brand strong{letter-spacing:0;line-height:1.4;font-size:18px}
.identity .brand-name{letter-spacing:0;line-height:1.35;font-size:16px}
.identity,.identity>div{min-width:0}
.identity{flex-shrink:1}
.topbar{height:auto;min-height:82px;padding-top:9px;padding-bottom:9px}
@media(max-width:760px){.identity .brand-logo-frame{width:54px;height:54px}.auth-logo-frame{width:76px;height:76px}.auth-brand strong{font-size:16px}.identity .brand-name{font-size:15px}}

.lesson-sharing{margin:0 0 14px;padding:11px 12px;border:1px solid #cfe3d8;border-radius:9px;background:#f3faf6}
.lesson-fields .share-toggle{display:flex;align-items:center;gap:9px;margin:0;color:#1c5c42;font-size:13px;font-weight:750;cursor:pointer}
.lesson-fields .share-toggle input{flex:none;width:17px;height:17px;min-height:17px;margin:0;padding:0;accent-color:#287857}
.lesson-sharing p{margin:6px 0 0;color:#627e70;font-size:11px;line-height:1.5}
.lesson-sharing .share-toggle:has(input:disabled){opacity:.6;cursor:not-allowed}
.my-lesson-row .sharing-status{color:#288263}
.library-access-status{display:block;font-size:12px;color:#4f6872;margin-bottom:3px}
.library-access-status.active{color:#187352;font-weight:700}
.session-card h1{font-size:23px;margin:0 0 12px;color:#173d51}
.session-card p{font-size:14px;line-height:1.7;color:#607986;margin:0 0 20px}
.home-load-notice{margin-top:18px;padding:16px;border:1px solid #d5e3e7;border-radius:10px;background:#fff}
.home-load-notice p{margin:0 0 12px;color:#627c89;font-size:14px;line-height:1.6}
