/* Strong, accessible JPRAXC typography hierarchy. */
:root{--brand:#700817;--brand-strong:#520a17;--brand-deep:#1b0409;--gold:#ffc35a;--gold-soft:#fff1d8;--canvas:#fbf5ee;--surface:#fff;--ink:#1d1116;--muted:#5d4a51;--line:rgba(82,10,23,.12);--line-strong:rgba(82,10,23,.20);--success:#1f7a48;--danger:#b0182f;--warning:#c9430a;--shadow:0 12px 38px rgba(27,4,9,.08);--side:282px}
*{box-sizing:border-box}html{color-scheme:light}html,body{margin:0;min-height:100%;background:var(--canvas);font-family:Lato,"Noto Sans Devanagari","Nirmala UI","Segoe UI",Arial,sans-serif;color:var(--ink)}body{font-size:14px}button,input,select,textarea{font:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid rgba(239,173,47,.46);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.fatal-state{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:13px;padding:30px;text-align:center}.fatal-state img{width:76px;height:76px;object-fit:contain}.fatal-state p{max-width:600px;color:var(--muted)}
.dev-login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(440px,.88fr)}.login-brand{position:relative;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:clamp(54px,8vw,140px);color:#fff;background:radial-gradient(circle at 85% 100%,rgba(239,173,47,.25),transparent 31%),linear-gradient(145deg,var(--brand-deep),var(--brand))}.login-brand:after{content:"";position:absolute;right:-160px;bottom:-260px;width:610px;height:610px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 75px rgba(255,255,255,.035),0 0 0 150px rgba(255,255,255,.025)}.login-brand>*{position:relative;z-index:1}.login-brand img{width:84px;height:84px;object-fit:contain;margin-bottom:40px;filter:drop-shadow(0 14px 24px rgba(0,0,0,.22))}.login-brand small,.eyebrow{color:var(--gold);font-weight:800;letter-spacing:.14em}.login-brand h1{max-width:760px;margin:14px 0 22px;font-size:clamp(52px,5.5vw,88px);line-height:.94;letter-spacing:-.065em}.login-brand p{max-width:640px;margin:0;color:rgba(255,255,255,.76);font-size:16px;line-height:1.7}.login-trust{display:flex;flex-wrap:wrap;gap:9px;margin-top:34px}.login-trust span{padding:8px 11px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(255,255,255,.08);font-size:14px;font-weight:700}.login-form-wrap{display:grid;place-items:center;padding:36px;background:linear-gradient(160deg,#fff,var(--canvas))}.login-form{width:min(485px,100%);display:grid;gap:10px;padding:38px;border:1px solid var(--line);border-radius:25px;background:#fff;box-shadow:0 30px 90px rgba(91,8,26,.13)}.login-form>img{width:64px;height:64px;object-fit:contain;margin-bottom:4px}.login-form>small{color:var(--brand);font-weight:800;letter-spacing:.12em}.login-form h2{margin:4px 0 0;font-size:34px;letter-spacing:-.04em}.login-form p{margin:0 0 10px;color:var(--muted);line-height:1.55}
label{display:grid;gap:7px;color:#4f343b;font-size:15px;font-weight:800}label small{color:var(--muted);font-weight:500}input,select,textarea{width:100%;min-height:48px;padding:11px 13px;border:1px solid var(--line-strong);border-radius:11px;outline:0;color:var(--ink);background:#fff;transition:border-color .16s,box-shadow .16s}textarea{resize:vertical;line-height:1.5}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(143,16,39,.09)}.password-field{display:flex;border:1px solid var(--line-strong);border-radius:11px;overflow:hidden;background:#fff}.password-field:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px rgba(143,16,39,.09)}.password-field input{border:0;border-radius:0;box-shadow:none!important}.password-field button{min-width:68px;border:0;color:var(--brand);background:#fff8ee;font-weight:700;cursor:pointer}.btn{min-height:44px;padding:0 17px;border:1px solid var(--line-strong);border-radius:10px;cursor:pointer;font-weight:700;transition:transform .14s,box-shadow .14s,background .14s}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn.primary{color:#fff;border-color:var(--brand);background:linear-gradient(135deg,var(--brand),var(--brand-strong));box-shadow:0 8px 20px rgba(143,16,39,.16)}.btn.secondary{color:var(--brand);border-color:#d8b9be;background:#fff}.btn.tertiary{color:#5c474c;background:#faf7f6}.btn.success{color:#fff;border-color:var(--success);background:var(--success)}.btn.warning{color:#fff;border-color:var(--warning);background:var(--warning)}.btn.danger{color:#fff;border-color:var(--danger);background:var(--danger)}.btn.danger-outline{color:var(--danger);border-color:#e2aeb8;background:#fff}.btn.compact{min-height:34px;padding:0 10px;border-radius:8px;font-size:13px}.btn-wide{margin-top:9px}.login-form .tertiary{margin-top:2px}
.dev-shell{min-height:100vh}.dev-side{position:fixed;inset:0 auto 0 0;z-index:40;width:var(--side);display:flex;flex-direction:column;padding:23px 17px;color:#fff;background:radial-gradient(circle at 0 100%,rgba(239,173,47,.14),transparent 27%),linear-gradient(175deg,var(--brand-deep),var(--brand-strong));overflow:auto;scrollbar-width:thin}.dev-brand{display:flex;align-items:center;gap:12px;padding:0 5px 23px;border-bottom:1px solid rgba(255,255,255,.12)}.dev-brand img{width:53px;height:53px;object-fit:contain}.dev-brand strong,.dev-brand span{display:block}.dev-brand strong{font-size:14px}.dev-brand span{margin-top:3px;color:rgba(255,255,255,.56);font-size:13px}.nav-close{display:none;margin-left:auto;border:0;color:#fff;background:transparent;font-size:26px}.dev-nav{display:grid;gap:18px;margin-top:19px}.nav-group{display:grid;gap:5px}.nav-group>small{padding:0 12px 4px;color:rgba(255,255,255,.42);font-size:11px;font-weight:800;letter-spacing:.14em}.dev-nav button{min-height:43px;display:flex;align-items:center;gap:10px;padding:0 12px;border:1px solid transparent;border-radius:11px;color:rgba(255,255,255,.72);background:transparent;text-align:left;cursor:pointer}.dev-nav button:hover{color:#fff;background:rgba(255,255,255,.08)}.dev-nav button.active{color:var(--brand-deep);border-color:#fff;background:#fff;box-shadow:0 9px 24px rgba(0,0,0,.14)}.dev-nav i{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;color:inherit;background:rgba(255,255,255,.1);font-style:normal;font-size:11px;font-weight:800}.dev-nav button.active i{color:#fff;background:var(--brand)}.dev-user{margin-top:auto;padding:18px 6px 0;border-top:1px solid rgba(255,255,255,.12)}.dev-user small,.dev-user strong,.dev-user span{display:block}.dev-user small,.dev-user span{color:rgba(255,255,255,.5);font-size:12px}.dev-user strong{margin:3px 0;font-size:16px}.dev-user button{margin-top:10px;padding:0;border:0;color:var(--gold);background:transparent;cursor:pointer;font-size:14px;font-weight:700}.dev-main{min-height:100vh;margin-left:var(--side)}.dev-top{height:76px;position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;padding:0 30px;border-bottom:1px solid rgba(234,220,218,.9);background:rgba(255,255,255,.9);backdrop-filter:blur(16px)}.dev-top>img{width:33px;height:33px;object-fit:contain}.dev-top>strong{font-size:14px}.top-spacer{flex:1}.developer-only{display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #cbe8da;border-radius:999px;color:var(--success);background:#edf9f3;font-size:12px;font-weight:700}.developer-only b{width:7px;height:7px;border-radius:50%;background:#20ad74;box-shadow:0 0 0 4px rgba(32,173,116,.12)}.idle-box{min-width:136px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:#fff9f5}.idle-box small{max-width:74px;color:var(--muted);font-size:11px;line-height:1.15}.idle-box strong{font-variant-numeric:tabular-nums;font-size:16px}.idle-box.warning{color:var(--danger);border-color:#e5a8b4;background:#fff1f3}.menu-button{display:none;border:0;background:transparent;font-size:22px}.nav-scrim{display:none}.dev-content{max-width:1660px;margin:auto;padding:34px}.heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:25px}.heading>div{min-width:0}.heading small{color:var(--brand);font-weight:800;letter-spacing:.13em}.heading h1{margin:5px 0 7px;font-size:clamp(36px,4vw,48px);line-height:1;letter-spacing:-.055em}.heading p{max-width:860px;margin:0;color:var(--muted);line-height:1.6}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:18px}.stat,.card{border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}.stat{position:relative;overflow:hidden;padding:23px}.stat:after{content:"";position:absolute;right:-48px;bottom:-58px;width:115px;height:115px;border-radius:50%;background:linear-gradient(145deg,rgba(143,16,39,.04),rgba(239,173,47,.13))}.stat span,.stat strong,.stat small{position:relative;z-index:1;display:block}.stat span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.stat strong{margin:8px 0 5px;color:var(--brand);font-size:38px;line-height:1}.stat small{color:var(--muted);font-size:13px}.card{padding:23px}.card h2{margin:4px 0 7px;letter-spacing:-.02em}.card>p,.form-card>p{margin:0 0 20px;color:var(--muted);line-height:1.55}.governance-card{display:grid;grid-template-columns:1.4fr .8fr;gap:22px;align-items:center}.governance-card .notice{grid-column:1/-1}.journeys{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.journeys span{padding:9px 12px;border-radius:999px;color:var(--brand);background:var(--gold-soft);font-size:13px;font-weight:800}.notice{padding:14px 15px;border-left:4px solid var(--gold);border-radius:0 10px 10px 0;background:#fff8eb;color:#5e4931;line-height:1.6}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.full{grid-column:1/-1}.form-card{align-content:start}.form-intro{display:flex;align-items:flex-start;gap:13px;margin:2px 0 5px;padding-bottom:15px;border-bottom:1px solid var(--line)}.form-intro>span{flex:0 0 34px;height:34px;display:grid;place-items:center;border-radius:9px;color:#fff;background:var(--brand);font-size:13px;font-weight:800}.form-intro h2{margin:0}.form-intro p{margin:2px 0 0;color:var(--muted);font-size:14px}.form-actions{display:flex;justify-content:flex-end;padding-top:6px}.form-stack{display:grid;gap:15px}.two-column{display:grid;grid-template-columns:minmax(350px,.82fr) minmax(460px,1.18fr);gap:18px}.security-grid{display:grid;grid-template-columns:minmax(300px,.66fr) minmax(440px,1.34fr);gap:18px}.security-summary{align-self:start;padding:30px;color:#fff;border-color:var(--brand);background:radial-gradient(circle at 100% 100%,rgba(239,173,47,.22),transparent 34%),linear-gradient(145deg,var(--brand-deep),var(--brand))}.security-summary img{width:64px;height:64px}.security-summary>small{display:block;margin-top:28px;color:var(--gold);font-weight:800;letter-spacing:.12em}.security-summary h2{font-size:30px}.security-summary>p{color:rgba(255,255,255,.68)}.security-summary dl{display:grid;gap:0;margin:24px 0 0}.security-summary dl div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-top:1px solid rgba(255,255,255,.12)}.security-summary dt{color:rgba(255,255,255,.55);font-size:13px}.security-summary dd{margin:0;text-align:right;font-size:13px;font-weight:700}.brand-preview{position:relative;align-self:start;min-height:420px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;padding:34px;border-radius:19px;color:#fff;background:radial-gradient(circle at 100% 0,rgba(239,173,47,.38),transparent 32%),linear-gradient(145deg,var(--brand-deep),var(--brand));box-shadow:var(--shadow)}.brand-preview:after{content:"JPRAXC";position:absolute;right:-15px;top:45px;color:rgba(255,255,255,.055);font-size:150px;font-weight:800;letter-spacing:-.1em}.brand-preview img{position:absolute;left:34px;top:34px;width:78px;height:78px;object-fit:contain}.brand-preview small{color:var(--gold);font-weight:800;letter-spacing:.12em}.brand-preview h2{margin:7px 0;font-size:38px}.brand-preview p{margin:0 0 30px;color:rgba(255,255,255,.76)}.brand-preview span{padding-top:17px;border-top:1px solid rgba(255,255,255,.16);font-size:13px}.branding-layout{grid-template-columns:minmax(360px,.85fr) minmax(440px,1.15fr)}
.search-toolbar{display:flex;align-items:center;gap:8px;margin:0 0 14px}.search-toolbar input{max-width:500px}.search-toolbar .result-count{margin-left:auto;color:var(--muted);font-size:13px;font-weight:700}.result-card{min-width:0}.result-scroll{max-height:65vh;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:13px;background:#fff;scrollbar-color:#caa9af #f7f1f0;scrollbar-width:thin}.school-results{display:grid;gap:12px;padding:12px;background:#faf7f6}.school-result{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 5px 17px rgba(57,5,15,.04)}.school-result>header{display:flex;justify-content:space-between;gap:15px;padding-bottom:14px;border-bottom:1px solid var(--line)}.school-result h3,.recycle-row h3{margin:4px 0;font-size:17px}.school-result header p,.recycle-row p,.mail-row p,.audit-row p{margin:0;color:var(--muted);font-size:13px}.school-code{color:var(--brand);font-family:Consolas,monospace;font-size:12px;font-weight:700}.status-stack{display:flex;align-items:flex-start;gap:6px}.status{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;color:#5c4e51;background:#eee8e7;font-size:11px;font-weight:800;white-space:nowrap}.status-active,.status-sent,.status-complete,.status-verified{color:#08714a;background:#e4f6ed}.status-issued,.status-prepared,.status-queued,.status-pending{color:#8a5a05;background:#fff2d7}.status-hold,.status-expired,.status-failed{color:#a95a06;background:#ffead6}.status-terminated,.status-retired,.status-recycle-bin,.status-revoked{color:#a51e37;background:#ffe6eb}.school-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;padding:15px 0}.school-facts>div{min-width:0}.school-facts small,.tenant-strip small,.migration-strip small{display:block;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.school-facts strong{display:block;margin-top:4px;overflow:hidden;text-overflow:ellipsis;font-size:13px}.mono,.credentials{font-family:"Cascadia Mono",Consolas,monospace;letter-spacing:.02em}.tenant-strip{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 12px;border-radius:10px;background:#f8f4f2;font-size:12px}.tenant-strip>span{font-weight:800}.tenant-strip code{color:var(--muted)}.tenant-strip p{flex-basis:100%;margin:0;color:var(--danger)}.migration-strip{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:2px}.migration-strip>div{padding:13px;border-left:3px solid var(--gold);border-radius:0 9px 9px 0;background:#fff8e9}.migration-strip.ready>div{border-color:var(--success);background:#eff9f4}.migration-strip strong{display:block;margin:4px 0;font-size:14px}.migration-strip p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.row-actions,.table-actions{display:flex;flex-wrap:wrap;gap:7px}.school-result>.row-actions{padding-top:14px;border-top:1px solid var(--line)}.pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px}.pagination span{color:var(--muted);font-size:13px;font-weight:700}.table-scroll{max-height:68vh}.table-scroll table{min-width:1220px}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:13px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;white-space:nowrap;font-size:13px}th{position:sticky;top:0;z-index:2;color:var(--muted);background:#faf7f6;font-size:11px;text-transform:uppercase;letter-spacing:.04em}tr:last-child td{border-bottom:0}td small{color:var(--muted)}.secret-cell{max-width:260px;white-space:normal;overflow-wrap:anywhere}.empty-state{display:grid;place-items:center;min-height:190px;padding:35px;text-align:center}.empty-state strong{font-size:15px}.empty-state p{margin:5px 0 0;color:var(--muted);font-size:14px}.mail-results{padding:8px}.mail-row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:13px;border-bottom:1px solid var(--line)}.mail-row:last-child{border-bottom:0}.mail-row>div:nth-child(2){display:grid;justify-items:end;gap:5px}.mail-row>div:nth-child(2) small{color:var(--muted);font-size:11px}.mail-row>.error-text{grid-column:1/-1;margin:0;color:var(--danger);font-size:12px}.destructive-notice{display:flex;align-items:center;gap:14px;margin-bottom:14px;padding:13px 15px;border:1px solid #f0bdc7;border-radius:11px;background:#fff1f3}.destructive-notice strong{color:var(--danger);white-space:nowrap}.destructive-notice p{margin:0;color:#75434c;font-size:13px}.recycle-results{display:grid;gap:10px;padding:10px;background:#faf7f6}.recycle-row{display:grid;grid-template-columns:1.2fr .8fr auto;align-items:center;gap:18px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff}.recycle-row dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0}.recycle-row dt{color:var(--muted);font-size:11px}.recycle-row dd{margin:3px 0 0;font-size:12px;font-weight:700}.audit-results{display:grid}.audit-row{display:grid;grid-template-columns:145px 1fr 110px;align-items:start;gap:14px;padding:13px;border-bottom:1px solid var(--line)}.audit-row:last-child{border-bottom:0}.audit-row time{color:var(--muted);font-size:12px}.audit-row>span{font-size:12px;font-weight:700}.audit-row details{grid-column:2/-1}.audit-row summary{color:var(--brand);cursor:pointer;font-size:12px;font-weight:700}.audit-row pre{max-height:220px;overflow:auto;padding:10px;border-radius:8px;background:#28161b;color:#fff;font-size:12px;white-space:pre-wrap}.error-panel{display:grid;justify-items:start;gap:14px;border-color:#e6b1ba;background:#fff3f5;color:var(--danger)}.skeleton-card{display:grid;gap:14px}.skeleton-card span{height:44px;border-radius:8px;background:linear-gradient(90deg,#f4eeee,#fff,#f4eeee);background-size:220% 100%;animation:skeleton 1.4s infinite}.skeleton-card span:first-child{width:45%}.skeleton-card span:last-child{width:76%}@keyframes skeleton{to{background-position:-220% 0}}
.dialog{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:rgba(31,10,16,.72);backdrop-filter:blur(8px)}.credential-sheet{width:min(820px,100%);max-height:calc(100vh - 48px);overflow:auto;padding:28px;border:1px solid #dcb9bf;border-top:7px solid var(--brand);border-radius:18px;background:#fff;box-shadow:0 28px 90px rgba(0,0,0,.3)}.credential-header{display:flex;align-items:center;gap:14px;padding-bottom:18px;border-bottom:1px solid var(--line)}.credential-header img{width:64px;height:64px;object-fit:contain}.credential-header small{color:var(--brand);font-size:11px;font-weight:800;letter-spacing:.12em}.credential-header h2{margin:3px 0;font-size:27px}.credential-header p{margin:0;color:var(--muted)}.dialog-close{margin-left:auto;border:0;background:transparent;font-size:27px;cursor:pointer}.credential-warning{margin:17px 0;padding:11px;border-left:4px solid var(--gold);background:#fff8e8;color:#6b532f;font-size:13px}.credential-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}.credential-grid>div{padding:13px;border:1px solid var(--line);border-radius:9px;background:#fdfbfa}.credential-grid .wide{grid-column:1/-1}.credential-grid dt{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.credential-grid dd{margin:5px 0 0;overflow-wrap:anywhere;font-size:14px;font-weight:700}.credential-sheet footer{display:flex;justify-content:space-between;gap:12px;margin-top:17px;padding-top:13px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.toast-stack{position:fixed;right:20px;bottom:20px;z-index:200;display:grid;gap:8px;max-width:min(430px,calc(100vw - 40px))}.toast{padding:14px 16px;border-radius:12px;color:#fff;background:#281a1e;box-shadow:0 14px 40px rgba(0,0,0,.22);font-size:14px;line-height:1.45}.toast.error{background:var(--danger)}.busy-overlay{position:fixed;inset:0;z-index:180;display:grid;place-content:center;justify-items:center;gap:12px;color:#fff;background:rgba(36,9,16,.68);backdrop-filter:blur(5px)}.spinner{width:34px;height:34px;border:4px solid rgba(255,255,255,.28);border-top-color:var(--gold);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.tenant-provision{margin:13px 0;border:1px solid var(--line);border-radius:12px;background:#fcfaf9}.tenant-provision summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;cursor:pointer;color:var(--brand);font-size:13px;font-weight:800}.tenant-provision summary small{color:var(--muted);font-size:11px;font-weight:650}.tenant-form{padding:15px;border-top:1px solid var(--line);background:#fff}.tenant-form .form-actions{gap:8px;flex-wrap:wrap}.migration-actions{display:flex;align-items:center;gap:12px;margin:13px 0;padding:12px;border:1px solid #cbe8da;border-radius:11px;background:#eff9f4}.migration-actions small{color:#536d62;font-size:12px}.tenant-strip>small{margin-left:auto}.tenant-strip code{overflow-wrap:anywhere}.school-credentials{margin:4px 0 13px;border:1px solid #e1c7cc;border-radius:12px;background:#fffafd}.school-credentials summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;cursor:pointer;color:var(--brand);font-size:13px;font-weight:800}.school-credentials summary small{color:var(--muted);font-size:11px;font-weight:500}.school-credentials dl{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:0;padding:14px;border-top:1px solid var(--line);background:#fff}.school-credentials dl>div{min-width:0;padding:11px;border:1px solid var(--line);border-radius:9px;background:#faf7f6}.school-credentials dl>div:first-child{grid-column:1/-1}.school-credentials dt{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.school-credentials dd{margin:5px 0 0;overflow-wrap:anywhere;color:var(--ink);font-size:13px;font-weight:700}.school-credentials>.btn{margin:0 14px 14px}.school-credentials>.error-text{margin:0;padding:14px;border-top:1px solid var(--line)}
/* Typography mirrored from the School ERP scale (reference-layout.css / v3.css):
   15px/500 body, 780 display headings, 800 form labels, 700 buttons, 650 nav,
   same local font stack — no webfonts, exactly like the ERP. */
body{font-size:15px;font-weight:500;line-height:1.5}.login-brand h1,.login-form h2,.heading h1,.security-summary h2,.brand-preview h2,.credential-header h2{font-weight:780}.login-brand p,.login-form p,.heading p,.card>p,.form-card>p{font-size:14px;font-weight:500;line-height:1.65}.login-form>small,.heading small,.eyebrow{font-size:14px}.login-form h2{font-size:36px;line-height:1.16}.dev-brand strong{font-size:16px;font-weight:800}.dev-brand span{font-size:14px;font-weight:500}.nav-group>small{font-size:13px}.dev-nav button{font-size:15px;font-weight:650}.dev-nav i{font-size:12px}.dev-user small,.dev-user span{font-size:13px}.dev-user strong{font-size:14px;font-weight:750}.dev-top>strong{font-size:15px;font-weight:850}.developer-only{font-size:13px}.idle-box small{font-size:12px;font-weight:650}.idle-box strong{font-size:14px;font-weight:750}.heading h1{font-size:clamp(38px,4vw,52px)}.stat span{font-size:13px}.stat strong{font-weight:800}.stat small{font-size:14px}.card h2,.form-intro h2{font-size:21px;font-weight:700;line-height:1.3}.form-intro p{font-size:15px;line-height:1.55}.form-intro>span{font-size:14px}.btn{font-size:14px;font-weight:700}.btn.compact{font-size:13px}.notice{font-size:15px;font-weight:650}.journeys span{font-size:14px}.search-toolbar .result-count,.pagination span{font-size:14px}.school-result h3,.recycle-row h3{font-size:18px;font-weight:700}.school-result header p,.recycle-row p,.mail-row p,.audit-row p{font-size:14px}.school-code{font-size:13px}.status{font-size:12px}.school-facts small,.tenant-strip small,.migration-strip small{font-size:12px}.school-facts strong{font-size:14px}.tenant-strip{font-size:13px}.migration-strip strong{font-size:15px}.migration-strip p{font-size:13px}.tenant-provision summary{font-size:14px}.tenant-provision summary small,.migration-actions small{font-size:13px}th{font-size:12px}td{font-size:14px}.empty-state strong{font-size:17px}.empty-state p{font-size:15px}.mail-row>div:nth-child(2) small,.recycle-row dt,.credential-grid dt{font-size:12px}.recycle-row dd,.audit-row time,.audit-row>span,.audit-row summary{font-size:13px}.credential-header small{font-size:13px}.credential-header p{font-size:15px}.credential-warning,.credential-grid dd{font-size:14px}.credential-sheet footer{font-size:13px}.toast{font-size:15px}
@media(max-width:1180px){.two-column,.security-grid,.branding-layout{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.brand-preview{min-height:340px}.school-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.recycle-row{grid-template-columns:1fr}.recycle-row .row-actions{justify-content:flex-start}}
@media(max-width:980px){.dev-side{transform:translateX(-105%);transition:transform .2s}.dev-main{margin-left:0}.dev-shell.nav-open .dev-side{transform:translateX(0);box-shadow:20px 0 60px rgba(0,0,0,.35)}.dev-shell.nav-open .nav-scrim{position:fixed;inset:0;z-index:35;display:block;border:0;background:rgba(31,9,15,.55)}.nav-close,.menu-button{display:block}.dev-top{padding:0 18px}.dev-content{padding:28px 20px}.developer-only{display:none}}
@media(max-width:720px){.dev-login{grid-template-columns:1fr}.login-brand{display:none}.login-form-wrap{min-height:100vh;padding:16px}.login-form{padding:28px 22px}.heading{align-items:flex-start;flex-direction:column}.heading h1{font-size:36px}.stats,.grid,.governance-card,.migration-strip,.credential-grid{grid-template-columns:1fr}.full,.credential-grid .wide,.governance-card .notice{grid-column:auto}.journeys{justify-content:flex-start}.dev-content{padding:22px 13px}.dev-top>img,.dev-top>strong{display:none}.idle-box{margin-left:auto}.card{padding:17px}.search-toolbar{align-items:stretch;flex-wrap:wrap}.search-toolbar input{max-width:none;flex:1 1 100%}.search-toolbar .result-count{margin-left:0;align-self:center}.school-result>header{flex-direction:column}.status-stack{order:-1}.school-facts{grid-template-columns:1fr}.audit-row{grid-template-columns:1fr}.audit-row details{grid-column:auto}.credential-sheet{padding:18px}.credential-header{align-items:flex-start}.credential-sheet footer{flex-direction:column}.destructive-notice{align-items:flex-start;flex-direction:column}}
@media print{*{print-color-adjust:exact;-webkit-print-color-adjust:exact}body{background:#fff}.dev-side,.dev-top,.heading,.search-toolbar,.pagination,.no-print,.toast-stack,.busy-overlay{display:none!important}.dev-main{margin:0}.dev-content{max-width:none;padding:0}.card{border:0;box-shadow:none}.result-scroll{max-height:none;overflow:visible;border:0}.table-scroll table{min-width:0}th,td{white-space:normal}.credentials{font-size:12px}.dialog{position:static;display:block;padding:0;background:#fff}.credential-sheet{width:100%;max-height:none;overflow:visible;border-radius:0;box-shadow:none}.credential-print-open #control-app{display:none}.credential-sheet .no-print{display:none!important}.print-register .dev-content>*:not(.heading):not(.result-card){display:none}.print-register .result-card{padding:0}.print-register tr[hidden]{display:none!important}}
.control-captcha-card{display:grid;gap:14px;margin:4px 0 2px;padding:17px;border:1px solid color-mix(in srgb,var(--brand) 24%,var(--line));border-radius:17px;background:linear-gradient(148deg,var(--gold-soft),#fff);box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.control-captcha-card[aria-busy="true"]{opacity:.7}
.control-captcha-card>header{display:flex;align-items:center;gap:12px}.control-captcha-tools{margin-left:auto;display:flex;gap:6px}.control-captcha-tools button{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:10px;color:var(--brand);background:#fff;font-size:16px;line-height:1;cursor:pointer}.control-captcha-tools button:hover,.control-captcha-tools button:focus-visible{border-color:var(--brand);background:var(--gold-soft)}
.control-captcha-card>header>span{flex:0 0 40px;width:40px;height:40px;display:grid;place-items:center;border-radius:12px;color:var(--gold);background:linear-gradient(148deg,var(--brand-deep),var(--brand));font-size:14px;font-weight:800;letter-spacing:.08em}
.control-captcha-card>header>div{display:grid;gap:3px}
.control-captcha-card>header strong{font-size:15px;font-weight:700;letter-spacing:-.01em}
.control-captcha-card>header small{color:var(--muted);font-size:15px;font-weight:500;line-height:1.45}
.control-captcha-grid{display:grid;grid-template-columns:minmax(150px,.85fr) minmax(150px,1.15fr);gap:12px;align-items:end}
.control-captcha-question{min-height:58px;display:grid;place-items:center;padding:11px 15px;border:1px dashed color-mix(in srgb,var(--brand) 44%,var(--line));border-radius:13px;color:var(--brand-deep);background:#fff;font-size:23px;font-weight:700;letter-spacing:.05em;text-align:center;font-variant-numeric:tabular-nums}
.control-captcha-question:focus-visible{outline:3px solid color-mix(in srgb,var(--gold) 55%,transparent);outline-offset:2px}
.login-form .control-captcha-answer{display:grid;gap:7px;color:var(--ink);font-size:16px;font-weight:700}
.login-form .control-captcha-answer input{min-height:58px;font-size:17px;font-weight:700;text-align:center;font-variant-numeric:tabular-nums}
.control-captcha-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px}
.control-captcha-actions button{min-height:38px;padding:0 13px;border:1px solid var(--line-strong);border-radius:10px;color:var(--brand);background:#fff;font-size:15px;font-weight:700;cursor:pointer}
.control-captcha-actions button:hover,.control-captcha-actions button:focus-visible{border-color:var(--brand);background:var(--gold-soft)}
.control-captcha-actions button span{margin-right:5px;color:var(--gold);font-size:15px}
.control-captcha-actions p{flex:1 1 190px;margin:0;color:var(--muted);font-size:11.5px;font-weight:500;line-height:1.5}
@media(max-width:560px){.control-captcha-grid{grid-template-columns:1fr}.control-captcha-actions p{flex-basis:100%}}
.purchase-request-previews{display:grid;gap:8px}.purchase-request-previews:empty{display:none}.purchase-request-previews details{border:1px solid var(--line);border-radius:11px;background:#fff}.purchase-request-previews summary{padding:11px 13px;color:var(--brand);font-size:12px;font-weight:800;cursor:pointer}.purchase-request-previews pre{max-height:360px;margin:0;padding:14px;overflow:auto;border-top:1px solid var(--line);white-space:pre-wrap;font:11px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--ink);background:#fbf8f6}
.credential-print-options{display:flex;flex-wrap:wrap;gap:9px;padding:12px 16px;border:1px solid var(--line);border-radius:11px;background:#fff9ea}.credential-print-options strong{width:100%;font-size:12px}.credential-print-options label{display:flex;align-items:center;gap:5px;font-size:11px}.credential-print-options input{width:auto}@media print{.credential-print-excluded{display:none!important}}
@media(max-width:720px){.school-credentials dl{grid-template-columns:1fr}.school-credentials dl>div:first-child{grid-column:auto}.school-credentials summary{align-items:flex-start;flex-direction:column}}
@media(min-width:1181px){.stats{grid-template-columns:repeat(5,minmax(0,1fr))}}

/* Purchase queue workspace. The overview embeds the same controls as the full
   generator, so operators never have to learn two different activation flows. */
.overview-purchase-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:28px 0 15px}.overview-purchase-heading h2{margin:3px 0 4px;font-size:25px;letter-spacing:-.025em}.overview-purchase-heading p{margin:0;color:var(--muted)}
.purchase-workspace{display:grid;grid-template-columns:minmax(390px,.9fr) minmax(520px,1.1fr);gap:18px;align-items:start}.purchase-queue,.purchase-generator{min-width:0}.purchase-queue{display:grid;gap:12px}.queue-heading,.generator-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.queue-heading h2,.generator-head h2{margin:2px 0 3px}.queue-heading p,.generator-head p{margin:0;color:var(--muted);font-size:14px}.queue-count{min-width:38px;height:38px;display:grid;place-items:center;border-radius:12px;color:#fff;background:var(--brand);font-size:15px;font-weight:800}.purchase-cards{max-height:575px;display:grid;gap:10px;overflow:auto;padding-right:4px;scrollbar-width:thin}.purchase-card{position:relative;display:grid;gap:9px;padding:15px;border:1px solid var(--line);border-radius:14px;color:var(--ink);background:#fff;text-align:left;transition:border-color .16s,box-shadow .16s,transform .16s}.purchase-card.manual{width:100%;cursor:pointer}.purchase-card:hover{border-color:#d6adb5;box-shadow:0 9px 25px rgba(57,5,15,.07)}.purchase-card.selected{border-color:var(--brand);box-shadow:0 0 0 3px rgba(143,16,39,.08)}.purchase-card>button{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:0;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer}.purchase-card strong{display:block}.purchase-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.purchase-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0}.purchase-card dt{color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase}.purchase-card dd{margin:2px 0 0;overflow-wrap:anywhere;font-size:13px;font-weight:700}.purchase-card .status{align-self:flex-start}.purchase-generator{position:sticky;top:94px}.purchase-generator .form-stack{margin-top:18px}.generation-assurance{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:13px;border:1px solid #cbe8da;border-radius:12px;color:#385c4d;background:#eff9f4}.generation-assurance span{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;color:#fff;background:var(--success);font-size:12px;font-weight:800}.generation-assurance strong,.generation-assurance small{display:block}.generation-assurance small{margin-top:2px;color:#5b786b;line-height:1.45}.overview-generator .purchase-workspace{grid-template-columns:minmax(340px,.82fr) minmax(480px,1.18fr)}

/* Match the School ERP's readable weight hierarchy: normal copy, stronger
   navigation/actions, and bold labels instead of uniformly heavy text. */
body{font-weight:400}.login-brand p,.login-form p,.heading p,.card>p,.form-card>p,.dev-brand span{font-weight:400}.dev-nav button{font-weight:700}.notice{font-weight:500}.tenant-provision summary small,.migration-actions small{font-weight:400}

@media(max-width:1180px){.purchase-workspace,.overview-generator .purchase-workspace{grid-template-columns:1fr}.purchase-generator{position:static}.purchase-cards{max-height:420px}}
@media(max-width:720px){.overview-purchase-heading,.queue-heading,.generator-head{align-items:flex-start;flex-direction:column}.overview-purchase-heading .btn{width:100%}.purchase-card dl{grid-template-columns:1fr}.purchase-cards{max-height:none;overflow:visible}}
.purchase-invoice-strip{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border:1px solid #ecd9a9;border-radius:9px;color:#6c4a09;background:#fff8e5}.purchase-invoice-strip strong{font-size:12px}.purchase-invoice-strip span{font-size:11px;font-weight:800}.generation-assurance p{margin:3px 0 0;color:#5b786b;font-size:12px;line-height:1.5}

/* Shared sign-in reference: same sizing and responsive adjustment as the
   www.jpraxc.com staff login, with a scroll-safe CAPTCHA card. */
.dev-login{grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr)}
.login-brand{padding:clamp(48px,8vw,120px)}
.login-brand img{width:78px;height:78px;margin-bottom:42px}
.login-brand h1{max-width:720px;margin:15px 0;font-size:clamp(48px,5.8vw,84px);line-height:.96}
.login-brand p{max-width:640px;font-size:15px;line-height:1.7}
.login-form-wrap{min-height:100vh;padding:40px;overflow:auto}
.login-form{width:min(470px,100%);gap:11px;padding:38px}
.login-form>img{width:62px;height:62px}
.login-form h2{margin:0;font-size:35px}
.login-form p{margin:0 0 6px;font-size:13px}
.login-form label{font-size:13px}
.login-form input{min-height:52px}
.login-form>.btn.primary{min-height:48px;margin-top:3px;border-radius:11px}
@media (max-height:860px) and (min-width:721px){.login-brand{padding:44px clamp(48px,7vw,92px)}.login-brand img{width:68px;height:68px;margin-bottom:24px}.login-brand h1{font-size:clamp(44px,5vw,64px)}.login-brand p{font-size:13px;line-height:1.55}.login-trust{margin-top:20px}.login-form-wrap{padding:24px}.login-form{gap:8px;padding:28px;max-height:calc(100vh - 48px);overflow:auto}.login-form>img{width:54px;height:54px}.login-form h2{font-size:31px}.login-form input{min-height:48px}.control-captcha-card{gap:9px;padding:13px}.control-captcha-question,.login-form .control-captcha-answer input{min-height:50px}}
@media(max-width:720px){.dev-login{grid-template-columns:1fr}.login-brand{display:none}.login-form-wrap{min-height:100vh;padding:18px}.login-form{padding:28px;max-height:none;overflow:visible}}

/* v3.2.12 typography — shared School ERP / Sales Portal hierarchy.
   This final layer deliberately controls type only; workspace layout, colours,
   states and operator workflows remain unchanged. */
:root{
  --ui-font:Lato,"Noto Sans Devanagari","Nirmala UI","Segoe UI",Arial,sans-serif;
  --type-body:13px;
  --weight-copy:500;
  --weight-control:650;
  --weight-label:650;
  --weight-heading:720;
  --weight-display:780;
}
html,body,.dev-login,.dev-shell,.dialog{
  font-family:var(--ui-font)!important;
  font-weight:var(--weight-copy);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body{font-size:var(--type-body);line-height:1.5}
button,input,select,textarea,table,summary{font-family:var(--ui-font)!important}
button,input,select,textarea{font-weight:var(--weight-copy)}
p,li,dd,td,.login-brand p,.login-form p,.heading p,.card>p,.form-card>p,.dev-brand span{font-weight:var(--weight-copy)}

/* Sign in */
.login-brand small,.eyebrow{font-size:11px;font-weight:760}
.login-brand h1{font-size:clamp(46px,5.2vw,78px);font-weight:var(--weight-display);letter-spacing:-.052em}
.login-brand p{font-size:14px;line-height:1.65}
.login-trust span{font-size:12px;font-weight:var(--weight-control)}
.login-form>small{font-size:11px;font-weight:760}
.login-form h2{font-size:32px;font-weight:var(--weight-display);line-height:1.15;letter-spacing:-.035em}
.login-form p{font-size:12px}
label,.login-form label,.login-form .control-captcha-answer{font-size:12px;font-weight:var(--weight-label)}
label small{font-size:11px;font-weight:var(--weight-copy)}
input,select,textarea,.login-form input{font-size:13px;font-weight:var(--weight-copy)}
.password-field button{font-size:12px;font-weight:700}
.control-captcha-card>header>span{font-size:11px;font-weight:760}
.control-captcha-card>header strong{font-size:13px;font-weight:var(--weight-heading)}
.control-captcha-card>header small{font-size:12px;font-weight:var(--weight-copy)}
.control-captcha-question{font-size:20px;font-weight:var(--weight-heading)}
.login-form .control-captcha-answer input{font-size:14px;font-weight:var(--weight-control)}
.control-captcha-actions button{font-size:12px;font-weight:700}

/* Persistent shell */
.dev-brand strong{font-size:13px;font-weight:var(--weight-heading)}
.dev-brand span{font-size:11px}
.nav-group>small{font-size:10px;font-weight:730}
.dev-nav button{font-size:13px;font-weight:var(--weight-control)}
.dev-nav i{font-size:10px;font-weight:730}
.dev-user small,.dev-user span{font-size:10px;font-weight:var(--weight-copy)}
.dev-user strong{font-size:13px;font-weight:var(--weight-heading)}
.dev-user button{font-size:12px;font-weight:700}
.dev-top>strong{font-size:13px;font-weight:var(--weight-heading)}
.developer-only{font-size:11px;font-weight:700}
.idle-box small{font-size:10px;font-weight:var(--weight-copy)}
.idle-box strong{font-size:13px;font-weight:760}

/* Page, cards and forms */
.heading small{font-size:10px;font-weight:730}
.heading h1{font-size:clamp(30px,3vw,38px);font-weight:var(--weight-display);letter-spacing:-.045em}
.heading p{font-size:13px;line-height:1.55}
.stat span{font-size:10px;font-weight:730}
.stat strong{font-size:28px;font-weight:760}
.stat small{font-size:11px;font-weight:var(--weight-copy)}
.card h2,.form-intro h2,.queue-heading h2,.generator-head h2{font-size:18px;font-weight:var(--weight-heading);line-height:1.3}
.card>p,.form-card>p,.queue-heading p,.generator-head p{font-size:12px;font-weight:var(--weight-copy)}
.form-intro>span{font-size:11px;font-weight:760}
.form-intro p{font-size:12px;font-weight:var(--weight-copy)}
.btn{font-size:12px;font-weight:700}
.btn.compact{font-size:11px}
.notice{font-size:12px;font-weight:var(--weight-copy)}
.journeys span{font-size:11px;font-weight:700}
.overview-purchase-heading h2{font-size:20px;font-weight:var(--weight-heading)}
.overview-purchase-heading p{font-size:12px;font-weight:var(--weight-copy)}
.overview-approved-queue{margin-top:18px;padding:0;overflow:hidden}.overview-approved-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 22px;border-bottom:1px solid var(--line)}.overview-approved-head h2{margin:3px 0 4px;font-size:20px}.overview-approved-head p{margin:0;color:var(--muted);font-size:12px}.overview-approved-list{display:grid}.overview-approved-row{display:grid;grid-template-columns:minmax(235px,.95fr) minmax(560px,2fr) auto;gap:18px;align-items:center;padding:14px 22px;border-bottom:1px solid var(--line)}.overview-approved-row:last-child{border-bottom:0}.approved-reference{min-width:0;display:flex;align-items:center;gap:11px}.approved-reference>span{width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px;border-radius:10px;color:var(--brand);background:var(--soft);font-size:10px;font-weight:900}.approved-reference>div{min-width:0}.approved-reference strong,.approved-reference small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.approved-reference strong{font-size:12px}.approved-reference small{margin-top:3px;color:var(--muted);font-size:10px}.overview-approved-row dl{display:grid;grid-template-columns:repeat(5,minmax(90px,1fr));gap:12px;margin:0}.overview-approved-row dt{color:var(--muted);font-size:9px;font-weight:750;text-transform:uppercase}.overview-approved-row dd{margin:3px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700}.overview-approved-empty{display:flex;align-items:center;gap:12px;padding:22px}.overview-approved-empty>span{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;color:#fff;background:var(--success)}.overview-approved-empty p{margin:3px 0 0;color:var(--muted);font-size:11px}
@media(max-width:1180px){.overview-approved-list{overflow-x:auto}.overview-approved-row{min-width:960px}}
@media(max-width:720px){.overview-approved-head{align-items:flex-start;flex-direction:column}.overview-approved-head .btn{width:100%}}
.queue-count{font-size:12px;font-weight:760}
.purchase-card strong{font-weight:var(--weight-heading)}
.purchase-card p{font-size:11px;font-weight:var(--weight-copy)}
.purchase-card dt{font-size:10px;font-weight:730}
.purchase-card dd{font-size:12px;font-weight:var(--weight-control)}
.purchase-invoice-strip strong,.credential-print-options strong{font-size:11px;font-weight:var(--weight-heading)}
.purchase-invoice-strip span,.credential-print-options label{font-size:10px;font-weight:700}
.generation-assurance span{font-size:10px;font-weight:760}
.generation-assurance strong{font-weight:var(--weight-heading)}
.generation-assurance small,.generation-assurance p{font-size:11px;font-weight:var(--weight-copy)}

/* Registers, schools and tables */
.search-toolbar .result-count,.pagination span{font-size:11px;font-weight:700}
.school-result h3,.recycle-row h3{font-size:15px;font-weight:var(--weight-heading)}
.school-result header p,.recycle-row p,.mail-row p,.audit-row p{font-size:11px;font-weight:var(--weight-copy)}
.school-code{font-size:11px;font-weight:700}
.status{font-size:9px;font-weight:700}
.school-facts small,.tenant-strip small,.migration-strip small{font-size:10px;font-weight:730}
.school-facts strong{font-size:12px;font-weight:var(--weight-control)}
.tenant-strip{font-size:11px}
.tenant-strip>span{font-weight:var(--weight-heading)}
.migration-strip strong{font-size:12px;font-weight:var(--weight-heading)}
.migration-strip p{font-size:11px;font-weight:var(--weight-copy)}
.tenant-provision summary{font-size:12px;font-weight:var(--weight-heading)}
.tenant-provision summary small,.migration-actions small{font-size:11px;font-weight:var(--weight-copy)}
th{font-size:10px;font-weight:730}
td{font-size:12px;font-weight:var(--weight-copy)}
td small{font-size:10px;font-weight:var(--weight-copy)}
.empty-state strong{font-size:14px;font-weight:var(--weight-heading)}
.empty-state p{font-size:12px;font-weight:var(--weight-copy)}
.mail-row>div:nth-child(2) small,.recycle-row dt,.credential-grid dt{font-size:10px;font-weight:730}
.recycle-row dd,.audit-row time,.audit-row>span,.audit-row summary{font-size:11px}
.recycle-row dd,.audit-row>span,.audit-row summary{font-weight:var(--weight-control)}
.purchase-request-previews summary{font-size:11px;font-weight:700}

/* Branding, security and credential sheets */
.security-summary>small,.brand-preview small{font-size:10px;font-weight:730}
.security-summary h2{font-size:24px;font-weight:var(--weight-heading)}
.security-summary dt,.security-summary dd,.brand-preview span{font-size:11px}
.security-summary dd{font-weight:var(--weight-control)}
.brand-preview h2{font-size:30px;font-weight:var(--weight-display)}
.brand-preview p{font-size:12px;font-weight:var(--weight-copy)}
.credential-header small{font-size:10px;font-weight:730}
.credential-header h2{font-size:22px;font-weight:var(--weight-heading)}
.credential-header p{font-size:12px;font-weight:var(--weight-copy)}
.credential-warning,.credential-grid dd{font-size:12px}
.login-delivery-warning{padding:11px 13px;border:1px solid #edbbc3;border-radius:10px;color:#8e1428;background:#fff1f3;font-size:13px;font-weight:650;line-height:1.5}
.credential-grid dt{font-weight:730}
.credential-grid dd{font-weight:var(--weight-control)}
.credential-sheet footer{font-size:11px;font-weight:var(--weight-copy)}
.dialog-close{font-weight:var(--weight-copy)}
.toast{font-size:12px;font-weight:var(--weight-control)}

@media(max-width:720px){
  .heading h1{font-size:30px}
  .login-form h2{font-size:29px}
}

/* v3.2.12 — distinct navigation pictograms replace letter badges. */
.dev-nav i{width:29px;height:29px;display:grid;place-items:center;flex:0 0 29px;font-size:0}
.dev-nav i svg{width:17px;height:17px;display:block}

/* v3.2.12 — School ERP-style main module + submodule workspace. */
.dev-workspace{
  min-height:calc(100vh - 76px);
  display:grid;
  grid-template-columns:minmax(250px,292px) minmax(0,1fr);
  align-items:stretch;
}
.dev-workspace.no-subnav{grid-template-columns:minmax(0,1fr)}
.dev-subnav{
  position:sticky;
  top:76px;
  align-self:start;
  height:calc(100vh - 76px);
  overflow-y:auto;
  padding:25px 17px 32px;
  border-right:1px solid var(--line);
  background:linear-gradient(180deg,#fff 0%,#faf6f3 100%);
  scrollbar-width:thin;
}
.dev-subnav>header{display:grid;gap:3px;margin:0 8px 16px}
.dev-subnav>header small{color:var(--muted);font-size:10px;font-weight:730;letter-spacing:.11em}
.dev-subnav>header h2{margin:0;color:var(--brand);font-size:18px;font-weight:var(--weight-heading);line-height:1.25;letter-spacing:-.025em}
.dev-subnav nav{display:grid;gap:9px}
.dev-subnav nav button{
  width:100%;
  min-width:0;
  display:grid;
  grid-template-columns:36px minmax(0,1fr) auto;
  align-items:center;
  gap:11px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:14px;
  color:var(--ink);
  background:#fff;
  box-shadow:0 6px 20px rgba(61,5,17,.035);
  text-align:left;
  cursor:pointer;
  transition:border-color .16s,background .16s,box-shadow .16s,transform .16s;
}
.dev-subnav nav button:hover{transform:translateY(-1px);border-color:#d8aeb7;box-shadow:0 10px 26px rgba(61,5,17,.07)}
.dev-subnav nav button.active{border-color:#d69ca9;background:#f9ecef;box-shadow:0 9px 26px rgba(130,13,37,.08)}
.dev-subnav nav i{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:11px;
  color:var(--brand);
  background:#f5e8eb;
}
.dev-subnav nav button.active i{color:#fff;background:var(--brand)}
.dev-subnav nav i svg{width:18px;height:18px;display:block}
.dev-subnav nav button>span{min-width:0;display:grid;gap:2px}
.dev-subnav nav strong{font-size:12px;font-weight:var(--weight-heading);line-height:1.3}
.dev-subnav nav small{overflow:hidden;color:var(--muted);font-size:9px;font-weight:var(--weight-copy);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.dev-subnav nav b{color:var(--brand);font-size:18px;font-weight:500;line-height:1}
.dev-content{min-width:0;width:100%;max-width:none;margin:0;padding:30px 32px 68px}

@media(max-width:1180px) and (min-width:721px){
  .dev-workspace{grid-template-columns:226px minmax(0,1fr)}
  .dev-subnav{padding-inline:13px}
  .dev-subnav nav button{grid-template-columns:32px minmax(0,1fr) auto;gap:9px;padding:10px}
  .dev-subnav nav i{width:32px;height:32px}
}
@media(max-width:720px){
  .dev-workspace{min-height:calc(100vh - 76px);grid-template-columns:1fr}
  .dev-subnav{position:static;width:auto;height:auto;overflow:visible;padding:14px 13px;border-right:0;border-bottom:1px solid var(--line)}
  .dev-subnav>header{margin:0 2px 10px}
  .dev-subnav nav{display:flex;gap:9px;overflow-x:auto;padding-bottom:3px;scrollbar-width:thin}
  .dev-subnav nav button{min-width:238px;flex:0 0 238px}
  .dev-content{padding:22px 13px 48px}
}
@media print{
  .dev-workspace{display:block;min-height:0}
  .dev-subnav{display:none!important}
}

/* v3.2.12 — visual density and weight parity with the Sales portal. */
:root{
  --side:252px;
  --canvas:#f4eef0;
  --surface:#fff;
  --shadow:0 8px 24px rgba(54,3,13,.06);
  --weight-copy:400;
  --weight-control:600;
  --weight-label:650;
  --weight-heading:700;
  --weight-display:760;
}
.dev-side{
  width:var(--side);
  padding:14px 12px 12px;
  background:linear-gradient(175deg,var(--brand-deep),var(--brand-strong) 55%,#4a0614);
  box-shadow:12px 0 35px rgba(63,4,17,.08);
}
.dev-brand{gap:10px;padding:5px 6px 15px}
.dev-brand img{width:48px;height:48px;border-radius:13px}
.dev-brand strong{font-size:14px;font-weight:700}
.dev-brand span{font-size:10px;font-weight:400}
.dev-nav{gap:0;margin:5px 0 10px}
.nav-group{gap:3px;margin:17px 0}
.nav-group>small{padding:0 9px 7px;font-size:10px;font-weight:700;letter-spacing:.1em}
.dev-nav button{min-height:40px;gap:10px;padding:6px 9px;border-radius:9px;font-size:12px;font-weight:600}
.dev-nav button.active{color:var(--brand-deep);background:#fff;box-shadow:0 7px 18px rgba(0,0,0,.13)}
.dev-nav i{width:25px;height:25px;flex-basis:25px;border-radius:7px}
.dev-nav i svg{width:16px;height:16px}
.dev-user{margin-top:auto;padding:12px 6px 0}
.dev-user small,.dev-user span{font-size:9px;font-weight:400}
.dev-user strong{margin:2px 0;font-size:11px;font-weight:700}
.dev-user button{margin-top:8px;font-size:10px;font-weight:700}
.dev-main{margin-left:var(--side)}
.dev-top{height:78px;padding:0 28px;background:rgba(255,255,255,.92);box-shadow:0 8px 30px rgba(130,13,37,.04)}
.dev-top>img{width:33px;height:33px}.dev-top>strong{font-size:13px;font-weight:700}
.developer-only{font-size:10px;font-weight:700}.idle-box{min-width:132px}.idle-box small{font-size:10px;font-weight:400}.idle-box strong{font-size:13px;font-weight:700}
.dev-workspace{min-height:calc(100vh - 78px)}
.dev-subnav{top:78px;height:calc(100vh - 78px)}
.dev-content{padding:24px 28px 68px}
.heading{margin-bottom:20px}.heading small{font-size:10px;font-weight:700}.heading h1{margin:4px 0 6px;font-size:clamp(30px,3vw,38px);font-weight:760}.heading p{font-size:13px;font-weight:400;line-height:1.55}
.stats{gap:13px;margin-bottom:18px}.stat{min-height:128px;padding:18px;border-radius:17px}.stat span{font-size:10px;font-weight:700}.stat strong{margin:11px 0 5px;font-size:28px;font-weight:700}.stat small{font-size:10px;font-weight:400}
.card{padding:22px;border-radius:18px}.card h2,.form-intro h2,.queue-heading h2,.generator-head h2{font-size:18px;font-weight:700}.card>p,.form-card>p,.queue-heading p,.generator-head p{font-size:12px;font-weight:400}
.btn{font-size:12px;font-weight:700}.btn.compact{font-size:11px}
.dev-subnav>header h2{font-size:17px;font-weight:700}.dev-subnav nav strong{font-weight:700}.dev-subnav nav small{font-weight:400}
.purchase-workspace,.overview-generator .purchase-workspace{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}

/* Compact account and sign-out card aligned with the Sales Portal sidebar. */
.dev-user{display:grid;gap:10px;margin-top:auto;padding:11px;border:1px solid rgba(255,255,255,.13);border-radius:13px;background:rgba(255,255,255,.065);box-shadow:0 10px 25px rgba(0,0,0,.1)}
.dev-user-profile{min-width:0;display:flex;align-items:center;gap:10px}
.dev-user-profile>b{width:39px;height:39px;display:grid;place-items:center;flex:0 0 39px;border:2px solid rgba(255,255,255,.62);border-radius:12px;color:var(--brand-deep);background:#fff;font-size:13px;font-weight:800}
.dev-user-profile>div{min-width:0}.dev-user small,.dev-user strong,.dev-user-profile span{display:block}
.dev-user small{color:var(--gold);font-size:8px;font-weight:800;letter-spacing:.09em}
.dev-user strong{margin:2px 0;color:#fff;font-size:11px;font-weight:700}
.dev-user-profile span{overflow:hidden;color:rgba(255,255,255,.56);font-size:8px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}
.dev-user>button{min-height:37px;display:flex;align-items:center;justify-content:center;gap:8px;margin:0;padding:0 10px;border:1px solid rgba(255,255,255,.16);border-radius:9px;color:#e8d5d9;background:rgba(255,255,255,.035);cursor:pointer;font-size:10px;font-weight:700;transition:.18s}
.dev-user>button:hover{color:#fff;background:rgba(255,255,255,.11)}.dev-user>button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.dev-user>button span{color:inherit;font-size:inherit}
@media(max-width:980px){.dev-main{margin-left:0}.dev-top{padding-inline:18px}}

/* v3.2.12 — Website palette and icon-only password visibility controls. */
:root{--canvas:#fbf5ee;--surface:#fff;--ink:#1d1116;--muted:#5d4a51;--line:rgba(82,10,23,.12);--line-strong:rgba(82,10,23,.2)}
html,body{background:radial-gradient(circle at 7% 4%,rgba(255,195,90,.10),transparent 27%),var(--canvas)}
.dev-side{background:radial-gradient(circle at 0 100%,rgba(255,195,90,.14),transparent 27%),linear-gradient(158deg,#2b0710,#1b0409 52%,#3f020b)}
.login-brand{background:radial-gradient(circle at 85% 100%,rgba(255,195,90,.25),transparent 31%),linear-gradient(158deg,#2b0710,#1b0409 52%,#700817)}
.password-field{position:relative;display:block;overflow:visible;border:0;border-radius:11px;background:transparent}
.password-field:focus-within{border:0;box-shadow:none}
.password-field input{min-height:48px;padding-right:54px;border:1px solid var(--line-strong);border-radius:11px;box-shadow:none!important}
.password-field input:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(112,8,23,.09)!important}
.password-field button{position:absolute;top:50%;right:6px;width:38px;min-width:38px;height:38px;min-height:38px;padding:0;border:0;border-radius:9px;color:var(--brand);background:#fff1d8;font-size:0!important;line-height:0;cursor:pointer;transform:translateY(-50%)}
.password-field button:hover{color:#fff;background:var(--brand)}
.password-field button::before{content:"";position:absolute;inset:9px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center/contain no-repeat}
.password-field button.is-password-visible::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 3 18 18'/%3E%3Cpath d='M10.6 10.7a2 2 0 0 0 2.8 2.8M9.9 4.2A10.6 10.6 0 0 1 12 4c6.5 0 10 8 10 8a17 17 0 0 1-2.1 3.1M6.6 6.7C3.5 8.8 2 12 2 12s3.5 8 10 8a9.7 9.7 0 0 0 4.1-.9'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 3 18 18'/%3E%3Cpath d='M10.6 10.7a2 2 0 0 0 2.8 2.8M9.9 4.2A10.6 10.6 0 0 1 12 4c6.5 0 10 8 10 8a17 17 0 0 1-2.1 3.1M6.6 6.7C3.5 8.8 2 12 2 12s3.5 8 10 8a9.7 9.7 0 0 0 4.1-.9'/%3E%3C/svg%3E")}

/* v3.2.14 — canonical public-website palette. */
:root{
  --brand:#7a071b;
  --brand-strong:#3d0510;
  --brand-deep:#240107;
  --gold:#f8c888;
  --gold-soft:#ffe1ae;
  --canvas:#f8efe5;
  --surface:#fffdf9;
  --ink:#261015;
  --muted:#715b61;
  --line:rgba(105,0,25,.14);
  --line-strong:rgba(105,0,25,.23);
  --shadow:0 12px 38px rgba(67,0,16,.08);
  --grad-wine:radial-gradient(circle at 78% 14%,rgba(255,138,0,.16),transparent 28%),radial-gradient(circle at 12% 78%,rgba(255,215,154,.08),transparent 34%),linear-gradient(145deg,#690019 0%,#3b000c 52%,#250007 100%);
}
html,body{background:radial-gradient(circle at 8% 10%,rgba(255,173,24,.06),transparent 25rem),radial-gradient(circle at 94% 42%,rgba(135,1,31,.05),transparent 30rem),var(--canvas)}
.dev-side,.login-brand{background:var(--grad-wine)}
.login-form-wrap{background:linear-gradient(160deg,#fffdf9,var(--canvas))}
.login-form,.card,.stat,.result-scroll,.school-result,.recycle-row,.credential-sheet{background:var(--surface)}
.dev-top{border-bottom-color:rgba(105,0,25,.10);background:rgba(255,253,249,.92);box-shadow:0 8px 30px rgba(67,0,16,.045)}
.dev-side{box-shadow:12px 0 35px rgba(34,0,8,.18)}
.dev-nav button.active{color:var(--brand-strong);background:#fffdf9}
.dev-nav button.active i{background:var(--brand)}
.stat::after{background:linear-gradient(145deg,rgba(178,13,42,.05),rgba(248,200,136,.18))}
.security-summary,.brand-preview{background:var(--grad-wine)}
.btn.primary{background:linear-gradient(135deg,#7a071b,#3d0510);box-shadow:0 8px 20px rgba(122,7,27,.16)}
input:focus,select:focus,textarea:focus{box-shadow:0 0 0 4px rgba(122,7,27,.09)}
.password-field input:focus{box-shadow:0 0 0 4px rgba(122,7,27,.09)!important}

/* v3.2.14 — canonical product-logo geometry across login, navigation,
   credential sheets and branded previews. */
.fatal-state img,.login-brand img,.login-form>img,.dev-brand img,.dev-top>img,.credential-header img,.security-summary img,.brand-preview img{display:block;object-fit:contain;object-position:center;border:0;border-radius:0;background:transparent;box-shadow:none}
.dev-brand img{width:52px;height:52px;filter:drop-shadow(0 8px 14px rgba(0,0,0,.22))}
.dev-top>img{width:36px;height:36px}
.login-brand img{width:84px;height:84px}
.login-access-help{width:min(360px,100%);display:grid;gap:4px;margin:10px 0 0 auto;padding:13px 15px;border:1px solid var(--line);border-radius:13px;background:#fff8ee;color:var(--muted);font-size:12px;line-height:1.55;text-align:left}
.login-access-help strong{color:var(--ink);font-size:13px}
.login-access-help a{color:var(--brand);font-weight:750;text-decoration:none}
.login-form>img{width:68px;height:68px}
.credential-header img,.security-summary img{width:66px;height:66px}
.brand-preview img{width:82px;height:82px}

/* Session Archives: per-school archive rows and the import-code issuer. */
.archive-row{grid-template-columns:230px 1fr;align-items:start}
.archive-row .archive-identity strong{display:block;font-size:15px}
.archive-row .archive-identity small{color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.archive-row dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0}
.archive-row dt{color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.archive-row dd{margin:3px 0 0;font-size:13px;font-weight:650;overflow-wrap:anywhere}
.archive-row .row-actions{grid-column:1/-1}
.archive-row .archive-failure{grid-column:1/-1;margin:0;color:var(--danger);font-size:13px}
.import-code-card header p{max-width:860px}
.import-code-form{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;margin-top:14px}
.import-code-form label{display:grid;gap:6px;flex:1 1 340px;font-size:13px;font-weight:700}
@media(max-width:720px){.archive-row{grid-template-columns:1fr}.archive-row dl{grid-template-columns:1fr 1fr}}
/* Product Updates (v3.2.36): self-contained styles so the same page renders in every Developer Control. */
.update-live-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}
/* The three edition cards wear the School ERP metric-card theme: soft surface gradient, 17px radius, the faint brand circle in the corner. */
.update-live-card{position:relative;min-width:0;min-height:128px;display:flex;flex-direction:column;overflow:hidden;padding:18px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(150deg,var(--surface,#fff),#faf6f5);box-shadow:0 12px 30px rgba(130,13,37,.06)}
.update-live-card::after{content:"";position:absolute;right:-33px;bottom:-39px;width:96px;height:96px;border-radius:50%;background:rgba(130,13,37,.07);box-shadow:0 0 0 18px rgba(219,167,47,.06)}
.update-live-card>span{position:relative;z-index:1;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}
.update-live-card>strong{position:relative;z-index:1;margin:11px 0 5px;color:var(--brand-deep,var(--brand));font-size:25px;line-height:1.05;letter-spacing:-.04em;overflow-wrap:anywhere}
.update-live-card>small{position:relative;z-index:1;color:var(--muted);font-size:11.5px;line-height:1.45}
.update-live-card.is-live>strong{color:var(--brand)}
@media(max-width:1100px){.update-live-grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.update-live-grid{grid-template-columns:1fr}}
.update-upload-card header p{max-width:900px}
.update-upload-card form{margin-top:14px}
.update-upload-progress{grid-column:1/-1;display:grid;gap:6px}
.update-upload-progress>span{display:block;height:8px;border-radius:99px;background:var(--line);overflow:hidden}
.update-upload-progress>span i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--brand),var(--gold,#d99a28));transition:width .4s ease}
.update-upload-progress small{color:var(--muted);font-size:12.5px}
.checkbox-row{display:flex!important;align-items:center;gap:10px;font-weight:600}
.checkbox-row input{width:auto}
.queue-empty{display:grid;gap:4px;padding:26px;text-align:center;color:var(--muted)}
.queue-empty strong{color:var(--ink,#251c1e);font-size:15px}
.queue-empty p{margin:0;font-size:13px}
.update-row{display:grid;grid-template-columns:220px 1fr;gap:12px 18px;padding:16px 4px;border-bottom:1px solid var(--line)}
.update-row:last-child{border-bottom:0}
.update-identity strong{display:block;font-size:15px}
.update-identity small{display:block;margin-top:3px;color:var(--muted);font-size:12px;font-weight:700}
.update-row dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin:0}
.update-row dt{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.update-row dd{margin:3px 0 0;font-size:13px;font-weight:650;overflow-wrap:anywhere}
.update-row dd code{font-size:12px}
.update-row .update-delta{grid-column:1/-1}
.update-row .update-delta summary{cursor:pointer;color:var(--brand);font-size:13px;font-weight:700}
.update-row .update-delta pre{max-height:220px;overflow:auto;margin:8px 0 0;padding:10px;border-radius:8px;background:#28161b;color:#fff;font-size:12px;white-space:pre-wrap}
.update-row .update-notes-form{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:6px}
.update-row .update-notes-form label{display:grid;gap:5px;flex:0 1 200px;font-size:12.5px;font-weight:700}
.update-row .update-notes-form label.grow{flex:1 1 320px}
.update-row .update-notes-form textarea,.update-row .update-notes-form input{font:inherit;padding:7px 9px;border:1px solid var(--line);border-radius:8px}
.update-row .row-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:7px}
.table-scroll{overflow-x:auto}
.update-table{width:100%;border-collapse:collapse;font-size:13px}
.update-table th,.update-table td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;white-space:normal}
.update-table th{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.update-table small{color:var(--muted)}
@media(max-width:720px){.update-row{grid-template-columns:1fr}.update-row dl{grid-template-columns:1fr 1fr}}
.update-upload-card form>label{align-content:start}
.update-upload-card form>label>small{min-height:1.2em}
.update-upload-card select,.update-upload-card input:not([type=checkbox]):not([type=file]){box-sizing:border-box;height:46px}
.update-live-progress{position:relative;z-index:1;display:block;height:6px;margin:6px 0 4px;border-radius:99px;background:var(--line);overflow:hidden}
.update-live-progress i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--brand),var(--gold,#d99a28))}
.update-live-card>em{position:relative;z-index:1;display:block;margin-bottom:6px;color:var(--brand-deep,var(--brand));font-size:12.5px;font-style:normal;font-weight:800}
.update-summary{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px}
.update-summary-chip{display:inline-flex;align-items:center;gap:5px;padding:7px 11px;border-radius:999px;background:var(--gold-soft,#fff3d6);color:var(--brand-deep,#580719);font-size:12.5px;font-weight:650}
.update-summary-chip strong{font-size:14px}

/* Super Admin Console (v1.0.0): the product rail, the console dashboard, embedded Mail Developer Control frames. */
.dev-nav .nav-group+.nav-group{margin-top:14px}
.console-lines{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.console-line-card header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.console-line-card header p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.5}
.console-line-card.is-down{border-color:#e6b1ba;background:#fff7f8}
.console-facts{grid-template-columns:repeat(3,minmax(0,1fr))}
.console-line-card .row-actions{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.console-frame-card{padding:0;overflow:hidden}
.console-frame{display:block;width:100%;min-height:520px;height:720px;border:0;background:transparent}
.console-frame-tall{height:900px}
.web-order dl{grid-template-columns:repeat(3,minmax(0,1fr))}
.dev-top strong{max-width:46vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1100px){.console-lines{grid-template-columns:1fr}}
@media(max-width:720px){.console-facts{grid-template-columns:1fr 1fr}}

/* Access help belongs to the brand panel, and remains visible below sign-in on phones. */
.login-brand .login-access-help{width:min(420px,100%);box-sizing:border-box;margin:26px 0 0;padding:16px 18px;border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:rgba(255,255,255,.88)}
.login-brand .login-access-help strong{color:#fff}.login-brand .login-access-help a{color:#ffe0a2;text-decoration:none}
@media(max-width:720px){.login-brand{display:flex;order:2;padding:0 18px 24px;background:var(--canvas)}.login-brand:after,.login-brand>:not(.login-access-help){display:none}.login-brand .login-access-help{margin:0 auto;background:#fff8ee;border-color:var(--line);color:var(--muted)}.login-brand .login-access-help strong{color:var(--ink)}.login-brand .login-access-help a{color:var(--brand)}.login-form-wrap{min-height:auto;padding:28px 18px}.dev-login{align-content:center;background:var(--canvas)}}

/* ---------------------------------------------------------------------------
   Licensing, onboarding and SMS screens.
   Same tokens and the same table language as the rest of the console; only the
   pieces those pages need that did not exist before.
   --------------------------------------------------------------------------- */
.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:11px}
.metric{position:relative;overflow:hidden;padding:13px 15px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}
.metric::after{content:"";position:absolute;width:66px;height:66px;right:-20px;bottom:-22px;border-radius:50%;background:rgba(112,8,23,.05)}
.metric small{display:block;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.metric strong{display:block;margin-top:4px;font-size:23px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.metric span{display:block;margin-top:2px;font-size:11px;color:var(--muted)}
.metric.warn{border-color:rgba(201,67,10,.34);background:#fff6f1}
.metric.warn strong{color:var(--warning)}

.card-note{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.6}
.detail-subhead{margin:20px 0 9px;font-size:13px;font-weight:800;letter-spacing:.02em}
.detail-subhead small{display:block;font-weight:500;color:var(--muted);font-size:11px;letter-spacing:0}
.detail-list{display:grid;grid-template-columns:minmax(150px,26%) 1fr;gap:0;margin:0}
.detail-list dt{padding:9px 0;border-top:1px solid var(--line);font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.detail-list dd{padding:9px 0;border-top:1px solid var(--line);margin:0;font-size:13px;word-break:break-word}

.empty-cell{padding:26px 12px!important;text-align:center;color:var(--muted)}
.row-actions{display:flex;flex-wrap:wrap;gap:6px}
.danger-text{color:var(--danger);font-weight:700}
.warn-panel{border-color:rgba(201,67,10,.34);background:#fff8f3}
.warn-panel h2{color:var(--warning)}
.blocker-list{margin:6px 0 0;padding-left:18px;color:var(--muted);font-size:13px;line-height:1.75}
.blocker-list b{color:var(--ink)}

.provider-head{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;justify-content:space-between;margin-bottom:12px}
.provider-head h2{margin:0}
.capability-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:5px 14px;margin:0 0 14px;padding:0;list-style:none;font-size:12px;color:var(--muted)}
.capability-list li::before{content:"✓ ";color:var(--success);font-weight:800}
.capability-list li.no::before{content:"✕ ";color:var(--muted)}
.capability-list li.no b{color:var(--muted);font-weight:600}
.capability-list b{color:var(--ink)}

.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:0 16px}
.form-grid label{display:block;margin-bottom:13px;font-size:12px;font-weight:700}
.form-grid label small{display:block;margin-top:4px;font-weight:500;color:var(--muted);font-size:11px;line-height:1.5}
.form-grid label.full,.form-grid .full{grid-column:1/-1}
.form-grid label.switch{display:flex;align-items:flex-start;gap:9px;flex-wrap:wrap}
.form-grid label.switch input{width:auto;margin:3px 0 0}
.form-grid label.switch small{flex-basis:100%;margin-left:25px}
.form-grid input,.form-grid select,.form-grid textarea{width:100%;margin-top:5px;min-height:40px;padding:9px 12px;border:1px solid var(--line-strong);border-radius:9px;background:var(--surface)}
.form-grid textarea{min-height:70px;resize:vertical}
.form-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin:4px 0 2px}

.platform-dialog .dialog-sheet{width:min(760px,94vw);max-height:88vh;overflow:auto;background:var(--surface);border-radius:18px;box-shadow:var(--shadow)}
.platform-dialog .dialog-head{display:flex;gap:12px;align-items:flex-start;padding:20px 22px 10px;border-bottom:1px solid var(--line)}
.platform-dialog .dialog-head h2{margin:0;font-size:18px;font-weight:800}
.platform-dialog .dialog-head p{margin:5px 0 0;color:var(--muted);font-size:12.5px;line-height:1.6;max-width:62ch}
.platform-dialog .dialog-close{margin-left:auto;width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:var(--surface);font-size:19px;line-height:1;cursor:pointer}
.platform-dialog .dialog-body{padding:18px 22px 22px}
.platform-dialog .dialog-panel{margin:0 0 16px;padding:14px 16px;border:1px solid rgba(201,67,10,.3);border-radius:12px}
.platform-dialog .table-wrap{margin-top:12px}

/* A long filter row must wrap under the heading rather than squeeze it: the
   page title is what tells an operator where they are. */
.dev-content .heading:has(.heading-actions .btn:nth-child(4)){display:block}
.dev-content .heading:has(.heading-actions .btn:nth-child(4))>div{max-width:none}
.dev-content .heading .heading-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-top:12px}
.dev-content .heading .heading-actions .btn{min-width:0;padding:0 12px;min-height:33px;font-size:12px}
.dev-brand .brand-tagline{display:block;margin-top:3px;color:rgba(255,255,255,.5);font-size:8.5px;font-weight:800;letter-spacing:.16em}

/* Messaging (SMS & RCS): the operator register and the readiness board.
   The capability list deliberately does NOT reuse .capability-list, whose
   green tick would read as "supported" on a capability nobody has
   established. These carry a four-state tag instead. */
.messaging-capability-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:6px 14px;margin:0 0 14px;padding:0;list-style:none;font-size:12px;color:var(--muted)}
.messaging-capability-list li{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.messaging-codes{word-break:break-word}
.section-heading{margin:26px 0 10px;font-size:15px;letter-spacing:.02em}
.approval-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:10px 0 16px}
.approval-grid>div{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:11px 13px;border:1px solid var(--line);border-radius:10px}
.declared-verified{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.declared-verified h4{margin:0 0 4px}
.declared-verified dl{margin:8px 0 0}
.declared-verified dl>div{display:flex;gap:10px;padding:5px 0;border-bottom:1px solid var(--line);font-size:13px}
.declared-verified dt{min-width:130px;color:var(--muted);text-transform:capitalize}
/* Every table on a console page already sits in a .table-wrap, but nothing
   ever gave the wrapper an overflow. A wide table therefore pushed the PAGE
   sideways instead of scrolling inside its own container. */
.table-wrap{overflow-x:auto}
/* The readiness table's last column carries whole sentences. Left to itself
   the table grows and the reader has to scroll sideways to read a blocker;
   holding the column to a readable measure lets it wrap instead. */
.readiness-table td:last-child{min-width:280px;max-width:560px;white-space:normal}
