@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+TC:wght@400;500;600;700&display=swap";:root{color:#16263a;font-synthesis:none;text-rendering:optimizelegibility;--ink:#16263a;--ink-soft:#526173;--paper:#fffefa;--paper-warm:#f4f1e9;--navy:#16324f;--teal:#15746f;--teal-light:#dff0eb;--orange:#e57642;--orange-light:#fbe7da;--line:#d8d7d0;--line-dark:#b8b9b5;--danger:#a83e3e;--danger-light:#f9e7e4;--success:#176847;--success-light:#e3f2e9;--shadow:0 20px 55px #16324f1f;--radius:20px;background:#f4f1e9;font-family:DM Sans,Noto Sans TC,system-ui,sans-serif}*{box-sizing:border-box}html{background:var(--paper-warm);min-width:320px}body{background:var(--paper-warm);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline-offset:2px;outline:3px solid #e5764266}h1,h2,h3,h4,p{margin-top:0}h1{letter-spacing:-.045em;margin-bottom:1rem;font-size:clamp(2rem,5vw,4.2rem);line-height:1.05}h2{letter-spacing:-.025em;margin-bottom:.7rem;font-size:clamp(1.35rem,2.4vw,2rem);line-height:1.2}h3{margin-bottom:.45rem;font-size:1.12rem;line-height:1.3}p{line-height:1.65}small{color:var(--ink-soft)}.app-shell{min-height:100vh}.page{width:min(1240px,100% - 40px);margin:0 auto;padding:48px 0 80px}.page-narrow{width:min(620px,100% - 40px);margin:0 auto;padding:80px 0}.full-page-status{min-height:60vh;color:var(--ink-soft);place-items:center;font-weight:600;display:grid}.full-page-status.inside{min-height:240px}.eyebrow{letter-spacing:.16em;color:var(--teal);text-transform:uppercase;margin:0 0 .45rem;font-size:.73rem;font-weight:700}.muted{color:var(--ink-soft)}.lede{max-width:800px;color:var(--ink-soft);font-size:1.04rem}.section-number{color:var(--orange);letter-spacing:.18em;margin:0 0 .5rem;font-size:.72rem;font-weight:700}.count-badge{min-width:36px;height:36px;color:var(--navy);background:#edf0f2;border-radius:100px;place-items:center;padding:0 10px;font-weight:700;display:grid}.topbar{z-index:30;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffefaf0;border-bottom:1px solid #b8b9b5a6;justify-content:space-between;align-items:center;gap:22px;min-height:76px;padding:12px max(24px,50vw - 620px);display:flex;position:sticky;top:0}.brand-lockup{align-items:center;gap:12px;min-width:210px;display:flex}.brand-lockup strong{color:var(--navy)}.brand-lockup .eyebrow{margin:0;font-size:.62rem}.brand-mark{background:var(--navy);color:#fff;letter-spacing:-.04em;width:68px;height:68px;box-shadow:8px 8px 0 var(--orange);border-radius:20px;place-items:center;font-size:1.35rem;font-weight:700;display:grid}.brand-mark.compact{width:42px;height:42px;box-shadow:4px 4px 0 var(--orange);border-radius:12px;font-size:.88rem}.topbar-actions,.admin-heading-actions{flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;gap:10px;display:flex}.student-preview-controls{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.student-preview-sheet{width:min(1320px,100%)}.student-preview-page{padding-top:22px}.student-preview-banner{border:1px solid color-mix(in srgb, var(--orange) 45%, var(--line));background:color-mix(in srgb, var(--orange) 8%, var(--paper));border-radius:14px;flex-wrap:wrap;align-items:baseline;gap:10px 18px;margin-bottom:18px;padding:14px 18px;display:flex}.student-preview-banner span{color:var(--muted)}.student-preview-page button:disabled{cursor:not-allowed;opacity:.58}.segmented{background:#edf0f2;border-radius:100px;padding:4px;display:inline-flex}.segmented button{color:var(--ink-soft);background:0 0;border:0;border-radius:100px;padding:8px 14px}.segmented button.active{background:var(--paper);color:var(--navy);font-weight:700;box-shadow:0 2px 8px #16263a1a}.auth-shell{grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);min-height:100vh;display:grid}.auth-hero{background:var(--navy);color:#fff;flex-direction:column;justify-content:center;padding:clamp(48px,8vw,120px);display:flex;position:relative;overflow:hidden}.auth-hero:before{content:"";border:1px solid #ffffff21;border-radius:50%;width:420px;height:420px;position:absolute;top:-180px;right:-130px;box-shadow:0 0 0 70px #ffffff09,0 0 0 140px #ffffff06}.auth-hero:after{content:"";background:var(--orange);border-radius:100px;width:130px;height:16px;margin-top:64px}.auth-hero .brand-mark{color:var(--navy);background:#fff;margin-bottom:70px}.auth-hero .eyebrow{color:#8fd4c6}.auth-hero h1{max-width:760px;font-size:clamp(2rem,4vw,3.5rem)}.hero-copy{color:#dce5ec;max-width:640px;font-size:clamp(1rem,1.8vw,1.3rem)}.hero-login-link{z-index:1;color:#fff;background:#ffffff14;border:1px solid #ffffff59;border-radius:9px;padding:9px 13px;font-weight:700;text-decoration:none;position:absolute;top:clamp(24px,5vw,58px);right:clamp(24px,5vw,68px)}.hero-login-link:hover{background:#ffffff29}.auth-principles{border-top:1px solid #ffffff30;grid-template-columns:1fr 1fr;gap:28px;max-width:760px;margin-top:54px;padding-top:26px;display:grid}.auth-principles p{color:#bfcbd5;margin:0;font-size:.9rem}.auth-card{background:var(--paper);flex-direction:column;justify-content:center;padding:clamp(26px,3vw,42px);display:flex;position:relative}.auth-card h2{max-width:500px;font-size:clamp(1.8rem,4vw,3rem)}.auth-card>p:not(.eyebrow){max-width:520px;color:var(--ink-soft)}.language-button{color:var(--teal);background:0 0;border:0;font-weight:700;position:absolute;top:34px;right:38px}.auth-mode-switch{border:1px solid var(--line);background:#edf1f0;border-radius:100px;align-self:flex-start;gap:4px;margin:16px 0;padding:4px;display:inline-flex}.auth-mode-button{color:var(--ink-soft);background:0 0;border:0;border-radius:100px;padding:9px 14px;font-weight:700}.auth-mode-button.active{color:var(--navy);background:var(--paper);box-shadow:0 2px 8px #16263a1a}.auth-access-note{border-left:3px solid var(--orange);max-width:520px;color:var(--ink-soft);background:#fff8ed;margin:0 0 16px;padding:11px 13px;font-size:.9rem;line-height:1.5}.auth-policy-note{border:1px solid #c7d7d3;border-left:3px solid var(--teal);color:#234d4b;background:var(--teal-light);border-radius:10px;max-width:520px;margin:0 0 19px;padding:14px 15px;font-size:.86rem;line-height:1.5}.auth-policy-note strong{color:var(--navy);margin-bottom:5px;display:block}.auth-policy-note p{margin:0}.auth-policy-note p+p{margin-top:7px}.primary-button,.secondary-button,.danger-button,.quiet-button,.file-button{border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:43px;padding:10px 17px;font-weight:700;text-decoration:none;display:inline-flex}.primary-button{color:#fff;background:var(--teal);box-shadow:0 6px 15px #15746f2e}.primary-button:hover:not(:disabled){background:#0f625e}.secondary-button,.file-button{color:var(--navy);background:var(--paper);border-color:var(--line-dark)}.secondary-button:hover:not(:disabled),.file-button:hover{border-color:var(--teal);color:var(--teal)}.danger-button{color:var(--danger);background:var(--danger-light);border-color:#e8bdb7}.quiet-button{min-height:38px;color:var(--ink-soft);background:0 0;border-color:#0000;padding:8px 12px}.quiet-button:hover{color:var(--navy);background:#edf0f2}.text-button{color:var(--teal);background:0 0;border:0;padding:6px 0;font-weight:700}.small{min-height:34px;padding:7px 11px;font-size:.85rem}.icon-button{border:1px solid var(--line);width:42px;height:42px;color:var(--ink);background:var(--paper);border-radius:50%;flex:none;font-size:1.5rem;line-height:1}.stack-form{flex-direction:column;gap:17px;display:flex}label{color:var(--ink);flex-direction:column;gap:7px;font-size:.9rem;font-weight:600;display:flex}input,select,textarea{border:1px solid var(--line-dark);width:100%;min-width:0;max-width:100%;color:var(--ink);background:#fff;border-radius:10px;padding:11px 12px}input:hover,select:hover,textarea:hover{border-color:#82909d}textarea{resize:vertical;line-height:1.55}.form-row{align-items:flex-end;gap:13px;min-width:0;display:flex}.form-row>label{flex:1 1 0;min-width:0}.form-row>label.grow{flex:2 1 0}.date-row{flex-wrap:wrap}.date-row>label{flex:280px}.compact-field{min-width:220px}.compact-field span{color:var(--ink-soft);font-size:.72rem}.compact-field select{padding:8px 34px 8px 10px}.checkbox-line{flex-direction:row;align-items:center}.checkbox-line input[type=checkbox],.not-observed-option input[type=checkbox],.member-picker input[type=checkbox],.admin-member-grid input[type=checkbox]{width:18px;height:18px;accent-color:var(--teal);flex:none}.notice{border-radius:12px;margin:14px 0;padding:13px 16px;line-height:1.5}.notice.error{color:#7b2626;background:var(--danger-light);border:1px solid #e8bdb7}.notice.success{color:var(--success);background:var(--success-light);border:1px solid #b7ddc8}.floating-error{z-index:80;color:#7b2626;background:var(--danger-light);max-width:460px;box-shadow:var(--shadow);border:1px solid #e8bdb7;border-radius:12px;padding:13px 16px;position:fixed;top:92px;right:22px}.page-heading{justify-content:space-between;align-items:flex-end;gap:30px;margin:12px 0 42px;display:flex}.page-heading h1{color:var(--navy)}.page-heading p{color:var(--ink-soft);margin-bottom:0}.student-guidance{background:var(--teal-light);color:#234d4b;border:1px solid #c7d7d3;border-radius:16px;justify-content:space-between;align-items:flex-end;gap:24px;margin:-15px 0 24px;padding:19px 22px;display:flex}.student-guidance h2{color:var(--navy);margin-bottom:0}.student-guidance>p{max-width:620px;margin:0}.student-grid,.admin-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);min-width:0;padding:24px;box-shadow:0 4px 18px #16324f0a}.panel.span-two,.span-two{grid-column:span 2}.panel-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.panel-heading h2{margin:0}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.data-card{background:#f1f3f3;border-radius:14px;min-width:0;padding:18px}.data-card h3{color:var(--navy);margin:13px 0 3px;font-size:1.35rem}.data-card p{color:var(--ink-soft);margin-bottom:14px}.kind-badge,.status-dot{letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;border-radius:100px;align-items:center;width:fit-content;font-size:.69rem;font-weight:700;display:inline-flex}.kind-badge{background:var(--orange-light);color:#965026;padding:5px 9px}.kind-badge.activity{background:var(--teal-light);color:var(--teal)}.kind-badge.self{color:#604a89;background:#ece7f7}.status-dot{color:var(--ink-soft);gap:6px}.status-dot:before{content:"";background:#89939c;border-radius:50%;width:8px;height:8px}.status-dot.active:before,.status-dot.open:before,.status-dot.published:before,.status-dot.approved:before{background:var(--success)}.status-dot.draft:before,.status-dot.pending:before,.status-dot.pending_teacher:before,.status-dot.frozen:before{background:#d18a22}.status-dot.closed:before,.status-dot.archived:before,.status-dot.cancelled:before,.status-dot.rejected:before,.status-dot.skipped-existing:before{background:#8e97a0}.status-dot.processing:before{background:var(--orange)}.status-dot.sent:before{background:var(--success)}.status-dot.failed:before{background:var(--danger)}.list-stack{flex-direction:column;gap:10px;display:flex}.list-action{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:12px;padding:14px 4px 14px 0;display:flex}.list-action:last-child{border-bottom:0}.list-action>span:first-child{flex-direction:column;gap:3px;display:flex}.list-action>span:last-child{color:var(--orange);font-size:1.3rem}.scope-action{align-items:center}.scope-summary{align-items:flex-start}.scope-summary .kind-badge{margin-bottom:2px}.scope-summary small{line-height:1.45}.round-item{border-bottom:1px solid var(--line);flex-direction:column;gap:6px;padding:13px 0 16px;display:flex}.round-item:last-child{border:0}.round-item .primary-button,.round-item .secondary-button{align-self:flex-start;margin-top:7px}.round-title-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.empty-state{border:1px dashed var(--line-dark);border-radius:var(--radius);color:var(--ink-soft);text-align:center;padding:54px 24px}.empty-state.compact{border-radius:13px;padding:24px 12px}.policy-strip{background:var(--teal-light);color:#234d4b;border:1px solid #c7d7d3;border-radius:14px;align-items:flex-start;gap:14px;margin-top:20px;padding:17px 20px;display:flex}.policy-strip span{background:var(--teal);color:#fff;border-radius:50%;flex:none;place-items:center;width:23px;height:23px;font-family:serif;font-weight:700;display:grid}.policy-copy{min-width:0}.policy-copy strong{color:var(--navy);margin-bottom:4px;display:block}.policy-copy p{margin:0}.policy-copy p+p{margin-top:7px}.dialog-backdrop{z-index:60;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#091929b8;place-items:center;padding:26px;display:grid;position:fixed;inset:0}.sheet{background:var(--paper-warm);border-radius:24px;width:min(1160px,100%);max-height:calc(100vh - 52px);overflow:auto;box-shadow:0 28px 90px #00000047}.compact-sheet{width:min(900px,100%)}.sheet-header{z-index:5;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffefaf5;justify-content:space-between;align-items:center;gap:20px;padding:22px 28px;display:flex;position:sticky;top:0}.sheet-header h2{margin:0}.scope-meta{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px 13px;margin-top:10px;font-size:.84rem;display:flex}.scope-meta .kind-badge{font-size:.67rem}.sheet-body{padding:28px}.password-dialog{width:min(620px,100%)}.split-layout{grid-template-columns:minmax(0,1.55fr) minmax(310px,.85fr);gap:28px;display:grid}.main-column{flex-direction:column;gap:30px;min-width:0;display:flex}.side-column{min-width:0}.sticky-form{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:23px;position:sticky;top:100px}.grouping-draft-instruction{border-left:3px solid var(--orange);color:#67422e;background:var(--orange-light);margin:9px 0 0;padding:9px 11px;font-size:.86rem}.group-submit-note{color:var(--ink-soft);margin:-2px 0 0;font-size:.84rem;line-height:1.5}.selected-members{background:#f3faf7;border:1px solid #c7d7d3;border-radius:11px;padding:12px 13px}.selected-members-heading{color:var(--navy);justify-content:space-between;gap:12px;display:flex}.selected-members ul{color:var(--ink-soft);margin:8px 0 0;padding-left:20px;line-height:1.5}.selected-members p{color:var(--ink-soft);margin:7px 0 0;font-size:.84rem}.selected-members small{color:var(--teal)}.section-heading-row{justify-content:space-between;align-items:baseline;gap:20px;display:flex}.group-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.group-card,.request-card{background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:16px}.group-card h4{margin-bottom:8px}.group-card ul{color:var(--ink-soft);margin:0;padding-left:18px;line-height:1.65}.request-card{margin-bottom:10px}.request-card p{color:var(--ink-soft);margin:8px 0;font-size:.9rem}.request-next-step{color:var(--teal);font-weight:600;line-height:1.45;display:block}.inline-actions{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.member-picker,.admin-member-grid{border:0;min-width:0;margin:0;padding:0}.member-picker legend,.admin-member-grid legend{justify-content:space-between;width:100%;margin-bottom:8px;font-size:.9rem;font-weight:700;display:flex}.member-picker{max-height:390px;padding-right:5px;overflow:auto}.member-search{margin:0 0 5px}.member-search span{color:var(--ink-soft);font-size:.78rem}.member-search input{padding:9px 10px}.member-picker-hint{color:var(--ink-soft);margin:0 0 8px;font-size:.78rem;line-height:1.45}.member-picker-empty{color:var(--ink-soft);text-align:center;background:#fff;margin:0;padding:15px 10px}.member-picker label,.admin-member-grid label{border-bottom:1px solid var(--line);background:#fff;flex-direction:row;align-items:center;gap:11px;padding:10px}.member-picker label.self{background:var(--teal-light)}.member-picker label>span,.admin-member-grid label>span{flex-direction:column;gap:2px;min-width:0;display:flex}.evaluation-sheet{background:#eef0ef;width:min(1320px,100%)}.evaluation-header{color:#fff;background:#16324ffa;border-color:#ffffff29}.evaluation-header .eyebrow{color:#83d0c1}.evaluation-header .icon-button{color:#fff;background:#ffffff14;border-color:#ffffff40}.sheet-header-actions{align-items:center;gap:8px;display:flex}.quiet-button.light{color:#e4edf3}.quiet-button.light:hover{color:#fff;background:#ffffff1a}.sheet-notice{margin:14px 24px 0}.evaluation-toolbar{background:var(--paper);border-bottom:1px solid var(--line);grid-template-columns:auto minmax(140px,1fr) auto;align-items:center;gap:18px;padding:14px 24px;display:grid}.evaluation-policy{border-bottom:1px solid var(--line);color:#67422e;background:#fff8ed;grid-template-columns:1fr 1fr;gap:17px;padding:15px 24px;display:grid;position:relative}.evaluation-policy strong{color:var(--navy);margin-bottom:4px;display:block}.evaluation-policy p{margin:0;font-size:.86rem;line-height:1.5}.draft-status{color:var(--teal);grid-column:1/-1;font-size:.82rem;font-weight:700}.draft-status.saving,.draft-status.unsaved{color:#9a601d}.draft-status.error{color:var(--danger)}.progress-copy{align-items:baseline;gap:7px;display:flex}.progress-copy span,.deadline-copy{color:var(--ink-soft);font-size:.8rem}.progress-track{background:#dce1e2;border-radius:100px;height:7px;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--orange);height:100%;transition:width .25s;display:block}.evaluation-layout{grid-template-columns:230px minmax(0,1fr);align-items:start;display:grid}.people-nav{flex-direction:column;max-height:calc(100vh - 210px);padding:18px 12px;display:flex;position:sticky;top:158px;overflow:auto}.people-nav-hint{color:var(--ink-soft);margin:0 11px 7px;font-size:.74rem;line-height:1.4}.people-nav button{min-width:0;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:10px;padding:11px;display:flex}.people-nav button.active{background:var(--paper);box-shadow:0 3px 14px #16324f14}.people-nav button>span:last-child{flex-direction:column;min-width:0;display:flex}.people-nav strong,.people-nav small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.completion-mark{border:1px solid var(--line-dark);width:28px;height:28px;color:var(--ink-soft);border-radius:50%;flex:none;place-items:center;font-size:.8rem;display:grid}.completion-mark.complete{color:#fff;background:var(--teal);border-color:var(--teal)}.evaluation-content{background:var(--paper);border-left:1px solid var(--line);min-width:0;padding:28px 30px 50px}.person-heading{border-bottom:1px solid var(--line);justify-content:space-between;gap:18px;padding-bottom:22px;display:flex}.person-heading h3{margin-bottom:7px;font-size:1.75rem}.person-heading p{color:var(--ink-soft);margin-bottom:0}.dimension-stack{flex-direction:column;gap:17px;margin-top:22px;display:flex}.dimension-card{border:1px solid var(--line);background:#fff;border-radius:16px;min-width:0;margin:0;padding:21px}.dimension-card legend{color:var(--navy);align-items:center;gap:10px;padding:0 8px;font-size:1.06rem;font-weight:700;display:flex}.dimension-card legend>span{color:var(--orange);letter-spacing:.08em;font-size:.7rem}.dimension-note{color:var(--ink-soft)}.dimension-guidance{color:var(--teal);margin:12px 0 0;font-size:.84rem;font-weight:600}.score-scale{grid-template-columns:repeat(5,1fr);gap:8px;margin:16px 0 12px;display:grid}.score-scale label{cursor:pointer;display:block}.score-scale input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.score-scale label>span{border:1px solid var(--line-dark);background:var(--paper);border-radius:10px;place-items:center;min-height:48px;font-size:1.05rem;font-weight:700;display:grid}.score-scale label:hover>span{border-color:var(--teal)}.score-scale label.selected>span{color:#fff;background:var(--teal);border-color:var(--teal)}.anchor-copy{border-left:4px solid var(--orange);background:var(--orange-light);color:#67422e;margin:10px 0;padding:13px 15px}.anchor-copy p{margin:0 0 5px;font-size:.9rem}.anchor-copy p:last-child{margin:0}.anchor-details{margin:12px 0}.anchor-details summary{color:var(--teal);cursor:pointer;font-weight:700}.anchor-details>div{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.anchor-details section{background:#f2f4f4;border-radius:9px;min-width:0;padding:10px}.anchor-details section strong{color:var(--orange)}.anchor-details section p{margin:6px 0 0;font-size:.76rem;line-height:1.45}.not-observed-option{color:var(--ink-soft);flex-direction:row;align-items:center;gap:9px;margin-top:13px}.reason-field{margin-top:11px}.comment-card{background:#eef5f3;border-radius:16px;margin-top:22px;padding:22px}.comment-card label+label{margin-top:15px}.comment-visibility-note{color:#526173;margin:4px 0 14px;font-size:.82rem;line-height:1.5}.submission-review{background:#f4faf8;border:1px solid #c7d7d3;border-radius:15px;margin-top:24px;padding:18px}.submission-review-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.submission-review-heading h4{margin-bottom:4px}.submission-review-heading p{color:var(--ink-soft);margin:0;font-size:.82rem;line-height:1.5}.submission-review-heading>strong{color:var(--teal);flex:none;font-size:1.08rem}.submission-review-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.review-person{border:1px solid var(--line);min-width:0;color:var(--ink);text-align:left;background:#fff;border-radius:10px;align-items:center;gap:9px;padding:10px;display:flex}.review-person:hover{border-color:var(--teal)}.review-person>span:last-child{flex-direction:column;gap:2px;min-width:0;display:flex}.review-person strong,.review-person small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.review-person.complete small{color:var(--success)}.evaluation-actions{justify-content:space-between;gap:14px;margin-top:24px;display:flex}.review-before-submit{color:var(--teal);margin:12px 0 0;font-size:.84rem;font-weight:600}.revision-note{color:var(--ink-soft);text-align:right;font-size:.84rem}.receipt-card{color:var(--success);background:var(--success-light);border:1px solid #b7ddc8;border-radius:13px;align-items:center;gap:13px;margin-top:18px;padding:15px 17px;display:flex}.receipt-card>span{color:#fff;background:var(--success);border-radius:50%;flex:none;place-items:center;width:28px;height:28px;display:grid}.receipt-card p{margin:3px 0 0}.feedback-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:24px;display:grid}.feedback-card{border:1px solid var(--line);background:var(--paper);border-radius:16px;padding:20px}.feedback-card h3{min-height:2.8em}.feedback-metrics{grid-template-columns:1fr 1fr;gap:10px;display:grid}.feedback-metrics>div{background:#f0f3f3;border-radius:11px;flex-direction:column;padding:13px;display:flex}.feedback-metrics span{color:var(--ink-soft);font-size:.77rem}.feedback-metrics strong{color:var(--navy);font-size:1.8rem}.withheld-note{color:var(--ink-soft);margin:13px 0 0;font-size:.82rem}.admin-heading h1{font-size:clamp(2rem,4vw,3.3rem)}.admin-tabs{border:1px solid var(--line);background:var(--paper);border-radius:14px;gap:4px;margin-bottom:18px;padding:5px;display:flex;overflow-x:auto}.admin-tabs button{min-width:fit-content;color:var(--ink-soft);background:0 0;border:0;border-radius:9px;flex:1;padding:11px 16px;font-weight:700}.admin-tabs button.active{color:#fff;background:var(--navy)}.metric-card{border:1px solid var(--line);border-radius:var(--radius);min-height:175px;color:var(--ink);background:var(--paper);text-align:left;flex-direction:column;align-items:flex-start;padding:23px;display:flex;box-shadow:0 4px 18px #16324f0a}.metric-card span{color:var(--ink-soft)}.metric-card strong{color:var(--navy);letter-spacing:-.05em;font-size:3.2rem}.metric-card small{margin-top:auto}.metric-card:hover{border-color:var(--teal);transform:translateY(-2px)}.admin-intro{background:var(--navy);color:#fff;padding:31px}.admin-intro h2{color:#fff;max-width:700px}.admin-intro ol{color:#d3dfe7;padding-left:20px;line-height:1.8}.admin-workspace{flex-direction:column;gap:18px;display:flex}.two-column-admin{grid-template-columns:minmax(0,1.65fr) minmax(320px,.75fr);align-items:start;gap:18px;display:grid}.table-wrap{width:100%;overflow:auto}.table-help{color:var(--ink-soft);margin:-1px 0 8px;font-size:.78rem;line-height:1.45}.roster-table-wrap,.dispatch-table-wrap{border:1px solid var(--line);overscroll-behavior:contain;scrollbar-gutter:stable;border-radius:13px;max-height:min(58vh,640px);overflow:auto}.roster-table-wrap table,.dispatch-table-wrap table{min-width:760px}.roster-table-wrap th,.dispatch-table-wrap th{z-index:2;background:var(--paper);box-shadow:0 1px 0 var(--line);position:sticky;top:0}.roster-table-wrap td,.dispatch-table-wrap td{white-space:nowrap}.roster-table-wrap td:last-child{white-space:normal}.table-sort{width:100%;color:inherit;text-align:left;font-size:inherit;text-transform:inherit;letter-spacing:inherit;background:0 0;border:0;justify-content:space-between;align-items:center;gap:6px;padding:2px 0;font-weight:700;display:inline-flex}.table-sort:hover{color:var(--teal)}.sort-indicator{color:var(--teal);flex:none;font-size:.95rem;line-height:1}table{border-collapse:collapse;width:100%;font-size:.88rem}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:11px 10px}th{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;font-size:.74rem}.import-panel{align-self:start;max-height:none;position:static;overflow:visible}.form-divider{background:var(--line);height:1px;margin:22px 0}.single-student-form h3{color:var(--navy);margin:0}.single-student-form .form-help{color:var(--ink-soft);margin:0;font-size:.92rem;line-height:1.55}.roster-row-actions{flex-wrap:wrap;align-items:center;gap:8px;min-width:230px;display:flex}.status-select{min-width:122px}.account-dispatch-panel{flex-direction:column;gap:4px;display:flex}.dispatch-summary{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:11px 0 4px;display:grid}.dispatch-summary span{color:var(--ink-soft);background:#f2f4f4;border-radius:10px;flex-direction:column;gap:3px;padding:11px 12px;font-size:.75rem;display:flex}.dispatch-summary strong{color:var(--navy);font-size:1.45rem}.code-input{white-space:pre;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.76rem}.file-button{cursor:pointer;position:relative}.file-button input{opacity:0;width:1px;height:1px;position:absolute}.groups-admin-grid{grid-template-columns:minmax(310px,.8fr) repeat(2,minmax(0,1fr))}.teacher-group-rule{align-items:flex-start;margin-bottom:18px;display:flex}.teacher-group-rule p{margin:5px 0 0;line-height:1.55}.teacher-group-control{border:2px solid #b7d8d2;margin-bottom:18px;box-shadow:0 10px 30px #1b4d4614}.teacher-group-control>.form-help{color:var(--ink-soft);margin:-3px 0 14px;line-height:1.55}.teacher-group-selectors{margin-bottom:16px}.teacher-group-control .group-editor{border:1px solid var(--line);border-radius:14px;padding:17px}.teacher-group-control .group-editor h3{color:var(--navy);margin:0 0 4px}.teacher-group-control .group-editor small{color:var(--ink-soft)}.scope-list{flex-direction:column;gap:12px;display:flex}.scope-card{border:1px solid var(--line);border-radius:14px;padding:17px}.scope-card>header,.round-admin-card>header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.scope-card h3{margin:7px 0 0}.scope-card p{color:var(--ink-soft);margin:12px 0}.scope-editor{background:#147a740e;border:1px solid #147a7447;border-radius:12px;margin-top:15px;padding:15px}.scope-editor-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.scope-editor-heading strong,.scope-editor-heading small{display:block}.scope-editor-heading small{color:var(--ink-soft);margin-top:4px;line-height:1.45}.group-chips{flex-wrap:wrap;gap:7px;margin-top:12px;display:flex}.group-chips button{border:1px solid var(--line);color:var(--ink);background:#f2f4f4;border-radius:100px;align-items:center;gap:8px;padding:7px 10px;display:inline-flex}.group-chips button small{color:var(--teal);font-weight:700}.group-chips span{color:#fff;background:var(--teal);border-radius:50%;place-items:center;width:21px;height:21px;font-size:.7rem;display:grid}.group-editor{background:#f8faf9}.admin-member-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;display:grid}.admin-member-grid legend{grid-column:1/-1}.admin-member-grid label{border:1px solid var(--line);border-radius:10px}.admin-member-grid label.assigned-other-group{background:#fff8eb;border-color:#dfb775}.request-admin-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.request-admin-list .request-card{justify-content:space-between;align-items:center;gap:16px;margin:0;display:flex}.request-admin-list .request-card.needs-attention{background:#fff9ef;border-color:#d99a52}.teacher-change-history{margin-top:18px}.teacher-change-list{flex-direction:column;gap:12px;display:flex}.teacher-change-card{border:1px solid var(--line);background:#f8faf9;border-radius:13px;padding:16px}.teacher-change-card>header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.teacher-change-card>header strong{color:var(--navy)}.teacher-change-meta{color:var(--ink-soft);margin:5px 0 0;font-size:.84rem}.teacher-change-reason{color:var(--ink);margin:13px 0;line-height:1.55}.teacher-change-reason strong{color:var(--navy)}.teacher-change-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.teacher-change-columns>div{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:12px}.teacher-change-columns h4{color:var(--navy);margin:0 0 5px}.teacher-change-group-name{color:var(--ink-soft);margin:0 0 7px;font-size:.86rem}.teacher-change-columns ul{color:var(--ink-soft);margin:0;padding-left:19px;font-size:.88rem;line-height:1.55}.muted-list-item{color:var(--ink-soft)}.teacher-change-diff{flex-wrap:wrap;gap:8px;margin-top:10px;font-size:.84rem;line-height:1.45;display:flex}.teacher-change-diff span{border-radius:8px;padding:5px 8px}.change-added{color:#146b4e;background:#e5f4ed}.change-removed{color:#9a4f31;background:#fff0e9}.rounds-layout{grid-template-columns:minmax(320px,.75fr) minmax(0,1.35fr)}.rounds-column{flex-direction:column;gap:18px;display:flex}.round-admin-list{flex-direction:column;gap:12px;display:flex}.round-admin-card{border:1px solid var(--line);border-radius:14px;padding:17px}.round-admin-card h3{margin-bottom:3px}.round-admin-card p{color:var(--ink-soft);font-size:.86rem}.round-stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0;display:grid}.round-stats span{color:var(--ink-soft);background:#f2f4f4;border-radius:9px;flex-direction:column;padding:10px;font-size:.72rem;display:flex}.round-stats strong{color:var(--navy);font-size:1.25rem}@media (width<=980px){.auth-shell{grid-template-columns:1fr}.auth-hero{min-height:52vh;padding:55px 8vw}.auth-hero .brand-mark{margin-bottom:44px}.auth-principles{margin-top:32px}.auth-card{min-height:48vh;padding:76px 8vw}.student-grid,.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel.span-two{grid-column:span 2}.split-layout,.two-column-admin,.rounds-layout{grid-template-columns:1fr}.side-column{order:-1}.sticky-form,.import-panel{max-height:none;position:static;overflow:visible}.groups-admin-grid{grid-template-columns:1fr 1fr}.groups-admin-grid>:first-child{grid-column:span 2}.evaluation-layout{grid-template-columns:190px minmax(0,1fr)}.anchor-details>div{grid-template-columns:1fr}.admin-member-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.roster-table-wrap,.dispatch-table-wrap{max-height:min(56vh,520px)}}@media (width<=720px){.page{width:min(100% - 24px,1240px);padding-top:28px}.topbar{align-items:flex-start;padding:12px;position:relative}.brand-lockup{min-width:0}.brand-lockup>div{display:none}.topbar-actions{align-items:center}.segmented{order:3;width:100%}.segmented button{flex:1}.page-heading{flex-direction:column;align-items:flex-start;margin-bottom:25px}.page-heading .compact-field{width:100%}.student-guidance{flex-direction:column;align-items:flex-start;gap:8px;margin-top:-8px}.student-grid,.admin-grid,.groups-admin-grid{grid-template-columns:1fr}.panel.span-two,.groups-admin-grid>:first-child{grid-column:span 1}.card-grid,.group-board,.feedback-grid,.request-admin-list{grid-template-columns:1fr}.dialog-backdrop{padding:0}.sheet{border-radius:0;width:100%;height:100vh;max-height:100vh}.sheet-header{padding:17px 16px}.evaluation-header{align-items:flex-start}.sheet-body{padding:18px 14px 32px}.split-layout{gap:18px}.evaluation-toolbar{grid-template-columns:auto 1fr;padding:11px 14px}.evaluation-policy{grid-template-columns:1fr;padding:14px}.deadline-copy{grid-column:1/-1}.evaluation-layout{flex-direction:column;display:flex}.people-nav{border-bottom:1px solid var(--line);flex-direction:row;width:100%;max-height:none;padding:10px;position:static;overflow-x:auto}.people-nav-hint{flex:0 0 150px;align-self:center;margin:0 8px 0 2px}.people-nav button{min-width:154px}.evaluation-content{border-left:0;width:100%;padding:22px 14px 42px}.person-heading{align-items:flex-start}.dimension-card{padding:16px 12px}.form-row{flex-direction:column;align-items:stretch}.admin-member-grid{grid-template-columns:1fr 1fr}.dispatch-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.request-admin-list .request-card{flex-direction:column;align-items:flex-start}.teacher-change-columns{grid-template-columns:1fr}.roster-table-wrap,.dispatch-table-wrap{max-height:min(56vh,500px)}.admin-heading-actions{justify-content:stretch;width:100%}.admin-heading-actions .compact-field,.admin-heading-actions .secondary-button,.student-preview-controls,.student-preview-controls .compact-field,.student-preview-controls .secondary-button{width:100%}}@media (width<=430px){h1{font-size:2.05rem}.auth-hero h1{font-size:1.8rem}.auth-hero{min-height:auto;padding:42px 24px}.auth-hero .brand-mark{margin-bottom:40px}.auth-principles{grid-template-columns:1fr;gap:10px}.auth-card{padding:56px 24px 42px}.language-button{top:24px;right:24px}.auth-mode-switch{max-width:100%}.auth-mode-button{padding-inline:11px}.topbar{flex-wrap:wrap}.topbar-actions{flex:1}.quiet-button{padding-inline:8px}.panel{padding:18px 15px}.dispatch-summary,.admin-member-grid{grid-template-columns:1fr}.score-scale{gap:5px}.score-scale label>span{min-height:44px}.submission-review-grid{grid-template-columns:1fr}.evaluation-actions{flex-direction:column-reverse}.evaluation-actions button{width:100%}.feedback-metrics,.round-stats{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}}
