[hidden]{display:none!important}
:root{--ink:#172b2a;--muted:#596b68;--line:#d9e3df;--paper:#f5f8f5;--card:#fff;--green:#116b58;--green-dark:#0b5143;--green-soft:#e4f4ec;--amber:#a66513;--red:#9d2c36;--red-soft:#fff0f1;--shadow:0 10px 30px rgba(23,43,42,.055)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--green-dark)}button,input,select,textarea{font:inherit}button{cursor:pointer}.wrap{width:min(1100px,calc(100% - 36px));margin-inline:auto}.site-header{background:#fff;border-bottom:1px solid var(--line)}.header-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:1.17rem;font-weight:800;color:var(--ink)}.brand-mark{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--green);color:#fff}.header-actions{display:flex;align-items:center;gap:18px;font-size:.9rem}.header-actions form{margin:0}.course-pill{background:var(--green-soft);color:var(--green-dark);padding:5px 10px;border-radius:100px;font-weight:700}.link-button{border:0;background:transparent;color:var(--green-dark);padding:0;text-decoration:underline}.footer{padding:42px 0;color:var(--muted);font-size:.84rem}main.wrap{padding-top:42px;min-height:calc(100vh - 140px)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2rem,4vw,3rem);line-height:1.1;letter-spacing:-.04em;margin-bottom:12px}h2{font-size:1.35rem;line-height:1.25}h3{font-size:1.08rem}.muted{color:var(--muted)}.small{font-size:.88rem}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--green);font-size:.75rem;font-weight:800;margin-bottom:10px}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin:14px 0 28px}.page-heading p:last-child{margin-bottom:0}.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:24px}.narrow{max-width:590px}.login-panel{margin:45px auto 0;padding:34px}.stack{display:grid;gap:18px}label{display:block;font-weight:650;font-size:.94rem}input:not([type=hidden]),select,textarea{display:block;width:100%;margin-top:7px;border:1px solid #b8c9c3;border-radius:9px;padding:11px 12px;background:#fff;color:var(--ink);font-weight:400}input:focus,select:focus,textarea:focus,summary:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #9edfc0;outline-offset:2px}textarea{resize:vertical;min-height:88px}input[type=file]{padding:13px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:9px;padding:10px 16px;text-decoration:none;font-weight:750;border:1px solid transparent;min-height:43px}.button.primary{background:var(--green);color:#fff}.button.primary:hover{background:var(--green-dark)}.button.secondary{background:#fff;border-color:#b5c8c1;color:var(--green-dark)}.button.secondary:hover{background:#f2f9f4}.button.danger{background:var(--red);color:#fff}.button-row{display:flex;gap:10px;flex-wrap:wrap}.messages{display:grid;gap:10px;margin:0 0 22px}.message{padding:13px 16px;border-radius:10px;border:1px solid #c8dfd1;background:#ecf9f0;color:#194b33;margin-bottom:16px}.message.error{background:var(--red-soft);border-color:#f0c8cd;color:#7c2630}.message.warning{background:#fff7e8;border-color:#ecd7ae;color:#774b12}.message ul{margin:8px 0 0;padding-left:20px}.between{display:flex;align-items:center;justify-content:space-between;gap:16px}.back-link{display:inline-block;margin-bottom:16px;font-size:.9rem;font-weight:700;text-decoration:none}.badge{display:inline-block;white-space:nowrap;background:#e9edeb;color:#495b57;border-radius:100px;font-size:.75rem;font-weight:800;padding:5px 11px;text-transform:uppercase;letter-spacing:.04em}.badge.open,.badge.self{background:var(--green-soft);color:var(--green-dark)}.notice{border-left:4px solid var(--green);background:#eaf5ed;padding:15px 18px;border-radius:0 10px 10px 0;margin:18px 0 26px}.notice.soft{border-color:#d2a457;background:#fff8ea}.period-grid,.staff-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.period-link{text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}.period-link:hover{transform:translateY(-2px);box-shadow:0 15px 34px rgba(23,43,42,.1)}.period-link p{margin:12px 0}.text-link{color:var(--green-dark);font-weight:750}.empty{max-width:650px}.section-head{margin-top:34px}.rubric{margin:0 0 20px;padding:0}.rubric summary{padding:17px 22px;cursor:pointer;font-weight:750;color:var(--green-dark)}.rubric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;border-top:1px solid var(--line);padding:22px}.rubric-grid h3{color:var(--green-dark);margin-bottom:5px}.rubric-grid p{font-size:.89rem;margin-bottom:0;color:#3f514d}.evaluation-form{display:grid;gap:18px}.person-card{padding:0;overflow:hidden}.person-heading{display:flex;justify-content:space-between;align-items:center;background:#f9fbf9;border-bottom:1px solid var(--line);padding:17px 24px}.person-heading>div{display:flex;align-items:center;gap:13px}.person-heading h3{margin:0}.person-number{font-size:.72rem;font-weight:800;color:var(--green);background:var(--green-soft);border-radius:8px;padding:6px}.person-card fieldset{border:0;margin:0;padding:22px 24px;display:grid;gap:20px}.person-card fieldset:disabled{opacity:.78}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.field-help{display:block;color:var(--muted);font-size:.8rem;font-weight:400;margin-top:6px}.required,.optional{font-size:.73rem;font-weight:700;color:var(--muted);margin-left:5px}.form-actions{display:flex;justify-content:space-between;align-items:center;gap:22px;position:sticky;bottom:12px;z-index:2;box-shadow:0 14px 36px rgba(23,43,42,.14)}.form-actions p{margin:3px 0 0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.stat{display:grid;gap:0;padding:18px 24px}.stat strong{font-size:2rem;line-height:1.1}.stat span{font-size:.86rem;color:var(--muted)}.staff-grid .panel{display:flex;flex-direction:column;align-items:flex-start}.staff-grid .panel p.muted{flex:1}.staff-grid form{margin:0 0 8px}.inline-form{display:flex;align-items:flex-end;gap:8px;width:100%}.inline-form label{flex:1;font-size:.8rem}.inline-form input{margin-top:3px}.text-button{background:transparent;color:var(--green-dark);border:0;padding-inline:3px}.section-panel{margin-top:20px}.period-list{border-top:1px solid var(--line);margin-top:17px}.period-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.period-row form{margin:0}.small-button{min-height:34px;padding:5px 12px;font-size:.82rem}.period-create{display:grid;grid-template-columns:1.5fr 1fr auto;align-items:end;gap:12px;margin-top:22px}.period-create input,.period-create select{margin-top:4px}.reset-link{margin-top:24px}.filter-form{display:flex;align-items:end;gap:10px;margin-bottom:16px}.filter-form label{min-width:260px}.export-row{margin-bottom:16px}.table-wrap{padding:0;overflow:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{padding:12px 15px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}th{background:#f7faf7;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:#49615a}tr:last-child td{border-bottom:0}.count-list{padding:0;list-style:none}.count-list li{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:9px 0}.danger-text{color:var(--red)}@media(max-width:720px){.wrap{width:min(100% - 24px,1100px)}main.wrap{padding-top:24px}.course-pill{display:none}.page-heading{display:block}.page-heading>.badge{margin-top:8px}.period-grid,.staff-grid,.field-grid,.rubric-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(3,1fr)}.panel{padding:20px}.person-card,.rubric{padding:0}.person-card fieldset{padding:20px}.form-actions{position:static;display:block}.form-actions .button-row{margin-top:16px}.form-actions .button{flex:1}.period-create{grid-template-columns:1fr}.period-row{grid-template-columns:1fr auto}.period-row form{grid-column:1/-1}.inline-form{display:block}.header-actions{gap:10px}}
