:root{color-scheme:light;--ink:#14201b;--muted:#617069;--line:#dce6e0;--brand:#146c43;--soft:#eef6f1;--danger:#a72c36;--site-ink:#17213a;--site-ink-soft:#33415f;--site-blue:#2864f0;--site-blue-dark:#1746bb;--site-coral:#ff5838;--site-yellow:#ffc93d;--site-yellow-pale:#fff0a6;--site-mint:#67d9b0;--site-pink:#f5a9d2;--site-lilac:#d9cbff;--site-cream:#fff7df;--site-white:#fffef9}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:#f5f7f5;color:var(--ink);font-family:Arial,Helvetica,sans-serif}a{color:inherit}button,input{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #62a8ff;outline-offset:2px}.shell{width:min(1100px,calc(100% - 32px));margin:0 auto;padding:28px 0 64px}.topbar{justify-content:space-between;gap:20px;margin-bottom:28px}.brand,.topbar{display:flex;align-items:center}.brand{gap:12px;font-weight:750}.mark{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--brand);color:white}.muted{color:var(--muted)}.card,.hero{background:white;border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 30px rgba(20,32,27,.05)}.hero{padding:28px;display:flex;justify-content:space-between;gap:28px;align-items:flex-start}.hero h1{margin:4px 0 8px;font-size:clamp(28px,4vw,42px)}.eyebrow{margin:0;color:var(--brand);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:800}.display{background:var(--soft);border-radius:14px;padding:16px 18px;min-width:240px}.display span,.display strong{display:block}.grid{display:grid;grid-template-columns:360px 1fr;gap:20px;margin-top:20px;align-items:start}.card{padding:22px}.card h2,.card h3{margin-top:0}.stack{display:grid;gap:14px}label{display:grid;gap:7px;font-weight:700;font-size:14px}input[type=email],input[type=file],input[type=number],input[type=text]{width:100%;border:1px solid #bac9c0;border-radius:10px;padding:11px 12px;background:white}.button,button{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:10px;padding:11px 15px;background:var(--brand);color:white;font-weight:750;cursor:pointer;text-decoration:none}.button.secondary,button.secondary{background:#e8eeea;color:var(--ink)}button.danger{background:#f8e8e9;color:var(--danger)}.notice{margin:16px 0;padding:12px 14px;border-radius:10px;background:#edf7f0;border:1px solid #cde5d5}.error{background:#fff0f0;border-color:#f2c8cc;color:var(--danger)}.item,.list{display:grid;gap:12px}.item{border:1px solid var(--line);border-radius:14px;padding:16px}.item-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.item h3{margin:0}.badge{border-radius:999px;padding:5px 9px;background:#edf1ee;font-size:12px;font-weight:800;white-space:nowrap}.badge.approved{background:#dff3e6;color:#176036}.badge.pending_review{background:#fff1cf;color:#795800}.badge.rejected{background:#f9e1e3;color:#8f2430}.actions,.actions form{display:flex;flex-wrap:wrap;gap:8px}.actions input{width:auto;min-width:190px}.preview{width:100%;aspect-ratio:16/9;object-fit:contain;background:#f1f1ed;border-radius:10px;border:1px solid var(--line)}.auth{width:min(480px,calc(100% - 32px));margin:8vh auto}.auth .card{padding:30px}.auth h1{margin-bottom:8px}.fine{font-size:13px;line-height:1.5;color:var(--muted)}.auth-page{position:relative;isolation:isolate;display:grid;place-items:center;width:100%;min-height:100svh;margin:0;padding:40px 24px 72px;overflow:hidden;color:var(--site-ink);background:var(--site-cream);font-family:Avenir Next,Avenir,Trebuchet MS,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.auth-brand{position:absolute;z-index:2;top:26px;left:32px;display:flex;align-items:center;gap:10px;color:var(--site-ink);font-family:Arial Rounded MT Bold,Avenir Next,Trebuchet MS,ui-sans-serif,system-ui,sans-serif;font-size:1.05rem;font-weight:900;line-height:1.05}.auth-brand span{display:grid;gap:3px}.auth-brand small{color:var(--site-ink-soft);font-family:Avenir Next,Avenir,Trebuchet MS,ui-sans-serif,system-ui,sans-serif;font-size:.62rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.auth-brand-mark{display:block;width:58px;height:58px;object-fit:contain;filter:drop-shadow(2px 3px 0 rgba(23,33,58,.18))}.auth-card{position:relative;z-index:2;width:min(680px,calc(100vw - 32px));padding:40px 48px 36px;border:2px solid var(--site-ink);border-radius:34px;color:var(--site-ink);background:rgba(255,254,249,.98);box-shadow:10px 10px 0 var(--site-ink);text-align:center}.auth-card h1{max-width:560px;margin:22px auto 0;font-family:Arial Rounded MT Bold,Avenir Next,Trebuchet MS,ui-sans-serif,system-ui,sans-serif;font-size:clamp(2.5rem,6vw,3.55rem);font-weight:900;letter-spacing:-.045em;line-height:.98}.auth-card h1 span{color:var(--site-blue);background:linear-gradient(transparent 72%,var(--site-yellow) 72%,var(--site-yellow) 92%,transparent 92%);white-space:nowrap}.auth-label{display:inline-flex;align-items:center;gap:9px;margin:0;padding:8px 14px;border:2px solid var(--site-ink);border-radius:999px;background:var(--site-yellow-pale);box-shadow:3px 3px 0 var(--site-ink);font-size:.72rem;font-weight:900;letter-spacing:.09em;line-height:1;text-transform:uppercase}.auth-label span{width:8px;height:8px;border-radius:50%;background:var(--site-coral);box-shadow:0 0 0 3px rgba(255,88,56,.16)}.auth-copy{max-width:510px;margin:20px auto 24px;color:var(--site-ink-soft);font-size:1rem;line-height:1.55}.auth-form{gap:0;text-align:left}.auth-field-label{gap:8px;margin:0 0 0 4px;color:var(--site-ink);font-size:.82rem;font-weight:900;letter-spacing:.02em}.auth-field{display:flex;gap:10px;margin-left:-4px}.auth-field input[type=email]{min-width:0;height:56px;padding:0 18px;border:2px solid var(--site-ink);border-radius:16px;color:var(--site-ink);background:var(--site-white);flex:1 1 auto;outline:none;transition:border-color .18s ease,box-shadow .18s ease}.auth-field input[type=email]::placeholder{color:#7c8496;opacity:1}.auth-field input[type=email]:focus{border-color:var(--site-blue);box-shadow:0 0 0 4px rgba(40,100,240,.16)}.auth-field button{gap:9px;min-width:144px;height:56px;padding:0 20px;border:2px solid var(--site-ink);border-radius:16px;color:var(--site-white);background:var(--site-blue);box-shadow:4px 4px 0 var(--site-ink);font-family:Arial Rounded MT Bold,Avenir Next,Trebuchet MS,ui-sans-serif,system-ui,sans-serif;font-size:.9rem;font-weight:900;transition:background-color .18s ease,box-shadow .18s ease,transform .18s ease}.auth-field button:hover{background:var(--site-blue-dark);box-shadow:1px 1px 0 var(--site-ink);transform:translate(3px,3px)}.auth-field button:focus-visible,.auth-field input:focus-visible{outline:4px solid var(--site-yellow);outline-offset:3px}.auth-card .fine{margin:18px 0 0;color:var(--site-ink-soft);font-size:.78rem;font-weight:700;text-align:center}.auth-card .fine span{color:var(--site-coral)}.auth-card .notice{margin:0 0 18px;border:2px solid var(--site-ink);border-radius:14px;color:var(--site-ink);background:#dff7ed;box-shadow:3px 3px 0 var(--site-ink);font-size:.88rem;font-weight:700;text-align:left}.auth-card .notice.error{color:#821f2a;background:#ffe7e4}.auth-footer{position:absolute;z-index:2;right:24px;bottom:18px;left:24px;margin:0;color:var(--site-ink-soft);font-size:.76rem;font-weight:700;letter-spacing:.02em;text-align:center}.auth-shape,.auth-spark{position:absolute;z-index:1;pointer-events:none}.auth-shape{border:2px solid var(--site-ink)}.auth-shape-one{top:14%;left:-70px;width:220px;height:150px;border-radius:46% 54% 61% 39%/42% 44% 56% 58%;background:var(--site-lilac);transform:rotate(-18deg)}.auth-shape-two{right:-58px;bottom:13%;width:190px;height:190px;border-radius:52% 48% 39% 61%/46% 39% 61% 54%;background:var(--site-mint);transform:rotate(18deg)}.auth-spark{color:var(--site-coral);font-size:clamp(2.4rem,5vw,4.8rem);line-height:1}.auth-spark-one{top:25%;right:9%;transform:rotate(13deg)}.auth-spark-two{bottom:20%;left:10%;color:var(--site-blue);font-size:clamp(1.8rem,4vw,3.8rem);transform:rotate(-14deg)}.metric{font-size:14px;margin-top:16px;padding:12px;background:var(--soft);border-radius:10px}@media (max-width:800px){.grid{grid-template-columns:1fr}.hero{flex-direction:column}.display{width:100%}.topbar{align-items:flex-start}.item-head{flex-direction:column}.auth-page{place-items:start center;padding:94px 16px 74px;overflow-y:auto}.auth-brand{top:18px;left:20px}.auth-brand-mark{width:52px;height:52px}.auth-card{width:min(100%,560px);padding:30px 22px 28px;border-radius:26px;box-shadow:7px 7px 0 var(--site-ink)}.auth-card h1{margin-top:20px;font-size:clamp(2.15rem,11vw,3rem)}.auth-copy{margin:17px auto 21px;font-size:.94rem}.auth-field{display:grid}.auth-field button{width:100%}.auth-shape-one{top:9%;left:-110px}.auth-shape-two{right:-100px;bottom:8%}.auth-spark-one{top:15%;right:4%}.auth-spark-two{bottom:10%;left:4%}}@media (prefers-reduced-motion:reduce){.auth-field button{transition:none}}@font-face{font-family:Portal Roboto;src:url(/fonts/roboto-regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Portal Roboto;src:url(/fonts/roboto-bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}.portal-page{--portal-ink:#090d59;--portal-muted:#626ba8;min-height:100vh;padding:20px 0 52px;color:var(--portal-ink);background:#f4f9fd;font-family:Portal Roboto,Arial,Helvetica,sans-serif}.portal-page button,.portal-page input,.portal-page select{font:inherit}.portal-page button,.portal-page select,.portal-page summary{cursor:pointer}.portal-page button:disabled{cursor:wait;opacity:.65}.portal-page :is(button,a,input,select,summary):focus-visible{outline:3px solid #0080ff;outline-offset:4px}.portal-header,.portal-main{width:min(1416px,calc(100% - 8%));margin:0 auto}.portal-header{display:flex;align-items:center;gap:15px;min-height:94px;margin-bottom:20px}.portal-logo{width:92px;height:94px;object-fit:contain}.portal-brand-copy{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.portal-brand-copy>strong{font-size:28px;letter-spacing:-.8px;line-height:1.15}.portal-brand-copy>span{font-size:15px;font-weight:700;letter-spacing:.45px}.portal-school-name{margin:2px 0 0;color:var(--portal-muted);font-size:16px;overflow-wrap:anywhere}.portal-brand-copy{min-width:0}.portal-logo{flex-shrink:0}.portal-footer{display:flex;justify-content:flex-end}.portal-footer button{border:0;padding:10px 0 10px 16px;background:transparent;color:var(--portal-muted);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.portal-main{display:grid;gap:20px}.portal-panel{border-radius:16px;background:#fff;box-shadow:0 4px 24px #162c6103}.portal-upload-panel{padding:24px}.portal-dropzone{position:relative;display:flex;min-height:289px;flex-direction:column;align-items:center;justify-content:center;border:1.5px dashed #a3b9e9;border-radius:15px;background:#f5faff;text-align:center;padding:30px 18px 26px}.portal-dropzone.is-dragging,.portal-dropzone:hover{background:#eaf3ff;border-color:#087cff}.portal-dropzone:focus-within{outline:3px solid #087cff;outline-offset:3px}.portal-dropzone input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:1}.portal-cloud{display:grid;width:108px;height:108px;margin:5px 0 18px;place-items:center;color:#0780ff;background:#e0edff;border-radius:50%}.portal-cloud svg{width:53px;height:53px;stroke-width:1.7}.portal-dropzone h1{font-size:27px;letter-spacing:-.8px;margin:0 0 8px;line-height:1.2}.portal-dropzone p{margin:0;color:var(--portal-muted);font-size:18px;overflow-wrap:anywhere;max-width:100%}.portal-dropzone small{color:var(--portal-muted);font-size:16px;margin-top:18px}.portal-content-panel{padding:16px 24px 21px}.portal-list-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:13px}.portal-list-heading h2{margin:0;font-size:27px;letter-spacing:-.9px;line-height:1.3}.portal-sort{position:relative;flex-shrink:0}.portal-sort select{appearance:none;color:var(--portal-ink);background:white;border:1px solid #dce5f5;border-radius:12px;width:212px;height:42px;padding:0 40px 0 16px}.portal-sort svg{pointer-events:none;position:absolute;right:14px;top:10px;color:#7481b3;width:20px;height:20px}.portal-content-list{border:1px solid #dce5f5;border-radius:14px}.portal-item+.portal-item{border-top:1px solid #dce5f5}.portal-item-row{display:grid;grid-template-columns:82px minmax(0,1fr) minmax(200px,31%) 40px;align-items:center;gap:21px;min-height:96px;padding:11px 16px}.portal-thumbnail{display:block;width:68px;height:72px;border:1px solid #e7edf5;border-radius:5px;overflow:hidden;background:#f8faff}.portal-thumbnail img{width:100%;height:100%;object-fit:contain}.portal-item-copy{min-width:0}.portal-item-copy h3{margin:0 0 8px;font-size:20px;letter-spacing:-.55px;line-height:1.2;overflow-wrap:anywhere}.portal-item-copy p{margin:0;color:var(--portal-muted);font-size:17px;line-height:1.3}.portal-badge{display:inline-flex;align-items:center;gap:14px;width:fit-content;max-width:100%;padding:12px 18px;border-radius:999px;font-size:18px;white-space:nowrap;color:#626ba8;background:#eef1f9}.portal-badge i{width:14px;height:14px;flex-shrink:0;background:currentColor;border-radius:50%}.portal-badge.approved{background:#e0f8ee;color:#00a65d}.portal-badge.pending_review{background:#fff6df;color:#b87300}.portal-badge.pending_review i{background:#ffbb00}.portal-badge.rejected{background:#ffe7eb;color:#ed0015}.portal-row-menu{position:relative;justify-self:end}.portal-row-menu summary{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#edf0f6;list-style:none}.portal-page summary::-webkit-details-marker{display:none}.portal-menu-popover{position:absolute;right:-18px;top:calc(100% - 3px);z-index:5;width:240px;padding:12px 20px;border-radius:16px;background:white;box-shadow:0 5px 23px #1c2a5026}.portal-menu-popover :is(a,button){display:flex;align-items:center;gap:16px;width:100%;min-height:42px;padding:6px 0;border:0;background:transparent;color:var(--portal-ink);text-align:left;text-decoration:none;font-size:16px}.portal-menu-popover :is(a,button):hover{color:#087cff}.portal-menu-popover svg{flex-shrink:0;width:23px;height:23px}.portal-menu-popover hr{border:0;border-top:1px solid #dce5f5;margin:4px 0}.portal-notice{margin:0;padding:14px 18px;border-radius:12px;line-height:1.5}.portal-notice-success{background:#e0f8ee;color:#087b4e}.portal-notice-error{background:#ffe7eb;color:#a60019}.portal-notice-warning{background:#fff6df;color:#805500}.portal-edit-form,.portal-upload-details{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:20px}.portal-edit-form input:not([type=hidden]),.portal-upload-details input{min-width:120px;flex:1 1;border:1px solid #ccd8ec;border-radius:8px;padding:12px;color:var(--portal-ink)}.portal-edit-form>button,.portal-primary{border:0;border-radius:8px;padding:12px 16px;background:#087cff;color:white}.portal-upload-details p{flex-basis:100%;margin:0;color:var(--portal-muted);font-size:14px}.portal-edit-form{padding:0 16px 16px}.portal-row-note{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:0 16px 14px 119px;color:var(--portal-muted);font-size:14px;line-height:1.5}.portal-row-note button{border:1px solid #dce5f5;border-radius:8px;background:#f5faff;color:var(--portal-ink);padding:7px 12px}.portal-review-note{color:#9b2538}.portal-review-note small{flex-basis:100%}.portal-empty{text-align:center;padding:65px 20px;color:var(--portal-muted)}.portal-empty h3{color:var(--portal-ink)}.portal-skip{position:absolute;top:-100px;left:20px;padding:12px;z-index:10;background:white}.portal-skip:focus{top:10px}@media (max-width:900px){.portal-item-row{grid-template-columns:68px minmax(0,1fr) auto 40px;gap:14px}.portal-badge{padding:10px 12px;font-size:14px;gap:8px}.portal-item-copy h3{font-size:17px}.portal-item-copy p{font-size:14px}.portal-list-heading h2{font-size:23px}.portal-row-note{padding-left:98px}}@media (max-width:600px){.portal-page{padding-top:16px}.portal-header,.portal-main{width:calc(100% - 28px)}.portal-header{gap:10px;margin-bottom:16px;min-height:74px}.portal-logo{width:64px;height:74px}.portal-brand-copy>strong{font-size:24px}.portal-brand-copy>span{font-size:12px}.portal-school-name{font-size:14px}.portal-content-panel,.portal-upload-panel{padding:14px}.portal-dropzone{min-height:275px;padding:22px 12px}.portal-cloud{width:80px;height:80px}.portal-dropzone h1{font-size:23px}.portal-dropzone p{font-size:15px}.portal-dropzone small{font-size:13px;line-height:1.5}.portal-list-heading{align-items:flex-start;flex-direction:column;gap:12px}.portal-list-heading h2{font-size:22px}.portal-sort select{width:180px;font-size:14px}.portal-item-row{grid-template-columns:48px minmax(0,1fr) 36px;gap:10px;padding:12px 10px}.portal-thumbnail{width:48px;height:60px;grid-row:1/3}.portal-item-copy h3{font-size:16px;margin-bottom:5px}.portal-badge,.portal-item-copy p{font-size:12px}.portal-badge{grid-column:2;grid-row:2;padding:6px 9px}.portal-badge i{width:9px;height:9px}.portal-row-menu{grid-column:3;grid-row:1/3}.portal-row-menu summary{width:36px;height:36px}.portal-menu-popover{right:-5px;width:230px}.portal-row-note{padding:0 10px 12px}.portal-upload-details{align-items:stretch;flex-direction:column}}