/* Authentication */
.auth-card{gap:0}.auth-card .auth-message{background:#eaf3e8;border:1px solid #c8e0c8;color:#2d6c3d;border-radius:12px;padding:12px;font-size:13px;line-height:1.45;margin:0 0 18px}.auth-card .consent{display:flex;align-items:flex-start;gap:9px;font-size:11px;line-height:1.4;font-weight:500}.auth-card .consent input{width:18px;height:18px;flex:none;margin:0}.auth-switch{background:none;color:var(--blue);font-size:12px;font-weight:800;margin-top:16px;text-align:center}.auth-screen .welcome-art{min-height:100vh}
.privacy-facts{margin:24px 0;line-height:1.6;font-size:14px}.privacy-facts dt{font-weight:800;margin-top:18px;color:var(--blue)}.privacy-facts dd{margin:5px 0 0;overflow-wrap:anywhere}.privacy-screen a,.registration-privacy-summary a{color:var(--blue);text-decoration:underline;overflow-wrap:anywhere}.auth-card .privacy-consent{font-size:14px;line-height:1.6;margin:24px 0 16px}.privacy-version,.registration-privacy-summary{font-size:12px;line-height:1.6}.privacy-screen .auth-card{max-width:760px;width:100%;padding:48px}.privacy-screen .auth-switch{display:block;width:100%;padding:12px}.privacy-screen h1{font-size:32px;letter-spacing:0}.privacy-screen.welcome{grid-template-columns:minmax(240px,0.7fr) minmax(0,1.3fr);align-items:start}.privacy-screen.auth-screen .welcome-art{height:100vh;min-height:0;position:sticky;top:0}.privacy-screen #privacy-notice>p{font-size:14px;line-height:1.6}@media(max-width:760px){.privacy-screen.welcome{display:block}.privacy-screen.auth-screen .welcome-art{height:auto;min-height:140px;position:relative}.privacy-screen .auth-card{padding:26px 24px 34px}}
.city-fallback{display:block;width:100%;margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:10px}
.ranking-empty,.ranking-loading{color:var(--muted);font-size:13px;padding:8px 4px}
.level-badge-svg{width:44px;height:44px;display:block}
.level-badge-lock{position:absolute;inset:0;display:grid;place-items:center;font-size:14px;filter:drop-shadow(0 1px 1px #0007)}
.side-admin{display:grid;gap:8px;margin:8px 0 20px;padding:14px 12px;background:#ffffff0c;border:1px solid #ffffff1c;border-radius:14px;flex:none}
.side-admin .quiet-btn{display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:40px;text-align:left;line-height:1.25}
.sidebar{overflow-x:hidden;overflow-y:auto;scrollbar-gutter:stable}
.side-nav,.side-foot{flex:none}
.side-admin-label{font-size:10px;letter-spacing:.14em;font-weight:800;color:#8fa4d4;padding:0 2px}
.reset-all-row{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;padding:12px;border:1px solid var(--line);border-radius:12px;margin:16px 0 12px}
.reset-all-row input{width:18px;height:18px;flex:none;margin:0}
.reset-mission-list{display:grid;gap:8px;max-height:340px;overflow:auto;padding-right:2px;margin-bottom:18px}
.reset-mission-row{display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid var(--line);border-radius:12px}
.reset-mission-row input{width:18px;height:18px;flex:none;margin:0}
.reset-mission-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#eaf0fb;font-size:17px;flex:none}
.reset-mission-info strong{display:block;font-size:13px}
.reset-mission-info small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.school-code-row{display:flex;gap:8px;align-items:flex-end}
.school-code-row input{flex:1}
.school-code-row button{flex:none;white-space:nowrap;padding:13px 14px;border-radius:12px;background:var(--blue);color:#fff;font-weight:800;font-size:12px}
.school-match{background:#eaf3e8;border:1px solid #c8e0c8;color:#2d6c3d;border-radius:12px;padding:10px 12px;font-size:12.5px;margin-top:8px}
.school-match.error{background:#fbe7e0;border-color:#edc9b8;color:#7d331d}
.school-match .text-btn{color:inherit;text-decoration:underline;font-size:12px}
.admin-school-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;font-size:12.5px}
.school-admins{margin:0 0 16px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fbfaf6}
.school-admins h3{font-family:var(--display);font-size:17px;margin:0}
.school-admin-list{display:grid;gap:8px;margin-bottom:14px}
.school-admin-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}
.school-admin-row>span{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--gold-soft);font-size:16px}
.quiz-modal.school-admin-dialog h2{font-size:24px!important;line-height:1.2;margin:0 0 16px}.school-admin-dialog p{line-height:1.5;margin:12px 0}.school-admin-actions .danger,.school-admin-dialog-actions .danger{color:#a33d28}
.school-admin-row strong,.school-admin-row small{display:block}.school-admin-row strong{font-size:13px}.school-admin-row small{color:var(--muted);font-size:11px;margin-top:2px}
.school-admin-row{flex-wrap:wrap}.school-admin-details{flex:1;min-width:0;overflow-wrap:anywhere}.school-admin-actions{display:flex;flex-wrap:wrap;gap:12px;margin-left:auto}.school-admin-actions button{min-height:36px}.school-admin-dialog{border:1px solid var(--line);border-radius:8px!important;padding:24px!important;width:min(480px,calc(100% - 32px))!important;margin:auto}.school-admin-dialog::backdrop{background:#071638b8}.school-admin-dialog h2,.school-admin-dialog p{overflow-wrap:anywhere}.school-admin-dialog label{display:block;font-size:13px;font-weight:700;margin:16px 0}.school-admin-dialog input{display:block;width:100%;min-width:0;padding:12px;margin-top:6px;border:1px solid var(--line);border-radius:6px;font:inherit}.school-admin-dialog .check-inline{display:flex;align-items:center;gap:10px}.school-admin-dialog .check-inline input{display:inline-block;width:18px;height:18px;margin:0;flex:none}.school-admin-dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:12px;margin-top:20px}.school-admin-dialog-actions button{white-space:normal;min-height:44px}
.school-logo-field{display:flex;align-items:center;gap:14px;padding-bottom:16px;margin-bottom:4px;border-bottom:1px solid var(--line)}
.school-logo-preview{flex:none;width:96px;height:96px;display:grid;place-items:center;border:1px solid var(--line);border-radius:14px;background:#fbfaf6;overflow:hidden}
.school-logo-preview img{width:100%;height:100%;object-fit:contain}
.school-logo-placeholder{font-size:24px;opacity:.4}
.school-logo-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.school-admin-dialog .school-logo-upload-btn{display:inline-flex;align-items:center;min-height:36px;padding:9px 14px;margin:0;cursor:pointer}
.school-admin-dialog input[type="file"][hidden]{display:none}
.student-profile-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.student-profile-actions button{flex:1;min-width:180px}
.school-heading-logo{flex:none;width:48px;height:48px;object-fit:contain;border-radius:9px;background:#fff;border:1px solid var(--line)}
.school-admin-form{padding-top:12px;border-top:1px solid var(--line)}
.school-class-editor{border:0;padding:0;margin:16px 0;min-width:0}.school-class-editor legend{font-weight:800;font-size:13px;margin-bottom:10px}.school-class-row{display:flex;align-items:end;gap:10px;margin-bottom:10px;max-width:380px}.school-class-row label{flex:1;min-width:0;margin:0!important}.school-class-row input{width:100%;min-width:0;border:1px solid var(--line);border-radius:6px;padding:10px 12px;font:inherit;background:#fff;color:var(--ink)}.school-class-row button{width:40px;height:40px;flex-shrink:0;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);font-size:22px;cursor:pointer}.school-class-row button:disabled{opacity:.35;cursor:default}#new-school-form{padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--line)}.school-new-form .school-login-toggle{display:flex;align-items:center;gap:10px;margin:18px 0}.school-new-form .school-login-toggle input{width:18px;height:18px;margin:0;accent-color:var(--navy)}#new-school-login{min-width:0;border:0;border-top:1px solid var(--line);padding:16px 0;margin:0 0 16px}#new-school-login legend{font-size:13px;font-weight:800}.evidence-review-dialog{border:1px solid var(--line);border-radius:8px!important;padding:24px!important;width:min(480px,calc(100% - 32px))!important;margin:auto}.evidence-review-dialog::backdrop{background:#071638b8}.evidence-review-actions{display:grid;gap:12px}.evidence-review-actions button{white-space:normal;min-height:44px}.evidence-thumb small{padding:12px;text-align:center}
.school-admin-form h3{font-family:var(--display);font-size:17px;margin:0 0 12px}
.admin-school-row strong{flex:1;font-size:13px}
.admin-school-row code{background:var(--gold-soft);color:#8b6517;padding:3px 8px;border-radius:8px;font-weight:800;letter-spacing:.04em}
.school-student-count{color:var(--muted);font-size:11.5px;white-space:nowrap}
.admin-school-list,.admin-student-list{display:grid;gap:8px;margin-bottom:18px}
.schools-body{min-width:0}.schools-body details>summary{cursor:pointer;min-height:48px;align-content:center;font-weight:800;font-size:14px;overflow-wrap:anywhere}.schools-body summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.schools-body .school-create-section{border-block:1px solid var(--line);margin-bottom:20px;background:#fff}.schools-body .school-create-section>summary{padding:14px 18px;color:var(--navy);font-size:17px}.schools-body #new-school-form{padding:6px 18px 20px;margin:0;border:0}.schools-body .school-create-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:28px}.schools-body .school-identity-fields{border:0;padding:0;margin:16px 0;min-width:0}.schools-body legend{font-size:13px;font-weight:800;margin-bottom:12px}.schools-body label{display:block;min-width:0;font-size:12px;font-weight:700}.schools-body input:not([type=checkbox]),.schools-body select{display:block;width:100%;min-width:0;max-width:100%;min-height:42px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;font:inherit;background:#fff;color:var(--ink);margin-top:6px}.schools-body .admin-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.schools-body .school-class-row{max-width:none}.schools-body [data-class-rows]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.schools-body .school-class-row{margin:0 0 8px;gap:8px}.schools-body .school-class-row button{height:42px}.schools-body #new-school-login:not([hidden]){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.schools-body [hidden]{display:none!important}.schools-body .school-form-footer{display:flex;justify-content:flex-end;margin-top:18px}.schools-body .schools-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-bottom:1px solid var(--line);margin:0 0 24px}.schools-body .schools-summary .stats-card{border:0;border-radius:0;box-shadow:none;background:transparent;padding:12px 16px;min-width:0}.schools-body .schools-summary b{font-size:24px}.schools-body .schools-summary small{font-size:11px}.schools-body .school-directory-filters{margin-bottom:20px}.schools-body .school-directory-filters h3{font-size:17px;margin:0 0 14px}.schools-body .school-filters{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:12px}.schools-body .school-accordion{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff}.schools-body .school-accordion-header{padding:12px 16px;background:#fff;gap:12px}.schools-body .school-accordion-toggle{display:flex;align-items:center;gap:14px;min-width:0;flex:1;text-align:left}.schools-body .school-heading-name{flex:1;min-width:0}.schools-body .school-heading-name strong,.schools-body .school-heading-name small{display:block;overflow-wrap:anywhere;white-space:normal}.schools-body .school-heading-name strong{font-size:14px}.schools-body .school-heading-name small{font-size:12px;color:var(--muted);margin-top:4px}.schools-body .school-accordion-body{padding:0 18px 8px}.schools-body .school-detail-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding:16px 0;font-size:12px;color:var(--muted)}.schools-body .school-detail-toolbar strong{color:var(--ink);margin-left:6px}.schools-body .school-detail-toolbar a{color:var(--blue);font-weight:700}.schools-body .school-detail-section{border-top:1px solid var(--line)}.schools-body .school-detail-section>summary{padding:12px 0}.schools-body .school-detail-section>summary span{display:inline-block;margin-left:8px;color:var(--muted);font-size:12px;font-weight:500}.schools-body .school-detail-content{padding:0 0 20px}.schools-body .school-detail-content>.school-admin-form{border:0;padding:0}.schools-body .school-admin-row{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:14px 0;gap:12px}.schools-body .school-admin-list{gap:0}.schools-body .school-add-admin>summary{font-size:13px;color:var(--blue)}.schools-body .student-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(0,1.5fr);gap:16px;align-items:center;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:16px 0}.schools-body .student-info{min-width:0;overflow-wrap:anywhere}.schools-body .student-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px 14px}.schools-body .student-actions .student-transfer{width:180px;margin:0}.schools-body .student-actions button{min-height:36px;white-space:normal}.schools-body .student-add-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding-top:16px}.schools-body .student-add-row select{flex:1;min-width:150px;margin:0}.schools-body .school-admin-actions{gap:12px}.schools-body button{max-width:100%}
@media(max-width:1000px){.schools-body .school-create-grid{grid-template-columns:minmax(0,1fr)}.schools-body .school-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.schools-body #new-school-login:not([hidden]){grid-template-columns:minmax(0,1fr)}.schools-body .student-row{grid-template-columns:minmax(0,1fr)}.schools-body .student-actions{justify-content:flex-start}}
@media(max-width:560px){.schools-body .schools-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.schools-body .school-filters,.schools-body .admin-row{grid-template-columns:minmax(0,1fr)}.schools-body .school-accordion-header{padding:12px}.schools-body .school-accordion-toggle{flex-wrap:wrap;gap:8px}.schools-body .school-heading-name{flex-basis:calc(100% - 30px)}.schools-body .school-accordion-body{padding:0 12px 8px}.schools-body [data-class-rows]{grid-template-columns:minmax(0,1fr)}.schools-body .school-admin-actions{width:100%;justify-content:flex-start;margin:0}.schools-body .school-form-footer button{width:100%;white-space:normal}.schools-body .student-actions .student-transfer{width:100%}.schools-body .school-create-grid{gap:0}}
.side-profile-school{opacity:.75}
.student-info .student-warning{color:var(--red);font-weight:700}
.password-strength{display:grid;gap:4px;margin:-8px 0 16px}
.pw-check{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--red)}
.pw-check.ok{color:var(--green)}
.chat-body{display:flex;flex-direction:column;height:calc(100vh - 230px);min-height:440px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 5px 15px #14244d06}
.admin-chat-message.is-flagged{border:2px solid #d66b78;background:#fff6f7}.flagged-banner{display:flex;align-items:center;gap:10px;margin:8px 0;padding:8px 10px;border-radius:8px;background:#fbe2e5;color:#8d2635;font-size:11px;font-weight:800}.flagged-banner small{margin-left:auto;color:#a14b57;font-size:10px}.flag-chat-button{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:7px 10px;border:1px solid #d66b78;border-radius:7px;background:#fff;color:#a12e3e;font-size:11px;font-weight:800;cursor:pointer}.flag-chat-button:hover{background:#fbe2e5}.flag-chat-button.flagged-action{border-color:#9aabbc;color:#4b6076;background:#f2f5f8}.flagged-label{color:#a12e3e;font-weight:800}
.admin-chat-message label,.occurrence-item label{display:grid;gap:5px;margin-top:10px;color:var(--muted);font-size:11px;font-weight:800}.admin-chat-message select,.admin-chat-message textarea,.occurrence-item select,.occurrence-item textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff;color:var(--ink);font:inherit}.occurrence-save{margin-top:10px!important}
.admin-chat-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px;background:#fff;border-bottom:1px solid var(--line)}.admin-chat-filters label{display:grid;gap:6px;color:var(--muted);font-size:11px;font-weight:800}.admin-chat-filters input,.admin-chat-filters select{width:100%;min-height:38px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#f7f8fb;color:var(--ink);font-size:12px}.admin-chat-message{max-width:760px;padding:10px 13px;border:1px solid var(--line);border-radius:10px;background:#fff}.admin-chat-message>div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.admin-chat-message strong{font-size:12px}.admin-chat-message span{color:var(--blue);font-size:11px;font-weight:800}.admin-chat-message p{margin:6px 0 4px;font-size:13px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.admin-chat-message small{font-size:10px;color:var(--muted)}
.chat-room-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:var(--navy-dark);color:#fff}
.chat-room-head strong{font-size:14px}
.chat-room-head span{font-size:12px;color:#c5d3f4}
.chat-warning{background:#fff3cd;color:#7a5b06;font-size:12px;line-height:1.5;padding:10px 18px;border-bottom:1px solid #f0dca0}
.chat-thread{flex:1;overflow-y:auto;padding:16px;background:#eef1f7;display:flex;flex-direction:column;gap:10px}
.chat-bubble-row{display:flex;gap:8px;align-items:flex-end;max-width:78%}
.chat-bubble-row.mine{align-self:flex-end;flex-direction:row-reverse}
.chat-avatar{flex:none;width:30px;height:30px}
.chat-avatar .avatar-identity{width:30px;height:30px}
.chat-bubble{background:#fff;border-radius:14px;padding:8px 12px;box-shadow:0 2px 6px #14244d10}
.chat-bubble-row.mine .chat-bubble{background:var(--gold-soft)}
.chat-bubble.directed{border-left:3px solid var(--blue)}
.chat-bubble-row.mine .chat-bubble.directed{border-left:0;border-right:3px solid var(--blue)}
.chat-bubble-name{display:block;font-size:11px;font-weight:800;color:var(--blue);margin-bottom:2px}
.chat-bubble p{margin:0;font-size:13.5px;line-height:1.45;word-break:break-word;color:var(--ink)}
.chat-bubble-foot{display:flex;align-items:center;gap:8px;margin-top:4px;justify-content:flex-end}
.chat-bubble-foot small{font-size:10px;color:var(--muted)}
.chat-like{background:none;border:0;padding:0;font-size:11px;color:var(--muted);display:flex;align-items:center;gap:3px;cursor:pointer}
.chat-like.liked{color:var(--red)}
.chat-composer{display:flex;flex-direction:column;gap:8px;padding:12px;background:#fff;border-top:1px solid var(--line)}
.chat-recipient-select{align-self:flex-start;max-width:100%;border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-size:11.5px;font-weight:700;color:var(--blue);background:#eef3fc}
.chat-composer-row{display:flex;gap:8px}
.chat-composer-row input{flex:1;border:1px solid var(--line);border-radius:999px;padding:11px 16px;font-size:13.5px;background:#f7f7f5}
.chat-composer-row .primary-btn{width:46px;flex:none;padding:0;border-radius:50%;justify-content:center;box-shadow:none}
.chat-composer-row .primary-btn span{font-size:18px}
@media(max-width:760px){.chat-body{height:calc(100vh - 220px)}}
@media(max-width:760px){.admin-chat-filters{grid-template-columns:minmax(0,1fr)}}
.evidence-body h3{font-family:var(--display);font-size:19px;margin:0}
.evidence-hint{color:var(--muted);font-size:13px;line-height:1.5;margin:8px 0 18px}
.evidence-body form label{display:block;font-size:12px;font-weight:800;margin-bottom:14px;color:var(--ink)}
.evidence-body form input,.evidence-body form select,.evidence-body form textarea{display:block;width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-top:6px;background:#fff;color:var(--ink);font-size:13px;font-weight:500;font-family:var(--body)}
.evidence-body form textarea{resize:vertical}
.evidence-parent-gate{margin:6px 0 18px;padding:14px 16px;background:#fff8e6;border:1px solid #f0dca0;border-radius:12px}
.evidence-parent-gate .eyebrow{display:block;margin-bottom:10px}
.evidence-list{display:grid;gap:12px}
.evidence-item{display:flex;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}
.evidence-thumb{flex:none;width:96px;height:96px;border-radius:10px;overflow:hidden;background:#eef1f7}
.evidence-thumb img,.evidence-thumb video{width:100%;height:100%;object-fit:cover;display:block}
.evidence-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.evidence-info strong{font-size:14px}
.evidence-status{font-size:11px;font-weight:800;width:fit-content;padding:3px 8px;border-radius:99px}
.evidence-status.pending{background:#fff3cd;color:#7a5b06}
.evidence-status.ok{background:#e4f3e6;color:#2d6c3d}
.evidence-status.bad{background:#f8dcd3;color:#a33d28}
.evidence-info small{color:var(--muted);font-size:11px}
.evidence-info p{font-size:12.5px;color:var(--ink);margin:2px 0 0}
.evidence-preview{margin:10px 0}
.evidence-preview video{max-width:100%;max-height:220px;border-radius:10px;display:block}
.evidence-preview-thumb{width:140px;height:140px;object-fit:cover;border-radius:10px;display:block;cursor:zoom-in;border:1px solid var(--line)}
.evidence-thumb img{cursor:zoom-in}
.media-lightbox{background:#0009;display:grid;place-items:center;padding:24px;cursor:zoom-out;z-index:30}
.lightbox-media{max-width:92vw;max-height:88vh;border-radius:12px;box-shadow:0 20px 60px #000a;cursor:default}
@media(max-width:760px){.evidence-item{flex-direction:column}.evidence-thumb{width:100%;height:180px}.evidence-preview-thumb{width:100%;height:180px}}
.admin-menu-modal{position:relative}
.admin-menu-modal .close-modal{position:absolute;right:18px;top:18px}
.admin-menu-modal h2{font-family:var(--display);font-size:26px;margin:6px 0 18px}
.admin-menu-list{display:grid;gap:10px}
.admin-menu-item{display:flex;align-items:center;gap:10px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;font-size:14px;font-weight:700;color:var(--ink)}
.admin-menu-item:hover{background:#f5f7fc}
.schools-summary{grid-template-columns:repeat(4,1fr)}
.school-filters{display:grid;grid-template-columns:1.2fr 1.2fr 1fr 1fr;gap:10px}
.student-filters{display:grid;grid-template-columns:1.4fr 1.2fr 1fr 1fr .9fr;gap:10px}
.student-filters input,.student-filters select{border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:#fff;color:var(--ink);font-size:13px;font-family:var(--body)}
@media(max-width:760px){.student-filters{grid-template-columns:1fr}}
.school-accordion{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.school-accordion-header{display:flex;align-items:stretch}
.school-accordion.open .school-accordion-header{border-bottom:1px solid var(--line)}
.school-accordion-toggle{display:flex;align-items:center;gap:10px;flex:1;min-width:0;text-align:left;background:var(--surface);border:0;padding:12px;font:inherit;color:inherit;cursor:pointer;font-size:12.5px}
.school-accordion-toggle:hover{background:#f7f6f1}
.school-accordion-toggle strong{flex:1;font-size:13px}
.school-delete-btn{flex:none;width:44px;display:grid;place-items:center;background:var(--surface);border:0;border-left:1px solid var(--line);color:var(--red);font-size:15px;cursor:pointer}
.school-delete-btn:hover{background:#fbe7e0}
.school-edit-btn{flex:none;width:44px;display:grid;place-items:center;background:var(--surface);border:0;border-left:1px solid var(--line);color:var(--blue);font-size:15px;cursor:pointer}
.school-edit-btn:hover{background:#eaf0fb}
.school-invite-btn{flex:none;width:44px;display:grid;place-items:center;background:var(--surface);border:0;border-left:1px solid var(--line);color:var(--green);font-size:15px;cursor:pointer}
.school-invite-btn:hover{background:#e7f5ed}
.student-row.missing-class{background:#fdf3ef;border-color:#edc9b8}
.accordion-caret{width:12px;color:var(--muted);font-size:11px;flex:none}
.school-accordion-body{padding:12px;display:grid;gap:10px;background:#fbfaf6}
.school-new-form h3{font-family:var(--display);font-size:19px;margin:0 0 14px}
.school-new-form label{display:block;font-size:12px;font-weight:800;margin-bottom:12px;color:var(--ink)}
.school-new-form input,.school-new-form select{display:block;width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-top:6px;background:#fff;color:var(--ink);font-size:13px;font-weight:500;font-family:var(--body)}
.student-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:10px;flex-wrap:wrap}
.student-info strong{display:block;font-size:13px}
.student-info small{display:block;color:var(--muted);font-size:11.5px;margin-top:2px}
.student-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.student-transfer{border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:11px;background:#fff;color:var(--ink);max-width:190px}
.student-add-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding-top:2px}
.student-add-row select{flex:1;min-width:200px;border:1px solid var(--line);border-radius:10px;padding:9px 11px;font-size:12.5px;background:#fff;color:var(--ink)}
@media(max-width:760px){.student-row{flex-direction:column;align-items:flex-start}.student-actions{width:100%;justify-content:space-between}}
.library-list{display:grid;gap:10px}
.library-item{display:flex;align-items:center;gap:14px;padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:inherit;text-decoration:none}
.library-item:hover{border-color:var(--blue);background:#f6f9fe}
.library-item div{flex:1}
.library-item strong{display:block;font-size:13.5px;color:var(--ink)}
.library-item small{display:block;font-size:12px;color:var(--muted);margin-top:4px;line-height:1.45}
.library-item b{color:var(--blue);font-size:16px;flex:none}
.school-filters input,.school-filters select{border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:#fff;color:var(--ink);font-size:13px;font-family:var(--body)}
@media(max-width:760px){.school-filters{grid-template-columns:1fr}.schools-summary{grid-template-columns:repeat(2,1fr)}}
.post-admin{background:#fff8ea;border:1px solid var(--gold-soft);border-radius:14px;padding:14px!important;border-left:4px solid var(--gold)!important;border-top:1px solid var(--gold-soft)!important}
.post-admin .post-avatar{background:var(--gold);color:var(--navy-dark);font-size:16px}
.official-tag{display:inline-block;background:var(--gold);color:var(--navy-dark);font-size:9px;font-weight:900;letter-spacing:.05em;padding:2px 7px;border-radius:99px;vertical-align:middle;margin-left:4px}
.post footer{align-items:center}
.like-btn{background:none;display:flex;align-items:center;gap:5px;font-weight:800;font-size:12px;color:var(--muted)}
.like-btn .like-icon{font-size:14px}
.like-btn.liked{color:#c94b6a}
.like-btn:disabled{opacity:.6}
.bell-badge{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 4px;background:var(--red);color:#fff;border-radius:99px;font-size:10px;font-weight:800;margin-left:4px}
.admin-pending-list{display:grid;gap:10px}
.admin-pending-row{border:1px solid var(--line);border-radius:12px;padding:12px}
.admin-pending-top{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--muted);margin-bottom:6px}
.admin-pending-top strong{color:var(--ink);font-size:13px}
.admin-pending-row p{font-size:13px;line-height:1.5;margin:0 0 10px}
.admin-pending-actions{display:flex;gap:8px}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}
.stats-card{background:var(--surface);border:1px solid var(--line);border-radius:15px;text-align:center;padding:16px 8px}
.stats-card b{display:block;font-family:var(--display);font-size:24px;color:var(--blue)}
.stats-card small{display:block;font-size:11px;color:var(--muted);margin-top:5px}
.stats-card.warn b{color:var(--red)}
.stats-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:4px}
.dashboard-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:0 0 18px;padding:20px 22px;background:var(--navy-dark);color:#fff;border-radius:8px}
.dashboard-hero h2{font-family:var(--display);font-size:26px;margin:4px 0}.dashboard-hero p{margin:0;color:#cad7f2;font-size:13px;line-height:1.45}.dashboard-date{flex:none;color:#f8d574;font-size:11px;font-weight:800}
.dashboard-kpis{grid-template-columns:repeat(3,1fr)}.dashboard-kpis .stats-card{min-height:96px;display:grid;align-content:center}
.dashboard-charts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.dashboard-charts .card{min-width:0}
.dashboard-bars{display:grid;gap:10px;margin-top:16px}.dashboard-bar-row{display:grid;grid-template-columns:48px minmax(0,1fr) 28px;gap:8px;align-items:center;font-size:11px}.dashboard-bar-row>span{font-weight:800;color:var(--muted)}.dashboard-bar-row>div{height:10px;overflow:hidden;background:#e9edf5;border-radius:4px}.dashboard-bar-row i{display:block;height:100%;border-radius:4px;background:var(--blue)}.dashboard-bar-row b{text-align:right;color:var(--ink);font-size:11px}.level-chart .dashboard-bar-row i{background:var(--gold)}
.recent-users-card{margin-top:16px}.recent-users-table-wrap{overflow-x:auto;margin-top:14px}.recent-users-table{width:100%;min-width:810px;border-collapse:collapse;font-size:12px}.recent-users-table th{padding:9px 10px;background:#eef2fa;color:var(--blue);font-size:10px;text-align:left;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.recent-users-table td{padding:11px 10px;border-top:1px solid var(--line);color:var(--muted);white-space:nowrap}.recent-users-table td strong{color:var(--ink)}.recent-users-table tr:hover td{background:#f8faff}.recent-users-table tr.featured-user td{background:#fff0bc;border-top-color:#e7be43;color:#72530a}.recent-users-table tr.featured-user td strong{color:#5e4307}
@media(max-width:760px){.dashboard-hero{align-items:flex-start;flex-direction:column;padding:18px}.dashboard-kpis{grid-template-columns:repeat(2,1fr)}.dashboard-charts{grid-template-columns:1fr}.dashboard-date{align-self:flex-end}.dashboard-bar-row{grid-template-columns:43px minmax(0,1fr) 24px}}
.stats-mission-row{border-top:1px solid var(--line);padding:10px 0}
.stats-mission-row:first-child{border-top:0;padding-top:0}
.stats-mission-row strong{display:block;font-size:13px}
.stats-mission-row span{display:block;font-size:12px;font-weight:800;margin-top:3px}
.stats-mission-row.good span{color:var(--green)}
.stats-mission-row.bad span{color:var(--red)}
.stats-mission-row small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.stats-state-list{display:grid;gap:2px}
.stats-state-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:8px 0;font-size:13px}
.stats-state-row:first-child{border-top:0;padding-top:0}
.stats-state-row strong{color:var(--blue)}
@media(max-width:760px){.stats-grid{grid-template-columns:repeat(2,1fr)}.stats-columns{grid-template-columns:1fr}}
.welcome-characters{width:min(260px,72%)!important;height:180px;object-fit:contain;margin:16px 0 0!important;filter:none!important}.welcome-art img.wordmark,.welcome-art img[src^="/assets/logo-wordmark.png"]{width:min(330px,80%);height:auto;object-fit:contain;margin:22px 0;filter:none!important}
.audio-toggle{width:32px;height:32px;border-radius:50%;background:#edf2fc;color:var(--blue);font-size:16px}.audio-toggle:hover{background:#dce7fb}
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap');
.welcome-art img { filter: none !important; }
.brand img { filter: none !important; }









.side-profile .avatar,.header-avatar{overflow:visible!important}
.profile-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:16px}.avatar-customize-btn,.identity-edit-btn{position:static!important;transform:none!important;width:auto!important;height:auto!important;padding:9px 14px!important;border-radius:999px!important;background:#ffffff22!important;border:1px solid #ffffff66!important;color:#fff!important;font-size:11px!important;font-weight:800!important;white-space:nowrap;line-height:1.2}.avatar-customize-btn:hover,.identity-edit-btn:hover{background:#ffffff35!important;border-color:#fff!important}
.header-avatar{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;width:46px;height:46px}


.avatar-tabs{display:flex;gap:6px;overflow-x:auto;padding:4px 0 10px;margin-bottom:12px;border-bottom:1px solid var(--line);scrollbar-width:none}.avatar-tabs::-webkit-scrollbar{display:none}.avatar-tabs button{flex:0 0 auto;padding:9px 12px;border-radius:999px;background:#f0f2f5;color:var(--muted);font-size:11px;font-weight:800;white-space:nowrap}.avatar-tabs button.active{background:var(--blue);color:#fff}.studio-preview{flex:none}
.avatar-identity{display:inline-block;position:relative;width:52px;height:52px;overflow:visible}
.avatar-svg{display:block;width:100%;height:100%}
.identity-mascot{position:absolute;z-index:2;right:-8px;bottom:-4px;display:grid;place-items:center;width:22px;height:22px;border:2px solid var(--gold);border-radius:50%;background:#fff;font-size:13px}
.header-avatar{border-radius:14px!important}
.header-avatar .avatar-identity{width:40px;height:40px}
.header-avatar .identity-mascot{width:18px;height:18px;font-size:11px;right:-6px;bottom:-3px}
.side-profile .avatar{border-radius:12px}
.side-profile .avatar .avatar-identity{width:34px;height:34px}
.side-profile .avatar .identity-mascot{width:15px;height:15px;font-size:9px;right:-5px;bottom:-3px;border-width:1.5px}
.profile-avatar{overflow:visible;display:grid;place-items:center;position:relative;width:86px;height:86px;margin:34px auto 12px;border:4px solid var(--gold);background:var(--surface);border-radius:22px!important}
.profile-school-logo{display:block;width:84px;height:84px;object-fit:contain;margin:24px auto 0;padding:8px;background:var(--surface);border:2px solid var(--gold-soft);border-radius:18px}
.profile-school-logo+.profile-avatar{margin-top:14px}
.side-profile{flex-direction:column;align-items:center;text-align:center}
.side-school-logo{width:180px;height:60px;flex:none;object-fit:contain;padding:6px;background:#fff;border:2px solid var(--gold);border-radius:12px}
.profile-school-logo{width:180px;height:60px;aspect-ratio:3 / 1;border-radius:12px}
.school-heading-logo{width:64px;height:40px;aspect-ratio:8 / 5;border-radius:8px}
.school-logo-preview{width:180px;height:80px;aspect-ratio:9 / 4}
.profile-avatar .avatar-identity{width:78px;height:78px}
.profile-avatar .identity-mascot{width:28px;height:28px;font-size:16px;right:-10px;bottom:-4px}
.avatar-3d-preview .avatar-svg-full{height:100%;width:auto;filter:drop-shadow(0 13px 8px #102b6830)}

.mascot-side{position:absolute;left:calc(50% - 148px);bottom:35px;display:grid;justify-items:center;gap:4px;font-size:42px;z-index:6;animation:float-mascot 2.8s ease-in-out infinite}.mascot-side small{font-size:10px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.08em}.mascot-side span{display:grid;place-items:center;width:68px;height:68px;border-radius:20px;background:#fff;border:2px solid var(--gold);box-shadow:0 8px 18px #102b6820}@keyframes float-mascot{50%{transform:translateY(-6px)}}
.mascot-side{left:auto;right:calc(50% - 155px);bottom:43px;z-index:1;opacity:.96;transform:scale(1.12)}
@media(max-width:760px){.mascot-side{right:calc(50% - 132px);transform:scale(.95)}.avatar-3d-preview{height:215px}}
.identity-edit-btn{position:absolute;right:18px;bottom:20px;background:#ffffff22;color:#fff;border:1px solid #ffffff55;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:800}.identity-modal{display:grid;gap:12px}.identity-modal h2{font-family:var(--display);font-size:28px;margin:6px 0}.identity-modal p{color:var(--muted);font-size:13px;line-height:1.5}.identity-modal label{font-size:12px;font-weight:800}.identity-modal input{display:block;width:100%;margin-top:6px;padding:12px;border:1px solid var(--line);border-radius:10px}.identity-modal small{display:block;color:var(--muted);font-size:11px;margin-top:5px;font-weight:400}
.piece-swatch.face{font-size:10px;letter-spacing:-2px}.piece-swatch.mascot{font-size:20px;background:#fff4d2}.piece-swatch.gender{font-size:21px;background:#e8eefb}.piece-swatch.hair{font-size:20px}.piece-swatch.hat{font-size:20px;background:#fff0bf}.piece-swatch.accessory{font-size:18px}.piece-swatch.shirt.navy{background:#183f8c}.piece-swatch.shirt.green{background:#388e68}.piece-swatch.shirt.red{background:#c84b4b}.piece-swatch.shirt.gold{background:#e4a928}.piece-swatch.shirt.purple{background:#7950a5}.piece-swatch.pants.denim{background:#2d5d98}.piece-swatch.pants.black{background:#252837}.piece-swatch.pants.green{background:#388e68}.piece-swatch.pants.shorts{background:#e0a85a}.piece-swatch.pants.white{background:#e9edf4}.piece-swatch.shoes.white{background:#fff}.piece-swatch.shoes.red{background:#c84b4b}.piece-swatch.shoes.yellow{background:#f2b733}.piece-swatch.shoes.black{background:#202333}.piece-swatch.shoes.blue{background:#3272c7}.piece-swatch.skin{border:1px solid var(--line)}.piece-swatch.skin.porcelana{background:#ffe3c7}.piece-swatch.skin.claro{background:#f4c9a0}.piece-swatch.skin.medio{background:#dba070}.piece-swatch.skin.dourado{background:#c98a53}.piece-swatch.skin.moreno{background:#9c6440}.piece-swatch.skin.escuro{background:#6b4028}.piece-swatch.hairColor{font-size:15px}.piece-swatch.hairColor.preto{background:#241c2a}.piece-swatch.hairColor.castanho-escuro{background:#4a2f1c}.piece-swatch.hairColor.castanho{background:#6b4326}.piece-swatch.hairColor.loiro{background:#d9a441}.piece-swatch.hairColor.ruivo{background:#a8532b}.piece-swatch.hairColor.grisalho{background:#c7c7cd}.piece-swatch.hairColor.rosa{background:#e25d9a}.piece-swatch.hairColor.azul{background:#3f7fd1}


.avatar-studio{max-width:720px}.studio-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.studio-head h2{font-family:var(--display);font-size:29px;margin:9px 0 4px}.studio-head p{color:var(--muted);font-size:13px}.avatar-3d-preview{height:230px;margin:12px auto 24px;display:grid;place-items:end center;position:relative;background:linear-gradient(145deg,#eaf0fb,#fff8df);border-radius:20px;overflow:hidden}.avatar-shadow{position:absolute;bottom:19px;width:150px;height:24px;border-radius:50%;background:#102b6830;filter:blur(4px)}.studio-controls{display:grid;gap:16px;max-height:330px;overflow:auto;padding-right:4px}.studio-controls h3{font-size:13px;margin:0 0 8px}.avatar-options{display:flex;gap:7px;flex-wrap:wrap}.avatar-option{display:grid;justify-items:center;gap:4px;min-width:66px;background:#fff;border:1px solid var(--line);border-radius:11px;padding:7px 5px;color:var(--ink)}.avatar-option:hover{border-color:var(--blue);background:#f1f5fd}.avatar-option.locked{opacity:.45}.avatar-option small{font-size:10px;white-space:nowrap}.piece-swatch{width:31px;height:25px;border-radius:8px;display:grid;place-items:center;background:#eaf0fb;color:var(--blue);font-size:13px}.piece-swatch.shirt{background:#183f8c}.piece-swatch.pants{background:#2d5d98}.piece-swatch.shoes{background:#fff;border:1px solid var(--line)}
:root{--navy:#102b68;--navy-dark:#081b48;--blue:#2955a7;--gold:#f2b733;--gold-soft:#fff1c9;--paper:#f8f6f0;--surface:#fff;--ink:#18233d;--muted:#69738b;--line:#e6e3db;--green:#4d9a63;--red:#b4492c;--shadow:0 16px 36px #13244d12;--radius:18px;--display:'Fraunces',Georgia,serif;--body:'DM Sans',sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:15px}body{overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:default}.app-shell{min-height:100vh}.app-frame{display:flex;min-height:100vh}.sidebar{background:var(--navy-dark);color:#fff;width:260px;padding:30px 18px 22px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0}.brand{display:block;padding:6px 12px 34px}.brand img{width:180px;height:58px;object-fit:contain;object-position:left center;filter:brightness(0) invert(1)}.side-profile{display:flex;align-items:center;gap:10px;padding:14px 12px;background:#ffffff12;border:1px solid #ffffff14;border-radius:14px;margin-bottom:28px}.avatar,.post-avatar,.rank-avatar{display:grid;place-items:center;border-radius:50%;flex:none}.avatar{width:42px;height:42px;background:#fff;font-size:23px}.side-profile strong,.side-profile small{display:block}.side-profile strong{font-size:14px}.side-profile small{font-size:11px;color:#b9c8eb;margin-top:3px}.side-nav{display:grid;gap:6px}.nav-item{background:transparent;color:#b8c6e6;border-radius:12px;text-align:left;padding:13px 14px;display:flex;gap:11px;align-items:center;font-weight:600;transition:.2s}.nav-item span{width:22px;text-align:center;font-size:20px}.nav-item:hover,.nav-item.active{background:#ffffff16;color:#fff}.nav-item.active{box-shadow:inset 3px 0 var(--gold)}.side-foot{margin-top:auto;display:grid;gap:14px;color:#e9c95c}.streak{font-size:13px;font-weight:700;padding:0 12px}.quiet-btn{background:#ffffff0c;color:#c5d0eb;border:1px solid #ffffff22;border-radius:10px;padding:10px;font-size:12px}.main-content{margin-left:260px;width:calc(100% - 260px);max-width:1120px;padding:46px clamp(28px,6vw,84px) 70px}.bottom-nav{display:none}.page-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:34px}.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:700;color:var(--blue)}h1,h2,h3,p{margin:0}.page-head h1{font-family:var(--display);font-size:clamp(31px,4vw,46px);line-height:1.05;color:var(--navy-dark);margin-top:12px}.page-head p{color:var(--muted);margin-top:10px}.hero-progress{background:linear-gradient(130deg,var(--navy-dark),var(--blue));color:#fff;border-radius:var(--radius);padding:24px 26px;box-shadow:var(--shadow);margin-bottom:46px}.hero-copy{display:flex;align-items:center;gap:13px}.hero-copy .star-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;color:var(--navy-dark);background:var(--gold);font-size:25px}.hero-copy small,.hero-copy strong,.hero-copy span{display:block}.hero-copy small{font-weight:700;color:#c5d3f4}.hero-copy strong{font-family:var(--display);font-size:25px;margin:3px 0}.hero-copy span{font-size:12px;color:#c5d3f4}.xp-track,.profile-track,.mini-track{height:9px;border-radius:99px;background:#07183f66;overflow:hidden}.xp-track{margin-top:20px}.xp-track i,.profile-track i,.mini-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gold),#ffe09a)}.section-title,.card-title{display:flex;align-items:end;justify-content:space-between;gap:15px}.section-title{margin-bottom:15px}.section-title h2{font-family:var(--display);font-size:29px;margin-top:7px}.streak-chip,.count,.tag{font-size:11px;font-weight:700}.streak-chip{background:var(--gold-soft);color:#8b6517;padding:8px 12px;border-radius:99px}.mission-list{display:grid;gap:10px;margin-bottom:23px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:0 5px 15px #14244d06;margin-bottom:18px}.mission{padding:0;overflow:hidden}.mission-button{display:grid;grid-template-columns:52px 1fr auto 20px;gap:14px;align-items:center;width:100%;background:none;text-align:left;padding:15px}.mission-button:hover{background:#f5f7fc}.mission-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:15px;background:#eaf0fb;font-size:26px;color:var(--green);font-weight:800}.done-card .mission-icon{background:#e4f3e6}.mission-info strong,.mission-info small{display:block}.mission-info strong{font-size:15px}.mission-info strong.done{color:#788192;text-decoration:line-through}.mission-info small{font-size:12px;color:var(--muted);margin-top:4px}.mission-info em{background:var(--gold-soft);color:#8b6517;font-style:normal;padding:3px 7px;border-radius:99px;margin-left:4px;font-size:10px}.mission-xp{font-weight:800;color:var(--blue);text-align:right}.mission-xp small{display:block;color:#9ca4b4;font-size:10px}.chevron{font-size:20px;color:#94a0b6}.alert-banner{width:100%;display:flex;align-items:center;gap:13px;padding:16px;border:1px solid #edc9b8;border-radius:var(--radius);background:#fff0e9;color:#7d331d;text-align:left}.alert-banner>span:nth-child(2){flex:1}.alert-banner strong,.alert-banner small{display:block}.alert-banner small{font-size:12px;margin-top:3px}.alert-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:#f5d0bd;font-weight:900}.alert-banner>b{font-size:20px}.card-title{align-items:center;margin-bottom:19px;font-weight:800}.outline-btn,.text-btn{background:#fff;border:1px solid var(--line);border-radius:99px;padding:8px 12px;color:var(--blue);font-weight:700;font-size:12px}.text-btn{border:0;padding:0}.posts{display:grid;gap:12px}.post{border-top:1px solid var(--line);padding-top:15px}.post:first-child{border-top:0;padding-top:0}.post-top{display:flex;align-items:center;gap:9px}.post-avatar,.rank-avatar{width:37px;height:37px;background:var(--blue);color:#fff;font-weight:800}.post-top strong,.post-top small{display:block}.post-top strong{font-size:13px}.post-top strong span{color:var(--gold)}.post-top small{font-size:11px;color:var(--muted);margin-top:2px}.post-top em{margin-left:auto;background:var(--gold-soft);color:#816019;padding:5px 8px;border-radius:99px;font-size:10px;font-style:normal;font-weight:800}.post p{font-size:14px;line-height:1.55;margin:12px 0}.post footer{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.post footer span:first-child,.tag{color:var(--blue);background:#eef3fc;border-radius:99px;padding:5px 9px}.ranking{display:grid;gap:9px}.ranking>div{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);padding-top:10px}.ranking>div:first-child{border-top:0;padding-top:0}.ranking>div>b{width:18px;color:var(--muted);text-align:center}.ranking strong{font-size:13px}.ranking small{color:var(--muted);font-size:11px}.ranking em{margin-left:auto;font-style:normal;font-size:12px;font-weight:800;color:var(--blue)}.alert-card h3{font-family:var(--display);font-size:22px;margin:14px 0 7px}.alert-card p{font-size:14px;line-height:1.55;color:#4c5569;margin-bottom:14px}.alert-head{display:flex;justify-content:space-between;align-items:center}.alert-head small{color:var(--muted);font-size:11px}.severity{font-size:10px;text-transform:uppercase;font-weight:800}.severity.alta{color:var(--red)}.severity.media{color:#a1741b}.severity.baixa{color:var(--blue)}.alert-card.alta{border-left:4px solid var(--red)}.alert-card.media{border-left:4px solid #c69a32}.alert-card.baixa{border-left:4px solid var(--blue)}.trail-list{display:grid;gap:14px}.trail{display:grid;grid-template-columns:44px 1fr 20px;gap:12px;align-items:center}.trail>span{display:grid;place-items:center;background:#edf2fb;border-radius:12px;height:44px;font-size:22px}.trail strong,.trail small{display:block}.trail strong{font-size:14px}.trail small{font-size:11px;color:var(--muted);margin:4px 0 7px}.mini-track{height:6px;background:#e9e7e0}.mini-track i{background:var(--blue)}.trail>b{color:var(--muted)}.profile-hero{background:linear-gradient(155deg,var(--navy-dark),var(--blue));color:#fff;border-radius:0 0 28px 28px;margin:-46px calc(-1 * clamp(28px,6vw,84px)) 0;padding:27px clamp(28px,6vw,84px) 28px;position:relative}.back-btn,.settings-btn{position:absolute;background:#ffffff18;color:#fff;border-radius:50%;width:36px;height:36px;font-size:20px}.back-btn{left:clamp(28px,6vw,84px)}.settings-btn{right:clamp(28px,6vw,84px)}.profile-hero h1{text-align:center;font-family:var(--display);font-size:28px}.profile-hero>span{display:block;text-align:center;color:#c8d6f5;margin:5px}.profile-track{margin-top:22px}.profile-xp{display:flex;justify-content:space-between;margin-top:8px;font-size:11px}.profile-xp small{color:#c8d6f5}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.stat-grid>div{background:#fff;border:1px solid var(--line);border-radius:15px;text-align:center;padding:15px 5px}.stat-grid b,.stat-grid small{display:block}.stat-grid b{font-family:var(--display);font-size:21px;color:var(--blue)}.stat-grid small{font-size:11px;color:var(--muted);margin-top:4px}.ladder{display:grid;gap:9px}.ladder-row{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding:9px 0;color:#a5adba}.ladder-row:first-child{border-top:0}.ladder-row>span{display:grid;place-items:center;position:relative;width:44px;height:44px;flex:none}.ladder-row.reached{color:var(--ink)}.ladder-row.current>span{outline:3px solid #d9e4fb;outline-offset:3px;border-radius:14px}.ladder-row strong{font-size:13px}.ladder-row small{margin-left:auto;font-size:11px;color:var(--blue)}.welcome{min-height:100vh;display:grid;grid-template-columns:minmax(280px,1fr) minmax(340px,460px);background:var(--navy-dark)}.welcome-art{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:50px;color:#fff;background:radial-gradient(circle at 50% 15%,#345db1 0,#102b68 55%,#081b48 100%);overflow:hidden}.welcome-art:after{content:'✦  ✦  ✦';position:absolute;bottom:14%;font-size:24px;letter-spacing:30px;color:#ffffff35}.welcome-art img{width:min(330px,80%);filter:brightness(0) invert(1);margin:22px 0}.welcome-art p{text-align:center;font-family:var(--display);font-size:24px;line-height:1.25}.welcome-badge{font-size:10px;letter-spacing:.18em;color:var(--gold);font-weight:800}.spark{position:absolute;color:var(--gold);font-size:30px}.s1{top:22%;left:18%}.s2{right:16%;top:36%}.onboard-card{align-self:center;background:var(--paper);padding:clamp(26px,6vw,62px);min-height:100%;display:flex;flex-direction:column;justify-content:center}.onboard-card h1{font-family:var(--display);font-size:35px;line-height:1.08;color:var(--navy-dark);margin:13px 0 9px}.onboard-card>p{color:var(--muted);margin-bottom:30px}.onboard-card label{font-size:12px;font-weight:800;margin-bottom:17px;color:var(--ink)}.onboard-card input,.onboard-card select,.post-dialog textarea{display:block;width:100%;border:1px solid var(--line);border-radius:12px;padding:13px;margin-top:7px;background:#fff;color:var(--ink);outline:0}.onboard-card input:focus,.onboard-card select:focus,.post-dialog textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2955a715}.avatar-pick>span{font-size:12px;font-weight:800}.avatar-pick>div{display:flex;gap:8px;margin:9px 0 28px}.avatar-choice{width:43px;height:43px;border-radius:50%;background:#fff;border:1px solid var(--line);font-size:23px}.avatar-choice.chosen{border:3px solid var(--gold);background:var(--gold-soft)}.primary-btn{width:100%;display:flex;justify-content:space-between;align-items:center;background:var(--gold);color:var(--navy-dark);border-radius:12px;padding:15px 17px;font-weight:800;box-shadow:0 8px 16px #c58b1b22}.primary-btn:hover{background:#ffd36c}.primary-btn:disabled{opacity:.45}.primary-btn span{font-size:20px}.modal-layer{position:fixed;z-index:20;inset:0;background:#071638b8;display:grid;place-items:center;padding:18px}.quiz-modal{width:min(100%,560px);max-height:calc(100vh - 36px);overflow:auto;background:var(--paper);border-radius:24px;padding:26px;box-shadow:0 25px 70px #0005;position:relative}.quiz-top{display:grid;grid-template-columns:32px 1fr 40px;gap:12px;align-items:center;margin-bottom:32px}.close-modal{background:#e7e8e9;color:var(--ink);border-radius:50%;width:30px;height:30px;font-size:22px;line-height:1}.quiz-progress{height:7px;background:#e4e3dc;border-radius:99px;overflow:hidden}.quiz-progress i{display:block;height:100%;background:var(--green);border-radius:inherit}.quiz-top>span{text-align:right;color:#a56825;font-size:12px;font-weight:800}.quiz-modal h2{font-family:var(--display);font-size:29px;line-height:1.18;margin:12px 0}.quiz-hint{color:var(--muted);margin:0 0 22px}.options{display:grid;gap:9px;margin-bottom:18px}.option{display:flex;align-items:center;gap:12px;text-align:left;background:#fff;border:2px solid var(--line);border-radius:13px;padding:14px;color:var(--ink);font-weight:600}.option b{display:grid;place-items:center;border:2px solid var(--line);width:26px;height:26px;border-radius:50%;font-size:11px;color:var(--muted)}.option.selected{border-color:var(--blue);background:#edf2fc}.option.selected b{background:var(--blue);border-color:var(--blue);color:#fff}.result{text-align:center;padding:48px 28px}.result-star{display:grid;place-items:center;width:72px;height:72px;border-radius:22px;background:var(--gold);color:var(--navy-dark);font-size:43px;margin:0 auto 18px}.result h2{margin:13px 0 8px}.result p{color:var(--muted);margin-bottom:16px}.result>strong{display:block;color:var(--blue);font-family:var(--display);font-size:28px;margin-bottom:22px}.post-dialog{display:grid;gap:14px}.post-dialog h2{margin:0}.post-dialog .close-modal{position:absolute;right:18px;top:18px}.post-dialog textarea{resize:vertical}.loading-screen,.error-screen{min-height:100vh;display:grid;place-items:center;align-content:center;gap:18px;color:var(--muted);text-align:center}.loading-screen img{width:200px}.error-screen{padding:30px}.error-screen h1{font-family:var(--display);color:var(--navy-dark)}.error-icon{display:grid;place-items:center;width:55px;height:55px;background:#f2d5c6;color:var(--red);border-radius:50%;font-size:27px;font-weight:900}.error-screen .primary-btn{width:min(280px,100%)}.toast{position:fixed;z-index:40;right:22px;bottom:22px;background:var(--navy-dark);color:#fff;border-radius:12px;padding:13px 17px;box-shadow:var(--shadow);font-weight:700;font-size:13px;animation:rise .25s ease}.toast.error{background:var(--red)}@keyframes rise{from{transform:translateY(15px);opacity:0}to{transform:none;opacity:1}}
@media(max-width:760px){.sidebar{display:none}.main-content{margin:0;width:100%;padding:27px 18px 88px}.bottom-nav{position:fixed;z-index:10;display:flex;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);padding:7px 8px calc(7px + env(safe-area-inset-bottom));box-shadow:0 -8px 20px #14244d0b;overflow-x:auto}.bottom-nav .nav-item{flex:1 0 48px;display:grid;justify-items:center;gap:2px;text-align:center;padding:7px 2px;font-size:9px;color:var(--muted)}.bottom-nav [data-action="open-admin-menu"]{flex:0 0 54px;color:var(--blue);border-left:1px solid var(--line);margin-left:3px}.bottom-nav .nav-item span{font-size:17px}.bottom-nav .nav-item.active{color:var(--blue);box-shadow:none}.page-head{margin-bottom:28px}.page-head h1{font-size:35px}.hero-progress{margin-bottom:33px;padding:20px}.section-title h2{font-size:26px}.mission-button{grid-template-columns:45px 1fr auto;gap:11px;padding:12px}.mission-icon{width:45px;height:45px;font-size:22px}.chevron{display:none}.mission-xp{font-size:13px}.card{padding:17px}.profile-hero{margin:-27px -18px 0;padding:24px 18px 26px}.back-btn{left:18px}.settings-btn{right:18px}.welcome{display:block}.welcome-art{min-height:43vh;padding:35px 25px}.welcome-art img{width:220px;margin:18px 0}.welcome-art p{font-size:20px}.onboard-card{min-height:57vh;padding:30px 24px}.onboard-card h1{font-size:30px}.modal-layer{padding:0;align-items:end}.quiz-modal{border-radius:24px 24px 0 0;max-height:92vh;padding:23px 18px}.toast{left:18px;right:18px;bottom:76px;text-align:center}.trail{grid-template-columns:40px 1fr 18px}.trail>span{height:40px}}
@media(max-width:760px){.modal-layer:has(.admin-menu-modal){padding:12px;place-items:center}.admin-menu-modal{width:min(94vw,430px);max-width:none;max-height:92vh;overflow:auto;border-radius:18px!important;padding:28px 18px 20px!important}.admin-menu-modal h2{padding-right:30px;text-align:center}.admin-menu-list{gap:8px}.admin-menu-item{min-height:48px;padding:12px 13px}}

@media(max-width:760px){
	:root{--mobile-nav-height:calc(76px + env(safe-area-inset-bottom,0px))}
	.main-content{padding-bottom:calc(var(--mobile-nav-height) + 24px)}
	.bottom-nav{display:flex;justify-content:center;padding:12px max(10px,env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) max(10px,env(safe-area-inset-left,0px));overflow:visible;border:0;background:transparent;box-shadow:none;pointer-events:none}
	.mobile-menu-trigger{display:grid;place-items:center;flex:none;width:76px;height:52px;padding:0;border:1px solid #ded4ff;border-radius:999px;background:linear-gradient(180deg,#fff,#f7f4ff);color:#7950e8;box-shadow:0 5px 20px #6848bf26,0 1px 5px #6848bf12;touch-action:none;user-select:none;pointer-events:auto;transition:box-shadow .2s ease,background .2s ease}
	.mobile-menu-trigger:hover{background:#fff;box-shadow:0 6px 24px #6848bf38}
	.mobile-menu-trigger:active{background:#f0eaff}
	.mobile-menu-chevron{width:28px;height:28px;background:currentColor;mask:url('/assets/chevron-up.svg') center / contain no-repeat}
	.mobile-nav-sheet{pointer-events:auto}
	.mobile-menu-handle{display:block;width:42px;height:4px;flex:none;border-radius:999px;background:#a9b3c3}
	.mobile-nav-sheet{position:fixed;inset:auto 0 0;margin:0;width:100%;max-width:none;max-height:calc(100dvh - 24px);padding:0 16px calc(16px + env(safe-area-inset-bottom,0px));border:1px solid #e1e5ed;border-bottom:0;border-radius:8px 8px 0 0;background:#fff;color:var(--ink);box-shadow:0 -12px 40px #14244d24;overflow:hidden;transform:translateY(100%);transition:transform .28s cubic-bezier(.22,1,.36,1)}
	.mobile-nav-sheet[open]{display:flex;flex-direction:column}
	.mobile-nav-sheet.is-open{transform:translateY(0)}
	.mobile-nav-sheet::backdrop{background:#0b152b66;opacity:0;transition:opacity .28s ease}
	.mobile-nav-sheet.is-open::backdrop{opacity:var(--backdrop-opacity,1)}
	.mobile-nav-sheet.is-dragging,.mobile-nav-sheet.is-dragging::backdrop{transition:none}
	.mobile-sheet-drag{display:flex;align-items:center;justify-content:center;flex:none;width:100%;height:44px;padding:0;background:transparent;touch-action:none;user-select:none;cursor:grab}
	.mobile-sheet-drag:active{cursor:grabbing}
	.mobile-sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;flex:none}
	.mobile-sheet-heading h2{margin:0;font-family:var(--body);font-size:18px;line-height:1.4;letter-spacing:0}
	.mobile-sheet-close{width:44px;height:44px;flex:none;border:1px solid #e1e5ed;border-radius:50%;background:#f4f6fa;color:var(--ink);font-size:26px;line-height:1}
	.mobile-nav-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10.5em),1fr));gap:8px;min-height:0;padding:3px;overflow-y:auto;overscroll-behavior:contain;font-size:14px}
	.bottom-nav .nav-item{display:flex;align-items:center;justify-content:flex-start;gap:8px;min-width:0;min-height:44px;padding:8px 12px;border:1px solid #e1e5ed;border-radius:999px;background:#fff;color:var(--ink);font-size:14px;line-height:20px;letter-spacing:0;white-space:nowrap;overflow-wrap:normal;word-break:normal;box-shadow:none}
	.bottom-nav .nav-item span{flex:0 0 20px;width:20px;font-size:20px;line-height:1}
	.bottom-nav .nav-item:hover{background:#edf3ff;border-color:#c0cee7}
	.bottom-nav .nav-item.active{background:#174bb2;border-color:#174bb2;color:#fff;box-shadow:none}
	.bottom-nav .nav-item:focus-visible,.mobile-menu-trigger:focus-visible,.mobile-sheet-drag:focus-visible,.mobile-sheet-close:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
	.bottom-nav [data-action="open-admin-menu"]{grid-column:1/-1;margin:0;border:1px solid #e1e5ed;color:var(--blue)}
	.toast{bottom:calc(var(--mobile-nav-height) + 12px)}
}
html:has(.mobile-nav-sheet[open]){overflow:hidden}
@media(prefers-reduced-motion:reduce){.mobile-nav-sheet,.mobile-nav-sheet::backdrop{transition:none}}

/* Missao e questionario ocupam quase toda a viewport, com respiro vertical. */
.modal-layer:has(>.lesson-modal),.modal-layer:has(>.challenge-intro),.modal-layer:has(>.quiz-question){padding:24px 0;place-items:center}
.lesson-modal,.challenge-intro,.quiz-question{width:100%;max-width:none;min-height:calc(100vh - 48px);max-height:calc(100vh - 48px);padding:72px 8vw 34px;display:flex;flex-direction:column;justify-content:flex-start}
.lesson-modal .lesson-body,.challenge-intro p,.quiz-question .quiz-hint{max-width:760px;font-size:17px}
.lesson-modal h2,.challenge-intro h2,.quiz-question h2{font-size:clamp(28px,3vw,40px)}
.quiz-question .options{width:min(100%,760px);margin:12px auto 24px}
.quiz-question .confirm-answer{align-self:center;min-width:260px}
.quiz-question .confirm-answer.auto-advance{position:relative;overflow:hidden;background:#e7ad24;color:#18233d}
.quiz-question .confirm-answer.auto-advance .advance-label,.quiz-question .confirm-answer.auto-advance>span:not(.advance-bar){position:relative;z-index:1}
.quiz-question .confirm-answer .advance-bar{position:absolute;left:0;bottom:0;width:0;height:5px;background:#4d9a63;animation:advance-fill 5s linear forwards}
@keyframes advance-fill{to{width:100%}}
@media(max-width:760px){.lesson-modal,.challenge-intro,.quiz-question{min-height:calc(100vh - 48px);max-height:calc(100vh - 48px);padding:64px 24px 28px}}

.modal-layer:has(>.result){padding:24px 0;place-items:center}
.result{width:100%;max-width:none;min-height:calc(100vh - 48px);max-height:calc(100vh - 48px);padding:72px 24px 34px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-radius:24px}
.result>*{width:min(100%,760px)}
.result .result-mascot{width:112px;height:112px;display:grid;place-items:center;margin:0 auto 22px;border-radius:32px;background:var(--gold-soft);font-size:68px;line-height:1;box-shadow:0 12px 24px #f2b7333d;animation:mascot-smile 1.8s ease-in-out infinite}
.result h2{font-family:var(--display);font-size:clamp(28px,3vw,40px);line-height:1.15;margin:8px auto 14px}
.result p{font-size:18px;line-height:1.6;margin:0 auto 22px;max-width:620px}
.result>strong{font-size:24px;color:var(--green);margin-bottom:24px}
.result .primary-btn{width:min(360px,100%);min-height:62px;font-size:16px}
@keyframes mascot-smile{0%,100%{transform:translateY(0) rotate(-4deg) scale(1)}25%{transform:translateY(-8px) rotate(4deg) scale(1.08)}50%{transform:translateY(0) rotate(-2deg) scale(1.02)}75%{transform:translateY(-5px) rotate(3deg) scale(1.06)}}
@media(prefers-reduced-motion:reduce){.result .result-mascot{animation:none}}
@media(max-width:760px){.result{min-height:calc(100vh - 48px);max-height:calc(100vh - 48px);padding:64px 24px 28px}.result .result-mascot{width:92px;height:92px;font-size:56px}.result p{font-size:16px}.result .primary-btn{min-height:58px;font-size:15px}}

/* Controles do topo do conteudo educativo. */
.lesson-modal>.quiz-top,.challenge-intro>.quiz-top,.quiz-question>.quiz-top{width:100%;grid-template-columns:minmax(0,1fr) 46px;gap:16px;margin-bottom:28px}
.lesson-modal>.quiz-top .close-modal,.challenge-intro>.quiz-top .close-modal,.quiz-question>.quiz-top .close-modal{position:absolute;top:12px;right:16px;z-index:2}
.challenge-intro>.close-modal{position:absolute;top:12px;right:16px;z-index:2}
.lesson-modal>.quiz-top .lesson-dots,.lesson-modal>.quiz-top .quiz-progress,.quiz-question>.quiz-top .quiz-progress{grid-column:1;grid-row:1;width:100%;height:10px;align-self:center}
.lesson-modal>.quiz-top .audio-toggle,.challenge-intro>.quiz-top .audio-toggle,.quiz-question>.quiz-top .audio-toggle{grid-column:2;grid-row:1;width:44px;height:44px;padding:0;border:1px solid #c7d5ee;background:#edf2fc;color:var(--blue);font-size:20px;display:grid;place-items:center;box-shadow:0 4px 12px #14244d18}
.lesson-modal>.quiz-top .audio-toggle:hover,.challenge-intro>.quiz-top .audio-toggle:hover,.quiz-question>.quiz-top .audio-toggle:hover{background:#dce7fb;transform:translateY(-1px)}
@media(min-width:761px){
	.lesson-modal>.quiz-top,.challenge-intro>.quiz-top,.quiz-question>.quiz-top{width:min(100%,900px);align-self:center}
	.lesson-modal>h2,.lesson-modal>.lesson-body,.challenge-intro>h2,.challenge-intro>p,.quiz-question>h2,.quiz-question>.quiz-hint,.quiz-question>.options,.quiz-question>.answer-feedback{width:min(100%,900px);align-self:center}
	.lesson-modal>.lesson-body,.challenge-intro>p,.quiz-question>.quiz-hint{max-width:900px}
	.lesson-modal h2,.challenge-intro h2,.quiz-question h2{font-size:32px!important;line-height:1.15}
	.lesson-modal .lesson-icon,.challenge-intro .intro-badge{width:96px;height:96px;font-size:48px}
	.lesson-modal .lesson-body,.challenge-intro p,.quiz-question .quiz-hint{font-size:18px!important;line-height:1.6}
	.lesson-modal .primary-btn,.challenge-intro .primary-btn,.quiz-question .confirm-answer{width:360px;max-width:100%;min-height:62px;font-size:16px}
}

/* Licoes, desafio, feedback de resposta e modal de nivel */
.lesson-modal,.challenge-intro{text-align:center}
.lesson-dots{display:flex;gap:6px;justify-content:center;align-items:center}
.lesson-dots .dot{width:7px;height:7px;border-radius:50%;background:#e4e3dc;transition:background .2s,transform .2s}
.lesson-dots .dot.done{background:var(--green)}
.lesson-dots .dot.active{background:var(--blue);transform:scale(1.4)}
.lesson-modal .eyebrow,.challenge-intro .eyebrow{display:block;text-align:center;margin-top:8px}
.lesson-icon{width:84px;height:84px;margin:18px auto 8px;display:grid;place-items:center;font-size:42px;background:var(--gold-soft);border-radius:26px;box-shadow:0 10px 22px #f2b73333;animation:lesson-pop .5s cubic-bezier(.34,1.56,.64,1)}
.lesson-modal h2{font-family:var(--display);font-size:26px;margin:4px 0 14px}
.lesson-body{color:var(--ink);font-size:15px;line-height:1.6;max-width:440px;margin:0 auto 26px}
.lesson-modal .primary-btn,.challenge-intro .primary-btn{max-width:320px;margin:0 auto}
@keyframes lesson-pop{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
.intro-badge{width:92px;height:92px;margin:10px auto 12px;display:grid;place-items:center;font-size:44px;background:linear-gradient(155deg,var(--gold),#ffe09a);border-radius:50%;box-shadow:0 14px 30px #f2b73344;animation:intro-bounce 1.6s ease-in-out infinite}
.challenge-intro h2{font-family:var(--display);font-size:28px;margin:8px 0}
.challenge-intro p{color:var(--muted);max-width:380px;margin:0 auto 26px;line-height:1.55}
@keyframes intro-bounce{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(-4deg)}}
.option.correct{border-color:var(--green);background:#eaf7ee}
.option.correct b{background:var(--green);border-color:var(--green);color:#fff}
.option.wrong{border-color:var(--red);background:#fdeeea}
.option.wrong b{background:var(--red);border-color:var(--red);color:#fff}
.option:disabled{cursor:default}
.answer-feedback{border-radius:14px;padding:14px 16px;margin:-4px 0 18px;font-size:13px;line-height:1.55;animation:feedback-in .3s ease}
.answer-feedback strong{display:block;margin-bottom:4px;font-size:14px}
.answer-feedback.correct{background:#eaf7ee;color:#2d6c3d}
.answer-feedback.wrong{background:#fdeeea;color:#a33d28}
@keyframes feedback-in{from{transform:translateY(-6px);opacity:0}to{transform:none;opacity:1}}
.levelup-modal{text-align:center;padding:44px 28px 34px;position:relative;overflow:hidden}
.levelup-burst{position:absolute;inset:0;pointer-events:none}
.spark-bit{position:absolute;top:50%;left:50%;color:var(--gold);font-size:20px;opacity:0;animation:spark-fly 1.1s ease-out forwards}
.spark-bit.sb-0{--ang:0deg}.spark-bit.sb-1{--ang:36deg}.spark-bit.sb-2{--ang:72deg}.spark-bit.sb-3{--ang:108deg}.spark-bit.sb-4{--ang:144deg}.spark-bit.sb-5{--ang:180deg}.spark-bit.sb-6{--ang:216deg}.spark-bit.sb-7{--ang:252deg}.spark-bit.sb-8{--ang:288deg}.spark-bit.sb-9{--ang:324deg}
@keyframes spark-fly{0%{opacity:1;transform:translate(-50%,-50%) rotate(var(--ang,0deg)) translateY(0) scale(.4)}70%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) rotate(var(--ang,0deg)) translateY(-92px) scale(1)}}
.levelup-badge{width:108px;height:108px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(155deg,var(--gold),#ffe09a);box-shadow:0 16px 34px #f2b73355;position:relative;z-index:1;animation:badge-pop .6s cubic-bezier(.34,1.56,.64,1)}
.levelup-badge b{font-family:var(--display);font-size:46px;color:var(--navy-dark)}
@keyframes badge-pop{0%{transform:scale(0) rotate(-25deg)}60%{transform:scale(1.15) rotate(8deg)}100%{transform:scale(1) rotate(0)}}
.levelup-modal .eyebrow{position:relative;z-index:1;display:block;margin-bottom:6px}
.levelup-modal h2{font-family:var(--display);font-size:27px;margin:4px 0 10px;position:relative;z-index:1}
.levelup-modal p{color:var(--muted);max-width:380px;margin:0 auto 18px;line-height:1.55;position:relative;z-index:1}
.levelup-unlocks{position:relative;z-index:1;margin-bottom:22px}
.levelup-unlocks>span{display:block;font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
.unlock-chips{display:flex;flex-wrap:wrap;gap:7px;justify-content:center}
.unlock-chip{background:var(--gold-soft);color:#8b6517;padding:6px 12px;border-radius:99px;font-size:12px;font-weight:700}
.levelup-modal .primary-btn{max-width:320px;margin:0 auto;position:relative;z-index:1}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Auth mobile: a introdução ocupa a tela só na primeira entrada; o login fica compacto depois. */
.mobile-auth-splash{display:none}
@media(max-width:760px){
	.auth-screen .welcome-art{min-height:205px;padding:18px 24px 20px;display:flex;align-items:center;justify-content:center;gap:0}
	.auth-screen .welcome-art .welcome-badge,.auth-screen .welcome-art .welcome-characters,.auth-screen .welcome-art p{display:none}
	.auth-screen .welcome-art img:not(.welcome-characters){width:min(210px,72vw);margin:0}
	.auth-screen .auth-card{min-height:0;padding:26px 24px 34px}
	.auth-screen .auth-card h1{font-size:28px}
	.mobile-auth-splash{position:fixed;z-index:50;inset:0;display:flex;align-items:center;justify-content:center;background:var(--navy-dark);opacity:1;transform:translateY(0);transition:opacity .45s ease,transform .45s ease}
	.mobile-auth-splash.is-leaving{opacity:0;transform:translateY(-7%);pointer-events:none}
	.mobile-auth-splash .welcome-art{min-height:100%;width:100%;padding:54px 24px 42px;position:relative;display:flex;flex-direction:column;align-items:center;background:linear-gradient(165deg,var(--blue),var(--navy-dark))}
	.mobile-auth-splash .welcome-badge{display:block;position:absolute;top:54px}
	.mobile-auth-splash .splash-round-logo{position:absolute;top:50%;left:50%;display:block;width:min(230px,58vw);height:auto;margin:0;animation:splash-float 1.8s ease-in-out infinite}
	.mobile-auth-splash .splash-loading{position:absolute;bottom:42px;display:flex;align-items:center;gap:6px;color:#fff;font-size:14px;font-weight:800}
	.mobile-auth-splash .splash-loading i{width:6px;height:6px;border-radius:50%;background:var(--gold);animation:splash-dot 1.1s ease-in-out infinite}
	.mobile-auth-splash .splash-loading i:nth-of-type(2){animation-delay:.15s}
	.mobile-auth-splash .splash-loading i:nth-of-type(3){animation-delay:.3s}
}
@keyframes splash-float{0%,100%{transform:translate(-50%,-50%)}50%{transform:translate(-50%,calc(-50% - 12px))}}
@keyframes splash-dot{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}

.ladder{display:grid;gap:8px;margin-top:14px}
.ladder-row{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:12px;min-height:60px;padding:6px 8px}
.ladder-row strong{font-size:13px}
.ladder-row small{font-size:11px;color:var(--blue);font-weight:800}
.level-badge{position:relative;display:grid;place-items:center;width:48px;height:48px}
.level-badge img{display:block;width:100%;height:100%;object-fit:contain}
.level-badge.locked img{filter:grayscale(1) brightness(.18) contrast(1.25)}
.level-badge-lock{position:absolute;inset:0;display:grid;place-items:center;font-size:17px;filter:drop-shadow(0 1px 2px #000)}
.ladder-row.current{grid-template-columns:1fr;justify-items:center;text-align:center;gap:6px;margin:4px 0 12px;padding:22px 16px;background:var(--gold-soft);border:0;border-radius:14px}
.ladder-row.current .level-badge{width:144px;height:144px;outline:0;animation:current-badge-pulse 2.2s ease-in-out infinite}
.ladder-row.current strong{font-family:var(--display);font-size:21px;color:var(--navy-dark)}
@keyframes current-badge-pulse{0%,100%{transform:scale(1);filter:drop-shadow(0 0 7px #ffffffaa) drop-shadow(0 5px 10px #102b6877)}50%{transform:scale(1.16);filter:drop-shadow(0 0 13px #fff) drop-shadow(0 0 27px #ffffffcc) drop-shadow(0 12px 17px #102b6888)}}
@media(max-width:760px){.ladder-row.current .level-badge{width:126px;height:126px}}

.trail-scroll{padding:8px 0 12px}
.sheriff-trail{position:relative;width:min(100%,520px);aspect-ratio:1536/2688;margin:auto;overflow:hidden;background:#148bf0 url('/Artes/trilha/trilha_02.png') center/cover no-repeat;border-radius:8px}
.trail-stop{position:absolute;top:var(--stop-y);left:var(--stop-x);z-index:1;display:grid;justify-items:center;width:88px;transform:translate(-50%,-50%);color:#fff;text-align:center}
.trail-stop .level-badge{position:relative;z-index:1;width:64px;height:64px;filter:drop-shadow(0 3px 4px #0008)}
.trail-stop strong{display:none}
.trail-stop small{position:absolute;z-index:2;top:100%;margin-top:3px;width:max-content;max-width:118px;padding:3px 6px;border-radius:4px;background:#ffffffb8;color:var(--navy-dark);font-size:9px;font-weight:800;line-height:1.15;text-shadow:none}
.trail-stop.reached .level-badge{width:70px;height:70px}
.trail-stop.level-ten .level-badge{width:88px;height:88px}
.trail-stop.current{width:122px}
.trail-stop.current .level-badge{width:122px;height:122px;outline:0;animation:current-badge-pulse 2.2s ease-in-out infinite}
.trail-stop.level-ten.current .level-badge{width:142px;height:142px}
.trail-stop.current small{margin-top:6px;background:#ffffffe0;font-size:10px;color:var(--navy-dark)}
.trail-stop.locked{color:#a5adba}
.trail-stop.locked .level-badge img{filter:grayscale(1) brightness(.18) contrast(1.25)}
@media(max-width:760px){.trail-scroll{margin:0 -2px}.sheriff-trail{width:100%;border-radius:6px}.trail-stop{width:76px}.trail-stop .level-badge{width:58px;height:58px}.trail-stop.reached .level-badge{width:64px;height:64px}.trail-stop.level-ten .level-badge{width:78px;height:78px}.trail-stop.current .level-badge{width:108px;height:108px}.trail-stop.level-ten.current .level-badge{width:124px;height:124px}}

.games-hero{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:168px;margin-bottom:20px;padding:24px 32px;overflow:hidden;background:linear-gradient(125deg,var(--navy-dark),var(--blue));color:#fff;border-radius:8px}.games-hero h2{margin:5px 0 6px;font-family:var(--display);font-size:30px}.games-hero p{max-width:460px;margin:0;color:#d8e4fb;font-size:13px;line-height:1.55}.games-hero-art{position:relative;width:130px;height:130px;flex:none}.games-hero-art .avatar-svg{width:125px;height:125px;filter:drop-shadow(0 9px 7px #07132e88)}.games-hero-art>span{position:absolute;right:0;bottom:6px;display:grid;place-items:center;width:40px;height:40px;border:2px solid var(--gold);border-radius:50%;background:#fff;font-size:22px}.games-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.game-card{display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:13px;min-height:105px;padding:14px;text-align:left;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:8px;transition:transform .2s,box-shadow .2s}.game-card:hover{transform:translateY(-2px);box-shadow:0 12px 24px #102b6818}.game-card .game-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:8px;font-size:27px}.game-card strong,.game-card small{display:block}.game-card strong{font-size:14px}.game-card small{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.35}.game-card b{font-size:11px;color:var(--blue)}.game-card.gold .game-icon{background:#fff0c9}.game-card.blue .game-icon{background:#e5edfc}.game-card.green .game-icon{background:#e4f4ea}.game-card.red .game-icon{background:#fde9e5}.game-card.purple .game-icon{background:#eee7f6}.game-card.orange .game-icon{background:#ffeddd}.game-card.teal .game-icon{background:#e1f2f0}.game-card.navy .game-icon{background:#e4eafb}
.game-modal{max-width:520px;text-align:center}.game-modal h2{margin:8px 0;font-family:var(--display);font-size:27px}.game-modal p{color:var(--muted);font-size:13px;line-height:1.5}.word-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;max-width:350px;margin:20px auto}.word-grid button,.memory-grid button{display:grid;place-items:center;aspect-ratio:1;border:1px solid #dbe4f4;border-radius:5px;background:#eef2fa;color:var(--blue);font-size:12px;font-weight:900}.word-grid button.selected{background:var(--gold);border-color:#c99017;color:var(--navy-dark)}.word-grid button.found{background:var(--green);border-color:#347c4a;color:#fff}.word-targets,.password-parts{display:flex;flex-wrap:wrap;justify-content:center;gap:7px}.word-targets button,.password-parts button{padding:8px 11px;border-radius:6px;background:var(--gold-soft);color:var(--navy-dark);font-size:11px;font-weight:800}.word-targets button.active{background:var(--blue);color:#fff}.word-targets button.found{background:var(--green);color:#fff;text-decoration:line-through}.memory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:320px;margin:20px auto}.memory-grid button{border:1px solid var(--line);font-size:22px}.memory-grid button.open{background:#e6edfc}.memory-grid button.matched{background:#e6f5e9;color:var(--green)}.sort-item,.password-preview,.detective-message{margin:22px 0;padding:20px;border:1px solid var(--line);border-radius:8px;background:#f8f6f0;font-size:17px;font-weight:800;line-height:1.4}.sort-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sort-actions button{padding:16px 10px;border-radius:8px;font-weight:800}.sort-actions button:first-child{background:#e2f3e7;color:#23663a}.sort-actions button:last-child{background:#fde8e2;color:#9a3525}.password-preview{min-height:58px;color:var(--blue);word-break:break-all}.check-password,.check-crossword{margin:20px auto 0}.maze-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;max-width:280px;margin:20px auto}.maze-grid span{display:grid;place-items:center;aspect-ratio:1;border-radius:6px;background:#eef2fa;font-size:21px}.maze-grid .trap{background:#fde8e2}.maze-grid .goal{background:#e2f3e7}.maze-grid .player{background:var(--gold-soft)}.maze-controls{display:grid;grid-template-columns:repeat(3,52px);justify-content:center;gap:6px}.maze-controls button{height:48px;border-radius:7px;background:var(--blue);color:#fff;font-size:20px}.maze-controls button:first-child{grid-column:2}.detective-message{text-align:left;background:#fff7dd;color:var(--ink)}.detective-options{display:grid;gap:8px}.detective-options button{padding:12px;border:1px solid var(--line);border-radius:7px;background:#fff;text-align:left;font-size:12px}.crossword-answer{display:block;width:100%;max-width:290px;margin:22px auto 0;padding:13px;border:2px solid var(--blue);border-radius:7px;text-align:center;font-size:20px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.runner-lanes{display:flex;justify-content:center;gap:10px;margin:24px 0}.runner-lanes button{width:72px;height:88px;border-radius:8px;background:#e8eefb;font-size:31px}.game-finish{padding:20px 0}.game-finish>span{display:grid;place-items:center;width:78px;height:78px;margin:auto;border-radius:50%;background:var(--gold-soft);color:var(--gold);font-size:40px}.game-finish .primary-btn{margin:18px auto 0}
.game-modal:has(.runner-3d){max-width:680px;background:#f8f6f0}.runner-hud,.runner-records{display:flex;justify-content:space-between;gap:8px;margin:14px auto 8px;max-width:590px}.runner-records{margin-top:0}.runner-hud span,.runner-records span{padding:7px 10px;border:1px solid #d6e0f2;border-radius:6px;background:#fff;color:var(--muted);font-size:11px;font-weight:700}.runner-records span{background:#fff6d9;color:#80611c}.runner-hud b,.runner-records b{color:var(--blue)}.runner-3d{width:100%;height:340px;overflow:hidden;background:#83c8ee;border:3px solid var(--navy-dark);border-radius:8px;box-shadow:inset 0 0 0 1px #ffffff88,0 12px 24px #102b6824}.runner-3d canvas{display:block;width:100%;height:100%;touch-action:none}.runner-controls{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;max-width:330px;margin:14px auto 0}.runner-controls button{height:52px;border:2px solid #f8d574;border-radius:8px;background:var(--navy-dark);color:#fff;font-size:28px;font-weight:800}.runner-controls button:active{transform:scale(.96);background:var(--blue)}.new-record{margin:0 auto 14px;padding:10px 14px;border-radius:7px;background:var(--gold);color:var(--navy-dark);font-size:18px;font-weight:900;animation:new-record-pop .8s cubic-bezier(.2,1.5,.5,1) infinite alternate}.runner-ranking{display:grid;gap:6px;max-width:360px;margin:18px auto;padding:0;list-style:none;text-align:left}.runner-ranking li{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:12px}.runner-ranking li b{color:var(--blue)}.runner-ranking li em{font-size:11px;font-style:normal;color:var(--muted)}.runner-ranking .personal-score{border-color:#e4bf4b;background:#fff3ca}.runner-ranking .personal-score b{color:#90670c}@keyframes new-record-pop{from{transform:scale(.96) rotate(-1deg);box-shadow:0 0 0 #f2b73300}to{transform:scale(1.04) rotate(1deg);box-shadow:0 0 24px #f2b733aa}}
@media(max-width:760px){.games-hero{min-height:150px;padding:20px}.games-hero h2{font-size:25px}.games-hero-art{width:96px;height:106px}.games-hero-art .avatar-svg{width:96px;height:96px}.games-grid{grid-template-columns:1fr}.game-card{min-height:88px}.game-modal{max-height:90vh;overflow:auto}.game-modal h2{font-size:24px}}
@media(max-width:760px){.runner-3d{height:300px}.runner-hud{margin-top:12px}.runner-hud,.runner-records{font-size:10px}.runner-hud span,.runner-records span{padding:6px 7px}.game-modal:has(.runner-3d){padding:20px 14px}}

.runner-game-layer{padding:0;background:#75bdcb;z-index:1000;overflow:hidden}
.game-card.runner-featured{grid-column:1/-1;min-height:120px;border:2px solid #e3b744;background:linear-gradient(110deg,#184e54,#207667);color:#fff;box-shadow:0 5px 18px #173e4c18}
.game-card.runner-featured strong{font-family:var(--display);font-size:22px;line-height:1.15;letter-spacing:0}
.game-card.runner-featured small{color:#e2f1e8;font-size:12px}
.game-card.runner-featured b{color:#ffe292;font-size:13px}
.game-card.runner-featured .game-icon{position:relative;isolation:isolate;background:#ffdc76;color:#173b44;animation:runner-icon-stride 1.7s ease-in-out infinite}
.game-card.runner-featured .game-icon::after{content:"";position:absolute;left:-5px;top:16px;width:12px;height:3px;background:#9af5eb;box-shadow:-4px 9px 0 #9af5eb,0 18px 0 #9af5eb;z-index:-1}
@keyframes runner-icon-stride{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-4px) rotate(5deg)}}
@media(max-width:760px){.game-card.runner-featured{grid-template-columns:56px minmax(0,1fr) auto;gap:10px;padding:14px 12px}.game-card.runner-featured strong{font-size:19px}.game-card.runner-featured b{font-size:11px}}
@media(prefers-reduced-motion:reduce){.game-card.runner-featured .game-icon{animation:none}}
.runner-game-frame{display:block;width:100%;height:100%;height:100dvh;border:0;background:#75bdcb}
.runner-emergency-close{position:absolute;top:20px;right:24px;z-index:2;width:46px;height:46px;border:1px solid #ffffff70;border-radius:50%;background:#173e4c;color:white;font-size:24px;cursor:pointer}
.runner-emergency-close[hidden]{display:none}

/* Area do administrador */
.admin-missions-body{display:grid;grid-template-columns:minmax(248px,.72fr) minmax(0,1.7fr);gap:20px;align-items:start}
.push-notifications-body{max-width:720px}.push-audience{display:flex;align-items:baseline;gap:10px;padding:18px 0;border-bottom:1px solid var(--line)}.push-audience strong{font-family:var(--display);font-size:36px;color:var(--blue)}.push-audience span{color:var(--muted);font-size:13px}.push-status{padding:12px 14px;border-radius:9px;background:#eef3fc;color:var(--blue);font-size:12px}.push-notification-form{display:grid;gap:16px;margin-top:22px}.push-notification-form label{display:grid;gap:6px;font-size:12px;font-weight:800}.push-notification-form input,.push-notification-form textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:#fff;color:var(--ink);font:inherit}.push-notification-form textarea{resize:vertical}
.admin-mission-list-panel{position:sticky;top:24px;min-width:0;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 24px #14244d08}
.admin-page-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.admin-page-section-head h2{font-family:var(--display);font-size:22px;margin-top:5px}.admin-count{display:grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border-radius:99px;background:var(--gold-soft);color:#8b6517;font-size:12px;font-weight:800}
.mission-new-btn{margin-bottom:14px;padding:11px 13px;font-size:12px;box-shadow:none}.mission-new-btn span{font-size:18px}
.admin-mission-list{display:grid;gap:9px;max-height:calc(100vh - 245px);overflow:auto;padding-right:3px}
.admin-mission-row{display:grid;gap:12px;padding:12px;border:1px solid var(--line);border-radius:13px;background:#fbfaf6;transition:border-color .2s,background .2s}.admin-mission-row:hover{border-color:#b9c9e8;background:#f7f9fd}
.admin-mission-summary{display:flex;align-items:flex-start;gap:10px;min-width:0}.admin-mission-summary>div{min-width:0}.admin-mission-icon{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:11px;background:var(--gold-soft);font-size:19px}.admin-mission-summary strong{display:block;font-size:13px;line-height:1.25}.admin-mission-summary p{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.35}.admin-mission-summary small{display:block;margin-top:7px;color:var(--blue);font-size:10px;font-weight:800}.admin-mission-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.admin-mission-actions .outline-btn{padding:7px 10px;font-size:11px}
.mission-editor-host{min-width:0}.mission-editor-host .admin-modal{width:100%;max-width:none;max-height:none;overflow:visible;padding:26px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 24px #14244d08}.mission-editor-host .admin-modal .close-modal{border-radius:999px;width:auto;height:auto;padding:8px 11px;font-size:11px;font-weight:800}.mission-editor-host .admin-section{margin-top:24px;padding:20px 0 0}.mission-editor-host .admin-section:first-of-type{padding-top:0}.mission-editor-host .admin-lesson-card,.mission-editor-host .admin-question-card{background:#fbfaf6}.mission-editor-host .save-mission{position:sticky;bottom:18px;z-index:2;margin-top:24px;box-shadow:0 8px 20px #c58b1b44}
.text-btn.danger{color:var(--red)}
.primary-btn.danger{background:var(--red);color:#fff}
.primary-btn.danger:hover{background:#8f2f20}
.identity-edit-btn.danger{background:#c8492d33!important;border-color:#e8b39f88!important}
.identity-edit-btn.danger:hover{background:#c8492d55!important}

.password-checks{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin:-12px 0 16px;text-align:left}
.password-checks span{padding:5px 7px;border-radius:5px;background:#f1f2f5;color:var(--muted);font-size:10px;font-weight:800}
.password-checks span.ok{background:#e2f3e7;color:#23663a}
.game-xp-reward{display:inline-block;margin:2px 0 12px;padding:7px 13px;border-radius:6px;background:var(--gold-soft);color:#8b6517;font-size:14px}.crossword-clue{min-height:38px;padding:10px 12px;background:#eef2fa;border-radius:7px;color:var(--ink)!important;font-weight:700}.crossword-actions{display:flex;justify-content:center;gap:9px;margin-top:14px}.crossword-actions button{min-width:130px}
.admin-modal{max-width:760px}
.admin-modal .studio-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.admin-modal .studio-head h2{font-family:var(--display);font-size:26px;margin:9px 0 4px}
.admin-modal .studio-head p{color:var(--muted);font-size:13px}
.admin-section{margin:22px 0 0;padding-top:18px;border-top:1px solid var(--line)}
.admin-section:first-of-type{border-top:0;padding-top:0;margin-top:8px}
.admin-section h3{font-family:var(--display);font-size:17px;margin:0 0 12px}
.admin-section-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.admin-section-head h3{margin:0}
.admin-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.admin-modal label{display:block;font-size:12px;font-weight:800;margin-bottom:12px;color:var(--ink)}
.admin-modal input,.admin-modal textarea,.admin-modal select{display:block;width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-top:6px;background:#fff;color:var(--ink);font-size:13px;font-weight:500;font-family:var(--body)}
.admin-modal textarea{resize:vertical}
.icon-field{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.icon-field>span{font-size:12px;font-weight:800;flex:0 0 100%}
.icon-current{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:var(--gold-soft);font-size:19px;flex:none}
.icon-grid{display:flex;flex-wrap:wrap;gap:5px;max-height:96px;overflow:auto;flex:1;padding:2px;min-width:180px}
.icon-grid.small{max-height:72px}
.icon-choice{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:#f0f2f5;font-size:15px}
.icon-choice:hover{background:#e3e7ee}
.icon-choice.chosen{background:var(--blue);box-shadow:0 0 0 2px var(--blue)}
.admin-lesson-card,.admin-question-card{background:#fbfaf7;border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:12px}
.admin-lesson-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px}
.admin-lesson-top strong{font-size:13px}
.admin-question-card>strong{display:block;margin-bottom:10px;font-size:13px}
.admin-options{display:grid;gap:8px;margin:8px 0 14px}
.admin-option-row{display:flex!important;align-items:center;gap:8px;margin-bottom:0!important}
.admin-option-row input[type=radio]{width:16px;height:16px;flex:none;margin:0}
.admin-option-row b{width:16px;font-size:12px;color:var(--muted);flex:none}
.admin-option-row input:not([type=radio]){margin-top:0;flex:1}
.admin-modal .save-mission{margin-top:20px}
@media(max-width:760px){.admin-row{grid-template-columns:1fr}}
@media(max-width:980px){.admin-missions-body{grid-template-columns:1fr}.admin-mission-list-panel{position:static}.admin-mission-list{max-height:none;grid-template-columns:repeat(2,minmax(0,1fr))}.mission-editor-host .admin-modal{padding:22px}}
@media(max-width:620px){.admin-mission-list{grid-template-columns:1fr}.admin-mission-list-panel{padding:15px}.mission-editor-host .admin-modal{padding:18px 15px}.mission-editor-host .admin-modal .studio-head{display:block}.mission-editor-host .admin-modal .close-modal{margin-top:14px}.mission-editor-host .admin-modal .admin-section{padding-top:16px}.mission-editor-host .admin-modal .save-mission{position:static}}
.loading-screen .wordmark{display:block;width:min(260px,72vw);height:auto;max-width:100%;object-fit:contain;margin:0;filter:none;animation:loading-logo-wiggle 2.8s ease-in-out infinite;transform-origin:center;will-change:transform,filter}
@keyframes loading-logo-wiggle{0%,100%{transform:translateY(0) rotate(0deg) scale(1);filter:drop-shadow(0 0 0 transparent)}23%{transform:translateY(-5px) rotate(-1.5deg) scale(1.015);filter:drop-shadow(0 8px 12px #13244d20)}47%{transform:translateY(1px) rotate(1.2deg) scale(.99);filter:drop-shadow(0 3px 8px #f2b73338)}72%{transform:translateY(-3px) rotate(-.8deg) scale(1.01);filter:drop-shadow(0 6px 10px #13244d18)}}
@media(prefers-reduced-motion:reduce){.loading-screen .wordmark{animation:none}}
.loading-star{width:94px;height:94px;display:grid;place-items:center;perspective:260px;color:var(--gold);font-family:Georgia,serif;font-size:72px;line-height:1;text-shadow:0 8px 0 #c98d21,0 14px 18px #13244d2b;animation:loading-star-spin 2.4s ease-in-out infinite;transform-style:preserve-3d}
@keyframes loading-star-spin{0%,100%{transform:rotateX(0deg) rotateZ(0deg) scale(1)}50%{transform:rotateX(180deg) rotateZ(8deg) scale(.92)}}
@media(prefers-reduced-motion:reduce){.loading-star{animation:none}}
