:root{--ink:#292735;--muted:#939199;--purple:#5b46b6;--purple-dark:#4b369f;--lavender:#f3f0fb;--line:#ecebee;--soft:#faf9fc;--danger:#aa4352;color:var(--ink);font-synthesis:none;background:#fff;font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif;font-weight:400}*{box-sizing:border-box}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;margin:0;font-size:14px}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}a{color:inherit;text-decoration:none}button{color:inherit}:is(button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible){outline-offset:4px;outline:3px solid #b5a4eb}input,textarea{color:var(--ink)}input::placeholder,textarea::placeholder{color:#aaa7af}input[type=search]::-webkit-search-cancel-button{cursor:pointer}button,select{-webkit-appearance:none}h1,h2,h3,p{margin:0}svg{flex-shrink:0}fieldset{border:0;min-width:0;margin:0;padding:0}legend{width:100%;padding:0}.site{flex-direction:column;min-height:100vh;display:flex}.site-header{align-items:center;gap:24px;width:calc(100% - 120px);max-width:1320px;height:96px;margin:0 auto;display:flex}.logo{white-space:nowrap;letter-spacing:-1px;align-items:center;gap:10px;font-size:23px;font-weight:900;display:inline-flex}.logo svg{fill:var(--purple)}.logo-dot{color:var(--purple)}.header-divider{background:var(--line);width:1px;height:22px}.school-name{color:#8b8891;letter-spacing:.2px;font-size:13px}.header-admin{color:#8b8891;align-items:center;gap:6px;margin-left:auto;padding:9px 0;font-size:12px;display:flex}.header-admin:hover{color:var(--purple)}.main-container{flex:1;width:calc(100% - 72px);max-width:980px;margin:0 auto;padding-bottom:70px}.main-nav{align-items:flex-start;gap:31px;height:56px;margin:0 0 33px;display:flex}.main-nav a{color:#8c8991;align-items:center;height:52px;font-size:14px;font-weight:600;transition:color .16s;display:flex;position:relative}.main-nav a:hover,.main-nav a.active{color:var(--purple)}.main-nav a.active:after{content:"";background:var(--purple);width:30px;height:2px;margin:auto;position:absolute;bottom:0;left:0;right:0}.button{white-space:nowrap;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 18px;font-size:13px;font-weight:600;line-height:1.3;transition:background .15s,border-color .15s,transform .15s;display:inline-flex}.primary{background:var(--purple);color:#fff;box-shadow:0 2px 4px #5b46b612}.primary:hover:not(:disabled){background:var(--purple-dark)}.secondary{color:#5e5968;background:#fff;border-color:#e6e3ec}.secondary:hover:not(:disabled){background:#f9f7fd;border-color:#d6cee9}.button.small{border-radius:7px;min-height:33px;padding:7px 12px;font-size:12px}.icon-button{color:#8c8794;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.icon-button:hover{background:var(--lavender);color:var(--purple)}.text-button{font-size:inherit;color:var(--purple);background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.text-button:hover{text-decoration:underline}.muted{color:var(--muted)}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.directory-search-row{align-items:center;gap:20px;margin-bottom:26px;display:flex}.search-box{border:1px solid #dedbe3;border-radius:12px;flex:1;align-items:center;gap:18px;max-width:720px;height:64px;padding:0 23px;display:flex;box-shadow:0 3px 16px #2a223405}.search-box>svg{color:var(--purple)}.search-box:focus-within{border-color:#9c8bd4;box-shadow:0 0 0 3px #5b46b609}.search-box input{background:0 0;border:0;width:100%;min-width:0;height:100%;font-size:16px;outline:none!important}.search-box kbd{color:#b3aebd;white-space:nowrap;border:1px solid #f0edf3;border-radius:3px;padding:3px 5px;font-family:inherit;font-size:11px}.add-main{min-height:43px;margin-left:auto;padding:12px 18px}.filter-row{flex-wrap:wrap;gap:9px;display:flex}.pill{color:#7a7680;background:#fff;border:1px solid #eeecf1;border-radius:50px;min-height:35px;padding:7px 17px;font-size:13px;transition:all .15s;box-shadow:0 1px 3px #30273a03}.pill:hover{color:var(--purple);border-color:#c5badf}.pill.active{background:var(--ink);border-color:var(--ink);color:#fff}.secondary-filters{align-items:center;gap:15px;min-height:27px;margin:23px 0 29px;display:flex}.filter-caption{color:#a5a0ac;font-size:11px}.mini-filters{flex-wrap:wrap;gap:5px;display:flex}.mini-filters button{color:#96909e;white-space:nowrap;background:0 0;border:0;border-radius:5px;padding:6px 11px;font-size:12px}.mini-filters button.selected{background:var(--lavender);color:var(--purple);font-weight:600}.mini-filters button:hover{background:var(--soft)}.directory-note{color:#b0abb7;letter-spacing:.3px;margin-left:auto;font-size:11px}.fixed-program{color:var(--purple);background:var(--lavender);border-radius:5px;padding:5px 10px;font-size:12px}.list-heading{border-bottom:1px solid #e6e3ea;justify-content:space-between;align-items:center;min-height:46px;padding-bottom:16px;display:flex}.list-heading h1,.list-heading h2{align-items:center;gap:12px;font-size:16px;font-weight:700;line-height:1.5;display:flex}.list-heading h1>span,.list-heading h2>span{color:#9b96a1;font-size:12px;font-weight:400}.sort-label select,.list-heading>select{color:#65606d;cursor:pointer;-webkit-appearance:auto;appearance:auto;background:0 0;border:0;padding:5px 19px 5px 5px;font-size:12px}.entity-row{border-bottom:1px solid var(--line);align-items:center;gap:19px;min-height:96px;padding:19px 10px 19px 3px;transition:background .14s;display:flex}.entity-row:hover{background:#fbfaff}.portrait{color:#9d8fc2;letter-spacing:1px;background:#f0edf8;border-radius:50%;flex:0 0 48px;justify-content:center;align-items:center;width:48px;height:48px;font-size:15px;font-weight:600;display:inline-flex;overflow:hidden}.portrait>span{text-transform:uppercase}.portrait img{object-fit:cover;width:100%;height:100%}.portrait-lg{letter-spacing:2px;flex-basis:88px;width:88px;height:88px;font-size:26px}.course-portrait{color:#8272b3;background:#f3f0fb;border-radius:12px}.entity-description{flex-direction:column;gap:8px;min-width:0;display:flex}.entity-name{letter-spacing:-.3px;word-break:break-word;flex-wrap:wrap;align-items:center;gap:10px;font-size:17px;font-weight:750;display:flex}.entity-subtitle{color:#9b96a0;font-size:12px;line-height:1.5}.meta-dot{color:#d1cbd8;padding:0 8px}.entity-rating{white-space:nowrap;align-items:baseline;gap:4px;margin-left:auto;display:flex}.entity-rating>strong{letter-spacing:-1px;font-size:25px;font-weight:800}.entity-rating .rating-denominator{color:#aaa5b2;font-size:10px}.entity-rating>small{color:#a09aa6;text-align:right;min-width:64px;margin-left:12px;font-size:11px}.entity-rating>.unrated{color:#d1cbd7;font-size:16px;font-weight:400}.row-chevron{color:#aaa3b2;margin-left:5px}.level-inline{letter-spacing:.3px;color:var(--purple);background:var(--lavender);vertical-align:middle;border-radius:4px;align-items:center;padding:4px 6px;font-size:10px;font-weight:600;display:inline-flex}.empty-state{text-align:center;border-bottom:1px solid var(--line);flex-direction:column;justify-content:center;align-items:center;min-height:330px;padding:54px 15px 45px;display:flex}.empty-icon{color:#8e7cb9;background:#f7f4fc;border-radius:50%;justify-content:center;align-items:center;width:65px;height:65px;margin-bottom:20px;display:flex}.empty-state h2{letter-spacing:.1px;margin-bottom:12px;font-size:18px;font-weight:650;line-height:1.5}.empty-state p{color:#a09aa8;margin-bottom:23px;font-size:12px;line-height:2}.empty-state .button{min-height:38px;padding:10px 17px;font-size:12px}.community-strip{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:20px;margin:27px 0 0;padding:20px 0;display:grid}.community-strip>span{grid-template-columns:19px auto;justify-content:center;gap:6px 10px;display:grid}.community-strip svg{color:#a99ac6;grid-row:1/3}.community-strip strong{color:#77707f;font-size:11px;font-weight:500}.community-strip small{color:#b7afbf;font-size:10px}.below-list{text-align:center;color:#b0a8b8;justify-content:center;align-items:center;gap:8px;margin-top:28px;font-size:11px;display:flex}.site-footer{border-top:1px solid var(--line);align-items:center;gap:25px;width:calc(100% - 72px);max-width:1160px;margin:0 auto;padding:27px 0 30px;display:flex}.site-footer>div{white-space:nowrap;align-items:center;gap:14px;display:flex}.site-footer .logo{letter-spacing:-.4px;gap:6px;font-size:14px}.site-footer .logo svg{width:15px;height:18px}.site-footer>div>span{color:#b2aab9;font-size:10px;display:none}.site-footer>p{color:#aba3b2;font-size:10px;line-height:1.9}.site-footer>p>span{color:#bcb6c3;margin-left:10px}.site-footer>a{color:#9a91a4;align-items:center;gap:4px;margin-left:auto;font-size:10px;display:flex}.loading-state{color:#a198ad;justify-content:center;align-items:center;gap:10px;min-height:300px;font-size:13px;display:flex}.spinner{border:2px solid #ede7f5;border-top-color:var(--purple);border-radius:50%;width:16px;height:16px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-box{color:#a44959;background:#fff7f8;border:1px solid #f3e3e7;border-radius:8px;align-items:flex-start;gap:9px;padding:11px 13px;font-size:12px;line-height:1.8;display:flex}.error-box>svg{margin-top:3px}.error-box a{color:var(--purple);align-items:center;gap:4px;margin-left:5px;text-decoration:underline;display:inline-flex}.page-error{margin-bottom:20px}.page-error>.text-button{margin-left:auto}.toast{z-index:100;color:#5a4b70;background:#fff;border:1px solid #e4ddee;border-radius:10px;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:15px 18px;font-size:12px;line-height:1.6;display:flex;position:fixed;bottom:30px;left:50%;transform:translate(-50%);box-shadow:0 5px 30px #3422441a}.toast>svg{color:var(--purple)}.toast>button{color:#aaa0b6;background:0 0;border:0;margin-left:10px;padding:4px;display:flex}.back-link{color:#948b9f;align-items:center;gap:7px;margin:0 0 30px;font-size:12px;display:inline-flex}.back-link:hover{color:var(--purple)}.detail{padding-top:0}.detail-hero{align-items:center;gap:24px;padding-bottom:34px;display:flex}.detail-title{min-width:0}.detail-tags{gap:6px;margin-bottom:10px;display:flex}.badge{color:#9c93a7;letter-spacing:.2px;background:#f6f4f8;border-radius:4px;padding:4px 7px;font-size:10px;font-weight:400;display:inline-flex}.badge-purple{background:var(--lavender);color:var(--purple)}.detail-title h1{letter-spacing:-1px;word-break:break-word;font-size:31px;font-weight:750}.detail-title p{color:#9f95a9;margin-top:10px;font-size:12px}.detail-actions{flex-direction:column;gap:9px;margin-left:auto;display:flex}.detail-actions>.button{min-height:37px;padding:9px 15px;font-size:12px}.score-summary{border:1px solid #e9e5ee;border-radius:12px;grid-template-columns:220px 1fr;gap:35px;margin:0 0 45px;padding:30px 34px;display:grid}.overall-score{border-right:1px solid var(--line)}.overall-score>span{color:#8d8299;font-size:12px}.overall-score>div{margin:8px 0 5px}.overall-score strong{letter-spacing:-2px;font-size:54px;font-weight:800;line-height:1.1}.overall-score small{color:#afa5ba;margin-left:9px;font-size:15px}.overall-score p{color:#aaa0b4;margin-top:12px;font-size:11px}.metric-summary{flex-direction:column;justify-content:center;gap:16px;display:flex}.metric-line{align-items:center;gap:19px;display:flex}.metric-line>span{color:#8c8299;min-width:72px;font-size:12px}.metric-track{background:#f1edf7;border-radius:10px;flex:1;height:5px;overflow:hidden}.metric-track i{background:#8c78c4;border-radius:10px;height:100%;display:block}.metric-line>strong{text-align:right;width:30px;font-size:14px}.metric-summary>p{color:#b3a8bf;margin-top:4px;font-size:10px;line-height:1.6}.review-card{border-bottom:1px solid var(--line);padding:26px 3px}.review-card-head{align-items:center;gap:9px;display:flex}.anonymous-avatar{color:#aca0bb;background:#f6f3fa;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.review-card-head>strong{color:#71677e;font-size:12px;font-weight:500}.review-approved{color:#aa9abd;align-items:center;gap:3px;font-size:10px;display:flex}.review-card time{color:#b4aabd;margin-left:auto;font-size:10px}.review-scores{flex-wrap:wrap;gap:8px;margin:18px 0 15px;display:flex}.review-scores>span{color:#9a8ea7;background:#faf8fd;border:1px solid #f1edf7;border-radius:5px;padding:6px 9px;font-size:11px}.review-scores strong{color:#66517f;margin-left:11px;font-size:12px;font-weight:600}.review-body{color:#756a82;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:2}.review-no-body{color:#b5a9c2;font-size:12px}.review-guideline{color:#afa2bf;justify-content:center;align-items:center;gap:7px;padding:28px 0;font-size:10px;display:flex}.modal{width:560px;max-width:calc(100vw - 32px);max-height:calc(100svh - 48px);color:var(--ink);scrollbar-width:thin;scrollbar-color:#e1dae9 transparent;background:#fff;border:1px solid #ebe6f1;border-radius:16px;margin:auto;padding:0;overflow:auto;box-shadow:0 25px 90px #2f1d4b33}.modal::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#211b354f}.modal-wide{width:650px}.modal-head{border-bottom:1px solid var(--line);z-index:2;background:#fff;justify-content:space-between;align-items:flex-start;padding:25px 28px 22px;display:flex;position:sticky;top:0}.modal-head h2{letter-spacing:-.4px;font-size:21px;font-weight:700;line-height:1.5}.modal-head p{color:#a498af;margin-top:7px;font-size:12px;line-height:1.7}.modal-head .icon-button{margin:-3px -8px 0 8px}.modal-body{flex-direction:column;gap:24px;padding:25px 28px;display:flex}.modal-footer{border-top:1px solid var(--line);z-index:2;background:#fff;justify-content:flex-end;align-items:center;gap:11px;padding:17px 28px;display:flex;position:sticky;bottom:0}.modal-footer .button{min-height:40px;font-size:12px}.modal fieldset>legend,.field-label{color:#685c76;font-size:12px;font-weight:600;line-height:1.5}.required{color:#9581b3;margin-left:3px;font-size:11px;font-weight:400}.optional{color:#b9afc2;margin-left:5px;font-size:10px;font-weight:400}.field-count{float:right;color:#b1a5bf;font-size:10px;font-weight:400}.name-fields{grid-template-columns:1fr 1fr;gap:14px;margin-top:13px;display:grid}.name-fields>label{color:#a398af;font-size:10px;font-weight:400}.field-label{display:block}.field-label>input,.field-label>textarea,.name-fields input{background:#fff;border:1px solid #e6e0ed;border-radius:8px;outline:0;width:100%;margin-top:9px;padding:12px 13px;font-size:13px;font-weight:400;line-height:1.5}.name-fields input{font-size:15px}.field-label>textarea{resize:vertical;min-height:100px}.field-label>input:focus,.field-label>textarea:focus,.name-fields input:focus{border-color:#a592cb;box-shadow:0 0 0 3px #5b46b609}.field-hint{color:#b0a4bf;margin-top:10px;font-size:10px;font-weight:400;line-height:1.8}.name-example{color:#8d7b9f;font-weight:500}.choice-grid{gap:9px;margin-top:12px;display:grid}.choice-grid.four{grid-template-columns:repeat(4,1fr)}.choice-grid.two{grid-template-columns:repeat(2,1fr)}.choice{color:#a093af;background:#fff;border:1px solid #e9e3f0;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px;font-size:12px;display:flex}.choice.selected{color:var(--purple);background:#f7f4fc;border-color:#a995cf}.choice:hover{border-color:#c8b8df}.choice.level-choice{text-align:left;justify-content:space-between;padding:15px}.level-choice>span{flex-direction:column;gap:5px;display:flex}.level-choice strong{font-size:15px;font-weight:650}.level-choice small{color:#aa9ab9;font-size:9px;font-weight:400}.subject-picker{grid-template-columns:repeat(4,1fr);gap:9px;margin-top:12px;display:grid}.subject-option{color:#9688a6;background:#fff;border:1px solid #eae5f0;border-radius:7px;align-items:center;gap:9px;padding:11px 10px;font-size:12px;font-weight:400;display:flex}.subject-option.selected{color:var(--purple);background:#faf7ff;border-color:#b5a3d2}.checkbox-visual{border:1px solid #dfd5e9;border-radius:3px;justify-content:center;align-items:center;width:14px;height:14px;display:flex}.selected .checkbox-visual{background:var(--purple);color:#fff;border-color:var(--purple)}.upload-field{cursor:pointer;background:#fdfbff;border:1px dashed #dcd2e8;border-radius:9px;align-items:center;gap:15px;padding:16px;display:flex}.upload-field:hover{border-color:#ab94cb}.upload-preview{color:#b4a3c7;background:#f1ebf8;border-radius:50%;flex:0 0 58px;justify-content:center;align-items:center;width:58px;height:58px;display:flex;overflow:hidden}.upload-preview img{object-fit:cover;width:100%;height:100%}.upload-field>span:nth-child(2){flex-direction:column;gap:7px;min-width:0;display:flex}.upload-field strong{color:#8b789f;text-overflow:ellipsis;white-space:nowrap;max-width:290px;font-size:12px;font-weight:500;overflow:hidden}.upload-field small{color:#b8a9c7;font-size:9px;font-weight:400}.upload-note{color:#ac9bbb;align-items:center;gap:4px;font-size:9px;display:flex}.upload-field input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.upload-arrow{color:#b3a0c9;margin-left:auto}.upload-remove{margin-top:8px;font-size:10px}.form-note{color:#aa9bb9;background:#faf8fc;border-radius:7px;align-items:flex-start;gap:9px;padding:12px;display:flex}.form-note>svg{color:#b1a0c3;margin-top:2px}.form-note>p{font-size:10px;font-weight:400;line-height:1.9}.field-error{color:var(--danger);margin-top:8px;font-size:11px;line-height:1.7}.text-count{text-align:right;color:#b5a6c2;margin-top:5px;font-size:9px;font-weight:400;display:block}.review-target{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:0 0 20px;display:flex}.review-target .portrait{flex-basis:40px;width:40px;height:40px;font-size:12px}.review-target>span:nth-child(2){flex-direction:column;gap:6px;min-width:0;display:flex}.review-target strong{word-break:break-word;font-size:14px;font-weight:650}.review-target small{color:#ac9aba;font-size:10px}.review-target>.badge{white-space:nowrap;margin-left:auto}.score-field>legend{justify-content:space-between;align-items:center;display:flex}.score-field-value{color:var(--purple);font-size:15px;font-weight:600}.score-field-value small{color:#baaaca;font-size:10px;font-weight:400}.score-field>p{color:#b09fc1;margin-top:5px;font-size:10px;line-height:1.8}.score-buttons{grid-template-columns:repeat(11,1fr);gap:5px;margin-top:14px;display:grid}.score-buttons>button{color:#a28eb5;background:#fff;border:1px solid #e8e0f1;border-radius:6px;height:34px;padding:0;font-size:11px}.score-buttons>button:hover{background:var(--lavender);border-color:#b8a2d2}.score-buttons>button.selected{background:var(--purple);border-color:var(--purple);color:#fff}.score-captions{color:#beadcf;justify-content:space-between;margin-top:7px;font-size:9px;display:flex}.fine-score{color:#baabc8;align-items:center;gap:10px;margin-top:12px;font-size:9px;display:flex}.fine-score label{align-items:center;gap:9px;display:flex}.fine-score input{color:#8e78a3;border:1px solid #e8deef;border-radius:5px;outline:0;width:64px;padding:5px 7px;font-size:11px}.footer-hint{color:#b3a2c3;align-items:center;gap:5px;margin-right:auto;font-size:10px;display:flex}.success-state{text-align:center;flex-direction:column;align-items:center;padding:40px 28px 36px;display:flex}.success-icon{background:var(--lavender);width:70px;height:70px;color:var(--purple);border-radius:50%;justify-content:center;align-items:center;margin-bottom:23px;display:flex}.success-state h3{margin-bottom:12px;font-size:18px;font-weight:600}.success-state>p{color:#a28fae;margin-bottom:25px;font-size:12px;line-height:2}.admin-container{padding-top:35px}.admin-title-row{justify-content:space-between;align-items:center;margin-bottom:30px;display:flex}.eyebrow{color:#a28cb7;letter-spacing:1.7px;font-size:9px}.admin-title-row h1{letter-spacing:-.5px;margin:10px 0 9px;font-size:28px;font-weight:700}.admin-title-row p{color:#b0a1be;font-size:11px}.admin-title-row .button{min-height:36px;font-size:11px}.admin-stats{grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:35px;display:grid}.admin-stats>div{border:1px solid #ece5f3;border-radius:10px;flex-direction:column;gap:14px;padding:20px;display:flex;position:relative}.admin-stats>div>span{color:#aa95bc;font-size:11px}.admin-stats strong{letter-spacing:-1px;font-size:29px;font-weight:750}.admin-stats svg{color:#c3b5d5;position:absolute;top:21px;right:20px}.admin-tabs{border-bottom:1px solid #eae2f2;gap:28px;display:flex}.admin-tabs button{color:#a18bb5;background:0 0;border:0;align-items:center;gap:7px;padding:0 0 17px;font-size:13px;display:flex;position:relative}.admin-tabs button.active{color:var(--purple);font-weight:600}.admin-tabs button.active:after{background:var(--purple);content:"";height:2px;position:absolute;bottom:-1px;left:0;right:0}.admin-tabs button>span{color:#947bab;background:#f1ebf8;border-radius:4px;padding:3px 6px;font-size:9px}.admin-toolbar{justify-content:space-between;align-items:center;gap:20px;padding:22px 0;display:flex}.search-box.compact{max-width:310px;height:39px;box-shadow:none;border-radius:8px;gap:11px;padding:0 12px}.search-box.compact input{font-size:11px}.search-box.compact>svg{color:#ac96c0}.toolbar-actions{align-items:center;gap:9px;display:flex}.archive-toggle{color:#b09bc2;align-items:center;gap:6px;margin-right:8px;font-size:10px;display:flex}.archive-toggle input{accent-color:var(--purple)}.admin-review-list{flex-direction:column;gap:15px;display:flex}.admin-review-card{border:1px solid #ede5f5;border-radius:10px;padding:20px 22px}.admin-card-title{align-items:center;gap:10px;display:flex}.admin-card-title>a{word-break:break-word;align-items:center;gap:8px;min-width:0;font-size:14px;font-weight:650;display:flex}.admin-card-title>a:hover{color:var(--purple)}.admin-card-title time{color:#baa8ca;white-space:nowrap;margin-left:auto;font-size:10px}.status{white-space:nowrap;border-radius:4px;padding:4px 7px;font-size:9px}.status.pending{color:#b49059;background:#fbf6ed}.status.approved{color:#669181;background:#eef7f3}.status.rejected{color:#af7f8d;background:#fbf0f3}.admin-review-card .review-scores{margin-top:17px}.admin-card-actions{border-top:1px solid #f3edf8;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:18px;padding-top:15px;display:flex}.admin-card-actions>span{color:#c0add0;align-items:center;gap:5px;margin-right:auto;font-size:9px;display:flex}.danger-text{color:#b78091}.moderation-note{color:#b19cbe;background:#fcf9fe;border-radius:5px;margin-top:12px;padding:8px 10px;font-size:10px;line-height:1.7}.avatar-review-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.avatar-review-card{border:1px solid #e9e0f1;border-radius:10px;overflow:hidden}.avatar-image{background:#faf7fd;justify-content:center;align-items:center;height:220px;padding:20px;display:flex}.avatar-image img{object-fit:contain;width:100%;height:100%}.avatar-review-body{grid-template-columns:1fr auto;align-items:center;gap:10px;padding:18px;display:grid}.avatar-review-body>strong{word-break:break-word;font-size:13px}.avatar-review-body>time{color:#b7a1c9;font-size:10px}.avatar-buttons{grid-column:1/3;gap:8px;margin-top:4px;display:flex}.avatar-buttons>.button{flex:1}.admin-entity-row{border-bottom:1px solid var(--line);align-items:center;gap:15px;padding:18px 0;display:flex}.admin-entity-row>div{flex-direction:column;flex:1;gap:9px;min-width:0;display:flex}.admin-entity-row strong{word-break:break-word;align-items:center;gap:9px;font-size:14px;display:flex}.admin-entity-row small{color:#b7a1ca;font-size:10px;line-height:1.5}.admin-entity-row .portrait{flex-basis:40px;width:40px;height:40px;font-size:12px}.admin-entity-row.archived{opacity:.5}.admin-login{text-align:center;flex-direction:column;align-items:center;padding:65px 15px 50px;display:flex}.admin-login h1{margin-bottom:15px;font-size:25px}.admin-login>p{color:#a38db7;max-width:380px;margin-bottom:24px;font-size:12px;line-height:1.8}.admin-login>.back-link{margin:25px 0 0}@media (min-width:1500px){.main-container{max-width:1040px}.site-header{height:108px}.main-nav{margin-bottom:38px}.directory-search-row{margin-bottom:29px}}@media (max-width:900px){.site-header{gap:18px;width:calc(100% - 56px)}.main-container,.site-footer{width:calc(100% - 56px)}.directory-note{display:none}.search-box{max-width:none}.score-summary{grid-template-columns:180px 1fr;gap:25px;padding:25px}.avatar-review-grid{grid-template-columns:repeat(2,1fr)}.admin-toolbar{flex-wrap:wrap}.admin-toolbar>.search-box{flex-basis:100%;max-width:none}.site-footer>p>span{margin-left:0;display:block}}@media (max-width:600px){.site-header{flex-wrap:wrap;align-content:center;gap:4px 12px;width:calc(100% - 36px);height:80px}.logo{gap:8px;font-size:20px}.logo svg{width:22px;height:24px}.header-divider{height:18px}.school-name{max-width:130px;font-size:10px;line-height:1.5}.header-admin{gap:0;padding:6px;font-size:0}.header-admin svg{width:17px;height:17px}.main-container{width:calc(100% - 36px);padding-bottom:44px}.main-nav{gap:26px;height:49px;margin-bottom:24px}.main-nav a{height:45px;font-size:12px}.directory-search-row{gap:10px;margin-bottom:21px}.search-box{border-radius:9px;gap:11px;height:49px;padding:0 13px}.search-box>svg{width:18px;height:18px}.search-box input{font-size:13px}.search-box kbd{display:none}.add-main{gap:5px;min-height:40px;padding:10px 12px;font-size:11px}.add-main svg{width:14px;height:14px}.subject-filters{gap:7px}.pill{min-height:30px;padding:6px 12px;font-size:11px}.secondary-filters{gap:10px;margin:18px 0 20px}.mini-filters{gap:1px}.mini-filters button{padding:6px 9px;font-size:10px}.filter-caption{font-size:9px}.list-heading{min-height:43px;padding-bottom:13px}.list-heading h1,.list-heading h2{gap:9px;font-size:14px}.sort-label select,.list-heading>select{padding-right:1px;font-size:10px}.entity-row{gap:12px;min-height:84px;padding:17px 0}.portrait{flex-basis:40px;width:40px;height:40px;font-size:12px}.entity-name{gap:6px;font-size:14px}.entity-subtitle{font-size:10px}.entity-description{gap:6px}.meta-dot{padding:0 5px}.entity-rating{grid-template-columns:auto auto;justify-content:end;gap:3px;min-width:53px;display:grid}.entity-rating>strong{font-size:21px}.entity-rating .rating-denominator{align-self:end;padding-bottom:3px;font-size:8px}.entity-rating>small{grid-column:1/3;min-width:0;margin-left:0;font-size:9px}.entity-rating>.unrated{text-align:right;grid-column:1/3;font-size:15px}.row-chevron{width:13px;height:13px;margin-left:0}.level-inline{padding:3px 5px;font-size:8px}.empty-state{min-height:310px;padding:42px 10px 35px}.empty-icon{width:58px;height:58px;margin-bottom:19px}.empty-state h2{font-size:16px}.empty-state p{font-size:11px;line-height:2}.empty-state .button{min-height:36px;font-size:11px}.community-strip{gap:10px;margin-top:19px;padding:18px 0}.community-strip>span{text-align:center;grid-template-columns:1fr;justify-items:center;gap:6px}.community-strip svg{grid-row:auto;width:15px;height:15px;margin-bottom:2px}.community-strip strong{font-size:10px}.community-strip small{font-size:8px}.below-list{margin-top:23px;font-size:10px}.site-footer{flex-wrap:wrap;gap:12px;width:calc(100% - 36px);padding:22px 0 24px}.site-footer .logo{font-size:12px}.site-footer>p{flex:1;min-width:140px;font-size:8px}.site-footer>a{font-size:9px}.back-link{margin-bottom:24px;font-size:10px}.detail-hero{flex-wrap:wrap;gap:15px;padding-bottom:26px}.portrait-lg{flex-basis:68px;width:68px;height:68px;font-size:21px}.detail-title{flex:1}.detail-title h1{letter-spacing:-.6px;font-size:24px}.detail-tags{margin-bottom:7px}.detail-title p{margin-top:8px;font-size:10px}.detail-actions{flex-direction:row;gap:8px;width:100%;margin-top:6px}.detail-actions .button{flex:1;min-height:36px;font-size:11px}.score-summary{grid-template-columns:1fr;gap:24px;margin-bottom:30px;padding:23px}.overall-score{border-right:0;border-bottom:1px solid var(--line);padding-bottom:22px;position:relative}.overall-score>span{font-size:11px}.overall-score strong{font-size:47px}.overall-score p{font-size:10px;position:absolute;bottom:30px;right:0}.metric-summary,.metric-line{gap:14px}.metric-line>span{min-width:67px;font-size:11px}.metric-summary>p{font-size:9px}.review-card{padding:21px 0}.review-approved{font-size:8px}.review-card time{font-size:9px}.review-body{font-size:12px;line-height:1.9}.review-scores{gap:5px;margin:15px 0 13px}.review-scores>span{padding:5px 7px;font-size:9px}.review-scores strong{margin-left:8px;font-size:11px}.review-guideline{align-items:flex-start;padding:23px 4px;font-size:8px;line-height:1.8}.modal{border-radius:13px;max-width:calc(100vw - 20px);max-height:calc(100svh - 28px)}.modal-head{padding:20px 20px 17px}.modal-head h2{font-size:18px}.modal-head p{margin-top:5px;font-size:10px}.modal-body{gap:23px;padding:21px 20px}.modal-footer{gap:9px;padding:15px 20px}.modal-footer .button{min-height:37px;font-size:11px}.modal fieldset>legend,.field-label{font-size:11px}.name-fields{gap:10px}.name-fields>label{font-size:9px}.name-fields input{padding:10px 11px;font-size:13px}.field-label>input,.field-label>textarea{padding:10px 11px;font-size:12px}.field-hint,.optional{font-size:9px}.choice{min-height:38px;padding:8px;font-size:11px}.choice-grid,.subject-picker{gap:7px}.subject-option{gap:7px;padding:10px 8px;font-size:10px}.checkbox-visual{width:12px;height:12px}.upload-field{gap:12px;padding:13px}.upload-preview{flex-basis:48px;width:48px;height:48px}.upload-field strong{max-width:180px;font-size:11px}.upload-field small,.upload-note{font-size:8px}.upload-arrow{display:none}.form-note{gap:7px;padding:10px}.form-note>p{font-size:9px}.score-buttons{gap:3px}.score-buttons>button{border-radius:4px;height:30px;font-size:10px}.score-field-value{font-size:13px}.score-field>p{font-size:9px}.score-captions{font-size:8px}.review-target strong{font-size:12px}.footer-hint{font-size:9px}.success-state{padding:35px 20px}.success-state h3{font-size:16px}.success-state>p{font-size:11px}.toast{gap:7px;width:max-content;padding:12px 14px;font-size:11px;bottom:18px}.admin-container{padding-top:23px}.admin-title-row{margin-bottom:23px}.admin-title-row h1{font-size:23px}.admin-title-row p{font-size:10px}.admin-stats{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:28px}.admin-stats>div{gap:12px;padding:16px}.admin-stats>div>span{font-size:10px}.admin-stats strong{font-size:26px}.admin-stats svg{width:16px;height:16px;top:17px;right:16px}.admin-tabs{gap:23px}.admin-tabs button{padding-bottom:15px;font-size:11px}.admin-toolbar{gap:14px;padding:20px 0}.admin-review-card{padding:17px}.admin-card-title{flex-wrap:wrap;gap:7px}.admin-card-title>a{font-size:12px}.admin-card-title time{font-size:9px}.admin-card-actions{gap:6px}.admin-card-actions>.button{min-height:30px;padding:6px 9px;font-size:10px}.admin-card-actions>span{flex-basis:100%;margin-bottom:6px;font-size:8px}.avatar-review-grid{gap:12px}.avatar-image{height:160px;padding:12px}.avatar-review-body{grid-template-columns:1fr;gap:9px;padding:13px}.avatar-review-body>strong{font-size:11px}.avatar-review-body .status{justify-self:start}.avatar-review-body time{font-size:8px}.avatar-buttons{flex-wrap:wrap;grid-column:auto}.avatar-buttons>.button{padding:6px 9px;font-size:10px}.admin-entity-row{gap:10px;padding:16px 0}.admin-entity-row strong{font-size:12px}.admin-entity-row small{font-size:9px}.admin-entity-row .icon-button{width:28px}.archive-toggle{margin-right:0;font-size:9px}.toolbar-actions{gap:7px}.admin-login{padding-top:45px}.admin-login h1{font-size:22px}.admin-login>p{font-size:11px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.teacher-rating-modal{border-radius:14px;width:680px}.teacher-rating-modal .modal-head{border-bottom:0;align-items:center;padding:28px 30px 14px}.teacher-rating-modal .modal-head h2{letter-spacing:-.8px;font-size:27px;font-weight:800}.teacher-rating-modal .teacher-rating-body{gap:20px;padding:25px 30px 31px}.teacher-rating-modal .simple-score>legend{color:#302a42;font-size:15px;font-weight:650}.teacher-rating-modal .score-buttons{gap:7px;margin-top:19px}.teacher-rating-modal .score-buttons>button{color:#9386a8;border-color:#e0d9ed;border-radius:8px;height:50px;font-size:17px;font-weight:600}.teacher-rating-modal .score-buttons>button.selected{color:#fff;border-color:var(--purple)}.teacher-rating-modal .modal-footer{background:#fff;margin:0;padding:22px 30px 26px}.teacher-rating-modal .modal-footer .button{border-radius:9px;min-height:46px;padding:12px 22px;font-size:14px}.teacher-rating-modal .footer-hint{color:#aaa0b8;gap:8px;font-size:12px}.rating-overview{background:#f0edfa;border-radius:14px;grid-template-columns:190px 1fr;align-items:center;gap:38px;margin-bottom:38px;padding:31px 34px;display:grid}.rating-average>div{white-space:nowrap;align-items:baseline;gap:9px;display:flex}.rating-average strong{letter-spacing:-4px;color:var(--purple);font-size:75px;font-weight:800;line-height:1}.rating-average>div>span{color:#b2a3cb;font-size:23px;font-weight:400}.rating-average>p{color:#aa9bc1;margin-top:23px;font-size:12px}.rating-distribution{flex-direction:column;gap:9px;display:flex}.distribution-row{color:#aa9bc1;grid-template-columns:20px minmax(0,1fr) 24px;align-items:center;gap:12px;min-height:14px;font-size:11px;display:grid}.distribution-row>span:first-child{text-align:right}.distribution-row>span:last-child{text-align:right;font-variant-numeric:tabular-nums}.distribution-track{background:#e2dbf1;border-radius:50px;height:6px;overflow:hidden}.distribution-track>i{background:var(--purple);border-radius:50px;height:100%;display:block}@media (max-width:600px){.teacher-rating-modal{max-width:calc(100vw - 24px)}.teacher-rating-modal .modal-head{padding:23px 20px 9px}.teacher-rating-modal .modal-head h2{font-size:24px}.teacher-rating-modal .teacher-rating-body{padding:22px 20px 27px}.teacher-rating-modal .simple-score>legend{font-size:13px}.teacher-rating-modal .score-buttons{gap:4px;margin-top:17px}.teacher-rating-modal .score-buttons>button{border-radius:6px;height:39px;font-size:12px}.teacher-rating-modal .modal-footer{padding:18px 20px 22px}.teacher-rating-modal .modal-footer .button{min-height:42px;padding:11px 18px;font-size:12px}.teacher-rating-modal .footer-hint{gap:6px;font-size:10px}.rating-overview{grid-template-columns:1fr;gap:24px;margin-bottom:30px;padding:24px 22px}.rating-average{justify-content:space-between;align-items:baseline;display:flex}.rating-average strong{letter-spacing:-3px;font-size:58px}.rating-average>div>span{font-size:18px}.rating-average>p{margin:0;font-size:11px}.rating-distribution{gap:8px}.distribution-row{grid-template-columns:17px minmax(0,1fr) 20px;gap:9px;min-height:13px;font-size:10px}.distribution-track{height:5px}}.review-tools{align-items:center;gap:18px;display:flex}.review-tools>.text-button{gap:6px;font-size:12px}.review-tools select{color:#8e839d;-webkit-appearance:auto;appearance:auto;background:0 0;border:0;padding:5px;font-size:12px}.review-scores:empty{display:none}@media (max-width:600px){.review-tools{gap:10px}.review-tools>.text-button,.review-tools select{font-size:10px}}.comment-text{margin-top:15px}.admin-password-form{text-align:left;width:100%;max-width:320px}.admin-password-form>.button{width:100%;margin-top:20px}.admin-header-actions{gap:8px;display:flex}.unavailable-entry{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:40px 24px;display:flex}.unavailable-entry .empty-icon{margin-bottom:0}.unavailable-entry h2,.unavailable-entry h3{font-size:18px;font-weight:650}.unavailable-entry p{color:#a194b2;font-size:12px;line-height:1.8}.unavailable-entry .button{margin-top:5px}.choice-grid.five{grid-template-columns:repeat(5,minmax(0,1fr))}@media (max-width:600px){.choice-grid.five{grid-template-columns:repeat(2,minmax(0,1fr))}}
