.ai-settings-stack{gap:38px;display:grid}.ai-settings-group{min-width:0}.ai-settings-group+.ai-settings-group{padding-top:34px}.ai-settings-group-head{border-bottom:2px solid var(--color-text);justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:0;padding-bottom:0;display:flex}.ai-settings-group-head h3{color:var(--color-text);margin:0;padding-bottom:10px;font-size:18px;line-height:1.2}.ai-settings-group-body{border-top:0}.ai-settings-group-head p{color:var(--color-text-muted);margin:0;font-size:12.5px;line-height:1.55}.ai-settings-group-actions{flex:none;align-items:center;gap:10px;display:inline-flex}.ai-provider-table-head{grid-template-columns:minmax(220px,1.3fr) minmax(140px,.7fr) minmax(160px,.8fr);align-items:end;gap:16px;display:grid}.ai-provider-table-head>div:first-child{min-width:0}.ai-provider-table-labels{display:contents}.ai-provider-table-labels span{color:var(--color-text-muted);padding-bottom:10px;font-size:11px;font-weight:700}.ai-provider-table{display:grid}.ai-provider-table-row{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(220px,1.3fr) minmax(140px,.7fr) minmax(160px,.8fr);align-items:center;gap:16px;min-height:64px;padding:12px 0;display:grid}.ai-provider-table-row:last-child{border-bottom:0}.ai-provider-table-provider{gap:4px;min-width:0;display:grid}.ai-provider-table-provider strong{color:var(--color-text);font-size:13px}.ai-provider-table-provider span{color:var(--color-text-muted);font-size:11.5px}.ai-provider-table-connection,.ai-provider-table-billing{align-items:center;min-width:0;display:flex}.canva-scope-cell{gap:4px;min-width:0;display:grid}.canva-scope-cell strong{color:var(--color-text);font-size:12px}.canva-scope-cell span,.canva-scope-cell code{color:var(--color-text-muted);font-size:11.5px;line-height:1.45}.canva-scope-cell code{overflow-wrap:anywhere;font-family:inherit;font-size:10.5px}.ai-provider-connection-btn{min-height:40px;color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:inline-flex}.ai-provider-connection-btn code{color:var(--color-text-muted);font-family:var(--font-mono);font-size:11px}.ai-provider-connection-btn:hover code,.ai-provider-connection-btn:focus-visible code{color:var(--color-text)}.ai-provider-connection-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.ai-provider-status-dot{background:var(--color-text-faint);border-radius:50%;flex:none;width:8px;height:8px}.ai-provider-status-dot.is-on{background:var(--color-plant-active)}.ai-provider-status-dot.is-warn{background:var(--color-warning)}.ai-connect-modal{width:min(560px, var(--modal-max))}.ai-connect-modal .modal-body{gap:18px}.ai-connect-form{gap:16px;display:grid}.ai-connect-field{grid-template-columns:78px minmax(0,1fr);align-items:center;gap:14px;min-width:0;display:grid}.ai-connect-field>span{color:var(--color-text-muted);font-size:13px;font-weight:650}.ai-connect-field select,.ai-connect-field input{border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);width:100%;min-width:0;min-height:44px;color:var(--color-text);font:inherit;transition:border-color var(--t-normal), box-shadow var(--t-normal);outline:none;padding:10px 12px;font-size:13px}.ai-connect-field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23615d59' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.ai-connect-field select:focus,.ai-connect-field input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 16%, transparent)}.ai-connect-current{border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface-alt);gap:5px;padding:12px 14px;display:grid}.ai-connect-current>strong{color:var(--color-text);font-size:14px}.ai-connect-current>span{color:var(--color-text-muted);font-size:12px}.ai-provider-current{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:4px;font-size:11.5px;display:flex}.ai-provider-current code{font-family:var(--font-mono);font-size:11px}.ai-provider-current small{color:var(--color-text-faint);font-size:11px}.ai-provider-current.is-ok{color:var(--color-plant-active)}.ai-provider-current.is-warn{color:var(--color-warning)}.ai-connect-actions{align-items:center;margin-top:2px}.ai-connect-spacer{flex:auto}.ai-settings-inline-error{border:1px solid color-mix(in srgb, var(--color-danger) 35%, var(--color-border));border-radius:var(--radius-btn);background:color-mix(in srgb, var(--color-danger) 7%, var(--color-surface));color:var(--color-danger);margin:0;padding:10px 12px;font-size:12px;line-height:1.5}.ai-feature-group-head{grid-template-columns:minmax(180px,1.15fr) minmax(120px,.55fr) minmax(230px,1fr);align-items:end;gap:16px;display:grid}.ai-feature-group-head>div:first-child{min-width:0}.ai-feature-column-labels{display:contents}.ai-feature-column-labels span{color:var(--color-text-muted);padding-bottom:10px;font-size:11px;font-weight:700}.ai-feature-model-list{min-width:0}.ai-feature-model-row{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(180px,1.15fr) minmax(120px,.55fr) minmax(230px,1fr);align-items:center;gap:16px;padding:14px 0;display:grid}.ai-feature-model-row:last-child{border-bottom:0}.ai-feature-model-copy{gap:4px;min-width:0;display:grid}.ai-feature-model-copy strong{color:var(--color-text);font-size:13px}.ai-feature-model-copy span{color:var(--color-text-muted);font-size:11.5px;line-height:1.45}.ai-feature-select{min-width:0;display:block}.ai-feature-select select{border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);width:100%;height:44px;min-height:44px;color:var(--color-text);font:inherit;outline:none;padding:9px 11px;font-size:12.5px}.ai-feature-select select:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent) 18%, transparent)}@media (max-width:940px){.ai-provider-table-head,.ai-provider-table-row{grid-template-columns:minmax(180px,1.1fr) minmax(120px,.7fr) minmax(150px,.8fr)}.ai-feature-group-head,.ai-feature-model-row{grid-template-columns:minmax(180px,1fr) minmax(140px,.7fr) minmax(220px,1fr)}}@media (max-width:640px){.ai-provider-panel-head,.ai-settings-group-head{flex-direction:column;align-items:stretch}.ai-provider-table-head{justify-content:space-between;align-items:flex-end;display:flex}.ai-provider-table-labels{display:none}.ai-provider-table-row{grid-template-columns:1fr;align-items:start;gap:10px;padding:16px 0}.ai-provider-table-connection,.ai-provider-table-billing,.ai-provider-current{justify-content:flex-start}.ai-connect-field{grid-template-columns:1fr;align-items:stretch;gap:8px}.ai-connect-actions{flex-wrap:wrap}.ai-connect-spacer{display:none}.ai-provider-key-form{grid-template-columns:1fr;align-items:stretch}.ai-provider-key-form .settings-action-btn{justify-self:start}.ai-feature-group-head{justify-content:space-between;align-items:flex-end;display:flex}.ai-feature-column-labels{display:none}.ai-feature-model-row{grid-template-columns:1fr;gap:10px}.ai-feature-select select{width:100%}}

