:root{--ink:#102a2b;--muted:#627475;--paper:#f6f1e7;--card:#fffdf8;--teal:#087f75;--teal-dark:#075b55;--coral:#ed6a4c;--gold:#d8a835;--line:#d9d4c9;--danger:#a93636;--shadow:0 20px 60px rgba(16,42,43,.12)}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:radial-gradient(circle at 85% 5%,rgba(216,168,53,.18),transparent 30%),linear-gradient(135deg,#f9f5ed,#f0eee4);font-family:"DM Sans",sans-serif;min-height:100vh}.topbar{min-height:72px;padding:12px clamp(20px,5vw,72px);display:flex;align-items:center;justify-content:space-between;background:rgba(255,253,248,.9);border-bottom:1px solid var(--line);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink)}.brand span{display:grid;place-items:center;width:42px;height:42px;color:#fff;background:var(--teal);border-radius:14px 4px;font-family:"Fraunces",serif;font-weight:700}.brand strong{font-family:"Fraunces",serif;font-size:1.25rem}.topbar nav{display:flex;gap:22px;align-items:center}.topbar nav a{color:var(--ink);text-decoration:none;font-size:.9rem;font-weight:600}.topbar nav a:hover{color:var(--teal)}.shell{width:min(1180px,calc(100% - 32px));margin:42px auto 72px;min-height:65vh}.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center;padding:54px 0}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-weight:700;color:var(--teal);font-size:.74rem}.hero h1,.page-title h1,.auth-card h1{font-family:"Fraunces",serif;line-height:1.02;margin:12px 0 20px}.hero h1{font-size:clamp(3.2rem,7vw,6.8rem);max-width:850px}.hero p{font-size:1.16rem;line-height:1.7;color:var(--muted);max-width:680px}.hero-panel{background:var(--ink);color:#fff;padding:34px;border-radius:8px 38px;box-shadow:var(--shadow);transform:rotate(1deg)}.hero-panel h2{font-family:"Fraunces",serif;font-size:2rem;margin-top:0}.hero-panel ol{padding-left:20px;line-height:2}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:8px;padding:12px 18px;background:var(--teal);color:#fff;text-decoration:none;font:700 .9rem "DM Sans";cursor:pointer}.btn:hover{background:var(--teal-dark)}.btn.secondary{background:transparent;color:var(--ink);border:1px solid var(--ink)}.btn.coral{background:var(--coral)}.btn.small{padding:8px 12px;font-size:.8rem}.auth-wrap{display:grid;place-items:center;min-height:65vh}.auth-card,.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px}.auth-card{width:min(540px,100%);padding:38px}.auth-card h1{font-size:2.7rem}.field{margin:16px 0}.field label{display:block;font-size:.82rem;font-weight:700;margin-bottom:7px}.field input,.field select,.field textarea{width:100%;padding:12px 13px;border:1px solid #c7c8c1;border-radius:8px;background:#fff;color:var(--ink);font:inherit}.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(8,127,117,.15);border-color:var(--teal)}.field-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.page-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:28px}.page-title h1{font-size:clamp(2.4rem,5vw,4.5rem);margin-bottom:4px}.page-title p,.muted{color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0}.stat{background:var(--card);border:1px solid var(--line);padding:22px;border-radius:14px}.stat strong{display:block;font-family:"Fraunces",serif;font-size:2.2rem}.stat span{color:var(--muted);font-size:.83rem}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.card{padding:24px}.card h2,.card h3{font-family:"Fraunces",serif;margin-top:0}.table-wrap{overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:14px}table{width:100%;border-collapse:collapse}th,td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line);font-size:.88rem}th{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#faf7f0}tr:last-child td{border-bottom:0}.badge{display:inline-block;border-radius:99px;padding:5px 9px;background:#dff2ec;color:var(--teal-dark);font-size:.73rem;font-weight:700}.badge.warn{background:#fff0cc;color:#815e0b}.badge.locked{background:#eee;color:#666}.alert{padding:14px 17px;border-radius:10px;margin-bottom:18px;background:#e3f3ef;color:var(--teal-dark);border-left:4px solid var(--teal)}.alert.error{background:#fbe7e4;color:var(--danger);border-color:var(--danger)}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.result-card{position:relative;overflow:hidden}.result-card.locked .record-body{filter:blur(6px);user-select:none;pointer-events:none}.lock-layer{display:none}.result-card.locked .lock-layer{display:grid;place-items:center;position:absolute;inset:70px 15px 15px;background:rgba(255,253,248,.56);z-index:2;text-align:center;padding:20px}.price{font-family:"Fraunces",serif;font-size:1.5rem}.checkline{display:flex;gap:10px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}.checkline input{margin-top:4px}.grade-key{background:var(--ink);color:#fff}.grade-key table th,.grade-key table td{color:#fff;border-color:rgba(255,255,255,.15);background:transparent}.summary-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.summary-strip div{padding:14px;background:#f3efe5;border-radius:10px}.summary-strip strong{display:block}.empty{padding:42px;text-align:center;color:var(--muted)}footer{padding:30px clamp(20px,5vw,72px);display:flex;justify-content:space-between;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}
@media(max-width:850px){.topbar{align-items:flex-start}.topbar nav{gap:10px;flex-wrap:wrap;justify-content:flex-end}.topbar nav a{font-size:.75rem}.hero{grid-template-columns:1fr}.hero-panel{transform:none}.stats,.result-grid{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}}
@media(max-width:560px){.brand strong{display:none}.shell{margin-top:24px}.hero{padding:20px 0}.hero h1{font-size:3.1rem}.auth-card,.card{padding:20px}.field-row,.stats,.result-grid,.summary-strip{grid-template-columns:1fr}.page-title{display:block}.topbar{padding:10px 16px}.topbar nav a{font-size:.7rem}footer{display:block}}
@media print{.topbar,footer,.actions,.lock-layer{display:none!important}.shell{width:100%;margin:0}.result-card.locked{display:none}.card{box-shadow:none;break-inside:avoid}}

/* Compact professional application layer */
.topbar{min-height:60px;padding:8px clamp(18px,4vw,52px)}
.brand{gap:9px}.brand span{width:36px;height:36px;border-radius:11px 3px;font-size:.88rem}.brand strong{font-size:1.08rem}.topbar nav{gap:7px}.topbar nav a{padding:7px 9px;border-radius:7px;font-size:.79rem}.topbar nav a:hover{background:rgba(8,127,117,.08)}
.shell{width:min(1160px,calc(100% - 28px));margin:26px auto 52px;min-height:70vh}.hero{gap:34px;padding:38px 0}.hero h1{font-size:clamp(2.9rem,6vw,5.4rem);margin:9px 0 14px}.hero p{font-size:1.02rem;line-height:1.58}.hero-panel{padding:26px 28px;border-radius:7px 28px}.hero-panel h2{font-size:1.65rem}.hero-panel ol{line-height:1.75;font-size:.9rem}.actions{margin-top:18px}.btn{padding:10px 14px;border-radius:7px;font-size:.82rem}.btn.small{padding:6px 9px;font-size:.74rem}
.page-title{margin-bottom:18px;align-items:center}.page-title h1{font-size:clamp(2rem,4vw,3.25rem);margin:7px 0 2px}.page-title p{font-size:.88rem}.eyebrow{font-size:.68rem}.stats{gap:11px;margin:16px 0}.stat{padding:15px 18px;border-radius:11px}.stat strong{font-size:1.75rem;line-height:1.1}.stat span{font-size:.75rem}.grid{gap:14px}.card{padding:18px;border-radius:13px;box-shadow:0 10px 32px rgba(16,42,43,.08)}.card h2{font-size:1.28rem;margin-bottom:10px}.card h3{font-size:1.08rem}.card p{margin:8px 0;line-height:1.45}.auth-wrap{min-height:62vh}.auth-card{padding:28px;width:min(460px,100%);border-radius:14px}.auth-card h1{font-size:2.2rem;margin:8px 0 12px}.auth-card p{font-size:.87rem}.field{margin:11px 0}.field label{font-size:.75rem;margin-bottom:5px}.field input,.field select,.field textarea{padding:9px 10px;border-radius:7px;font-size:.86rem}.field-row{gap:11px}
.table-wrap{border-radius:10px}th,td{padding:9px 11px;font-size:.8rem}th{font-size:.67rem}.badge{padding:4px 7px;font-size:.66rem}.result-grid{gap:12px}.summary-strip{gap:8px}.summary-strip div{padding:10px}.checkline{padding:9px 0;font-size:.84rem}footer{padding:20px clamp(18px,4vw,52px)}
.alert{padding:11px 14px;margin-bottom:14px;font-size:.84rem}
.toast-stack{position:fixed;top:72px;right:18px;width:min(390px,calc(100vw - 28px));display:grid;gap:10px;z-index:1000;pointer-events:none}.toast{position:relative;display:grid;grid-template-columns:32px 1fr 24px;gap:10px;align-items:start;overflow:hidden;padding:13px 12px 15px;background:#fffdf8;border:1px solid rgba(16,42,43,.16);border-radius:11px;box-shadow:0 18px 48px rgba(16,42,43,.2);pointer-events:auto;animation:toast-in .3s ease-out both}.toast.error{border-left:4px solid var(--danger)}.toast.success{border-left:4px solid var(--teal)}.toast-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#dff2ec;color:var(--teal-dark);font-weight:800}.toast.error .toast-icon{background:#fbe7e4;color:var(--danger)}.toast-copy{display:grid;gap:2px}.toast-copy strong{font-size:.78rem}.toast-copy span{font-size:.76rem;line-height:1.4;color:var(--muted)}.toast-close{border:0;background:transparent;color:#809091;font-size:1.2rem;line-height:1;cursor:pointer;padding:2px}.toast-close:hover{color:var(--ink)}.toast-progress{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--teal);transform-origin:left;animation:toast-countdown 10s linear forwards}.toast.error .toast-progress{background:var(--danger)}.toast.leaving{animation:toast-out .32s ease-in forwards}@keyframes toast-in{from{opacity:0;transform:translateY(-10px) translateX(18px)}to{opacity:1;transform:none}}@keyframes toast-out{to{opacity:0;transform:translateX(24px)}}@keyframes toast-countdown{to{transform:scaleX(0)}}
@media(max-width:850px){.topbar nav{gap:2px}.topbar nav a{padding:6px}.shell{margin-top:18px}.card{padding:15px}}
@media(max-width:560px){.topbar{min-height:54px}.toast-stack{top:62px;right:14px}.hero h1{font-size:2.75rem}.hero{padding:12px 0 26px}.stats{grid-template-columns:repeat(2,1fr)}.auth-card{padding:21px}.result-grid{grid-template-columns:1fr}}.table-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 9px}.table-tools form,.table-tools>label{position:relative;display:flex;align-items:center;gap:8px}.table-tools input[type=search]{width:min(290px,62vw);padding:8px 10px 8px 31px;border:1px solid #c7c8c1;border-radius:7px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%23627475' stroke-width='2'%3E%3Ccircle cx='6' cy='6' r='4'/%3E%3Cpath d='m9 9 4 4'/%3E%3C/svg%3E") no-repeat 10px center;font:inherit;font-size:.78rem}.search-hint{font-size:.66rem;color:var(--muted)}.table-meta{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.72rem}.pager{display:flex;align-items:center;gap:6px}.pager a,.pager button{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:6px;padding:6px 8px;text-decoration:none;font:600 .68rem "DM Sans";cursor:pointer}.pager button:disabled{opacity:.4;cursor:default}.pager strong{min-width:42px;text-align:center;font-size:.68rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:560px){.table-tools{align-items:flex-start;flex-direction:column}.table-tools input[type=search]{width:calc(100vw - 28px)}.table-meta{width:100%;justify-content:space-between}}
.file-note{display:block;margin-top:6px;color:var(--muted);font-size:.68rem;line-height:1.35}.file-note.error{color:var(--danger);font-weight:700}

.table-wrap{transition:opacity .18s ease}.table-wrap.is-loading{opacity:.48;pointer-events:none}
.transcript-viewer-card{margin:18px 0 28px;padding:0;overflow:hidden;background:#152d2e;border-color:#152d2e}.transcript-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;color:#fff}.transcript-viewer-head h2{margin:3px 0 2px;color:#fff}.transcript-viewer-head p{margin:0;color:rgba(255,255,255,.7);font-size:.8rem}.transcript-viewer-head .eyebrow{color:#e7bd56}.transcript-viewer-head .actions{margin:0}.transcript-viewer-head .btn{background:#fff;color:var(--ink)}.transcript-frame{position:relative;height:min(78vh,850px);min-height:580px;background:#d8d8d5;border-top:1px solid rgba(255,255,255,.14)}.transcript-frame iframe{display:block;width:100%;height:100%;border:0;background:#fff}.transcript-load{position:absolute;inset:50% auto auto 50%;z-index:2;transform:translate(-50%,-50%);border:0;border-radius:8px;padding:12px 18px;background:var(--teal);color:#fff;font:700 .84rem "DM Sans";cursor:pointer;box-shadow:0 12px 28px rgba(16,42,43,.24)}.transcript-load:hover{background:var(--teal-dark)}@media(max-width:650px){.transcript-viewer-head{align-items:flex-start;flex-direction:column}.transcript-frame{height:72vh;min-height:480px}}
.student-dashboard-grid{grid-template-columns:minmax(0,1.15fr) minmax(310px,.85fr);align-items:start}.transcript-access-card{position:sticky;top:80px;overflow:hidden;background:linear-gradient(145deg,#102a2b,#174548);color:#fff;border:0;box-shadow:0 22px 52px rgba(16,42,43,.22)}.transcript-access-card:after{content:"";position:absolute;width:230px;height:230px;right:-95px;bottom:-115px;border:1px solid rgba(216,168,53,.28);border-radius:50%;box-shadow:0 0 0 34px rgba(216,168,53,.06),0 0 0 68px rgba(216,168,53,.035)}.transcript-access-card>*{position:relative;z-index:1}.transcript-access-card .eyebrow{color:#e7bd56}.transcript-access-card h2{margin:8px 0;font-size:1.65rem}.transcript-access-card p{max-width:440px;color:rgba(255,255,255,.74);font-size:.86rem;line-height:1.55}.transcript-access-card small{display:block;margin-top:12px;color:rgba(255,255,255,.55);font-size:.7rem}.document-mark{display:grid;place-items:center;width:54px;height:66px;margin-bottom:20px;border:1px solid rgba(255,255,255,.35);border-radius:5px 13px 5px 5px;background:rgba(255,255,255,.08)}.document-mark span{font-size:.68rem;font-weight:800;letter-spacing:.12em;color:#e7bd56}.access-status{display:flex;align-items:baseline;gap:8px;margin:20px 0;padding:13px 0;border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14)}.access-status strong{font-family:"Fraunces",serif;font-size:1.45rem}.access-status span{color:rgba(255,255,255,.65);font-size:.76rem}.transcript-actions{display:flex;gap:9px;flex-wrap:wrap}.transcript-access-card .btn{background:#fff;color:var(--ink)}.transcript-access-card .btn.secondary{border-color:rgba(255,255,255,.45);background:transparent;color:#fff}.modal-open{overflow:hidden}.transcript-modal{position:fixed;inset:0;z-index:2000;padding:20px}.transcript-modal-backdrop{position:absolute;inset:0;background:rgba(7,24,25,.78);backdrop-filter:blur(8px)}.transcript-modal-panel{position:relative;display:grid;grid-template-rows:auto 1fr;width:min(1060px,100%);height:calc(100vh - 40px);margin:auto;overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:16px;background:#d8d8d5;box-shadow:0 28px 90px rgba(0,0,0,.45)}.transcript-modal-panel header{display:flex;align-items:center;justify-content:space-between;padding:13px 17px;background:#102a2b;color:#fff}.transcript-modal-panel header h2{margin:3px 0 0;font-family:"Fraunces",serif;font-size:1.2rem}.transcript-modal-panel header .eyebrow{color:#e7bd56}.transcript-modal-panel iframe{width:100%;height:100%;border:0;background:#d8d8d5}.transcript-modal-close{display:grid;place-items:center;width:36px;height:36px;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:1.45rem;cursor:pointer}.transcript-modal-close:hover{background:rgba(255,255,255,.16)}@media(max-width:850px){.student-dashboard-grid{grid-template-columns:1fr}.transcript-access-card{position:static}}@media(max-width:600px){.transcript-modal{padding:0}.transcript-modal-panel{height:100vh;border:0;border-radius:0}.transcript-actions{display:grid}.transcript-actions .btn{width:100%}}
.student-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:14px}.student-dashboard-grid>.card{height:100%;padding:18px 20px}.student-dashboard-grid>.card:first-child{display:flex;flex-direction:column}.student-dashboard-grid>.card:first-child form{display:flex;flex:1;flex-direction:column}.student-dashboard-grid>.card:first-child form>.actions{margin-top:auto;padding-top:12px}.student-dashboard-grid .checkline{padding:8px 0}.student-dashboard-grid h2{margin:6px 0 8px}.transcript-access-card{position:relative;top:auto;display:flex;flex-direction:column;min-height:0}.document-mark{width:46px;height:54px;margin-bottom:12px}.transcript-access-card p{margin:5px 0;line-height:1.45}.access-status{margin:13px 0;padding:10px 0}.transcript-actions{margin-top:auto;padding-top:10px}.transcript-access-card small{margin-top:8px}@media(max-width:850px){.student-dashboard-grid{grid-template-columns:1fr}.student-dashboard-grid>.card{height:auto}.transcript-actions{margin-top:10px}}
.student-payment-actions{gap:8px}.payment-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(350px,.72fr);gap:26px;align-items:center;min-height:68vh}.payment-intro{padding:26px}.payment-intro h1{max-width:640px;margin:10px 0 14px;font:700 clamp(2.7rem,5vw,5rem)/1 "Fraunces",serif}.payment-intro>p{max-width:610px;color:var(--muted);font-size:1rem;line-height:1.65}.payment-flow{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}.payment-flow span{padding:8px 10px;border:1px solid var(--line);border-radius:99px;background:rgba(255,255,255,.55);font-size:.72rem;font-weight:700}.payment-card{padding:22px}.payment-person{display:flex;align-items:center;gap:11px;padding-bottom:14px;border-bottom:1px solid var(--line)}.payment-person>div:last-child{display:grid;gap:2px}.payment-person span{color:var(--muted);font-size:.73rem}.payment-avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:12px 4px;background:var(--teal);color:#fff;font-family:"Fraunces",serif;font-size:1.2rem}.payment-amount{display:grid;gap:2px;padding:18px 0}.payment-amount span,.payment-records>span{color:var(--muted);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.payment-amount strong{font:700 2.35rem "Fraunces",serif}.payment-records{padding:13px 14px;border-radius:9px;background:#f3efe5}.payment-records ul{margin:8px 0 0;padding-left:18px;color:var(--ink);font-size:.78rem;line-height:1.65}.checkout-form{margin-top:14px}.payment-warning{display:grid;gap:2px;margin-bottom:11px;padding:10px 11px;border-left:3px solid var(--coral);border-radius:6px;background:#fff0e9}.payment-warning strong{font-size:.76rem}.payment-warning span{color:#865346;font-size:.7rem;line-height:1.4}.payment-submit{width:100%}.verify-form{margin-top:8px}.verify-form .btn{width:100%}.payment-reference{display:block;margin-top:12px;text-align:center;color:var(--muted);font-size:.65rem}@media(max-width:850px){.payment-shell{grid-template-columns:1fr;gap:12px;min-height:0}.payment-intro{padding:10px 0}.payment-intro h1{font-size:2.7rem}.payment-card{padding:18px}}
.btn:disabled{opacity:.48;cursor:not-allowed;filter:saturate(.5)}
.glass-form{padding:15px 17px}.glass-form .field{margin:8px 0}.glass-form .field-row{gap:9px}.glass-form .field input,.glass-form .field select{padding:8px 9px}.sample-link{font-size:.86rem;padding:8px 11px;border-radius:7px;background:rgba(8,127,117,.1);text-decoration:none}.sms-prefix-field{max-width:390px;margin:0 0 12px}.sms-prefix-field select{width:100%;padding:9px;border:1px solid var(--line);border-radius:7px;background:#fff;font:inherit;font-size:.78rem}
.dashboard-glass{position:relative;display:flex;justify-content:space-between;gap:28px;overflow:hidden;padding:28px;border:1px solid rgba(255,255,255,.64);border-radius:22px;box-shadow:0 20px 60px rgba(16,42,43,.13);backdrop-filter:blur(18px)}.dashboard-super{background:linear-gradient(135deg,rgba(13,63,68,.95),rgba(8,127,117,.78));color:#fff}.dashboard-officer{background:linear-gradient(135deg,rgba(255,253,248,.86),rgba(224,242,236,.82))}.dashboard-glass h1{max-width:760px;margin:8px 0;font:700 clamp(2.2rem,4vw,4rem)/1 "Fraunces",serif}.dashboard-glass p{max-width:680px;margin:0;line-height:1.55;opacity:.78}.dashboard-super .eyebrow{color:#f1c85b}.dashboard-role{align-self:flex-start;display:grid;gap:4px;min-width:190px;padding:14px;border:1px solid rgba(255,255,255,.24);border-radius:14px;background:rgba(255,255,255,.1)}.dashboard-role span{font-size:.65rem;letter-spacing:.14em}.dashboard-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.dashboard-action{display:grid;gap:8px;min-height:120px;padding:18px;border:1px solid rgba(255,255,255,.68);border-radius:14px;background:rgba(255,253,248,.72);box-shadow:0 10px 30px rgba(16,42,43,.08);backdrop-filter:blur(14px);color:var(--ink);text-decoration:none}.dashboard-action span{color:var(--teal);font-size:.68rem;font-weight:800}.dashboard-action strong{font-family:"Fraunces",serif;font-size:1.18rem}.glass-form,.upload-card,.sms-recipient-card{background:rgba(255,253,248,.78);backdrop-filter:blur(16px)}.sample-link{display:inline-flex;margin:5px 0 10px;border:0;background:none;color:var(--teal);font-weight:700;font-size:.76rem;text-decoration:underline;cursor:pointer}.sms-control-strip{display:grid;grid-template-columns:1fr auto auto;gap:20px;align-items:center;margin-bottom:18px;padding:18px 20px;border-radius:16px;border:1px solid var(--line);background:rgba(255,253,248,.78);backdrop-filter:blur(14px)}.sms-control-strip.locked{border-color:#e2b8a9;background:rgba(255,240,233,.8)}.sms-control-strip h2{margin:3px 0}.sms-control-strip p{margin:0;color:var(--muted);font-size:.8rem}.sms-switch{display:flex;align-items:center;gap:8px;font-size:.72rem}.sms-switch input{width:18px;height:18px}.sms-list-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.sms-list-head h2{margin-bottom:2px}@media(max-width:850px){.dashboard-glass{display:grid}.dashboard-role{min-width:0}.dashboard-actions{grid-template-columns:1fr 1fr}.sms-control-strip{grid-template-columns:1fr}}@media(max-width:560px){.dashboard-actions{grid-template-columns:1fr}.dashboard-glass{padding:20px}.sms-list-head{align-items:flex-start;flex-direction:column}}
.page-title h1{font-size:clamp(1.65rem,3vw,2.35rem);line-height:1.08}.page-title p{font-size:.82rem}.dashboard-glass{padding:21px 23px;gap:20px;border-radius:17px}.dashboard-glass h1{max-width:720px;margin:6px 0;font-size:clamp(1.7rem,3vw,2.55rem);line-height:1.08}.dashboard-glass p{font-size:.84rem;line-height:1.48}.dashboard-role{min-width:170px;padding:11px 12px}.dashboard-role strong{font-size:.85rem}.dashboard-stats .stat strong,.stats .stat strong{font-size:1.5rem}.dashboard-action{min-height:94px;padding:14px;gap:5px}.dashboard-action strong{font-size:1rem}.dashboard-action small{font-size:.7rem}.card h2{font-size:1.12rem}.card h3{font-size:.98rem}.payment-intro h1{font-size:clamp(2rem,3.6vw,3.25rem)}@media(max-width:560px){.page-title h1{font-size:1.75rem}.dashboard-glass h1{font-size:1.8rem}.dashboard-glass{padding:17px}.payment-intro h1{font-size:2.1rem}}

.modal-open { overflow: hidden; }
.app-modal[hidden] { display: none !important; }
.app-modal { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 20px; }
.app-modal__backdrop { position: absolute; inset: 0; background: rgba(8,31,32,.62); backdrop-filter: blur(10px); }
.app-modal__card { position: relative; width: min(560px,100%); max-height: calc(100vh - 40px); overflow: auto; padding: 24px; border: 1px solid rgba(255,255,255,.72); border-radius: 22px; background: rgba(250,248,241,.92); box-shadow: 0 28px 80px rgba(8,31,32,.28); backdrop-filter: blur(22px); }
.app-modal__card--wide { width: min(1120px,100%); height: min(86vh,900px); padding: 14px; }
.app-modal__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
.app-modal__head h2 { margin: 0; font-size: clamp(1.25rem,2vw,1.75rem); }
.app-modal__close { flex: 0 0 auto; width: 36px; height: 36px; border: 0; border-radius: 50%; background: #123b3c; color: #fff; font-size: 1.35rem; line-height: 1; cursor: pointer; }
.app-modal iframe { display: block; width: 100%; height: calc(100% - 58px); min-height: 520px; border: 0; border-radius: 14px; background: #fff; }
.modal-launchers { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 18px; }
.modalized-form { margin: 0; box-shadow: none !important; border: 0 !important; background: transparent !important; padding: 0 !important; }
.sms-wallet { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-bottom: 18px; }
.sms-wallet > div { padding: 14px 16px; border: 1px solid rgba(18,59,60,.12); border-radius: 16px; background: rgba(255,255,255,.62); }
.sms-wallet strong { display: block; margin-top: 3px; font-size: 1.25rem; color: #123b3c; }
@media (max-width:720px) { .app-modal { padding: 10px; } .app-modal__card { padding: 18px; border-radius: 17px; } .app-modal__card--wide { height: calc(100vh - 20px); } .app-modal iframe { min-height: 420px; } .sms-wallet { grid-template-columns: 1fr; } }

.pager strong{min-width:86px}.pager button:disabled{display:inline-flex;align-items:center;opacity:.42}.payment-caution{display:grid;gap:3px;margin:12px 0;padding:11px 13px;border:1px solid rgba(215,93,65,.28);border-radius:10px;background:#fff2ed;color:#7c2f20}.payment-caution strong{font-size:.8rem}.payment-caution span{font-size:.7rem;line-height:1.4}.sms-checkout-total{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:end;margin:12px 0;padding:12px;border-radius:12px;background:rgba(16,42,43,.06)}.sms-checkout-total span,.sms-checkout-total small{font-size:.7rem;color:var(--muted)}.sms-checkout-total strong{grid-row:1/3;grid-column:2;font-size:1.15rem;color:var(--teal-dark)}.sms-purchase-history{margin-bottom:0}.inline-form{display:inline-flex;margin:0}.paid-label{font-weight:700;color:var(--teal)}@media(max-width:560px){.pager strong{min-width:74px}.pager a,.pager button{padding:6px}.sms-purchase-history .table-wrap{overflow-x:auto}}

.sms-recipient-filter{display:grid;grid-template-columns:1fr minmax(230px,320px);gap:24px;align-items:end}.sms-recipient-filter h2,.sms-selection-head h2{margin:4px 0}.sms-recipient-filter p{margin:0}.sms-recipient-filter .field{margin:0}.sms-selection-head{display:flex;justify-content:space-between;gap:20px;align-items:end}.sms-selection-head .field{width:min(360px,100%);margin:0}.sms-selection-status{display:flex;gap:7px;align-items:center;margin:14px 0;padding:10px 12px;border-radius:10px;background:rgba(8,127,117,.08);font-size:.75rem}.sms-selection-status strong{color:var(--teal-dark)}.sms-individual-controls{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.sms-individual-controls[hidden]{display:none}.sms-individual-controls .sample-link{margin:0;padding:7px 10px;border-radius:7px;background:rgba(8,127,117,.1);text-decoration:none}.sms-individual-controls .danger-link{color:var(--danger);background:rgba(190,57,44,.08)}.sms-send-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:13px;padding-top:13px;border-top:1px solid var(--line);font-size:.72rem;color:var(--muted)}.sms-recipient-card .table-tools{margin-top:12px}@media(max-width:700px){.sms-recipient-filter{grid-template-columns:1fr}.sms-selection-head{align-items:flex-start;flex-direction:column}.sms-selection-head .field{width:100%}.sms-selection-status,.sms-send-bar{align-items:flex-start;flex-direction:column}}

.pdf-modal-actions{display:flex;align-items:center;gap:9px}.pdf-modal-actions .btn{white-space:nowrap}.auth-return{display:inline-flex;margin-top:14px;color:var(--teal);font-size:.76rem;font-weight:700;text-decoration:none}.auth-return:hover{text-decoration:underline}.otp-input{font-size:1.35rem!important;font-weight:800;letter-spacing:.32em;text-align:center}.table-actions{display:flex;gap:6px;flex-wrap:wrap}.temp-password-field>div{display:grid;grid-template-columns:1fr auto;gap:8px}.temp-password-field .btn{white-space:nowrap}
.btn.danger{border-color:#b93b2d;background:transparent;color:#a53125}.btn.danger:hover{background:#fff0ec}.btn.danger-solid{background:#b93b2d;color:#fff}.btn.danger-solid:hover{background:#982d23}.reset-zone{margin-top:22px;padding:20px;border:1px solid rgba(185,59,45,.22);border-radius:18px;background:linear-gradient(145deg,rgba(255,253,248,.86),rgba(255,239,233,.7));box-shadow:0 14px 38px rgba(74,34,25,.08)}.reset-zone-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.reset-zone-head h2{margin:5px 0}.reset-zone-head p{max-width:720px;margin:0;color:var(--muted);font-size:.78rem}.reset-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-top:17px}.reset-options article{display:flex;flex-direction:column;align-items:flex-start;min-height:210px;padding:16px;border:1px solid rgba(185,59,45,.14);border-radius:14px;background:rgba(255,255,255,.68)}.reset-options article>span{color:#b93b2d;font-size:.68rem;font-weight:800}.reset-options h3{margin:8px 0 5px;font-family:"Fraunces",serif}.reset-options p{flex:1;margin:0 0 14px;color:var(--muted);font-size:.72rem;line-height:1.5}.reset-lock-note{margin:12px 0 0;color:#9a3a2e;font-size:.72rem;font-weight:700}.reset-modal>p{margin-top:0;color:var(--muted);font-size:.76rem}.reset-modal-danger{border-color:rgba(185,59,45,.35)}.reset-modal-danger .eyebrow{color:#a53125}.reset-warning{display:grid;gap:3px;margin-bottom:14px;padding:12px 13px;border-left:4px solid #b93b2d;border-radius:8px;background:#fff0ec}.reset-warning strong{color:#8d291f}.reset-warning span{color:#79443d;font-size:.72rem;line-height:1.45}@media(max-width:850px){.reset-options{grid-template-columns:1fr}.reset-options article{min-height:0}.reset-zone-head{flex-direction:column}}

.sms-message-compose{display:grid;grid-template-columns:minmax(210px,.7fr) minmax(220px,.8fr) minmax(300px,1.5fr);gap:12px;margin-bottom:18px;padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.58)}.sms-message-compose .field{margin:0}.sms-message-preview textarea{width:100%;resize:none;background:#f3f4ef;color:var(--ink);font:600 .72rem/1.5 "DM Sans";cursor:not-allowed}.sms-message-preview small{display:block;margin-top:5px;color:var(--muted);font-size:.66rem}.sms-switch+.sms-switch{margin-top:9px}@media(max-width:900px){.sms-message-compose{grid-template-columns:1fr 1fr}.sms-message-preview{grid-column:1/-1}}@media(max-width:600px){.sms-message-compose{grid-template-columns:1fr}.sms-message-preview{grid-column:auto}}

.sms-provider-fields{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.sms-provider-fields small{display:block;margin-top:5px;color:var(--muted);font-size:.65rem}
.revenue-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.revenue-controls{align-items:stretch}.revenue-balance-card dl{display:grid;gap:8px;margin:12px 0 0}.revenue-balance-card dl div{display:flex;justify-content:space-between;gap:15px;padding:9px 0;border-bottom:1px solid var(--line)}.revenue-balance-card dt{color:var(--muted);font-size:.76rem}.revenue-balance-card dd{margin:0;font-weight:800}.revenue-balance-card .total{border:0;color:var(--teal-dark);font-size:1.05rem}.withdrawal-callout{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,rgba(255,253,248,.92),rgba(223,242,236,.78))}.withdrawal-callout h2{margin:5px 0}.withdrawal-callout p{margin:0;color:var(--muted);font-size:.76rem}.withdrawal-fixed-amount{display:grid;gap:4px;margin:12px 0;padding:16px;border:1px solid rgba(8,127,117,.18);border-radius:13px;background:rgba(8,127,117,.07)}.withdrawal-fixed-amount span,.withdrawal-fixed-amount small{color:var(--muted);font-size:.72rem}.withdrawal-fixed-amount strong{font:700 2rem "Fraunces",serif;color:var(--teal-dark)}@media(max-width:760px){.revenue-stats{grid-template-columns:repeat(2,1fr)}.withdrawal-callout{align-items:flex-start;flex-direction:column}}@media(max-width:460px){.revenue-stats{grid-template-columns:1fr}}
.stat-link{text-decoration:none;color:var(--ink);cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.stat-link:hover{transform:translateY(-2px);border-color:rgba(8,127,117,.38);box-shadow:0 14px 32px rgba(16,42,43,.12)}.stat-link strong{font-size:1.15rem;color:var(--teal-dark)}
.validation-permissions{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(420px,1.3fr);gap:24px;align-items:end}.validation-permissions h2{margin:5px 0}.validation-permissions p{margin:0}.validation-search form{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}.validation-search .field{margin:0}.validation-result{margin-top:18px;align-items:stretch}.validation-result>.card{height:100%}.validation-facts{display:grid;margin-top:12px}.validation-facts>div{display:grid;grid-template-columns:minmax(125px,.65fr) 1.35fr;gap:14px;padding:9px 0;border-bottom:1px solid var(--line)}.validation-facts span{color:var(--muted);font-size:.72rem}.validation-facts strong{overflow-wrap:anywhere;font-size:.78rem}.validation-decision{display:flex;flex-direction:column;background:linear-gradient(145deg,rgba(255,253,248,.94),rgba(223,242,236,.8))}.validation-decision p{color:var(--muted);font-size:.8rem;line-height:1.55}.validation-decision form{margin-top:auto;padding-top:16px}.validation-decision .btn{width:100%}.automatic-payment-status{display:flex;gap:12px;align-items:flex-start;margin-top:14px;padding:13px;border:1px solid rgba(8,127,117,.22);border-radius:11px;background:rgba(8,127,117,.07)}.automatic-payment-status strong{font-size:.8rem}.automatic-payment-status p{margin:3px 0;color:var(--muted);font-size:.72rem}.automatic-payment-status small{color:var(--teal-dark);font-size:.68rem}.payment-status-spinner{flex:0 0 auto;width:22px;height:22px;border:3px solid rgba(8,127,117,.2);border-top-color:var(--teal);border-radius:50%;animation:payment-spin .8s linear infinite}@keyframes payment-spin{to{transform:rotate(360deg)}}@media(max-width:800px){.validation-permissions,.validation-search form{grid-template-columns:1fr}.validation-facts>div{grid-template-columns:1fr;gap:3px}}
.notification-bell{position:relative;display:grid!important;place-items:center;width:34px;height:34px;padding:0!important;border:1px solid rgba(8,127,117,.18);border-radius:50%!important;background:rgba(8,127,117,.08);font-size:1rem!important}.notification-bell strong{position:absolute;right:-6px;top:-7px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border:2px solid var(--card);border-radius:99px;background:var(--coral);color:#fff;font:800 .58rem "DM Sans"}.unresolved-total{display:grid;justify-items:end}.unresolved-total strong{font:700 2rem "Fraunces",serif;color:var(--coral)}.unresolved-total span{color:var(--muted);font-size:.7rem}.unresolved-table small{display:block;margin-top:3px;color:var(--muted);font-size:.65rem}.reference-value{display:block;max-width:180px;overflow-wrap:anywhere;font-size:.72rem}@media(max-width:560px){.unresolved-total{justify-items:start;margin-top:12px}.notification-bell{width:31px;height:31px}}

/* Premium glass interface - 2026 */
:root{--ink:#0b292b;--ink-soft:#173f41;--muted:#627778;--paper:#f1f4ee;--card:rgba(255,255,252,.72);--teal:#087f75;--teal-dark:#075c57;--teal-bright:#18a496;--coral:#eb674b;--gold:#d8aa3f;--line:rgba(19,69,70,.14);--glass-border:rgba(255,255,255,.72);--glass-shadow:0 18px 50px rgba(20,55,53,.11);--glass-shadow-hover:0 24px 62px rgba(20,55,53,.16)}
html{background:#edf2ec}body{position:relative;background:radial-gradient(circle at 7% 2%,rgba(23,164,150,.16),transparent 26rem),radial-gradient(circle at 94% 5%,rgba(216,170,63,.2),transparent 28rem),linear-gradient(145deg,#f8f8f2 0%,#edf4ef 46%,#f7f0e4 100%);background-attachment:fixed}body:before,body:after{content:"";position:fixed;z-index:-1;border-radius:50%;filter:blur(2px);pointer-events:none}body:before{width:330px;height:330px;left:-150px;bottom:8%;background:linear-gradient(145deg,rgba(8,127,117,.12),rgba(255,255,255,.02));box-shadow:0 0 0 50px rgba(8,127,117,.025)}body:after{width:260px;height:260px;right:-95px;top:28%;border:1px solid rgba(216,170,63,.22);box-shadow:0 0 0 42px rgba(216,170,63,.04),0 0 0 84px rgba(216,170,63,.025)}
.topbar{min-height:64px;padding:9px clamp(18px,4vw,54px);background:rgba(250,252,247,.76);border-bottom:1px solid rgba(255,255,255,.8);box-shadow:0 8px 34px rgba(19,54,52,.07);backdrop-filter:blur(24px) saturate(145%);-webkit-backdrop-filter:blur(24px) saturate(145%)}.brand span{background:linear-gradient(145deg,var(--teal-bright),var(--teal-dark));box-shadow:0 8px 22px rgba(8,127,117,.23)}.brand strong{letter-spacing:-.025em}.topbar nav a{transition:background .18s ease,color .18s ease,transform .18s ease}.topbar nav a:hover{background:rgba(8,127,117,.09);transform:translateY(-1px)}
.shell{width:min(1220px,calc(100% - 30px));margin:28px auto 58px}.card,.auth-card,.stat,.table-wrap,.reset-zone,.sms-control-strip,.sms-wallet>div{border:1px solid var(--glass-border);background:linear-gradient(145deg,rgba(255,255,252,.84),rgba(250,252,247,.62));box-shadow:var(--glass-shadow);backdrop-filter:blur(22px) saturate(130%);-webkit-backdrop-filter:blur(22px) saturate(130%)}.card,.auth-card,.stat{position:relative;overflow:hidden}.card:before,.auth-card:before,.stat:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.95),transparent);pointer-events:none}.card{border-radius:17px}.auth-card{border-radius:22px}.stat{border-radius:16px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.stat:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.94);box-shadow:var(--glass-shadow-hover)}
.page-title{padding:4px 2px;margin-bottom:20px}.page-title h1{color:var(--ink);letter-spacing:-.035em}.page-title p{max-width:760px;line-height:1.55}.eyebrow{color:var(--teal);font-weight:800}.stats{gap:14px}.stat{min-height:112px;padding:20px 22px}.stat span{color:#637879;font-weight:600}.stat strong{margin-top:5px;color:var(--ink);letter-spacing:-.03em}.stat-link{background:linear-gradient(145deg,rgba(9,118,109,.92),rgba(15,66,68,.94));border-color:rgba(255,255,255,.35)}.stat-link span,.stat-link strong{color:#fff}.stat-link:after{content:"↗";position:absolute;right:18px;top:16px;color:rgba(255,255,255,.68);font-size:1.1rem}.stat-link:hover{border-color:rgba(255,255,255,.72);box-shadow:0 22px 52px rgba(8,81,76,.24)}
.dashboard-glass{border:1px solid rgba(255,255,255,.52);box-shadow:0 24px 70px rgba(16,55,53,.16);backdrop-filter:blur(24px) saturate(140%);-webkit-backdrop-filter:blur(24px) saturate(140%)}.dashboard-super{background:radial-gradient(circle at 88% 0,rgba(216,170,63,.24),transparent 28%),linear-gradient(125deg,rgba(9,54,58,.97),rgba(7,123,115,.82))}.dashboard-officer{background:radial-gradient(circle at 90% 0,rgba(216,170,63,.16),transparent 27%),linear-gradient(135deg,rgba(255,255,252,.84),rgba(221,242,235,.72))}.dashboard-action{min-height:108px;padding:17px 19px;border:1px solid rgba(255,255,255,.78);border-radius:17px;background:linear-gradient(145deg,rgba(255,255,252,.81),rgba(249,251,246,.58));box-shadow:0 14px 38px rgba(20,55,53,.09);backdrop-filter:blur(20px);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.dashboard-action:hover{transform:translateY(-4px);border-color:rgba(8,127,117,.28);box-shadow:0 22px 48px rgba(20,55,53,.15)}.dashboard-action span{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:9px;background:rgba(8,127,117,.1)}.dashboard-action strong{letter-spacing:-.02em}
.btn{min-height:39px;padding:10px 16px;border:1px solid rgba(255,255,255,.24);border-radius:10px;background:linear-gradient(145deg,var(--teal-bright),var(--teal-dark));box-shadow:0 8px 20px rgba(8,100,94,.16);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.btn:hover{transform:translateY(-2px);background:linear-gradient(145deg,#14968b,#064f4c);box-shadow:0 12px 26px rgba(8,100,94,.24)}.btn.coral{background:linear-gradient(145deg,#f17a59,#d94e36);box-shadow:0 8px 22px rgba(217,78,54,.18)}.btn.secondary{background:rgba(255,255,255,.52);border:1px solid rgba(12,63,64,.24);box-shadow:none;backdrop-filter:blur(12px)}.btn.secondary:hover{background:rgba(255,255,255,.82);border-color:var(--teal);color:var(--teal-dark)}
.field label{color:#254d4e;letter-spacing:.01em}.field input,.field select,.field textarea{border:1px solid rgba(22,71,72,.2);border-radius:10px;background:rgba(255,255,255,.67);box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 5px 14px rgba(20,55,53,.035);backdrop-filter:blur(10px);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.field input:hover,.field select:hover,.field textarea:hover{border-color:rgba(8,127,117,.36);background:rgba(255,255,255,.82)}.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--teal);background:#fff;box-shadow:0 0 0 4px rgba(8,127,117,.11),0 8px 22px rgba(20,55,53,.06)}
.table-wrap{overflow:auto;border-radius:15px}.table-wrap table{background:transparent}th{padding:12px 14px;background:rgba(12,74,73,.07);color:#476465;border-bottom-color:rgba(19,69,70,.13)}td{padding:12px 14px;border-bottom-color:rgba(19,69,70,.1)}tbody tr{transition:background .16s ease}tbody tr:hover{background:rgba(255,255,255,.5)}.badge{border:1px solid rgba(8,127,117,.1);background:rgba(218,242,235,.8);box-shadow:inset 0 1px 0 rgba(255,255,255,.72)}.table-tools{padding:4px 1px}.table-tools input[type=search]{border-color:rgba(22,71,72,.18);background-color:rgba(255,255,255,.7);box-shadow:0 7px 20px rgba(20,55,53,.05)}.pager a,.pager button{border-color:rgba(22,71,72,.16);background:rgba(255,255,255,.68);border-radius:8px}.pager a:hover{border-color:var(--teal);background:#fff}
.app-modal__backdrop,.transcript-modal-backdrop{background:rgba(5,30,31,.65);backdrop-filter:blur(14px) saturate(120%)}.app-modal__card{border:1px solid rgba(255,255,255,.82);border-radius:24px;background:linear-gradient(145deg,rgba(255,255,252,.92),rgba(242,248,243,.82));box-shadow:0 34px 100px rgba(5,35,35,.34);backdrop-filter:blur(30px) saturate(140%)}.app-modal__close,.transcript-modal-close{box-shadow:0 8px 22px rgba(12,52,53,.2)}
.toast{border-color:rgba(255,255,255,.78);background:rgba(255,255,252,.9);box-shadow:0 22px 60px rgba(11,49,48,.22);backdrop-filter:blur(22px)}.alert{border:1px solid rgba(8,127,117,.15);border-left:4px solid var(--teal);background:rgba(226,245,239,.78);box-shadow:0 8px 24px rgba(20,55,53,.06);backdrop-filter:blur(14px)}
.payment-card,.transcript-access-card,.withdrawal-callout,.validation-decision{border:1px solid rgba(255,255,255,.62);box-shadow:0 24px 62px rgba(15,53,52,.16)}.payment-card{background:linear-gradient(145deg,rgba(255,255,252,.9),rgba(245,248,242,.7))}.transcript-access-card{background:radial-gradient(circle at 94% 90%,rgba(216,170,63,.18),transparent 35%),linear-gradient(145deg,#0d3032,#145052)}.automatic-payment-status{box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 10px 28px rgba(8,127,117,.08)}.notification-bell{background:rgba(255,255,255,.62);border-color:rgba(8,127,117,.2);box-shadow:0 7px 18px rgba(20,55,53,.08)}
footer{margin-top:20px;background:rgba(249,252,247,.48);backdrop-filter:blur(14px)}
@media(max-width:850px){.shell{width:min(100% - 22px,1220px)}.topbar{padding:8px 12px}.topbar nav{max-width:72%;justify-content:flex-end}.dashboard-glass{border-radius:18px}.stats{gap:10px}.stat{min-height:98px;padding:16px}.dashboard-actions{gap:10px}.dashboard-action{min-height:94px}}
@media(max-width:560px){body:before,body:after{opacity:.55}.shell{width:calc(100% - 18px);margin-top:15px}.topbar{position:sticky}.topbar nav{max-width:78%;gap:2px}.topbar nav a{padding:6px 5px;font-size:.66rem}.card,.auth-card{border-radius:15px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{min-height:91px;padding:14px}.stat strong{font-size:1.28rem}.dashboard-action{border-radius:14px}.app-modal__card{border-radius:18px}.page-title{margin-bottom:14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
/* Premium action hierarchy */
.btn,.sample-link,.pager a,.pager button,.transcript-load{position:relative;isolation:isolate;overflow:hidden;letter-spacing:.005em}.btn:before,.transcript-load:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.2) 48%,transparent 72%);transform:translateX(-125%);transition:transform .5s ease}.btn:hover:before,.transcript-load:hover:before{transform:translateX(125%)}.btn:active,.dashboard-action:active,.stat-link:active{transform:translateY(0) scale(.985)}.btn:focus-visible,.sample-link:focus-visible,.pager a:focus-visible,.pager button:focus-visible,.dashboard-action:focus-visible,.stat-link:focus-visible,.topbar nav a:focus-visible{outline:3px solid rgba(216,170,63,.55);outline-offset:3px}.btn.small{min-height:32px;padding:7px 11px;border-radius:8px}.btn.danger{border-color:rgba(176,51,39,.28);background:rgba(255,247,244,.7);color:#a12e22;box-shadow:none}.btn.danger:hover{border-color:rgba(176,51,39,.5);background:#fff0ec;color:#8d261d;box-shadow:0 9px 22px rgba(176,51,39,.12)}.btn.danger-solid{border-color:transparent;background:linear-gradient(145deg,#cb4c3c,#93291f);box-shadow:0 9px 22px rgba(147,41,31,.2)}.btn[disabled],.btn[aria-disabled=true],button:disabled{opacity:.48;transform:none!important;box-shadow:none!important;cursor:not-allowed}.actions,.table-actions,.modal-launchers,.pdf-modal-actions,.transcript-actions,.student-payment-actions{gap:9px}.table-actions .btn{white-space:nowrap}.sample-link{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 11px;border:1px solid rgba(8,127,117,.15);border-radius:9px;background:rgba(255,255,255,.48);color:var(--teal-dark);font-weight:750;text-decoration:none;transition:background .18s ease,border-color .18s ease,transform .18s ease}.sample-link:hover{transform:translateY(-1px);border-color:rgba(8,127,117,.35);background:rgba(255,255,255,.86)}.payment-submit,.checkout-form .btn{min-height:45px;font-size:.86rem}.app-modal__card form>.btn:last-child{margin-top:5px}.reset-options .btn{width:100%}.notification-bell:hover{transform:translateY(-1px) rotate(-5deg)!important;background:rgba(255,255,255,.9)!important}.pager{gap:5px}.pager a,.pager button{min-height:32px;padding:7px 10px;transition:transform .16s ease,border-color .16s ease,background .16s ease}.pager a:hover{transform:translateY(-1px)}
@media(max-width:560px){.actions:not(.student-payment-actions),.modal-launchers,.pdf-modal-actions{display:grid;grid-template-columns:1fr}.actions .btn,.modal-launchers .btn,.pdf-modal-actions .btn{width:100%}.table-actions{display:flex}.table-actions .btn{width:auto}.student-payment-actions .btn{width:100%}}

/* Signature visual direction - WAEC Transcript */
:root{--night:#082d31;--night-2:#0c4548;--sea:#087f75;--mint:#dff3ec;--sun:#e0ae3e;--ember:#ee6a4b;--ivory:#faf8f1;--white-glass:rgba(255,255,252,.74);--deep-shadow:0 28px 80px rgba(7,43,43,.14)}
body{font-feature-settings:"kern" 1,"liga" 1;color:#0c3032}body:before{width:480px;height:480px;left:-270px;bottom:-80px;background:conic-gradient(from 40deg,rgba(8,127,117,.15),rgba(255,255,255,.01),rgba(224,174,62,.09),rgba(8,127,117,.15));filter:blur(18px)}body:after{width:360px;height:360px;right:-175px;top:22%;border:0;background:repeating-radial-gradient(circle,rgba(8,127,117,.055) 0 1px,transparent 1px 18px);box-shadow:none}
.topbar{margin:10px clamp(10px,2vw,24px) 0;min-height:58px;border:1px solid rgba(255,255,255,.82);border-radius:17px;background:rgba(253,254,249,.74);box-shadow:0 14px 44px rgba(8,45,45,.09)}.brand span{width:38px;height:38px;border-radius:12px 5px 12px 5px;background:linear-gradient(155deg,#17a99a 0%,#08665f 72%);box-shadow:inset 0 1px 0 rgba(255,255,255,.36),0 9px 20px rgba(8,103,96,.22)}.brand strong{font-size:1.12rem}.topbar nav{gap:3px;padding:3px;border-radius:12px}.topbar nav a{position:relative;padding:8px 10px;color:#315658;font-size:.75rem}.topbar nav a:not(.notification-bell):after{content:"";position:absolute;left:9px;right:9px;bottom:3px;height:2px;border-radius:99px;background:var(--sea);transform:scaleX(0);transition:transform .2s ease}.topbar nav a:hover:after{transform:scaleX(1)}
.shell{margin-top:32px}.hero{min-height:72vh}.hero h1{max-width:900px;font-size:clamp(3.7rem,7.6vw,7rem);letter-spacing:-.055em}.hero p{max-width:650px;color:#506e70}.hero-panel{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.2);background:radial-gradient(circle at 100% 0,rgba(224,174,62,.22),transparent 35%),linear-gradient(145deg,#092e32,#0b4a4c);box-shadow:0 35px 90px rgba(6,39,40,.25)}.hero-panel:after{content:"";position:absolute;width:210px;height:210px;right:-100px;bottom:-100px;border:1px solid rgba(224,174,62,.3);border-radius:50%;box-shadow:0 0 0 28px rgba(224,174,62,.06),0 0 0 56px rgba(224,174,62,.035)}
.dashboard-glass{min-height:190px;padding:30px 34px;border-radius:26px}.dashboard-glass:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.08),transparent 36%);pointer-events:none}.dashboard-glass h1{font-size:clamp(2rem,3.6vw,3.3rem);letter-spacing:-.045em}.dashboard-super:after,.dashboard-officer:after{content:"";position:absolute;width:310px;height:310px;right:-120px;bottom:-190px;border:1px solid rgba(255,255,255,.14);border-radius:50%;box-shadow:0 0 0 46px rgba(255,255,255,.035),0 0 0 92px rgba(255,255,255,.02)}.dashboard-role{position:relative;z-index:1;min-width:205px;padding:16px 18px;border-radius:17px}.dashboard-super .dashboard-role{background:rgba(255,255,255,.11)}.dashboard-officer .dashboard-role{border-color:rgba(8,127,117,.15);background:rgba(255,255,255,.4)}
.stats{margin:18px 0 20px}.stat{display:flex;min-height:122px;flex-direction:column;justify-content:center;padding:21px 23px}.stat span{font-size:.72rem;text-transform:uppercase;letter-spacing:.09em}.stat strong{font-size:1.85rem}.stat:nth-child(1):not(.stat-link){border-top:3px solid rgba(8,127,117,.72)}.stat:nth-child(2){border-top:3px solid rgba(224,174,62,.74)}.stat:nth-child(3){border-top:3px solid rgba(238,106,75,.72)}.stat:nth-child(4):not(.stat-link){border-top:3px solid rgba(14,76,79,.7)}.stat-link{justify-content:center;border-top:0;background:radial-gradient(circle at 100% 0,rgba(224,174,62,.25),transparent 38%),linear-gradient(145deg,#0c4b4d,#08776f)}.stat-link strong{font:700 1.28rem "Fraunces",serif}
.dashboard-actions{gap:15px}.dashboard-action{position:relative;min-height:126px;padding:22px 23px;overflow:hidden}.dashboard-action:after{content:"";position:absolute;width:95px;height:95px;right:-50px;bottom:-55px;border:1px solid rgba(8,127,117,.14);border-radius:50%;box-shadow:0 0 0 17px rgba(8,127,117,.025)}.dashboard-action span{width:34px;height:34px;border-radius:11px;background:linear-gradient(145deg,rgba(8,127,117,.15),rgba(8,127,117,.06));color:#06746c;font-size:.65rem}.dashboard-action strong{font-size:1.18rem}.dashboard-action:hover span{background:var(--sea);color:#fff;transform:rotate(-5deg)}.dashboard-action span{transition:background .2s ease,color .2s ease,transform .2s ease}
.card{padding:21px 22px}.card h2{font-size:1.25rem;letter-spacing:-.025em}.card h3{letter-spacing:-.02em}.grid{gap:17px}.auth-wrap{min-height:72vh}.auth-card{width:min(470px,100%);padding:34px 36px}.auth-card:after{content:"";position:absolute;width:145px;height:145px;right:-80px;top:-85px;border:1px solid rgba(8,127,117,.14);border-radius:50%;box-shadow:0 0 0 25px rgba(8,127,117,.025)}.auth-card h1{font-size:2.55rem;letter-spacing:-.045em}
.field{margin:13px 0}.field label{margin-bottom:7px;font-size:.71rem;text-transform:uppercase;letter-spacing:.06em}.field input,.field select,.field textarea{min-height:43px;padding:10px 12px}.field textarea{min-height:auto}.btn{min-height:42px;padding:10px 17px;border-radius:11px;font-size:.79rem}.btn.small{min-height:34px}.btn.coral{background:linear-gradient(145deg,#f17a59,#d94a34)}
.table-wrap{border:1px solid rgba(255,255,255,.83);box-shadow:0 19px 55px rgba(8,45,45,.1)}th{padding:13px 15px;background:linear-gradient(180deg,rgba(8,92,87,.095),rgba(8,92,87,.045));color:#3f6162;font-size:.64rem}td{padding:13px 15px}.table-wrap tbody tr:nth-child(even){background:rgba(255,255,255,.22)}.table-wrap tbody tr:hover{background:rgba(218,242,235,.38)}.badge{padding:5px 9px;text-transform:uppercase;letter-spacing:.045em}.table-tools input[type=search]{min-height:40px;border-radius:11px}.pager a,.pager button{min-width:36px;min-height:34px}
.app-modal__card{padding:28px;border-radius:28px}.app-modal__head{padding-bottom:14px;border-bottom:1px solid rgba(16,68,69,.1)}.app-modal__close{width:39px;height:39px;background:linear-gradient(145deg,#155153,#092f32)}.toast{border-radius:15px}.toast-icon{box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.validation-search,.validation-permissions{border-left:4px solid rgba(8,127,117,.72)}.unresolved-total{padding:10px 14px;border:1px solid rgba(238,106,75,.16);border-radius:13px;background:rgba(255,255,255,.45)}.notification-bell strong{box-shadow:0 5px 13px rgba(197,66,45,.25)}
.payment-shell{gap:38px}.payment-intro h1{font-size:clamp(2.8rem,5vw,4.8rem);letter-spacing:-.055em}.payment-flow span{background:rgba(255,255,255,.5);backdrop-filter:blur(10px)}.payment-card{padding:27px;border-radius:21px}.payment-amount strong{font-size:2.6rem}.transcript-access-card{border-radius:18px}.document-mark{border-radius:7px 15px 7px 7px}.withdrawal-callout{padding:23px 25px;border-left:4px solid var(--sun)}
@media(max-width:850px){.topbar{margin:7px 7px 0;border-radius:14px}.dashboard-glass{min-height:0;padding:24px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{min-height:105px}.dashboard-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-shell{gap:18px}}
@media(max-width:560px){.shell{margin-top:20px}.topbar nav{overflow-x:auto;justify-content:flex-start;scrollbar-width:none}.topbar nav::-webkit-scrollbar{display:none}.topbar nav a{flex:0 0 auto}.dashboard-glass{padding:21px;border-radius:20px}.dashboard-glass h1{font-size:2rem}.dashboard-role{min-width:0}.stat{min-height:94px;padding:15px}.stat span{font-size:.62rem}.stat strong{font-size:1.35rem}.dashboard-actions{grid-template-columns:1fr}.dashboard-action{min-height:96px}.auth-card{padding:25px 22px}.auth-card h1{font-size:2.1rem}.app-modal__card{padding:21px;border-radius:20px}.hero h1{font-size:3.35rem}.hero-panel{border-radius:8px 25px}.table-wrap{border-radius:13px}}
/* Compact professional dashboard welcome */
.dashboard-glass{min-height:154px;padding:24px 28px}.dashboard-glass h1{max-width:780px;margin:5px 0 7px;font-size:clamp(1.65rem,2.65vw,2.55rem);line-height:1.06;letter-spacing:-.038em}.dashboard-glass p{font-size:.8rem;line-height:1.42}.dashboard-glass .eyebrow{font-size:.64rem}.dashboard-role{min-width:190px;padding:13px 15px}.dashboard-role span{font-size:.61rem}.dashboard-role strong{font-size:.82rem;line-height:1.3}@media(max-width:850px){.dashboard-glass{min-height:0;padding:21px 23px}.dashboard-glass h1{font-size:clamp(1.55rem,4vw,2.2rem)}}@media(max-width:560px){.dashboard-glass{padding:18px}.dashboard-glass h1{font-size:1.65rem;line-height:1.08}.dashboard-glass p{font-size:.75rem}.dashboard-role{padding:11px 13px}}
/* Compact typography across every portal and dashboard */
.page-title{margin-bottom:17px}.page-title h1{max-width:880px;margin:5px 0 3px;font-size:clamp(1.55rem,2.45vw,2.2rem);line-height:1.08;letter-spacing:-.035em}.page-title p{margin:4px 0 0;font-size:.77rem;line-height:1.45}.page-title .eyebrow{font-size:.62rem}.dashboard-super h1,.dashboard-officer h1{font-size:clamp(1.65rem,2.65vw,2.55rem)}.payment-intro h1{font-size:clamp(2rem,3.5vw,3.15rem);line-height:1.04}.auth-card h1{font-size:clamp(1.85rem,3vw,2.3rem);line-height:1.06}.transcript-access-card h2,.validation-decision h2,.withdrawal-callout h2{font-size:1.22rem}.card h2{font-size:1.12rem}.card h3{font-size:.96rem}@media(max-width:560px){.page-title h1{font-size:1.55rem}.page-title p{font-size:.72rem}.dashboard-super h1,.dashboard-officer h1{font-size:1.6rem}.payment-intro h1{font-size:1.95rem}.auth-card h1{font-size:1.85rem}}

/* Shared modal safety: overlays must never inherit table clipping or glass transforms. */
body.modal-open{overflow:hidden}
.app-modal{position:fixed!important;inset:0!important;z-index:99999!important;display:flex;align-items:center;justify-content:center;min-width:100vw;min-height:100dvh;padding:16px;overflow-y:auto;overscroll-behavior:contain;isolation:isolate}
.app-modal__backdrop{position:fixed!important;inset:0!important}
.app-modal__card{z-index:1;width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);margin:auto;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.app-modal__card--wide{width:min(1120px,calc(100vw - 32px))}
.temp-password-field>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:stretch}
.temp-password-field input{min-width:0;font-family:"Courier New",monospace;font-weight:700;letter-spacing:.06em}
.temp-password-field .btn{white-space:nowrap}
@media(max-width:560px){.app-modal{align-items:flex-start;padding:10px}.app-modal__card{width:100%;max-height:calc(100dvh - 20px);padding:20px;margin:auto}.temp-password-field>div{grid-template-columns:1fr}.temp-password-field .btn{width:100%}}
/* Roster preparation */
.roster-permission,.roster-batch-strip,.roster-confirm{display:flex;align-items:center;justify-content:space-between;gap:24px}.roster-permission form{display:flex;align-items:center;gap:18px}.roster-batch-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.roster-batch-links a{display:grid;gap:2px;min-width:160px;padding:10px 13px;border:1px solid rgba(13,82,79,.13);border-radius:12px;background:rgba(255,255,255,.48);color:var(--ink);text-decoration:none}.roster-batch-links a.active{border-color:rgba(8,127,117,.5);background:rgba(224,246,239,.78);box-shadow:0 8px 24px rgba(8,90,85,.1)}.roster-batch-links span{font-size:.72rem;color:var(--muted);text-transform:capitalize}.roster-start-grid,.roster-upload-grid{align-items:stretch}.roster-start-grid>*{min-height:210px}.roster-security-note{background:linear-gradient(145deg,rgba(8,74,71,.94),rgba(14,118,105,.86));color:#fff}.roster-security-note .eyebrow,.roster-security-note p{color:rgba(255,255,255,.78)}.roster-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.roster-stats .stat.success{border-color:rgba(29,139,99,.3);background:linear-gradient(145deg,rgba(240,255,248,.9),rgba(224,247,237,.75))}.roster-stats .stat.warning{border-color:rgba(211,143,42,.3);background:linear-gradient(145deg,rgba(255,251,237,.94),rgba(255,242,213,.75))}.roster-confirm .actions{display:flex;align-items:center;flex-wrap:wrap}.roster-status-ready{background:#dff5e9;color:#126541}.roster-status-missing_phone,.roster-status-missing_fields{background:#fff0d6;color:#8a5310}.roster-status-ambiguous{background:#fde3df;color:#9a3025}@media(max-width:800px){.roster-permission,.roster-batch-strip,.roster-confirm{align-items:stretch;flex-direction:column}.roster-permission form{align-items:stretch;flex-direction:column}.roster-batch-links{justify-content:flex-start}.roster-batch-links a{flex:1 1 170px}.roster-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.roster-file-drop{position:relative;display:grid;place-items:center;gap:5px;min-height:150px;padding:22px;border:1.5px dashed rgba(8,127,117,.38);border-radius:16px;background:linear-gradient(145deg,rgba(248,255,252,.8),rgba(231,247,241,.62));text-align:center;cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease}.roster-file-drop:hover,.roster-file-drop:focus-visible,.roster-file-drop.is-dragging{border-color:#087f75;background:linear-gradient(145deg,rgba(241,255,250,.98),rgba(213,243,233,.88));box-shadow:0 12px 30px rgba(8,99,92,.13);transform:translateY(-1px);outline:none}.roster-file-drop.has-files{border-style:solid;border-color:rgba(8,127,117,.55)}.roster-file-drop input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.roster-file-drop strong,.roster-file-drop small,.roster-drop-icon{pointer-events:none}.roster-file-drop small{max-width:420px;color:var(--muted);overflow-wrap:anywhere}.roster-drop-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#0a9387,#087268);color:#fff;font-size:1.45rem;box-shadow:0 9px 22px rgba(8,114,104,.22)}
.roster-progress-modal .app-modal__card--wide{height:auto;max-height:calc(100dvh - 34px)}.roster-upload-meter{height:9px;margin:2px 0 16px;border-radius:999px;background:rgba(10,76,73,.1);overflow:hidden}.roster-upload-meter span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0a9387,#e0af3f);transition:width .28s ease}.roster-upload-results{max-height:52vh;overflow:auto}.roster-upload-results table{min-width:780px}.roster-file-status{font-weight:800}.roster-file-status.waiting{color:#718081}.roster-file-status.processing{color:#a66b0d}.roster-file-status.completed{color:#14704d}.roster-file-status.failed{color:#a13025}.roster-upload-results tr:has(.roster-file-status.failed){background:rgba(255,236,232,.66)}.roster-progress-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.roster-progress-actions button:disabled,.roster-progress-modal .app-modal__close:disabled{opacity:.35;cursor:not-allowed}
.roster-contact-stat{height:auto;min-height:118px}.roster-stat-breakdown{display:flex;align-items:center;flex-wrap:wrap;gap:7px 14px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(15,76,74,.1)}.roster-stat-breakdown span{display:inline-flex;align-items:baseline;gap:4px;font-size:.69rem;color:var(--muted);text-transform:none;letter-spacing:0}.roster-stat-breakdown b{font-size:.88rem;color:var(--teal-dark)}
.roster-contact-count{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px}.roster-unmatched-count{color:#c9362b!important;font-size:.82rem!important;font-weight:800;letter-spacing:0!important;text-transform:none!important}
.roster-contact-review{margin:14px 0;padding:14px;border:1px solid rgba(12,116,105,.18);border-radius:18px;background:rgba(236,253,250,.58)}.roster-contact-options{display:grid;gap:8px;margin:12px 0}.roster-contact-option{display:flex;gap:10px;align-items:flex-start;padding:11px;border:1px solid rgba(15,76,74,.14);border-radius:14px;background:rgba(255,255,255,.78);cursor:pointer;transition:.18s ease}.roster-contact-option:hover{border-color:var(--teal);transform:translateY(-1px)}.roster-contact-option:has(input:checked){border-color:var(--teal);box-shadow:0 0 0 3px rgba(12,116,105,.1)}.roster-contact-option input{margin-top:4px}.roster-contact-option span{display:grid;gap:2px}.roster-contact-option strong{color:var(--ink);font-size:.92rem}.roster-contact-option small{color:var(--muted);font-size:.78rem}.roster-contact-option em{color:var(--teal-dark);font-size:.7rem;font-style:normal}.roster-review-divider{display:flex;align-items:center;gap:10px;margin:15px 0 11px;color:var(--muted);font-size:.72rem}.roster-review-divider:before,.roster-review-divider:after{content:"";height:1px;flex:1;background:rgba(15,76,74,.14)}

.roster-review-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:14px 0;padding:12px 14px;border:1px solid rgba(15,76,74,.12);border-radius:16px;background:rgba(255,255,255,.56)}.roster-review-actions div{display:grid;gap:2px}.roster-review-actions strong{font-size:.88rem;color:var(--ink)}.roster-review-actions span{font-size:.74rem;color:var(--muted)}@media(max-width:700px){.roster-review-actions{align-items:stretch;flex-direction:column}.roster-review-actions .btn{width:100%}}
.roster-confirm>.actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:nowrap;gap:9px}.roster-confirm>.actions form{margin:0;flex:0 0 auto}.roster-confirm>.actions .btn{min-height:46px;padding:11px 16px;font-size:.82rem;white-space:nowrap}@media(max-width:980px){.roster-confirm>.actions{flex-wrap:wrap;justify-content:flex-start}}@media(max-width:620px){.roster-confirm>.actions,.roster-confirm>.actions form,.roster-confirm>.actions .btn{width:100%}}
.pdf-processing-modal .app-modal__card{max-width:620px}.pdf-process-state{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid rgba(15,76,74,.12);border-radius:16px;background:rgba(255,255,255,.62)}.pdf-process-state div{display:grid;gap:3px}.pdf-process-state strong{text-transform:capitalize}.pdf-process-state p{margin:0;color:var(--muted);font-size:.82rem}.pdf-process-spinner{width:34px;height:34px;flex:0 0 auto;border:3px solid rgba(8,127,117,.18);border-top-color:#087f75;border-radius:50%;animation:pdf-spin .9s linear infinite}.pdf-process-spinner.error{animation:none;border-color:#d34b3f;position:relative}.pdf-process-spinner.error:after{content:'!';position:absolute;inset:0;display:grid;place-items:center;color:#b52e24;font-weight:900}.pdf-process-meter{height:11px;margin:18px 0 7px;border-radius:999px;background:rgba(9,86,81,.1);overflow:hidden}.pdf-process-meter span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#087f75,#e5b642);transition:width .35s ease}.pdf-process-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:.76rem;font-weight:700}.pdf-process-notice{margin:15px 0;padding:10px 12px;border-radius:12px;background:rgba(255,245,214,.72);color:#765014;font-size:.78rem}.pdf-processing-modal .actions{justify-content:flex-end}@keyframes pdf-spin{to{transform:rotate(360deg)}}
.pdf-process-simple{display:flex;align-items:center;justify-content:center;padding:8px 0 2px}.pdf-process-simple strong{font-family:'Fraunces',serif;font-size:1.35rem;color:var(--ink)}.pdf-processing-modal .pdf-process-meter{margin:14px 0 8px}
.pdf-process-simple span{font-size:.92rem;font-weight:800;color:var(--teal-dark);font-variant-numeric:tabular-nums}
/* Searchable dropdowns */
.searchable-select{position:relative;width:100%}
.searchable-select>select{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.searchable-select-trigger{position:relative;width:100%;min-height:44px;padding:10px 42px 10px 13px;border:1px solid rgba(19,67,66,.2);border-radius:12px;background:rgba(255,255,255,.76);color:#123334;font:600 14px/1.3 "DM Sans",sans-serif;text-align:left;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.8);transition:border-color .18s,box-shadow .18s,background .18s}
.searchable-select-trigger:after{content:"";position:absolute;right:15px;top:50%;width:8px;height:8px;border-right:2px solid #356160;border-bottom:2px solid #356160;transform:translateY(-70%) rotate(45deg)}
.searchable-select-trigger:hover,.searchable-select-trigger:focus{border-color:#0d8b83;background:#fff;box-shadow:0 0 0 3px rgba(13,139,131,.12);outline:0}
.searchable-select-trigger.placeholder{color:#718180;font-weight:500}
.searchable-select-trigger:disabled{opacity:.55;cursor:not-allowed}
.searchable-select-menu{position:absolute;z-index:1200;top:calc(100% + 7px);left:0;right:0;padding:9px;border:1px solid rgba(19,67,66,.18);border-radius:14px;background:rgba(250,252,249,.97);box-shadow:0 18px 45px rgba(16,54,53,.2);backdrop-filter:blur(18px)}
.searchable-select-menu[hidden]{display:none!important}
.searchable-select-search{width:100%;min-height:40px;margin:0 0 8px;padding:9px 11px;border:1px solid rgba(19,67,66,.18);border-radius:9px;background:#fff;font:500 14px "DM Sans",sans-serif;outline:0}
.searchable-select-search:focus{border-color:#0d8b83;box-shadow:0 0 0 3px rgba(13,139,131,.1)}
.searchable-select-options{max-height:240px;overflow:auto;display:grid;gap:4px}
.searchable-select-option{width:100%;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:#173637;font:600 13px/1.35 "DM Sans",sans-serif;text-align:left;cursor:pointer}
.searchable-select-option:hover,.searchable-select-option:focus{background:#e6f3ef;outline:0}
.searchable-select-option.selected{background:#0d817a;color:#fff}
.searchable-select-option:disabled{opacity:.45;cursor:not-allowed}

/* Searchable dropdown stacking safety */
.searchable-select:focus-within{z-index:1302}
.card:has(.searchable-select-menu:not([hidden])),
.auth-card:has(.searchable-select-menu:not([hidden])),
.table-tools:has(.searchable-select-menu:not([hidden])),
.app-modal__card:has(.searchable-select-menu:not([hidden])),
.table-wrap:has(.searchable-select-menu:not([hidden])){
  position:relative!important;
  z-index:1301!important;
  overflow:visible!important;
}
.field:has(.searchable-select-menu:not([hidden])),
.field-row:has(.searchable-select-menu:not([hidden])){
  position:relative;
  z-index:1302;
}

/* Roster upload validation modal */
.roster-error-modal .app-modal__card{width:min(590px,calc(100vw - 28px));padding:24px;background:linear-gradient(145deg,rgba(255,255,252,.96),rgba(244,249,246,.91));border-color:rgba(255,255,255,.9)}
.roster-error-modal .app-modal__head{margin-bottom:13px}
.roster-error-modal .app-modal__head h2{font-size:1.34rem}
.roster-error-summary{display:flex;align-items:flex-start;gap:12px;padding:13px 14px;border:1px solid rgba(177,48,38,.18);border-radius:14px;background:rgba(255,239,235,.72)}
.roster-error-summary p,.roster-error-guidance p{margin:3px 0 0;color:var(--muted);font-size:.76rem;line-height:1.45}
.roster-error-mark{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:linear-gradient(145deg,#d75a49,#a62f25);color:#fff;font-weight:900;box-shadow:0 8px 18px rgba(166,47,37,.2)}
.roster-error-list{display:grid;gap:8px;max-height:38vh;margin:14px 0;padding:0;overflow:auto;counter-reset:roster-errors;list-style:none}
.roster-error-list li{counter-increment:roster-errors;display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;padding:10px 11px;border:1px solid rgba(17,78,77,.11);border-radius:12px;background:rgba(255,255,255,.64);font-size:.77rem;line-height:1.48;color:#294647}
.roster-error-list li:before{content:counter(roster-errors);display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:rgba(9,126,117,.1);color:#087f75;font-size:.7rem;font-weight:900}
.roster-error-guidance{padding:11px 13px;border-left:3px solid #d8aa3f;border-radius:8px;background:rgba(255,248,222,.66)}
.roster-error-guidance strong{font-size:.74rem}
.roster-error-actions{justify-content:flex-end;margin-top:14px}
.roster-error-actions .btn{min-height:38px;padding:9px 15px;font-size:.76rem}
@media(max-width:560px){.roster-error-modal .app-modal__card{padding:18px}.roster-error-list{max-height:42vh}.roster-error-actions .btn{width:100%}}
/* Timed student editing */
.student-edit-access,.student-edit-control{display:flex;align-items:center;justify-content:space-between;gap:22px;border-left:4px solid #c79a32;background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(250,244,221,.68))}.student-edit-access.is-active{border-left-color:#07867b;background:linear-gradient(145deg,rgba(244,255,251,.9),rgba(218,244,235,.72))}.student-edit-access h2,.student-edit-control h2,.compact-title h2{margin:4px 0;font-size:1.16rem}.student-edit-access p,.student-edit-control p{margin:3px 0}.student-edit-control__actions form{display:flex;align-items:center;gap:9px;margin:0}.student-edit-control__actions select{min-width:170px;min-height:42px;padding:9px 12px;border:1px solid rgba(19,67,66,.2);border-radius:11px;background:rgba(255,255,255,.82)}.compact-title{margin-top:8px}.compact-title h2{font-family:'Fraunces',serif;color:var(--ink)}.badge.success{background:#dff5e9;color:#126541}.badge.danger{background:#fde3df;color:#9a3025}.btn.danger{background:linear-gradient(145deg,#c74b3d,#9f2e26);color:#fff}@media(max-width:720px){.student-edit-access,.student-edit-control{align-items:stretch;flex-direction:column}.student-edit-control__actions form{align-items:stretch;flex-direction:column}.student-edit-control__actions .btn,.student-edit-control__actions .searchable-select{width:100%}}

/* Upload version tabs */
.upload-version-tabs{display:flex;justify-content:flex-end;gap:8px;margin:0 0 10px}.upload-version-tabs .btn{min-width:130px}@media(max-width:560px){.upload-version-tabs{justify-content:stretch}.upload-version-tabs .btn{flex:1}}
.edit-countdown{display:inline-block;min-width:76px;color:#087f75;font-variant-numeric:tabular-nums;letter-spacing:.04em}

/* Admission year conflicts */
.confirmed-student-ref{display:block;margin-top:3px;color:var(--teal-dark);font-size:.72rem;letter-spacing:.025em}.conflict-button{margin-top:7px}.admission-conflict-list{display:grid;gap:10px;margin-top:14px}.admission-conflict-item{display:grid;grid-template-columns:minmax(150px,1fr) auto minmax(170px,1fr) auto;gap:12px;align-items:end;padding:13px;border:1px solid rgba(18,91,87,.14);border-radius:15px;background:rgba(255,255,255,.64)}.admission-conflict-item>div:first-child{display:grid;gap:2px}.admission-conflict-item small{color:var(--muted)}.conflict-years{display:flex;gap:7px}.conflict-years span{display:grid;padding:7px 9px;border-radius:10px;background:rgba(8,127,117,.08);font-size:.68rem}.conflict-years b{font-size:.88rem;color:var(--ink)}.admission-conflict-item .field{margin:0}@media(max-width:760px){.admission-conflict-item{grid-template-columns:1fr}.admission-conflict-item .btn{width:100%}}
