:root{--navy:#07395f;--blue:#11b6d8;--ink:#132532;--muted:#5c6b76;--line:#dbe5ea;--pale:#f5f9fb;--white:#fff}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#edf5f8 0,#fff 45%);font-family:Arial,sans-serif;color:var(--ink);font-size:16px}.shell{max-width:960px;margin:auto;padding:2.5rem 1.25rem 4rem}.topbar{display:flex;align-items:center;gap:1rem;margin-bottom:3.25rem}.brand-mark{display:grid;place-items:center;width:3rem;height:3rem;border-radius:12px;background:var(--navy);color:white;font-size:1.7rem;font-weight:800}.eyebrow,.section-kicker{margin:0 0 .3rem;color:var(--blue);font-weight:700;letter-spacing:.09em;font-size:.76rem}.topbar h1{font-size:1.3rem;margin:0}.local-only{margin-left:auto;border:1px solid #a7dce7;color:var(--navy);border-radius:999px;padding:.45rem .7rem;font-size:.78rem;font-weight:700}.intro,.next{display:flex;justify-content:space-between;gap:2rem;align-items:end}.intro h2,.next h2,.work-panel h2{margin:0 0 .65rem;font-size:1.8rem}.intro p,.panel-text,.next p{margin:0;line-height:1.55;color:var(--muted)}.privacy-note{max-width:210px;background:#e4f5f8;border-left:4px solid var(--blue);padding:.9rem;font-size:.88rem;line-height:1.4}.choices{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:2rem 0}.choice{display:flex;gap:1rem;align-items:flex-start;padding:1.2rem;background:var(--white);border:1px solid var(--line);border-radius:14px;cursor:pointer;transition:.15s}.choice:has(input:checked){border:2px solid var(--blue);box-shadow:0 10px 26px #0c82951a}.choice input{position:absolute;opacity:0}.choice-number{font-weight:700;color:var(--blue)}.choice strong,.choice small{display:block}.choice small{color:var(--muted);margin-top:.35rem;line-height:1.4}.work-panel{background:white;border:1px solid var(--line);border-radius:16px;padding:1.75rem}.hidden{display:none!important}.dropzone{margin-top:1.25rem;min-height:150px;border:2px dashed #9bc9d3;border-radius:12px;background:var(--pale);display:flex;align-items:center;justify-content:center;gap:1rem;text-align:left;cursor:pointer}.dropzone input,.file-card input{display:none}.upload-icon{width:2.5rem;height:2.5rem;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:white;font-size:1.6rem}.dropzone strong,.dropzone small{display:block}.dropzone small{margin-top:.35rem;color:var(--muted);font-size:.85rem}.file-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.3rem}.file-card{min-height:150px;padding:1rem;border:1px solid var(--line);border-radius:12px;cursor:pointer;background:#fff}.file-card:hover{border-color:var(--blue)}.file-card span{display:grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:50%;background:var(--navy);color:#fff;font-weight:bold;font-size:.8rem;margin-bottom:1rem}.file-card strong,.file-card small{display:block}.file-card small{line-height:1.4;color:var(--muted);margin-top:.4rem;font-size:.85rem}.status{margin-top:1rem;padding:1rem;border-radius:10px;background:#fff4d6;color:#704f00}.status.success{background:#e7f7ec;color:#135c2e}.next{margin-top:1.4rem;padding:1.5rem;border-radius:16px;background:var(--navy);color:#fff;align-items:center}.next p{color:#d5e4ec}.next .section-kicker{color:#72d9e9}.primary-button{border:0;border-radius:10px;padding:1rem 1.2rem;background:var(--blue);color:#042d45;font-weight:800;font-size:1rem;cursor:pointer;white-space:nowrap}.results{margin-top:1.4rem;padding:1.5rem;background:#fff;border:1px solid var(--line);border-radius:16px}.results h2{margin:.2rem 0 1rem;font-size:1.35rem}.summary-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.75rem}.summary-card{min-height:82px;padding:.8rem;border-radius:10px;background:var(--pale);border:1px solid #dceaf0}.summary-card strong{display:block;font-size:1.7rem;color:var(--navy)}.summary-card span{font-size:.85rem;line-height:1.25;color:var(--muted)}.validation-note{margin:1rem 0 0;color:var(--muted);line-height:1.45;font-size:.9rem}@media(max-width:650px){.topbar{margin-bottom:2rem}.local-only{display:none}.intro,.next{display:block}.privacy-note{max-width:none;margin-top:1rem}.choices,.file-grid,.summary-grid{grid-template-columns:1fr}.next .primary-button{margin-top:1rem;width:100%}}
:root{--navy:#07395f;--blue:#11b6d8;--ink:#132532;--muted:#5c6b76;--line:#dbe5ea;--pale:#f5f9fb;--white:#fff}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#edf5f8 0,#fff 45%);font-family:Arial,sans-serif;color:var(--ink);font-size:16px}.shell{max-width:960px;margin:auto;padding:2.5rem 1.25rem 4rem}.topbar{display:flex;align-items:center;gap:1rem;margin-bottom:3.25rem}.brand-mark{display:grid;place-items:center;width:3rem;height:3rem;border-radius:12px;background:var(--navy);color:white;font-size:1.7rem;font-weight:800}.eyebrow,.section-kicker{margin:0 0 .3rem;color:var(--blue);font-weight:700;letter-spacing:.09em;font-size:.76rem}.topbar h1{font-size:1.3rem;margin:0}.local-only{margin-left:auto;border:1px solid #a7dce7;color:var(--navy);border-radius:999px;padding:.45rem .7rem;font-size:.78rem;font-weight:700}.intro,.next{display:flex;justify-content:space-between;gap:2rem;align-items:end}.intro h2,.next h2,.work-panel h2{margin:0 0 .65rem;font-size:1.8rem}.intro p,.panel-text,.next p{margin:0;line-height:1.55;color:var(--muted)}.privacy-note{max-width:210px;background:#e4f5f8;border-left:4px solid var(--blue);padding:.9rem;font-size:.88rem;line-height:1.4}.choices{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:2rem 0}.choice{display:flex;gap:1rem;align-items:flex-start;padding:1.2rem;background:var(--white);border:1px solid var(--line);border-radius:14px;cursor:pointer;transition:.15s}.choice:has(input:checked){border:2px solid var(--blue);box-shadow:0 10px 26px #0c82951a}.choice input{position:absolute;opacity:0}.choice-number{font-weight:700;color:var(--blue)}.choice strong,.choice small{display:block}.choice small{color:var(--muted);margin-top:.35rem;line-height:1.4}.work-panel{background:white;border:1px solid var(--line);border-radius:16px;padding:1.75rem}.hidden{display:none!important}.dropzone{margin-top:1.25rem;min-height:150px;border:2px dashed #9bc9d3;border-radius:12px;background:var(--pale);display:flex;align-items:center;justify-content:center;gap:1rem;text-align:left;cursor:pointer}.dropzone input,.file-card input{display:none}.upload-icon{width:2.5rem;height:2.5rem;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:white;font-size:1.6rem}.dropzone strong,.dropzone small{display:block}.dropzone small{margin-top:.35rem;color:var(--muted);font-size:.85rem}.file-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.3rem}.file-card{min-height:150px;padding:1rem;border:1px solid var(--line);border-radius:12px;cursor:pointer;background:#fff}.file-card:hover{border-color:var(--blue)}.file-card span{display:grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:50%;background:var(--navy);color:#fff;font-weight:bold;font-size:.8rem;margin-bottom:1rem}.file-card strong,.file-card small{display:block}.file-card small{line-height:1.4;color:var(--muted);margin-top:.4rem;font-size:.85rem}.status{margin-top:1rem;padding:1rem;border-radius:10px;background:#fff4d6;color:#704f00}.status.success{background:#e7f7ec;color:#135c2e}.next{margin-top:1.4rem;padding:1.5rem;border-radius:16px;background:var(--navy);color:#fff;align-items:center}.next p{color:#d5e4ec}.next .section-kicker{color:#72d9e9}.primary-button{border:0;border-radius:10px;padding:1rem 1.2rem;background:var(--blue);color:#042d45;font-weight:800;font-size:1rem;cursor:pointer;white-space:nowrap}.results,.editor,.print-workspace{margin-top:1.4rem;padding:1.5rem;background:#fff;border:1px solid var(--line);border-radius:16px}.results h2,.editor h2,.print-workspace h2{margin:.2rem 0 1rem;font-size:1.35rem}.summary-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.75rem}.summary-card{min-height:82px;padding:.8rem;border-radius:10px;background:var(--pale);border:1px solid #dceaf0}.summary-card strong{display:block;font-size:1.7rem;color:var(--navy)}.summary-card span{font-size:.85rem;line-height:1.25;color:var(--muted)}.validation-note{margin:1rem 0 0;color:var(--muted);line-height:1.45;font-size:.9rem}.editor-heading,.print-controls{display:flex;justify-content:space-between;gap:1rem;align-items:end}.filter-row{display:flex;gap:.6rem;align-items:center}.filter-row input,.filter-row select,.print-controls select{font:inherit;padding:.65rem;border:1px solid var(--line);border-radius:8px}.editor-table-wrap{max-height:520px;overflow:auto;margin-top:1.2rem;border:1px solid var(--line);border-radius:10px}table{border-collapse:collapse;width:100%;min-width:910px;font-size:.84rem}th{position:sticky;top:0;background:var(--navy);color:white;text-align:left;padding:.65rem}td{padding:.55rem;border-top:1px solid var(--line);vertical-align:top}td input{width:100%;font:inherit;padding:.4rem;border:1px solid #cbdbe2;border-radius:6px}.student-meta{display:block;color:var(--muted);font-size:.74rem;margin-top:.2rem}.editor-actions{margin-top:1rem;text-align:right}.print-controls>div:last-child{display:flex;gap:.6rem;align-items:center}.class-page{margin-top:1rem;padding:1.25rem;border:1px solid var(--line);border-radius:8px;break-before:page}.class-title{margin:0 0 .85rem;color:var(--navy);font-size:1rem}.cards{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.student-card{display:grid;grid-template-columns:64px 1fr;gap:.7rem;min-height:114px;padding:.65rem;border:1px solid #cbdbe2}.photo-placeholder{display:grid;place-items:center;background:#eaf2f5;color:#547080;font-weight:700;font-size:1.2rem}.student-photo{width:64px;height:100%;min-height:96px;object-fit:cover;background:#eaf2f5}.student-card h4{margin:0 0 .35rem;font-size:.9rem}.student-card p{margin:.15rem 0;font-size:.78rem;line-height:1.25}.badge{font-size:.7rem;color:#075e74;font-weight:bold}.print-controls{margin-bottom:1rem}@media(max-width:650px){.topbar{margin-bottom:2rem}.local-only{display:none}.intro,.next,.editor-heading,.print-controls{display:block}.privacy-note{max-width:none;margin-top:1rem}.choices,.file-grid,.summary-grid,.cards{grid-template-columns:1fr}.next .primary-button,.print-controls .primary-button{margin-top:1rem;width:100%}.filter-row{margin-top:1rem;display:grid;grid-template-columns:1fr}.filter-row input{width:100%}}@media print{body{background:#fff}.shell{max-width:none;padding:0}.topbar,.intro,.choices,.work-panel,.status,.next,.results,.editor,.print-controls{display:none!important}.print-workspace{display:block!important;border:0;margin:0;padding:0}.class-page{border:0;margin:0;padding:1.2cm 1cm;break-before:page}.class-page:first-child{break-before:auto}.student-card{break-inside:avoid}.cards{gap:.6cm}.photo-placeholder{background:#eef2f3}}