.login-page{background:#fff;justify-content:center;align-items:center;min-height:100vh;padding:24px 16px 40px;display:flex}.login-hub-card{width:100%;max-width:420px;box-shadow:none;text-align:center;background:0 0;border:0;border-radius:0;padding:24px 8px 0}.login-page-error{border:1px solid var(--color-danger);border-radius:var(--radius-btn);background:var(--color-status-returned-bg,#ffebee);max-width:420px;color:var(--color-status-returned-text,var(--color-danger));margin:16px auto 0;padding:10px 14px}.login-role-tabs{border-bottom:1px solid var(--color-border);align-items:stretch;width:100%;margin:28px 0 0;display:flex}.login-role-tab{min-width:0;min-height:44px;color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:1 1 0;margin-bottom:-1px;padding:10px 8px 12px;font-size:14px;font-weight:600;line-height:1.2;transition:color .15s,border-color .15s}.login-role-tab:hover,.login-role-tab:focus-visible{color:var(--color-text)}.login-role-tab:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.login-role-tab.is-active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:700}.login-role-panel{width:100%;box-shadow:none;text-align:center;background:0 0;border:0;flex-direction:column;align-items:center;gap:10px;margin-top:28px;padding:8px 4px 0;display:flex}.login-role-icon{color:var(--color-text);justify-content:center;align-items:center;margin-bottom:2px;display:inline-flex}.login-role-icon svg{width:48px;height:48px}.login-role-title{color:var(--color-text);font-size:20px;font-weight:700;line-height:1.25}.login-role-desc{color:var(--color-text-muted);min-height:0;font-size:14px;line-height:1.45}.login-role-cta{box-sizing:border-box;background:var(--color-accent);color:#fff;border-radius:var(--radius-btn);border:1px solid var(--color-accent);width:100%;min-height:44px;font-size:14px;font-weight:600;font-family:var(--font-body);cursor:pointer;text-align:center;box-shadow:var(--shadow-accent);transition:background var(--t-normal), border-color var(--t-normal), box-shadow var(--t-normal);justify-content:center;align-items:center;margin-top:4px;padding:10px 16px;text-decoration:none;display:inline-flex}.login-role-cta:hover{background:var(--color-accent-active);border-color:var(--color-accent-active);box-shadow:var(--shadow-accent-hover)}.login-role-cta:disabled{opacity:.45;cursor:not-allowed}.login-role-student-form{justify-items:stretch;gap:10px;width:100%;margin-top:8px;display:grid}.login-role-student-form .login-role-cta{margin-top:0}.login-role-code-input{border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);width:100%;min-height:48px;color:var(--color-text);font-family:var(--font-mono);text-align:center;text-transform:uppercase;transition:border-color var(--t-fast), box-shadow var(--t-fast);outline:none;font-size:18px;font-weight:700}.login-role-code-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #0075de26}.login-role-error{color:var(--color-danger);margin:0;font-size:13px;line-height:1.4}.login-role-oauth-actions{gap:10px;width:100%;margin-top:8px;display:grid}.login-inline-action{min-height:44px;color:var(--color-accent);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;font-weight:700;text-decoration:underline}.login-inline-action:hover{color:var(--color-accent-active)}.login-inline-action:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:8px}.login-password-form{gap:12px;width:100%;display:grid}.login-password-label{color:var(--color-text-muted);gap:6px;font-size:.875rem;font-weight:700;display:grid}.login-password-input{border:1px solid var(--color-border);background:var(--color-surface);width:100%;min-height:48px;color:var(--color-text);font:inherit;border-radius:12px;padding:0 14px}.login-password-input:focus{border-color:var(--color-accent);outline:2px solid color-mix(in srgb, var(--color-accent) 22%, transparent);outline-offset:1px}.login-password-switches{justify-items:center;gap:2px;display:grid}.login-role-oauth{box-sizing:border-box;border-radius:var(--radius-btn);border:1px solid var(--color-border);min-height:44px;font-size:14px;font-weight:600;font-family:var(--font-body);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:9px 20px;text-decoration:none;transition:background .1s,border-color .1s;display:inline-flex}.login-role-oauth:hover{border-color:var(--color-border-hover)}.login-role-oauth-google{background:var(--color-surface);color:var(--color-text)}.login-role-oauth-google:hover{background:var(--color-surface-alt)}.login-role-oauth-kakao{background:var(--color-oauth-kakao);color:#181600;border-color:var(--color-oauth-kakao)}.login-role-oauth-kakao:hover{background:#fada0a;border-color:#fada0a}.login-role-oauth-apple{color:#fff;background:#000;border-color:#000}.login-role-oauth-apple:hover{background:#1f1f1f;border-color:#1f1f1f}.login-reviewer-separator{width:100%;color:var(--color-text-muted);align-items:center;gap:8px;margin-top:10px;font-size:11px;display:flex}.login-reviewer-separator:before,.login-reviewer-separator:after{content:"";background:var(--color-border);flex:1;height:1px}.login-reviewer-form{gap:8px;width:100%;display:grid}.login-reviewer-label{text-align:left;color:var(--color-text-muted);gap:4px;font-size:11px;display:grid}.login-reviewer-input{border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);width:100%;min-height:40px;color:var(--color-text);font:inherit;outline:none;padding:0 10px;font-size:13px}.login-reviewer-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #0075de26}.login-reviewer-form .login-role-cta{margin-top:0}.login-logo{justify-content:center;margin:0 auto 16px;display:flex}.login-title{font-family:var(--font-display);letter-spacing:var(--font-display-tracking);color:var(--color-text);margin:0;font-size:28px;font-weight:700}.login-legal{flex-direction:column;gap:4px;margin-top:28px;display:flex}.login-consent{color:var(--color-text-muted);text-align:center;margin:0;font-size:12px;line-height:1.5}.login-legal-links{justify-content:center;align-items:center;gap:12px;display:flex}.login-legal-links a{min-height:44px;color:var(--color-accent);align-items:center;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.login-legal-links a:hover,.login-legal-links a:focus-visible{text-decoration:underline}.login-legal-divider{background:var(--color-border);width:1px;height:14px}
.login-card{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-card);width:100%;max-width:400px;box-shadow:var(--shadow-card);text-align:center;padding:48px 40px}.login-google-btn{border:1.5px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text);font-family:var(--font-body);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:10px;padding:12px 24px;font-size:15px;font-weight:600;transition:border-color .16s,background .16s,box-shadow .16s;display:inline-flex}.login-google-btn:hover{border-color:var(--color-border-hover);background:var(--color-bg);box-shadow:var(--shadow-lift)}.login-google-icon{flex-shrink:0}.login-divider{color:var(--color-text-faint);align-items:center;gap:16px;margin:28px 0;font-size:13px;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--color-border);flex:1;height:1px}.auth-header{align-items:center;gap:8px;display:inline-flex}.auth-avatar{object-fit:cover;border-radius:50%;flex:none;width:28px;height:28px;display:inline-flex}.auth-avatar-fallback{background:color-mix(in srgb, var(--color-accent) 14%, var(--color-surface));color:var(--color-accent-tinted-text);text-transform:uppercase;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:12.5px;font-weight:600;line-height:1}.auth-name{color:var(--color-text);font-size:13px;font-weight:500}.auth-profile-static,.auth-profile-trigger{align-items:center;gap:6px;min-width:0;min-height:44px;display:inline-flex}.auth-profile-menu{min-width:0}.auth-profile-trigger.auth-role-trigger{min-height:44px;padding:0}.auth-profile-trigger .auth-name,.auth-profile-static .auth-name{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.auth-profile-trigger:focus-visible{outline:2px solid var(--color-border-hover);outline-offset:3px;border-radius:6px}.auth-profile-menu[open] .auth-role-chevron{transform:rotate(180deg)}.auth-logout-btn{border:1px solid var(--color-border);background:var(--color-surface);width:44px;height:44px;color:var(--color-text-muted);border-radius:var(--radius-pill);cursor:pointer;justify-content:center;align-items:center;padding:0;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.auth-logout-btn:hover{border-color:var(--color-border-hover);background:var(--color-surface-alt);color:var(--color-text)}.auth-logout-btn:disabled{cursor:not-allowed;opacity:.55}.auth-role-menu{position:relative}.auth-role-trigger{min-height:32px;color:var(--color-text-muted);white-space:nowrap;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:4px 0;font-size:13px;font-weight:600;line-height:1;list-style:none;transition:color .15s;display:inline-flex}.auth-role-trigger-content{justify-content:center;align-items:center;gap:5px;min-height:32px;display:inline-flex}.auth-role-icon{color:currentColor;flex:0 0 17px;justify-content:center;align-items:center;width:17px;height:17px;display:inline-flex}.auth-role-icon>svg{width:17px;height:17px}.auth-role-chevron{flex:none}.auth-role-trigger::-webkit-details-marker{display:none}.auth-role-trigger:hover,.auth-role-trigger:focus-visible,.auth-role-menu[open] .auth-role-trigger{color:var(--color-text)}.auth-role-menu-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);min-width:124px;box-shadow:var(--shadow-card-hover);z-index:60;flex-direction:column;gap:2px;padding:5px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.auth-role-option{border-radius:var(--radius-btn);width:100%;min-height:34px;color:var(--color-text);font:inherit;text-align:left;white-space:nowrap;background:0 0;border:0;align-items:center;gap:8px;padding:7px 10px;font-size:13px;font-weight:500;text-decoration:none;display:flex}.auth-role-option-button{cursor:pointer}.auth-role-option-button:hover,.auth-role-option-button:focus-visible{background:var(--color-surface-alt)}.auth-role-option.is-current{color:var(--color-text-muted);cursor:default}.auth-role-option-button:disabled{cursor:wait;opacity:.65}.auth-logout-icon{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.auth-login-link{color:#fff;background:var(--color-accent);border-radius:var(--radius-pill);align-items:center;min-height:44px;padding:6px 16px;font-size:13px;font-weight:600;text-decoration:none;transition:background .15s,box-shadow .15s;display:inline-flex}.auth-login-link:hover{background:var(--color-accent-active);box-shadow:var(--shadow-accent)}
.auth-notify{position:relative}.auth-notify-trigger{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);width:44px;height:44px;color:var(--color-text-muted);cursor:pointer;justify-content:center;align-items:center;padding:0;font-size:14px;list-style:none;transition:border-color .15s,background .15s;display:inline-flex;position:relative}.auth-notify-trigger::-webkit-details-marker{display:none}.auth-notify-trigger:hover{border-color:var(--color-border-hover);background:var(--color-surface-alt)}.auth-notify[open] .auth-notify-trigger{border-color:var(--color-accent)}.auth-notify-badge{background:var(--color-danger);color:#fff;text-align:center;box-sizing:border-box;border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:2px;right:2px}.auth-notify-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);min-width:280px;max-width:340px;max-height:400px;box-shadow:var(--shadow-card-hover);z-index:60;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto}.auth-notify-header{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.4px;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px 6px;font-size:11px;font-weight:700;display:flex}.auth-notify-mark-all{color:var(--color-accent);cursor:pointer;font:inherit;background:0 0;border:0;padding:3px 0;font-size:11px;font-weight:700}.auth-notify-mark-all:hover,.auth-notify-mark-all:focus-visible{text-decoration:underline}.auth-notify-mark-all:disabled{cursor:wait;opacity:.65}.auth-notify-empty{color:var(--color-text-muted);text-align:center;padding:16px 12px;font-size:13px}.auth-notify-item{color:var(--color-text);border-radius:var(--radius-btn);padding:8px 12px;text-decoration:none;transition:background .12s;display:block}.auth-notify-item:hover{background:var(--color-surface-alt)}.auth-notify-item.is-read{opacity:.6}.auth-notify-item-title{font-size:13px;font-weight:600}.auth-notify-item-body{color:var(--color-text-muted);margin-top:3px;font-size:12px;line-height:1.35}.auth-notify-item-meta{color:var(--color-text-muted);margin-top:2px;font-size:12px}.auth-settings{text-decoration:none;display:inline-flex;position:relative}.auth-settings-trigger{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;justify-content:center;align-items:center;padding:0;font-size:16px;list-style:none;transition:border-color .15s,background .15s;display:inline-flex}.auth-settings-trigger::-webkit-details-marker{display:none}.auth-settings-trigger:hover{border-color:var(--color-border-hover);background:var(--color-surface-alt)}.auth-settings[open] .auth-settings-trigger,.auth-settings.is-active .auth-settings-trigger{border-color:var(--color-accent);color:var(--color-accent)}.auth-header-teacher .auth-notify-trigger,.auth-header-teacher .auth-settings-trigger,.auth-header-teacher .auth-logout-btn,.auth-header-flat .auth-notify-trigger,.auth-header-flat .auth-settings-trigger,.auth-header-flat .auth-logout-btn{box-shadow:none;background:0 0;border-color:#0000}.auth-header-flat .auth-settings-trigger{width:44px;height:44px}.auth-header-teacher .auth-notify-trigger:hover,.auth-header-teacher .auth-settings-trigger:hover,.auth-header-teacher .auth-logout-btn:hover,.auth-header-flat .auth-notify-trigger:hover,.auth-header-flat .auth-settings-trigger:hover,.auth-header-flat .auth-logout-btn:hover{color:var(--color-text);background:0 0;border-color:#0000}.auth-header-teacher .auth-notify[open] .auth-notify-trigger,.auth-header-teacher .auth-settings.is-active .auth-settings-trigger,.auth-header-flat .auth-notify[open] .auth-notify-trigger,.auth-header-flat .auth-settings.is-active .auth-settings-trigger{border-color:#0000}.auth-settings-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);min-width:220px;box-shadow:var(--shadow-card-hover);z-index:60;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.auth-settings-item{color:var(--color-text);border-radius:var(--radius-btn);align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:background .12s;display:flex}.auth-settings-item:hover{background:var(--color-surface-alt)}
.oauth-page{background:var(--color-bg);justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;display:flex}.oauth-card{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-card);width:100%;max-width:440px;box-shadow:var(--shadow-card);flex-direction:column;gap:20px;padding:32px 28px;display:flex}.oauth-header{align-items:center;gap:12px;display:flex}.oauth-app-icon{font-size:32px;line-height:1}.oauth-title{font-family:var(--font-display);color:var(--color-text);margin:0;font-size:19px;font-weight:700;line-height:1.35}.oauth-subtitle{color:var(--color-text-muted);margin:0;font-size:14px}.oauth-error-detail{background:var(--color-surface-alt);border-radius:var(--radius-btn);color:var(--color-text-muted);white-space:pre-wrap;word-break:break-all;margin:0;padding:12px;font-family:SF Mono,Fira Code,monospace;font-size:12px}.oauth-identity{background:var(--color-surface-alt);border-radius:var(--radius-btn);padding:12px 14px}.oauth-identity-label{color:var(--color-text-muted);margin-bottom:4px;font-size:12px}.oauth-identity-value{color:var(--color-text);font-size:14px;font-weight:600}.oauth-scopes{flex-direction:column;gap:8px;display:flex}.oauth-scopes-head{color:var(--color-text);margin:0;font-size:13px;font-weight:600}.oauth-scopes-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.oauth-scopes-list li{color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-btn);padding:8px 12px;font-size:13px}.oauth-scopes-note{color:var(--color-text-muted);margin:4px 0 0;font-size:12px;line-height:1.5}.oauth-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.oauth-btn{border-radius:var(--radius-btn);cursor:pointer;font-size:14px;font-weight:600;font-family:var(--font-body);border:1px solid #0000;justify-content:center;align-items:center;padding:10px 20px;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.oauth-btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.oauth-btn-primary:hover{background:var(--color-accent-active)}.oauth-btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.oauth-btn-secondary:hover{border-color:var(--color-border-hover);background:var(--color-surface-alt)}

.quiz-board{flex-direction:column;gap:20px;max-width:800px;margin:0 auto;padding:24px 16px;display:flex}.quiz-upload{border:2px dashed var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 24px;transition:border-color .15s,background .15s;display:flex}.quiz-upload:hover,.quiz-upload.drag-over{border-color:var(--color-accent);background:var(--color-accent-tinted-bg)}.quiz-upload-icon{font-size:40px}.quiz-upload-title{color:var(--color-text);font-size:16px;font-weight:600}.quiz-upload-hint{color:var(--color-text-faint);font-size:13px}.quiz-upload-or{color:var(--color-text-faint);margin:4px 0;font-size:12px}.quiz-text-input{width:100%;max-width:560px;min-height:100px;font-family:var(--font-body);border:1px solid var(--color-border);color:var(--color-text);background:var(--color-bg);resize:vertical;border-radius:8px;outline:none;padding:12px 14px;font-size:14px;transition:border-color .15s}.quiz-text-input:focus{border-color:var(--color-accent)}.quiz-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.quiz-btn{font-family:var(--font-body);cursor:pointer;border:none;border-radius:8px;padding:10px 24px;font-size:14px;font-weight:600;transition:background .16s,transform .1s}.quiz-btn:active{transform:scale(.97)}.quiz-btn:disabled{opacity:.5;cursor:not-allowed}.quiz-btn-primary{background:var(--color-accent);color:#fff}.quiz-btn-primary:hover:not(:disabled){background:var(--color-accent-active)}.quiz-btn-secondary{background:var(--color-surface-alt);color:var(--color-text);border:1px solid var(--color-border)}.quiz-btn-secondary:hover:not(:disabled){background:#00000014}.quiz-btn-danger{color:#fff;background:#e21b3c}.quiz-btn-danger:hover:not(:disabled){background:#c0162f}.quiz-btn-success{color:#fff;background:#26890c}.quiz-btn-success:hover:not(:disabled){background:#1e6e09}.quiz-room-code{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);flex-direction:column;align-items:center;gap:8px;padding:24px;display:flex}.quiz-room-code-label{color:var(--color-text-muted);letter-spacing:.5px;text-transform:uppercase;font-size:13px;font-weight:600}.quiz-room-code-value{letter-spacing:8px;color:var(--color-accent);font-size:48px;font-weight:800;font-family:var(--font-display);cursor:pointer;-webkit-user-select:all;user-select:all;transition:color .15s}.quiz-room-code-value:hover{color:var(--color-accent-active)}.quiz-room-code-copied{color:#26890c;min-height:18px;font-size:12px;font-weight:500}.quiz-room-code-url{color:var(--color-text-faint);word-break:break-all;font-size:12px}.quiz-qr-area{background:var(--color-surface-alt);width:120px;height:120px;color:var(--color-text-faint);border-radius:8px;justify-content:center;align-items:center;font-size:12px;display:flex}.quiz-info-card{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);flex-direction:column;gap:12px;padding:20px 24px;display:flex}.quiz-info-title{font-size:18px;font-weight:700;font-family:var(--font-display)}.quiz-info-meta{color:var(--color-text-muted);gap:16px;font-size:13px;display:flex}.quiz-status-badge{border-radius:var(--radius-pill);padding:4px 12px;font-size:12px;font-weight:600;display:inline-block}.quiz-status-waiting{background:var(--color-accent-tinted-bg);color:var(--color-accent)}.quiz-status-active{color:#26890c;background:#e6f9e6}.quiz-status-finished{color:var(--color-text-muted);background:#f5f5f5}.quiz-player-list{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-card);padding:16px 20px}.quiz-player-list-header{color:var(--color-text);justify-content:space-between;align-items:center;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}.quiz-player-count{color:var(--color-text-muted);font-size:12px;font-weight:400}.quiz-player-grid{flex-wrap:wrap;gap:8px;display:flex}.quiz-player-chip{background:var(--color-surface-alt);border-radius:var(--radius-pill);align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;display:flex}.quiz-player-score{color:var(--color-accent);font-size:11px;font-weight:700}.quiz-question{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);text-align:center;padding:28px 24px}.quiz-question-number{color:var(--color-text-muted);margin-bottom:12px;font-size:13px;font-weight:600}.quiz-question-text{font-size:20px;font-weight:700;font-family:var(--font-display);margin-bottom:20px;line-height:1.4}.quiz-distribution{flex-direction:column;gap:8px;margin-top:16px;display:flex}.quiz-dist-row{align-items:center;gap:10px;display:flex}.quiz-dist-label{color:#fff;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;font-weight:700;display:flex}.quiz-dist-bar-wrap{background:var(--color-surface-alt);border-radius:4px;flex:1;height:28px;position:relative;overflow:hidden}.quiz-dist-bar{border-radius:4px;min-width:2px;height:100%;transition:width .6s}.quiz-dist-bar.correct{outline:2px solid #0003}.quiz-dist-count{color:var(--color-text-muted);text-align:right;width:32px;font-size:13px;font-weight:600}.quiz-options{grid-template-columns:1fr 1fr;gap:12px;padding:16px;display:grid}.quiz-option-btn{border-radius:var(--radius-card);color:#fff;font-family:var(--font-body);cursor:pointer;text-align:center;border:none;justify-content:center;align-items:center;gap:10px;min-height:80px;padding:24px 16px;font-size:16px;font-weight:700;line-height:1.3;transition:transform .1s,opacity .15s;display:flex}.quiz-option-btn:hover:not(:disabled){transform:scale(1.02)}.quiz-option-btn:active:not(:disabled){transform:scale(.97)}.quiz-option-btn:disabled{opacity:.5;cursor:not-allowed}.quiz-option-btn.selected{outline-offset:-4px;outline:4px solid #fffc}.quiz-option-a{background:#e21b3c}.quiz-option-b{background:#1368ce}.quiz-option-c{background:#d89e00}.quiz-option-d{background:#26890c}.quiz-option-shape{flex-shrink:0;font-size:20px}.quiz-timer-bar{background:var(--color-surface-alt);border-radius:3px;width:100%;height:6px;margin-bottom:8px;overflow:hidden}.quiz-timer-fill{background:var(--color-accent);height:100%;animation:timerCountdown var(--timer-duration,30s) linear forwards;border-radius:3px;transition:background .3s}.quiz-timer-fill.warning{background:#d89e00}.quiz-timer-fill.danger{background:#e21b3c}@keyframes timerCountdown{0%{width:100%}to{width:0%}}.quiz-timer-text{color:var(--color-text-muted);text-align:center;margin-bottom:12px;font-size:14px;font-weight:700}.quiz-result{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:32px 24px;display:flex}.quiz-result-icon{font-size:56px}.quiz-result-text{font-size:24px;font-weight:800;font-family:var(--font-display)}.quiz-result-correct{color:#26890c}.quiz-result-wrong{color:#e21b3c}.quiz-result-points{color:var(--color-text-muted);font-size:16px;font-weight:600}.quiz-result-rank{color:var(--color-accent);font-size:14px;font-weight:500}.quiz-leaderboard{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:24px}.quiz-leaderboard-title{font-size:20px;font-weight:700;font-family:var(--font-display);text-align:center;margin-bottom:20px}.quiz-leaderboard-list{flex-direction:column;gap:6px;display:flex}.quiz-leaderboard-row{background:var(--color-surface-alt);border-radius:8px;align-items:center;gap:12px;padding:10px 14px;transition:background .15s;display:flex}.quiz-leaderboard-row:first-child{background:#fff8e1}.quiz-leaderboard-row:nth-child(2){background:#f0f0f0}.quiz-leaderboard-row:nth-child(3){background:#fbe9e7}.quiz-leaderboard-rank{width:28px;color:var(--color-text);text-align:center;font-size:16px;font-weight:800}.quiz-leaderboard-name{flex:1;font-size:15px;font-weight:600}.quiz-leaderboard-score{color:var(--color-accent);font-size:14px;font-weight:700}
.quiz-podium{justify-content:center;align-items:flex-end;gap:8px;padding:24px 0;display:flex}.quiz-podium-slot{flex-direction:column;align-items:center;gap:8px;display:flex}.quiz-podium-bar{color:#fff;border-radius:8px 8px 0 0;flex-direction:column;justify-content:flex-end;align-items:center;width:80px;padding:12px 8px;font-size:24px;font-weight:800;display:flex}.quiz-podium-bar-1{background:#fff;height:120px}.quiz-podium-bar-2{background:#fff;height:90px}.quiz-podium-bar-3{background:#fff;height:70px}.quiz-podium-name{color:var(--color-text);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:80px;font-size:14px;font-weight:600;overflow:hidden}.quiz-podium-score{color:var(--color-text-muted);font-size:12px;font-weight:500}.quiz-waiting{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:60vh;padding:24px;display:flex}.quiz-waiting-icon{font-size:48px;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.quiz-waiting-text{color:var(--color-text);font-size:18px;font-weight:600}.quiz-waiting-sub{color:var(--color-text-muted);font-size:14px}.quiz-join{flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:80vh;padding:24px;display:flex}.quiz-join-title{font-size:28px;font-weight:800;font-family:var(--font-display);letter-spacing:var(--font-display-tracking)}.quiz-join-form{flex-direction:column;gap:12px;width:100%;max-width:320px;display:flex}.quiz-join-input{font-family:var(--font-body);border:1px solid var(--color-border);color:var(--color-text);background:var(--color-surface);text-align:center;border-radius:8px;outline:none;padding:12px 16px;font-size:16px;transition:border-color .15s}.quiz-join-input:focus{border-color:var(--color-accent)}.quiz-join-input.code-input{letter-spacing:6px;font-size:24px;font-weight:700}.quiz-join-btn{background:var(--color-accent);color:#fff;font-family:var(--font-body);cursor:pointer;border:none;border-radius:8px;padding:14px 24px;font-size:16px;font-weight:700;transition:background .16s}.quiz-join-btn:hover:not(:disabled){background:var(--color-accent-active)}.quiz-join-btn:disabled{opacity:.5;cursor:not-allowed}.quiz-play{flex-direction:column;max-width:600px;min-height:100vh;margin:0 auto;padding:16px;display:flex}.quiz-play-header{justify-content:space-between;align-items:center;margin-bottom:12px;padding:8px 0;display:flex}.quiz-play-nickname{color:var(--color-text-muted);font-size:14px;font-weight:600}.quiz-play-score{color:var(--color-accent);font-size:14px;font-weight:700}.llm-settings-modal{width:440px}.llm-settings-modal .modal-body{gap:16px}.llm-settings-field{flex-direction:column;gap:6px;display:flex}.llm-settings-label{color:var(--color-text-muted);letter-spacing:.2px;font-size:12px;font-weight:600}@media (max-width:600px){.quiz-room-code-value{letter-spacing:4px;font-size:32px}.quiz-options{grid-template-columns:1fr;gap:8px}.quiz-option-btn{min-height:60px;padding:16px 12px;font-size:14px}.quiz-podium-bar{width:60px}.quiz-question-text{font-size:16px}}
.quiz-empty{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 16px;display:flex}.quiz-empty-icon{font-size:40px}.quiz-empty-title{color:var(--color-text-muted);font-size:15px}.quiz-empty-hint{color:var(--color-text-faint);font-size:13px}.quiz-modal{z-index:1001;background:var(--color-surface);border-radius:var(--radius-card);width:min(720px,100vw - 32px);max-height:calc(100vh - 48px);box-shadow:var(--shadow-card);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.quiz-report-modal{width:min(840px,100vw - 32px)}.quiz-modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.quiz-modal-title{margin:0;font-size:18px;font-weight:600}.quiz-modal-close{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;padding:4px 8px;font-size:24px;line-height:1}.quiz-modal-body{padding:20px;overflow:auto}.quiz-modal-tabs{border-bottom:1px solid var(--color-border);gap:0;margin-bottom:20px;display:flex}.quiz-modal-tab{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:12px 8px;font-size:14px}.quiz-modal-tab.is-active{color:var(--color-text);border-bottom-color:var(--color-accent);font-weight:600}.quiz-modal-label{color:var(--color-text-muted);margin:16px 0 6px;font-size:13px;display:block}.quiz-modal-file-row{align-items:center;gap:8px;margin-top:8px;display:flex}.quiz-modal-file-clear{color:var(--color-text-faint);cursor:pointer;background:0 0;border:none;font-size:12px}.quiz-modal-count{flex-direction:column;gap:8px;display:flex}.quiz-modal-count-row{align-items:center;gap:8px;font-size:14px;display:flex}.quiz-modal-count-input{border:1px solid var(--color-border);border-radius:var(--radius-btn);width:72px;padding:6px 8px}.quiz-modal-count-input:disabled{opacity:.5}.quiz-modal-count-hint{color:var(--color-text-faint);font-size:12px}.quiz-modal-actions{justify-content:flex-end;gap:8px;margin-top:24px;display:flex}.quiz-modal-error{background:var(--color-status-returned-bg);color:var(--color-status-returned-text);border-radius:var(--radius-btn);margin-top:12px;padding:8px 12px;font-size:13px}.segmented-control{border:1px solid var(--color-border);border-radius:var(--radius-btn);display:inline-flex;overflow:hidden}.segmented-control-item{background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;border:none;border-right:1px solid var(--color-border);padding:8px 16px;font-size:14px}.segmented-control-item:last-child{border-right:none}.segmented-control-item.is-active{background:var(--color-accent);color:#fff;font-weight:600}.segmented-control-item:disabled{cursor:not-allowed;opacity:.58}.quiz-library{flex-direction:column;gap:12px;display:flex}.quiz-library-list{border:1px solid var(--color-border);border-radius:var(--radius-card);max-height:320px;margin:0;padding:0;list-style:none;overflow:auto}.quiz-library-item{border-bottom:1px solid var(--color-border);cursor:pointer;align-items:center;gap:10px;padding:10px 12px;display:flex}.quiz-library-list>li:last-child>.quiz-library-item{border-bottom:none}.quiz-library-item.is-active{background:var(--color-accent-tinted-bg)}.quiz-library-item-main{flex:1;min-width:0}.quiz-library-item-title{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.quiz-library-item-meta{color:var(--color-text-muted);font-size:12px}.quiz-library-empty,.quiz-library-error{color:var(--color-text-muted);flex-direction:column;align-items:center;gap:8px;padding:32px 16px;display:flex}.quiz-library-empty-icon{font-size:36px}.quiz-library-more{align-self:center}.quiz-draft-editor{flex-direction:column;gap:12px;display:flex}.quiz-draft-editor-header{justify-content:space-between;align-items:center;gap:8px;padding-bottom:8px;display:flex}.quiz-draft-editor-title{text-align:center;color:var(--color-text-muted);flex:1;margin:0;font-size:14px;font-weight:600}.quiz-draft-editor-back{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;font-size:13px}.quiz-draft-editor-error{background:var(--color-status-returned-bg);color:var(--color-status-returned-text);border-radius:var(--radius-btn);padding:8px 12px;font-size:13px}.quiz-draft-editor-list{flex-direction:column;gap:12px;display:flex}.quiz-draft-question{border:1px solid var(--color-border);border-radius:var(--radius-card);flex-direction:column;gap:8px;padding:12px;display:flex}.quiz-draft-question.has-error{border-color:var(--color-danger);animation:.3s quiz-draft-shake}@keyframes quiz-draft-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.quiz-draft-question-head{justify-content:space-between;align-items:center;display:flex}.quiz-draft-question-num{color:var(--color-text-muted);font-size:13px;font-weight:600}.quiz-draft-question-delete{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;font-size:16px}.quiz-draft-question-delete:disabled{opacity:.3;cursor:not-allowed}.quiz-draft-input{border:1px solid var(--color-border);border-radius:var(--radius-btn);width:100%;font-size:14px;font-family:var(--font-body);padding:8px 10px}.quiz-draft-input:focus{outline:2px solid var(--color-accent);outline-offset:-1px}.quiz-draft-options{flex-direction:column;gap:6px;display:flex}.quiz-draft-option{align-items:center;gap:8px;display:flex}.quiz-draft-option-letter{width:16px;color:var(--color-text-muted);font-weight:600}.quiz-draft-option-input{flex:1}.quiz-draft-add{align-self:flex-start}.quiz-report-summary{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px;display:grid}.quiz-report-stat{border:1px solid var(--color-border);border-radius:var(--radius-card);text-align:center;padding:12px}.quiz-report-stat-label{color:var(--color-text-muted);font-size:12px}.quiz-report-stat-value{margin-top:4px;font-size:22px;font-weight:700}.quiz-report-matrix-wrap{border:1px solid var(--color-border);border-radius:var(--radius-card);max-height:420px;overflow:auto}.quiz-report-matrix{border-collapse:collapse;width:100%;font-size:13px}.quiz-report-matrix th,.quiz-report-matrix td{text-align:center;border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);background:var(--color-surface);padding:6px 10px}.quiz-report-matrix thead th{background:var(--color-bg-alt);z-index:1;font-weight:600;position:sticky;top:0}.quiz-report-matrix-name{text-align:left;background:var(--color-bg-alt);z-index:2;min-width:100px;position:sticky;left:0}.quiz-report-matrix thead th.quiz-report-matrix-name{z-index:3}.quiz-report-cell-correct{background:var(--color-status-reviewed-bg);color:var(--color-status-reviewed-text);font-weight:600}.quiz-report-cell-wrong{background:var(--color-status-returned-bg);color:var(--color-status-returned-text)}.quiz-report-cell-empty{color:var(--color-text-faint)}.quiz-report-footer{justify-content:flex-end;margin-top:16px;display:flex}.quiz-report-skeleton{flex-direction:column;gap:8px;padding:32px;display:flex}.quiz-report-skeleton-row{background:var(--color-surface-alt);border-radius:var(--radius-btn);height:20px}.quiz-report-empty{color:var(--color-text-muted);flex-direction:column;align-items:center;gap:8px;padding:40px 16px;display:flex}.quiz-report-empty-icon{font-size:40px}.quiz-report-error{text-align:center;color:var(--color-status-returned-text);padding:16px}.quiz-difficulty-badge{border-radius:var(--radius-pill);color:#fff;padding:2px 8px;font-size:11px;display:inline-block}.quiz-difficulty-badge-easy{background:var(--color-quiz-difficulty-easy)}.quiz-difficulty-badge-medium{background:var(--color-quiz-difficulty-medium);color:var(--color-text)}.quiz-difficulty-badge-hard{background:var(--color-quiz-difficulty-hard)}@media (max-width:600px){.quiz-modal{border-radius:0;width:100vw;height:100vh;max-height:100vh;top:0;left:0;transform:none}.quiz-report-summary{grid-template-columns:1fr}}

.classroom-page{min-height:100vh;max-width:var(--container-max-width);background:#fff;margin:0 auto;padding:48px 32px}.classroom-page-detail{max-width:1400px}.classroom-back-link{min-height:44px;color:var(--color-text-muted);align-items:center;margin-bottom:16px;font-size:14px;text-decoration:none;transition:color .15s;display:inline-flex}.classroom-back-link:hover{color:var(--color-text)}.classroom-header{margin-bottom:40px}.classroom-header h1{font-family:var(--font-display);letter-spacing:var(--font-display-tracking);color:var(--color-text);margin:0 0 8px;font-size:32px;font-weight:700}.classroom-header-subtitle{color:var(--color-text-muted);margin:0;font-size:15px}.classroom-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.classroom-grid-card{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-card);min-height:140px;box-shadow:var(--shadow-card);cursor:pointer;text-align:left;color:inherit;font-family:var(--font-body);transition:box-shadow var(--t-slow), border-color var(--t-slow), transform var(--t-slow);flex-direction:column;gap:10px;padding:24px;display:flex;position:relative}.classroom-grid-card-link{color:inherit;cursor:pointer;flex-direction:column;flex:1;gap:10px;text-decoration:none;display:flex}.classroom-grid-card--menu-open:hover{transform:none}.classroom-grid-card--menu-open{z-index:20}.classroom-grid-kebab{width:28px;height:28px;color:var(--color-text-faint);cursor:pointer;opacity:.6;transition:background var(--t-normal), color var(--t-normal), opacity var(--t-normal);z-index:21;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;font-size:16px;line-height:1;display:flex;position:absolute;top:6px;right:6px}.classroom-grid-kebab:hover{background:var(--color-surface-alt);color:var(--color-text);opacity:1}.classroom-grid-kebab-menu{background:var(--color-surface);border:1px solid var(--color-border);min-width:110px;box-shadow:var(--shadow-lift);z-index:22;border-radius:8px;position:absolute;top:36px;right:6px;overflow:hidden}.classroom-grid-kebab-item{text-align:left;width:100%;color:var(--color-text);cursor:pointer;background:0 0;border:none;padding:10px 14px;font-family:inherit;font-size:13px;display:block}.classroom-grid-kebab-item:hover{background:var(--color-surface-alt)}.classroom-grid-kebab-item--danger{color:var(--color-danger)}.classroom-grid-card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--color-border-hover);transform:translateY(-2px)}.classroom-grid-name{letter-spacing:-.25px;color:var(--color-text);font-size:18px;font-weight:700}.classroom-grid-stats{color:var(--color-text-muted);align-items:baseline;gap:12px;margin-top:auto;font-size:13px;display:flex}.classroom-stat{align-items:baseline;gap:4px;display:flex}.classroom-stat-num{letter-spacing:-.3px;color:var(--color-text);font-size:22px;font-weight:700}.classroom-stat-label{color:var(--color-text-muted);font-size:13px}.classroom-stat-sep{background:var(--color-border);align-self:center;width:1px;height:14px}.classroom-grid-new{text-align:center;border:2px dashed var(--color-border);box-shadow:none;background:0 0;justify-content:center;align-items:center}.classroom-grid-new:hover{border-color:var(--color-accent);background:var(--color-accent-tinted-bg);box-shadow:none;transform:none}.classroom-grid-new-icon{background:var(--color-surface-alt);width:48px;height:48px;color:var(--color-text-faint);border-radius:50%;justify-content:center;align-items:center;font-size:28px;transition:background .15s,color .15s;display:flex}.classroom-grid-new:hover .classroom-grid-new-icon{background:var(--color-accent);color:#fff}.classroom-grid-new-label{color:var(--color-text-muted);font-size:14px;font-weight:500}
.classroom-detail{width:100%}.classroom-detail-header{border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;padding-bottom:24px;display:flex}.classroom-detail-header-main{flex:auto;min-width:0}.classroom-detail-name{font-family:var(--font-display);letter-spacing:-.5px;color:var(--color-text);margin:0 0 8px;font-size:32px;font-weight:700}.classroom-detail-meta{color:var(--color-text-muted);margin:0;font-size:15px}.classroom-invite-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);color:inherit;transition:box-shadow var(--t-normal), border-color var(--t-normal);align-items:center;gap:16px;padding:14px 18px;text-decoration:none;display:inline-flex}.classroom-invite-card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--color-border-hover)}.classroom-invite-label{letter-spacing:.1px;color:var(--color-text-muted);font-size:12px;font-weight:600}.classroom-invite-cta{letter-spacing:-.2px;color:var(--color-text);margin-top:4px;font-size:15px;font-weight:700}.classroom-invite-badge{border-radius:var(--radius-pill);background:var(--color-warning-tinted-bg);min-width:22px;height:22px;color:var(--color-warning);justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:700;display:inline-flex}.classroom-detail-delete{color:var(--color-danger);border-radius:var(--radius-btn);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast);background:0 0;border:1px solid #0000;margin-left:auto;padding:6px 10px;font-size:13px;font-weight:500}.classroom-detail-delete:hover{background:#c6282814;border-color:#c628284d}.classroom-action-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:24px;display:flex}.classroom-action-guided{align-items:center;gap:8px;min-width:0;display:inline-flex}.classroom-action-badge{color:#fff;background:#e53e3e;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;margin-left:8px;padding:0 6px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.classroom-action-btn{font-family:var(--font-body);border-radius:var(--radius-btn);background:var(--color-accent);color:#fff;cursor:pointer;border:none;align-items:center;padding:8px 16px;font-size:14px;font-weight:600;text-decoration:none;transition:background .16s;display:inline-flex}.classroom-action-btn:hover{background:var(--color-accent-active)}.classroom-action-btn.is-onboarding-secondary{box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent) 28%, transparent)}.classroom-action-btn-first-board.is-onboarding-highlight{box-shadow:0 0 0 3px color-mix(in srgb, var(--color-danger) 42%, transparent);animation:1.8s ease-in-out infinite classroomActionHighlightPulse;position:relative}.classroom-action-next-badge{border-radius:var(--radius-pill);background:#fff3;justify-content:center;align-items:center;margin-left:8px;padding:2px 6px;font-size:10px;font-weight:700;line-height:1.2;display:inline-flex}@keyframes classroomActionHighlightPulse{0%,to{box-shadow:0 0 0 3px color-mix(in srgb, var(--color-danger) 34%, transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--color-danger) 16%, transparent)}}@media (prefers-reduced-motion:reduce){.classroom-action-btn-first-board.is-onboarding-highlight{animation:none}}@media (max-width:760px){.classroom-action-guided{flex-wrap:wrap}}.classroom-table-wrap{overflow-x:auto}.classroom-table{border-collapse:separate;border-spacing:0;width:100%}.classroom-th{text-align:center;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);padding:8px 12px;font-size:13px;font-weight:600}.classroom-th-num{width:40px}.classroom-th-actions{width:auto}.classroom-td{border-bottom:1px solid var(--color-border);vertical-align:middle;text-align:center;padding:10px 12px;font-size:14px}.classroom-tr:hover .classroom-td{background:#00000005}.classroom-td-num{color:var(--color-text-faint);font-size:13px}.classroom-td-name{font-weight:600}.classroom-table{table-layout:fixed}.classroom-th-name,.classroom-th-gender,.classroom-th-role,.classroom-th-qr,.classroom-th-code,.classroom-th-actions,.classroom-th-parent{width:calc(14.2857% - 10.8571px)}.classroom-th-qr{color:var(--color-accent)}.classroom-td-gender .classroom-role-select-inline,.classroom-td-role .classroom-role-select-inline{text-align:center;text-align-last:center;width:auto;min-width:0;max-width:none;height:26px;min-height:0;padding:2px 4px 2px 6px;font-size:12px}.classroom-qr-thumb{border-radius:4px;width:40px;height:40px}.classroom-qr-placeholder{background:var(--color-surface-alt);border-radius:4px;width:40px;height:40px;display:inline-block}.classroom-text-code{letter-spacing:1px;color:var(--color-text-muted);font-family:monospace;font-size:13px}.classroom-parent-chip{min-width:44px;color:var(--color-accent-tinted-text,var(--color-accent));background:var(--color-accent-tinted-bg,var(--color-surface-alt));border-radius:999px;justify-content:center;align-items:center;padding:4px 10px;font-size:13px;font-weight:600;text-decoration:none;transition:background .12s;display:inline-flex}.classroom-parent-chip:hover{background:var(--color-surface-alt)}.classroom-parent-chip.is-empty{color:var(--color-text-faint);background:0 0;font-weight:400}.classroom-role-select{font:inherit;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:6px;min-width:90px;padding:4px 8px;font-size:12px}.classroom-role-select:focus-visible{outline:2px solid var(--color-accent-tinted-text);outline-offset:1px}.classroom-row-actions{justify-content:center;align-items:center;gap:8px;display:flex}.classroom-row-btn{cursor:pointer;font-family:var(--font-body);color:var(--color-text-muted);border-radius:var(--radius-btn);background:0 0;border:none;padding:4px 8px;font-size:12px;font-weight:500;transition:color .15s,background .15s}.classroom-row-btn:hover{background:var(--color-surface-alt)}.classroom-row-btn-reissue:hover{color:var(--color-accent)}.classroom-row-btn-delete:hover{color:#c62828}.classroom-main-grid{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);align-items:stretch;gap:32px;margin-top:24px;display:grid}@media (max-width:1199px){.classroom-main-grid{grid-template-columns:minmax(0,1fr)}}
.classroom-boards-section{margin-top:0}.classroom-boards-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.classroom-boards-header .classroom-setting-hint{max-width:none}.classroom-setting-warning{color:var(--color-danger);margin:0;font-size:13px;font-weight:600}.classroom-boards-heading{color:var(--color-text);margin:0;font-size:16px;font-weight:700}.classroom-boards-empty{color:var(--color-text-muted);padding:24px 0;font-size:14px}.classroom-board-picker{background:var(--color-bg);border:1px dashed var(--color-border);border-radius:var(--radius-card);flex-direction:column;gap:8px;margin-bottom:20px;padding:16px;display:flex}.classroom-board-picker-empty{color:var(--color-text-muted);margin:0;font-size:13px}.classroom-board-picker-item{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-btn);cursor:pointer;font-family:var(--font-body);text-align:left;align-items:center;gap:12px;padding:10px 14px;transition:border-color .15s;display:flex}.classroom-board-picker-item:hover{border-color:var(--color-accent)}.classroom-board-link-action{color:var(--color-accent);margin-left:auto;font-size:12px;font-weight:600}.classroom-boards-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.classroom-board-new{color:#166534;background:#dcfce7;border-radius:999px;align-self:flex-start;align-items:center;gap:4px;margin-top:4px;padding:3px 8px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.classroom-board-new-dot{background:#22c55e;border-radius:999px;flex:none;width:7px;height:7px}.classroom-board-card{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);flex-direction:column;transition:box-shadow .18s,border-color .18s;display:flex;position:relative}.classroom-board-card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--color-border-hover)}.classroom-board-card-body{cursor:pointer;font-family:var(--font-body);text-align:left;background:0 0;border:none;flex-direction:column;gap:6px;padding:16px;display:flex}.classroom-board-unlink{border-radius:var(--radius-pill);width:22px;height:22px;color:var(--color-text-muted);cursor:pointer;background:#0000000f;border:none;justify-content:center;align-items:center;font-size:12px;transition:background .15s,color .15s;display:none;position:absolute;top:6px;right:6px}.classroom-board-card:hover .classroom-board-unlink{display:flex}.classroom-board-unlink:hover{color:#c62828;background:#fee}.classroom-board-title{color:var(--color-text);font-size:14px;font-weight:600}.classroom-board-layout{color:var(--color-text-faint);font-size:12px}.classroom-empty{text-align:center;padding:48px 0}.classroom-empty h2{letter-spacing:-.3px;color:var(--color-text);margin:0 0 8px;font-size:22px;font-weight:700}.classroom-empty-text{color:var(--color-text-muted);margin:0 0 16px;font-size:14px}.classroom-empty-btn{border-radius:var(--radius-btn);background:var(--color-accent);color:#fff;font-family:var(--font-body);cursor:pointer;border:none;justify-content:center;align-items:center;padding:8px 20px;font-size:14px;font-weight:600;text-decoration:none;transition:background .16s;display:inline-flex}.classroom-empty-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.classroom-empty-btn:hover{background:var(--color-accent-active)}.classroom-empty-btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.classroom-empty-btn-secondary:hover{background:var(--color-surface-alt)}.classroom-copy-toast{background:var(--color-accent);color:#fff;border-radius:var(--radius-pill);z-index:200;padding:8px 16px;font-size:13px;font-weight:500;animation:2s forwards fadeInOut;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}@keyframes fadeInOut{0%{opacity:0;transform:translate(-50%)translateY(8px)}15%{opacity:1;transform:translate(-50%)translateY(0)}75%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:0;transform:translate(-50%)translateY(-4px)}}
:root{--color-bank-positive:var(--color-plant-active,#27a35f);--color-bank-negative:var(--color-danger,#c62828)}.classroom-page-title{font-family:var(--font-display);color:var(--color-text);margin:8px 0 16px;font-size:22px;font-weight:700}.classroom-dashboard-hero{border:1px solid var(--color-border);border-radius:var(--radius-card);background:linear-gradient(135deg, #0ea5e91a, #22c55e1a), var(--color-surface);justify-content:space-between;align-items:flex-end;gap:24px;margin:24px 0;padding:24px;display:flex}.classroom-dashboard-eyebrow,.classroom-dashboard-panel-head span{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);font-size:11px;font-weight:800;display:block}.classroom-dashboard-hero h2{letter-spacing:0;margin:4px 0 8px;font-size:28px}.classroom-dashboard-hero p{color:var(--color-text-muted);margin:0;font-size:14px}.classroom-dashboard-hero-stats{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.classroom-dashboard-hero-stats span{border:1px solid var(--color-border);background:#fff;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:700}.classroom-dashboard-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.classroom-dashboard-tools{border-block:1px solid var(--color-border);align-items:center;gap:18px;margin:10px 0 22px;padding:10px 0;font-size:12px;display:flex}.classroom-dashboard-tools>span{color:var(--color-text-muted);font-weight:800}.classroom-dashboard-tools a{color:var(--color-text);font-weight:800;text-decoration:none}.classroom-dashboard-tools a:hover{color:var(--color-primary)}.classroom-dashboard-kpi,.classroom-dashboard-panel{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.classroom-dashboard-kpi{gap:6px;padding:16px;display:grid}.classroom-dashboard-kpi span{color:var(--color-text-muted);font-size:12px;font-weight:700}.classroom-dashboard-kpi strong{letter-spacing:0;font-size:22px}.classroom-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.classroom-dashboard-panel{min-width:0;padding:18px}.student-walking-page .classroom-dashboard-kpis{border-top:0;border-bottom:1px solid var(--color-border);gap:0;margin-bottom:0}.student-walking-page .classroom-dashboard-kpi{border:0;border-right:1px solid var(--color-border);box-shadow:none;background:0 0;border-radius:0;padding:18px}.student-walking-page .classroom-dashboard-kpi:last-child{border-right:0}.student-walking-page .classroom-dashboard-panel{border:0;border-top:1px solid var(--color-border);box-shadow:none;background:0 0;border-radius:0;padding:18px 0}.student-walking-page .student-walking-week-chart{border-top:0;border-bottom:0}.student-walking-page .student-walking-week-chart .classroom-dashboard-panel-head{border-bottom:1px solid var(--color-border);padding-bottom:16px}.classroom-dashboard-panel-wide{grid-column:1/-1}.classroom-dashboard-panel-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.student-walking-page .classroom-dashboard-panel-head{margin-bottom:12px}.student-walking-page .classroom-dashboard-panel-head h2{margin:0;font-size:18px;font-weight:700;line-height:1.35}.classroom-dashboard-panel-head h3{margin:2px 0 0;font-size:17px}.classroom-dashboard-panel-head a{color:var(--color-accent);font-size:12px;font-weight:800;text-decoration:none}.classroom-showcase-strip{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;display:grid}.classroom-showcase-card{aspect-ratio:1;color:#fff;background:#0f172a;border:1px solid #0f172a14;border-radius:10px;min-height:164px;text-decoration:none;display:block;position:relative;overflow:hidden}.classroom-showcase-card img,.classroom-showcase-fallback{object-fit:cover;place-items:center;width:100%;height:100%;display:grid}.classroom-showcase-fallback{background:linear-gradient(135deg,#0ea5e9,#22c55e);font-weight:800}.classroom-showcase-overlay{background:linear-gradient(#0000,#0f172ae6);gap:3px;padding:32px 10px 10px;display:grid;position:absolute;inset:auto 0 0}.classroom-showcase-overlay strong,.classroom-showcase-overlay small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.classroom-showcase-overlay strong{font-size:13px}.classroom-showcase-overlay small{color:#ffffffc7;font-size:11px}.classroom-dashboard-list{gap:8px;display:grid}.student-walking-week-range{color:var(--color-text-muted);margin:-4px 0 12px;font-size:13px;font-weight:700}.student-walking-future-day{color:var(--color-text-faint)}.student-walking-rewards{gap:12px;display:grid}.student-walking-rewards .classroom-dashboard-panel-head{margin-bottom:0}.student-walking-reward-total{color:var(--color-accent);white-space:nowrap}.student-walking-reward-copy,.student-walking-reward-next{color:var(--color-text-muted);margin:0;font-size:13px}.student-walking-tier-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.student-walking-tier{border:1px solid var(--color-border);background:var(--color-surface-alt);border-radius:8px;gap:4px;min-width:0;padding:12px;display:grid}.student-walking-tier span{color:var(--color-text-muted);font-size:12px;font-weight:700}.student-walking-tier strong{color:var(--color-text);font-size:16px}.student-walking-tier.is-achieved{border-color:var(--color-accent);background:var(--color-accent-tinted-bg)}.student-walking-tier.is-achieved strong{color:var(--color-accent)}.classroom-dashboard-row{background:var(--color-surface-alt);min-height:42px;color:inherit;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:13px;text-decoration:none;display:flex}.classroom-dashboard-row strong{white-space:nowrap}.activity-sparkline{width:100%;min-width:0;height:40px;color:var(--color-accent-tinted-text);justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.activity-sparkline svg{width:100%;height:100%;display:block;overflow:visible}.activity-sparkline .activity-sparkline-grid{stroke:var(--color-border);stroke-width:1px;stroke-dasharray:2 3;opacity:.72}.activity-sparkline .activity-sparkline-line{stroke:currentColor;stroke-width:2.25px;stroke-linecap:round;stroke-linejoin:round}.activity-sparkline-success{color:var(--color-plant-active)}.activity-sparkline-accent{color:var(--color-accent-tinted-text)}.activity-sparkline-danger{color:var(--color-danger)}.activity-sparkline-empty{color:var(--color-text-muted)}.activity-sparkline-empty .activity-sparkline-line{stroke-width:1.5px;opacity:.72}.walking-student-row{grid-template-columns:var(--walking-roster-columns);border-bottom:1px solid var(--color-border);align-items:center;gap:12px;padding:12px 0;display:grid}.walking-student-name,.walking-metric{gap:2px;min-width:0;display:grid}.walking-student-name strong{overflow-wrap:anywhere;white-space:normal}.walking-student-name small{color:var(--color-text-muted);font-size:11px}.walking-activity-cell{min-width:0;display:block}.walking-activity-cell .activity-sparkline{min-width:112px;max-width:220px}.walking-metric{text-align:right;white-space:nowrap;place-items:center end;min-width:0}.walking-metric strong{font-variant-numeric:tabular-nums}.walking-student-delete-cell{justify-items:end;gap:4px;min-width:max-content;display:grid}.walking-student-delete{border:1px solid var(--color-border-strong);border-radius:var(--radius-control);min-height:32px;color:var(--color-text-muted);cursor:pointer;font:inherit;white-space:nowrap;background:0 0;padding:0 9px;font-size:11px;font-weight:750}.walking-student-delete:hover:not(:disabled),.walking-student-delete:focus-visible{border-color:var(--color-danger);color:var(--color-danger)}.walking-student-delete:disabled{cursor:wait;opacity:.55}.walking-student-delete-status{max-width:12rem;color:var(--color-text-muted);text-align:right;font-size:10px;line-height:1.35}.walking-student-delete-status--success{color:var(--color-plant-active)}.walking-student-delete-status--error{color:var(--color-danger)}.classroom-roles-view{padding-top:0}.classroom-role-mini-column-layout{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:0 32px;display:grid}.classroom-role-mini-list{min-width:0}.classroom-role-mini-columns{border-bottom:1px solid var(--color-border);min-height:36px;color:var(--color-text-faint);grid-template-columns:minmax(0,1.15fr) minmax(82px,.75fr) minmax(0,1.25fr) 44px;align-items:center;column-gap:14px;padding:6px 0 6px 12px;font-size:11px;font-weight:600;display:grid}.classroom-role-mini-row{border-bottom:1px solid var(--color-border);background:0 0;grid-template-columns:minmax(0,1fr) 44px;align-items:center;width:100%;min-height:54px;transition:background .12s;display:grid}.classroom-role-mini-edit{min-width:0;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1.15fr) minmax(82px,.75fr) minmax(0,1.25fr);align-self:stretch;align-items:center;column-gap:14px;padding:10px 0 10px 12px;display:grid}.classroom-role-mini-row:hover{background:var(--color-surface-alt)}.classroom-role-mini-edit:focus-visible,.classroom-role-mini-remove:focus-visible{outline:2px solid var(--color-accent-tinted-text,var(--color-accent));outline-offset:-2px;position:relative}.classroom-role-mini-remove{border-radius:var(--radius-btn);width:44px;height:44px;color:var(--color-text-faint);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.classroom-role-mini-remove:hover:not(:disabled){background:color-mix(in srgb, var(--color-danger) 8%, transparent);color:var(--color-danger)}.classroom-role-mini-remove:disabled{cursor:not-allowed;opacity:.45}.classroom-role-mini-remove svg{display:block}.classroom-role-mini-head{display:contents}.classroom-role-mini-label,.classroom-role-mini-salary{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.classroom-role-mini-label{font-size:14px;font-weight:650}.classroom-role-mini-salary{color:var(--color-text-muted);font-size:13px;font-weight:600}.classroom-role-mini-students{min-width:0;color:var(--color-text);flex-wrap:wrap;align-items:center;gap:3px 16px;font-size:13px;font-weight:500;display:flex}.classroom-role-mini-student{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.classroom-role-mini-student--empty{color:var(--color-text-muted)}.classroom-role-mini-add{width:100%;min-height:48px;color:var(--color-accent-tinted-text,var(--color-accent));font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:10px 12px;font-size:13px;font-weight:600}.classroom-role-mini-add:hover,.classroom-role-mini-add:focus-visible{background:var(--color-surface-alt)}.classroom-role-mini-add:focus-visible{outline:2px solid var(--color-accent-tinted-text,var(--color-accent));outline-offset:-2px}@media (max-width:900px){.classroom-role-mini-column-layout{grid-template-columns:minmax(0,1fr);gap:20px}}.classroom-role-add-modal .modal-body{gap:16px;display:grid}.classroom-role-add-modal .modal-body,.classroom-role-edit-modal .modal-body{padding:4px 20px 0}
.classroom-role-add-modal .classroom-role-input-wrap,.classroom-role-edit-modal .classroom-role-input-wrap{align-items:center;gap:8px;width:100%;min-width:0;display:flex}.classroom-role-add-modal .classroom-role-input-wrap>span,.classroom-role-edit-modal .classroom-role-input-wrap>span{color:var(--color-text-muted);flex:none;font-size:13px}.classroom-role-add-modal .classroom-role-salary,.classroom-role-edit-modal .classroom-role-salary,.classroom-role-add-modal .classroom-role-name-input,.classroom-role-edit-modal .classroom-role-name-input{padding-inline:10px}.classroom-role-add-label{color:var(--color-text-muted);font-size:12px;font-weight:700}.classroom-role-add-modal .classroom-role-select{width:100%;min-height:40px}.classroom-role-pay-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.classroom-role-header-actions{align-items:center;display:flex}.classroom-role-pay-bar .segmented-control-item{padding:7px 14px;font-size:13px;font-weight:600}.classroom-role-pay-bar .classroom-role-select{min-height:36px;font-size:13px}.classroom-role-pay-note{color:var(--color-text-muted);font-size:13px;font-weight:600}.classroom-role-pay-bar .classroom-role-pay-now{min-height:36px;padding:7px 16px;font-size:13px}.classroom-role-pay-bar button:disabled,.classroom-role-pay-bar select:disabled{opacity:.55;cursor:not-allowed}.classroom-role-edit-modal .modal-body{gap:16px;display:grid}.classroom-role-edit-header{justify-content:flex-end}.classroom-role-add-modal .classroom-role-field label,.classroom-role-edit-modal .classroom-role-field label,.classroom-role-add-modal .classroom-role-add-label,.classroom-role-edit-modal .classroom-role-add-label{padding-left:10px}.classroom-role-student-chip{padding-inline:10px}.classroom-role-edit-modal,.classroom-role-add-modal{width:640px}.classroom-role-add-pay{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.classroom-role-name-input{border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);width:100%;min-height:40px;color:var(--color-text);font:inherit;padding:0 10px;font-size:14px}.classroom-role-name-input:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #0075de26}.classroom-role-add-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:12px;display:grid}.classroom-role-field-name,.classroom-role-field-salary{min-width:0}.classroom-role-add-modal .classroom-role-name-input,.classroom-role-edit-modal .classroom-role-name-input,.classroom-role-add-modal .classroom-role-salary,.classroom-role-edit-modal .classroom-role-salary{min-height:40px;font-size:14px}@media (max-width:560px){.classroom-role-add-row{grid-template-columns:minmax(0,1fr)}}.classroom-role-add-modal .modal-body{gap:8px}.classroom-role-add-modal .classroom-role-section-title{color:var(--color-text);margin:8px 0 0;padding:0;font-size:14px;font-weight:700}.classroom-role-add-modal .classroom-role-section-title:first-child{margin-top:0}.classroom-role-add-modal .classroom-role-field-note{color:var(--color-text-muted);margin:0;padding:0;font-size:12px}.classroom-role-add-modal .classroom-role-direct-head,.classroom-role-add-modal .classroom-role-direct-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.classroom-role-add-modal .classroom-role-direct-head{color:var(--color-text-muted);font-size:12px;font-weight:600}.classroom-role-add-modal .classroom-role-direct-salary{align-items:center;gap:6px;min-width:0;display:flex}.classroom-role-add-modal .classroom-role-direct-salary>.classroom-role-salary{flex:1;min-width:0}.classroom-role-add-modal .classroom-role-direct-salary>span{color:var(--color-text-muted);flex:none;font-size:13px}.classroom-role-add-modal .classroom-role-add-more{box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);width:40px;min-height:32px;color:var(--color-accent);cursor:pointer;justify-content:center;justify-self:start;align-items:center;padding:0;font-size:20px;font-weight:500;line-height:0;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.classroom-role-add-modal .classroom-role-add-more:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-accent-tinted-bg)}.classroom-role-add-modal .classroom-role-add-more:disabled{opacity:.55;cursor:not-allowed}.classroom-role-add-modal .modal-actions,.classroom-role-edit-modal .modal-actions{justify-content:flex-end;align-items:center;gap:8px;padding:16px 24px 24px;display:flex}.classroom-role-add-modal .modal-btn-cancel,.classroom-role-add-modal .modal-btn-submit{justify-content:center;align-items:center;min-width:88px;padding-inline:16px;display:inline-flex}.classroom-role-student-picker{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.classroom-role-student-chip{border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);min-width:0;min-height:36px;color:var(--color-text-muted);font:inherit;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;justify-content:center;align-items:center;padding:6px 8px;font-size:12px;display:flex;overflow:hidden}.classroom-role-student-chip.is-assigned{border-color:var(--color-accent);background:var(--color-accent-tinted-bg);color:var(--color-accent);font-weight:700}@media (max-width:560px){.classroom-role-student-picker{grid-template-columns:repeat(3,minmax(0,1fr))}}.classroom-role-edit-actions{align-items:center;gap:8px;display:flex}.classroom-role-edit-actions .classroom-role-remove-btn{margin-right:auto}.classroom-dashboard-empty{color:var(--color-text-muted);margin:0;font-size:13px}
.classroom-overview{padding-top:0}.classroom-home-page .classroom-section-header{margin-bottom:0}.classroom-overview-summary{grid-template-columns:repeat(5,minmax(0,1fr));margin:0;display:grid}.classroom-overview-summary-item{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);gap:6px;min-width:0;padding:16px 20px;display:grid}.classroom-overview-summary-item:first-child{padding-left:0}.classroom-overview-summary-item:last-child{border-right:0}.classroom-overview-summary-item dt{color:var(--color-text-muted);font-size:12px;font-weight:700}.classroom-overview-summary-item dd{overflow-wrap:anywhere;min-width:0;color:var(--color-text);letter-spacing:0;margin:0;font-size:22px;font-weight:700}@media (max-width:960px){.classroom-overview-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.classroom-overview-summary-item:nth-child(3n){border-right:0}.classroom-overview-summary-item:nth-child(3n+1){padding-left:0}}@media (max-width:640px){.classroom-overview-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.classroom-overview-summary-item:nth-child(3n){border-right:1px solid var(--color-border)}.classroom-overview-summary-item:nth-child(2n){border-right:0}.classroom-overview-summary-item:nth-child(odd){padding-left:0}}@media (max-width:420px){.classroom-overview-summary{grid-template-columns:minmax(0,1fr)}.classroom-overview-summary-item,.classroom-overview-summary-item:first-child{border-right:0;padding-inline:0}.classroom-overview-summary-item:last-child{border-bottom:0}}.classroom-section-page .classroom-dashboard-kpis{border-bottom:1px solid var(--color-border);grid-template-columns:none;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:0;margin-bottom:0}.classroom-section-page .classroom-section-header{margin-bottom:0}.classroom-section-page .classroom-dashboard-kpi{border:0;border-right:1px solid var(--color-border);box-shadow:none;background:0 0;border-radius:0;padding:16px 20px}.classroom-section-page .classroom-dashboard-kpi:first-child{padding-left:0}.classroom-section-page .classroom-dashboard-kpi:last-child{border-right:0}.classroom-dashboard-kpi .bank-summary-rate{align-items:center;gap:6px;display:flex}.classroom-dashboard-kpi .bank-rate-input{border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);width:76px;height:32px;color:var(--color-text);font:inherit;padding:0 8px;font-size:16px;font-weight:700}.classroom-dashboard-kpi .bank-rate-input:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #0075de26}.classroom-dashboard-kpi .bank-rate-unit{color:var(--color-text);font-size:16px;font-weight:700}.classroom-dashboard-kpi .bank-rate-save{border-radius:var(--radius-btn);background:var(--color-accent);color:#fff;height:32px;font:inherit;cursor:pointer;border:0;padding:0 12px;font-size:12px;font-weight:600}.classroom-dashboard-kpi .bank-rate-save:hover{background:var(--color-accent-active)}.classroom-dashboard-bank{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.classroom-dashboard-bank-group{gap:10px;min-width:0;display:grid}.classroom-dashboard-bank-title{color:var(--color-text-muted);letter-spacing:.04em;margin:0;font-size:12px;font-weight:800}@media (max-width:720px){.classroom-dashboard-bank{grid-template-columns:1fr}}@media (max-width:960px){.classroom-dashboard-hero{flex-direction:column;align-items:flex-start}.classroom-dashboard-kpis,.classroom-dashboard-grid{grid-template-columns:1fr}.classroom-section-page .classroom-dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-columns:auto;grid-auto-flow:row}.classroom-section-page .classroom-dashboard-kpi:nth-child(2n){border-right:0}.classroom-showcase-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:640px){.classroom-page{padding-inline:16px}.classroom-section-page .classroom-dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.classroom-section-page .classroom-dashboard-kpi{padding-inline:0 16px}.student-walking-rewards .classroom-dashboard-panel-head{flex-direction:column}.classroom-showcase-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.classroom-role-mini-columns{grid-template-columns:minmax(0,1.05fr) minmax(72px,.7fr) minmax(0,1.3fr) 44px;column-gap:10px;padding-inline:6px 0}.classroom-role-mini-edit{grid-template-columns:minmax(0,1.05fr) minmax(72px,.7fr) minmax(0,1.3fr);column-gap:10px;padding-inline:6px 0}.classroom-role-mini-students{gap:2px 8px}.walking-student-row{grid-template-columns:minmax(0,1fr) auto auto auto}.walking-activity-cell{grid-area:2/1/auto/-1}}
.classroom-home-summary{gap:28px;padding-top:28px;display:grid}.classroom-home-summary-heading{color:var(--color-text);margin:0 0 -18px;font-size:16px;font-weight:700;line-height:1.4}.classroom-home-summary-group{gap:10px;min-width:0;display:grid}.classroom-home-summary-group-title{color:var(--color-text-muted);letter-spacing:.04em;margin:0;font-size:12px;font-weight:800}.classroom-home-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 32px;margin:0;padding:0;list-style:none;display:grid}.classroom-home-summary-item{min-width:0}.classroom-home-summary-card{min-width:0;color:inherit;background:0 0;border:0;flex-direction:column;gap:10px;padding:0;text-decoration:none;display:flex;position:relative}.classroom-home-summary-head{border-radius:var(--radius-btn);background:var(--color-surface-alt);justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:10px 12px 10px 14px;display:flex}.classroom-home-summary-head-link{min-width:0;color:inherit;flex:auto;text-decoration:none;display:flex}.classroom-home-summary-head-link:after{content:"";position:absolute;inset:0}.classroom-home-summary-head-link:focus-visible{outline:2px solid var(--color-accent-tinted-text);outline-offset:3px;border-radius:6px}.classroom-home-summary-copy{flex:auto;grid-template-columns:minmax(0,1fr);gap:2px;min-width:0;display:grid}.classroom-home-summary-meta{align-items:center;gap:10px;min-width:0;display:flex}.classroom-home-summary-metric{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text-muted);font-size:12px;font-weight:700;overflow:hidden}.classroom-home-summary-badge{border-radius:var(--radius-pill);background:var(--color-accent-tinted-bg);color:var(--color-accent-tinted-text);flex:none;padding:2px 7px;font-size:10px;font-weight:800;line-height:1.4}.classroom-home-summary-stores{flex:none;gap:6px;display:flex}.classroom-home-summary-store-btn{z-index:1;border:1px solid var(--color-border);background:var(--color-surface);width:30px;height:30px;color:var(--color-text-muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:2px;transition:border-color .15s,color .15s;display:inline-flex;position:relative}.classroom-home-summary-store-btn:hover,.classroom-home-summary-store-btn:focus-visible{border-color:var(--color-accent);color:var(--color-accent)}.classroom-home-summary-store-qr{border-radius:5px;width:100%;height:100%;display:block}.classroom-home-summary-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text);font-size:15px;font-weight:800;line-height:1.4;overflow:hidden}.classroom-home-summary-note{padding:0 0 0 var(--radius-btn);color:var(--color-text-muted);align-items:center;gap:8px;font-size:14px;font-weight:600;line-height:1.4;display:inline-flex}.classroom-home-summary-card:hover .classroom-home-summary-head,.classroom-home-summary-card:focus-within .classroom-home-summary-head{background:color-mix(in srgb, var(--color-accent) 8%, var(--color-surface-alt))}.classroom-home-summary-card:hover .classroom-home-summary-title,.classroom-home-summary-card:focus-within .classroom-home-summary-title{color:var(--color-accent)}@media (max-width:960px){.classroom-home-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.classroom-home-summary{padding-top:20px}.classroom-home-summary-grid{grid-template-columns:minmax(0,1fr)}}.classroom-qr-scrim{z-index:90;background:#0c203094;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.classroom-qr-dialog{background:var(--color-surface);box-shadow:var(--shadow-lift);border-radius:16px;flex-direction:column;align-items:center;gap:12px;padding:20px 20px 18px;display:flex}.classroom-qr-dialog-title{color:var(--color-text);margin:0;font-size:15px;font-weight:800;line-height:1.4}.classroom-qr-dialog-code{border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;width:216px;height:216px;padding:8px;display:block}.classroom-qr-dialog-code.is-loading{color:var(--color-text-muted);background:var(--color-surface-alt);text-align:center;border-style:dashed;justify-content:center;align-items:center;font-size:12.5px;font-weight:600;display:flex}.classroom-qr-dialog-hint{color:var(--color-text-muted);margin:0;font-size:12.5px;font-weight:600}.classroom-qr-dialog-close{border-radius:var(--radius-btn);background:var(--color-accent);min-height:40px;color:var(--color-on-accent);cursor:pointer;border:0;padding:0 24px;font-size:14px;font-weight:700}.classroom-qr-dialog-close:hover{background:var(--color-accent-active)}.classroom-first-run{z-index:70;pointer-events:none;position:fixed;inset:0}.classroom-first-run-hole{box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent) 55%, transparent), 0 0 0 100vmax #0c20309e;pointer-events:none;border-radius:16px;transition:top .16s,left .16s,width .16s,height .16s;animation:1.8s ease-in-out infinite classroomFirstRunPulse;position:fixed}@keyframes classroomFirstRunPulse{0%,to{box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent) 45%, transparent), 0 0 0 100vmax #0c20309e}50%{box-shadow:0 0 0 7px color-mix(in srgb, var(--color-accent) 28%, transparent), 0 0 0 100vmax #0c20309e}}.classroom-first-run-card{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-lift);pointer-events:auto;border-radius:12px;flex-direction:column;gap:10px;padding:14px 14px 12px;display:flex;position:fixed}.classroom-first-run-message{color:var(--color-text);margin:0;font-size:13.5px;font-weight:600}.classroom-first-run-actions{align-items:center;gap:8px;display:flex}.classroom-first-run-cta{background:var(--color-accent);color:#fff;border-radius:9px;flex:1;justify-content:center;align-items:center;min-height:36px;padding:0 14px;font-size:13px;font-weight:600;text-decoration:none;transition:background .15s;display:inline-flex}.classroom-first-run-cta:hover{background:var(--color-accent-active)}.classroom-first-run-close{border:1px solid var(--color-border);background:var(--color-surface);width:36px;height:36px;color:var(--color-text-muted);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.classroom-first-run-close:hover{background:var(--color-surface-alt);color:var(--color-text)}@media (prefers-reduced-motion:reduce){.classroom-first-run-hole{transition:none;animation:none}}
.classroom-assignments-view{padding-top:24px}.classroom-assignments-error{color:var(--color-danger)}.classroom-assignments-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 32px;display:grid}.classroom-assignment-item{background:0 0;border:0;border-radius:0;flex-direction:column;gap:10px;min-width:0;height:200px;padding:0;display:flex}.classroom-assignment-item-head{border-radius:var(--radius-btn);background:var(--color-surface-alt);justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:10px 14px;display:flex}.classroom-assignment-item-title{flex:auto;grid-template-columns:minmax(0,1fr);gap:2px;min-width:0;display:grid}.classroom-assignment-item-title h3{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text);margin:0;font-size:15px;font-weight:800;line-height:1.4;overflow:hidden}.classroom-assignment-kind{font-size:12px;font-weight:800}.classroom-assignment-item-kind-row{align-items:center;gap:10px;min-width:0;display:flex}.kind-check{color:var(--color-bank-positive)}.kind-board{color:var(--color-accent-tinted-text)}.classroom-assignment-meta-item{min-width:0;color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:4px;font-size:12px;font-weight:700;display:inline-flex}.classroom-assignment-toggle{cursor:pointer;background:0 0;border:0;flex:none;align-self:center;width:34px;height:20px;padding:0;display:block}.classroom-assignment-toggle:disabled{cursor:default;opacity:.6}.classroom-assignment-toggle-track{border-radius:var(--radius-pill);background:var(--color-border-strong);width:34px;height:20px;transition:background .15s;display:block;position:relative}.classroom-assignment-toggle-thumb{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #184a5c40}.classroom-assignment-toggle[aria-checked=true] .classroom-assignment-toggle-track{background:var(--color-bank-positive)}.classroom-assignment-toggle[aria-checked=true] .classroom-assignment-toggle-thumb{transform:translate(14px)}.classroom-assignment-toggle:focus-visible{outline:2px solid var(--color-accent-tinted-text);outline-offset:3px;border-radius:6px}.classroom-assignment-item-body{flex-direction:column;flex:auto;min-height:0;display:flex}.classroom-assignment-names{min-height:0;padding:0 0 0 var(--radius-btn);flex:auto;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:6px 12px;margin:0;list-style:none;display:grid;overflow:hidden}.classroom-assignment-item.is-expanded{height:auto}.classroom-assignment-item.is-expanded .classroom-assignment-names{overflow:visible}.classroom-assignment-expand{color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-self:center;align-items:center;margin-top:4px;padding:2px 10px;display:inline-flex}.classroom-assignment-expand:hover{color:var(--color-accent)}.classroom-assignment-expand:focus-visible{outline:2px solid var(--color-accent-tinted-text);outline-offset:2px;border-radius:6px}.classroom-assignment-expand svg{transition:transform .15s}.classroom-assignment-expand[aria-expanded=true] svg{transform:rotate(180deg)}.classroom-assignment-name{min-width:0;color:var(--color-text);align-items:center;gap:8px;font-size:14px;font-weight:600;line-height:1.4;display:flex}.classroom-assignment-name .morning-list-num{min-width:22px}@media (max-width:960px){.classroom-assignments-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.classroom-assignments-grid{grid-template-columns:minmax(0,1fr)}.classroom-assignment-item{height:auto;min-height:168px}}.classroom-archive-open{border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer;align-items:center;gap:6px;padding:7px 12px;font-size:14px;font-weight:600;display:inline-flex}.classroom-archive-open:hover{border-color:var(--color-accent);color:var(--color-accent)}.classroom-archive-backdrop{z-index:var(--z-modal-top,2147480000);background:#0f172a6b;justify-items:end;display:grid;position:fixed;inset:0}.classroom-archive-drawer{background:var(--color-surface);width:min(380px,100%);height:100%;box-shadow:var(--shadow-card);grid-template-rows:auto 1fr;display:grid}.classroom-archive-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:12px 16px;display:flex}.classroom-archive-header h2{color:var(--color-text);margin:0;font-size:16px;font-weight:700}.classroom-archive-empty{color:var(--color-text-muted);margin:0;padding:24px 16px;font-size:13px}.classroom-archive-list{align-content:start;margin:0;padding:0 16px;list-style:none;display:grid;overflow-y:auto}.classroom-archive-row{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;padding:14px 0;display:grid}.classroom-archive-copy{gap:4px;min-width:0;display:grid}.classroom-archive-title-line{align-items:baseline;gap:8px;min-width:0;display:flex}.classroom-archive-title-line strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text);font-size:14px;line-height:1.4;overflow:hidden}.classroom-archive-meta{color:var(--color-text-muted);font-size:12px}.classroom-archive-restore{border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);min-height:36px;color:var(--color-text);font:inherit;cursor:pointer;grid-area:1/2/span 2;justify-self:end;padding:0 14px;font-size:13px;font-weight:700}.classroom-archive-restore:hover{border-color:var(--color-bank-positive);color:var(--color-bank-positive)}.classroom-archive-restore:disabled{opacity:.55;cursor:default}
.classroom-roles{min-width:0}.classroom-roles-header h2{margin:0 0 4px;font-size:18px;font-weight:700}.classroom-roles-header{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:18px;display:flex}.classroom-roles-desc{color:var(--color-text-muted);margin:0;font-size:13px}.classroom-roles-add{flex-direction:column;gap:5px;min-width:240px;display:flex}.classroom-roles-add label,.classroom-role-field label{color:var(--color-text-muted);font-size:12px;font-weight:600}.classroom-roles-add-controls{align-items:stretch;gap:8px;display:flex}.classroom-role-select,.classroom-role-salary{min-height:44px;font:inherit;border:1px solid var(--color-border);border-radius:var(--radius-btn,6px);background:var(--color-surface);color:var(--color-text);font-size:13px}.classroom-role-select{cursor:pointer;min-width:110px;padding:7px 9px}.classroom-role-salary{width:100%;min-width:0;padding:7px 9px}.classroom-role-select:focus-visible,.classroom-role-salary:focus-visible,.classroom-roles-add-btn:focus-visible,.classroom-role-permission-btn:focus-visible,.classroom-role-save-btn:focus-visible,.classroom-role-remove-btn:focus-visible,.classroom-roles-error button:focus-visible{outline:2px solid var(--color-accent-tinted-text,var(--color-accent));outline-offset:2px}.classroom-roles-add-btn,.classroom-role-save-btn{border:1px solid var(--color-accent);border-radius:var(--radius-btn,6px);background:var(--color-accent);color:#fff;min-height:44px;font:inherit;white-space:nowrap;cursor:pointer;padding:7px 12px;font-size:13px;font-weight:600}.classroom-roles-add-btn:hover:not(:disabled),.classroom-role-save-btn:hover:not(:disabled){background:var(--color-accent-active);border-color:var(--color-accent-active)}.classroom-roles-add-btn:disabled,.classroom-role-save-btn:disabled,.classroom-role-permission-btn:disabled,.classroom-role-remove-btn:disabled,.classroom-roles-error button:disabled{cursor:not-allowed;opacity:.55}.classroom-role-list{border-top:1px solid var(--color-border);margin:0;padding:0;list-style:none}.classroom-role-row{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(150px,1.05fr) minmax(130px,1fr) minmax(120px,.8fr) minmax(270px,1.7fr) auto;align-items:center;gap:16px;padding:14px 0;display:grid}.classroom-role-row:hover{background:var(--color-surface-alt)}.classroom-role-identity{align-items:center;gap:10px;min-width:0;display:flex}.classroom-role-name-wrap{flex-direction:column;gap:3px;min-width:0;display:flex}.classroom-role-emoji{flex:none;font-size:24px;line-height:1}.classroom-role-label{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.classroom-role-meta,.classroom-role-assignees,.classroom-role-permissions{color:var(--color-text-muted);font-size:12px}.classroom-role-assignees{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.classroom-role-meta-faint{color:var(--color-text-faint)}.classroom-role-permission-btn,.classroom-role-remove-btn{border-radius:var(--radius-btn,6px);min-height:44px;color:var(--color-accent-tinted-text,var(--color-accent));font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;padding:7px 10px;font-size:12px}.classroom-role-permission-btn:hover:not(:disabled){border-color:var(--color-border);background:var(--color-surface)}.classroom-role-permission-btn:disabled{color:var(--color-text-faint)}.classroom-role-compensation{grid-template-columns:minmax(90px,1fr) minmax(90px,.9fr) auto;align-items:end;gap:8px;min-width:0;display:grid}.classroom-role-field{flex-direction:column;gap:5px;min-width:0;display:flex}.classroom-role-input-wrap{min-width:0;color:var(--color-text-muted);align-items:center;gap:5px;font-size:12px;display:flex}.classroom-role-field-error{color:var(--color-danger);font-size:11px;line-height:1.3}.classroom-role-actions{justify-self:end}.classroom-role-remove-btn{color:var(--color-danger)}.classroom-role-remove-btn:hover:not(:disabled){border-color:var(--color-danger);background:var(--color-surface)}.classroom-roles-loading,.classroom-roles-empty{color:var(--color-text-muted);text-align:center;margin:0;padding:28px 0;font-size:13px}.classroom-roles-error{border:1px solid color-mix(in srgb, var(--color-danger) 35%, transparent);border-radius:var(--radius-btn,6px);background:color-mix(in srgb, var(--color-danger) 8%, var(--color-surface));color:var(--color-danger);justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px;padding:10px 12px;font-size:13px;display:flex}.classroom-roles-error button{border-radius:var(--radius-btn,6px);min-height:44px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid;flex:none;padding:6px 10px;font-size:12px}@media (max-width:1100px){.classroom-role-row{grid-template-columns:minmax(150px,1fr) minmax(120px,1fr) minmax(110px,.8fr) minmax(250px,1.5fr)}.classroom-role-actions{grid-column:4;justify-self:end;margin-top:-4px}}@media (max-width:760px){.classroom-roles-header{flex-direction:column;align-items:stretch;gap:14px}.classroom-roles-add{min-width:0}.classroom-role-row{grid-template-columns:minmax(0,1fr) auto;gap:10px 14px;padding:16px 0}.classroom-role-identity,.classroom-role-assignees,.classroom-role-permissions,.classroom-role-compensation,.classroom-role-actions{grid-column:1/-1}.classroom-role-permissions{margin-top:-4px}.classroom-role-compensation{grid-template-columns:minmax(100px,1fr) minmax(100px,1fr) auto}.classroom-role-actions{justify-self:start;margin-top:-4px}}@media (max-width:480px){.classroom-roles-add-controls,.classroom-role-compensation{flex-wrap:wrap;grid-template-columns:1fr 1fr;align-items:stretch}.classroom-roles-add-controls .classroom-role-select{flex:100%}.classroom-roles-add-btn,.classroom-role-save-btn{width:100%}.classroom-role-compensation .classroom-role-field:first-child,.classroom-role-compensation .classroom-role-save-btn{grid-column:1/-1}}
.role-perm-modal{background:var(--color-surface);border-radius:12px;flex-direction:column;width:calc(100vw - 32px);max-width:520px;max-height:calc(100vh - 80px);display:flex;overflow:auto}.role-perm-modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.role-perm-modal-header h3{margin:0;font-size:16px}.role-perm-modal-body{padding:16px 20px}.role-perm-group{margin-bottom:16px}.role-perm-group-title{color:var(--color-text-muted);margin:0 0 8px;font-size:13px;font-weight:700}.role-perm-list{margin:0;padding:0;list-style:none}.role-perm-row{border-bottom:1px solid var(--color-border);padding:8px 0}.role-perm-label{cursor:pointer;align-items:center;gap:8px;display:flex}.role-perm-label-main{color:var(--color-text);font-size:14px;font-weight:600}.role-perm-desc{color:var(--color-text-muted);margin:4px 0 0 24px;font-size:12px}.role-perm-error{color:var(--color-bank-negative);padding:0 20px;font-size:12px}.role-perm-modal-footer{border-top:1px solid var(--color-border);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.role-perm-btn-cancel,.role-perm-btn-save{border:1px solid var(--color-border);cursor:pointer;border-radius:4px;padding:8px 16px;font-size:13px;font-weight:600}.role-perm-btn-cancel{color:var(--color-text-muted);background:0 0}.role-perm-btn-save{background:var(--color-accent);border-color:var(--color-accent);color:#fff}
.classroom-bank{flex-direction:column;gap:24px;padding-top:24px;display:flex}.bank-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 24px;display:grid}.bank-summary-card{background:0 0;min-width:0;padding:0}.bank-summary-head{border-radius:var(--radius-btn);background:var(--color-surface-alt);justify-content:space-between;align-items:center;gap:12px;min-width:0;min-height:56px;padding:10px 14px;display:flex}.bank-summary-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text);font-size:15px;font-weight:800;line-height:1.4;overflow:hidden}.bank-summary-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text-muted);font-family:var(--font-display);font-size:13px;font-weight:700;line-height:1.4;overflow:hidden}.bank-summary-rate{align-items:center;gap:6px;min-width:0;display:flex}.bank-rate-input{border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);width:64px;height:32px;color:var(--color-text);font:inherit;padding:0 8px;font-size:14px;font-weight:700}.bank-rate-input:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #0075de26}.bank-rate-unit{color:var(--color-text-muted);font-size:13px;font-weight:700}.bank-rate-save{border-radius:var(--radius-btn);background:var(--color-accent);color:#fff;height:32px;font:inherit;cursor:pointer;border:0;padding:0 12px;font-size:12px;font-weight:600}.bank-rate-save:hover{background:var(--color-accent-active)}.bank-rate-save:disabled{cursor:default;opacity:.6}.bank-action-grid{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);grid-template-columns:1fr 1fr;gap:0;display:grid}@media (max-width:720px){.bank-action-grid{grid-template-columns:1fr}.bank-action-panel{border-top:1px solid var(--color-border);border-left:0}}.bank-student-panel,.bank-action-panel{background:0 0;min-width:0;padding:24px 0}.bank-student-panel{padding-right:32px}.bank-action-panel{border-left:1px solid var(--color-border);padding-left:32px}@media (max-width:960px){.bank-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.bank-summary-grid,.bank-student-list{grid-template-columns:1fr}.bank-student-panel,.bank-action-panel{padding:20px 0}.bank-action-panel{border-top:1px solid var(--color-border);border-left:0}}.bank-student-panel h3,.bank-action-panel h3{margin:0 0 16px;font-size:17px}.bank-student-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;max-height:340px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.bank-student-list>li{min-width:0}.bank-student-table{border-collapse:separate;border-spacing:0;width:100%}.bank-student-table th{border-bottom:1px solid var(--color-border);color:var(--color-text-muted);text-align:center;padding:8px 10px;font-size:12px;font-weight:700}.bank-student-table td{border-bottom:1px solid var(--color-border);text-align:center;vertical-align:middle;padding:8px 10px;font-size:13px}.bank-row-controls{justify-content:center;align-items:center;gap:6px;display:flex}.bank-student-table .bank-amount-input{border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);width:88px;min-width:0;height:30px;color:var(--color-text);font:inherit;text-align:right;padding:0 8px;font-size:12px}.bank-student-table .bank-amount-input:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #0075de26}.bank-student-table .bank-btn{flex:none;min-width:0;height:30px;padding:0 10px;font-size:12px}.bank-student-table .bank-fd-due{color:var(--color-text-muted);font-size:12px;font-weight:600}.bank-student-table .bank-fd-due.is-empty{color:var(--color-text-faint);font-weight:400}.bank-student-row{border:0;border-bottom:1px solid var(--color-border-subtle,var(--color-border));cursor:pointer;text-align:left;background:0 0;border-radius:0;grid-template-columns:28px minmax(0,1fr) auto auto;align-items:center;gap:8px;width:100%;padding:10px 8px;font-size:13px;display:grid}.bank-student-row:hover{background:var(--color-surface-alt)}.bank-student-row.is-selected{background:var(--color-accent-tinted-bg);box-shadow:inset 3px 0 0 var(--color-accent)}.bank-student-num{color:var(--color-text-faint);font-size:11px}.bank-student-balance{font-weight:600}.bank-student-fd{min-width:64px;color:var(--color-text-muted);font-size:12px;font-weight:600}.bank-student-fd.is-empty{color:var(--color-text-faint);font-weight:400}.bank-field{color:var(--color-text-muted);flex-direction:column;gap:4px;margin-bottom:8px;font-size:12px;display:flex}.bank-field input{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);padding:8px 10px;font-size:14px}.bank-btn-row{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.bank-btn{border-radius:var(--radius-btn);cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);flex:auto;min-width:90px;padding:10px 12px;font-size:13px;font-weight:600}.bank-btn-deposit{background:var(--color-bank-positive);color:#fff;border-color:var(--color-bank-positive)}.bank-btn-withdraw{background:var(--color-bank-negative);color:#fff;border-color:var(--color-bank-negative)}.bank-btn-fd{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.bank-btn:disabled{opacity:.4;cursor:not-allowed}.bank-error{color:var(--color-bank-negative);margin:8px 0 0;font-size:12px}.bank-toast{color:var(--color-bank-positive);margin:8px 0 0;font-size:12px}.bank-loading{color:var(--color-text-muted)}.bank-fd-section,.bank-txn-section{border:0;border-top:1px solid var(--color-border);background:0 0;border-radius:0;padding:28px 0 0}.bank-txn-section{overflow:visible}.bank-txn-list{min-width:0}.bank-fd-section h3,.bank-txn-section h3{margin:0 0 16px;font-size:17px}.bank-fd-list,.bank-txn-list{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.bank-fd-row{border:0;border-bottom:1px solid var(--color-border-subtle,var(--color-border));border-radius:0;grid-template-columns:1fr auto auto auto auto;align-items:center;gap:10px;padding:12px 0;font-size:13px;display:grid}.bank-fd-principal{font-weight:700}.bank-fd-rate{color:var(--color-text-muted)}.bank-fd-due{color:var(--color-accent);font-weight:600}.bank-fd-cancel{border-radius:var(--radius-btn);border:1px solid var(--color-bank-negative);color:var(--color-bank-negative);cursor:pointer;background:0 0;padding:4px 10px;font-size:12px}.bank-txn-row{border-bottom:1px solid var(--color-border-subtle,var(--color-border));grid-template-columns:132px 110px 94px 120px minmax(140px,1fr) 120px auto 64px;align-items:center;gap:8px;padding:12px 0;font-size:13px;display:grid}.bank-txn-time{color:var(--color-text-faint);font-size:11px}.bank-txn-type{border-radius:var(--radius-pill);background:var(--color-surface-alt);color:var(--color-text-muted);padding:2px 8px;font-size:11px;font-weight:600}.bank-txn-amount{font-weight:700}.bank-txn-deposit .bank-txn-amount,.bank-txn-fd_matured .bank-txn-amount,.bank-txn-fd_cancelled .bank-txn-amount,.bank-txn-correction_credit .bank-txn-amount{color:var(--color-bank-positive)}.bank-txn-withdraw .bank-txn-amount,.bank-txn-purchase .bank-txn-amount,.bank-txn-fd_open .bank-txn-amount,.bank-txn-correction_debit .bank-txn-amount{color:var(--color-bank-negative)}.bank-txn-student{font-weight:650}.bank-txn-note{color:var(--color-text-muted);font-size:12px}.bank-txn-balance,.bank-txn-by{color:var(--color-text-faint);font-size:11px}.bank-txn-correct,.bank-txn-corrected{justify-self:end;font-size:11px}.bank-txn-correct{border:1px solid var(--color-danger);border-radius:var(--radius-btn);min-height:30px;color:var(--color-danger);cursor:pointer;background:0 0;padding:5px 10px;font-weight:700}.bank-txn-correct:disabled{cursor:default;opacity:.45}.bank-txn-corrected{color:var(--color-text-faint)}.bank-pagination{flex-wrap:wrap;justify-content:center;gap:4px;padding-top:24px;display:flex}.bank-pagination button{border-radius:var(--radius-btn);width:36px;height:36px;color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0;border:0;font-size:13px;font-weight:650}.bank-pagination button:hover:not(:disabled){background:var(--color-surface-alt);color:var(--color-text)}.bank-pagination button[aria-current=page]{background:var(--color-accent-tinted-bg);color:var(--color-accent)}.bank-pagination button:disabled{opacity:1;cursor:default}.bank-rate-input:focus-visible,.bank-rate-save:focus-visible,.bank-student-row:focus-visible,.bank-field input:focus-visible,.bank-btn:focus-visible,.bank-fd-cancel:focus-visible,.bank-txn-correct:focus-visible,.bank-pagination button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (max-width:720px){.bank-fd-row{grid-template-columns:minmax(0,1fr) auto auto}.bank-fd-student{text-overflow:ellipsis;white-space:nowrap;grid-column:1/3;min-width:0;overflow:hidden}.bank-fd-cancel{grid-column:3}}.bank-txn-row{min-width:0}@media (max-width:900px){.bank-txn-row{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}.bank-txn-time,.bank-txn-type,.bank-txn-balance{justify-self:start}.bank-txn-student,.bank-txn-amount,.bank-txn-by{text-align:right;justify-self:end}.bank-txn-note{grid-column:1/-1}.bank-txn-correct,.bank-txn-corrected{grid-column:1/-1;justify-self:start}}.bank-empty{color:var(--color-text-muted);font-size:13px}
.classroom-store{flex-direction:column;gap:16px;display:flex}.classroom-store-header{justify-content:space-between;align-items:center;display:flex}.classroom-store-header h2{margin:0;font-size:18px}.classroom-store-header-actions{align-items:center;gap:8px;display:flex}.classroom-store-archive-toggle{color:var(--color-text-muted);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:6px;padding:8px 14px;font-size:13px;font-weight:500}.classroom-store-archive-toggle:hover{background:var(--color-surface-alt);color:var(--color-text)}.classroom-store-add{background:var(--color-accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-weight:600}.classroom-store-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.store-item-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;flex-direction:column;gap:0;padding:0;display:flex;overflow:hidden}.store-item-image{object-fit:cover;background:var(--color-surface-alt);border-radius:0;width:100%;height:132px;display:block}.store-item-info{padding:12px 12px 8px}.store-item-card.has-image .store-item-info{padding-top:10px}.store-item-name{font-size:14px;font-weight:700}.store-item-price{color:var(--color-accent);font-weight:700}.store-item-stock{color:var(--color-text-muted);font-size:11px}.store-item-actions{gap:4px;padding:0 12px 12px;display:flex}.store-item-edit,.store-item-archive,.store-item-restore{border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:4px;flex:1;padding:6px;font-size:12px}.store-item-archive{color:var(--color-bank-negative)}.store-item-restore{color:var(--color-accent);font-weight:600}.store-item-restore:disabled{opacity:.5;cursor:not-allowed}.store-item-editor{background:var(--color-surface);border-radius:12px;flex-direction:column;width:calc(100vw - 32px);max-width:460px;max-height:calc(100vh - 80px);display:flex;overflow:auto}.store-item-editor-header,.store-item-editor-footer{justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.store-item-editor-header{border-bottom:1px solid var(--color-border)}.store-item-editor-footer{border-top:1px solid var(--color-border);gap:8px}.store-item-editor-header h3{margin:0;font-size:16px}.store-editor-field{color:var(--color-text-muted);flex-direction:column;gap:4px;padding:10px 20px;font-size:12px;display:flex}.store-editor-field input{border:1px solid var(--color-border);border-radius:6px;padding:8px 10px;font-size:14px}.store-item-editor-footer button{cursor:pointer;border-radius:6px;padding:8px 16px;font-weight:600}.store-item-editor-footer button[type=submit]{background:var(--color-accent);color:#fff;border:1px solid var(--color-accent)}.store-item-editor-footer button[type=button]{border:1px solid var(--color-border);color:var(--color-text-muted);background:0 0}.pay-intro{border:1px solid var(--color-border);background:var(--color-accent-tinted-bg);border-radius:12px;margin-bottom:16px;padding:18px 20px}.pay-intro-eyebrow{color:var(--color-accent);margin:0 0 6px;font-size:12px;font-weight:700}.pay-intro-title{font-family:var(--font-display);color:var(--color-text);margin:0;font-size:20px;font-weight:700}.pay-intro-copy{color:var(--color-text-muted);margin:8px 0 0;font-size:13px;line-height:1.5}.pay-intro-actions{align-items:center;display:flex}.pay-manage-link{border:1px solid var(--color-border);background:var(--color-surface);min-height:36px;color:var(--color-text);border-radius:999px;justify-content:center;align-items:center;padding:0 14px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.pay-manage-link:hover{border-color:var(--color-accent);color:var(--color-accent)}.pay-grid{grid-template-columns:1fr 340px;gap:16px;display:grid}@media (max-width:900px){.pay-grid{grid-template-columns:1fr}}.pay-catalog{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:14px}.pay-catalog h3{margin:0 0 10px;font-size:14px}.pay-item-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.pay-item-btn{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;text-align:left;border-radius:8px;flex-direction:column;gap:4px;width:100%;padding:10px;transition:border-color .12s;display:flex}.pay-item-btn:hover:not(:disabled){border-color:var(--color-accent)}.pay-item-btn:disabled{opacity:.4;cursor:not-allowed}.pay-item-btn img{border-radius:4px}.pay-item-name{font-size:13px;font-weight:600}.pay-item-price{color:var(--color-accent);font-size:13px;font-weight:700}.pay-item-stock{color:var(--color-text-faint);font-size:11px}.pay-cart{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;flex-direction:column;gap:10px;padding:14px;display:flex;position:sticky;top:16px}.pay-cart-header{justify-content:space-between;align-items:baseline;display:flex}.pay-cart-header h3{margin:0;font-size:14px}.pay-cart-total{font-family:var(--font-display);color:var(--color-accent);font-size:22px;font-weight:700}.pay-cart-list{margin:0;padding:0;list-style:none}.pay-cart-row{border-bottom:1px solid var(--color-border);grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:6px 0;font-size:13px;display:grid}.pay-cart-qty{align-items:center;gap:4px;display:flex}.pay-cart-qty button{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;border-radius:4px;width:24px;height:24px}.pay-cart-qty span{text-align:center;min-width:20px;font-weight:600}.pay-cart-sub{font-weight:700}.pay-cart-empty{color:var(--color-text-muted);font-size:12px}.pay-scanner-actions{flex-direction:column;gap:6px;display:flex}.pay-scan-btn{border:1px solid var(--color-accent);background:var(--color-accent-tinted-bg);min-height:40px;color:var(--color-accent);cursor:pointer;border-radius:8px;font-size:13px;font-weight:700}.pay-scan-btn:disabled{opacity:.45;cursor:not-allowed}.pay-scan-help{color:var(--color-text-muted);margin:0;font-size:12px;line-height:1.45}.pay-scanner-panel{border:1px solid var(--color-border);background:var(--color-surface-raised,var(--color-surface));border-radius:10px;flex-direction:column;gap:10px;padding:10px;display:flex}.pay-scanner-video{aspect-ratio:4/3;object-fit:cover;background:#000;border-radius:8px;width:100%}.pay-scanner-footer{color:var(--color-text-muted);justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.pay-scanner-stop{border:1px solid var(--color-border);min-height:32px;color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:999px;padding:0 12px}.pay-token-field{flex-direction:column;gap:4px;display:flex}.pay-token-field span{color:var(--color-text-muted);font-size:12px}.pay-token-field textarea{border:1px solid var(--color-border);resize:vertical;border-radius:6px;padding:8px 10px;font-family:monospace;font-size:12px}.pay-error{color:var(--color-bank-negative);margin:0;font-size:12px}.pay-cart-actions{gap:6px;display:flex}.pay-cart-clear{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:8px 12px;font-size:13px}.pay-cart-charge{background:var(--color-accent);color:#fff;border:1px solid var(--color-accent);cursor:pointer;border-radius:6px;flex:1;padding:10px;font-size:14px;font-weight:700}.pay-cart-charge:disabled{opacity:.4;cursor:not-allowed}.pay-receipt{background:var(--color-surface);border-radius:12px;flex-direction:column;gap:12px;width:calc(100vw - 32px);max-width:420px;padding:24px;display:flex}.pay-receipt h3{margin:0}.pay-receipt-items{margin:0;padding:0;font-size:13px;list-style:none}.pay-receipt-items li{border-bottom:1px solid var(--color-border);padding:4px 0}.pay-receipt-total{text-align:right;margin-top:4px;font-size:16px;font-weight:700}.pay-receipt-close{background:var(--color-accent);color:#fff;border:1px solid var(--color-accent);cursor:pointer;border-radius:6px;align-self:flex-end;padding:8px 18px;font-weight:600}.pay-empty{color:var(--color-text-muted);font-size:13px}
