.poster-host-page{max-width:1800px}.eyebrow{margin:0 0 5px;color:var(--accent);font-size:.82rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.poster-intro{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:40px;align-items:center}.poster-intro h1{font-size:clamp(2.5rem,5vw,5rem);line-height:.95;margin:8px 0 18px}.poster-create-form{display:grid;gap:12px}.poster-create-form label,.poster-result-tools label{display:grid;gap:6px;font-weight:700}.poster-create-form input,select{width:100%;font:inherit;border-radius:10px;border:1px solid var(--line);padding:12px;background:#18273a;color:var(--text)}.poster-session{display:flex;align-items:center;gap:32px;flex-wrap:wrap}.poster-session>div{display:grid}.poster-session strong{font-size:2.2rem}.poster-session a{overflow-wrap:anywhere}.poster-controls,.poster-section-head{display:flex;justify-content:space-between;gap:22px;align-items:center}.poster-controls h2,.poster-section-head h2{margin:.15em 0}.poster-controls p{margin:.35em 0;color:#c8d4e4}.poster-control-buttons{display:flex;gap:10px;flex-wrap:wrap}.secondary{background:#18273a}.poster-transparency{padding-block:14px}.poster-transparency summary{cursor:pointer;color:var(--accent);font-weight:800}.poster-transparency li{margin:.35em 0}.poster-counter{border:1px solid var(--accent);color:var(--accent);border-radius:99px;padding:8px 12px;font-weight:750}.poster-live-table{min-width:900px}.poster-live-table small,.poster-result-table small{display:block;color:#adbbcd;margin-top:4px}.poster-progress{width:min(260px,22vw);height:10px;background:#24364c;border-radius:99px;overflow:hidden;margin-bottom:4px}.poster-progress span{display:block;height:100%;background:var(--accent);border-radius:inherit}.poster-warning{display:inline-grid;place-items:center;width:24px;height:24px;margin-left:8px;border-radius:50%;background:var(--warn);color:#101820;font-weight:900}.poster-result-tools{display:flex;gap:15px;align-items:end;flex-wrap:wrap}.poster-grade-toggle{display:flex!important;grid-template-columns:auto 1fr;align-items:center}.poster-grade-toggle input{width:auto}.poster-result-table{min-width:1650px;font-size:.92rem}.poster-result-table td{text-align:center}.poster-result-table th:first-child{min-width:275px}.poster-person{display:flex;align-items:center;gap:12px}.poster-person>div{display:grid;gap:3px}.poster-person span{font-size:.84rem;color:#adbbcd}.poster-person em,.teacher-grade-column em{font-size:.78rem;color:var(--warn);font-style:normal}.poster-thumb{width:74px;height:60px;padding:0;overflow:hidden;background:#08101b;flex:0 0 auto}.poster-thumb img{width:100%;height:100%;object-fit:cover;display:block}.poster-no-photo{display:grid;place-items:center;width:74px;height:60px;border:1px dashed var(--line);font-size:.72rem;color:#91a1b6}.poster-total strong{font-size:1.15rem;color:var(--accent)}.teacher-grade-column select{min-width:120px}.poster-photo-dialog{width:min(1000px,94vw);max-height:94vh;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--text);padding:22px}.poster-photo-dialog::backdrop{background:rgba(0,0,0,.8)}.poster-photo-dialog img{display:block;max-width:100%;max-height:78vh;margin:auto;border-radius:10px}.poster-photo-dialog p{text-align:center;font-weight:800}.poster-photo-close{position:absolute;right:12px;top:10px;width:44px;height:44px;padding:0;border-radius:50%;font-size:28px}.poster-photo-close,.qr-close{z-index:2}
.poster-feedback-overview{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}.poster-feedback-overview summary{cursor:pointer;color:var(--accent);font-weight:800}.poster-feedback-overview section{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:13px}.poster-feedback-overview h3{margin-top:0}.poster-feedback-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.poster-feedback-pair p{margin:0}
.poster-roster-add{margin:18px 0;padding:14px;border:1px solid var(--line);border-radius:13px}.poster-roster-add summary{cursor:pointer;color:var(--accent);font-weight:800}.poster-roster-form{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,.35fr) minmax(240px,.7fr) auto;gap:12px;align-items:end;margin-top:14px}.poster-roster-form>label:not(.poster-grade-toggle){display:grid;gap:6px;font-weight:700}.poster-roster-form input[type="text"],.poster-roster-form input[type="number"],#posterRosterName{width:100%;font:inherit;border-radius:10px;border:1px solid var(--line);padding:12px;background:#18273a;color:var(--text)}.poster-exempt-toggle{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:.78rem;color:#c8d4e4}.poster-exempt-toggle input{width:auto}.poster-activity-exempt{color:var(--warn);font-weight:750}
.poster-photo-setup p{margin:.35em 0;color:#c8d4e4}.poster-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-top:18px}.poster-photo-card{position:relative;display:grid;gap:9px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#101d2d}.poster-photo-card.is-ready{border-color:var(--accent)}.poster-photo-card strong{font-size:1.08rem}.poster-photo-preview{aspect-ratio:4/3;display:grid;place-items:center;border-radius:10px;overflow:hidden;background:#08101b;color:#91a1b6}.poster-photo-preview img{width:100%;height:100%;object-fit:cover}.poster-photo-card .poster-file-input{position:static;width:100%;height:auto;opacity:1;pointer-events:auto;padding:7px;border:1px solid var(--line);border-radius:8px;background:#18273a;color:#dbe5f2;font:inherit}.poster-file-input::file-selector-button{margin-right:8px;padding:7px 9px;border:0;border-radius:7px;background:#2a4059;color:#fff;font-weight:750;cursor:pointer}.poster-upload-button{width:100%;padding:10px}.poster-photo-card.is-uploading{opacity:.65;pointer-events:none}.poster-photo-card small{min-height:2.4em;color:#adbbcd;text-align:center;overflow-wrap:anywhere}
@media(max-width:900px){.poster-intro{grid-template-columns:1fr}.poster-controls,.poster-section-head{align-items:stretch;flex-direction:column}.poster-control-buttons>*{flex:1}.poster-result-tools{align-items:stretch}.poster-progress{width:180px}.poster-feedback-pair{grid-template-columns:1fr}.poster-roster-form{grid-template-columns:1fr}}
