:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#152437;background:#edf1f4;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #152437;--muted: #647184;--line: #cfd7df;--paper: #fbfcfd;--navy: #152437;--blue: #4472c4;--green: #26805a;--green-soft: #c6efce;--green-ink: #006100;--orange: #f3a738;--school-green: #08752f;--school-green-deep: #064d24;--school-green-dark: #04391a;--school-yellow: #f5d925;--school-yellow-soft: #fff6b8;--school-mist: #f3f8ef}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;background:radial-gradient(circle at 88% 4%,rgba(245,217,37,.17),transparent 25rem),radial-gradient(circle at 12% 22%,rgba(8,117,47,.08),transparent 30rem),#f1f6ef}.topbar{min-height:88px;padding:8px clamp(20px,4vw,64px);background:linear-gradient(110deg,var(--school-green-dark),var(--school-green-deep) 58%,#086b2e);color:#fff;display:flex;align-items:center;justify-content:space-between;border-bottom:4px solid var(--school-yellow);box-shadow:0 8px 24px #04391a29}.brand{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:12px}.brand-mark{width:62px;height:62px;padding:4px;border-radius:14px;display:grid;place-items:center;overflow:hidden;background:#fff;box-shadow:0 0 0 2px #f5d925e6,0 5px 16px #00000029}.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}.brand-copy{display:flex;flex-direction:column;gap:3px}.brand strong{font-size:16px;line-height:1.1;letter-spacing:.035em}.brand small{font-size:11px;color:#e0ebdc;font-weight:650;letter-spacing:.09em;text-transform:uppercase}.topbar-meta{display:flex;align-items:center;gap:18px}.school-motto{display:flex;flex-direction:column;align-items:flex-end;color:var(--school-yellow);font:800 10px/1.2 Inter,sans-serif;letter-spacing:.1em;text-transform:uppercase}.school-motto i{margin-top:3px;color:#d8e7d4;font-size:9px;font-style:normal;font-weight:600;letter-spacing:.06em}.privacy-pill{display:flex;align-items:center;gap:7px;color:#eff7ec;background:#ffffff12;font-size:12px;padding:8px 11px;border:1px solid rgba(255,255,255,.2);border-radius:999px}main{width:min(1660px,calc(100% - 40px));margin:0 auto;padding:54px 0 36px}.hero{display:grid;grid-template-columns:minmax(0,800px) 1fr;align-items:end;gap:60px;margin:0 auto 34px}.hero-copy{position:relative;padding-left:19px}.hero-copy:before{content:"";position:absolute;inset:2px auto 2px 0;width:5px;border-radius:999px;background:linear-gradient(var(--school-yellow),var(--school-green))}.eyebrow{display:inline-flex;align-items:center;gap:7px;color:var(--school-green);text-transform:uppercase;font-size:11px;font-weight:850;letter-spacing:.15em}.hero h1{max-width:780px;margin:12px 0 14px;font-size:clamp(38px,5vw,68px);line-height:.98;letter-spacing:-.045em;font-weight:740}.hero p{max-width:770px;margin:0;font-size:16px;line-height:1.65;color:#596779}.hero-rule{display:flex;align-items:center;gap:12px;color:#50705c;font:750 11px/1 Inter,sans-serif;letter-spacing:.1em;text-transform:uppercase;padding-bottom:8px}.hero-rule i{height:2px;flex:1;min-width:70px;background:linear-gradient(90deg,var(--school-green),var(--school-yellow))}.preview-card,.empty-preview{background:#fbfcfdf5;border:1px solid #cbd4de;box-shadow:0 18px 45px #24334414}.control-card{position:relative;padding:24px 26px 22px;border:1px solid #bfd2c2;border-radius:18px;margin-bottom:22px;overflow:hidden;background:#fffffff7;box-shadow:0 18px 45px #184e2c17}.control-card:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,var(--school-green-deep) 0 72%,var(--school-yellow) 72%)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.section-heading>div:first-child{display:flex;align-items:center;gap:14px}.step-number{width:34px;height:34px;display:grid;place-items:center;border:1px solid #96bca1;border-radius:50%;color:var(--school-green-deep);background:var(--school-mist);font-size:11px;font-weight:850}.section-heading h2,.preview-toolbar h2{margin:0;font-size:18px;letter-spacing:-.02em}.section-heading p{margin:4px 0 0;color:var(--muted);font-size:12px}.text-button{border:0;background:transparent;color:#58677a;display:inline-flex;align-items:center;gap:7px;padding:8px;font-size:12px;font-weight:700}.text-button:hover{color:var(--school-green-deep)}.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.file-drop{min-height:86px;position:relative;display:flex;align-items:center;gap:13px;padding:15px;border:1.5px dashed #a8bbae;border-radius:13px;background:#f8faf6;transition:.18s ease;cursor:pointer}.file-drop:hover{border-color:var(--school-green);background:#f1f8ef;transform:translateY(-1px)}.file-drop.is-ready{border-style:solid;border-color:#80b89e;background:#f2f8f5}.file-drop.has-error{border-color:#c96565;background:#fff6f6}.file-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}.file-icon{flex:0 0 auto;width:42px;height:42px;border-radius:11px;display:grid;place-items:center;color:var(--school-green-deep);background:#e3f0df}.is-ready .file-icon{color:#26714f;background:#dcefe5}.file-copy{display:flex;flex-direction:column;gap:5px;min-width:0}.file-copy strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.file-copy small{color:#6d7887;font-size:11px}.has-error .file-copy small{color:#a23b3b}.ready-check{margin-left:auto;color:#2f865f;flex:0 0 auto}.settings-row{display:grid;grid-template-columns:130px minmax(180px,1fr) minmax(220px,auto) auto;gap:12px;align-items:end;margin-top:16px}.settings-row label{display:grid;gap:6px}.settings-row label span{color:#5d6b7b;font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.settings-row input{width:100%;height:42px;border:1px solid #c4ced8;border-radius:9px;background:#fff;color:var(--ink);padding:0 12px;outline:none}.settings-row input:focus{border-color:var(--school-green);box-shadow:0 0 0 3px #08752f21}.validation-state{height:42px;padding:0 13px;display:flex;align-items:center;gap:8px;color:#6b7786;background:#f1f3f5;border:1px solid #d7dde3;border-radius:9px;font-size:12px;white-space:nowrap}.validation-state.valid{color:#27684c;background:#eef8f2;border-color:#a9ceb9}.export-button{height:42px;border:0;border-radius:9px;background:var(--school-green-deep);color:#fff;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:800;font-size:12px;box-shadow:0 8px 18px #064d2438}.export-button:hover:not(:disabled){background:var(--school-green);transform:translateY(-1px)}.export-button:disabled{opacity:.42;cursor:not-allowed;box-shadow:none}.error-banner{margin-top:14px;padding:11px 13px;border:1px solid #e3a8a8;border-radius:9px;color:#8f3030;background:#fff4f4;font-size:12px}.preview-card{border-radius:18px;overflow:hidden}.preview-toolbar{height:72px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #d4dbe3}.preview-toolbar .eyebrow{font-size:9px;margin-bottom:4px}.hidden-toggle{display:flex;align-items:center;gap:8px;font-size:11px;color:#5d6978;font-weight:650}.hidden-toggle input{accent-color:var(--blue)}.sheet-viewport{width:100%;max-height:610px;overflow:auto;background:#e9edf0;padding:17px;scrollbar-color:#98a5b4 #dfe5ea}.excel-sheet{table-layout:fixed;border-collapse:collapse;background:#fff;font-family:Calibri,Arial,sans-serif;font-size:12px;color:#111;box-shadow:0 3px 15px #1c273226}.excel-sheet th,.excel-sheet td{border-left:1px solid #8f99a5;border-right:1px solid #8f99a5;overflow:hidden;text-overflow:clip;white-space:nowrap}.excel-sheet .title-row{height:48px}.excel-sheet.external .title-row{height:59px}.title-row th{padding:0 4px;text-align:left;vertical-align:middle;background:#fff;font-weight:400;border-color:#e0e4e7}.title-row .title-cell{font-weight:700}.title-row th:nth-child(3){text-align:right}.header-row{height:66px}.excel-sheet.external .header-row{height:162px}.header-row th{position:relative;padding:3px 4px;color:#fff;background:var(--blue);vertical-align:bottom;font-weight:700;text-align:left;border:2px solid #7393ca}.header-row .vertical-header{padding:0;text-align:center;vertical-align:middle}.vertical-header>span{position:absolute;left:50%;bottom:5px;transform:translate(-50%) rotate(-90deg);transform-origin:center;white-space:nowrap;font-size:11px}.excel-sheet tbody tr{height:21px}.excel-sheet tbody td{height:21px;padding:1px 4px;border-top:1px dashed #7f8994;border-bottom:1px dashed #7f8994}.excel-sheet tbody tr.striped td{background:#d9e2f3}.excel-sheet tbody tr.was-hidden td{opacity:.52}.excel-sheet td.grade-cell{padding-left:1px;padding-right:1px;text-align:center}.excel-sheet .cape-divider{background:#a6a6a6!important;color:#1f2832}.excel-sheet td.highlighted{background:var(--green-soft)!important;color:var(--green-ink)}.sheet-tabs{display:flex;gap:3px;overflow-x:auto;padding:10px 12px 0;background:#dfe5ea;border-top:1px solid #c7d0d8}.sheet-tabs button{min-width:max-content;border:1px solid #aeb9c4;border-bottom:0;background:#edf1f4;color:#566474;padding:9px 13px;border-radius:8px 8px 0 0;display:flex;align-items:center;gap:7px;font-size:11px;font-weight:650}.sheet-tabs button.active{background:#fff;color:#19283a}.tab-dot{width:7px;height:7px;border-radius:2px;background:#f0aa2c}.tab-dot.external{background:#70ad47}.empty-preview{min-height:350px;border-radius:18px;position:relative;overflow:hidden;display:grid;place-items:center}.empty-grid{position:absolute;inset:0;opacity:.32;background-image:linear-gradient(#c7d0d9 1px,transparent 1px),linear-gradient(90deg,#c7d0d9 1px,transparent 1px);background-size:44px 26px;mask-image:linear-gradient(to bottom,transparent,black 18%,black 75%,transparent)}.empty-copy{position:relative;text-align:center;max-width:430px;padding:30px}.empty-copy span{display:grid;place-items:center;width:42px;height:42px;margin:0 auto 14px;border:1px solid #aab5c1;border-radius:50%;font-size:11px;font-weight:800;color:#6b7888;background:#f8fafb}.empty-copy h2{margin:0 0 8px;font-size:21px}.empty-copy p{margin:0;color:#6b7786;font-size:13px}footer{width:min(1660px,calc(100% - 40px));margin:0 auto;padding:20px 0 30px;display:flex;justify-content:space-between;color:#65796b;font-size:10px;text-transform:uppercase;letter-spacing:.1em}@media(max-width:900px){.school-motto{display:none}.hero{grid-template-columns:1fr;gap:22px}.hero-rule{display:none}.upload-grid{grid-template-columns:1fr}.settings-row{grid-template-columns:1fr 1fr}.validation-state,.export-button{width:100%}}@media(max-width:600px){.topbar{min-height:76px;padding:7px 16px}.brand-mark{width:52px;height:52px;border-radius:12px}.brand strong{max-width:170px;font-size:13px}.brand small,.privacy-pill{display:none}main{width:min(100% - 24px,1660px);padding-top:34px}.hero h1{font-size:40px}.control-card{padding:18px}.settings-row{grid-template-columns:1fr}.preview-toolbar{align-items:flex-start;height:auto;padding:16px;flex-direction:column}footer{width:calc(100% - 24px);flex-direction:column;gap:7px}}
