.stream-composer-title{width:100%;color:var(--color-text);font:inherit;border:0;border-bottom:1px solid var(--color-border);background:0 0;outline:0;margin-bottom:12px;padding:0 0 8px;font-size:17px;font-weight:700;line-height:1.4}.stream-composer-title::placeholder{color:var(--color-text-faint);font-weight:600}.stream-composer-title:focus{border-bottom-color:var(--color-accent)}.stream-composer-title:disabled{opacity:.55}.stream-guidance-field{flex-direction:column;gap:6px;display:flex}.stream-guidance-label{color:var(--color-text);font-size:13px;font-weight:700}.stream-guidance-input{border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);width:100%;color:var(--color-text);font:inherit;outline:0;padding:9px 12px;font-size:14px;transition:border-color .15s}.stream-guidance-input:focus{border-color:var(--color-accent)}.stream-guidance-input:disabled{opacity:.55}.stream-guidance-textarea{resize:vertical;border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);width:100%;min-height:80px;color:var(--color-text);font:inherit;outline:0;padding:9px 12px;font-size:14px;line-height:1.5;transition:border-color .15s}.stream-guidance-textarea:focus{border-color:var(--color-accent)}.stream-guidance-textarea:disabled{opacity:.55}.stream-guidance-counter{color:var(--color-text-faint);text-align:right;font-size:11px}.stream-guidance-actions{align-items:center;gap:10px;display:flex}.stream-guidance-save{border-radius:var(--radius-btn);background:var(--color-accent);color:#fff;cursor:pointer;border:0;padding:8px 16px;font-size:13px;font-weight:700;transition:background .15s}.stream-guidance-save:hover:not(:disabled){background:var(--color-accent-active)}.stream-guidance-save:disabled{background:var(--color-text-faint);cursor:not-allowed}.stream-guidance-status{color:var(--color-status-reviewed-text,#15803d);font-size:12px}.stream-guidance-error{color:var(--color-danger);font-size:12px}.stream-section-add-row{justify-content:flex-end;padding:4px 0 12px;display:flex}.stream-section-add-btn{font-size:13px}.stream-section-post-row{justify-content:flex-start;padding:0 4px 12px;display:flex}.stream-section-post-btn{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);min-height:34px;color:var(--color-text);cursor:pointer;justify-content:center;align-items:center;padding:0 12px;font-size:13px;font-weight:800;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.stream-section-post-btn:hover,.stream-section-post-btn:focus-visible{border-color:var(--color-border-hover);background:var(--color-surface-alt);outline:none}.stream-section-add-form{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;width:min(100%,520px);display:flex}.stream-section-add-input{border:1px solid var(--color-border);background:var(--color-surface);min-width:0;height:36px;color:var(--color-text);border-radius:8px;flex:180px;padding:0 11px;font-size:14px}.stream-section-add-input:focus{outline:2px solid var(--color-accent-tinted-text);outline-offset:1px}.stream-section-add-submit,.stream-section-add-cancel{cursor:pointer;border-radius:8px;height:36px;padding:0 12px;font-size:13px;font-weight:800}.stream-section-add-submit{border:1px solid var(--color-accent);background:var(--color-accent);color:#fff}.stream-section-add-cancel{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted)}.stream-section-add-submit:disabled,.stream-section-add-cancel:disabled,.stream-section-add-input:disabled{cursor:wait;opacity:.65}.stream-section-add-error{color:var(--color-danger);text-align:right;flex:1 0 100%;font-size:12px}.stream-section-group{flex-direction:column;gap:0;margin-bottom:28px;display:flex}.stream-section-group:last-child{margin-bottom:0}.stream-section-group--activity{gap:10px}.stream-section-content-item{gap:8px;display:grid;position:relative}.stream-section-guide-list{gap:8px;margin:0 0 12px;display:grid}.stream-section-guide-label{color:var(--color-accent);padding:0 4px;font-size:12px;font-weight:900}.stream-section-guide-grid{width:100%}.stream-section-guide-list .stream-post:first-of-type{border-top-left-radius:8px;border-top-right-radius:8px}.stream-section-guide-list .stream-post:last-child{border-bottom-right-radius:8px;border-bottom-left-radius:8px}.stream-section-content-order{justify-content:flex-end;align-items:center;gap:4px;min-height:28px;padding:0 4px;display:inline-flex}.stream-section-header{justify-content:space-between;align-items:center;gap:12px;padding:6px 4px 14px;display:flex}.stream-section-heading{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.stream-section-title{font-family:var(--font-display);letter-spacing:0;color:var(--color-accent);word-break:break-word;margin:0;font-size:20px;font-weight:800}.stream-section-inline-actions{align-items:center;gap:4px;display:inline-flex}.stream-section-icon-btn{--ui-icon-action-size:28px;flex:none}.stream-section-slideshow-btn{color:var(--color-text-faint)}.stream-section-slideshow-btn.is-active{color:var(--color-accent)}.stream-section-slideshow-btn:not(.is-active):hover,.stream-section-slideshow-btn:not(.is-active):focus-visible{color:var(--color-text-muted)}.stream-section-template-badge{background:var(--color-accent-tinted-bg);min-height:24px;color:var(--color-accent-tinted-text);border-radius:999px;align-items:center;padding:3px 8px;font-size:12px;font-weight:800;line-height:1.2;display:inline-flex}.stream-section-menu{flex:none;align-items:center;gap:8px;display:inline-flex}.stream-section-template-open{border:1px solid var(--color-border);background:var(--color-surface);min-height:32px;color:var(--color-text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 11px;font-size:13px;font-weight:700;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.stream-section-template-open:hover,.stream-section-template-open:focus-visible{border-color:var(--color-border-hover);background:var(--color-surface-alt);outline:none}.stream-section-template-open:disabled{opacity:.6;cursor:wait}.stream-section-menu-toggle{border:1px solid var(--color-border);background:var(--color-surface);width:30px;height:30px;color:var(--color-text-muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:16px;line-height:1;transition:background .15s,border-color .15s;display:inline-flex}.stream-section-menu-toggle:hover,.stream-section-menu-toggle:focus-visible{background:var(--color-surface-alt);border-color:var(--color-border-hover);color:var(--color-text);outline:none}.stream-section-empty{border:1px dashed var(--color-border);color:var(--color-text-faint);text-align:center;border-radius:8px;padding:18px;font-size:13px}.stream-activity-panel{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-card);border-radius:8px;margin-bottom:0}.stream-activity-muted{min-height:280px;color:var(--color-text-faint);place-items:center;margin:0;padding:16px;font-size:13px;line-height:1.5;display:grid}.stream-window-panel{min-height:clamp(520px,68vh,760px);padding:16px}.stream-window-board{width:100%;min-height:inherit;border:2px solid var(--color-accent);background:#fff;border-radius:8px;grid-template-rows:repeat(3,minmax(150px,1fr));grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.stream-window-board>div{min-width:0;min-height:0;color:var(--color-text-muted);background:#fff;border:1px solid #1f8a7047;flex-direction:column;gap:10px;padding:12px;display:flex;overflow:auto}.stream-window-board .stream-window-center{background:var(--color-accent-tinted-bg);color:var(--color-accent)}.stream-window-cell-label{color:var(--color-text);flex:none;font-size:13px;font-weight:900;line-height:1.2}.stream-window-center .stream-window-cell-label{color:var(--color-accent)}.stream-window-note-stack{align-content:start;gap:8px;display:grid}.stream-window-note{color:var(--color-text);background:#fffdf2;border:1px solid #1f8a7033;border-radius:7px;gap:4px;padding:9px 10px;display:grid;box-shadow:0 1px #0e14120d}.stream-window-note strong{font-size:12px;line-height:1.3}.stream-window-note p{color:var(--color-text-muted);overflow-wrap:anywhere;margin:0;font-size:12px;line-height:1.45}.stream-template-inline-actions{justify-self:start;align-items:center;gap:8px;display:flex}.stream-template-inline-edit{min-height:22px;color:var(--color-accent);font-family:var(--font-body);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;border-radius:0;justify-self:start;padding:0;font-size:11px;font-weight:900;text-decoration:underline}.stream-template-inline-edit:hover,.stream-template-inline-edit:focus-visible{color:var(--color-accent-tinted-text);outline:none}.stream-template-inline-delete{color:var(--color-danger,#dc2626)}.stream-template-inline-delete:hover,.stream-template-inline-delete:focus-visible{color:#b91c1c}.stream-window-cell-input{gap:6px;margin-top:auto;display:grid}.quick-text-form-row{gap:inherit;min-width:0;display:flex}.stream-window-cell-input input,.stream-word-input input,.stream-timeline-input input{border:1px solid var(--color-border);background:var(--color-surface);min-width:0;color:var(--color-text);font:inherit;border-radius:7px}.stream-window-cell-input input{width:100%;height:32px;padding:6px 8px;font-size:12px}.stream-window-cell-input button,.stream-word-input button,.stream-timeline-input button{border:1px solid var(--color-accent);background:var(--color-accent);color:#fff;cursor:pointer;border-radius:7px;flex:none;font-weight:800}.stream-window-cell-input button{height:32px;padding:0 9px;font-size:12px}.stream-window-cell-input button:disabled,.stream-word-input button:disabled,.stream-timeline-input button:disabled{opacity:.45;cursor:not-allowed}.stream-word-panel{grid-template-rows:auto minmax(0,1fr) auto;gap:16px;min-height:clamp(420px,58vh,640px);padding:28px;display:grid}.stream-word-toolbar{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.stream-word-toolbar span{min-width:0;color:var(--color-text-muted);overflow-wrap:anywhere;font-size:12px;font-weight:800}.stream-word-toolbar button{border:1px solid var(--color-accent);background:var(--color-accent);color:#fff;min-height:32px;font-family:var(--font-body);cursor:pointer;border-radius:7px;flex:none;padding:6px 12px;font-size:12px;font-weight:900}.stream-word-toolbar button:disabled{border-color:var(--color-border);background:var(--color-surface-alt);color:var(--color-text-faint);cursor:not-allowed}.stream-word-stage{place-items:center;min-height:0;display:grid}.stream-word-cloud{aspect-ratio:4/3;width:100%;min-height:320px;position:relative;overflow:hidden}.stream-word-cloud span{color:var(--color-accent);text-align:center;white-space:nowrap;word-break:keep-all;overflow-wrap:normal;font-weight:900;line-height:1.1;display:inline-block;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.stream-word-input,.stream-word-input-block{justify-self:center;gap:8px;width:min(560px,100%);display:grid}.stream-word-input-block .stream-word-input{width:100%}.stream-word-response-list{flex-wrap:wrap;gap:6px;min-width:0;display:flex}.stream-word-response-item{max-width:100%;min-height:28px;color:var(--color-text-muted);font-family:var(--font-body);cursor:pointer;background:0 0;border:0;border-radius:0;align-items:center;gap:6px;padding:0;font-size:12px;font-weight:800;display:inline-flex}.stream-word-response-item span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.stream-word-response-item strong{color:var(--color-accent);text-underline-offset:3px;flex:none;font-size:11px;text-decoration:underline}.stream-word-response-item:hover strong,.stream-word-response-item:focus-visible strong{color:var(--color-accent-tinted-text)}.stream-word-response-item:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.stream-word-input input{flex:auto;height:40px;padding:8px 10px}.stream-word-input button{height:40px;padding:0 16px}.quick-text-form-status{min-height:18px;color:var(--color-text-faint);text-align:center;margin:2px 0 0;font-size:12px;font-weight:800}.quick-text-form-status.is-success{color:var(--color-accent-tinted-text)}.quick-text-form-status.is-error{color:#b42318}.stream-timeline-panel{grid-template-rows:minmax(0,1fr) auto;min-height:clamp(420px,58vh,640px);padding:18px 0 0;display:grid}.stream-timeline-stage{align-items:stretch;min-height:0;padding:18px 18px 24px;display:flex;overflow:auto hidden}.stream-timeline-list{align-items:stretch;gap:0;min-width:max(100%,720px);min-height:340px;margin:0;padding:0 32px;list-style:none;display:flex;position:relative}.stream-timeline-list:before{content:"";background:linear-gradient(90deg,#1f8a7033,#1f8a70b3,#1f8a7033);border-radius:999px;height:3px;position:absolute;top:50%;left:32px;right:32px}.stream-timeline-list li{flex:1 0 180px;min-width:180px;min-height:340px;position:relative}.stream-timeline-list li:last-child{border-bottom:0}.stream-timeline-node{border:3px solid var(--color-accent);background:var(--color-surface);z-index:2;border-radius:999px;width:15px;height:15px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 4px #1f8a7024}.stream-timeline-stem{background:#1f8a7066;width:2px;height:58px;position:absolute;left:50%;transform:translate(-50%)}.stream-timeline-list li.is-above .stream-timeline-stem{bottom:50%}.stream-timeline-list li.is-below .stream-timeline-stem{top:50%}.stream-timeline-event{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;gap:6px;width:min(168px,100% - 16px);padding:12px;display:grid;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 10px 24px #0f172a14}.stream-timeline-list li.is-above .stream-timeline-event{bottom:calc(50% + 58px)}.stream-timeline-list li.is-below .stream-timeline-event{top:calc(50% + 58px)}.stream-timeline-list time{color:var(--color-accent);font-size:13px;font-weight:900;line-height:1.25}.stream-timeline-event span{min-width:0;color:var(--color-text);overflow-wrap:anywhere;font-size:14px;line-height:1.45}.stream-timeline-input{border-top:1px solid var(--color-border);background:var(--color-surface);grid-template-columns:160px minmax(0,1fr) auto;gap:8px;padding:12px;display:grid}.stream-timeline-input input{height:40px;padding:8px 10px}.stream-timeline-input button{height:40px;padding:0 16px}.stream-map-panel{grid-template-columns:minmax(0,1fr) 260px;min-height:clamp(520px,68vh,760px);display:grid;overflow:hidden}.stream-map-canvas{min-height:inherit;background:var(--color-surface-alt)}.stream-map-sidebar{border-left:1px solid var(--color-border);background:var(--color-surface);flex-direction:column;min-width:0;display:flex}.stream-map-toolbar{border-bottom:1px solid var(--color-border);gap:3px;padding:12px;display:grid}.stream-map-toolbar strong{font-size:14px}.stream-map-toolbar span,.stream-map-error{color:var(--color-text-faint);font-size:12px}.stream-map-error{color:var(--color-danger);padding:10px 12px}.stream-map-place-list{border-bottom:1px solid var(--color-border);gap:0;max-height:168px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.stream-map-place-list li{border-bottom:1px solid var(--color-border);grid-template-columns:1fr auto;align-items:center;gap:4px;padding:7px 8px;display:grid}.stream-map-place-list li:last-child{border-bottom:0}.stream-map-place-list li.is-selected{background:var(--color-accent-tinted-bg)}.stream-map-place-list button{color:var(--color-text);cursor:pointer;font:inherit;background:0 0;border:0}.stream-map-place-list>li>button{text-align:left;align-items:center;gap:7px;min-width:0;padding:4px;font-size:13px;font-weight:800;display:flex}.stream-map-place-list>li>button span{background:var(--color-accent);color:#fff;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:12px;display:inline-grid}.stream-map-place-list li>div{gap:2px;display:flex}.stream-map-place-list li>div button{width:24px;height:24px;color:var(--color-text-muted);border-radius:6px}.stream-map-place-list button:disabled{opacity:.35;cursor:not-allowed}.stream-map-editor{gap:8px;padding:12px;display:grid}.stream-map-editor input,.stream-map-editor textarea{box-sizing:border-box;border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text);font:inherit;border-radius:8px}.stream-map-editor input{height:36px;padding:7px 9px;font-weight:800}.stream-map-editor textarea{resize:vertical;min-height:88px;padding:9px;line-height:1.45}.stream-map-editor>div{gap:8px;display:flex}.stream-map-editor button{border:1px solid var(--color-border);background:var(--color-surface-alt);height:34px;color:var(--color-text);cursor:pointer;border-radius:8px;padding:0 12px;font-weight:800}.stream-template-modal{width:min(92vw,620px)}.stream-template-modal-section{color:var(--color-text-muted);margin:0 0 12px;font-size:13px;font-weight:800}.stream-section-prompt-modal{width:min(92vw,560px)}.stream-section-prompt-form{gap:12px;display:grid}.stream-section-prompt-field{gap:6px;display:grid}.stream-section-prompt-field span{color:var(--color-text);font-size:13px;font-weight:800}.stream-section-prompt-field input,.stream-section-prompt-field textarea{border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text);font-family:var(--font-body);border-radius:8px;font-size:14px}.stream-section-prompt-field input{height:40px;padding:0 11px}.stream-section-prompt-field textarea{resize:vertical;min-height:104px;padding:10px 11px;line-height:1.5}.stream-section-prompt-field input:focus-visible,.stream-section-prompt-field textarea:focus-visible{border-color:var(--color-accent);outline:none}.stream-template-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.stream-template-card{border:1px solid var(--color-border);background:var(--color-surface);min-height:156px;color:var(--color-text);text-align:left;cursor:pointer;border-radius:8px;gap:8px;padding:14px 12px 12px;transition:background .12s,border-color .12s,box-shadow .12s;display:grid}.stream-template-card:hover,.stream-template-card:focus-visible{border-color:var(--color-border-hover);background:var(--color-surface-alt);outline:none}.stream-template-card.is-selected{border-color:var(--color-accent);background:var(--color-accent-tinted-bg)}.stream-template-card:disabled{cursor:wait;opacity:.7}.stream-template-card-preview{aspect-ratio:5/3;width:100%;display:block;overflow:hidden}.stream-template-preview-bg{fill:#0000;stroke:#0000}.stream-template-preview-line{fill:none;stroke:var(--color-accent);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.stream-template-preview-accent-fill{fill:var(--color-accent-tinted-bg);stroke:var(--color-accent);stroke-width:1px}.stream-template-preview-word text{fill:var(--color-accent);letter-spacing:0;font-size:14px;font-weight:900}.stream-template-preview-word text:first-child{font-size:24px}.stream-template-preview-dot{fill:var(--color-accent-tinted-text);opacity:.35}.stream-template-preview-map-land{fill:var(--color-accent-tinted-bg);stroke:var(--color-border);stroke-width:1.5px}.stream-template-preview-pin{fill:var(--color-accent);stroke:var(--color-surface);stroke-width:1.5px}.stream-template-preview-timeline{fill:var(--color-accent);stroke:var(--color-accent);stroke-width:2.5px;stroke-linecap:round}.stream-template-card-title{color:var(--color-text);font-size:15px;font-weight:900}.stream-template-modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.stream-composer-section-field,.stream-composer-poll-field{flex:220px;align-items:center;gap:8px;min-width:0;margin-left:4px;display:inline-flex}.stream-composer-section-label{color:var(--color-text);white-space:nowrap;font-size:15px;font-weight:800}.stream-composer-section-select{box-sizing:border-box;border:1px solid var(--color-border);background:var(--color-surface);width:100%;min-width:180px;height:40px;color:var(--color-text);cursor:pointer;appearance:none;background-image:linear-gradient(45deg,#0000 50%,#6f7569 50%),linear-gradient(135deg,#6f7569 50%,#0000 50%);background-position:calc(100% - 16px),calc(100% - 11px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;border-radius:8px;padding:8px 34px 8px 10px;font-size:14px}.stream-composer-section-select:focus{outline:2px solid var(--color-accent);outline-offset:1px}.stream-composer-section-select:disabled{opacity:.6;cursor:not-allowed}.stream-composer-poll-labels{flex-wrap:wrap;flex:240px;gap:6px;min-width:0;display:flex}.stream-composer-poll-labels input{box-sizing:border-box;border:1px solid var(--color-border);background:var(--color-surface);min-width:0;height:40px;color:var(--color-text);border-radius:8px;flex:96px;padding:8px 10px;font-size:14px}.slideshow-overlay-section{background:#fff}.slideshow-section-stage{text-align:center;flex:1;justify-content:center;align-items:center;min-height:0;padding:48px 64px;display:flex}.slideshow-section-title{font-family:var(--font-display);letter-spacing:0;color:var(--color-accent);word-break:break-word;margin:0;font-size:64px;font-weight:800;line-height:1.15}.slideshow-activity-stage{flex:1;min-height:0;padding:24px clamp(18px,4vw,56px);display:grid}.slideshow-activity-stage .stream-activity-panel{width:100%;height:100%;min-height:0;box-shadow:none}.slideshow-activity-stage .stream-window-panel,.slideshow-activity-stage .stream-map-panel,.slideshow-activity-stage .stream-word-panel,.slideshow-activity-stage .stream-timeline-panel{min-height:0}.slideshow-activity-stage .stream-word-cloud{aspect-ratio:auto;height:100%;min-height:0}.slideshow-activity-stage .stream-activity-muted{min-height:0}@media (max-width:640px){.slideshow-section-stage{padding:36px 24px}.slideshow-activity-stage{padding:16px 12px}.slideshow-section-title{font-size:38px}}
.stream-section-breakout-open.is-active{border-color:var(--color-accent);background:var(--color-accent-tinted-bg);color:var(--color-accent-tinted-text)}.stream-breakout-teacher{flex-direction:column;gap:12px;display:flex}.stream-breakout-segments{border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:4px 16px;padding:0;display:flex}.stream-breakout-segments button{min-height:34px;color:var(--color-text-muted);font-family:var(--font-body);letter-spacing:0;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;padding:4px 0 8px;font-size:13px;font-weight:700;transition:border-color .12s,color .12s}.stream-breakout-segments button:hover,.stream-breakout-segments button:focus-visible{border-bottom-color:var(--color-border-hover);color:var(--color-text);background:0 0;outline:none}.stream-breakout-segments button.is-active{border-bottom-color:var(--color-accent);color:var(--color-accent-tinted-text);background:0 0}.stream-breakout-compare{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:14px;display:grid}.stream-breakout-compare .stream-post-grid:not(.stream-post-masonry){grid-template-columns:minmax(0,1fr)}.stream-breakout-group-area,.stream-breakout-group-view{flex-direction:column;gap:10px;min-width:0;display:flex}.stream-breakout-group-area{background:0 0;border:0;border-radius:0;padding:0}.stream-breakout-compare .stream-activity-panel{min-height:0;box-shadow:none}.stream-breakout-compare .stream-window-panel,.stream-breakout-compare .stream-word-panel,.stream-breakout-compare .stream-timeline-panel{aspect-ratio:4/3;height:auto;max-height:none}.stream-breakout-compare .stream-window-panel{padding:8px}.stream-breakout-compare .stream-window-board{grid-template-rows:repeat(3,minmax(0,1fr));height:100%;min-height:0}.stream-breakout-compare .stream-window-board>div{gap:5px;padding:7px}.stream-breakout-compare .stream-window-cell-label,.stream-breakout-compare .stream-window-note strong,.stream-breakout-compare .stream-window-note p{font-size:10px}.stream-breakout-compare .stream-window-note{padding:6px}.stream-breakout-compare .stream-word-panel,.stream-breakout-compare .stream-timeline-panel{padding:10px}.stream-breakout-compare .stream-window-cell-input{gap:4px}.stream-breakout-compare .stream-window-cell-input input,.stream-breakout-compare .stream-window-cell-input button{height:24px;font-size:10px}.stream-breakout-compare .stream-word-input,.stream-breakout-compare .stream-timeline-input{gap:6px}.stream-breakout-compare .stream-word-cloud{aspect-ratio:auto;height:100%;min-height:0}.stream-breakout-compare .stream-word-input input,.stream-breakout-compare .stream-word-input button,.stream-breakout-compare .stream-timeline-input input,.stream-breakout-compare .stream-timeline-input button{height:30px;font-size:11px}.stream-breakout-compare .stream-timeline-input{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;padding:8px}.stream-breakout-group-area-head{border-bottom:0;justify-content:flex-start;align-items:center;gap:8px;min-height:24px;padding:0;display:flex}.stream-breakout-group-title-row{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.stream-breakout-group-area-name{font-family:var(--font-display);color:var(--color-accent);font-size:15px;font-weight:800}.stream-breakout-group-area-count,.stream-breakout-my-group span:last-child{color:var(--color-text-muted);font-size:12px;font-weight:700}.stream-breakout-group-post-toggle{min-height:26px;color:var(--color-accent);font-family:var(--font-body);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;border-radius:0;flex:none;padding:0;font-size:12px;font-weight:900;text-decoration:underline}.stream-breakout-group-post-toggle:hover,.stream-breakout-group-post-toggle:focus-visible{color:var(--color-accent-tinted-text);outline:none}.stream-breakout-member-list{flex-wrap:wrap;flex:1 0 100%;align-items:center;gap:4px;min-width:0;display:inline-flex}.stream-breakout-member-chip{border-radius:var(--radius-pill);background:var(--color-surface-alt);min-height:24px;color:var(--color-text-muted);align-items:center;gap:4px;padding:3px 6px 3px 8px;font-size:12px;font-weight:800;line-height:1.2;display:inline-flex}.stream-breakout-member-chip button{border-radius:var(--radius-pill);width:18px;height:18px;color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0;border:0;place-items:center;line-height:1;display:inline-grid}.stream-breakout-member-chip button:hover:not(:disabled),.stream-breakout-member-chip button:focus-visible{background:color-mix(in srgb, var(--color-danger) 10%, transparent);color:var(--color-danger)}.stream-breakout-member-chip button:disabled{cursor:wait;opacity:.45}.stream-breakout-my-group{background:0 0;border:0;border-radius:0;align-self:flex-start;align-items:baseline;gap:8px;padding:0;display:inline-flex}.stream-breakout-my-group span:first-child{color:var(--color-accent-tinted-text);font-weight:800}.stream-breakout-modal{width:min(92vw,760px)}.stream-breakout-modal .group-roster-editor{gap:10px}.stream-breakout-modal .group-roster-toolbar{gap:6px}.stream-breakout-modal .group-roster-toolbar button,.stream-breakout-modal .group-roster-name-field button{min-height:28px;padding:0 9px;font-size:12px}.stream-breakout-modal .group-roster-name-grid{flex-wrap:wrap;gap:6px 8px;display:flex}.stream-breakout-modal .group-roster-name-field{grid-template-columns:auto minmax(78px,118px) auto;gap:6px}.stream-breakout-modal .group-roster-name-field input,.stream-breakout-modal .group-roster-table select{min-height:30px;font-size:12px}.stream-breakout-modal .group-roster-name-field input{border:0;border-bottom:1px solid var(--color-border);background:0 0;border-radius:0;min-height:28px;padding:0 4px}.stream-breakout-modal .group-roster-name-field input:hover:not(:disabled),.stream-breakout-modal .group-roster-name-field input:focus{border-bottom-color:var(--color-accent);outline:none}.stream-breakout-modal .group-roster-name-field button{min-height:28px;color:var(--color-danger);background:0 0;border:0;border-radius:0;padding:0 2px;font-weight:800}.stream-breakout-modal .group-roster-name-field button:hover:not(:disabled),.stream-breakout-modal .group-roster-name-field button:focus-visible{color:var(--color-danger);background:0 0;outline:none;text-decoration:underline}.stream-breakout-modal .group-roster-table-wrap{border-top:1px solid var(--color-border);max-height:min(42vh,380px)}.stream-breakout-modal .group-roster-table{display:block}.stream-breakout-modal .group-roster-table thead{display:none}.stream-breakout-modal .group-roster-table tbody{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0 14px;display:grid}.stream-breakout-modal .group-roster-table tr{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) 104px;align-items:center;min-height:38px;display:grid}.stream-breakout-modal .group-roster-table th,.stream-breakout-modal .group-roster-table td{border-bottom:0;min-width:0;padding:4px 0;display:block}.stream-breakout-modal .group-roster-table td:first-child{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.stream-breakout-modal .group-roster-table select{padding:0 8px}.stream-breakout-form{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stream-breakout-field{flex-direction:column;gap:6px;display:flex}.stream-breakout-field span{color:var(--color-text-muted);font-size:13px;font-weight:800}.stream-breakout-field input{border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text);font-family:var(--font-body);border-radius:8px;padding:9px 11px;font-size:15px}.stream-breakout-field input:focus-visible{border-color:var(--color-accent);outline:none}.stream-breakout-modal-hint{color:var(--color-text-faint);margin:12px 0 0;font-size:12px}.stream-breakout-layouts{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.stream-breakout-layouts-label{color:var(--color-text-muted);font-size:12px;font-weight:700}.stream-breakout-layouts-list{flex-wrap:wrap;gap:4px;display:flex}
.aura-eval-control{border-top:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface-alt) 72%, transparent);border-radius:0 0 var(--radius-card) var(--radius-card);margin:14px -20px -20px;overflow:hidden}.aura-eval-segmented{background:0 0;border:0;border-radius:0;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;display:grid;overflow:hidden}.aura-eval-btn{border:0;border-right:1px solid var(--color-border);min-width:0;min-height:34px;color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0;padding:7px 8px;font-size:13px;font-weight:700;line-height:1.35;transition:background .12s,color .12s}.aura-eval-btn:last-child{border-right:0}.aura-eval-btn:not(:disabled):hover{background:var(--color-surface);color:var(--color-text)}.aura-eval-btn.is-selected{background:var(--color-accent-tinted-bg);color:var(--color-accent)}.aura-eval-btn:disabled{cursor:wait;opacity:.7}.aura-eval-error{border-top:1px solid var(--color-border);color:var(--color-danger);background:var(--color-surface);margin:0;padding:6px 10px 8px;font-size:12px;line-height:1.45}.card-detail-aura-eval .aura-eval-control{border:1px solid var(--color-border);border-radius:var(--radius-card);margin:2px 0 8px}

.assign-board{max-width:var(--container-max-width);margin:0 auto}.assign-description{background:var(--color-accent-tinted-bg);border-radius:var(--radius-card);color:var(--color-text);border:1px solid #0075de26;margin-bottom:20px;padding:16px 20px;font-size:14px;line-height:1.6}.assign-progress{margin-bottom:24px}.assign-progress-text{color:var(--color-text);margin-bottom:8px;font-size:14px;font-weight:600;display:block}.assign-progress-bar{background:var(--color-surface-alt);border-radius:4px;height:8px;overflow:hidden}.assign-progress-fill{background:var(--color-accent);border-radius:4px;height:100%;transition:width .3s}.assign-card{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:8px;padding:20px 12px;transition:box-shadow .15s,border-color .15s,transform .15s;display:flex}.assign-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.assign-card-none{opacity:.5;cursor:default}.assign-card-none:hover{box-shadow:var(--shadow-card);transform:none}.assign-card-submitted{border-color:#1565c0}.assign-card-reviewed{border-color:#2e7d32}.assign-card-returned{border-color:#c62828}.assign-card-avatar{background:var(--color-accent-tinted-bg);width:48px;height:48px;color:var(--color-accent);border-radius:50%;justify-content:center;align-items:center;font-size:20px;font-weight:700;display:flex}.assign-card-name{color:var(--color-text);font-size:13px;font-weight:600}.assign-card-status{border-radius:var(--radius-pill);padding:3px 8px;font-size:11px;font-weight:600}.assign-card-status.status-submitted{color:#1565c0;background:#e3f2fd}.assign-card-status.status-reviewed{color:#2e7d32;background:#e8f5e9}.assign-card-status.status-returned{color:#c62828;background:#fce4ec}.assign-card-grade{color:var(--color-accent);font-size:14px;font-weight:700}.assign-student-view{max-width:600px;margin:0 auto}.assign-my-submission{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:24px}.assign-my-header{align-items:center;gap:10px;margin-bottom:16px;display:flex}.assign-badge-submitted{color:#1565c0;border-radius:var(--radius-pill);background:#e3f2fd;padding:4px 12px;font-size:12px;font-weight:600}.assign-badge-reviewed{color:#2e7d32;border-radius:var(--radius-pill);background:#e8f5e9;padding:4px 12px;font-size:12px;font-weight:600}.assign-badge-returned{color:#c62828;border-radius:var(--radius-pill);background:#fce4ec;padding:4px 12px;font-size:12px;font-weight:600}.assign-my-grade{color:var(--color-accent);font-size:16px;font-weight:700}.assign-my-content{color:var(--color-text);white-space:pre-wrap;margin-bottom:12px;font-size:14px;line-height:1.6}.assign-empty-state{text-align:center;background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:60px 24px}.assign-empty-state p{color:var(--color-text-muted);margin:0 0 20px;font-size:15px}.assign-submit-btn-large{padding:14px 32px;font-size:16px}.assign-table-wrap{border:var(--border-card);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);overflow-x:auto}.assign-table{border-collapse:collapse;width:100%;font-size:14px}.assign-th-task,.assign-th-student{text-align:left;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);background:var(--color-bg);white-space:nowrap;padding:14px 16px;font-size:13px;font-weight:600}.assign-th-student{text-align:center;min-width:100px}.assign-td-task{color:var(--color-text);border-bottom:1px solid var(--color-border);max-width:240px;padding:14px 16px;font-weight:600}.assign-td-status{text-align:center;border-bottom:1px solid var(--color-border);cursor:pointer;padding:10px 12px;transition:background .1s}.assign-td-status:hover{background:var(--color-surface-alt)}.assign-badge{border-radius:var(--radius-pill);padding:4px 10px;font-size:12px;font-weight:600;display:inline-block}.status-submitted .assign-badge,.assign-badge.status-submitted{color:#1565c0;background:#e3f2fd}.status-reviewed .assign-badge,.assign-badge.status-reviewed{color:#2e7d32;background:#e8f5e9}.status-returned .assign-badge,.assign-badge.status-returned{color:#c62828;background:#fce4ec}.status-none{cursor:default}.assign-badge-empty{color:var(--color-text-faint);font-size:12px}.assign-add-btn{border:2px dashed var(--color-border);border-radius:var(--radius-card);color:var(--color-text-faint);font-family:var(--font-body);cursor:pointer;background:0 0;width:100%;margin-top:20px;padding:12px 24px;font-size:14px;font-weight:500;transition:border-color .15s,color .15s}.assign-add-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.assign-student-list{flex-direction:column;gap:16px;display:flex}.assign-student-card{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:20px 24px}.assign-student-card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.assign-student-task-title{font-family:var(--font-display);margin:0;font-size:16px;font-weight:700}.assign-student-submission{border-top:1px solid var(--color-border);color:var(--color-text-muted);padding:12px 0;font-size:14px}.assign-student-submission p{margin:0 0 8px}.assign-link{color:var(--color-accent);word-break:break-all;font-size:13px;text-decoration:none;display:inline-block}.assign-link:hover{text-decoration:underline}.assign-feedback{background:var(--color-accent-tinted-bg);border-radius:6px;margin-top:8px;padding:8px 12px;font-size:13px}.assign-grade{color:var(--color-accent);margin-top:4px;font-size:13px;font-weight:600}.assign-submit-btn{background:var(--color-accent);color:#fff;border-radius:var(--radius-btn);font-family:var(--font-body);cursor:pointer;border:none;margin-top:12px;padding:8px 20px;font-size:13px;font-weight:600;transition:background .15s}.assign-submit-btn:hover{background:var(--color-accent-active)}.assign-view-meta{align-items:center;gap:8px;margin-bottom:8px;display:flex}.assign-view-content{background:var(--color-bg);border:1px solid var(--color-border);white-space:pre-wrap;border-radius:8px;min-height:60px;padding:12px;font-size:14px}.assign-board--teacher,.assign-board--student{max-width:var(--container-max-width);margin:0 auto;padding-bottom:32px}.assign-deadline{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);margin-bottom:16px;padding:16px 18px}.assign-deadline__header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.assign-deadline__eyebrow{color:var(--color-text-muted);margin:0 0 3px;font-size:12px;font-weight:600}.assign-deadline__title{margin:0;font-size:17px;line-height:1.3}.assign-deadline__current{color:var(--color-text-muted);text-align:right;font-size:12px;line-height:1.4}.assign-deadline__form{align-items:flex-end;gap:12px;display:flex}.assign-deadline__field{flex-direction:column;gap:5px;min-width:min(100%,280px);display:flex}.assign-deadline__field label{color:var(--color-text);font-size:13px;font-weight:600}.assign-deadline__field input{border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-bg-alt);min-height:44px;color:var(--color-text);font:inherit;padding:8px 10px}.assign-deadline__field input:focus{outline:2px solid var(--color-accent);outline-offset:1px}.assign-deadline__help{color:var(--color-text-muted);font-size:12px;line-height:1.35}.assign-deadline__form .assign-btn{white-space:nowrap;min-height:44px}.assign-deadline__error,.assign-deadline__notice{margin:10px 0 0;font-size:13px}.assign-deadline__error{color:var(--color-status-returned-text)}.assign-deadline__notice{color:var(--color-status-submitted-text)}.assign-guide{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);margin-bottom:16px;padding:14px 18px}.assign-guide__label{color:var(--color-text-muted);letter-spacing:.125px;margin-bottom:6px;font-size:12px;font-weight:600}.assign-guide__body{white-space:pre-wrap;font-size:15px;line-height:1.5}.assign-deadline-status{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);flex-wrap:wrap;align-items:center;gap:12px;padding:14px 18px;display:flex}.assign-deadline-status>div{flex-direction:column;gap:3px;min-width:0;display:flex}.assign-deadline-status__label{color:var(--color-text-muted);font-size:12px;font-weight:600}.assign-deadline-status strong{font-size:15px;line-height:1.35}.assign-deadline-status__state{border-radius:var(--radius-pill);background:var(--color-status-submitted-bg);color:var(--color-status-submitted-text);white-space:nowrap;margin-left:auto;padding:3px 9px;font-size:12px;font-weight:700}.assign-deadline-status.is-overdue{border-color:var(--color-status-returned-text)}.assign-deadline-status.is-overdue .assign-deadline-status__state{background:var(--color-status-returned-bg);color:var(--color-status-returned-text)}.assign-deadline-status p{color:var(--color-status-returned-text);flex-basis:100%;margin:0;font-size:12px;line-height:1.4}.assign-inline-error{background:var(--color-status-returned-bg);color:var(--color-status-returned-text);border-radius:var(--radius-btn);margin-bottom:12px;padding:10px 14px;font-size:13px}.assign-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.assign-board--matrix .assign-grid{grid-template-columns:1fr}.assign-grid__empty{text-align:center;background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-card);color:var(--color-text-muted);padding:32px}.assign-grid__empty-hint{color:var(--color-text-faint);margin-top:6px;font-size:13px}.assign-slot{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);cursor:pointer;text-align:left;color:inherit;flex-direction:column;gap:8px;padding:10px;font-family:inherit;transition:border-color 80ms;display:flex}.assign-slot:hover{border-color:var(--color-border-hover)}.assign-slot:disabled{opacity:.6;cursor:not-allowed}.assign-slot__head{justify-content:space-between;align-items:center;gap:6px;display:flex}.assign-slot__num{color:var(--color-text-muted);letter-spacing:.1px;font-size:11px;font-weight:600}.assign-slot__thumb{aspect-ratio:4/3;background:var(--color-slot-placeholder);border-radius:8px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.assign-slot__img{object-fit:cover;width:100%;height:100%;display:block}.assign-slot__placeholder{color:var(--color-text-faint);font-size:24px;font-weight:700}.assign-slot__name{font-size:13px;font-weight:600}.assign-badge{border-radius:var(--radius-pill);letter-spacing:.125px;white-space:nowrap;align-items:center;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.assign-badge--assigned{background:var(--color-surface-alt);color:var(--color-text-muted)}.assign-badge--submitted,.assign-badge--viewed{background:var(--color-status-submitted-bg);color:var(--color-status-submitted-text)}.assign-badge--reviewed{background:var(--color-status-reviewed-bg);color:var(--color-status-reviewed-text)}.assign-badge--returned{background:var(--color-status-returned-bg);color:var(--color-status-returned-text)}.assign-badge--orphaned{background:var(--color-surface-alt);color:var(--color-text-faint)}.assign-return-banner{background:var(--color-status-returned-bg);border-radius:var(--radius-card);border:1px solid #ffcdd2;align-items:flex-start;gap:12px;margin-bottom:14px;padding:14px 18px;display:flex}.assign-return-banner__icon{color:var(--color-status-returned-text);font-size:20px;font-weight:700;line-height:1.1}.assign-return-banner__title{color:var(--color-status-returned-text);letter-spacing:.1px;margin-bottom:4px;font-size:13px;font-weight:700}.assign-return-banner__reason{color:var(--color-text);white-space:pre-wrap;font-size:15px;line-height:1.5}.assign-student{flex-direction:column;gap:12px;display:flex}.assign-student--empty{text-align:center;color:var(--color-text-muted);padding:40px}.assign-submit-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);flex-direction:column;gap:12px;padding:24px;display:flex}.assign-submit-card__label{color:var(--color-text-muted);letter-spacing:0;margin-bottom:-4px;font-size:13px;font-weight:600}.assign-submit-card__textarea,.assign-submit-card__input{background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius-btn);color:var(--color-text);resize:vertical;transition:border-color var(--t-normal), box-shadow var(--t-normal);outline:none;padding:12px 14px;font-family:inherit;font-size:15px;line-height:1.5}.assign-submit-card__textarea{min-height:120px}.assign-submit-card__textarea:focus,.assign-submit-card__input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #0075de26}.assign-submit-status{color:var(--color-text-muted);align-items:center;gap:10px;margin:0 0 4px;font-size:13px;display:flex}.assign-submit-card__actions{align-items:center;gap:10px;display:flex}.assign-submit-card__note{color:var(--color-text-muted);font-size:12px}.assign-submit-card__error{color:var(--color-status-returned-text);font-size:13px}.assign-submit-card__success{color:var(--color-status-submitted-text);margin:0;font-size:13px;font-weight:600}.assign-btn{border-radius:var(--radius-btn);cursor:pointer;border:1px solid #0000;min-height:44px;padding:8px 16px;font-family:inherit;font-size:14px;font-weight:600}.assign-btn:disabled{opacity:.5;cursor:not-allowed}.assign-btn--primary{background:var(--color-accent);color:#fff}.assign-btn--primary:not(:disabled):hover{background:var(--color-accent-active)}.assign-btn--ghost{border-color:var(--color-border);color:var(--color-text-muted);background:0 0}.assign-btn--ghost:not(:disabled):hover{border-color:var(--color-border-hover);color:var(--color-text)}.assign-btn--danger{background:var(--color-danger);color:#fff}.assign-btn--danger:not(:disabled):hover{background:var(--color-danger-active)}.assign-modal{color:#fffffff2;z-index:1000;background:#000000eb;flex-direction:column;display:flex;position:fixed;inset:0}.assign-modal__topbar{border-bottom:1px solid #ffffff24;justify-content:space-between;align-items:center;gap:16px;padding:12px 20px;display:flex}.assign-modal__student{align-items:center;gap:10px;min-width:0;display:flex}.assign-modal__num{color:#ffffffb3;font-size:13px;font-weight:600}.assign-modal__name{letter-spacing:-.3px;margin:0;font-size:20px;font-weight:700}.assign-modal__meta{color:#ffffffb3;align-items:center;gap:10px;font-size:13px;display:flex}.assign-modal__close{color:#ffffffb3;cursor:pointer;background:0 0;border:none;padding:6px 10px;font-size:22px}.assign-modal__close:hover{color:#fff}.assign-modal__stage{flex:1;grid-template-columns:48px 1fr 48px;min-height:0;display:grid}.assign-modal__nav{color:#ffffffb3;cursor:pointer;background:0 0;border:none;font-size:32px}.assign-modal__nav:disabled{opacity:.25;cursor:default}.assign-modal__nav:not(:disabled):hover{background:#ffffff14}.assign-modal__media{justify-content:center;align-items:center;min-height:0;padding:20px;display:flex}.assign-modal__media-box{max-width:min(90vw,1080px);max-height:calc(100dvh - 220px);color:var(--color-text);border-radius:var(--radius-card);object-fit:contain;background:#fff;box-shadow:0 20px 60px #0006}.assign-modal__media-box--text,.assign-modal__media-box--empty{white-space:pre-wrap;max-width:min(80vw,720px);max-height:calc(100dvh - 220px);padding:32px 40px;font-size:15px;line-height:1.6;overflow:auto}.assign-modal__media-box--empty{color:var(--color-text-muted);text-align:center}.assign-modal__footer{border-top:1px solid #ffffff24;justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.assign-reason-panel{background:#0009;border-top:1px solid #ffffff24;flex-direction:column;gap:8px;padding:14px 20px;display:flex}.assign-reason__label{color:#ffffffb3;letter-spacing:.1px;font-size:12px;font-weight:600}.assign-reason__textarea{color:#fff;resize:vertical;background:#ffffff14;border:1px solid #fff3;border-radius:6px;width:100%;min-height:72px;padding:10px;font-family:inherit;font-size:14px}.assign-reason__row{justify-content:space-between;align-items:center;display:flex}.assign-reason__counter{color:#ffffffb3;font-size:12px}.assign-reason__actions{gap:8px;display:flex}.parent-assign{flex-direction:column;gap:14px;max-width:720px;margin:0 auto;padding:16px;display:flex}.parent-assign__header{justify-content:space-between;align-items:center;gap:12px;display:flex}.parent-assign__title{letter-spacing:-.3px;margin:0;font-size:22px;font-weight:700}.parent-assign__content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);flex-direction:column;gap:10px;padding:16px 18px;display:flex}.parent-assign__image{border-radius:8px;align-self:center;width:100%;max-width:480px}.parent-assign__text{white-space:pre-wrap;margin:0;line-height:1.55}.parent-assign__link{color:var(--color-accent);word-break:break-all;font-size:14px}.parent-assign__empty{color:var(--color-text-muted);margin:0}@media (prefers-reduced-motion:reduce){.assign-slot,.assign-modal,.assign-modal__nav{transition:none!important}}@media (max-width:767px){.assign-deadline__header{flex-direction:column;gap:8px}.assign-deadline__current{text-align:left}.assign-deadline__form{flex-direction:column;align-items:stretch}.assign-deadline__field{min-width:0}.assign-deadline__form .assign-btn{width:100%}.assign-deadline-status__state{margin-left:0}.assign-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.assign-fab{right:32px;bottom:var(--fab-bottom-safe,32px);background:var(--color-accent);color:#fff;letter-spacing:-.1px;cursor:pointer;min-width:56px;height:56px;box-shadow:var(--shadow-accent);z-index:30;border:none;border-radius:9999px;padding:0 18px;font-family:inherit;font-size:14px;font-weight:700;transition:background .16s,transform .16s,box-shadow .16s;position:fixed}.assign-fab:hover{background:var(--color-accent-active);box-shadow:var(--shadow-accent-hover);transform:translateY(-2px)}.assign-fab:active{transform:scale(.97)}
.board-badge{background:var(--color-accent-tinted-bg);color:var(--color-accent-tinted-text);border-radius:var(--radius-pill);letter-spacing:.125px;padding:5px 12px;font-size:12px;font-weight:600;display:inline-block}.public-home{color:#102533;background:#f8fafc;min-height:100vh}.public-hero{isolation:isolate;flex-direction:column;min-height:clamp(500px,66vh,620px);display:flex;position:relative;overflow:hidden}.public-hero-bg{z-index:-2;background-image:linear-gradient(90deg,#081f2dc7,#081f2d75 52%,#081f2d14),url(/aura-public-hero-bg.png);background-position:50% 46%;background-size:cover;position:absolute;inset:0}.public-hero:after{content:"";z-index:-1;background:linear-gradient(#f8fafc00,#f8fafc 90%);height:120px;position:absolute;inset:auto 0 0}.public-nav{justify-content:space-between;align-items:center;gap:20px;width:min(1120px,100% - 40px);margin:0 auto;padding:22px 0;display:flex}.public-brand{color:#fff;text-decoration:none}.public-brand .ab-logo-wordmark{color:#fff}.public-nav-links{align-items:center;gap:18px;font-size:14px;font-weight:700;display:flex}.public-nav-links a{color:#ffffffe6;text-decoration:none}.public-nav-links a:hover{color:#fff}.public-nav-login{border-radius:var(--radius-btn);background:#fff;justify-content:center;align-items:center;min-height:38px;padding:0 16px;display:inline-flex;color:#0f5f86!important}.public-hero-copy{color:#fff;width:min(1120px,100% - 40px);margin:clamp(88px,14vh,128px) auto 58px;padding:16px 0 0}.public-kicker{text-transform:uppercase;color:#8be0ff;margin:0 0 12px;font-size:13px;font-weight:800}.public-hero-copy h1{font-family:var(--font-display);color:#fff;margin:0;font-size:clamp(48px,8vw,92px);font-weight:800;line-height:.98}.public-hero-lead{color:#ffffffeb;word-break:keep-all;overflow-wrap:normal;width:min(820px,100%);margin:24px 0 0;font-size:20px;line-height:1.7}.public-hero-actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.public-primary-action,.public-secondary-action{border-radius:var(--radius-btn);justify-content:center;align-items:center;min-height:46px;padding:0 20px;font-weight:800;text-decoration:none;display:inline-flex}.public-primary-action{color:#0f5f86;background:#fff}.public-secondary-action{color:#fff;border:1px solid #ffffff80}.public-purpose,.public-features{background:#f8fafc}.public-section-inner{width:min(1120px,100% - 40px);margin:0 auto;padding:54px 0}.public-section-head h2{max-width:900px;font-family:var(--font-display);color:#102533;word-break:keep-all;overflow-wrap:normal;margin:0;font-size:30px;line-height:1.25}.public-purpose-text{color:#425466;word-break:keep-all;overflow-wrap:normal;max-width:980px;margin:20px 0 0;font-size:16px;line-height:1.8}.public-feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding-top:8px;display:grid}.public-feature{border-radius:var(--radius-card);background:#fff;border:1px solid #1025331f;min-height:148px;padding:22px;box-shadow:0 12px 28px #10253314}.public-feature h3{color:#102533;word-break:keep-all;margin:0;font-size:18px}.public-feature p{color:#526779;word-break:keep-all;overflow-wrap:normal;margin:12px 0 0;font-size:15px;line-height:1.7}@media (max-width:760px){.public-hero{min-height:clamp(540px,74vh,640px)}.public-nav{flex-direction:column;align-items:flex-start}.public-nav-links{flex-wrap:wrap;gap:12px;width:100%}.public-hero-copy{margin-top:clamp(70px,10vh,96px);margin-bottom:48px}.public-hero-lead{font-size:17px}.public-feature-grid{grid-template-columns:1fr}}.dashboard-classroom-row{max-width:var(--container-max-width);align-items:center;gap:12px;margin:0 auto 16px;display:flex}.dashboard-classroom-link{color:var(--color-accent);font-size:14px;font-weight:500;text-decoration:none;transition:color .15s}.dashboard-classroom-link:hover{color:var(--color-accent-active)}.dashboard-section-title{color:var(--color-text-strong);align-items:baseline;gap:8px;margin:0;font-size:16px;font-weight:600;display:inline-flex}.dashboard-section-count{color:var(--color-text-muted);font-size:13px;font-weight:500}.dashboard-classroom-row .dashboard-classroom-link{margin-left:auto}.board-section-tabs{max-width:var(--container-max-width);flex-wrap:wrap;align-items:center;gap:12px;margin:0 auto 16px;display:flex}.board-section-tabs-list{border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);display:inline-flex;overflow:hidden}.board-section-tab{box-sizing:border-box;border:none;border-right:1px solid var(--color-border);background:var(--color-surface);width:88px;color:var(--color-text-muted);cursor:pointer;justify-content:center;align-items:center;gap:4px;padding:8px 16px;font-size:14px;font-weight:600;transition:background .12s,color .12s;display:inline-flex}.board-section-tab:last-child{border-right:none}.board-section-tab:hover{background:var(--color-surface-alt);color:var(--color-text)}.board-section-tab.is-active{background:var(--color-accent);color:#fff}.board-section-tab-count{font-variant-numeric:tabular-nums;opacity:.9;justify-content:flex-end;min-width:2ch;font-size:12px;font-weight:500;display:inline-flex}.board-section-tabs-link{color:var(--color-accent);margin-left:auto;font-size:14px;font-weight:500;text-decoration:none}.board-section-tabs-link:hover{color:var(--color-accent-active)}@media (max-width:640px){.board-section-tabs{flex-direction:column;align-items:flex-start}.board-section-tabs-link{margin-left:0}}.home-page{background:#fff;min-height:100vh;padding:48px 32px}.home-header{max-width:var(--container-max-width);margin:0 auto 40px}.home-header-top{justify-content:space-between;align-items:center;display:flex}.home-title{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}.home-subtitle{color:var(--color-text-muted);margin:0;font-size:15px}.home-header-actions{align-items:center;gap:12px;display:flex}.board-list{max-width:var(--container-max-width);flex-direction:column;gap:12px;margin:0 auto;display:flex}.board-grid{max-width:var(--container-max-width);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin:0 auto;display:grid}.board-grid-card{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);color:var(--color-text);text-align:center;min-height:190px;transition:box-shadow var(--t-slow), border-color var(--t-slow), transform var(--t-slow);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:0;text-decoration:none;display:flex;position:relative;overflow:hidden}.board-grid-card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--color-border-hover);transform:translateY(-2px)}.board-grid-card--menu-open:hover{transform:none}.board-grid-card-link{width:100%;height:100%;color:inherit;flex-direction:column;flex:1;justify-content:flex-start;align-items:center;gap:8px;text-decoration:none;display:flex}.board-grid-preview{aspect-ratio:16/10;background:linear-gradient(#f7fbff 0%,#edf6ff 100%);border-bottom:1px solid #184a5c1a;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.board-grid-preview-img{object-fit:cover;width:100%;height:100%;display:block}.board-grid-emoji{font-size:36px}.board-grid-title{font-family:var(--font-display);letter-spacing:-.25px;color:var(--color-text);padding:0 12px;font-size:16px;font-weight:700;line-height:1.3}.board-grid-meta{color:var(--color-text-muted);padding:0 12px 14px;font-size:13px}.board-grid-kebab{width:26px;height:26px;color:var(--color-text-faint);cursor:pointer;opacity:.6;transition:background var(--t-normal), color var(--t-normal), opacity var(--t-normal);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}.board-grid-kebab:hover{background:var(--color-surface-alt);color:var(--color-text);opacity:1}.board-grid-kebab-menu{background:var(--color-surface);border:1px solid var(--color-border);min-width:110px;box-shadow:var(--shadow-lift);z-index:10;border-radius:8px;position:absolute;top:34px;right:6px;overflow:hidden}.board-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}.board-grid-kebab-item:hover{background:var(--color-surface-alt)}.board-grid-kebab-item--danger{color:var(--color-danger)}.board-grid-new{border:2px dashed var(--color-border);box-shadow:none;cursor:pointer;font-family:var(--font-body);background:0 0;padding:24px 12px;overflow:visible}.board-grid-new:hover{border-color:var(--color-accent);background:var(--color-accent-tinted-bg);box-shadow:none;transform:none}.board-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}.board-grid-new:hover .board-grid-new-icon{background:var(--color-accent);color:#fff}.board-grid-new-label{color:var(--color-text-muted);font-size:14px;font-weight:500}.board-list-card{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);color:var(--color-text);align-items:center;gap:18px;padding:20px 24px;text-decoration:none;transition:box-shadow .18s,border-color .18s,transform .18s;display:flex}.board-list-card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--color-border-hover);transform:translateY(-2px)}.board-list-emoji{flex-shrink:0;font-size:28px}.board-list-info{flex:1}.board-list-title{font-family:var(--font-display);letter-spacing:-.25px;color:var(--color-text);margin:0 0 4px;font-size:18px;font-weight:700}.board-list-meta{color:var(--color-text-muted);margin:0;font-size:13px}.board-list-new{border:2px dashed var(--color-border);box-shadow:none;cursor:pointer;font-family:var(--font-body);text-align:left;background:0 0}.board-list-new:hover{border-color:var(--color-accent);background:var(--color-accent-tinted-bg);box-shadow:none}.board-list-new .board-list-emoji{color:var(--color-text-faint);font-size:28px}.board-list-new .board-list-title{color:var(--color-text-muted)}.board-list-new .board-list-meta{color:var(--color-text-faint)}.create-board-modal{flex-direction:column;width:min(94vw,860px);display:flex;overflow:hidden}.create-board-modal .modal-body{flex:1;min-height:0;overflow-y:auto}.layout-grid-picker{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:4px;display:grid}.layout-grid-option{text-align:center;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-text);font-family:var(--font-body);cursor:pointer;transition:border-color var(--t-normal), box-shadow var(--t-normal), background var(--t-normal);flex-direction:column;justify-content:flex-start;align-items:center;gap:0;padding:0;display:flex;overflow:hidden}.layout-grid-option:hover{border-color:var(--color-accent);box-shadow:var(--shadow-card)}.layout-grid-option:disabled{cursor:default}.layout-grid-option:disabled:hover{border-color:var(--color-border);box-shadow:none}.layout-grid-option-dev{background:color-mix(in srgb, var(--color-surface-alt) 38%, #fff)}.layout-grid-option-preview{aspect-ratio:16/10;background:linear-gradient(#f7fbff 0%,#edf6ff 100%);border-bottom:1px solid #184a5c1a;width:100%;overflow:hidden}.layout-grid-option-thumb{object-fit:cover;width:100%;height:100%;display:block}.layout-grid-option-placeholder{width:100%;height:100%;color:var(--color-text-muted);opacity:.74;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.layout-grid-option-emoji{font-size:28px;line-height:1}.layout-grid-option-status{border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text-muted);background:#ffffffa3;padding:3px 8px;font-size:10px;font-weight:600;line-height:1}.layout-grid-option-label{color:var(--color-text);padding:10px 10px 0;font-size:13px;font-weight:600}.layout-grid-option-desc{color:var(--color-text-muted);padding:5px 10px 12px;font-size:11px;line-height:1.4}@media (max-width:540px){.layout-grid-picker{grid-template-columns:1fr}.layout-grid-option{padding:0}.layout-grid-option-preview{aspect-ratio:2}.create-board-thumbnail-panel{grid-template-columns:1fr}}.layout-picker{flex-direction:column;gap:8px;display:flex}.layout-option{border:1.5px solid var(--color-border);background:var(--color-surface);cursor:pointer;text-align:left;font-family:var(--font-body);border-radius:10px;align-items:center;gap:14px;padding:14px 16px;transition:border-color .15s,background .15s;display:flex}.layout-option:hover{border-color:var(--color-border-hover);background:var(--color-bg)}.layout-option:disabled{cursor:default;opacity:.58}.layout-option:disabled:hover{border-color:var(--color-border);background:var(--color-surface)}.layout-option-active{border-color:var(--color-accent)!important;background:var(--color-accent-tinted-bg)!important}.layout-option-emoji{text-align:center;flex-shrink:0;width:40px;font-size:28px}.layout-option-label{color:var(--color-text);min-width:80px;font-size:15px;font-weight:600}.layout-option-desc{color:var(--color-text-muted);flex:1;font-size:13px}.create-board-category{border:none;align-items:center;gap:16px;margin:0 0 12px;padding:0;display:flex}.create-board-category legend{color:var(--color-text-strong);margin:0 8px 0 0;padding:0;font-size:13px;font-weight:600}.create-board-category-option{color:var(--color-text-strong);cursor:pointer;align-items:center;gap:6px;font-size:14px;display:inline-flex}.create-board-category-option input[type=radio]{accent-color:var(--color-accent);width:16px;height:16px}.create-board-hint{color:var(--color-text-muted);margin:0 0 4px;font-size:13px}.create-board-thumbnail-panel{border:1px solid var(--color-border);border-radius:var(--radius-card);background:color-mix(in srgb, var(--color-surface-alt) 36%, #fff);grid-template-columns:180px 1fr;align-items:center;gap:14px;margin:8px 0 12px;padding:12px;display:grid}.create-board-thumbnail-panel--vertical{grid-template-columns:1fr;align-items:stretch}.create-board-thumbnail-preview{aspect-ratio:16/10;color:var(--color-text-muted);background:linear-gradient(#f7fbff 0%,#edf6ff 100%);border:1px solid #184a5c1a;border-radius:8px;justify-content:center;align-items:center;display:flex;overflow:hidden}.create-board-thumbnail-preview img{object-fit:cover;width:100%;height:100%;display:block}.create-board-thumbnail-preview span{font-size:34px;line-height:1}.create-board-thumbnail-toggle{cursor:pointer;color:var(--color-text);align-items:center;gap:10px;display:flex}.create-board-thumbnail-toggle input{width:18px;height:18px;accent-color:var(--color-accent);flex-shrink:0}.create-board-thumbnail-toggle span{flex-direction:column;gap:3px;min-width:0;display:flex}.create-board-thumbnail-toggle strong{font-size:14px;font-weight:700}.create-board-thumbnail-toggle small{color:var(--color-text-muted);font-size:12px;line-height:1.45}.create-board-selected{background:var(--color-accent-tinted-bg);color:var(--color-accent);border-radius:8px;margin-bottom:4px;padding:10px 14px;font-size:14px;font-weight:500}.board-back-link{color:var(--color-text-muted);border-radius:var(--radius-btn);padding:4px 8px;font-size:20px;text-decoration:none;transition:color .15s,background .15s}.board-back-link:hover{color:var(--color-text);background:var(--color-surface-alt)}.board-layout-badge{background:var(--color-surface-alt);color:var(--color-text-faint);border-radius:var(--radius-pill);letter-spacing:.2px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-block}.board-empty-inline{text-align:center;color:var(--color-text-faint);grid-column:1/-1;padding:48px 24px}.board-empty-inline p{margin:0;font-size:14px}.board-thumbnail-picker{flex-direction:column;gap:12px;display:flex}.board-thumbnail-preview{aspect-ratio:16/10;color:var(--color-text-muted);background:linear-gradient(#f7fbff 0%,#edf6ff 100%);border:1px solid #184a5c1a;border-radius:8px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.board-thumbnail-preview img{object-fit:cover;width:100%;height:100%;display:block}.board-thumbnail-preview--upload:after{content:"";pointer-events:none;background:linear-gradient(#07141f14,#07141f61);position:absolute;inset:0}.board-thumbnail-overlay{z-index:1;justify-content:space-between;align-items:flex-end;gap:12px;display:flex;position:absolute;inset:auto 14px 14px}.board-thumbnail-help{color:#fff;text-shadow:0 1px 2px #00000047;max-width:260px;margin:0;font-size:13px;font-weight:600;line-height:1.45}.board-thumbnail-upload-btn{min-height:34px;color:var(--color-text);font-family:var(--font-body);cursor:pointer;background:#ffffffeb;border:1px solid #ffffffb8;border-radius:8px;padding:0 14px;font-size:13px;font-weight:700;transition:background .15s,transform .15s,opacity .15s;box-shadow:0 8px 18px #00000029}.board-thumbnail-upload-btn:hover:not(:disabled){background:#fff;transform:translateY(-1px)}.board-thumbnail-upload-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width:520px){.board-thumbnail-overlay{flex-direction:column;align-items:flex-start;inset:auto 10px 10px}.board-thumbnail-help{max-width:none;font-size:12px}}
.export-start-btn{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-pill);font-family:var(--font-body);color:var(--color-text-muted);cursor:pointer;z-index:10;padding:8px 16px;font-size:13px;font-weight:500;transition:background .15s,color .15s,border-color .15s;position:absolute;top:8px;right:8px}.export-start-btn:hover{background:var(--color-accent-tinted-bg);color:var(--color-accent);border-color:var(--color-accent)}.export-toolbar{background:var(--color-accent);border-radius:var(--radius-card);align-items:center;gap:12px;margin-bottom:16px;padding:12px 20px;animation:.15s fadeIn;display:flex}.export-toolbar-text{color:#fff;flex:1;font-size:14px;font-weight:500}.export-toolbar-btn{color:var(--color-accent);border-radius:var(--radius-pill);font-family:var(--font-body);cursor:pointer;background:#fff;border:none;padding:7px 18px;font-size:13px;font-weight:600;transition:opacity .15s}.export-toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.export-toolbar-cancel{color:#fff;border-radius:var(--radius-pill);font-family:var(--font-body);cursor:pointer;background:#fff3;border:none;padding:7px 14px;font-size:13px;font-weight:500;transition:background .15s}.export-toolbar-cancel:hover{background:#ffffff4d}.export-selectable{border:2px solid #0000;transition:border-color .15s,box-shadow .15s;cursor:pointer!important}.export-selectable:hover{border-color:var(--color-accent)!important}.export-selected{border-color:var(--color-accent)!important;box-shadow:0 0 0 3px #0075de33!important}.export-disabled{opacity:.35;pointer-events:none}.export-checkbox{border:2px solid var(--color-border);background:var(--color-surface);color:#fff;z-index:2;border-radius:6px;justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;font-weight:700;display:flex;position:absolute;top:8px;left:8px}.export-selected .export-checkbox{background:var(--color-accent);border-color:var(--color-accent)}.export-modal{width:560px}.export-summary{color:var(--color-text-muted);margin:0 0 12px;font-size:14px}.export-selection-limit{color:var(--color-text-faint);margin:-4px 0 12px;font-size:12px;line-height:1.4}.export-layout-options{gap:8px;margin-bottom:16px;display:grid}.export-layout-option{border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;transition:background .15s,border-color .15s;display:flex}.export-layout-option.active{background:var(--color-accent-tinted-bg);border-color:var(--color-accent)}.export-layout-option input{width:16px;height:16px;accent-color:var(--color-accent);flex-shrink:0;margin-top:2px}.export-layout-option span{gap:2px;display:grid}.export-layout-option strong{font-size:13px;font-weight:600}.export-layout-option small{color:var(--color-text-faint);font-size:11px;line-height:1.35}.export-design-list{flex-direction:column;gap:8px;max-height:320px;display:flex;overflow-y:auto}.export-design-item{border:1px solid var(--color-border);border-radius:8px;align-items:center;gap:12px;padding:10px 12px;transition:border-color .15s;display:flex}.export-design-item.ready{border-color:var(--color-accent)}.export-design-item.error{opacity:.6;border-color:#dc3545}.export-design-thumb{object-fit:cover;border-radius:4px;flex-shrink:0;width:64px;height:40px}.export-design-info{flex:1;min-width:0}.export-design-title{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.export-design-meta{color:var(--color-text-faint);margin-top:2px;font-size:11px}.export-item-check{width:18px;height:18px;accent-color:var(--color-accent);cursor:pointer;flex-shrink:0}.export-design-badge{flex-shrink:0;font-size:16px}.export-hint{color:var(--color-text-faint);margin:12px 0 0;font-size:13px}.export-ready-msg{background:var(--color-accent-tinted-bg);color:var(--color-text);border-radius:8px;margin-top:12px;padding:12px;font-size:13px;line-height:1.5}.export-ids{background:var(--color-surface);border:1px solid var(--color-border);word-break:break-all;-webkit-user-select:all;user-select:all;border-radius:6px;margin-top:8px;padding:8px 12px;font-family:monospace;font-size:12px;display:block}.canva-breadcrumb{flex-wrap:wrap;align-items:center;gap:2px;margin-bottom:12px;display:flex}.canva-breadcrumb-sep{color:var(--color-text-faint);font-size:12px}.canva-breadcrumb-btn{font-family:var(--font-body);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:13px;transition:background .1s}.canva-breadcrumb-btn:hover{background:var(--color-surface-alt)}.canva-breadcrumb-btn.active{color:var(--color-text);font-weight:600}.canva-folder-item{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;width:100%;font-family:var(--font-body);color:var(--color-text);text-align:left;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;transition:background .1s,border-color .1s;display:flex}.canva-folder-item:hover{background:var(--color-accent-tinted-bg);border-color:var(--color-accent)}.canva-folder-icon{flex-shrink:0;font-size:18px}
.add-card-fab{right:32px;bottom:var(--fab-bottom-safe,32px);background:var(--color-accent);color:#fff;cursor:pointer;width:56px;height:56px;box-shadow:var(--shadow-accent);z-index:30;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .16s,transform .16s,box-shadow .16s;display:flex;position:fixed}.add-card-fab:hover{background:var(--color-accent-active);box-shadow:var(--shadow-accent-hover);transform:translateY(-2px)}.add-card-fab:active{transform:scale(.95)}.board-timer-fab,.board-toolkit-fab{right:104px;bottom:var(--fab-bottom-safe,32px);border:1px solid color-mix(in srgb, var(--color-accent) 36%, transparent);background:var(--color-surface);width:56px;height:56px;color:var(--color-accent);cursor:pointer;box-shadow:var(--shadow-card);z-index:30;border-radius:50%;justify-content:center;align-items:center;transition:background .16s,color .16s,transform .16s,box-shadow .16s;display:flex;position:fixed}.board-timer-fab:hover,.board-toolkit-fab:hover{box-shadow:var(--shadow-accent-hover);transform:translateY(-2px)}.board-timer-fab:active,.board-toolkit-fab:active{transform:scale(.95)}.board-timer-fab.is-running,.board-toolkit-fab.is-running{background:var(--color-text);color:var(--color-surface);border-color:#0000}.board-timer-fab.is-finished,.board-toolkit-fab.is-finished{background:var(--color-danger,#dc3545);color:#fff;border-color:#0000}.board-toolkit-fab{font-size:24px}.board-toolkit-menu{right:104px;bottom:calc(var(--fab-bottom-safe,32px) + 68px);z-index:90;border:var(--border-card);border-radius:var(--radius-card);background:var(--color-surface);width:min(240px,100vw - 32px);padding:8px;position:fixed;box-shadow:0 18px 50px #0f172a33,0 6px 18px #0f172a1f}.board-toolkit-menu button{width:100%;min-height:44px;color:var(--color-text);cursor:pointer;text-align:left;font:inherit;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.board-toolkit-menu button:hover,.board-toolkit-menu button:focus-visible{background:var(--color-surface-alt);outline:none}.board-toolkit-menu span{text-align:center;width:26px;font-size:18px}.board-toolkit-menu strong{font-size:14px;font-weight:800}.board-toolkit-panel{right:32px;bottom:calc(var(--fab-bottom-safe,32px) + 72px);z-index:80;box-sizing:border-box;border:var(--border-card);border-radius:var(--radius-card);background:var(--color-surface);width:min(320px,100vw - 32px);color:var(--color-text);padding:16px;position:fixed;box-shadow:0 18px 50px #0f172a38,0 6px 18px #0f172a1f}.board-student-picker-panel{width:min(560px,100vw - 32px);max-height:min(720px,100vh - 112px);overflow:auto}.board-toolkit-empty{color:var(--color-text-muted);margin:12px 0 0;font-size:13px;line-height:1.5}.board-picker-content{flex-direction:column;gap:12px;display:flex}.board-picker-controls{grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:8px;display:grid}.board-picker-controls label,.board-classroom-picker{color:var(--color-text-muted);flex-direction:column;gap:6px;font-size:12px;font-weight:800;display:flex}.board-picker-controls input,.board-picker-controls select,.board-classroom-picker select{border:1px solid var(--color-border);background:var(--color-surface);min-width:0;min-height:38px;color:var(--color-text);font:inherit;border-radius:8px;padding:8px 10px}.board-picker-draw{cursor:pointer;width:100%;min-height:42px;font:inherit;border-radius:8px;padding:10px 12px;font-size:14px;font-weight:800}.board-picker-draw:disabled{opacity:.5;cursor:not-allowed}.board-picker-roster{grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:8px;display:grid}.board-picker-student-card{border:1px solid var(--color-border);background:var(--color-surface);min-width:0;min-height:66px;color:var(--color-text);border-radius:8px;flex-direction:column;justify-content:center;gap:4px;padding:10px;transition:background .12s,border-color .12s,box-shadow .12s,transform .12s;display:flex;box-shadow:0 2px 8px #0f172a0f}.board-picker-student-card span{color:var(--color-text-muted);font-size:11px;font-weight:800}.board-picker-student-card strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:850;overflow:hidden}.board-picker-student-card.is-highlighted{border-color:var(--color-accent);background:var(--color-accent-tinted-bg);transform:translateY(-4px)scale(1.04);box-shadow:0 12px 26px #0f172a2e}.board-picker-student-card.is-picked{border-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 14%, var(--color-surface));box-shadow:0 10px 24px #0f172a24}.board-picker-summary{color:var(--color-text);margin:0;font-size:13px;font-weight:850;line-height:1.45}.board-picker-results{gap:6px;margin:0;padding:0;list-style:none;display:grid}.board-picker-results li{border:1px solid var(--color-border);background:var(--color-bg);border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:8px 10px;display:flex}.board-picker-results span{min-width:30px;color:var(--color-text-muted);justify-content:center;align-items:center;font-size:12px;font-weight:800;display:inline-flex}.board-picker-results strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.board-timer-panel{right:32px;bottom:calc(var(--fab-bottom-safe,32px) + 72px);z-index:80;box-sizing:border-box;border:var(--border-card);border-radius:var(--radius-card);background:var(--color-surface);width:min(320px,100vw - 32px);color:var(--color-text);flex-direction:column;padding:16px;display:flex;position:fixed;overflow:hidden;box-shadow:0 18px 50px #0f172a38,0 6px 18px #0f172a1f}.board-timer-panel.is-finished{border-color:var(--color-danger,#dc3545)}.board-timer-header{flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.board-timer-drag-handle{min-width:0;color:inherit;cursor:move;font:inherit;text-align:left;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:0;flex:1;padding:0}.board-timer-drag-handle:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:6px}.board-timer-kicker{color:var(--color-text-muted);margin:0 0 2px;font-size:12px;font-weight:700}.board-timer-status{color:var(--color-text);font-size:14px;display:block}.board-timer-close{border:1px solid var(--color-border);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;display:flex}.board-timer-close:hover{background:var(--color-surface-alt);color:var(--color-text)}.board-timer-content{scrollbar-width:thin;min-height:0;padding:0 2px 8px;overflow:auto}.board-timer-display{width:100%;font-family:var(--font-display);letter-spacing:0;text-align:center;font-variant-numeric:tabular-nums;margin:2px 0 14px;font-size:52px;font-weight:800;line-height:1;display:block}.board-timer-presets{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-bottom:12px;display:grid}.board-timer-presets button{border:1px solid var(--color-border);background:var(--color-surface);min-width:0;color:var(--color-text);cursor:pointer;border-radius:8px;padding:8px 4px;font-size:12px;font-weight:700}.board-timer-presets button:hover,.board-timer-presets button.is-selected{border-color:var(--color-accent);background:var(--color-accent-tinted-bg);color:var(--color-accent-tinted-text)}.board-timer-input{color:var(--color-text-muted);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;margin-bottom:14px;font-size:13px;font-weight:700;display:grid}.board-timer-input input{border:1px solid var(--color-border);background:var(--color-surface);min-width:0;color:var(--color-text);font:inherit;text-align:center;border-radius:8px;padding:9px 10px}.board-timer-input input:focus{border-color:var(--color-accent);outline:none}.board-timer-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.board-timer-actions button{cursor:pointer;border-radius:8px;padding:11px 12px;font-size:14px;font-weight:800}.board-timer-primary{border:1px solid var(--color-accent);background:var(--color-accent);color:#fff}.board-timer-primary:hover{background:var(--color-accent-active)}.board-timer-secondary{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.board-timer-secondary:hover{background:var(--color-surface-alt)}.board-timer-resize-handle{border-radius:0 0 var(--radius-card) 0;cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg,#0000 50%,#4a556838 50%),linear-gradient(135deg,#0000 62%,#4a556857 62%);border:0;width:28px;height:28px;position:absolute;bottom:0;right:0}.board-timer-resize-handle:hover,.board-timer-resize-handle:focus-visible{background:linear-gradient(135deg, transparent 50%, color-mix(in srgb, var(--color-accent) 32%, transparent) 50%), linear-gradient(135deg, transparent 62%, color-mix(in srgb, var(--color-accent) 46%, transparent) 62%);outline:none}@media (max-width:640px){.board-timer-fab,.board-toolkit-fab{right:96px}.board-timer-panel,.board-toolkit-panel{right:16px;bottom:calc(var(--fab-bottom-safe,32px) + 68px);width:min(320px,100vw - 32px)}.board-toolkit-menu{right:96px}}.ctx-menu-wrap{display:inline-flex;position:relative}.ctx-menu-trigger{width:28px;height:28px;color:var(--color-text-faint);cursor:pointer;letter-spacing:1px;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:18px;font-weight:700;line-height:1;transition:background .15s,color .15s;display:flex}@media (pointer:coarse){.ctx-menu-trigger{width:var(--tap-min);height:var(--tap-min);font-size:22px}}.ctx-menu-trigger:hover{color:var(--color-text);background:#00000014}.ctx-menu-dropdown{box-sizing:border-box;background:var(--color-surface);border:var(--border-card);z-index:50;border-radius:10px;width:max-content;min-width:140px;max-width:min(220px,100vw - 16px);margin-top:4px;padding:4px;position:absolute;top:100%;right:0;box-shadow:0 8px 30px #0000001f,0 2px 8px #00000014}.ctx-menu-dropdown-portal{z-index:70;margin-top:0;animation:.12s menuIn}@keyframes menuIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ctx-menu-item{width:100%;min-width:0;color:var(--color-text);font-family:var(--font-body);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:500;transition:background .1s;display:flex}.ctx-menu-item:hover{background:var(--color-surface-alt)}.ctx-menu-item-danger{color:#dc3545}.ctx-menu-item-danger:hover{background:#dc354514}.ctx-menu-icon{flex-shrink:0;font-size:14px}.ctx-menu-label{letter-spacing:.1px;color:var(--color-text-faint);text-transform:none;padding:6px 12px 2px;font-size:11px;font-weight:600}.ctx-menu-sep{background:var(--color-border);height:1px;margin:4px 6px}.ctx-menu-footer{border-top:1px solid var(--color-border);justify-content:flex-end;margin-top:4px;padding:8px 10px 4px;display:flex}.ctx-menu-item-radio{padding-left:8px}.ctx-menu-item-radio .ctx-menu-check{width:16px;color:var(--color-accent);flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.ctx-menu-item-radio.is-selected{background:var(--color-accent-tinted-bg);color:var(--color-accent-tinted-text)}.ctx-menu-item-radio.is-selected:hover{background:var(--color-accent-tinted-bg)}.forbidden-card{text-align:center;background:var(--color-surface);border-radius:var(--radius-card);border:var(--border-card);max-width:420px;box-shadow:var(--shadow-card);margin:80px auto;padding:40px}.forbidden-card h2{font-family:var(--font-display);letter-spacing:-.25px;color:var(--color-text);margin:0 0 8px;font-size:22px;font-weight:700}.forbidden-card p{color:var(--color-text-muted);margin:0}.docs-page{background:var(--color-bg);min-height:100vh;padding:48px 24px}.docs-article{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-card);max-width:720px;box-shadow:var(--shadow-card);margin:0 auto;padding:40px 48px}.docs-back{color:var(--color-text-muted);margin-bottom:24px;font-size:13px;text-decoration:none;display:inline-block}.docs-back:hover{color:var(--color-accent)}.docs-title{font-family:var(--font-display);color:var(--color-text);margin:0 0 12px;font-size:28px;font-weight:700}.docs-subtitle{color:var(--color-text-muted);margin:0 0 32px;font-size:15px}.docs-section{margin-bottom:24px}.docs-h2{color:var(--color-text);margin:0 0 12px;font-size:18px;font-weight:700}.docs-h3{color:var(--color-text);margin:16px 0 6px;font-size:15px;font-weight:700}.docs-p{color:var(--color-text);margin:0 0 12px;font-size:14px;line-height:1.7}.docs-p.docs-note{background:var(--color-surface-alt);border-left:3px solid var(--color-accent);border-radius:var(--radius-btn);color:var(--color-text-muted);padding:10px 14px;font-size:13px}.docs-p code,.docs-list code{background:var(--color-surface-alt);border-radius:4px;padding:2px 6px;font-family:SF Mono,Fira Code,monospace;font-size:12px}.docs-list{color:var(--color-text);padding-left:20px;font-size:14px;line-height:1.7}.docs-list li{margin-bottom:6px}.docs-link{color:var(--color-accent);font-weight:500;text-decoration:none}.docs-link:hover{text-decoration:underline}.docs-code{font-family:var(--font-mono);background:var(--color-surface-alt);color:var(--color-text);border-radius:4px;padding:2px 6px;font-size:12.5px}.docs-compare-table{border-collapse:collapse;width:100%;margin-top:8px;font-size:14px}.app-footer{border-top:1px solid var(--color-border);background:var(--color-surface);padding:24px}.app-footer-inner{text-align:center;flex-direction:column;align-items:center;gap:12px;max-width:720px;margin:0 auto;display:flex}@media (min-width:640px){.app-footer-inner{text-align:left;flex-direction:row;justify-content:space-between}}.app-footer-copy{color:var(--color-text-muted);margin:0;font-size:13px}.app-footer-links{align-items:center;gap:16px;display:flex}.app-footer-links a{color:var(--color-text-muted);font-size:13px;text-decoration:none;transition:color .15s}.app-footer-links a:hover{color:var(--color-accent)}html,body{min-height:100vh}body{flex-direction:column;display:flex}body>main,body>div{flex:1 0 auto;width:100%}.app-footer{flex-shrink:0}.docs-page{padding-bottom:24px}.docs-compare-table th,.docs-compare-table td{text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top;padding:10px 12px}.docs-compare-table th{color:var(--color-text-muted);font-size:13px;font-weight:600}.docs-compare-table td:first-child{color:var(--color-text)}.llm-key-form{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-card);flex-direction:column;gap:14px;margin-top:8px;padding:18px;display:flex}.llm-key-status{border-radius:var(--radius-btn);background:var(--color-surface-alt);padding:10px 14px;font-size:13px}.llm-key-status.is-ok{border-left:3px solid var(--color-accent)}.llm-key-status.is-warn{border-left:3px solid var(--color-danger,#dc3545)}.llm-key-status-row{align-items:center;gap:8px;display:flex}.llm-key-status-dot{font-size:14px;line-height:1}.llm-key-status.is-ok .llm-key-status-dot{color:var(--color-accent)}.llm-key-status.is-warn .llm-key-status-dot{color:var(--color-danger,#dc3545)}.llm-key-status-text{color:var(--color-text);flex:1;font-weight:500}.llm-key-delete{color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-btn);cursor:pointer;background:0 0;padding:4px 10px;font-size:12px}.llm-key-delete:hover:not(:disabled){background:var(--color-surface);color:var(--color-text)}.llm-key-error{color:var(--color-danger,#dc3545);word-break:break-word;margin:8px 0 0;font-size:12px}.llm-key-hint-small{color:var(--color-text-muted);margin:6px 0 0;font-size:11px}.llm-key-fields{flex-direction:column;gap:12px;display:flex}.llm-key-field{flex-direction:column;gap:6px;font-size:13px;display:flex}.llm-key-field>span{color:var(--color-text);font-weight:600}.llm-key-select,.llm-key-input{border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);color:var(--color-text);outline:none;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.llm-key-input{font-family:var(--font-mono);font-size:13px}.llm-key-select:focus,.llm-key-input:focus{border-color:var(--color-accent)}.llm-key-hint{color:var(--color-text-muted);font-size:11.5px;font-weight:400}.llm-key-submit{background:var(--color-accent);color:#fff;border-radius:var(--radius-btn);cursor:pointer;border:none;align-self:flex-start;padding:10px 18px;font-size:14px;font-weight:600;transition:background .15s}.llm-key-submit:hover:not(:disabled){background:var(--color-accent-active)}.llm-key-submit:disabled{opacity:.55;cursor:default}.llm-key-msg{color:var(--color-text-muted);margin:0;font-size:13px}.billing-panel{flex-direction:column;gap:18px;margin-top:8px;display:flex}.billing-current{background:var(--color-surface-alt);border-radius:var(--radius-card);align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.billing-badge{letter-spacing:.5px;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.billing-badge.is-pro{background:var(--color-accent);color:#fff}.billing-badge.is-free{background:var(--color-border);color:var(--color-text)}.billing-current-meta{color:var(--color-text);flex-direction:column;gap:4px;font-size:13.5px;display:flex}.billing-muted{color:var(--color-text-muted);font-size:12px}.billing-plans{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.billing-plan-card{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-card);cursor:pointer;text-align:left;color:var(--color-text);flex-direction:column;gap:2px;padding:18px 16px;font-family:inherit;transition:border-color .15s,transform .12s;display:flex}.billing-plan-card:hover:not(:disabled){border-color:var(--color-accent);transform:translateY(-1px)}.billing-plan-card.is-highlighted{border-color:var(--color-accent)}.billing-plan-card:disabled{opacity:.55;cursor:default}.billing-plan-title{color:var(--color-text-muted);margin-bottom:6px;font-size:13px;font-weight:600}.billing-plan-price{color:var(--color-text);font-size:22px;font-weight:700}.billing-plan-period{color:var(--color-text-muted);font-size:12px}.billing-plan-note{color:var(--color-accent);margin-top:6px;font-size:12px}.billing-cancel{border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:var(--radius-btn);cursor:pointer;background:0 0;align-self:flex-start;padding:8px 16px;font-size:13px}.billing-cancel:hover:not(:disabled){color:var(--color-danger,#dc3545);border-color:var(--color-danger,#dc3545)}.billing-msg{color:var(--color-text-muted);margin:0;font-size:13px}.billing-callback{color:var(--color-text);padding:24px 0;font-size:14px}.billing-callback-success{color:var(--color-accent)}.billing-callback-failed{color:var(--color-danger,#dc3545)}.event-public-page{background:var(--color-bg);min-height:100vh;padding:32px 16px}.event-public-card{background:var(--color-surface);border:var(--border-card);border-radius:var(--radius-card);max-width:560px;box-shadow:var(--shadow-card);flex-direction:column;gap:16px;margin:0 auto;padding:32px 28px;display:flex}.event-public-poster{border-radius:var(--radius-card);object-fit:cover;width:100%;height:auto}.event-public-title{font-family:var(--font-display);color:var(--color-text);margin:0;font-size:24px;font-weight:700}.event-public-desc{color:var(--color-text-muted);white-space:pre-wrap;margin:0;font-size:14px}.event-public-meta{color:var(--color-text);background:var(--color-surface-alt);border-radius:var(--radius-btn);grid-template-columns:auto 1fr;gap:6px 14px;margin:0;padding:12px 16px;font-size:13px;display:grid}.event-public-meta dt{color:var(--color-text-muted);font-weight:600}.event-public-notice{background:var(--color-surface-alt);border-left:3px solid var(--color-accent);border-radius:var(--radius-btn);color:var(--color-text);padding:14px 16px;font-size:14px}.event-public-form{flex-direction:column;gap:14px;display:flex}.event-public-field{flex-direction:column;gap:6px;font-size:14px;display:flex}.event-public-field>span{color:var(--color-text);font-weight:600}.event-public-field em{color:var(--color-danger);font-style:normal;font-weight:700}.event-public-field input[type=text],.event-public-field input[type=number],.event-public-field input[type=url],.event-public-field textarea,.event-public-field select{border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);color:var(--color-text);outline:none;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.event-public-field input:focus,.event-public-field textarea:focus,.event-public-field select:focus{border-color:var(--color-accent)}.event-public-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.event-public-hint{color:var(--color-text-muted);font-size:12px}.event-public-checkbox-group{flex-direction:column;gap:6px;display:flex}.event-public-checkbox-label{color:var(--color-text);align-items:center;gap:8px;font-size:14px;font-weight:500;display:inline-flex}.event-public-submit{background:var(--color-accent);color:#fff;border-radius:var(--radius-btn);cursor:pointer;border:none;margin-top:8px;padding:14px 20px;font-size:15px;font-weight:600;transition:background .15s}.event-public-submit:hover:not(:disabled){background:var(--color-accent-active)}.event-public-submit:disabled{opacity:.6;cursor:default}.event-public-error{background:var(--color-surface-alt);border-left:3px solid var(--color-danger);border-radius:var(--radius-btn);color:var(--color-danger);padding:10px 14px;font-size:13px}.event-public-success{text-align:center;padding:32px 16px}.event-public-success h2{font-family:var(--font-display);color:var(--color-text);margin:0 0 8px;font-size:20px;font-weight:700}.event-public-success p{color:var(--color-text-muted);margin:0;font-size:14px}.settings-section{border-bottom:1px solid var(--color-border-subtle,var(--color-border));padding:20px 0}.settings-section:last-of-type{border-bottom:none}.settings-section-header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.settings-section-header .docs-h2{margin:0}.settings-help-link{white-space:nowrap;font-size:13px}.settings-status-row{border-radius:var(--radius-btn);background:var(--color-surface-alt);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:13.5px;display:flex}.settings-status-line{align-items:center;gap:8px;display:flex}.settings-status-dot{font-size:11px;line-height:1}.settings-status-dot.is-on{color:var(--color-positive,#2a9d5a)}.connected-apps-list{flex-direction:column;gap:8px;display:flex}.connected-app-row{border-radius:var(--radius-btn);background:var(--color-surface-alt);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.connected-app-main{flex-direction:column;gap:4px;display:flex}.connected-app-heading{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.canva-attribution{color:var(--color-text-faint);letter-spacing:.01em;white-space:nowrap;align-items:baseline;gap:3px;font-size:10px;font-weight:500;line-height:1.2;display:inline-flex}.canva-attribution strong{color:var(--color-text-muted);font-size:11px;font-weight:700}.canva-modal-heading{gap:3px;display:grid}.connected-app-name{color:var(--color-text);align-items:center;gap:6px;font-size:14px;font-weight:600;display:inline-flex}.connected-app-meta{color:var(--color-text);font-size:12.5px}.connected-app-meta-faint{color:var(--color-text-faint);font-size:11.5px}.connected-apps-error{color:var(--color-danger,#c4302b);background:#c4302b14;border-radius:6px;margin:8px 0 0;padding:8px 10px;font-size:12.5px}.settings-status-row.is-ok .settings-status-dot{color:var(--color-positive,#2a9d5a)}.settings-status-row.is-warn .settings-status-dot{color:var(--color-warning,#c9a227)}.settings-status-row.is-idle .settings-status-dot{color:var(--color-text-muted)}.settings-action-btn{border-radius:var(--radius-btn);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;padding:8px 14px;font-size:13px;font-weight:500;text-decoration:none;display:inline-block}.settings-action-btn:hover{background:var(--color-surface-alt)}.settings-action-btn.is-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.settings-action-btn.is-primary:hover{filter:brightness(.95)}.settings-action-btn.is-danger{color:var(--color-text)}.settings-action-btn.is-danger:hover,.settings-action-btn.is-danger:focus-visible{color:var(--color-danger,#dc3545);border-color:var(--color-danger,#dc3545);background:var(--color-surface)}.settings-billing-summary{border-radius:var(--radius-btn);background:var(--color-surface-alt);flex-direction:column;gap:6px;padding:14px;display:flex}.settings-billing-line{align-items:center;gap:10px;font-size:14px;display:flex}.settings-billing-muted{color:var(--color-text-muted);font-size:13px}.settings-pill{border-radius:999px;align-items:center;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.settings-pill.is-pro{background:var(--color-accent);color:#fff}.settings-pill.is-free{background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-border)}.settings-billing-summary .settings-action-btn{align-self:flex-start;margin-top:6px}.docs-cta-btn{border-radius:var(--radius-btn);background:var(--color-accent);color:#fff;margin:8px 0 12px;padding:10px 16px;font-size:14px;font-weight:500;text-decoration:none;display:inline-block}.docs-cta-btn:hover{filter:brightness(.95)}.auth-settings-subitem{color:var(--color-text-muted);padding-left:28px;font-size:12.5px}.withdrawal-trigger-btn{margin-top:4px}.withdrawal-modal{width:min(460px,100vw - 32px)}.withdrawal-confirm-field{flex-direction:column;gap:6px;margin-top:4px;display:flex}.withdrawal-confirm-label{color:var(--color-text-muted);letter-spacing:.2px;font-size:12.5px;font-weight:600}.withdrawal-confirm-input{border:1px solid var(--color-border);border-radius:var(--radius-btn);background:var(--color-surface);width:100%;min-height:42px;color:var(--color-text);font:inherit;font-family:var(--font-mono);outline:none;padding:10px 12px;font-size:14px;transition:border-color .15s}.withdrawal-confirm-input:focus{border-color:var(--color-accent)}.withdrawal-error{border-radius:var(--radius-btn);color:var(--color-danger,#dc3545);background:#dc354514;margin:12px 0 0;padding:10px 14px;font-size:13px}.withdrawal-actions{border-top:1px solid var(--color-border);gap:12px;margin-top:24px;padding:20px 24px 24px}
.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{background:var(--color-accent);color:#fff;border-radius:var(--radius-btn);width:100%;min-height:44px;font-size:14px;font-weight:600;font-family:var(--font-body);cursor:pointer;text-align:center;transition:background var(--t-normal);border:0;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)}.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-role-oauth{border-radius:var(--radius-btn);border:1px solid var(--color-border);cursor:pointer;justify-content:center;align-items:center;gap:8px;min-height:44px;font-size:14px;font-weight:600;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{color:#1f1f1f;background:#fff}.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-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-links{justify-content:center;align-items:center;gap:12px;margin-top:28px;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%;width:28px;height:28px}.auth-name{color:var(--color-text);font-size:13px;font-weight:500}.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)}
