:root{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#1d1d1f;background:#f5f5f7;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}input,select,textarea{color:inherit}:focus-visible{outline:3px solid rgba(0,113,227,.32);outline-offset:2px}.splash{min-height:100vh;display:grid;place-items:center;color:#6e6e73}.app-shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:20;background:#fafafcd1;backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);border-bottom:1px solid rgba(0,0,0,.06)}.topbar-inner{max-width:1240px;margin:auto;height:64px;padding:0 28px;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand,.account{display:flex;align-items:center;gap:12px}.brand{font-size:15px;font-weight:700;letter-spacing:-.02em}.account{font-size:13px;color:#6e6e73;white-space:nowrap}.brand-mark,.app-mark{display:grid;place-items:center;background:#1d1d1f;color:#fff;font-weight:700;border-radius:11px}.brand-mark{width:32px;height:32px;font-size:16px}.text-button{border:0;background:none;color:#0071e3;font-weight:600;padding:8px 4px;border-radius:7px}.text-button:hover{color:#005bb5}.text-button.muted{color:#6e6e73}.mode-switch{display:inline-flex;gap:2px;padding:3px;margin-top:21px;border-radius:11px;background:#eaeaee}.mode-switch button{border:0;background:transparent;color:#696970;padding:9px 16px;border-radius:8px;font-size:13px;font-weight:600}.mode-switch button.selected{color:#1d1d1f;background:#fff;box-shadow:0 1px 5px #0000001a}.profile-page{max-width:540px}.profile-card{padding:28px}.profile-card .button{justify-self:start}.workspace{max-width:1240px;margin:auto;padding:0 28px 48px}.nav-tabs{display:flex;align-items:center;gap:24px;min-height:55px;border-bottom:1px solid #dedee3;overflow-x:auto;scrollbar-width:none}.nav-tabs::-webkit-scrollbar{display:none}.nav-tab{align-self:stretch;position:relative;border:0;background:transparent;color:#6e6e73;white-space:nowrap;font-size:14px;font-weight:600;padding:0 2px}.nav-tab.active{color:#1d1d1f}.nav-tab.active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:#0071e3;border-radius:2px}.page{padding-top:34px}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:26px}.eyebrow{margin:0 0 8px;color:#6e6e73;font-size:12px;font-weight:700;letter-spacing:.04em}h1,h2,h3,p{margin-top:0}h1{margin-bottom:6px;font-size:clamp(28px,3vw,36px);line-height:1.14;letter-spacing:-.035em;font-weight:700}h2{letter-spacing:-.025em}.subtle{margin:0;color:#6e6e73;font-size:14px}.date-control{display:grid;gap:7px;color:#6e6e73;font-size:12px;font-weight:600}.date-control input{min-width:170px;background:#fff;border:1px solid #d8d8de;border-radius:11px;padding:10px 12px;font-size:14px}.button{border:0;border-radius:11px;min-height:43px;padding:0 18px;font-weight:600;font-size:14px;transition:background-color .16s ease,transform .12s ease}.button:active:not(:disabled),.report-card:active,.nav-tab:active,.text-button:active{transform:scale(.985)}.button-primary{background:#0071e3;color:#fff}.button-primary:hover:not(:disabled){background:#0064c8}.button-secondary{background:#ededf0;color:#1d1d1f}.button-secondary:hover{background:#e3e3e8}.button-danger{background:#cf3540;color:#fff}.button-danger:hover:not(:disabled){background:#af2732}.full{width:100%}.form-error,.notice{padding:11px 14px;border-radius:10px;font-size:13px;line-height:1.5;margin-bottom:16px}.form-error{color:#9f262d;background:#fff0f0}.notice{color:#15613c;background:#e9f7ee}.empty-state{color:#8a8a90;text-align:center;padding:42px 16px;margin:0;font-size:14px}.content-card,.report-card,.progress-card,.report-form,.login-card{background:#fff;border:1px solid rgba(0,0,0,.045);box-shadow:0 3px 16px #19192309;border-radius:18px}.login-page{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:min(100%,410px);padding:36px}.app-mark{width:48px;height:48px;margin-bottom:28px;font-size:22px;border-radius:14px}.login-institution{margin:0 0 7px;color:#6e6e73;font-size:13px;font-weight:600;letter-spacing:.01em}.login-card h1{font-size:27px;margin-bottom:7px}.login-form{display:grid;gap:10px;margin-top:30px}.login-form label{color:#55555b;font-size:13px;font-weight:600}.login-form input{width:100%;border:1px solid #d7d7dd;background:#fbfbfc;border-radius:10px;height:45px;padding:0 13px;margin-bottom:7px}.login-form .remember-row{display:flex;align-items:center;gap:9px;margin-top:2px;cursor:pointer}.login-form .remember-row input{width:17px;height:17px;padding:0;margin:0;flex:none;accent-color:#0071e3}.login-form .button{margin-top:9px}.counselor-layout{display:grid;grid-template-columns:minmax(290px,370px) 1fr;gap:22px;align-items:start}.item-list{min-width:0}.progress-card{padding:23px;margin-bottom:15px}.progress-card>div:first-child{display:flex;align-items:baseline;gap:12px}.progress-number{font-size:27px;line-height:1;font-weight:700;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.progress-divider{color:#aaaab1;font-weight:400}.progress-label{color:#6e6e73;font-size:13px}.progress-track{height:5px;margin-top:20px;background:#ececf0;overflow:hidden;border-radius:8px}.progress-track span{display:block;height:100%;background:#0071e3;border-radius:inherit;transition:width .25s ease}.report-card-list{display:grid;gap:11px}.report-card{width:100%;text-align:left;padding:19px 20px 15px;transition:border-color .17s ease,box-shadow .17s ease,transform .12s ease}.report-card:hover,.report-card.current{border-color:#0071e35c;box-shadow:0 6px 24px #0071e314}.report-card-main,.report-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px}.report-card-main{align-items:start}.report-card-name{font-weight:650;font-size:16px;letter-spacing:-.015em}.level-tag{display:inline-flex;border-radius:7px;background:#f1f1f4;color:#66666b;padding:4px 7px;font-size:11px;font-weight:600;white-space:nowrap}.report-card-bottom{margin-top:19px}.chevron{font-size:25px;line-height:15px;color:#a6a6ad;font-weight:300}.status{font-size:12px;font-weight:650;white-space:nowrap}.status-done{color:#23764c}.status-missing{color:#c4363d}.status-makeup{color:#9a5a00}.makeup-badge{display:inline-block;padding:3px 7px;border-radius:7px;background:#fff1db;color:#8b5000;font-size:11px;font-weight:700;white-space:nowrap}.stats-person-name .makeup-badge{margin:4px 0 0}.form-placeholder{min-height:350px;border:1px dashed #d7d7dd;color:#9999a0;border-radius:18px;display:grid;place-items:center;font-size:14px}.report-form{overflow:hidden}.form-heading{display:flex;align-items:start;justify-content:space-between;padding:26px 28px 23px;border-bottom:1px solid #efeff1;gap:10px}.form-heading h2{margin:0;font-size:23px;line-height:1.25}.icon-button{background:#f2f2f4;border:0;color:#64646b;width:31px;height:31px;border-radius:50%;font-size:24px;line-height:1;display:grid;place-items:center;flex:none}.icon-button:hover{background:#e7e7eb}.form-section{padding:23px 28px;border-bottom:1px solid #efeff1}.form-section h3{font-size:14px;font-weight:700;margin-bottom:19px}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px}.field{display:grid;grid-template-columns:minmax(0,1fr);min-width:0;gap:8px;font-size:13px;font-weight:600;color:#4f4f55}.field small{color:#9a9aa2;font-size:12px;font-weight:400}.field input,.field textarea,.field select,.filters input,.filters select,.close-editor input{min-width:0;max-width:100%;width:100%;border:1px solid #d9d9df;border-radius:10px;background:#fbfbfc;padding:10px 12px;outline:none;font-size:14px;color:#1d1d1f}.field input,.field select{height:44px}.field input{font-variant-numeric:tabular-nums}input:is([type=date],[type=time],[type=month]){-webkit-appearance:none;appearance:none;display:block;box-sizing:border-box;min-width:0;max-width:100%;height:var(--temporal-height, 44px);padding:0 12px;line-height:calc(var(--temporal-height, 44px) - 2px);text-align:left}input:is([type=date],[type=time],[type=month])::-webkit-date-and-time-value{margin:0;padding:0;line-height:calc(var(--temporal-height, 44px) - 2px);text-align:left}.field input:is([type=date],[type=time],[type=month]){inline-size:100%;min-inline-size:0;max-inline-size:100%;width:100%;min-width:0;max-width:100%;min-height:44px;max-height:44px;padding-block:0;line-height:42px;text-align:left}.field input:is([type=date],[type=time],[type=month])::-webkit-datetime-edit{padding:0}.field textarea{resize:vertical;line-height:1.5;min-height:83px}.field input:focus,.field textarea:focus,.field select:focus,.filters input:focus,.filters select:focus{border-color:#0071e3;box-shadow:0 0 0 3px #0071e31c}.field input[readonly],.field textarea[readonly]{background:#f6f6f8}.field-hint{font-size:12px;color:#8a8a90;margin:12px 0 0}.form-section.revealed{display:grid;gap:18px;animation:reveal .2s ease both}.form-section.revealed h3{margin:0}@keyframes reveal{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.segmented{display:inline-flex;padding:3px;border-radius:10px;background:#eeeef1;width:fit-content;gap:2px}.segmented button{border:0;background:transparent;color:#696970;min-width:74px;padding:8px 14px;border-radius:8px;font-size:13px;font-weight:600}.segmented button.selected{background:#fff;color:#1d1d1f;box-shadow:0 1px 5px #0000001c}.segmented button:active:not(:disabled){transform:scale(.97)}.form-actions{padding:24px 28px 28px}.read-only-note{margin:0;padding:23px 28px;color:#888890;font-size:13px}.report-form .form-error{margin:18px 28px 0}.report-policy-note{margin:-10px 0 20px;color:#6e6e73;font-size:13px;font-variant-numeric:tabular-nums}.makeup-note{margin:0;padding:14px 28px;background:#fff4e4;color:#8b5000;font-size:12px;line-height:1.5}.settings-page{max-width:720px}.settings-card{display:grid;gap:18px;padding:28px}.settings-card h2{margin:0;font-size:17px}.settings-card h2:not(:first-child){margin-top:12px}.settings-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.settings-card .field-hint{margin:-8px 0 0}.makeup-limit-field{max-width:260px}.settings-card .button{justify-self:start}.statistics-page{max-width:850px}.stats-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:20px}.stats-filters .field{min-width:165px;flex:1}.stats-filters .button{flex:none}.stats-range{margin:19px 0 12px;font-size:13px;color:#6e6e73}.stats-list,.stats-detail{overflow:hidden}.stats-list-head,.stats-person{display:grid;grid-template-columns:minmax(100px,1fr) repeat(3,70px);align-items:center;gap:10px;padding:15px 22px;text-align:right;font-size:13px}.stats-list-head{color:#8a8a90;background:#fafafa;font-weight:600}.stats-list-head span:first-child,.stats-person-name{text-align:left}.stats-person{width:100%;border:0;border-top:1px solid #efeff1;background:#fff;color:#1d1d1f;font-variant-numeric:tabular-nums}.stats-person:hover{background:#f7f7f9}.stats-person-name{color:#0071e3;font-weight:650}.stats-person .name-alert{color:#c4363d}.stats-detail{padding:24px}.stats-detail .text-button{margin:-6px 0 14px -4px}.stats-detail h2{margin-bottom:6px}.stats-detail-title{margin:22px 0 8px;font-size:14px}.stats-detail-row{display:flex;justify-content:space-between;gap:14px;border-top:1px solid #efeff1;padding:15px 0;font-size:13px}.stats-detail-row:first-of-type{margin-top:20px}.stats-detail-row span{color:#6e6e73;text-align:right}.stats-detail-majors{display:grid;gap:5px}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:22px}.summary-card{padding:20px 23px;border-radius:17px;background:#fff;border:1px solid rgba(0,0,0,.045);box-shadow:0 3px 16px #19192308;display:grid;gap:12px}.summary-card span{color:#77777e;font-size:12px;font-weight:600}.summary-card strong{font-size:29px;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.summary-card.attention strong{color:#c4363d}.admin-content{overflow:hidden}.section-toolbar{padding:20px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #efeff1}.filters{display:flex;align-items:center;gap:8px}.filters .search-input{width:215px}.filters select{width:auto;min-width:120px}.group-list{padding:8px 20px 20px}.group-card{border-bottom:1px solid #ededf0}.group-card:last-child{border-bottom:0}.group-card summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 4px;list-style:none;cursor:pointer}.group-card summary::-webkit-details-marker{display:none}.group-title{display:flex;align-items:baseline;gap:9px;min-width:0;font-size:15px;font-weight:650}.group-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-title .name-alert{color:#c4363d}.group-title small{color:#9999a0;font-size:11px;font-weight:400;white-space:nowrap}.group-summary{display:flex;align-items:center;gap:18px;color:#77777e;white-space:nowrap;font-size:12px}.group-summary .chevron{display:inline-block;font-size:20px;transition:transform .18s ease}.group-card[open] .group-summary .chevron{transform:rotate(180deg)}.group-rows{padding:0 5px 12px}.detail-row{background:#f8f8fa;border-radius:11px;padding:15px 17px;margin-bottom:8px}.detail-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.detail-head>div{display:flex;align-items:center;gap:9px;min-width:0}.detail-head strong{font-size:13px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.count-strip{display:flex;flex-wrap:wrap;gap:9px 25px;padding-top:14px;color:#77777e;font-size:12px}.count-strip b{color:#1d1d1f;font-size:13px;margin-left:4px}.report-notes{border-top:1px solid #e7e7eb;margin-top:14px;padding-top:11px}.report-notes p{display:flex;gap:12px;margin:4px 0;font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.report-notes p span{flex:0 0 94px;color:#8a8a90}.manage-grid{display:grid;grid-template-columns:minmax(270px,340px) 1fr;gap:20px;align-items:start}.manage-editor,.manage-list{min-width:0;padding:24px}.manage-editor h2,.manage-list h2{font-size:18px;margin-bottom:20px}.stacked-form{display:grid;grid-template-columns:minmax(0,1fr);min-width:0;gap:17px}.check-row{display:flex;gap:9px;align-items:center;font-size:13px;color:#55555b}.check-row input{width:17px;height:17px;accent-color:#0071e3}.editor-actions{display:flex;gap:8px}.manage-row{display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:67px;padding:14px 0;border-top:1px solid #efeff1}.manage-row strong{font-size:14px;font-weight:650}.manage-row p{margin:4px 0 0;color:#8a8a90;font-size:12px;line-height:1.5}.manage-actions{display:flex;align-items:center;gap:10px;flex:none}.text-button.danger-text{color:#c4363d}.text-button.danger-text:hover{color:#9f262d}.dialog-backdrop{position:fixed;inset:0;z-index:40;background:#18181d5c;display:grid;place-items:center;padding:20px}.delete-dialog{width:min(100%,420px);padding:27px;box-shadow:0 18px 60px #00000029}.delete-dialog h2{font-size:21px;margin-bottom:12px}.delete-dialog p{color:#6e6e73;font-size:14px;line-height:1.6}.delete-dialog p strong{color:#1d1d1f}.delete-dialog .form-error{color:#9f262d}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}.assignment-row{align-items:start}.small-status{display:inline-block;margin-top:5px;color:#6e6e73;font-size:11px}.close-editor{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.close-editor input{--temporal-height: 37px;width:150px;height:37px;padding-block:0;font-size:12px}@media(max-width:850px){.section-toolbar{display:grid}.filters{flex-wrap:wrap}.filters .search-input{flex:1 1 100%;width:100%}.filters select{flex:1}}@media(max-width:700px){.topbar-inner{height:57px;padding:0 17px}.workspace{padding:0 16px 36px}.brand{font-size:14px}.account{gap:7px}.nav-tabs{gap:22px;min-height:50px}.page{padding-top:25px}.page-heading{align-items:start;gap:15px}.page-heading h1{font-size:28px}.date-control input{min-width:0;width:146px}.summary-grid{grid-template-columns:repeat(2,1fr);gap:9px}.summary-card{padding:16px}.summary-card strong{font-size:25px}.counselor-layout{display:block}.form-placeholder{display:none}.form-layer{position:fixed;inset:0;z-index:30;background:#f5f5f7;overflow-y:auto;overscroll-behavior:contain}.report-form{display:flex;flex-direction:column;border:0;border-radius:0;min-height:100dvh;box-shadow:none}.report-form form{display:flex;flex:1;flex-direction:column}.form-heading{position:sticky;top:0;z-index:2;background:#ffffffed;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);padding:20px 20px 18px}.form-section{padding:21px 20px}.form-actions{position:sticky;bottom:0;margin-top:auto;background:#ffffffed;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #efeff1}.manage-grid{display:grid;grid-template-columns:minmax(0,1fr)}.manage-editor,.manage-list{width:100%;min-width:0;padding:20px}.stacked-form .field,.stats-filters .field,.settings-fields .field{width:100%;min-width:0;max-width:100%}.login-card{padding:30px 25px}.settings-card{padding:20px}.stats-filters{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.stats-filters .field{min-width:0;width:100%}.stats-filters .button{width:100%}.field input,.field select,.field textarea,.stats-filters .button{font-size:16px}}@media(max-width:430px){.stats-list-head,.stats-person{grid-template-columns:minmax(76px,1fr) repeat(3,45px);gap:4px;padding:14px}.settings-fields{grid-template-columns:minmax(0,1fr);gap:16px}.settings-card .button{width:100%}.makeup-limit-field{max-width:none}.nav-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 8px;min-height:0;padding:5px 0;overflow:visible}.nav-tab{min-height:43px;text-align:center}.account-name{display:none}.account{gap:4px}.account .text-button{font-size:12px}.profile-card{padding:20px}.brand span:last-child{max-width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-heading{align-items:end}.date-control input{width:133px;font-size:12px}.form-heading h2{font-size:20px}.field-grid{gap:14px 10px}.group-list{padding:7px 13px 16px}.section-toolbar{padding:16px}.group-card summary{align-items:start}.group-summary{gap:8px;flex-direction:column;align-items:end}.group-summary .chevron{display:none}.group-title{flex-direction:column;gap:2px;align-items:start}.detail-row{padding:13px}.report-notes p{display:block}.report-notes p span{display:block;margin-bottom:2px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}@media(prefers-reduced-transparency:reduce){.topbar,.form-heading,.form-actions{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}}@media(prefers-contrast:more){.content-card,.report-card,.progress-card,.report-form,.summary-card{border-color:#777}.subtle,.eyebrow,.field-hint{color:#444}}
