@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;600;700&family=IBM+Plex+Mono:wght@400;600&display=swap');:root{--bg:#f8f8f8;--fg:#111111;--muted:#6f6f6f;--line:#111111;--panel:#ffffff;--shadow:6px 6px 0 #111111;--radius:0px;--rating-1:#c1121f;--rating-2:#e85d04;--rating-3:#f4d35e;--rating-4:#4ea8de;--rating-5:#2d6a4f;--rating-1-soft:#fde2e2;--rating-2-soft:#ffe6d1;--rating-3-soft:#fff3bf;--rating-4-soft:#d9f0ff;--rating-5-soft:#d8f3dc}*{box-sizing:border-box}body{margin:0;font-family:'Space Grotesk',sans-serif;color:var(--fg);background:linear-gradient(135deg,#fefefe 0%,#f4f4f4 100%);background-image:linear-gradient(135deg,#ffffff 0%,#f1f1f1 100%),repeating-linear-gradient(90deg,rgba(0,0,0,0.08) 0 1px,transparent 1px 24px);min-height:100vh;display:flex;flex-direction:column}.admin-page{--shadow:none}.review-page{--shadow:none}.add-teacher-page{--shadow:none}.add-teacher-page .add-teacher-hero{box-shadow:6px 6px 0 #111111}.guidelines-lead{margin:8px 0 18px;color:var(--muted);font-size:15px}.guidelines-content{max-width:860px;margin:0 auto;color:var(--muted);line-height:1.7;font-size:16px}.guidelines-content > *{margin:0 0 22px}.guidelines-content p{margin:0 0 32px}.guidelines-content > *:last-child{margin-bottom:0}.guidelines-content h2{margin:22px 0 8px;font-size:20px;text-transform:uppercase;letter-spacing:0.6px;color:var(--fg)}.guidelines-content ul{padding-left:20px}.guidelines-content li{margin:0 0 6px}.guidelines-content p,.guidelines-content li{color:var(--muted)}.guidelines-content strong{color:var(--fg)}a{color:inherit;text-decoration:none}header{border-bottom:2px solid var(--line);background:var(--panel);position:sticky;top:0;z-index:10}.nav{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto;padding:20px 24px;gap:16px}.logo{font-weight:700;letter-spacing:0.5px;text-transform:uppercase}.nav-links{display:flex;gap:16px;font-size:14px;text-transform:uppercase}.container{max-width:1200px;margin:0 auto;padding:32px 24px 72px;width:100%}footer{margin-top:auto;background:#111111;color:#ffffff;border-top:2px solid #111111}.footer-inner{max-width:1200px;margin:0 auto;padding:18px;display:grid;gap:10px}.footer-title{font-weight:700;font-size:16px;letter-spacing:0.6px;text-transform:uppercase}.footer-links{display:flex;flex-wrap:wrap;gap:10px}.footer-links a{border:2px solid #ffffff;padding:4px 8px;text-transform:uppercase;font-size:10px;letter-spacing:0.6px}.footer-copy{font-size:11px;text-transform:uppercase;letter-spacing:0.6px;color:#e0e0e0}.hero{display:grid;gap:20px;padding:32px;border:2px solid var(--line);box-shadow:var(--shadow);background:var(--panel)}.hero h1{margin:0;font-size:clamp(32px,4vw,54px);text-transform:uppercase;letter-spacing:1px}.hero p{margin:0;color:var(--muted);font-size:16px}.search-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center}.no-results{margin-top:12px;font-size:14px;text-transform:uppercase;letter-spacing:0.5px;display:none}.no-results a{text-decoration:underline}input[type="text"],input[type="password"],select,textarea{width:100%;border:2px solid var(--line);padding:12px 14px;font-size:16px;font-family:'Space Grotesk',sans-serif;background:#ffffff;border-radius:var(--radius)}textarea{min-height:120px;resize:none}input[readonly]{background:#f3f3f3;color:var(--muted)}.static-field{border:2px solid var(--line);padding:12px 14px;background:#f3f3f3;font-size:16px;color:var(--fg);white-space:pre-wrap;word-break:break-word}button{border:2px solid var(--line);background:var(--fg);color:#ffffff;padding:12px 18px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;cursor:pointer;border-radius:var(--radius)}button.secondary{background:#ffffff;color:var(--fg)}button:disabled{opacity:0.6;cursor:not-allowed}.grid{display:grid;gap:16px}.card{border:2px solid var(--line);padding:20px;background:var(--panel);box-shadow:var(--shadow)}.card h3{margin:0 0 6px}.card p{margin:0;color:var(--muted)}.result-meta{display:flex;gap:12px;font-size:14px;text-transform:uppercase;color:var(--muted);margin-top:8px}.result-card{display:grid;grid-template-columns:140px 1fr auto;gap:18px;align-items:center;padding:18px;border:2px solid var(--line);background:#ffffff;box-shadow:var(--shadow)}.result-score{border:2px solid var(--line);display:grid;gap:8px;padding:12px;text-align:center;text-transform:uppercase;font-weight:700}.result-score .score-value{font-size:28px;font-weight:700}.result-info h3{margin:0 0 6px;font-size:22px}.result-info p{margin:0;color:var(--muted)}.result-actions{font-size:20px;color:var(--muted)}.section-title{margin:36px 0 16px;font-size:20px;text-transform:uppercase;letter-spacing:1px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.profile-card{padding:28px}.profile-hero{display:grid;grid-template-columns:1.1fr 0.9fr;gap:24px;align-items:stretch}.profile-summary{display:grid;gap:16px}.profile-summary .overall-number{font-size:64px;font-weight:700;letter-spacing:-1px}.profile-summary .overall-number span{font-size:20px;color:var(--muted);font-weight:600;margin-left:8px}.profile-actions{display:flex;gap:12px;flex-wrap:wrap}.distribution-card{border:2px solid var(--line);background:#ffffff;padding:18px;display:grid;gap:16px}.distribution-row{display:grid;grid-template-columns:90px 1fr 32px;align-items:center;gap:12px;font-size:13px;text-transform:uppercase}.distribution-bar{height:10px;border:2px solid var(--line);position:relative;background:#f0f0f0}.distribution-bar span{position:absolute;left:0;top:0;height:100%;background:var(--fg)}.review-feed{display:grid;gap:16px}.review-item{border:2px solid var(--line);padding:18px;background:#ffffff;display:grid;grid-template-columns:150px 1fr;gap:18px}.review-score-stack{display:grid;gap:12px}.review-score-box{border:2px solid var(--line);padding:10px;text-align:center;text-transform:uppercase;font-size:12px;letter-spacing:0.6px;color:var(--fg)}.review-score-box .score-value{font-size:28px;font-weight:700;margin-top:6px}.review-score-box .score-sub{font-size:10px;margin-top:4px;text-transform:none;color:var(--muted)}.review-score-box.rating-1{background:var(--rating-1-soft);color:var(--fg)}.review-score-box.rating-2{background:var(--rating-2-soft);color:var(--fg)}.review-score-box.rating-3{background:var(--rating-3-soft);color:var(--fg)}.review-score-box.rating-4{background:var(--rating-4-soft);color:var(--fg)}.review-score-box.rating-5{background:var(--rating-5-soft);color:var(--fg)}.review-body h4{margin:0 0 6px;font-size:18px}.review-body p{margin:12px 0 10px;color:var(--fg)}.review-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;text-transform:uppercase;color:var(--fg)}.review-page .card + .card{margin-top:18px}.add-teacher-page .card + .card{margin-top:18px}.required-legend{color:#c1121f;font-weight:600;text-transform:uppercase;font-size:12px;letter-spacing:0.6px}.required-mark{color:#c1121f;font-weight:700;margin-left:4px}.guidelines-box{border:2px solid var(--line);background:#f0f0f0;padding:12px 14px;font-size:13px;color:var(--fg);display:grid;gap:8px}.guidelines-box ul{margin:0;padding-left:18px}.guidelines-box a{text-decoration:underline}.profile-grid{display:grid;grid-template-columns:1fr 220px;gap:24px;align-items:stretch}.profile-info h1{margin:6px 0 12px;font-size:clamp(28px,4vw,44px)}.overall-box{border:2px solid var(--line);display:grid;place-items:center;text-align:center;text-transform:uppercase;box-shadow:var(--shadow);padding:12px;min-height:200px;gap:8px}.overall-box .overall-value{font-size:48px;font-weight:700}.rating-na{background:#f1f1f1;color:#111111}.rating-1{background:var(--rating-1);color:#ffffff}.rating-2{background:var(--rating-2);color:#ffffff}.rating-3{background:var(--rating-3);color:#111111}.rating-4{background:var(--rating-4);color:#111111}.rating-5{background:var(--rating-5);color:#ffffff}.admin-panel{display:grid;gap:16px}.admin-layout{display:grid;grid-template-columns:220px 1fr;gap:24px;margin-top:28px;align-items:start}.admin-content{display:grid;gap:20px}.admin-tabs{display:grid;gap:10px;position:sticky;top:120px}.tab-button{border:2px solid var(--line);background:#ffffff;padding:12px 14px;text-transform:uppercase;font-size:12px;letter-spacing:0.6px;font-weight:600;text-align:left;cursor:pointer;color:var(--fg)}.tab-button.active{background:var(--fg);color:#ffffff}.admin-tab{display:none;gap:16px}.admin-tab.active{display:grid}.admin-registrar{margin-top:16px}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.stat-card{border:2px solid var(--line);padding:16px;background:#ffffff;display:grid;gap:8px;color:var(--fg)}.stat-card .stat-value{font-size:34px}.stat-card .stat-meta{font-size:12px;text-transform:uppercase;color:var(--muted);letter-spacing:0.6px}.stat-card.rating-1,.stat-card.rating-2,.stat-card.rating-3,.stat-card.rating-4,.stat-card.rating-5{color:var(--fg)}.stat-card.rating-1 .stat-value,.stat-card.rating-2 .stat-value,.stat-card.rating-3 .stat-value,.stat-card.rating-4 .stat-value,.stat-card.rating-5 .stat-value{color:var(--fg)}.dashboard-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.stat-row{display:grid;gap:8px}.stat-row-header{display:flex;justify-content:space-between;font-size:12px;text-transform:uppercase;color:var(--muted);letter-spacing:0.6px}.stat-row-bar{border:2px solid var(--line);height:10px;position:relative;background:#ffffff}.stat-row-bar span{position:absolute;left:0;top:0;height:100%;background:var(--fg)}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.admin-summary{font-size:12px;text-transform:uppercase;color:var(--muted);letter-spacing:1px}.data-table{width:100%;border-collapse:collapse;font-family:'IBM Plex Mono',monospace;font-size:13px}.data-table th,.data-table td{border:2px solid var(--line);padding:10px 12px;vertical-align:top}.data-table th{background:#f0f0f0;text-transform:uppercase;letter-spacing:1px;font-size:11px}.data-table tbody tr.data-row{cursor:pointer;background:#ffffff}.data-table tbody tr.data-row:hover{background:#f6f6f6}.table-actions{display:flex;gap:12px;flex-wrap:wrap}.table-actions button{padding:8px 12px;font-size:12px}.flag-decision{margin-top:18px;padding-top:14px;border-top:1px dashed var(--line)}.decision-actions{align-items:center}.decision-actions .status-text{margin-left:auto}.status-text{font-size:12px;text-transform:uppercase;color:var(--muted)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.4);display:none;align-items:center;justify-content:center;padding:24px;z-index:50}.modal-overlay.active{display:flex}.modal{width:min(1100px,100%);max-height:90vh;background:#ffffff;border:2px solid var(--line);box-shadow:var(--shadow);display:grid;grid-template-rows:auto 1fr}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-bottom:2px solid var(--line)}.modal-header h2{margin:4px 0 0}.modal-body{padding:20px;overflow:auto;display:grid;gap:16px}.modal-stack{display:grid;gap:16px}.modal-section{display:grid;gap:12px}.modal-section + .modal-section{border-top:2px solid var(--line);padding-top:16px}.modal-list{display:grid;gap:12px}.modal-review{border:2px solid var(--line);padding:12px;background:#ffffff;display:grid;gap:10px}.accordion{border:2px solid var(--line);background:#ffffff}.accordion summary{list-style:none;cursor:pointer;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}.accordion-summary{display:grid;gap:6px;min-width:0}.accordion-title{text-transform:uppercase;font-size:12px;letter-spacing:0.6px}.accordion-sub{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.accordion-metrics{display:flex;flex-wrap:wrap;gap:6px}.metric-chip{border:2px solid var(--line);background:#f7f7f7;padding:2px 6px;font-size:10px;text-transform:uppercase;letter-spacing:0.4px;display:inline-flex;gap:6px;align-items:center}.metric-chip strong{font-size:11px;color:var(--fg)}.metric-chip-alert{border-color:var(--rating-1);background:var(--rating-1-soft);color:var(--rating-1)}.metric-chip-muted{border-color:var(--line);background:#f1f1f1;color:var(--muted)}.accordion summary::-webkit-details-marker{display:none}.accordion[open] summary{background:#f2f2f2}.accordion.review-flagged{border-color:var(--rating-2)}.accordion.review-deleted{border-style:dashed;opacity:0.8}.accordion.review-deleted summary{background:#fafafa}.accordion-body{padding:12px 14px;border-top:2px solid var(--line);display:grid;gap:12px}.accordion-meta{display:flex;flex-wrap:wrap;gap:6px}.meta-chip{border:2px solid var(--line);background:#f7f7f7;padding:2px 6px;font-size:10px;text-transform:uppercase;letter-spacing:0.4px}.accordion-analytics{display:grid;gap:8px}.analysis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px}.analysis-grid.tech-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.analysis-item{border:2px solid var(--line);padding:8px;background:#ffffff;display:grid;gap:4px}.analysis-item-full{grid-column:1 / -1}.analysis-item-full .analysis-value{white-space:pre-wrap}.analysis-note{font-size:12px;color:var(--muted)}.analysis-label{font-size:10px;text-transform:uppercase;letter-spacing:0.4px;color:var(--muted)}.analysis-value{font-size:14px;font-weight:700;word-break:break-word}.criteria-breakdown{display:grid;gap:8px}.criteria-row{display:grid;gap:6px;--criteria-fill:#bdbdbd;--criteria-percent:0%}.criteria-row-header{display:flex;justify-content:space-between;font-size:11px;text-transform:uppercase;letter-spacing:0.4px;color:var(--fg);align-items:center;gap:12px}.criteria-bar{border:2px solid var(--line);height:12px;position:relative;background:#f3f3f3}.criteria-bar span{position:absolute;left:0;top:0;height:100%;width:var(--criteria-percent);background:var(--criteria-fill)}.criteria-score{border:2px solid var(--line);padding:1px 6px;font-size:10px;letter-spacing:0.3px;background:#ffffff}.criteria-score::after{content:"/5";margin-left:2px;color:var(--muted)}.criteria-score[data-has-score="false"]::after{content:""}.sub-accordion summary{padding:8px 10px;font-size:12px;text-transform:uppercase;letter-spacing:0.4px;display:flex;align-items:center;justify-content:space-between}.sub-accordion .accordion-body{padding:10px}.sub-accordion summary span:last-child{color:var(--muted)}.admin-login .container{display:flex;align-items:center;justify-content:center;padding:60px 20px 80px}.login-card{max-width:420px;width:100%;border:3px solid var(--line);box-shadow:10px 10px 0 var(--line);background:#ffffff}.login-card h1{margin:6px 0 8px}.login-hint{font-size:12px;text-transform:uppercase;letter-spacing:0.5px;color:var(--muted);margin:0 0 10px}.login-form{gap:12px}.admin-login input[type="text"],.admin-login input[type="password"]{background:#fafafa}.admin-login button{width:100%}.admin-comment{border:2px solid var(--line);background:#ffffff;padding:10px 12px;font-size:14px;line-height:1.6;white-space:pre-wrap;color:var(--fg)}.accordion-score{border:2px solid var(--line);min-width:54px;text-align:center;padding:6px 8px;font-weight:700}.accordion .modal-review{border:0;padding:0}.stat{display:grid;gap:8px}.stat-value{font-size:28px;font-weight:700}.stat-bar{height:6px;border:2px solid var(--line);position:relative;background:#ffffff}.stat-bar span{position:absolute;left:0;top:0;height:100%;background:var(--fg)}.kicker{font-family:'IBM Plex Mono',monospace;text-transform:uppercase;font-size:12px;letter-spacing:1px}.review-list{display:grid;gap:16px}.review-card{border:2px solid var(--line);padding:18px;background:#ffffff}.review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;font-size:13px;text-transform:uppercase;color:var(--muted)}.scale{display:grid;grid-template-columns:repeat(5,minmax(48px,1fr));gap:8px}.scale label{border:2px solid var(--line);background:#ffffff;display:grid;place-items:center;padding:0;cursor:pointer;text-transform:uppercase;font-size:13px;position:relative}.scale input{position:absolute;opacity:0}.scale label span{width:100%;height:100%;display:grid;place-items:center;background:#ffffff;color:#111111;padding:10px 0}.scale label.rating-1 input:checked + span{background:var(--rating-1);color:#ffffff}.scale label.rating-2 input:checked + span{background:var(--rating-2);color:#ffffff}.scale label.rating-3 input:checked + span{background:var(--rating-3);color:#111111}.scale label.rating-4 input:checked + span{background:var(--rating-4);color:#111111}.scale label.rating-5 input:checked + span{background:var(--rating-5);color:#ffffff}.rating-card{display:grid;gap:12px}.rating-card h4{margin:0}.form-grid{display:grid;gap:16px}.form-grid label{display:grid;gap:8px;font-size:12px;text-transform:uppercase;letter-spacing:0.6px}.inline{display:flex;gap:12px;flex-wrap:wrap}.inline label{display:flex;align-items:center;gap:8px;border:2px solid var(--line);padding:10px 14px;text-transform:uppercase;font-size:13px}.fade-in{animation:fadeIn 0.7s ease forwards;opacity:0}.fade-in.delay-1{animation-delay:0.1s}.fade-in.delay-2{animation-delay:0.2s}.fade-in.delay-3{animation-delay:0.3s}@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:900px){.search-row{grid-template-columns:1fr}button{width:100%}.nav{flex-direction:column;align-items:flex-start}.result-card{grid-template-columns:1fr}.profile-grid{grid-template-columns:1fr}.profile-hero{grid-template-columns:1fr}.review-item{grid-template-columns:1fr}.admin-layout{grid-template-columns:1fr}.admin-tabs{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));position:static}}