:root{
  --bg:#070910;--bg2:#0b0f19;--bg3:#101827;--card:rgba(255,255,255,.065);--card2:rgba(255,255,255,.105);--card3:rgba(255,255,255,.155);--text:#f7f9fd;--text2:#dfe7f6;--muted:#8996aa;--muted2:#68758b;--line:rgba(255,255,255,.12);--line2:rgba(255,255,255,.2);--accent:#a9dcff;--accent2:#69b9ff;--accent3:#4568ff;--danger:#ff6178;--warn:#ffbf72;--ok:#75e2a2;--purple:#bca7ff;--shadow:0 28px 90px rgba(0,0,0,.38);--soft-shadow:0 14px 44px rgba(0,0,0,.24);--r:26px;--r2:18px;--ease:cubic-bezier(.2,.9,.2,1);--sidebar:286px}
html[data-theme="light"]{--bg:#f5f7fb;--bg2:#ffffff;--bg3:#edf2f8;--card:rgba(255,255,255,.72);--card2:rgba(255,255,255,.92);--card3:rgba(255,255,255,.98);--text:#0b1220;--text2:#273449;--muted:#627086;--muted2:#8792a5;--line:rgba(12,22,39,.12);--line2:rgba(12,22,39,.18);--accent:#145da0;--accent2:#2368ff;--accent3:#4f70ff;--shadow:0 26px 80px rgba(26,44,73,.13);--soft-shadow:0 14px 34px rgba(26,44,73,.10)}
*{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Inter","Segoe UI",sans-serif;background:radial-gradient(circle at 10% 0%,rgba(89,145,255,.28) 0,transparent 30%),radial-gradient(circle at 90% 6%,rgba(118,226,255,.14) 0,transparent 28%),linear-gradient(145deg,var(--bg),#05060a 52%,var(--bg2));color:var(--text);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision;overflow-x:hidden}html[data-theme="light"] body{background:radial-gradient(circle at 8% 0%,rgba(105,185,255,.25) 0,transparent 32%),radial-gradient(circle at 92% 8%,rgba(82,104,255,.10) 0,transparent 28%),linear-gradient(145deg,#f5f7fb,#ffffff 55%,#eef4fb)}a{color:var(--accent);text-decoration:none;transition:color .2s var(--ease),background .2s var(--ease),border .2s var(--ease),transform .2s var(--ease)}a:hover{color:var(--text)}input,select,textarea,button{font:inherit}button{color:inherit}code{font-size:.82rem;color:var(--accent)}::selection{background:rgba(169,220,255,.28)}.ambient{position:fixed;pointer-events:none;z-index:-1;border-radius:50%;filter:blur(40px);opacity:.52}.ambient-a{width:360px;height:360px;top:-180px;left:18%;background:rgba(96,156,255,.23)}.ambient-b{width:420px;height:420px;right:-180px;top:22%;background:rgba(127,219,255,.12)}.shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:24px 18px;border-right:1px solid var(--line);background:linear-gradient(180deg,rgba(7,9,16,.78),rgba(8,11,19,.64));backdrop-filter:blur(30px);z-index:30}.brand-block{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;gap:12px;align-items:center;color:var(--text)}.brand.large{margin-bottom:28px}.brand-mark{width:42px;height:42px;border-radius:16px;background:linear-gradient(135deg,#fff 0,#bde9ff 36%,#5eaaff 62%,#4968ff 100%);display:grid;place-items:center;color:#05060a;font-weight:730;box-shadow:0 18px 56px rgba(93,169,255,.34)}.brand-text strong{display:block;letter-spacing:.16em;font-size:.75rem;font-weight:680}.brand-text small{display:block;color:var(--muted);font-size:.78rem;margin-top:1px}.nav-stack{display:grid;gap:7px;margin-top:34px}.nav-item{min-height:46px;display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:16px;color:var(--text2);border:1px solid transparent}.nav-item:hover{background:var(--card);border-color:var(--line);color:var(--text);transform:translateX(2px)}.nav-item.active{background:var(--card3);border-color:var(--line2);color:var(--text);box-shadow:0 18px 50px rgba(0,0,0,.16)}.nav-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:11px;background:rgba(255,255,255,.06);color:var(--accent);font-size:.78rem}.side-footer{position:absolute;bottom:18px;left:18px;right:18px;color:var(--muted);font-size:.76rem;border-top:1px solid var(--line);padding-top:14px;display:flex;align-items:center;gap:10px}.side-footer strong{display:block;color:var(--text2);font-weight:520}.side-footer small{display:block}.status-dot{width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 7px rgba(117,226,162,.1)}.main{padding:30px;max-width:1540px;width:100%;margin:0 auto}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.topbar-left{display:flex;align-items:center;gap:14px;min-width:0}.eyebrow{margin:0 0 7px;color:var(--accent);font-size:.71rem;text-transform:uppercase;letter-spacing:.22em;font-weight:620}.topbar h1,h1,h2,h3,h4{margin:0;font-weight:520;letter-spacing:-.038em;line-height:1.04}.topbar h1{font-size:clamp(1.9rem,3.4vw,3.25rem)}.topbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.quick-action{min-height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:9px 14px;color:var(--text2)}.userchip{display:flex;gap:10px;align-items:center;padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--text2);box-shadow:var(--soft-shadow)}.userchip span{color:var(--muted);font-size:.78rem}.icon-btn{width:40px;height:40px;border:1px solid var(--line);background:var(--card);border-radius:50%;display:inline-grid;place-items:center;cursor:pointer;box-shadow:var(--soft-shadow)}.icon-btn:hover{transform:translateY(-1px);border-color:var(--line2)}.menu-btn,.sidebar-close{display:none}.hero-card,.case-hero,.panel,.metric,.auth-card,.install-card{border:1px solid var(--line);background:linear-gradient(180deg,var(--card2),var(--card));border-radius:var(--r);box-shadow:var(--shadow);backdrop-filter:blur(26px)}.hero-card{display:flex;justify-content:space-between;gap:28px;align-items:center;padding:32px;margin-bottom:20px;position:relative;overflow:hidden}.hero-card:before{content:"";position:absolute;inset:-1px;background:radial-gradient(circle at 18% 0%,rgba(169,220,255,.17),transparent 32%),radial-gradient(circle at 88% 15%,rgba(69,104,255,.16),transparent 34%);pointer-events:none}.hero-copy{position:relative;z-index:1}.hero-card h2{font-size:clamp(2.15rem,4.7vw,5.45rem);max-width:980px;letter-spacing:-.065em}.hero-card p{max-width:820px;color:var(--muted);font-size:1.06rem}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.command-orb{position:relative;z-index:1;width:174px;height:174px;border-radius:50%;display:grid;place-items:center;text-align:center;background:radial-gradient(circle at 50% 25%,rgba(169,220,255,.28),rgba(15,23,38,.95) 58%,rgba(5,7,11,.92));border:1px solid var(--line2);box-shadow:inset 0 0 48px rgba(105,185,255,.12),0 30px 80px rgba(0,0,0,.28);flex:0 0 auto}.command-orb span{font-size:.74rem;color:var(--muted);text-transform:uppercase;letter-spacing:.16em}.command-orb strong{font-size:2rem;font-weight:420;line-height:.9;letter-spacing:-.08em}.command-orb small{color:var(--muted);padding:0 18px}.metric-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:20px}.metric{padding:19px;min-height:126px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.metric:after{content:"";position:absolute;width:140px;height:140px;border-radius:50%;right:-70px;top:-80px;background:rgba(169,220,255,.08)}.metric span{display:block;color:var(--muted);font-size:.82rem}.metric strong{display:block;font-size:2.45rem;font-weight:430;letter-spacing:-.07em;line-height:1}.metric small{display:block;color:var(--muted2);margin-top:10px}.metric-large{grid-column:span 1}.dashboard-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.panel{padding:22px;margin-bottom:0}.panel.narrow{max-width:980px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.panel-head h3{font-size:1.4rem}.panel-note{color:var(--muted);font-size:.82rem;border:1px solid var(--line);padding:6px 9px;border-radius:999px}.table-wrap{overflow:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:separate;border-spacing:0 8px}th{text-align:left;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.13em;font-weight:560;padding:0 12px;white-space:nowrap}td{padding:14px 12px;background:rgba(255,255,255,.045);border-top:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:middle}html[data-theme="light"] td{background:rgba(255,255,255,.72)}tr td:first-child{border-left:1px solid var(--line);border-radius:15px 0 0 15px}tr td:last-child{border-right:1px solid var(--line);border-radius:0 15px 15px 0}td small{display:block;color:var(--muted);margin-top:3px}.premium-table tbody tr{transition:transform .18s var(--ease),filter .18s var(--ease)}.premium-table tbody tr:hover{transform:translateY(-1px);filter:brightness(1.08)}.risk,.confidence-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid var(--line);font-size:.82rem;white-space:nowrap}.risk.low_visible_risk,.confidence-pill.confirmed{color:var(--ok)}.risk.watchlist{color:var(--accent)}.risk.suspicious,.confidence-pill.medium{color:var(--warn)}.risk.high_risk,.risk.critical,.risk.severe,.confidence-pill.low{color:var(--danger)}.confidence-pill.high{color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 16px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.075);color:var(--text);cursor:pointer;box-shadow:var(--soft-shadow)}.btn:hover{transform:translateY(-1px);border-color:var(--line2)}.btn.primary{background:linear-gradient(135deg,#f3fbff,#97d8ff 44%,#4f70ff);color:#05060a;border:0;font-weight:640}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-stack{display:grid;gap:14px}.full{grid-column:1/-1}label{display:grid;gap:7px;color:var(--text2)}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.06);color:var(--text);padding:13px 14px;outline:none;transition:border .18s var(--ease),box-shadow .18s var(--ease),background .18s var(--ease)}html[data-theme="light"] input,html[data-theme="light"] select,html[data-theme="light"] textarea{background:rgba(255,255,255,.82)}input:focus,select:focus,textarea:focus{border-color:rgba(169,220,255,.58);box-shadow:0 0 0 5px rgba(169,220,255,.10)}textarea{resize:vertical}.hint,.muted{color:var(--muted)}.microcopy{font-size:.9rem;margin-bottom:0}.flash{padding:12px 14px;border-radius:16px;background:rgba(169,220,255,.12);border:1px solid rgba(169,220,255,.22);margin-bottom:14px}.flash.danger{background:rgba(255,93,115,.12);border-color:rgba(255,93,115,.26)}.flash.success{background:rgba(113,226,155,.12);border-color:rgba(113,226,155,.26)}.auth-body,.install-body{display:grid;place-items:center;min-height:100vh;padding:20px}.auth-card{width:min(520px,100%);padding:34px}.auth-card h1,.install-card h1{font-size:clamp(2rem,5vw,4rem);line-height:1.02}.auth-card p,.install-card p{color:var(--muted)}.install-card{width:min(1040px,100%);padding:34px}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:24px 0}.check{padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid var(--line);color:var(--text2)}.check span{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;margin-right:8px}.check.ok span{background:rgba(113,226,155,.15);color:var(--ok)}.check.bad span{background:rgba(255,93,115,.15);color:var(--danger)}.case-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:28px;margin-bottom:16px}.case-hero h2{font-size:clamp(2rem,5vw,4.2rem)}.score-orb{width:148px;height:148px;border-radius:50%;display:grid;place-items:center;text-align:center;background:radial-gradient(circle,#172b47,#0d111b);border:1px solid var(--line);flex:0 0 auto}.score-orb strong{font-size:1.6rem;font-weight:430;line-height:1}.score-orb span{font-size:.75rem;color:var(--muted);padding:0 14px}.tabs{display:flex;gap:8px;overflow:auto;margin-bottom:16px;-webkit-overflow-scrolling:touch}.tabs a{padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid var(--line);color:var(--text2);white-space:nowrap}.tabs .active{background:var(--text);color:var(--bg)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.meta{display:grid;grid-template-columns:160px 1fr;gap:9px}.meta dt{color:var(--muted)}.meta dd{margin:0}.system-card{padding:16px;border-radius:18px;border:1px solid var(--line);background:rgba(255,255,255,.05);margin:16px 0}.system-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.system-card.mini{margin:0;min-height:86px}.system-card.mini span{display:block;color:var(--muted);font-size:.78rem}.system-card.mini strong{display:block;margin-top:8px;font-weight:520}.empty,.empty-state{text-align:center;color:var(--muted);padding:30px!important}.empty-state{border:1px dashed var(--line);border-radius:18px;background:rgba(255,255,255,.035);display:grid;gap:4px}.empty-state strong{color:var(--text2);font-weight:520}.bar-list{display:grid;gap:15px}.bar-row{display:grid;gap:7px}.bar-label{display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--text2)}.bar-label strong{font-weight:520}.bar-track{height:10px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden;border:1px solid var(--line)}.bar-fill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent2),var(--accent3));box-shadow:0 0 24px rgba(105,185,255,.24)}.bar-fill.low_visible_risk{background:linear-gradient(90deg,#75e2a2,#c8ffd9)}.bar-fill.watchlist,.bar-fill.blue{background:linear-gradient(90deg,#86d3ff,#5274ff)}.bar-fill.suspicious{background:linear-gradient(90deg,#ffbf72,#ffdca4)}.bar-fill.high_risk,.bar-fill.critical,.bar-fill.severe{background:linear-gradient(90deg,#ff6178,#ff9b73)}.compact-bars{gap:12px}.confidence-rings{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.ring-card{display:grid;place-items:center;gap:8px;padding:12px;border-radius:18px;border:1px solid var(--line);background:rgba(255,255,255,.045)}.ring-card strong{font-size:.8rem;font-weight:520;color:var(--text2)}.mini-ring{--p:0;width:66px;height:66px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent2) calc(var(--p)*1%),rgba(255,255,255,.08) 0);position:relative}.mini-ring:after{content:"";position:absolute;inset:8px;border-radius:50%;background:var(--bg2);border:1px solid var(--line)}.mini-ring span{position:relative;z-index:1;font-weight:560}.signal-family-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.family-pill{display:grid;grid-template-columns:1fr 70px 34px;gap:10px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.045)}.family-pill span{font-size:.82rem;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.family-pill div{height:6px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}.family-pill i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent2),var(--purple))}.family-pill strong{text-align:right;font-weight:520}.ops-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-top:1px solid var(--line);color:var(--muted)}.ops-row strong{color:var(--text);font-weight:520}.timeline-list{display:grid;gap:12px}.timeline-item{display:grid;grid-template-columns:18px 1fr;gap:11px;align-items:start}.timeline-item>span{width:10px;height:10px;margin-top:7px;border-radius:50%;background:var(--accent2);box-shadow:0 0 0 6px rgba(105,185,255,.1)}.timeline-item.severity-warning>span{background:var(--warn);box-shadow:0 0 0 6px rgba(255,191,114,.1)}.timeline-item.severity-critical>span{background:var(--danger);box-shadow:0 0 0 6px rgba(255,97,120,.1)}.timeline-item strong{display:block;font-weight:520}.timeline-item small{display:block;color:var(--muted);margin-top:2px}.chip-grid{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;border:1px solid var(--line);background:rgba(255,255,255,.055);border-radius:999px;padding:7px 10px;color:var(--text2);font-size:.82rem}.inline-form{display:inline-flex;margin-left:6px}.role-list{display:grid;gap:10px}.role-row{display:grid;gap:3px;padding:14px 15px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.045);color:var(--text)}.role-row span,.role-row small{color:var(--muted)}.role-row.active{background:rgba(255,255,255,.14);border-color:var(--line2)}.permission-section{padding:16px 0;border-top:1px solid var(--line)}.permission-section:first-of-type{border-top:0;padding-top:0}.permission-section h4{margin:0 0 12px;font-weight:520;letter-spacing:-.02em}.checkline{display:flex;grid-template-columns:none;align-items:flex-start;gap:12px;padding:10px 0;color:var(--text)}.checkline input{width:auto;margin-top:4px}.checkline span{display:grid}.checkline small{color:var(--muted);display:block}.form-grid.compact{grid-template-columns:1fr 220px 1fr auto;align-items:end}.form-actions{display:flex;gap:8px;align-items:end}.risk.disabled,.risk.locked{color:var(--danger)}.sidebar-scrim{display:none}.skeleton{position:relative;overflow:hidden;background:rgba(255,255,255,.06);border-radius:14px}.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.13),transparent);animation:shimmer 1.8s infinite}@keyframes shimmer{to{transform:translateX(100%)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(max-width:1180px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.span-4,.span-5,.span-6,.span-7,.span-8{grid-column:span 12}.confidence-rings{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:980px){:root{--sidebar:286px}.shell{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;width:min(88vw,var(--sidebar));height:100vh;transform:translateX(-105%);transition:transform .24s var(--ease);box-shadow:30px 0 80px rgba(0,0,0,.36)}body.sidebar-open .sidebar{transform:translateX(0)}.sidebar-scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:.22s var(--ease);z-index:20}body.sidebar-open .sidebar-scrim{opacity:1;visibility:visible}.menu-btn,.sidebar-close{display:inline-grid}.side-footer{position:relative;left:auto;right:auto;bottom:auto;margin-top:24px}.main{padding:20px}.topbar{align-items:flex-start;flex-direction:column}.topbar-actions{width:100%;justify-content:flex-start}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.span-4,.span-5,.span-6,.span-7,.span-8{grid-column:1}.grid-2,.form-grid{grid-template-columns:1fr}.hero-card,.case-hero{align-items:flex-start;flex-direction:column}.command-orb{width:132px;height:132px}.command-orb strong{font-size:1.5rem}.score-orb{width:116px;height:116px}.check-grid{grid-template-columns:1fr}.form-grid.compact{grid-template-columns:1fr}.roles-layout{grid-template-columns:1fr}.sidebar nav{padding-bottom:10px}}@media(max-width:640px){body{font-size:14px}.main{padding:16px}.metric-grid{grid-template-columns:1fr}.hero-card,.case-hero,.panel,.metric,.auth-card,.install-card{border-radius:21px;padding:20px}.hero-card h2{font-size:2.55rem}.topbar h1{font-size:2.05rem}.topbar-actions{gap:8px}.userchip{width:100%;justify-content:space-between}.quick-action{flex:1}.confidence-rings,.signal-family-grid,.system-grid{grid-template-columns:1fr 1fr}td,th{white-space:nowrap}.family-pill{grid-template-columns:1fr 52px 28px}.brand-text strong{letter-spacing:.12em}}@media(max-width:420px){.confidence-rings,.signal-family-grid,.system-grid{grid-template-columns:1fr}.hero-actions .btn{width:100%}.topbar-left{align-items:flex-start}.topbar-actions .icon-btn{display:none}}
/* Stage 4 Case Dossier refinements */
.compact-hero{padding:26px 28px}.compact-hero h2{font-size:clamp(2rem,4vw,4.2rem)}.case-wizard{gap:18px}.form-grid.two{grid-template-columns:1fr 1fr}.filterbar{margin:14px 0 18px;padding:14px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.035)}.priority{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:.78rem;color:var(--text2);background:rgba(255,255,255,.05)}.priority.low{color:var(--ok)}.priority.high{color:var(--warn)}.priority.urgent,.priority.critical{color:var(--danger);background:rgba(255,97,120,.08)}.mini-progress{height:5px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden;margin-top:8px;max-width:220px}.mini-progress span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent2),var(--purple))}.mini-progress.big{height:7px;margin:10px auto 4px;max-width:130px}.dossier-hero{align-items:stretch}.score-stack{text-align:center;display:grid;align-content:center;justify-items:center}.score-stack small{color:var(--muted)}.dossier-tabs a{display:inline-flex;align-items:center;gap:6px}.summary-box{border:1px solid var(--line);background:rgba(255,255,255,.04);border-radius:18px;padding:15px;margin-top:15px}.summary-box strong{font-weight:520}.summary-box p{margin:.5rem 0 0;color:var(--muted)}.summary-box.public{background:rgba(117,226,162,.045)}.source-card,.note-card,.signal-card,.entity-card{border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.045);padding:15px}.source-card strong,.note-card strong,.signal-card strong,.entity-card strong{display:block;font-weight:520;color:var(--text)}.source-card p,.note-card p,.signal-card p{color:var(--muted);margin:.55rem 0}.source-card small,.note-card small,.signal-card small,.entity-card small{display:block;color:var(--muted2)}.signal-list{display:grid;gap:10px}.signal-card{border-left:4px solid var(--accent2)}.signal-card.severity-high{border-left-color:var(--warn)}.signal-card.severity-critical{border-left-color:var(--danger)}.entity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.entity-card span{display:block;word-break:break-word;color:var(--accent);margin:7px 0}.form-stack .form-grid.two{display:grid}.tabs.dossier-tabs{position:sticky;top:0;z-index:5;padding:6px 0;background:linear-gradient(180deg,var(--bg),rgba(0,0,0,0))}.check-grid{display:grid;gap:10px}.checkline{border:1px solid var(--line);border-radius:16px;padding:12px!important;background:rgba(255,255,255,.04)}@media(max-width:760px){.form-grid.two,.entity-grid{grid-template-columns:1fr}.filterbar{padding:12px}.compact-hero{padding:20px}.tabs.dossier-tabs{top:0}}
/* Stage 5 Evidence / Entity / Signal intelligence refinements */
.grade-badge,.status-pill,.severity{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:5px 9px;background:rgba(255,255,255,.06);font-size:.78rem;white-space:nowrap}.grade-A1,.grade-A2{color:var(--ok);background:rgba(117,226,162,.08)}.grade-B1,.grade-B2{color:var(--accent);background:rgba(134,211,255,.08)}.grade-C1{color:var(--warn);background:rgba(255,191,114,.08)}.grade-C2{color:var(--muted)}.status-reviewed{color:var(--ok)}.status-needs_review{color:var(--warn)}.status-rejected{color:var(--danger)}.status-draft{color:var(--accent)}.severity-critical{color:var(--danger)}.severity-high{color:var(--warn)}.severity-medium{color:var(--accent)}.severity-low{color:var(--muted)}.entity-risk.unknown{color:var(--muted)}.entity-risk.low{color:var(--ok)}.entity-risk.medium{color:var(--accent)}.entity-risk.high{color:var(--warn)}.entity-risk.critical{color:var(--danger)}.evidence-detail-grid{margin-top:16px}.top-gap{margin-top:16px}.inline-danger{margin-top:14px}.btn.danger{background:rgba(255,97,120,.1);border-color:rgba(255,97,120,.28);color:var(--danger)}.meta{display:grid;grid-template-columns:minmax(120px,190px) 1fr;gap:10px 16px}.meta dt{color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.12em}.meta dd{margin:0;color:var(--text2);word-break:break-word}.evidence-source-strip{display:flex;gap:8px;flex-wrap:wrap}.entity-risk{min-width:74px;justify-content:center}.signal-discipline{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}@media(max-width:720px){.meta{grid-template-columns:1fr}.meta dt{margin-top:8px}.evidence-detail-grid{margin-top:12px}}


/* Stage 6 Safe Collector refinements */
.confidence-pill.queued{color:var(--accent)}
.confidence-pill.running{color:var(--purple)}
.confidence-pill.completed{color:var(--ok)}
.confidence-pill.failed,.confidence-pill.blocked{color:var(--danger)}
.chip.active{background:var(--card3);border-color:var(--line2);color:var(--text)}
.filter-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.inline-form{gap:8px;align-items:center}

/* Stage 7 OpenAI Intelligence Engine refinements */
.codebox{white-space:pre-wrap;word-break:break-word;max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:18px;background:rgba(0,0,0,.22);padding:14px;color:var(--text2);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:.82rem;line-height:1.55}.codebox.tall{max-height:620px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace}.button-row{display:flex;gap:10px;flex-wrap:wrap}.confidence-pill.waiting{color:var(--purple)}.confidence-pill.needs_review{color:var(--warn)}.confidence-pill.cancelled{color:var(--muted)}.confidence-pill.valid{color:var(--ok)}.confidence-pill.invalid{color:var(--danger)}

/* Stage 8 Deterministic + AI-Assisted Scoring Engine */
.score-stage{display:flex;gap:22px;align-items:center;margin:10px 0 18px;flex-wrap:wrap}.score-orb.giant{width:170px;height:170px}.score-orb.giant strong{font-size:2.4rem}.meta.compact{grid-template-columns:130px 1fr;align-self:center;min-width:280px}.score-family-list{display:grid;gap:10px}.score-family-row{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(120px,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.045);padding:12px 14px}.score-family-row strong{display:block;font-weight:530;color:var(--text)}.score-family-row small{display:block;color:var(--muted);margin-top:2px}.score-family-row b{font-weight:520;color:var(--text2);white-space:nowrap}.scorebar{height:8px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}.scorebar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent2),var(--purple))}.inner-grid{margin-top:16px}.summary-box ul{margin:.7rem 0 0;padding-left:1.1rem;color:var(--muted)}.summary-box li{margin:.35rem 0}.compact-list .score-family-row{grid-template-columns:1fr auto}.danger-zone{margin-top:18px;border:1px solid rgba(255,97,120,.25);border-radius:20px;padding:13px;background:rgba(255,97,120,.045)}.danger-zone summary{cursor:pointer;color:var(--danger);font-weight:520}.risk.critical_likely_malicious,.risk.severe_confirmed_or_near_confirmed{color:var(--danger)}.confidence-pill.score_review_required,.confidence-pill.review_required{color:var(--warn)}.confidence-pill.score_reviewed,.confidence-pill.review_not_required{color:var(--ok)}@media(max-width:760px){.score-family-row{grid-template-columns:1fr}.score-stage{align-items:flex-start}.score-orb.giant{width:135px;height:135px}.score-orb.giant strong{font-size:1.8rem}.meta.compact{grid-template-columns:1fr;min-width:0}}
.report-preview{border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.045);padding:24px;color:var(--text2);overflow:auto;max-width:100%}.report-preview h2{font-size:2rem;margin-bottom:14px}.report-preview h3{font-size:1.18rem;margin:24px 0 8px}.report-preview p,.report-preview li{color:var(--text2)}.report-preview small{color:var(--muted)}.top-gap{margin-top:16px}.button-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.btn.danger{border-color:rgba(255,97,120,.35);color:var(--danger);background:rgba(255,97,120,.08)}

/* Stage 11 Autopilot refinements */
.code-block{display:block;white-space:pre-wrap;word-break:break-word;padding:16px 18px;border:1px solid var(--line);border-radius:18px;background:rgba(0,0,0,.22);color:var(--text);font-size:.86rem;line-height:1.6}
html[data-theme="light"] .code-block{background:rgba(255,255,255,.72)}
.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0}
.btn.tiny,.tiny{font-size:.78rem;padding:6px 10px;border-radius:999px;min-height:auto}
.compact-form{margin:0 0 18px}

/* Stage 12 Public Portal */
.public-body{min-height:100vh;background:var(--bg);color:var(--text)}
.public-topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px clamp(18px,4vw,58px);backdrop-filter:blur(26px);background:linear-gradient(180deg,rgba(8,10,18,.82),rgba(8,10,18,.52));border-bottom:1px solid var(--line)}
html[data-theme="light"] .public-topbar{background:rgba(247,249,252,.82)}
.public-brand{text-decoration:none;color:var(--text)}
.public-nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.public-nav a{color:var(--muted);text-decoration:none;padding:9px 12px;border-radius:999px;border:1px solid transparent;font-size:.88rem}.public-nav a:hover{color:var(--text);background:rgba(255,255,255,.06);border-color:var(--line)}
.public-main{width:min(1180px,calc(100% - 36px));margin:0 auto;padding:42px 0 64px}.public-footer{width:min(1180px,calc(100% - 36px));margin:0 auto 34px;padding:22px;border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.045);display:flex;gap:18px;justify-content:space-between;align-items:center;color:var(--muted)}.public-footer strong{display:block;color:var(--text);font-weight:520}.public-footer span{display:block;margin-top:4px}.public-footer-links{display:flex;gap:8px;flex-wrap:wrap}.public-footer-links a{color:var(--muted);text-decoration:none;border:1px solid var(--line);padding:8px 10px;border-radius:999px}.public-hero-card h1{font-size:clamp(2.7rem,7vw,6.6rem);letter-spacing:-.065em;line-height:.93;margin:0 0 18px}.hero-copy{max-width:760px;font-size:1.08rem;color:var(--muted);line-height:1.75}.public-check-form{display:flex;gap:10px;margin:24px 0 16px;max-width:760px}.public-check-form input{flex:1;min-width:220px}.public-result{border-left:4px solid var(--accent)}.public-result.critical{border-left-color:var(--danger)}.public-result.suspicious{border-left-color:var(--warn)}.public-result.low{border-left-color:var(--ok)}.public-result.unresolved{border-left-color:var(--accent)}.muted-list{margin:.7rem 0 0;padding-left:1.1rem;color:var(--muted);line-height:1.65}.muted-list li{margin:.35rem 0}.public-body .source-card{text-decoration:none;color:inherit}.public-body .source-card:hover{border-color:var(--line2);transform:translateY(-1px)}
@media(max-width:760px){.public-topbar{position:relative;align-items:flex-start;flex-direction:column}.public-nav{justify-content:flex-start}.public-main{padding-top:28px}.public-check-form{flex-direction:column}.public-footer{align-items:flex-start;flex-direction:column}.public-hero-card h1{font-size:3.1rem}}


/* Stage 13 production console refinements */
.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;margin-bottom:24px}.hero-card{position:relative;padding:30px;border:1px solid var(--border);background:linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.035));border-radius:28px;box-shadow:var(--shadow)}.hero-card h2{font-size:64px;letter-spacing:-.06em;margin:8px 0}.meter{height:10px;background:rgba(255,255,255,.08);border-radius:999px;overflow:hidden;margin:18px 0}.meter span{display:block;height:100%;background:linear-gradient(90deg,rgba(92,200,255,.8),rgba(255,255,255,.9));border-radius:999px}.pill-row{display:flex;flex-wrap:wrap;gap:8px}.action-row{margin:12px 0}.form-inline{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.form-inline input{max-width:110px}.btn.mini{padding:7px 10px;font-size:12px}.risk-watch{border-color:rgba(255,190,90,.35);background:rgba(255,190,90,.12);color:#ffd28a}.risk-critical{border-color:rgba(255,90,110,.42);background:rgba(255,90,110,.13);color:#ff9baa}.risk-low{border-color:rgba(100,220,160,.36);background:rgba(100,220,160,.12);color:#9af0bd}@media(max-width:900px){.hero-grid{grid-template-columns:1fr}.hero-card h2{font-size:48px}}

/* Stage 15 Mobile Responsiveness Rootfix
   Surgical UI-only hardening for all admin pages. Keeps functionality and routes untouched. */
@media (max-width: 820px) {
  html, body { width: 100%; max-width: 100%; overflow-x: hidden; }
  body { text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
  .shell, .main, .topbar, .panel, .hero-card, .case-hero, .metric, .auth-card, .install-card,
  .filterbar, .table-wrap, .tabs, .dashboard-grid, .grid-2, .form-grid, .metric-grid,
  .system-grid, .signal-family-grid, .evidence-detail-grid, .entity-grid, .hero-grid,
  form, fieldset, label, input, select, textarea { min-width: 0; max-width: 100%; }
  .main { width: 100%; overflow-x: clip; }
  .panel, .hero-card, .case-hero, .metric, .auth-card, .install-card { overflow-wrap: anywhere; }
  .panel > *, .hero-card > *, .case-hero > * { min-width: 0; }
  .table-wrap { width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
  .table-wrap table { width: max-content; min-width: min(680px, calc(100vw - 48px)); max-width: none; }
  .premium-table { font-size: .92rem; }
  th { letter-spacing: .10em; }
  td, th { padding-left: 10px; padding-right: 10px; }
  .tabs, .dossier-tabs { display: flex; flex-wrap: nowrap; overflow-x: auto; gap: 8px; padding-bottom: 6px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .tabs::-webkit-scrollbar, .dossier-tabs::-webkit-scrollbar { display: none; }
  .tabs a, .tabs button, .dossier-tabs a, .dossier-tabs button { flex: 0 0 auto; white-space: nowrap; }
  .filterbar, .filter-row, .button-row, .form-actions, .inline-form, .pill-row, .action-row { min-width: 0; max-width: 100%; }
  .filter-row, .button-row, .form-actions, .inline-form, .pill-row { flex-wrap: wrap; }
  .inline-form input, .inline-form select, .inline-form .btn { min-width: 0; max-width: 100%; }
  input, select, textarea { font-size: 16px; } /* prevent iOS Safari form zoom */
  select { background-position: right 12px center; }
  .meta, .meta.compact, dl.meta { grid-template-columns: 1fr !important; min-width: 0; }
  .codebox, .code-block, .report-preview { max-width: 100%; overflow-x: auto; word-break: break-word; overflow-wrap: anywhere; }
  .panel-head { flex-wrap: wrap; min-width: 0; }
  .panel-head > * { min-width: 0; }
  .panel-note { max-width: 100%; white-space: normal; }
}

@media (max-width: 640px) {
  .main { padding-left: 12px; padding-right: 12px; }
  .topbar { gap: 12px; margin-bottom: 14px; }
  .topbar-left { width: 100%; min-width: 0; }
  .topbar-left h1, .topbar h1 { font-size: clamp(1.55rem, 9vw, 2.05rem); letter-spacing: -.045em; }
  .eyebrow { letter-spacing: .18em; font-size: .64rem; }
  .topbar-actions { gap: 7px; }
  .quick-action, .topbar-actions .btn { flex: 1 1 auto; min-width: 0; }
  .userchip { min-width: 0; overflow: hidden; }
  .userchip a, .userchip span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .hero-card, .case-hero, .panel, .metric, .auth-card, .install-card { padding: 16px; border-radius: 20px; }
  .hero-card h2, .case-hero h2, .compact-hero h2 { font-size: clamp(2rem, 12vw, 3rem); letter-spacing: -.06em; }
  .hero-card p, .case-hero p, .panel p { overflow-wrap: anywhere; }
  .metric strong { font-size: 2rem; }
  .btn { min-height: 42px; padding: 10px 14px; }
  .form-actions .btn, .button-row .btn { flex: 1 1 auto; }
  .confidence-rings, .signal-family-grid, .system-grid, .metric-grid, .dashboard-grid, .grid-2,
  .form-grid, .form-grid.two, .form-grid.three, .entity-grid, .hero-grid { grid-template-columns: 1fr !important; }
  .span-4, .span-5, .span-6, .span-7, .span-8 { grid-column: 1 / -1 !important; }
  .family-pill, .score-family-row, .role-row, .ops-row, .bar-row { grid-template-columns: 1fr !important; }
  .table-wrap { margin-left: -2px; margin-right: -2px; padding-bottom: 4px; }
  .table-wrap table { min-width: min(620px, calc(100vw - 28px)); }
  .empty-state { min-width: 0; }
}

@media (max-width: 420px) {
  .main { padding-left: 10px; padding-right: 10px; }
  .hero-card, .case-hero, .panel, .metric, .auth-card, .install-card { padding: 14px; border-radius: 18px; }
  .topbar-left { gap: 10px; }
  .icon-btn { width: 38px; height: 38px; }
  .btn, .quick-action { width: auto; }
  .panel-head h3 { font-size: 1.18rem; }
  .table-wrap table { min-width: 560px; }
}


/* Stage 17 PWA App Shell + no-zoom rootfix */
html.sf-pwa-ready, html.sf-pwa-ready body {
  overscroll-behavior-x: none;
  -webkit-text-size-adjust: 100%;
  touch-action: manipulation;
}
html.sf-pwa-standalone body {
  min-height: 100svh;
}
.sf-pwa-install-hint {
  position: fixed;
  left: max(14px, env(safe-area-inset-left));
  right: max(14px, env(safe-area-inset-right));
  bottom: calc(92px + env(safe-area-inset-bottom));
  z-index: 9998;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2px 12px;
  align-items: center;
  padding: 13px 14px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(8,12,20,.86);
  backdrop-filter: blur(28px);
  box-shadow: 0 20px 70px rgba(0,0,0,.36);
  color: var(--text);
  max-width: 520px;
  margin: 0 auto;
}
.sf-pwa-install-hint strong { font-size: .88rem; font-weight: 620; }
.sf-pwa-install-hint span { grid-column: 1; color: var(--muted); font-size: .78rem; }
.sf-pwa-install-hint button {
  grid-column: 2;
  grid-row: 1 / span 2;
  width: 32px;
  height: 32px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  color: var(--text2);
}
@media (display-mode: standalone) {
  .sf-pwa-install-hint { display: none !important; }
}
@media (max-width: 720px) {
  html.sf-pwa-standalone .main {
    padding-top: calc(14px + env(safe-area-inset-top));
  }
}


/* Stage 30 iPad Sidebar Touch/Scroll Rootfix */
@media (max-width: 980px) {
  html.sidebar-open,
  body.sidebar-open {
    overflow: hidden !important;
    overscroll-behavior: none !important;
    touch-action: none;
  }

  body.sidebar-open .main,
  body.sidebar-open .topbar,
  body.sidebar-open .sf-os-mobile-top,
  body.sidebar-open .sf-os-mobile-dock,
  body.sidebar-open .sf-os-dock {
    pointer-events: none;
  }

  body.sidebar-open .sidebar,
  body.sidebar-open .sidebar *,
  body.sidebar-open .sidebar-scrim {
    pointer-events: auto;
  }

  .sidebar {
    z-index: 130 !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    padding-bottom: calc(28px + env(safe-area-inset-bottom)) !important;
  }

  .sidebar-scrim {
    z-index: 120 !important;
    touch-action: none;
  }

  .nav-stack {
    padding-bottom: calc(28px + env(safe-area-inset-bottom));
  }

  .nav-item,
  .menu-btn,
  .sidebar-close,
  .sf-os-toggle {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }
}

@media (min-width: 721px) and (max-width: 1180px) and (orientation: portrait) {
  .sf-os-shell-enabled .sidebar {
    width: min(360px, 86vw) !important;
  }

  .sf-os-shell-enabled .sidebar .nav-item {
    min-height: 48px;
  }

  .sf-os-shell-enabled .topbar,
  .sf-os-shell-enabled .sf-os-mobile-top {
    z-index: 80;
  }

  .sf-os-shell-enabled .sf-os-toggle {
    position: relative;
    z-index: 90;
  }
}


/* Stage 31 Metric Card Polish
   Fixes collapsed inline metric text across Risk Engine, Production Console,
   AI Jobs, Clusters and any page using .metric-card. */
.metric-card-grid,
.grid-4 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(205px, 1fr));
  gap: 14px;
  margin: 18px 0 22px;
}

.metric-card {
  min-width: 0;
  min-height: 108px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  padding: 18px 20px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background:
    radial-gradient(circle at 12% 18%, rgba(169,220,255,.105), transparent 34%),
    linear-gradient(135deg, rgba(255,255,255,.085), rgba(255,255,255,.035));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.075), 0 18px 46px rgba(0,0,0,.16);
  overflow: hidden;
  position: relative;
}

.metric-card::after {
  content: "";
  position: absolute;
  inset: auto -42px -58px auto;
  width: 120px;
  height: 120px;
  border-radius: 999px;
  background: rgba(169,220,255,.055);
  pointer-events: none;
}

.metric-card > div {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 2px;
}

.metric-card .metric-label,
.metric-card > span:not(.metric-icon) {
  display: block;
  color: var(--text2);
  font-size: .88rem;
  line-height: 1.15;
  letter-spacing: .01em;
  font-weight: 560;
  white-space: normal;
}

.metric-card strong {
  display: block;
  color: var(--text);
  font-size: clamp(1.72rem, 3vw, 2.35rem);
  line-height: .98;
  letter-spacing: -.055em;
  font-weight: 520;
  margin: 3px 0 0;
}

.metric-card small {
  display: block;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.22;
  margin-top: 5px;
  white-space: normal;
}

.metric-icon {
  width: 52px;
  height: 52px;
  display: grid !important;
  place-items: center;
  border-radius: 18px;
  border: 1px solid var(--line);
  background: linear-gradient(145deg, rgba(169,220,255,.18), rgba(255,255,255,.045));
  color: var(--accent);
  font-size: 1.08rem;
  line-height: 1;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 14px 34px rgba(0,0,0,.16);
}

.metric-card-critical .metric-icon { color: #ff9b73; background: linear-gradient(145deg, rgba(255,97,120,.18), rgba(255,255,255,.04)); }
.metric-card-snapshots .metric-icon { color: #75e2d0; background: linear-gradient(145deg, rgba(117,226,208,.16), rgba(255,255,255,.04)); }
.metric-card-overrides .metric-icon { color: #ffd28a; background: linear-gradient(145deg, rgba(255,210,138,.16), rgba(255,255,255,.04)); }

.risk-summary-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 20px;
  margin-bottom: 22px;
}

.system-overview-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
}

.metric-overview-panel {
  margin-bottom: 20px;
}

.metric-overview-panel .panel-head {
  margin-bottom: 14px;
}

.metric-overview-panel .metric-card {
  min-height: 96px;
  padding: 15px 17px;
}

.metric-overview-panel .metric-icon {
  width: 46px;
  height: 46px;
  border-radius: 16px;
  font-size: .98rem;
}

.metric-overview-panel .metric-card strong {
  font-size: 1.72rem;
}

@media (min-width: 721px) and (max-width: 1180px) {
  .risk-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .system-overview-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .system-overview-grid .metric-card {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    padding: 14px 14px;
  }

  .system-overview-grid .metric-card strong {
    font-size: 1.55rem;
  }

  .system-overview-grid .metric-card .metric-label {
    font-size: .78rem;
  }
}

@media (max-width: 720px) {
  .metric-card-grid,
  .grid-4,
  .risk-summary-grid,
  .system-overview-grid {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  .metric-card {
    min-height: 92px;
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 14px;
  }

  .metric-icon {
    width: 38px;
    height: 38px;
    border-radius: 14px;
    font-size: .85rem;
  }

  .metric-card strong {
    font-size: 1.62rem;
  }

  .metric-card small {
    font-size: .74rem;
  }
}

@media (max-width: 390px) {
  .metric-card-grid,
  .grid-4,
  .risk-summary-grid,
  .system-overview-grid {
    grid-template-columns: 1fr;
  }
}


/* Stage 32 Universal Visual Coherence
   Apple-level spacing, rhythm, overlap prevention, tables, forms, cards and page polish.
   Visual-only: no feature or data logic changes. */
:root {
  --space-1: 6px;
  --space-2: 10px;
  --space-3: 14px;
  --space-4: 18px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 44px;
  --surface-glass: linear-gradient(135deg, rgba(255,255,255,.088), rgba(255,255,255,.036));
  --surface-glass-quiet: linear-gradient(135deg, rgba(255,255,255,.065), rgba(255,255,255,.028));
  --surface-line: rgba(255,255,255,.115);
}

html[data-theme="light"] {
  --surface-glass: linear-gradient(135deg, rgba(255,255,255,.88), rgba(255,255,255,.64));
  --surface-glass-quiet: linear-gradient(135deg, rgba(255,255,255,.74), rgba(255,255,255,.48));
  --surface-line: rgba(12,22,39,.115);
}

body {
  letter-spacing: -.006em;
}

.main {
  min-width: 0;
  padding-bottom: calc(116px + env(safe-area-inset-bottom));
}

.main > section {
  min-width: 0;
}

.main > section + section {
  margin-top: var(--space-5);
}

.panel,
.hero-card,
.case-hero,
.summary-box,
.system-card,
.empty-state,
.auth-card,
.install-card {
  border-color: var(--surface-line);
  background: var(--surface-glass-quiet);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.055), 0 18px 54px rgba(0,0,0,.18);
}

.panel,
.hero-card,
.case-hero {
  min-width: 0;
  overflow-wrap: anywhere;
}

.panel {
  padding: clamp(18px, 2.1vw, 28px);
  border-radius: clamp(22px, 2vw, 30px);
}

.panel > :last-child,
.hero-card > :last-child,
.case-hero > :last-child {
  margin-bottom: 0;
}

.panel h2,
.panel h3,
.hero-card h2,
.case-hero h2 {
  text-wrap: balance;
}

.panel h3 {
  letter-spacing: -.035em;
}

.hero-card,
.hero-dashboard,
.case-hero {
  isolation: isolate;
  overflow: hidden;
}

.hero-dashboard {
  gap: clamp(20px, 3.2vw, 44px);
  align-items: center;
}

.hero-copy {
  min-width: 0;
}

.hero-copy h2,
.hero-card h2,
.case-hero h2 {
  max-width: 1050px;
  line-height: .98;
}

.hero-copy p,
.hero-card p,
.case-hero p {
  max-width: 980px;
}

.hero-actions,
.button-row,
.pill-row,
.action-row,
.inline-form,
.form-inline {
  gap: var(--space-3);
}

.hero-actions {
  align-items: center;
}

.command-orb,
.score-orb {
  max-width: 100%;
  flex-shrink: 0;
}

.grid-2,
.dashboard-grid,
.form-grid,
.inner-grid,
.hero-grid,
.system-grid,
.signal-family-grid,
.evidence-detail-grid,
.entity-grid {
  min-width: 0;
  gap: clamp(16px, 2vw, 24px);
}

.grid-2 > *,
.dashboard-grid > *,
.form-grid > *,
.inner-grid > *,
.hero-grid > * {
  min-width: 0;
}

.metric-card-grid,
.metric-grid,
.grid-4 {
  min-width: 0;
  gap: clamp(12px, 1.5vw, 18px);
}

.metric,
.metric-card {
  overflow-wrap: normal;
  word-break: normal;
}

.metric span,
.metric-card .metric-label,
.metric-card small {
  overflow-wrap: normal;
  word-break: normal;
}

.table-wrap {
  max-width: 100%;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: 22px;
  overscroll-behavior-x: contain;
}

.panel > .table-wrap {
  margin-top: var(--space-3);
}

table {
  min-width: 720px;
}

th {
  padding: 0 14px 6px;
  letter-spacing: .14em;
}

td {
  padding: 16px 14px;
}

td,
th {
  overflow-wrap: normal;
}

td strong,
td a {
  overflow-wrap: anywhere;
}

.premium-table tbody tr:hover {
  filter: brightness(1.04);
}

.empty,
.empty-state {
  min-height: 96px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 6px;
}

.empty-state {
  padding: clamp(26px, 4vw, 48px) !important;
}

label {
  min-width: 0;
}

input,
select,
textarea {
  min-width: 0;
  min-height: 46px;
  border-radius: 15px;
}

textarea {
  line-height: 1.45;
}

.form-stack {
  display: grid;
  gap: var(--space-4);
}

.form-grid {
  align-items: end;
}

.form-grid label,
.form-stack label,
.form-inline label,
.filterbar label {
  display: grid;
  gap: 7px;
  color: var(--text2);
}

.form-inline {
  align-items: end;
  flex-wrap: wrap;
}

.form-inline input,
.form-inline select {
  width: auto;
}

.filterbar {
  gap: var(--space-4);
  align-items: end;
}

.btn,
button.btn,
a.btn {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  white-space: nowrap;
}

.btn.mini {
  min-height: 34px;
}

.icon-btn {
  flex: 0 0 auto;
}

.tabs {
  gap: var(--space-2);
  padding-bottom: 2px;
}

.tabs a {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
}

.timeline-list,
.score-family-list,
.bar-list {
  gap: var(--space-4);
}

.timeline-item,
.score-family-row,
.summary-box,
.system-card {
  min-width: 0;
}

.score-family-row {
  gap: var(--space-3);
}

.meta {
  max-width: 100%;
}

dl.meta,
.meta.compact {
  overflow-wrap: anywhere;
}

.kpi-row,
.stat-row,
.count-row {
  gap: var(--space-3);
  flex-wrap: wrap;
}

/* Hero and table dock clearance in OS Shell mode */
.sf-os-shell-enabled .main {
  padding-bottom: calc(132px + env(safe-area-inset-bottom));
}

.sf-os-shell-enabled .panel:last-child,
.sf-os-shell-enabled section:last-child {
  margin-bottom: calc(24px + env(safe-area-inset-bottom));
}

/* Public pages get the same quiet rhythm without admin dock assumptions. */
.public-main > section + section {
  margin-top: var(--space-6);
}

.public-card,
.public-hero-card,
.source-card {
  min-width: 0;
  overflow: hidden;
  border-color: var(--surface-line);
}

/* Auth pages: calm, centered, not cramped. */
.auth-wrap {
  padding: max(24px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(32px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
}

.auth-card {
  width: min(100%, 520px);
}

.auth-card form {
  display: grid;
  gap: var(--space-4);
}

/* iPad/tablet rhythm */
@media (min-width: 721px) and (max-width: 1180px) {
  .main {
    padding-left: max(18px, env(safe-area-inset-left));
    padding-right: max(18px, env(safe-area-inset-right));
  }

  .hero-copy h2,
  .hero-card h2,
  .case-hero h2 {
    font-size: clamp(2.6rem, 6vw, 5.2rem);
  }

  .command-orb {
    transform: scale(.92);
    transform-origin: center right;
  }

  .dashboard-grid {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }

  .span-4,
  .span-5,
  .span-6,
  .span-7,
  .span-8 {
    grid-column: span 8;
  }

  .grid-2,
  .hero-grid {
    grid-template-columns: 1fr;
  }

  .panel {
    padding: 22px;
  }
}

/* Phone rhythm */
@media (max-width: 720px) {
  body {
    font-size: 14px;
  }

  .main {
    padding-left: max(14px, env(safe-area-inset-left));
    padding-right: max(14px, env(safe-area-inset-right));
    padding-bottom: calc(112px + env(safe-area-inset-bottom));
  }

  .main > section + section {
    margin-top: var(--space-4);
  }

  .panel,
  .hero-card,
  .case-hero {
    padding: 18px;
    border-radius: 24px;
  }

  .hero-copy h2,
  .hero-card h2,
  .case-hero h2 {
    font-size: clamp(2.25rem, 11vw, 4.2rem);
    line-height: .98;
  }

  .hero-copy p,
  .hero-card p,
  .case-hero p {
    font-size: .96rem;
    line-height: 1.55;
  }

  .hero-actions,
  .button-row,
  .inline-form,
  .form-inline,
  .filterbar {
    align-items: stretch;
  }

  .hero-actions .btn,
  .hero-actions form,
  .button-row .btn,
  .button-row form,
  .inline-form .btn,
  .form-inline .btn,
  .filterbar .btn {
    width: 100%;
  }

  .inline-form select,
  .inline-form input,
  .form-inline input,
  .form-inline select {
    width: 100%;
    max-width: none !important;
  }

  .command-orb {
    width: min(210px, 62vw);
    height: min(210px, 62vw);
    margin: 12px auto 0;
  }

  .command-orb strong {
    font-size:clamp(1.25rem, 8vw, 2rem);
  }

  .grid-2,
  .hero-grid,
  .dashboard-grid,
  .form-grid,
  .inner-grid {
    grid-template-columns: 1fr !important;
  }

  .span-4,
  .span-5,
  .span-6,
  .span-7,
  .span-8 {
    grid-column: span 1 !important;
  }

  .table-wrap {
    border-radius: 18px;
  }

  table {
    min-width: 660px;
  }

  th {
    padding-left: 12px;
    padding-right: 12px;
  }

  td {
    padding: 14px 12px;
  }

  .tabs {
    margin-left: -2px;
    margin-right: -2px;
  }
}

/* Small phones: prevent “desktop squeezed into phone” feeling. */
@media (max-width: 390px) {
  .main {
    padding-left: 12px;
    padding-right: 12px;
  }

  .panel,
  .hero-card,
  .case-hero {
    padding: 16px;
  }

  .btn,
  button.btn,
  a.btn {
    min-height: 42px;
  }

  table {
    min-width: 620px;
  }
}

/* Reduced motion should remain calm. */
@media (prefers-reduced-motion: reduce) {
  .panel,
  .hero-card,
  .metric-card,
  .btn,
  .table-wrap,
  .premium-table tbody tr {
    transition: none !important;
  }
}


/* Stage 33 Mobile Hero Actions Polish
   Fixes oversized/awkward hero buttons on mobile by using responsive action clusters
   instead of forcing every hero action into huge full-width pills. */
.hero-actions {
  min-width: 0;
}

.hero-actions > a.btn,
.hero-actions > form,
.hero-actions > .inline-form {
  min-width: 0;
}

.hero-actions > a.btn {
  text-align: center;
}

@media (max-width: 720px) {
  /* Override Stage 32's too-aggressive full-width hero action rule for compact link clusters. */
  .hero-card .hero-actions {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    align-items: stretch;
    margin-top: 24px;
  }

  .hero-card .hero-actions > a.btn {
    width: 100% !important;
    min-height: 52px;
    padding: 13px 16px;
    border-radius: 22px;
    white-space: normal;
    line-height: 1.12;
  }

  .hero-card .hero-actions > form {
    width: 100% !important;
    min-width: 0;
  }

  .hero-card .hero-actions > form.inline-form,
  .hero-card .hero-actions > .inline-form {
    display: grid;
    grid-template-columns: minmax(82px, .42fr) minmax(0, 1fr);
    gap: 10px;
    align-items: stretch;
    width: 100% !important;
  }

  .hero-card .hero-actions > form.inline-form select,
  .hero-card .hero-actions > .inline-form select,
  .hero-card .hero-actions > form.inline-form input,
  .hero-card .hero-actions > .inline-form input {
    width: 100% !important;
    min-width: 0;
    max-width: none !important;
    min-height: 52px;
  }

  .hero-card .hero-actions > form.inline-form .btn,
  .hero-card .hero-actions > .inline-form .btn {
    width: 100% !important;
    min-height: 52px;
    padding-left: 14px;
    padding-right: 14px;
    white-space: normal;
    line-height: 1.12;
  }

  /* When there is a form plus several links, let the form breathe across the row. */
  .hero-dashboard .hero-actions > form,
  .hero-card:not(.compact-hero) .hero-actions > form {
    grid-column: 1 / -1;
  }

  .compact-hero .hero-actions {
    max-width: 100%;
    margin-top: 26px;
  }

  .compact-hero .hero-actions > a.btn {
    min-height: 54px;
    font-size: .98rem;
  }

  /* More than two hero action links: keep a clean two-column app-like grid. */
  .hero-dashboard .hero-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hero-dashboard .hero-actions > a.btn {
    min-height: 50px;
    font-size: .92rem;
  }
}

@media (max-width: 390px) {
  .hero-card .hero-actions {
    gap: 10px;
  }

  .hero-card .hero-actions > a.btn,
  .hero-card .hero-actions > form.inline-form .btn,
  .hero-card .hero-actions > .inline-form .btn {
    min-height: 50px;
    padding-left: 12px;
    padding-right: 12px;
    font-size: .92rem;
  }

  .hero-card .hero-actions > form.inline-form,
  .hero-card .hero-actions > .inline-form {
    grid-template-columns: 1fr;
  }
}

/* Very narrow screens should stack hero actions to avoid cramped labels. */
@media (max-width: 340px) {
  .hero-card .hero-actions,
  .hero-dashboard .hero-actions {
    grid-template-columns: 1fr;
  }
}


/* Stage 34 Case Queue Actions Polish
   Fixes panel-head action buttons such as Case queue → Bulk intake / New case.
   Stage 33 polished hero-card actions; this stage covers panel header action clusters too. */
@media (max-width: 720px) {
  .panel-head {
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: start !important;
    gap: 18px !important;
  }

  .panel-head > div {
    min-width: 0;
  }

  .panel-head > div:first-child h3,
  .panel-head > div:first-child p {
    max-width: 100%;
  }

  .panel-head .hero-actions {
    width: 100%;
    max-width: 100%;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    margin-top: 0 !important;
  }

  .panel-head .hero-actions > a.btn,
  .panel-head .hero-actions > button.btn,
  .panel-head .hero-actions > form .btn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 48px !important;
    padding: 12px 14px !important;
    border-radius: 20px !important;
    font-size: .94rem !important;
    line-height: 1.12 !important;
    white-space: normal !important;
    text-align: center !important;
  }

  .panel-head .hero-actions > form {
    width: 100% !important;
    min-width: 0 !important;
    display: contents !important;
  }

  /* Case queue filter should start cleanly after the compact action cluster. */
  .panel-head + .filterbar,
  .panel-head + form.filterbar {
    margin-top: 4px !important;
  }
}

@media (max-width: 390px) {
  .panel-head .hero-actions {
    gap: 9px !important;
  }

  .panel-head .hero-actions > a.btn,
  .panel-head .hero-actions > button.btn,
  .panel-head .hero-actions > form .btn {
    min-height: 46px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    font-size: .9rem !important;
  }
}

@media (max-width: 330px) {
  .panel-head .hero-actions {
    grid-template-columns: 1fr !important;
  }
}


/* Stage 35 Case Queue Button Hardfix
   Exact class-level backup for the page-local Case queue button fix. */
@media (max-width: 720px) {
  .case-queue-head {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    align-items: start !important;
  }
  .case-queue-actions {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    margin: 0 !important;
  }
  .case-queue-actions .btn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 48px !important;
    max-height: 54px !important;
    padding: 12px 14px !important;
    border-radius: 20px !important;
    font-size: .94rem !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
}
@media (max-width: 330px) {
  .case-queue-actions { grid-template-columns: 1fr !important; }
}


/* Stage 36 Full Page Fallback Reveal
   Applies the same subtle reveal to normal full-page navigations when AJAX cannot/should not intercept. */
@keyframes sfFullPageReveal {
  from {
    opacity: 0;
    transform: translate3d(0, 8px, 0) scale(.996);
    filter: blur(.8px);
  }
  to {
    opacity: 1;
    transform: translate3d(0,0,0) scale(1);
    filter: blur(0);
  }
}

.main,
.public-main,
.auth-card,
.install-wrap {
  animation: sfFullPageReveal .28s cubic-bezier(.16,1,.3,1) both;
}

.sf-ajax-shell-enabled .main {
  animation-duration: .20s;
}

@media (prefers-reduced-motion: reduce) {
  .main,
  .public-main,
  .auth-card,
  .install-wrap {
    animation: none !important;
  }
}


/* Stage 40 Production Actions Mobile Grid Fix
   Exact fix for Production Console action buttons. The two primary actions are
   forced into a compact responsive grid; cleanup gets its own balanced row. */
.production-actions-panel {
  display: grid;
  gap: 18px;
}

.production-action-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-items: stretch;
}

.production-action-form,
.production-cleanup-form {
  min-width: 0;
}

.production-action-form .btn {
  width: 100%;
  min-height: 52px;
  justify-content: center;
  text-align: center;
  white-space: normal;
  line-height: 1.12;
}

.production-cleanup-form {
  display: grid;
  grid-template-columns: minmax(108px, .42fr) minmax(0, 1fr);
  gap: 12px;
  align-items: end;
}

.production-cleanup-form label {
  min-width: 0;
  display: grid;
  gap: 10px;
}

.production-cleanup-form input[type="number"] {
  width: 100%;
  min-width: 0;
}

.production-cleanup-form .btn {
  width: 100%;
  min-height: 52px;
  justify-content: center;
}

@media (max-width: 720px) {
  .production-actions-panel {
    gap: 18px !important;
  }

  .production-action-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .production-action-form .btn,
  .production-cleanup-form .btn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 50px !important;
    max-height: 58px !important;
    padding: 12px 12px !important;
    border-radius: 20px !important;
    font-size: .92rem !important;
    line-height: 1.1 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .production-cleanup-form {
    grid-template-columns: minmax(112px, .45fr) minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: end !important;
  }

  .production-cleanup-form label {
    font-size: .9rem !important;
    line-height: 1.2 !important;
  }

  .production-cleanup-form input[type="number"] {
    min-height: 50px !important;
    font-size: 1rem !important;
  }
}

@media (max-width: 360px) {
  .production-action-grid,
  .production-cleanup-form {
    grid-template-columns: 1fr !important;
  }
}


/* Stage 41 Visible Full-Page Fallback Transitions
   Covers links/pages that deliberately bypass AJAX. */
@keyframes sfStage41PageArrive {
  0% {
    opacity: 0;
    transform: translate3d(0, 18px, 0) scale(.982);
    filter: blur(2px) saturate(.96);
  }
  100% {
    opacity: 1;
    transform: translate3d(0,0,0) scale(1);
    filter: blur(0) saturate(1);
  }
}

.sf-native-page-ready .main,
.sf-native-page-ready .public-main,
.sf-native-page-ready .auth-card,
.sf-native-page-ready .install-wrap {
  animation: sfStage41PageArrive .38s cubic-bezier(.16,1,.3,1) both;
}

.sf-fullpage-leaving .main,
.sf-fullpage-leaving .public-main,
.sf-fullpage-leaving .auth-card,
.sf-fullpage-leaving .install-wrap {
  opacity: .48 !important;
  transform: translate3d(0, -7px, 0) scale(.986) !important;
  filter: blur(1.6px) saturate(.95) !important;
  transition:
    opacity .12s cubic-bezier(.4,0,.2,1),
    transform .12s cubic-bezier(.4,0,.2,1),
    filter .12s cubic-bezier(.4,0,.2,1) !important;
}

@media (prefers-reduced-motion: reduce) {
  .sf-native-page-ready .main,
  .sf-native-page-ready .public-main,
  .sf-native-page-ready .auth-card,
  .sf-native-page-ready .install-wrap,
  .sf-fullpage-leaving .main,
  .sf-fullpage-leaving .public-main,
  .sf-fullpage-leaving .auth-card,
  .sf-fullpage-leaving .install-wrap {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}


/* Stage 42 Snappy Full-Page Fallback Transitions
   Faster, lighter and iOS-friendly: no blur, no scale, no sluggish travel. */
@keyframes sfStage42PageArrive {
  0% {
    opacity: .72;
    transform: translate3d(0, 7px, 0);
    filter: none;
  }
  100% {
    opacity: 1;
    transform: translate3d(0,0,0);
    filter: none;
  }
}

.sf-native-page-ready .main,
.sf-native-page-ready .public-main,
.sf-native-page-ready .auth-card,
.sf-native-page-ready .install-wrap {
  animation: sfStage42PageArrive .17s cubic-bezier(.2,.8,.2,1) both !important;
}

.sf-fullpage-leaving .main,
.sf-fullpage-leaving .public-main,
.sf-fullpage-leaving .auth-card,
.sf-fullpage-leaving .install-wrap {
  opacity: .82 !important;
  transform: translate3d(0, -2px, 0) !important;
  filter: none !important;
  transition:
    opacity .075s cubic-bezier(.2,0,.2,1),
    transform .075s cubic-bezier(.2,0,.2,1) !important;
}

@media (max-width: 720px) {
  .sf-native-page-ready .main,
  .sf-native-page-ready .public-main,
  .sf-native-page-ready .auth-card,
  .sf-native-page-ready .install-wrap {
    animation-duration: .15s !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sf-native-page-ready .main,
  .sf-native-page-ready .public-main,
  .sf-native-page-ready .auth-card,
  .sf-native-page-ready .install-wrap,
  .sf-fullpage-leaving .main,
  .sf-fullpage-leaving .public-main,
  .sf-fullpage-leaving .auth-card,
  .sf-fullpage-leaving .install-wrap {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}


/* Stage 43 Persistent Native Shell Header
   Full-page fallback arrival/leave no longer animates native shell chrome. */
.sf-native-page-ready .sf-os-mobile-top,
.sf-native-page-ready .sf-os-mobile-dock,
.sf-native-page-ready .sf-os-systembar,
.sf-native-page-ready .sf-os-dock,
.sf-fullpage-leaving .sf-os-mobile-top,
.sf-fullpage-leaving .sf-os-mobile-dock,
.sf-fullpage-leaving .sf-os-systembar,
.sf-fullpage-leaving .sf-os-dock,
.sf-native-page-ready .topbar,
.sf-fullpage-leaving .topbar {
  animation: none !important;
  opacity: 1 !important;
  transform: translate3d(0,0,0) !important;
  filter: none !important;
  transition: none !important;
}

/* Reset main-level Stage 41/42 fallback animation, then apply it only to page
   content below the persistent topbar. */
.sf-native-page-ready .main,
.sf-fullpage-leaving .main {
  animation: none !important;
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  transition: none !important;
}

.sf-native-page-ready .main > :not(.topbar) {
  animation: sfStage42PageArrive .15s cubic-bezier(.2,.8,.2,1) both !important;
}

.sf-fullpage-leaving .main > :not(.topbar) {
  opacity: .84 !important;
  transform: translate3d(0, -2px, 0) !important;
  filter: none !important;
  transition:
    opacity .075s cubic-bezier(.2,0,.2,1),
    transform .075s cubic-bezier(.2,0,.2,1) !important;
}

@media (prefers-reduced-motion: reduce) {
  .sf-native-page-ready .main > :not(.topbar),
  .sf-fullpage-leaving .main > :not(.topbar) {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}


/* Stage 44 Dock Transform Safety
   Stage 43's persistent-chrome reset must not remove the dock centering transform. */
@media (min-width: 721px) {
  .sf-os-shell-enabled .sf-os-dock,
  .sf-native-page-ready .sf-os-dock,
  .sf-fullpage-leaving .sf-os-dock {
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) translateZ(0) !important;
    opacity: 1 !important;
    filter: none !important;
    animation: none !important;
    transition:
      box-shadow .18s var(--ease),
      border-color .18s var(--ease),
      background .18s var(--ease) !important;
  }
}





/* Stage 47 Hero Tone Standardization
   The majority app tone is the softer/muted cinematic hero look. Clusters was
   the outlier with a sharper white headline. Normalize all hero titles to the
   same controlled foreground instead of making every page stark white. */
.hero-card h2,
.case-hero h2,
.compact-hero h2,
.sf-os-shell-enabled .hero-card h2,
.sf-os-shell-enabled .case-hero h2,
.sf-os-shell-enabled .compact-hero h2 {
  color: rgba(206, 216, 232, .76) !important;
  -webkit-text-fill-color: rgba(206, 216, 232, .76) !important;
  opacity: 1 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
}

.hero-card .hero-copy > p:not(.eyebrow),
.hero-card > div:first-child > p:not(.eyebrow),
.case-hero .hero-copy > p:not(.eyebrow),
.compact-hero .hero-copy > p:not(.eyebrow) {
  color: rgba(201, 211, 227, .72) !important;
  -webkit-text-fill-color: rgba(201, 211, 227, .72) !important;
  opacity: 1 !important;
}

.hero-card .eyebrow,
.case-hero .eyebrow,
.compact-hero .eyebrow {
  color: rgba(178, 222, 255, .86) !important;
  -webkit-text-fill-color: rgba(178, 222, 255, .86) !important;
  opacity: 1 !important;
}

/* Clusters now uses the same hero-copy structure/tone as Reports and the other modules. */
.hero-tone-standard h2 {
  color: rgba(206, 216, 232, .76) !important;
  -webkit-text-fill-color: rgba(206, 216, 232, .76) !important;
}


/* Stage 49 AI Category Sweep */
.category-sweep-panel .sweep-summary {
  margin: 18px 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(255,255,255,.045);
}
.category-sweep-panel .sweep-summary strong { display:block; font-size:1.08rem; color:var(--text); }
.category-sweep-panel .sweep-summary span { display:block; margin-top:4px; color:var(--muted); font-size:.9rem; }
.category-sweep-panel .sweep-summary p { margin:12px 0 0; color:var(--text2); max-width: 980px; }
.category-sweep-form textarea { min-height: 94px; resize: vertical; }
.danger-text { color: #ff9aa8 !important; }
@media (max-width: 720px) {
  .category-sweep-panel .premium-table td:nth-child(5),
  .category-sweep-panel .premium-table td:nth-child(6) { min-width: 220px; }
}


/* Stage 50 — SENTINEL Desktop Home / Mission Control
   Turns Dashboard into a desktop-like OS home surface with app tiles, widgets,
   live telemetry cards, and calm native PWA spacing. */
.mission-control-home {
  position: relative;
  isolation: isolate;
  display: grid;
  gap: clamp(18px, 2.2vw, 28px);
}
.mission-environment {
  position: absolute;
  inset: -110px -40px auto -40px;
  height: min(560px, 56vh);
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle at 24% 12%, rgba(169,220,255,.18), transparent 34%),
    radial-gradient(circle at 78% 8%, rgba(79,112,255,.16), transparent 30%),
    linear-gradient(180deg, rgba(255,255,255,.035), transparent 76%);
  mask-image: linear-gradient(#000, transparent 92%);
}
.mission-hero-panel {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(150px, .55fr) minmax(280px, 1.9fr) minmax(0, 2.3fr) auto;
  align-items: stretch;
  gap: clamp(12px, 1.5vw, 18px);
  min-height: 198px;
  padding: clamp(18px, 2.4vw, 30px);
  border: 1px solid var(--surface-line, var(--line));
  border-radius: clamp(28px, 2.5vw, 38px);
  background:
    linear-gradient(135deg, rgba(255,255,255,.13), rgba(255,255,255,.045)),
    radial-gradient(circle at 78% 20%, rgba(69,104,255,.20), transparent 38%);
  box-shadow: inset 0 1px rgba(255,255,255,.07), 0 30px 95px rgba(0,0,0,.26);
  backdrop-filter: blur(30px);
}
.mission-hero-panel:before {
  content:"";
  position:absolute;
  inset:-1px;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 76px 76px;
  opacity:.28;
  mask-image: radial-gradient(circle at 50% 18%, #000 0, transparent 72%);
}
.mission-clock-card,
.mission-command-bar,
.mission-hero-copy,
.mission-readiness-orb {
  position: relative;
  z-index: 1;
}
.mission-clock-card,
.mission-command-bar,
.mission-widget,
.mission-main-surface,
.mission-kpi-strip article,
.mission-app-tile,
.mission-card {
  border: 1px solid var(--surface-line, var(--line));
  background: linear-gradient(135deg, rgba(255,255,255,.105), rgba(255,255,255,.045));
  box-shadow: inset 0 1px rgba(255,255,255,.055), 0 18px 58px rgba(0,0,0,.18);
  backdrop-filter: blur(26px);
}
.mission-clock-card {
  display: grid;
  align-content: center;
  gap: 7px;
  min-width: 0;
  padding: 18px;
  border-radius: 24px;
}
.mission-clock-card strong {
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 430;
  letter-spacing: -.055em;
  line-height: .9;
}
.mission-clock-card span,
.mission-command-bar small,
.mission-widget small,
.mission-kpi-strip small,
.mission-app-tile small,
.mission-feed-item small,
.mission-record small {
  color: var(--muted);
}
.mission-command-bar {
  display: grid;
  grid-template-columns: 34px minmax(0,1fr);
  grid-template-rows: auto auto;
  align-content: center;
  column-gap: 12px;
  padding: 16px 18px;
  border-radius: 23px;
  min-width: 0;
}
.mission-command-bar > span {
  grid-row: 1 / span 2;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  color: #07101a;
  background: linear-gradient(135deg, #f3fbff, #69b9ff 48%, #4568ff);
  font-weight: 760;
}
.mission-command-bar strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 540;
}
.mission-command-bar small {
  display: block;
  margin-top: 3px;
}
.mission-hero-copy {
  min-width: 0;
  align-self: center;
}
.mission-hero-copy h2 {
  font-size: clamp(2.5rem, 5.4vw, 6rem);
  line-height: .91;
  letter-spacing: -.075em;
  max-width: 850px;
  color: rgba(225,234,248,.84);
}
.mission-hero-copy p:not(.eyebrow) {
  max-width: 760px;
  color: rgba(201,211,227,.74);
  margin: 16px 0 0;
  font-size: clamp(.98rem, 1.08vw, 1.1rem);
  line-height: 1.65;
}
.mission-readiness-orb {
  align-self: center;
  width: clamp(130px, 14vw, 178px);
  height: clamp(130px, 14vw, 178px);
  display: grid;
  place-items: center;
  text-align: center;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.17);
  background: radial-gradient(circle at 50% 24%, rgba(169,220,255,.32), rgba(16,25,42,.94) 58%, rgba(5,7,11,.94));
  box-shadow: inset 0 0 52px rgba(105,185,255,.14), 0 26px 72px rgba(0,0,0,.28);
}
.mission-readiness-orb span,
.widget-kicker {
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .17em;
  font-size: .68rem;
  font-weight: 650;
}
.mission-readiness-orb strong {
  display:block;
  font-size:clamp(1.5rem, 2.5vw, 2.3rem);
  font-weight: 420;
  letter-spacing: -.08em;
  line-height: .8;
}
.mission-readiness-orb small { color: var(--muted); }
.mission-desktop-grid {
  display: grid;
  grid-template-columns: minmax(210px, 280px) minmax(0, 1fr);
  gap: clamp(16px, 2vw, 24px);
}
.mission-widget-column {
  display: grid;
  align-content: start;
  gap: 12px;
  min-width: 0;
}
.mission-widget {
  min-height: 108px;
  border-radius: 24px;
  padding: 17px;
  display: grid;
  gap: 6px;
  overflow: hidden;
}
.mission-widget strong {
  font-size: clamp(1.25rem, 2vw, 1.7rem);
  font-weight: 520;
  letter-spacing: -.045em;
  line-height: 1.04;
  overflow-wrap: anywhere;
}
.mission-widget.is-ok { border-color: rgba(117,226,162,.26); }
.mission-widget.is-warn { border-color: rgba(255,191,114,.28); }
.mission-widget.is-muted { opacity: .86; }
.mission-main-surface {
  min-width: 0;
  padding: clamp(18px, 2vw, 26px);
  border-radius: clamp(26px, 2.5vw, 36px);
}
.mission-surface-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap: 14px;
  margin-bottom: 17px;
}
.mission-surface-head h3,
.mission-card h3 {
  font-size: clamp(1.45rem, 2.2vw, 2.1rem);
  letter-spacing: -.05em;
}
.mission-app-grid {
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: clamp(12px, 1.4vw, 16px);
}
.mission-app-tile {
  position: relative;
  min-height: 142px;
  padding: 16px;
  border-radius: 26px;
  display:grid;
  grid-template-rows: auto 1fr auto;
  gap: 12px;
  color: var(--text2);
  overflow: hidden;
}
.mission-app-tile:before {
  content:"";
  position:absolute;
  width:118px;
  height:118px;
  right:-54px;
  top:-52px;
  border-radius:50%;
  background: rgba(169,220,255,.10);
}
.mission-app-tile:hover {
  color: var(--text);
  border-color: var(--line2);
  transform: translateY(-2px);
}
.mission-app-icon {
  position: relative;
  width: 46px;
  height: 46px;
  display:grid;
  place-items:center;
  border-radius: 17px;
  color:#07101a;
  font-weight:760;
  background: linear-gradient(135deg, #f4fbff, #7dd1ff 48%, #5a72ff);
  box-shadow: inset 0 1px rgba(255,255,255,.40), 0 12px 28px rgba(0,0,0,.23);
}
.mission-app-copy { position: relative; display:grid; gap: 4px; align-content:end; min-width:0; }
.mission-app-copy strong { font-size: 1.02rem; font-weight: 560; letter-spacing: -.02em; }
.mission-app-copy small { line-height: 1.35; }
.mission-app-tile em {
  position:relative;
  justify-self:start;
  font-style:normal;
  color: var(--text2);
  border:1px solid var(--line);
  background: rgba(255,255,255,.06);
  border-radius: 999px;
  padding: 5px 8px;
  font-size: .76rem;
}
.tile-ai .mission-app-icon { background: linear-gradient(135deg,#efe9ff,#bca7ff 50%,#6f79ff); }
.tile-risk .mission-app-icon { background: linear-gradient(135deg,#fff4eb,#ffb18d 50%,#ff6178); }
.tile-evidence .mission-app-icon,.tile-public .mission-app-icon { background: linear-gradient(135deg,#effff5,#86efb4 50%,#36b987); }
.tile-ops .mission-app-icon,.tile-sweep .mission-app-icon { background: linear-gradient(135deg,#f2fbff,#8eeaff 50%,#4a84ff); }
.tile-report .mission-app-icon,.tile-system .mission-app-icon { background: linear-gradient(135deg,#f8fbff,#c7d7ff 50%,#7ea5ff); }
.tile-alert .mission-app-icon { background: linear-gradient(135deg,#fff9ec,#ffd17b 50%,#ff9254); }
.mission-kpi-strip {
  display:grid;
  grid-template-columns: repeat(6, minmax(0,1fr));
  gap: clamp(10px, 1.3vw, 15px);
}
.mission-kpi-strip article {
  min-height: 112px;
  border-radius: 24px;
  padding: 16px;
  display:grid;
  align-content:space-between;
  overflow:hidden;
}
.mission-kpi-strip span {
  color: var(--muted);
  font-size: .8rem;
}
.mission-kpi-strip strong {
  font-size: clamp(2rem, 3.4vw, 3.1rem);
  font-weight: 430;
  letter-spacing: -.075em;
  line-height: .88;
}
.mission-intel-grid {
  display:grid;
  grid-template-columns: repeat(12, minmax(0,1fr));
  gap: clamp(16px, 1.8vw, 22px);
}
.mission-card {
  min-width:0;
  overflow:hidden;
}
.mission-record-list,
.mission-feed-list {
  display:grid;
  gap: 10px;
}
.mission-record {
  display:grid;
  grid-template-columns: minmax(0,1fr) auto auto;
  align-items:center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255,255,255,.045);
  color: var(--text2);
}
.mission-record:hover { border-color: var(--line2); transform: translateY(-1px); }
.mission-record span { display:grid; min-width:0; }
.mission-record i {
  font-style:normal;
  color: var(--muted);
  font-size:.82rem;
}
.mission-feed-item {
  display:grid;
  grid-template-columns: 18px minmax(0,1fr);
  gap: 12px;
  padding: 8px 0;
}
.mission-feed-item > span {
  width: 10px;
  height: 10px;
  margin-top: 8px;
  border-radius: 50%;
  background: var(--accent2);
  box-shadow: 0 0 0 7px rgba(105,185,255,.11);
}
.mission-feed-item strong {
  display:block;
  font-weight: 560;
  line-height: 1.35;
}
.mission-feed-item small {
  display:block;
  margin-top: 4px;
}
.mission-control-home .empty-state {
  min-height: 132px;
  text-align: center;
}
.mission-control-home .empty-state .btn { margin-top: 8px; }

@media (max-width: 1280px) {
  .mission-hero-panel { grid-template-columns: minmax(140px,.5fr) minmax(260px,1.3fr) minmax(0,2fr); }
  .mission-readiness-orb { grid-column: 1 / -1; justify-self: end; width: 134px; height: 134px; }
  .mission-app-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .mission-kpi-strip { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (min-width: 721px) and (max-width: 1180px) {
  .mission-desktop-grid { grid-template-columns: 1fr; }
  .mission-widget-column { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .mission-hero-panel { grid-template-columns: 1fr 1.6fr; }
  .mission-hero-copy { grid-column: 1 / -1; }
  .mission-readiness-orb { grid-column: auto; justify-self: end; }
  .mission-intel-grid { grid-template-columns: repeat(8, minmax(0,1fr)); }
  .mission-intel-grid .span-4,
  .mission-intel-grid .span-5,
  .mission-intel-grid .span-6,
  .mission-intel-grid .span-7,
  .mission-intel-grid .span-8 { grid-column: span 8; }
}
@media (max-width: 720px) {
  .mission-hero-panel,
  .mission-desktop-grid,
  .mission-intel-grid { grid-template-columns: 1fr; }
  .mission-hero-panel { padding: 16px; border-radius: 26px; }
  .mission-clock-card,
  .mission-analog-clock-orb { min-height: 96px; }
  .mission-command-bar { grid-template-columns: 30px minmax(0,1fr); }
  .mission-command-bar strong { white-space: normal; }
  .mission-hero-copy h2 { font-size: clamp(2.45rem, 14vw, 4.6rem); }
  .mission-readiness-orb { justify-self: center; width: 150px; height: 150px; }
  .mission-widget-column,
  .mission-app-grid,
  .mission-kpi-strip { grid-template-columns: 1fr; }
  .mission-main-surface { padding: 14px; border-radius: 24px; }
  .mission-surface-head { align-items: stretch; flex-direction: column; }
  .mission-surface-head .btn { width: 100%; }
  .mission-app-tile { min-height: 118px; grid-template-columns: 52px minmax(0,1fr); grid-template-rows: auto auto; align-items:center; }
  .mission-app-icon { grid-row: 1 / span 2; }
  .mission-app-tile em { justify-self:start; }
  .mission-record { grid-template-columns: 1fr; align-items:start; }
  .mission-card { grid-column: 1 / -1 !important; }
}


/* Stage 52 App Window Shell
   Converts module pages from normal admin pages into native SENTINEL OS workspaces. */
.sentinel-app-window {
  position: relative;
  margin: 0 0 var(--space-5);
  border: 1px solid rgba(255,255,255,.125);
  border-radius: 34px;
  background:
    radial-gradient(circle at 14% 0%, rgba(169,220,255,.11), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.072), rgba(255,255,255,.032));
  box-shadow: 0 30px 100px rgba(0,0,0,.28), inset 0 1px rgba(255,255,255,.07);
  backdrop-filter: blur(30px);
  overflow: clip;
}
.sentinel-app-window:before {
  content: "";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(rgba(255,255,255,.028) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: radial-gradient(circle at 50% 0%, #000 0, transparent 72%);
  opacity: .42;
}
.sentinel-app-chrome {
  position: relative;
  z-index: 1;
  min-height: 92px;
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto auto;
  align-items: center;
  gap: 16px;
  padding: 16px 18px;
  border-bottom: 1px solid rgba(255,255,255,.095);
  background: linear-gradient(180deg, rgba(7,11,18,.62), rgba(7,11,18,.20));
}
.sentinel-window-dots { display:flex; gap:7px; align-items:center; padding: 0 2px; }
.sentinel-window-dots span { width: 10px; height: 10px; border-radius:50%; background: rgba(255,255,255,.16); box-shadow: inset 0 1px rgba(255,255,255,.2); }
.sentinel-window-dots span:nth-child(1) { background: rgba(255,115,115,.58); }
.sentinel-window-dots span:nth-child(2) { background: rgba(255,204,99,.55); }
.sentinel-window-dots span:nth-child(3) { background: rgba(111,222,154,.55); }
.sentinel-app-identity { display:flex; align-items:center; gap: 13px; min-width:0; }
.sentinel-app-badge {
  width: 54px;
  height: 54px;
  border-radius: 20px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  color:#06101d;
  font-weight: 720;
  letter-spacing:-.035em;
  background: linear-gradient(135deg, rgba(233,248,255,.96), rgba(105,185,255,.88));
  box-shadow: inset 0 1px rgba(255,255,255,.55), 0 16px 36px rgba(0,0,0,.26);
}
.sentinel-app-identity h2 {
  margin: 0;
  font-size: clamp(1.28rem, 2.3vw, 2rem);
  letter-spacing: -.045em;
  font-weight: 470;
  color: rgba(248,251,255,.94);
}
.sentinel-app-identity small {
  display:block;
  margin-top: 4px;
  max-width: 760px;
  color: rgba(205,215,230,.70);
  line-height: 1.35;
}
.sentinel-app-status {
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height: 38px;
  padding: 0 13px;
  border:1px solid rgba(255,255,255,.11);
  border-radius: 999px;
  background: rgba(255,255,255,.055);
  color: rgba(224,234,248,.80);
  white-space:nowrap;
  font-size: .82rem;
}
.sentinel-app-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.sentinel-app-actions .btn { min-height: 38px; padding: 0 13px; }
.sentinel-app-workspace { position:relative; z-index:1; padding: 18px; }
.sentinel-app-workspace > .hero-card:first-child,
.sentinel-app-workspace > .compact-hero:first-child,
.sentinel-app-workspace > .metric-grid:first-child,
.sentinel-app-workspace > .dashboard-grid:first-child,
.sentinel-app-workspace > .panel:first-child { margin-top: 0; }
.sentinel-app-workspace > section:last-child { margin-bottom: 0; }
.sentinel-app-window .panel,
.sentinel-app-window .hero-card,
.sentinel-app-window .case-hero,
.sentinel-app-window .metric,
.sentinel-app-window .metric-card {
  box-shadow: 0 18px 62px rgba(0,0,0,.18);
}
.sentinel-app-window .hero-card { background: linear-gradient(180deg, rgba(255,255,255,.085), rgba(255,255,255,.035)); }
.sentinel-app-tone-violet .sentinel-app-badge { background: linear-gradient(135deg, #f2eaff, #a897ff); }
.sentinel-app-tone-cyan .sentinel-app-badge { background: linear-gradient(135deg, #e8fbff, #69d8ff); }
.sentinel-app-tone-amber .sentinel-app-badge { background: linear-gradient(135deg, #fff4d4, #f4bc62); }
.sentinel-app-tone-green .sentinel-app-badge { background: linear-gradient(135deg, #e8fff1, #6dde9a); }
.sentinel-app-tone-slate .sentinel-app-badge { background: linear-gradient(135deg, #eef3fb, #8ea2c2); }

@media (min-width: 721px) and (max-width: 1180px) {
  .sentinel-app-chrome { grid-template-columns: auto minmax(0,1fr) auto; }
  .sentinel-app-actions { grid-column: 2 / -1; justify-content:flex-start; }
}
@media (max-width: 720px) {
  .sentinel-app-window { border-radius: 26px; margin-left: -2px; margin-right: -2px; }
  .sentinel-app-chrome { grid-template-columns: minmax(0,1fr); gap: 12px; padding: 14px; }
  .sentinel-window-dots { display:none; }
  .sentinel-app-identity { align-items:flex-start; }
  .sentinel-app-badge { width: 48px; height: 48px; border-radius: 18px; }
  .sentinel-app-identity h2 { font-size: clamp(1.35rem, 7vw, 2rem); }
  .sentinel-app-status { justify-self:start; }
  .sentinel-app-actions { justify-content:stretch; width:100%; }
  .sentinel-app-actions .btn { flex: 1 1 auto; }
  .sentinel-app-workspace { padding: 13px; }
}


/* Stage 53 Workspace Tabs + Drawers
   Converts heavy app pages from one long admin scroll into focused OS workspaces. */
.sentinel-workspace-tabs {
  position: sticky;
  top: calc(10px + env(safe-area-inset-top));
  z-index: 12;
  display: flex;
  gap: 8px;
  align-items: center;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  margin: -6px 0 18px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(12,17,29,.78), rgba(9,13,22,.62));
  backdrop-filter: blur(26px);
  box-shadow: 0 18px 60px rgba(0,0,0,.18);
}
.sentinel-workspace-tabs::-webkit-scrollbar { display: none; }
.sentinel-workspace-tabs a {
  flex: 0 0 auto;
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  padding: 0 13px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: var(--muted);
  text-decoration: none;
  font-size: .78rem;
  letter-spacing: .01em;
  transition: background .16s var(--ease), border .16s var(--ease), color .16s var(--ease), transform .16s var(--ease);
}
.sentinel-workspace-tabs a:hover,
.sentinel-workspace-tabs a.active {
  color: var(--text);
  border-color: var(--line2);
  background: rgba(255,255,255,.085);
  transform: translateY(-1px);
}
.sentinel-workspace-section,
.sentinel-app-workspace > section[id],
.sentinel-app-workspace .panel[id] {
  scroll-margin-top: 132px;
}
.sentinel-drawer-panel {
  position: relative;
  overflow: hidden;
}
.sentinel-drawer-panel:before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(180deg, rgba(169,220,255,.72), rgba(188,167,255,.28), transparent);
  opacity: .72;
}
.sentinel-drawer-panel > * {
  position: relative;
}
.sentinel-app-workspace .timeline-list {
  max-height: min(520px, 62vh);
  overflow: auto;
  padding-right: 4px;
  overscroll-behavior: contain;
}
.sentinel-app-workspace .timeline-list::-webkit-scrollbar { width: 6px; }
.sentinel-app-workspace .timeline-list::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,.14);
  border-radius: 999px;
}
@media (max-width: 900px) {
  .sentinel-workspace-tabs {
    top: calc(76px + env(safe-area-inset-top));
    margin-left: -2px;
    margin-right: -2px;
    border-radius: 20px;
  }
  .sentinel-workspace-tabs a {
    min-height: 34px;
    padding: 0 11px;
    font-size: .75rem;
  }
  .sentinel-workspace-section,
  .sentinel-app-workspace > section[id],
  .sentinel-app-workspace .panel[id] {
    scroll-margin-top: 146px;
  }
}
@media (max-width: 640px) {
  .sentinel-workspace-tabs {
    top: calc(72px + env(safe-area-inset-top));
    padding: 7px;
    gap: 6px;
  }
  .sentinel-workspace-tabs a {
    min-height: 32px;
    padding: 0 10px;
    font-size: .72rem;
  }
}


/* Stage 54 Operations Center Redesign */
.ops-center-shell{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:34px;padding:24px;background:linear-gradient(145deg,rgba(255,255,255,.105),rgba(255,255,255,.038));box-shadow:0 34px 110px rgba(0,0,0,.34);isolation:isolate}.ops-wallpaper{position:absolute;inset:-25%;z-index:-1;background:radial-gradient(circle at 16% 12%,rgba(103,176,255,.28),transparent 25%),radial-gradient(circle at 86% 22%,rgba(156,123,255,.18),transparent 30%),radial-gradient(circle at 55% 110%,rgba(80,255,208,.09),transparent 35%),linear-gradient(135deg,rgba(5,9,16,.88),rgba(9,14,24,.68));filter:saturate(1.08)}.ops-wallpaper:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(circle at 50% 30%,#000 0,transparent 78%);opacity:.7}.ops-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:22px;align-items:stretch}.ops-hero-copy{display:grid;align-content:center;gap:10px}.ops-hero-copy h2{max-width:920px;font-size:clamp(2.3rem,5.8vw,6.4rem);line-height:.92;letter-spacing:-.07em;color:rgba(226,235,248,.82)}.ops-hero-copy>p:not(.eyebrow){max-width:780px;color:rgba(205,215,230,.72);font-size:1.03rem;line-height:1.65}.ops-command-strip{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.ops-run-form{display:inline-flex}.ops-readiness-orb{position:relative;min-height:250px;border:1px solid rgba(255,255,255,.16);border-radius:32px;padding:22px;display:grid;align-content:end;gap:8px;background:radial-gradient(circle at 50% 18%,rgba(169,220,255,.30),rgba(11,16,27,.9) 62%,rgba(3,6,11,.94));box-shadow:inset 0 0 60px rgba(169,220,255,.10),0 24px 80px rgba(0,0,0,.28);overflow:hidden}.ops-readiness-orb:before{content:"";position:absolute;inset:22px;border-radius:50%;border:1px solid rgba(255,255,255,.12);box-shadow:0 0 80px rgba(115,185,255,.18)}.ops-readiness-orb span,.ops-status-card span{font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;color:rgba(189,202,224,.66)}.ops-readiness-orb strong{font-size:clamp(1.125rem,2vw,1.875rem);letter-spacing:-.075em;line-height:.9;color:rgba(249,252,255,.94)}.ops-readiness-orb small{color:rgba(205,215,230,.68);max-width:230px}.ops-readiness-orb.paused{background:radial-gradient(circle at 50% 18%,rgba(255,174,107,.26),rgba(25,17,13,.88) 62%,rgba(7,5,4,.94))}.ops-readiness-orb.watch{background:radial-gradient(circle at 50% 18%,rgba(255,220,130,.24),rgba(23,19,10,.88) 62%,rgba(7,6,4,.94))}.ops-status-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px;margin-top:22px}.ops-status-card{min-height:116px;border:1px solid rgba(255,255,255,.11);border-radius:24px;padding:15px;background:rgba(255,255,255,.055);box-shadow:0 18px 50px rgba(0,0,0,.18);display:grid;align-content:space-between}.ops-status-card.primary{grid-column:span 2;background:linear-gradient(135deg,rgba(169,220,255,.15),rgba(255,255,255,.055))}.ops-status-card strong{font-size:clamp(1.35rem,2.5vw,2.45rem);font-weight:430;letter-spacing:-.06em;color:rgba(242,247,255,.9)}.ops-status-card small{color:rgba(195,207,225,.66)}.ops-control-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:18px}.ops-control-panel,.ops-cron-card,.ops-radar-panel,.ops-watchlist-panel,.ops-alert-panel,.ops-brief-panel,.ops-run-panel,.ops-event-stream{background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(255,255,255,.042));border-color:rgba(255,255,255,.12)}.ops-form-band{display:grid;grid-template-columns:minmax(220px,.45fr) minmax(260px,.55fr);gap:14px;align-items:stretch}.emergency-toggle{min-height:58px;border:1px solid rgba(255,255,255,.10);border-radius:20px;padding:12px;background:rgba(255,255,255,.045)}.ops-limit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.ops-switchboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.ops-switch{display:flex;gap:10px;align-items:center;min-height:44px;border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:10px 12px;background:rgba(255,255,255,.04);color:var(--text2);font-size:.88rem}.ops-switch input{width:18px;height:18px;accent-color:#a9dcff}.ops-form-footer{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.ops-cron-command{display:grid;gap:7px;margin:18px 0;border:1px solid rgba(255,255,255,.10);border-radius:20px;padding:14px;background:rgba(0,0,0,.18)}.ops-cron-command span{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}.ops-cron-command code{white-space:normal;word-break:break-word;color:rgba(229,241,255,.88);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.84rem}.ops-health-list{display:grid;gap:10px}.ops-health-list div{display:flex;justify-content:space-between;gap:16px;border-top:1px solid rgba(255,255,255,.08);padding-top:10px}.ops-health-list dt{color:var(--muted);font-size:.78rem}.ops-health-list dd{margin:0;color:var(--text2);text-align:right}.ops-radar-layout{display:grid;grid-template-columns:minmax(0,.95fr) minmax(320px,1.05fr);gap:18px;align-items:start}.ops-radar-copy p{color:rgba(205,215,230,.72);line-height:1.62}.ops-latest-sweep{margin-top:16px}.ops-sweep-form{border:1px solid rgba(255,255,255,.10);border-radius:24px;padding:16px;background:rgba(255,255,255,.045)}.ops-sweep-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ops-candidate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.ops-candidate-card{display:grid;grid-template-columns:64px minmax(0,1fr);gap:14px;position:relative;border:1px solid rgba(255,255,255,.10);border-radius:24px;padding:14px;background:rgba(255,255,255,.047);box-shadow:0 16px 42px rgba(0,0,0,.16)}.ops-candidate-rank{display:grid;align-content:start;gap:6px;text-align:center}.ops-candidate-rank span{font-size:.72rem;color:var(--muted)}.ops-candidate-rank strong{display:grid;place-items:center;width:54px;height:54px;border-radius:18px;background:rgba(169,220,255,.12);font-size:1.4rem;font-weight:520}.ops-candidate-main h4,.ops-record-card h4,.ops-alert-card h4{margin:0;font-size:1rem;letter-spacing:-.02em}.ops-candidate-main p,.ops-record-card p,.ops-alert-card p{margin:.3rem 0;color:rgba(205,215,230,.72);line-height:1.45}.ops-candidate-main small,.ops-record-card small,.ops-alert-card small{color:var(--muted)}.ops-chip-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0;color:var(--muted);font-size:.8rem}.ops-candidate-actions{grid-column:2}.ops-watchlist-form{border:1px solid rgba(255,255,255,.10);border-radius:24px;padding:14px;background:rgba(255,255,255,.04);margin-bottom:14px}.ops-record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ops-record-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-record-card,.ops-alert-card{display:grid;gap:10px;border:1px solid rgba(255,255,255,.10);border-radius:24px;padding:15px;background:rgba(255,255,255,.047);box-shadow:0 15px 42px rgba(0,0,0,.16)}.ops-brief-run-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(360px,1.08fr);gap:18px}.ops-brief-action{margin-bottom:14px}.ops-timeline,.ops-run-list{display:grid;gap:12px}.ops-timeline-item{display:grid;grid-template-columns:20px minmax(0,1fr);gap:10px;align-items:start}.ops-timeline-item>span{width:10px;height:10px;border-radius:50%;margin-top:6px;background:linear-gradient(135deg,var(--accent),#7f8cff);box-shadow:0 0 20px rgba(169,220,255,.28)}.ops-timeline-item>div,.ops-run-card{border:1px solid rgba(255,255,255,.09);border-radius:20px;padding:12px;background:rgba(255,255,255,.04)}.ops-timeline-item strong,.ops-run-card strong{font-weight:520}.ops-timeline-item p{margin:.35rem 0;color:rgba(205,215,230,.72)}.ops-timeline-item small,.ops-run-card small{color:var(--muted)}.ops-run-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.ops-run-head span{color:var(--muted);font-size:.8rem}.ops-run-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:10px 0}.ops-run-card dl div{border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:8px;background:rgba(0,0,0,.10)}.ops-run-card dt{color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.12em}.ops-run-card dd{margin:3px 0 0;color:var(--text2);font-size:.82rem}@media(max-width:1180px){.ops-status-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.ops-control-grid,.ops-radar-layout,.ops-brief-run-grid{grid-template-columns:1fr}.ops-limit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.ops-center-shell{padding:16px;border-radius:26px}.ops-hero{grid-template-columns:1fr}.ops-readiness-orb{min-height:190px}.ops-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-status-card.primary{grid-column:span 2}.ops-form-band,.ops-switchboard,.ops-sweep-options,.ops-candidate-grid,.ops-record-grid,.ops-record-grid.compact{grid-template-columns:1fr}.ops-limit-grid{grid-template-columns:1fr}.ops-form-footer{align-items:stretch}.ops-form-footer .btn{width:100%}.ops-command-strip .btn,.ops-run-form,.ops-run-form .btn{width:100%}.ops-candidate-card{grid-template-columns:1fr}.ops-candidate-rank{display:flex;align-items:center;text-align:left}.ops-candidate-actions{grid-column:auto}.ops-run-card dl{grid-template-columns:1fr}.ops-health-list div{display:grid}.ops-health-list dd{text-align:left}}


/* Stage 55 Form Sheets + Action Modals */
.sentinel-action-panel { position: relative; }
.panel-actions { display: inline-flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.sentinel-sheet-inline-open { width: 100%; margin: 10px 0 0; }
.sf-sheets-ready form[data-sheet] { display: none !important; }
.sentinel-sheet-backdrop { position: fixed; inset: 0; z-index: 142; border: 0; background: rgba(0,0,0,.50); backdrop-filter: blur(14px); opacity: 0; pointer-events: none; transition: opacity .16s var(--ease); }
.sentinel-sheet-backdrop.is-open { opacity: 1; pointer-events: auto; }
body.sentinel-sheet-active { overflow: hidden; }
.sf-sheets-ready form[data-sheet].is-open { display: grid !important; position: fixed; z-index: 150; top: max(28px, env(safe-area-inset-top)); right: max(24px, env(safe-area-inset-right)); bottom: max(28px, env(safe-area-inset-bottom)); width: min(620px, calc(100vw - 48px - env(safe-area-inset-left) - env(safe-area-inset-right))); max-height: calc(100svh - 56px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); overflow: auto; -webkit-overflow-scrolling: touch; padding: 22px; gap: 14px; border: 1px solid rgba(255,255,255,.16); border-radius: 30px; background: radial-gradient(circle at 12% 0%, rgba(169,220,255,.16), transparent 34%), linear-gradient(180deg, rgba(20,28,42,.94), rgba(8,12,20,.92)); box-shadow: 0 34px 120px rgba(0,0,0,.54), inset 0 1px rgba(255,255,255,.09); backdrop-filter: blur(34px); transform: translate3d(0,0,0); animation: sentinelSheetIn .18s cubic-bezier(.2,.84,.22,1); }
.sf-sheets-ready form[data-sheet].is-open.form-grid, .sf-sheets-ready form[data-sheet].is-open.case-wizard { grid-template-columns: repeat(2, minmax(0,1fr)); }
.sf-sheets-ready form[data-sheet].is-open .full, .sf-sheets-ready form[data-sheet].is-open .sentinel-sheet-header, .sf-sheets-ready form[data-sheet].is-open .form-actions, .sf-sheets-ready form[data-sheet].is-open > p, .sf-sheets-ready form[data-sheet].is-open > .button-row, .sf-sheets-ready form[data-sheet].is-open > .ops-sweep-options { grid-column: 1 / -1; }
.sentinel-sheet-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,.10); position: sticky; top: -22px; z-index: 2; background: linear-gradient(180deg, rgba(17,24,36,.98), rgba(17,24,36,.88)); backdrop-filter: blur(22px); margin: -2px -2px 2px; }
.sentinel-sheet-header h3 { margin: 2px 0 0; font-size: clamp(1.35rem,2.4vw,2.1rem); letter-spacing: -.045em; font-weight: 520; }
.sentinel-sheet-close { flex: 0 0 auto; }
.sf-sheets-ready form[data-sheet].is-open label { min-width: 0; }
.sf-sheets-ready form[data-sheet].is-open input, .sf-sheets-ready form[data-sheet].is-open select, .sf-sheets-ready form[data-sheet].is-open textarea { width: 100%; }
@keyframes sentinelSheetIn { from { opacity: 0; transform: translate3d(12px,10px,0) scale(.985); } to { opacity: 1; transform: translate3d(0,0,0) scale(1); } }
@media (max-width: 720px) { .sf-sheets-ready form[data-sheet].is-open { top: auto; left: max(8px, env(safe-area-inset-left)); right: max(8px, env(safe-area-inset-right)); bottom: calc(8px + env(safe-area-inset-bottom)); width: auto; max-height: min(82svh, calc(100svh - 28px - env(safe-area-inset-top) - env(safe-area-inset-bottom))); border-radius: 28px 28px 24px 24px; padding: 18px; animation: sentinelSheetUp .2s cubic-bezier(.2,.84,.22,1); } .sf-sheets-ready form[data-sheet].is-open.form-grid, .sf-sheets-ready form[data-sheet].is-open.case-wizard { grid-template-columns: 1fr; } .sentinel-sheet-header { top: -18px; } .panel-actions { width: 100%; justify-content: flex-start; } }
@keyframes sentinelSheetUp { from { opacity: 0; transform: translate3d(0,18px,0) scale(.985); } to { opacity: 1; transform: translate3d(0,0,0) scale(1); } }
@media (prefers-reduced-motion: reduce) { .sf-sheets-ready form[data-sheet].is-open, .sentinel-sheet-backdrop { animation: none !important; transition: none !important; } }


/* Stage 56 Record Cards + Responsive Tables
   Desktop keeps premium tables. iPad/iPhone convert table rows into native-feeling
   intelligence record cards using data-labels generated by assets/js/app.js. */
.sf-record-wrap {
  --record-card-bg: linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.035));
}

.sf-record-table td small,
.sf-record-table td .muted {
  white-space: normal;
}

@media (max-width: 1180px) {
  .sf-record-wrap {
    overflow: visible !important;
    border-radius: 0;
    padding-bottom: 0 !important;
  }

  .sf-record-table {
    width: 100% !important;
    min-width: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 12px !important;
  }

  .sf-record-table thead {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
  }

  .sf-record-table tbody {
    display: grid;
    gap: 12px;
    width: 100%;
  }

  .sf-record-table tr.sf-record-row {
    display: grid;
    gap: 10px;
    width: 100%;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: var(--record-card-bg);
    box-shadow: 0 16px 46px rgba(0,0,0,.18);
    backdrop-filter: blur(18px);
  }

  .sf-record-table tr.sf-record-row:hover {
    filter: none;
    border-color: var(--line2);
  }

  .sf-record-table tr.sf-record-empty-row {
    display: block;
    width: 100%;
  }

  .sf-record-table tr.sf-record-empty-row td {
    display: grid;
    min-height: 110px;
    place-items: center;
    border: 1px dashed var(--line);
    border-radius: 22px;
    background: rgba(255,255,255,.035);
  }

  .sf-record-table td {
    display: grid;
    grid-template-columns: minmax(92px, .34fr) minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
    overflow-wrap: anywhere;
  }

  .sf-record-table td::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: .61rem;
    line-height: 1.35;
    letter-spacing: .15em;
    text-transform: uppercase;
    padding-top: .18rem;
  }

  .sf-record-table td.sf-record-primary-cell {
    display: block;
    padding-bottom: 4px !important;
  }

  .sf-record-table td.sf-record-primary-cell::before {
    display: block;
    margin-bottom: 7px;
  }

  .sf-record-table td a,
  .sf-record-table td strong,
  .sf-record-table td code,
  .sf-record-table td small {
    max-width: 100%;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }

  .sf-record-table td .btn,
  .sf-record-table td button,
  .sf-record-table td .inline-form {
    max-width: 100%;
  }

  .sf-record-table td .inline-form {
    display: inline-flex;
    margin: 4px 6px 4px 0;
  }

  .sf-record-table td:last-child:has(.btn),
  .sf-record-table td:last-child:has(button),
  .sf-record-table td:last-child:has(.inline-form) {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
  }

  .sf-record-table td:last-child:has(.btn)::before,
  .sf-record-table td:last-child:has(button)::before,
  .sf-record-table td:last-child:has(.inline-form)::before {
    flex: 0 0 100%;
  }
}

@media (max-width: 640px) {
  .sf-record-table tbody {
    gap: 10px;
  }

  .sf-record-table tr.sf-record-row {
    padding: 14px;
    border-radius: 20px;
  }

  .sf-record-table td {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .sf-record-table td::before {
    padding-top: 0;
  }
}


/* Stage 57 Global Command Palette
   A native OS command surface for fast navigation and safe non-destructive actions. */
.sentinel-command-open {
  gap: 7px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.07);
  cursor: pointer;
}
.sentinel-command-open span:first-child {
  width: 22px;
  height: 22px;
  display: inline-grid;
  place-items: center;
  border-radius: 9px;
  color: #07101a;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  font-weight: 760;
}
.sentinel-command-palette[hidden] { display: none !important; }
.sentinel-command-palette { position: fixed; inset: 0; z-index: 220; display: grid; place-items: start center; padding: calc(42px + env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left)); }
.sentinel-command-scrim { position: absolute; inset: 0; border: 0; background: rgba(0,0,0,.54); backdrop-filter: blur(18px); }
.sentinel-command-panel { position: relative; width: min(760px, calc(100vw - 32px - env(safe-area-inset-left) - env(safe-area-inset-right))); max-height: calc(100dvh - 84px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); display: grid; grid-template-rows: auto auto auto minmax(0,1fr) auto; gap: 14px; border: 1px solid rgba(255,255,255,.16); border-radius: 34px; padding: 22px; background: radial-gradient(circle at 18% 0%, rgba(169,220,255,.17), transparent 34%), linear-gradient(180deg, rgba(18,26,40,.96), rgba(7,10,18,.94)); box-shadow: 0 42px 140px rgba(0,0,0,.62), inset 0 1px rgba(255,255,255,.10); backdrop-filter: blur(36px); overflow: hidden; animation: sentinelCommandIn .16s cubic-bezier(.2,.84,.22,1); }
.sentinel-command-header { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; }
.sentinel-command-header h2 { margin: 2px 0 0; font-size: clamp(1.75rem, 4.8vw, 3rem); line-height: .98; letter-spacing: -.06em; font-weight: 560; color: rgba(248,251,255,.96); }
.sentinel-command-search { display: grid; gap: 9px; color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .16em; }
.sentinel-command-search input { width: 100%; min-height: 58px; border: 1px solid rgba(255,255,255,.14); border-radius: 22px; background: rgba(255,255,255,.07); color: var(--text); font-size: 1.06rem; padding: 0 18px; box-shadow: inset 0 1px rgba(255,255,255,.06); }
.sentinel-command-hints { display: flex; flex-wrap: wrap; gap: 8px; }
.sentinel-command-hints span { min-height: 27px; display: inline-flex; align-items: center; padding: 0 10px; border: 1px solid rgba(255,255,255,.11); border-radius: 999px; background: rgba(255,255,255,.045); color: var(--muted); font-size: .72rem; }
.sentinel-command-results { min-height: 0; overflow: auto; display: grid; gap: 9px; padding-right: 2px; -webkit-overflow-scrolling: touch; }
.sentinel-command-item { display: grid; grid-template-columns: 44px minmax(0,1fr) auto; gap: 13px; align-items: center; min-height: 70px; padding: 12px; border: 1px solid rgba(255,255,255,.10); border-radius: 22px; background: linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.035)); color: var(--text2); text-decoration: none; }
.sentinel-command-item:hover, .sentinel-command-item.is-active { border-color: rgba(169,220,255,.38); background: linear-gradient(180deg, rgba(169,220,255,.13), rgba(255,255,255,.05)); color: var(--text); transform: translateY(-1px); }
.sentinel-command-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 16px; color: #07101a; background: linear-gradient(135deg, var(--accent), var(--accent2)); font-weight: 760; box-shadow: inset 0 1px rgba(255,255,255,.35), 0 12px 28px rgba(0,0,0,.22); }
.sentinel-command-copy { display: grid; gap: 3px; min-width: 0; }
.sentinel-command-copy strong { font-size: 1rem; font-weight: 620; letter-spacing: -.025em; }
.sentinel-command-copy small { color: var(--muted); line-height: 1.35; }
.sentinel-command-group { color: rgba(178,222,255,.88); text-transform: uppercase; letter-spacing: .14em; font-size: .62rem; white-space: nowrap; }
.sentinel-command-empty { margin: 0; min-height: 64px; display: grid; place-items: center; color: var(--muted); border: 1px dashed rgba(255,255,255,.14); border-radius: 20px; background: rgba(255,255,255,.035); }
body.sentinel-command-active { overflow: hidden; }
@keyframes sentinelCommandIn { from { opacity: 0; transform: translateY(12px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (max-width: 720px) {
  .sentinel-command-open span:last-child { display: none; }
  .sentinel-command-open { padding: 9px 10px; }
  .sentinel-command-palette { place-items: end center; padding: calc(12px + env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)); }
  .sentinel-command-panel { width: calc(100vw - 16px - env(safe-area-inset-left) - env(safe-area-inset-right)); max-height: min(88dvh, calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom))); border-radius: 30px 30px 24px 24px; padding: 18px; gap: 12px; animation: sentinelCommandSheetIn .18s cubic-bezier(.2,.84,.22,1); }
  .sentinel-command-header h2 { font-size: clamp(1.65rem, 9vw, 2.5rem); }
  .sentinel-command-search input { min-height: 54px; font-size: 16px; border-radius: 20px; }
  .sentinel-command-hints { display: none; }
  .sentinel-command-item { grid-template-columns: 40px minmax(0,1fr); min-height: 72px; border-radius: 20px; }
  .sentinel-command-icon { width: 40px; height: 40px; border-radius: 15px; }
  .sentinel-command-group { grid-column: 2; justify-self: start; }
}
@keyframes sentinelCommandSheetIn { from { opacity: 0; transform: translateY(18px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (prefers-reduced-motion: reduce) { .sentinel-command-panel, .sentinel-command-item { animation: none !important; transition: none !important; transform: none !important; } }


/* Stage 59 Native Motion + Microinteractions
   Fast, subtle, native-feeling motion. No slow blur-heavy animation. */
:root {
  --sf-motion-fast: 120ms;
  --sf-motion-med: 180ms;
  --sf-motion-soft: cubic-bezier(.2,.9,.2,1);
  --sf-motion-spring: cubic-bezier(.18,.92,.24,1.08);
}

body.sf-native-motion-ready .sf-motion-reveal {
  opacity: 0;
  transform: translateY(10px);
}

body.sf-native-motion-ready .sf-motion-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity var(--sf-motion-med) var(--sf-motion-soft),
    transform var(--sf-motion-med) var(--sf-motion-soft),
    border-color var(--sf-motion-fast) var(--sf-motion-soft),
    background var(--sf-motion-fast) var(--sf-motion-soft),
    box-shadow var(--sf-motion-fast) var(--sf-motion-soft);
}

.panel,
.hero-card,
.case-hero,
.metric,
.metric-card,
.mission-card,
.sf-app-window,
.sf-app-tile,
.sf-record-table tbody tr,
.sf-record-card,
.command-orb,
.sf-command-item,
.btn,
.quick-action,
.icon-btn,
.sf-sheet,
.sf-drawer-panel {
  transition:
    transform var(--sf-motion-fast) var(--sf-motion-soft),
    border-color var(--sf-motion-fast) var(--sf-motion-soft),
    background var(--sf-motion-fast) var(--sf-motion-soft),
    box-shadow var(--sf-motion-fast) var(--sf-motion-soft),
    opacity var(--sf-motion-fast) var(--sf-motion-soft);
}

@media (hover:hover) and (pointer:fine) {
  .mission-card:hover,
  .sf-app-tile:hover,
  .metric-card:hover,
  .record-card:hover,
  .sf-record-card:hover,
  .sf-command-item:hover {
    transform: translateY(-2px);
    border-color: rgba(255,255,255,.22);
    box-shadow: 0 24px 76px rgba(0,0,0,.28);
  }

  .btn:hover,
  .quick-action:hover,
  .icon-btn:hover {
    transform: translateY(-1px);
  }
}

.sf-touch-pulse {
  transform: scale(.985) !important;
  opacity: .92;
}

.sf-native-page-ready .sf-app-window,
.sf-native-page-ready .mission-control-shell,
.sf-native-page-ready .hero-card:first-of-type,
.sf-native-page-ready .panel:first-of-type {
  animation: sfNativeEnter 180ms var(--sf-motion-soft) both;
}

@keyframes sfNativeEnter {
  from { opacity: .72; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.sf-app-window-titlebar,
.sf-workspace-tabs,
.topbar,
.sf-os-mobile-top {
  transition:
    background var(--sf-motion-med) var(--sf-motion-soft),
    border-color var(--sf-motion-med) var(--sf-motion-soft),
    box-shadow var(--sf-motion-med) var(--sf-motion-soft);
}

.sf-command-palette:not([hidden]) .sf-command-panel,
.sf-sheet-host:not([hidden]) .sf-sheet,
.sf-modal-host:not([hidden]) .sf-sheet {
  animation: sfNativeSheetIn 160ms var(--sf-motion-spring) both;
}

.sf-command-palette:not([hidden]) .sf-command-backdrop,
.sf-sheet-host:not([hidden]) .sf-sheet-backdrop,
.sf-modal-host:not([hidden]) .sf-sheet-backdrop {
  animation: sfNativeFadeIn 120ms linear both;
}

@keyframes sfNativeSheetIn {
  from { opacity: 0; transform: translateY(10px) scale(.992); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes sfNativeFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.sf-loading-soft {
  position: relative;
  overflow: hidden;
}

.sf-loading-soft::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.08), transparent);
  animation: sfSoftSheen 1.2s ease-in-out infinite;
}

@keyframes sfSoftSheen {
  to { transform: translateX(100%); }
}

.status-pill,
.risk-pill,
.badge,
.sf-status-dot {
  transition:
    transform var(--sf-motion-fast) var(--sf-motion-soft),
    background var(--sf-motion-fast) var(--sf-motion-soft),
    border-color var(--sf-motion-fast) var(--sf-motion-soft),
    color var(--sf-motion-fast) var(--sf-motion-soft);
}

.sf-status-dot,
.audit-dot,
.timeline-dot {
  animation: sfStatusBreathe 2.8s ease-in-out infinite;
}

@keyframes sfStatusBreathe {
  0%, 100% { box-shadow: 0 0 0 0 rgba(105,185,255,.0); }
  50% { box-shadow: 0 0 0 6px rgba(105,185,255,.08); }
}

@media (max-width: 720px) {
  .sf-command-palette:not([hidden]) .sf-command-panel,
  .sf-sheet-host:not([hidden]) .sf-sheet,
  .sf-modal-host:not([hidden]) .sf-sheet {
    animation-name: sfNativeMobileSheetIn;
  }

  @keyframes sfNativeMobileSheetIn {
    from { opacity: .88; transform: translateY(18px); }
    to { opacity: 1; transform: translateY(0); }
  }
}

@media (prefers-reduced-motion: reduce) {
  body.sf-native-motion-ready .sf-motion-reveal,
  body.sf-native-motion-ready .sf-motion-reveal.is-visible,
  .sf-native-page-ready .sf-app-window,
  .sf-native-page-ready .mission-control-shell,
  .sf-native-page-ready .hero-card:first-of-type,
  .sf-native-page-ready .panel:first-of-type,
  .sf-command-palette:not([hidden]) .sf-command-panel,
  .sf-sheet-host:not([hidden]) .sf-sheet,
  .sf-modal-host:not([hidden]) .sf-sheet,
  .sf-command-palette:not([hidden]) .sf-command-backdrop,
  .sf-sheet-host:not([hidden]) .sf-sheet-backdrop,
  .sf-modal-host:not([hidden]) .sf-sheet-backdrop,
  .sf-status-dot,
  .audit-dot,
  .timeline-dot,
  .sf-loading-soft::after {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}


/* Stage 60 QHX Regression Fortress */
.qhx-hero { overflow: hidden; }
.qhx-score-orb strong { font-size:clamp(1.3rem, 3.5vw, 2.1rem); }
.qhx-summary-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 20px;
}
.qhx-grid { align-items: start; }
.qhx-category-stack { display: grid; gap: 14px; }
.qhx-category-card {
  border: 1px solid var(--line);
  border-radius: 24px;
  background: rgba(255,255,255,.045);
  overflow: hidden;
}
.qhx-category-card header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
  background: rgba(255,255,255,.035);
}
.qhx-category-card h4 { margin: 0; font-size: 1.05rem; letter-spacing: -.02em; }
.qhx-check-list { display: grid; }
.qhx-check {
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  padding: 14px 18px;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.qhx-check:last-child { border-bottom: 0; }
.qhx-check strong { display:block; font-weight: 560; color: var(--text); }
.qhx-check small { display:block; color: var(--muted); margin-top: 2px; overflow-wrap: anywhere; }
.qhx-check p { margin: 8px 0 0; color: var(--muted); font-size: .9rem; line-height: 1.42; overflow-wrap: anywhere; }
.qhx-check b { font-size: .68rem; letter-spacing: .14em; color: var(--muted); }
.qhx-led { width: 10px; height: 10px; border-radius: 50%; margin-top: 5px; background: rgba(255,255,255,.24); box-shadow: 0 0 0 4px rgba(255,255,255,.04); }
.qhx-check.is-pass .qhx-led { background: #76f7bf; box-shadow: 0 0 0 4px rgba(118,247,191,.10), 0 0 22px rgba(118,247,191,.24); }
.qhx-check.is-warn .qhx-led { background: #ffd36b; box-shadow: 0 0 0 4px rgba(255,211,107,.10), 0 0 22px rgba(255,211,107,.22); }
.qhx-check.is-fail .qhx-led { background: #ff7d92; box-shadow: 0 0 0 4px rgba(255,125,146,.10), 0 0 22px rgba(255,125,146,.22); }
.qhx-history-panel .timeline-list { max-height: 560px; overflow: auto; padding-right: 4px; }
.qhx-note { margin-top: 16px; padding: 16px; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.045); display: grid; gap: 6px; }
.qhx-note span { color: var(--muted); line-height: 1.45; }
@media (max-width: 1080px) {
  .qhx-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .qhx-summary-grid { grid-template-columns: 1fr; }
  .qhx-category-card header { align-items: flex-start; flex-direction: column; }
  .qhx-check { grid-template-columns: 10px minmax(0, 1fr); }
  .qhx-check b { grid-column: 2; }
}

/* Stage 61 Public Portal Native Redesign
   Public surface becomes a calm, trustworthy, public-safe native portal. */
.public-native-shell {
  --public-glass: rgba(10, 15, 26, .68);
  --public-glass-strong: rgba(13, 20, 34, .86);
  --public-border: rgba(255,255,255,.13);
  --public-soft: rgba(204, 216, 235, .76);
  overflow-x: hidden;
  background:
    radial-gradient(circle at 12% -8%, rgba(169,220,255,.18), transparent 28%),
    radial-gradient(circle at 90% 12%, rgba(120,138,255,.13), transparent 30%),
    linear-gradient(145deg, #050812 0%, #09111f 52%, #05070d 100%);
}
.public-environment { position: fixed; inset: 0; z-index: -2; pointer-events: none; overflow: hidden; }
.public-environment span { position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px); background-size: 78px 78px; mask-image: radial-gradient(circle at 50% 12%, #000 0%, transparent 74%); opacity: .62; }
.public-environment i { position: absolute; width: 520px; height: 520px; right: -180px; top: 10%; border-radius: 50%; background: rgba(99, 125, 255, .13); filter: blur(52px); }
.public-environment b { position: absolute; left: -150px; bottom: -180px; width: 520px; height: 520px; border-radius: 50%; background: rgba(90, 210, 255, .12); filter: blur(58px); }
.public-native-topbar { position: sticky; top: 0; z-index: 70; width: min(1240px, calc(100% - 28px)); margin: 12px auto 0; border: 1px solid var(--public-border); border-radius: 28px; background: rgba(8, 12, 20, .72); box-shadow: 0 20px 70px rgba(0,0,0,.24); }
.public-native-topbar .brand-text strong { max-width: min(48vw, 360px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.public-nav a.active { color: var(--text); background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.14); }
.public-native-main { width: min(1240px, calc(100% - 28px)); padding: 28px 0 78px; }
.public-contextbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 18px; }
.public-contextbar > div { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.public-contextbar span { color: var(--muted); border: 1px solid rgba(255,255,255,.11); background: rgba(255,255,255,.045); border-radius: 999px; padding: 7px 10px; font-size: .76rem; }
.public-native-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .55fr); gap: 18px; align-items: stretch; margin-bottom: 18px; }
.public-hero-copy, .public-trust-console, .public-work-panel, .public-card, .public-result-card, .public-warning-dossier { border: 1px solid var(--public-border); border-radius: 34px; background: linear-gradient(180deg, rgba(255,255,255,.085), rgba(255,255,255,.038)); box-shadow: 0 28px 95px rgba(0,0,0,.30); backdrop-filter: blur(28px); }
.public-hero-copy { padding: clamp(24px, 4vw, 44px); position: relative; overflow: hidden; }
.public-hero-copy:before { content: ""; position: absolute; inset: -1px; background: radial-gradient(circle at 12% 0%, rgba(169,220,255,.16), transparent 38%); pointer-events: none; }
.public-hero-copy > * { position: relative; z-index: 1; }
.public-hero-copy h1 { font-size: clamp(2.8rem, 7.5vw, 7.4rem); line-height: .9; letter-spacing: -.075em; max-width: 980px; margin: 0 0 18px; color: rgba(221, 230, 245, .82); -webkit-text-fill-color: rgba(221, 230, 245, .82); }
.public-hero-copy p:not(.eyebrow) { max-width: 760px; color: var(--public-soft); font-size: 1.08rem; line-height: 1.7; }
.public-native-search { max-width: 820px; margin: 26px 0 16px; padding: 8px; border: 1px solid rgba(255,255,255,.13); border-radius: 999px; background: rgba(255,255,255,.055); box-shadow: inset 0 1px rgba(255,255,255,.06); }
.public-native-search input { border: 0; background: transparent; box-shadow: none; min-height: 48px; }
.public-native-search input:focus { box-shadow: none; }
.public-trust-console { padding: 22px; display: grid; align-content: center; gap: 12px; min-height: 100%; }
.public-trust-console.compact { align-content: start; min-height: auto; }
.public-orb { width: min(230px, 58vw); height: min(230px, 58vw); margin: 0 auto 8px; border: 1px solid rgba(255,255,255,.15); border-radius: 50%; display: grid; place-items: center; text-align: center; background: radial-gradient(circle at 50% 26%, rgba(169,220,255,.32), rgba(15,23,38,.96) 60%, rgba(3,5,10,.95)); box-shadow: inset 0 0 55px rgba(105,185,255,.13), 0 32px 80px rgba(0,0,0,.30); }
.public-orb span, .public-orb small { color: var(--muted); letter-spacing: .12em; text-transform: uppercase; font-size: .72rem; }
.public-orb strong { font-size:clamp(1.2rem, 5vw, 2.2rem); font-weight: 420; letter-spacing: -.08em; }
.public-mini-status, .public-safe-badge { border: 1px solid rgba(255,255,255,.11); border-radius: 22px; background: rgba(255,255,255,.052); padding: 14px; display: grid; gap: 4px; }
.public-mini-status span, .public-safe-badge span { color: var(--muted); font-size: .82rem; line-height: 1.45; }
.public-mini-status strong, .public-safe-badge strong { color: var(--text); font-weight: 560; font-size: 1.2rem; }
.public-trust-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.public-card { padding: 18px; min-height: 158px; display: grid; align-content: space-between; gap: 12px; }
.public-card > span { width: 34px; height: 34px; display: inline-grid; place-items: center; border-radius: 14px; background: rgba(169,220,255,.12); color: rgba(190,226,255,.92); font-size: .78rem; }
.public-card strong { font-weight: 560; font-size: 1.08rem; }
.public-card p, .public-work-panel p, .public-warning-card p, .public-result-card p, .public-warning-dossier p { color: var(--public-soft); line-height: 1.6; }
.public-workspace-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; margin-bottom: 18px; }
.public-work-panel { grid-column: span 6; padding: clamp(18px, 3vw, 26px); min-width: 0; }
.public-span-7 { grid-column: span 7; }
.public-span-5 { grid-column: span 5; }
.public-warning-list, .public-warning-grid { display: grid; gap: 12px; }
.public-warning-grid { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.public-warning-card { text-decoration: none; color: inherit; border: 1px solid rgba(255,255,255,.11); border-radius: 24px; background: rgba(255,255,255,.045); padding: 16px; display: grid; gap: 8px; min-width: 0; transition: transform .16s var(--ease), border-color .16s var(--ease), background .16s var(--ease); }
.public-warning-card:hover { transform: translateY(-2px); border-color: rgba(255,255,255,.20); background: rgba(255,255,255,.065); }
.public-warning-card span, .public-warning-card small { color: var(--muted); font-size: .78rem; }
.public-warning-card strong { font-weight: 560; overflow-wrap: anywhere; }
.public-pattern-stack, .public-action-grid { display: grid; gap: 10px; }
.public-pattern-stack > div, .public-action-grid > div { border: 1px solid rgba(255,255,255,.10); border-radius: 22px; padding: 14px; background: rgba(255,255,255,.04); }
.public-action-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.public-empty { border: 1px dashed rgba(255,255,255,.16); border-radius: 24px; padding: 20px; background: rgba(255,255,255,.035); }
.public-result-card { padding: clamp(20px, 3vw, 30px); margin-bottom: 18px; border-left: 5px solid var(--accent); }
.public-result-card.critical { border-left-color: var(--danger); }
.public-result-card.suspicious { border-left-color: var(--warn); }
.public-result-card.low { border-left-color: var(--ok); }
.public-result-card.unresolved { border-left-color: var(--accent); }
.public-result-head, .public-dossier-head { display: flex; justify-content: space-between; gap: 18px; align-items: center; }
.public-result-head h2, .public-dossier-head h1 { font-size: clamp(2.1rem, 5vw, 4.2rem); line-height: .96; letter-spacing: -.06em; margin: 0 0 10px; color: rgba(221,230,245,.82); }
.public-result-head small { display: inline-flex; margin-top: 8px; color: var(--muted); border: 1px solid rgba(255,255,255,.11); border-radius: 999px; padding: 7px 10px; }
.public-summary-box, .public-caveat-box { margin-top: 18px; border: 1px solid rgba(255,255,255,.11); border-radius: 24px; background: rgba(255,255,255,.045); padding: 18px; }
.public-meta-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.public-meta-grid > div { border: 1px solid rgba(255,255,255,.10); border-radius: 20px; padding: 14px; background: rgba(255,255,255,.04); min-width: 0; }
.public-meta-grid span { display: block; color: var(--muted); font-size: .76rem; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 6px; }
.public-meta-grid strong { font-weight: 560; overflow-wrap: anywhere; }
.public-submit-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .38fr); gap: 16px; margin-bottom: 18px; }
.public-submit-form-panel { grid-column: auto; }
.public-intake-rail { display: grid; gap: 12px; align-content: start; }
.public-warning-dossier { padding: clamp(20px, 4vw, 34px); }
.public-report-body { margin-top: 18px; border: 1px solid rgba(255,255,255,.11); border-radius: 28px; padding: clamp(18px, 3vw, 26px); background: rgba(255,255,255,.045); color: rgba(219,228,242,.82); line-height: 1.75; overflow-wrap: anywhere; }
.public-native-footer { width: min(1240px, calc(100% - 28px)); border-radius: 28px; background: rgba(255,255,255,.045); backdrop-filter: blur(24px); }
.public-body .hero-card, .public-body .panel { border-radius: 30px; }

@media (max-width: 980px) {
  .public-native-hero, .public-submit-grid { grid-template-columns: 1fr; }
  .public-trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-work-panel, .public-span-7, .public-span-5 { grid-column: 1 / -1; }
  .public-action-grid, .public-meta-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .public-native-topbar { width: calc(100% - 20px); margin-top: 8px; border-radius: 24px; padding: 12px; }
  .public-native-topbar .brand { width: 100%; }
  .public-native-topbar .brand-text strong { max-width: calc(100vw - 112px); }
  .public-nav { width: 100%; display: flex; gap: 6px; overflow-x: auto; flex-wrap: nowrap; padding-bottom: 2px; -webkit-overflow-scrolling: touch; }
  .public-nav a { flex: 0 0 auto; white-space: nowrap; }
  .public-native-main { width: calc(100% - 20px); padding-top: 18px; padding-bottom: 48px; }
  .public-contextbar { align-items: flex-start; flex-direction: column; }
  .public-contextbar > div { justify-content: flex-start; }
  .public-hero-copy, .public-trust-console, .public-work-panel, .public-result-card, .public-warning-dossier { border-radius: 26px; }
  .public-hero-copy { padding: 22px; }
  .public-hero-copy h1 { font-size: clamp(2.45rem, 15vw, 4.4rem); line-height: .94; letter-spacing: -.065em; }
  .public-hero-copy p:not(.eyebrow) { font-size: .98rem; line-height: 1.58; }
  .public-native-search { border-radius: 24px; flex-direction: column; padding: 10px; }
  .public-native-search input, .public-native-search button { width: 100%; }
  .public-trust-grid { grid-template-columns: 1fr; }
  .public-card { min-height: auto; }
  .public-workspace-grid { grid-template-columns: 1fr; gap: 12px; }
  .public-result-head, .public-dossier-head { flex-direction: column; align-items: flex-start; }
  .public-result-head .score-orb, .public-dossier-head .score-orb { margin: 0; width: min(190px, 58vw); height: min(190px, 58vw); }
  .public-action-grid, .public-meta-grid { grid-template-columns: 1fr; }
  .public-warning-grid { grid-template-columns: 1fr; }
  .public-native-footer { width: calc(100% - 20px); align-items: flex-start; flex-direction: column; margin-bottom: 20px; }
}


/* Stage 62 Case Workspace Redesign
   Individual case pages become forensic dossier workspaces, not stacked admin records. */
.case-workspace-native {
  position: relative;
  display: grid;
  gap: var(--space-4, 18px);
  margin-bottom: 18px;
}

.case-workspace-native::before {
  content: "";
  position: absolute;
  inset: -18px -10px auto;
  height: 320px;
  pointer-events: none;
  z-index: -1;
  background:
    radial-gradient(circle at 14% 0%, rgba(169,220,255,.18), transparent 36%),
    radial-gradient(circle at 88% 12%, rgba(188,167,255,.13), transparent 34%);
  filter: blur(.1px);
}

.case-workspace-hero {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(240px, 340px);
  gap: 18px;
  align-items: stretch;
  border: 1px solid var(--line);
  border-radius: 34px;
  padding: clamp(20px, 3vw, 34px);
  background:
    linear-gradient(135deg, rgba(255,255,255,.13), rgba(255,255,255,.052)),
    radial-gradient(circle at 82% 0%, rgba(169,220,255,.16), transparent 36%);
  box-shadow: var(--shadow);
  backdrop-filter: blur(30px);
  overflow: hidden;
}

.case-identity-panel {
  min-width: 0;
  align-self: center;
}

.case-identity-panel h2 {
  max-width: 1020px;
  font-size: clamp(2.1rem, 5vw, 5.35rem);
  line-height: .96;
  letter-spacing: -.07em;
  color: rgba(234,241,252,.88);
  overflow-wrap: anywhere;
}

.case-target {
  margin: 14px 0 0;
  color: rgba(201,211,227,.74);
  max-width: 860px;
  overflow-wrap: anywhere;
}

.case-chip-grid {
  margin-top: 18px;
}

.case-risk-console {
  display: grid;
  place-items: center;
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 30px;
  background: rgba(255,255,255,.055);
  min-width: 0;
}

.case-score-orb {
  width: 176px;
  height: 176px;
  margin: 0;
}

.case-readiness {
  width: 100%;
  display: grid;
  gap: 8px;
}

.case-readiness-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  color: var(--muted);
  font-size: .82rem;
}

.case-readiness-row strong {
  color: var(--text2);
  font-weight: 560;
}

.case-readiness small {
  color: var(--muted);
  text-align: center;
}

.case-workspace-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0,1fr));
  gap: 12px;
}

.case-status-card {
  min-height: 132px;
  display: grid;
  align-content: space-between;
  gap: 10px;
  padding: 17px;
  border: 1px solid var(--line);
  border-radius: 24px;
  color: var(--text2);
  background:
    linear-gradient(180deg, rgba(255,255,255,.095), rgba(255,255,255,.048));
  box-shadow: var(--soft-shadow);
  min-width: 0;
}

.case-status-card:hover {
  color: var(--text);
  border-color: var(--line2);
  transform: translateY(-2px);
}

.case-status-card span {
  color: var(--muted);
  font-size: .69rem;
  text-transform: uppercase;
  letter-spacing: .18em;
  font-weight: 650;
}

.case-status-card strong {
  font-size: clamp(1.8rem, 3vw, 2.7rem);
  font-weight: 440;
  letter-spacing: -.055em;
  line-height: 1;
}

.case-status-card small {
  color: rgba(201,211,227,.72);
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.case-action-rail,
.case-packet-rail {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border: 1px solid var(--line);
  border-radius: 26px;
  padding: 16px;
  background: rgba(255,255,255,.055);
  backdrop-filter: blur(24px);
}

.case-action-rail > div:first-child {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.case-action-rail strong {
  font-weight: 560;
}

.case-action-rail small {
  color: var(--muted);
}

.case-action-buttons,
.case-packet-rail {
  flex-wrap: wrap;
}

.case-action-buttons {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

.case-packet-rail {
  justify-content: flex-start;
}

.case-packet-rail span {
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .68rem;
  font-weight: 680;
  margin-right: auto;
}

.case-packet-rail a {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 8px 13px;
  color: var(--text2);
  background: rgba(255,255,255,.055);
}

.case-packet-rail a:hover {
  border-color: var(--line2);
  color: var(--text);
}

.case-workspace-tabs {
  position: sticky;
  top: calc(10px + env(safe-area-inset-top));
  z-index: 18;
  margin-top: 8px;
  margin-bottom: 18px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(8,12,20,.66);
  backdrop-filter: blur(28px);
  box-shadow: var(--soft-shadow);
}

.sf-os-shell-enabled .case-workspace-tabs {
  top: calc(68px + env(safe-area-inset-top));
}

.case-workspace-tabs a {
  white-space: nowrap;
}

.case-workspace-native + .case-workspace-tabs + .grid-2 .panel,
.case-workspace-native ~ .grid-2 .panel,
.case-workspace-native ~ .panel {
  scroll-margin-top: 126px;
}

.case-workspace-native ~ .panel .panel-head,
.case-workspace-native ~ .grid-2 .panel .panel-head {
  align-items: flex-start;
}

@media (max-width: 1120px) {
  .case-workspace-hero {
    grid-template-columns: 1fr;
  }
  .case-risk-console {
    grid-template-columns: auto minmax(0,1fr);
    justify-items: stretch;
  }
  .case-score-orb {
    width: 138px;
    height: 138px;
  }
  .case-workspace-strip {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}

@media (max-width: 720px) {
  .case-workspace-native {
    gap: 12px;
  }
  .case-workspace-hero {
    padding: 18px;
    border-radius: 28px;
  }
  .case-identity-panel h2 {
    font-size: clamp(2rem, 10.4vw, 3.15rem);
    letter-spacing: -.055em;
  }
  .case-risk-console {
    grid-template-columns: 1fr;
    padding: 14px;
    border-radius: 24px;
  }
  .case-score-orb {
    width: min(168px, 52vw);
    height: min(168px, 52vw);
  }
  .case-workspace-strip {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .case-status-card {
    min-height: auto;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: center;
    padding: 15px;
  }
  .case-status-card small {
    grid-column: 1 / -1;
  }
  .case-action-rail,
  .case-packet-rail {
    align-items: stretch;
    flex-direction: column;
    border-radius: 24px;
  }
  .case-action-buttons {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }
  .case-action-buttons .btn,
  .case-packet-rail a {
    width: 100%;
  }
  .case-packet-rail span {
    margin-right: 0;
  }
  .case-workspace-tabs {
    top: calc(74px + env(safe-area-inset-top));
    border-radius: 22px;
    overflow-x: auto;
    justify-content: flex-start;
  }
}

/* Stage 63 Evidence Ledger Redesign */
.evidence-ledger-native{display:grid;gap:18px;position:relative}.evidence-ledger-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,220px);gap:22px;align-items:center;border:1px solid var(--line);background:linear-gradient(135deg,rgba(255,255,255,.095),rgba(255,255,255,.045));border-radius:34px;padding:28px;box-shadow:var(--shadow);backdrop-filter:blur(28px)}.evidence-ledger-hero:before{content:"";position:absolute;inset:-1px;background:radial-gradient(circle at 12% 0%,rgba(169,220,255,.2),transparent 34%),radial-gradient(circle at 84% 26%,rgba(95,128,255,.16),transparent 38%);pointer-events:none}.evidence-ledger-copy,.evidence-custody-orb{position:relative;z-index:1}.evidence-ledger-copy h2{font-size:clamp(2.2rem,5.2vw,5rem);line-height:.96;letter-spacing:-.068em;max-width:980px;color:rgba(215,225,240,.8)}.evidence-ledger-copy p:not(.eyebrow){max-width:760px;color:rgba(201,211,227,.74);font-size:1.04rem;line-height:1.58}.evidence-ledger-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.evidence-custody-orb{width:190px;height:190px;border-radius:50%;display:grid;place-items:center;text-align:center;justify-self:end;border:1px solid var(--line2);background:radial-gradient(circle at 50% 22%,rgba(169,220,255,.28),rgba(12,18,30,.96) 58%,rgba(5,7,11,.95));box-shadow:inset 0 0 48px rgba(169,220,255,.13),0 30px 80px rgba(0,0,0,.28)}.evidence-custody-orb span{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.evidence-custody-orb strong{font-size:1.825rem;font-weight:420;letter-spacing:-.085em;line-height:.9;color:var(--text)}.evidence-custody-orb small{color:var(--muted);max-width:120px}.evidence-kpi-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.evidence-kpi-strip article,.custody-card{border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.055);backdrop-filter:blur(22px);padding:16px;box-shadow:var(--soft-shadow)}.evidence-kpi-strip span{display:block;color:var(--muted);font-size:.73rem;text-transform:uppercase;letter-spacing:.12em}.evidence-kpi-strip strong{display:block;margin-top:8px;font-size:2.2rem;font-weight:430;letter-spacing:-.06em}.evidence-kpi-strip small{color:var(--muted)}.evidence-custody-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.custody-card{display:flex;align-items:center;gap:12px;min-height:86px}.custody-card strong{display:block;font-size:1.05rem;font-weight:560;color:var(--text)}.custody-card small{color:var(--muted)}.custody-dot{width:14px;height:14px;border-radius:50%;flex:0 0 14px;box-shadow:0 0 20px rgba(169,220,255,.18)}.custody-dot.high{background:#9be7c5}.custody-dot.medium{background:#a9dcff}.custody-dot.low{background:#d6b4ff}.custody-dot.review{background:#ffd28f}.evidence-filter-console{display:grid;grid-template-columns:minmax(220px,.45fr) minmax(0,1fr);gap:18px;align-items:end;border:1px solid var(--line);border-radius:28px;background:rgba(255,255,255,.052);padding:18px;box-shadow:var(--soft-shadow)}.evidence-ledger-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,390px);gap:18px}.evidence-ledger-main,.evidence-action-rail{border-radius:30px}.evidence-ledger-head{align-items:flex-start}.evidence-record-list{display:grid;gap:10px}.evidence-record{position:relative;display:grid;gap:12px;border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.045);padding:14px;transition:transform .16s var(--ease),border-color .16s var(--ease),background .16s var(--ease)}.evidence-record:hover,.evidence-record.active{transform:translateY(-1px);border-color:rgba(169,220,255,.26);background:rgba(255,255,255,.07)}.evidence-record-main{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:start;color:var(--text);text-decoration:none}.evidence-record-icon{width:42px;height:42px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(169,220,255,.9),rgba(95,128,255,.9));color:#07101a;font-weight:800;box-shadow:0 12px 24px rgba(0,0,0,.2)}.evidence-record-main strong{display:block;font-weight:560;line-height:1.25}.evidence-record-main small{display:block;margin-top:4px;color:var(--muted);line-height:1.4;white-space:normal;overflow-wrap:anywhere}.evidence-record-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding-left:54px}.evidence-record-meta a,.evidence-record-meta span:not(.grade-badge):not(.status-pill){color:var(--muted);font-size:.78rem;border:1px solid var(--line);border-radius:999px;padding:5px 9px;background:rgba(255,255,255,.035)}.technical-table-disclosure{margin-top:14px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.035);padding:10px 12px}.technical-table-disclosure summary{cursor:pointer;color:var(--muted);font-size:.84rem}.evidence-action-rail{align-self:start;position:sticky;top:calc(92px + env(safe-area-inset-top))}.evidence-mini-stack{display:grid;gap:7px;margin-top:18px;border-top:1px solid var(--line);padding-top:14px}.evidence-mini-stack span{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.evidence-mini-stack small{color:var(--text2);border:1px solid var(--line);border-radius:999px;padding:7px 10px;background:rgba(255,255,255,.035)}.evidence-dossier-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,420px);gap:18px}.evidence-dossier-main,.evidence-review-console{border-radius:30px}.evidence-dossier-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.evidence-dossier-title h3{font-size:clamp(1.55rem,3vw,2.6rem);letter-spacing:-.045em}.evidence-dossier-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.evidence-dossier-strip span{display:grid;gap:4px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.045);padding:12px}.evidence-dossier-strip strong{font-weight:560}.evidence-dossier-strip small{color:var(--muted);font-size:.73rem;text-transform:uppercase;letter-spacing:.11em}.evidence-dossier-meta{border:1px solid var(--line);border-radius:22px;padding:14px;background:rgba(255,255,255,.035)}.evidence-text-card{border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.04);padding:16px;margin-top:14px}.evidence-text-card strong{display:block;margin-bottom:8px}.evidence-text-card p{color:var(--text2);line-height:1.6;overflow-wrap:anywhere}.evidence-review-console{align-self:start;position:sticky;top:calc(92px + env(safe-area-inset-top))}.evidence-review-timeline{margin-top:12px}.sf-os-shell-enabled .evidence-ledger-hero,.sf-os-shell-enabled .evidence-kpi-strip article,.sf-os-shell-enabled .custody-card,.sf-os-shell-enabled .evidence-filter-console,.sf-os-shell-enabled .evidence-record,.sf-os-shell-enabled .evidence-text-card{background:rgba(255,255,255,.055)}
@media(max-width:1100px){.evidence-ledger-workspace,.evidence-dossier-grid{grid-template-columns:1fr}.evidence-action-rail,.evidence-review-console{position:relative;top:auto}.evidence-filter-console{grid-template-columns:1fr}.evidence-custody-grid,.evidence-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.evidence-dossier-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.evidence-ledger-hero{grid-template-columns:1fr;padding:20px;border-radius:28px}.evidence-ledger-copy h2{font-size:clamp(2.2rem,11vw,3.55rem)}.evidence-custody-orb{justify-self:center;width:min(190px,62vw);height:min(190px,62vw)}.evidence-kpi-strip,.evidence-custody-grid,.evidence-dossier-strip{grid-template-columns:1fr}.evidence-filter-console,.evidence-ledger-main,.evidence-action-rail,.evidence-dossier-main,.evidence-review-console{border-radius:24px}.evidence-record{padding:13px;border-radius:20px}.evidence-record-main{grid-template-columns:38px minmax(0,1fr)}.evidence-record-icon{width:38px;height:38px;border-radius:14px}.evidence-record-meta{padding-left:0}.evidence-dossier-title{display:grid}.evidence-ledger-actions .btn{width:100%}}


/* Stage 64 Reports + PDF Studio Redesign */
.report-studio-native{position:relative;display:grid;gap:18px;border:1px solid var(--line);border-radius:32px;background:linear-gradient(145deg,rgba(255,255,255,.10),rgba(255,255,255,.035));box-shadow:var(--shadow);padding:24px;overflow:hidden}.report-studio-native:before{content:"";position:absolute;inset:-1px;background:radial-gradient(circle at 12% 0%,rgba(255,213,138,.18),transparent 33%),radial-gradient(circle at 90% 12%,rgba(169,220,255,.14),transparent 32%);pointer-events:none}.report-studio-hero{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:26px;align-items:center}.report-studio-copy h2{font-size:clamp(2.2rem,5vw,5.3rem);letter-spacing:-.065em;line-height:.96;max-width:980px;color:rgba(220,228,240,.82);-webkit-text-fill-color:rgba(220,228,240,.82)}.report-studio-copy p{max-width:780px;color:rgba(201,211,227,.74)}.report-studio-orb{width:190px;height:190px;border-radius:50%;display:grid;place-items:center;text-align:center;background:radial-gradient(circle at 50% 25%,rgba(255,213,138,.22),rgba(13,19,31,.96) 58%,rgba(5,7,11,.94));border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 0 55px rgba(255,213,138,.10),0 28px 80px rgba(0,0,0,.34)}.report-studio-orb span{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.15em}.report-studio-orb strong{font-size:1.9rem;font-weight:420;letter-spacing:-.08em;line-height:.9}.report-studio-orb small{color:var(--muted);max-width:140px}.report-studio-strip{position:relative;z-index:1;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.report-studio-strip>div{padding:14px;border:1px solid rgba(255,255,255,.10);border-radius:20px;background:rgba(255,255,255,.055);min-height:96px;display:grid;align-content:space-between}.report-studio-strip span,.report-record-meta span{font-size:.66rem;text-transform:uppercase;letter-spacing:.13em;color:var(--muted)}.report-studio-strip strong{font-size:1.8rem;font-weight:430;letter-spacing:-.05em}.report-studio-strip small{color:var(--muted)}.report-studio-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.report-studio-card{border:1px solid var(--line);border-radius:28px;background:linear-gradient(180deg,rgba(255,255,255,.085),rgba(255,255,255,.038));box-shadow:var(--soft-shadow);padding:22px;min-width:0}.report-studio-card-dark{background:linear-gradient(145deg,rgba(255,213,138,.08),rgba(255,255,255,.035))}.report-studio-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.report-studio-card h3{font-size:clamp(1.25rem,2.4vw,1.8rem);letter-spacing:-.04em}.report-packet-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.report-packet-mode-grid>div{padding:13px;border:1px solid rgba(255,255,255,.10);border-radius:18px;background:rgba(0,0,0,.12);display:grid;gap:5px}.report-packet-mode-grid strong{font-weight:540}.report-packet-mode-grid small{color:var(--muted);line-height:1.4}.report-studio-queue{border:1px solid var(--line);border-radius:30px;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.035));box-shadow:var(--shadow);padding:22px}.report-record-list{display:grid;gap:12px}.report-record-card{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr) auto;gap:16px;align-items:center;padding:16px;border:1px solid rgba(255,255,255,.10);border-radius:24px;background:rgba(255,255,255,.045)}.report-record-main{display:grid;gap:7px;min-width:0}.report-record-main h3{margin:0;font-size:1.1rem;letter-spacing:-.025em}.report-record-main p{margin:0;color:var(--muted)}.report-record-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.report-record-meta>div{padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(0,0,0,.10);display:grid;gap:4px}.report-record-meta strong{font-weight:520;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-record-actions{display:flex;justify-content:flex-end}.technical-table-toggle{margin-top:16px}.technical-table-toggle summary{cursor:pointer;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.13em}.report-studio-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.report-export-list{display:grid;gap:10px}.report-export-row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:4px 12px;align-items:center;padding:12px;border:1px solid rgba(255,255,255,.09);border-radius:18px;background:rgba(0,0,0,.10)}.report-export-row span{grid-row:span 2;align-self:stretch;display:grid;place-items:center;border-radius:14px;background:rgba(255,255,255,.075);font-size:.7rem;text-transform:uppercase;letter-spacing:.11em;color:var(--text2)}.report-export-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:520}.report-export-row small{color:var(--muted)}.report-template-studio{border:1px solid var(--line);border-radius:30px;background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.032));padding:22px}.report-template-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.report-template-grid article{display:grid;gap:6px;padding:14px;border:1px solid rgba(255,255,255,.10);border-radius:20px;background:rgba(255,255,255,.045)}.report-template-grid span{font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}.report-template-grid strong{font-weight:540}.report-template-grid small{color:var(--muted)}
@media(max-width:1100px){.report-studio-hero{grid-template-columns:1fr}.report-studio-orb{width:170px;height:170px}.report-studio-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.report-studio-grid,.report-studio-two-column{grid-template-columns:1fr}.report-record-card{grid-template-columns:1fr}.report-record-actions{justify-content:flex-start}.report-record-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.report-studio-native,.report-studio-queue,.report-studio-card,.report-template-studio{border-radius:24px;padding:16px}.report-studio-copy h2{font-size:clamp(2rem,10vw,3.3rem)}.report-studio-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.report-studio-strip>div{min-height:84px;padding:12px}.report-studio-orb{width:min(66vw,180px);height:min(66vw,180px);margin:auto}.report-packet-mode-grid,.report-record-meta{grid-template-columns:1fr}.report-export-row{grid-template-columns:1fr}.report-export-row span{grid-row:auto;place-items:start;padding:8px 10px}.report-export-row strong{white-space:normal}.report-studio-card-head{display:grid}.report-studio-card-head .btn{width:100%}.report-record-card{padding:14px;border-radius:20px}.report-record-actions .btn{width:100%}}


/* Stage 65 Native OS Unification Pass
   Final cross-system cleanup: one SENTINEL OS visual language across legacy panels,
   app windows, mission cards, record cards, sheets, diagnostics, public portal, and mobile. */
:root{
  --sf-surface-glass:linear-gradient(180deg,rgba(255,255,255,.082),rgba(255,255,255,.035));
  --sf-surface-glass-strong:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.045));
  --sf-border-soft:rgba(255,255,255,.115);
  --sf-border-strong:rgba(255,255,255,.19);
  --sf-copy-soft:rgba(205,216,232,.76);
  --sf-copy-strong:rgba(242,247,255,.94);
  --sf-card-radius:28px;
  --sf-card-radius-sm:20px;
  --sf-native-shadow:0 26px 86px rgba(0,0,0,.30);
  --sf-native-shadow-soft:0 14px 42px rgba(0,0,0,.20);
}

body,
button,
input,
select,
textarea{
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

.main{
  overflow-wrap:anywhere;
}

.main > section,
.app-window,
.panel,
.hero-card,
.case-hero,
.metric,
.metric-card,
.mission-control-surface,
.report-studio-native,
.evidence-ledger-hero,
.case-workspace-hero,
.qhx-shell,
.public-native-shell .public-panel{
  border-color:var(--sf-border-soft);
}

.panel,
.hero-card,
.case-hero,
.app-window,
.metric,
.metric-card,
.auth-card,
.install-card,
.command-orb,
.report-studio-card,
.report-studio-queue,
.report-template-studio,
.evidence-record,
.evidence-action-rail,
.evidence-review-console,
.case-status-card,
.case-action-rail,
.case-packet-rail,
.qhx-card,
.public-card{
  box-shadow:var(--sf-native-shadow-soft);
}

.panel,
.app-window,
.report-studio-card,
.evidence-action-rail,
.evidence-review-console,
.case-action-rail,
.case-packet-rail,
.qhx-card,
.public-card,
.empty-state{
  background:var(--sf-surface-glass);
  backdrop-filter:blur(24px);
}

.panel-head,
.report-studio-card-head,
.app-window-toolbar,
.evidence-ledger-head,
.qhx-panel-head{
  gap:14px;
  align-items:flex-start;
}

.panel-head h2,
.panel-head h3,
.app-window-title h2,
.report-studio-card h3,
.evidence-dossier-title h3,
.qhx-card h3{
  line-height:1.04;
  letter-spacing:-.035em;
}

.hero-card h2,
.case-hero h2,
.mission-hero h2,
.case-identity-panel h2,
.evidence-ledger-copy h2,
.report-studio-copy h2,
.qhx-hero h2,
.public-hero h1{
  color:rgba(214,224,240,.80) !important;
  -webkit-text-fill-color:rgba(214,224,240,.80) !important;
  font-weight:420;
}

.hero-card p:not(.eyebrow),
.case-hero p:not(.eyebrow),
.panel p,
.app-window-subtitle,
.case-identity-panel p,
.report-studio-copy p,
.evidence-ledger-copy p:not(.eyebrow),
.public-hero p,
.empty-state p{
  color:var(--sf-copy-soft);
}

.btn,
.quick-action,
.icon-btn,
.tabs a,
.workspace-tabs a,
.case-workspace-tabs a,
.form-sheet-trigger,
.command-item,
.nav-item{
  min-height:42px;
  touch-action:manipulation;
}

.btn,
.quick-action,
.icon-btn,
.form-sheet-trigger{
  border-color:var(--sf-border-soft);
}

.btn.primary,
button.primary,
.quick-action.primary{
  box-shadow:0 14px 34px rgba(105,185,255,.14);
}

input,
select,
textarea{
  max-width:100%;
  border-color:var(--sf-border-soft);
  background:rgba(255,255,255,.055);
}

label{
  min-width:0;
}

.form-stack,
.form-grid,
.filterbar,
.button-row,
.inline-form,
.form-inline{
  min-width:0;
}

.status-pill,
.risk-pill,
.grade-badge,
.badge,
.chip,
.panel-note,
.report-record-meta>div,
.evidence-record-meta a,
.evidence-record-meta span:not(.grade-badge):not(.status-pill){
  border-color:rgba(255,255,255,.10);
  background:rgba(255,255,255,.052);
}

.empty-state{
  border:1px solid var(--line);
  border-radius:var(--sf-card-radius-sm);
  padding:22px;
  color:var(--text2);
  display:grid;
  gap:8px;
}
.empty-state strong{
  font-weight:560;
  color:var(--text);
}
.empty-state small{
  color:var(--muted);
  line-height:1.5;
}

.table-wrap,
.table-scroll{
  border-radius:22px;
}

table{
  border-collapse:separate;
  border-spacing:0;
}

th{
  color:rgba(210,220,236,.74);
  font-weight:560;
}

td{
  vertical-align:top;
}

/* Make remaining legacy pages feel like app workspaces without touching workflow markup. */
.app-window-body > .panel:first-child:not(.report-studio-native):not(.evidence-ledger-main),
.main > .panel:first-child:not(.qhx-shell),
.main > .grid-2:first-child .panel{
  border-radius:30px;
}

.app-window-body > .grid-2,
.app-window-body > .dashboard-grid,
.app-window-body > .metric-grid,
.main > .grid-2,
.main > .dashboard-grid{
  gap:18px;
}

/* Unified responsive rhythm and overflow safety. */
@media (max-width:1180px){
  .app-window,
  .panel,
  .hero-card,
  .case-hero,
  .report-studio-native,
  .evidence-ledger-hero,
  .case-workspace-hero,
  .qhx-shell{
    border-radius:28px;
  }
  .topbar-actions{
    gap:8px;
  }
}

@media (max-width:720px){
  :root{
    --sf-card-radius:24px;
    --sf-card-radius-sm:18px;
  }
  .main{
    padding-bottom:calc(116px + env(safe-area-inset-bottom));
  }
  .app-window,
  .panel,
  .hero-card,
  .case-hero,
  .report-studio-native,
  .evidence-ledger-hero,
  .case-workspace-hero,
  .qhx-shell{
    border-radius:24px;
  }
  .panel,
  .app-window,
  .report-studio-card,
  .report-studio-queue,
  .report-template-studio,
  .evidence-action-rail,
  .evidence-review-console,
  .case-action-rail,
  .case-packet-rail{
    padding:16px;
  }
  .panel-head,
  .topbar,
  .app-window-toolbar,
  .report-studio-card-head{
    display:grid;
    grid-template-columns:1fr;
  }
  .topbar-actions,
  .hero-actions,
  .button-row,
  .inline-form,
  .form-inline,
  .filterbar{
    width:100%;
    align-items:stretch;
  }
  .topbar-actions .quick-action,
  .topbar-actions .btn,
  .hero-actions .btn,
  .button-row .btn,
  .inline-form .btn,
  .form-inline .btn,
  .filterbar .btn,
  .form-sheet-trigger{
    width:100%;
    justify-content:center;
  }
  .userchip{
    width:100%;
    justify-content:space-between;
    overflow-x:auto;
  }
  .tabs,
  .workspace-tabs,
  .case-workspace-tabs{
    overflow-x:auto;
    justify-content:flex-start;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .tabs::-webkit-scrollbar,
  .workspace-tabs::-webkit-scrollbar,
  .case-workspace-tabs::-webkit-scrollbar{display:none}
  input,
  select,
  textarea,
  .btn,
  .quick-action,
  .form-sheet-trigger{
    min-height:44px;
  }
  .panel p,
  .hero-card p,
  .case-hero p,
  .muted,
  small{
    line-height:1.5;
  }
}

@media (max-width:390px){
  .main{
    padding-left:max(10px,env(safe-area-inset-left));
    padding-right:max(10px,env(safe-area-inset-right));
  }
  .panel,
  .app-window,
  .hero-card,
  .case-hero{
    padding:14px;
  }
}

/* Stage 65 marker for QHX design-system integrity. */
.sf-stage-65-native-os-unification-marker{display:none}


/* Stage 65.1 Native UI Finishing Rootfix
   Final small-surface refinement: keep text off hard edges, round inner dark wrappers,
   and make legacy/admin remnants feel less boxy without changing workflow markup. */
:root{
  --sf-edge-pad:clamp(18px, 2.4vw, 28px);
  --sf-edge-pad-compact:clamp(14px, 2vw, 22px);
  --sf-inner-radius:24px;
}

.panel,
.hero-card,
.case-hero,
.app-window,
.metric,
.metric-card,
.report-studio-card,
.report-studio-queue,
.report-template-studio,
.evidence-record,
.evidence-action-rail,
.evidence-review-console,
.case-status-card,
.case-action-rail,
.case-packet-rail,
.qhx-card,
.public-card,
.empty-state,
.sentinel-command-panel,
.sf-command-panel,
form[data-sheet].is-open {
  background-clip: padding-box;
}

.panel,
.hero-card,
.case-hero,
.report-studio-card,
.evidence-action-rail,
.evidence-review-console,
.case-action-rail,
.case-packet-rail,
.qhx-card,
.public-card,
.empty-state {
  padding: max(var(--sf-edge-pad-compact), 16px);
}

.panel-head,
.app-window-toolbar,
.report-studio-card-head,
.evidence-ledger-head,
.qhx-panel-head,
.public-card-head,
.case-workspace-tabs,
.workspace-tabs,
.tabs,
.filterbar,
.form-stack,
.form-grid,
.table-wrap,
.table-scroll,
.record-grid,
.sf-record-table tbody tr {
  border-radius: var(--sf-inner-radius);
}

.panel-head,
.app-window-toolbar,
.report-studio-card-head,
.evidence-ledger-head,
.qhx-panel-head {
  padding: 2px;
}

.filterbar,
.workspace-tabs,
.case-workspace-tabs,
.tabs {
  padding: 8px;
  background: rgba(0,0,0,.10);
  box-shadow: inset 0 1px rgba(255,255,255,.035);
}

.table-wrap,
.table-scroll {
  overflow: hidden;
  background: rgba(0,0,0,.08);
}

.sf-record-table tbody tr {
  background-clip: padding-box;
}

.panel > :first-child,
.hero-card > :first-child,
.case-hero > :first-child,
.app-window > :first-child,
.report-studio-card > :first-child,
.evidence-record > :first-child,
.case-status-card > :first-child,
.qhx-card > :first-child,
.public-card > :first-child {
  min-width: 0;
}

.panel p,
.hero-card p,
.case-hero p,
.app-window p,
.report-studio-card p,
.evidence-record p,
.case-status-card p,
.qhx-card p,
.public-card p,
.muted,
small {
  overflow-wrap: anywhere;
}

input,
select,
textarea,
.btn,
.quick-action,
.form-sheet-trigger,
.command-item,
.sentinel-command-item {
  border-radius: max(16px, min(999px, var(--sf-inner-radius)));
}

@media (max-width: 720px) {
  :root{
    --sf-edge-pad:20px;
    --sf-edge-pad-compact:17px;
    --sf-inner-radius:22px;
  }

  .panel,
  .hero-card,
  .case-hero,
  .app-window,
  .report-studio-card,
  .report-studio-queue,
  .report-template-studio,
  .evidence-action-rail,
  .evidence-review-console,
  .case-action-rail,
  .case-packet-rail,
  .qhx-card,
  .public-card,
  .empty-state {
    padding: var(--sf-edge-pad-compact) !important;
  }

  .mission-card,
  .app-tile,
  .case-status-card,
  .evidence-record,
  .report-record,
  .qhx-result-card,
  .public-warning-card {
    padding: 16px !important;
    border-radius: 24px !important;
  }

  .panel-head,
  .app-window-toolbar,
  .report-studio-card-head,
  .evidence-ledger-head,
  .qhx-panel-head {
    gap: 12px;
  }

  .filterbar,
  .workspace-tabs,
  .case-workspace-tabs,
  .tabs {
    margin-left: 0;
    margin-right: 0;
  }
}

@media (max-width: 390px) {
  .panel,
  .hero-card,
  .case-hero,
  .app-window,
  .report-studio-card,
  .evidence-action-rail,
  .evidence-review-console,
  .case-action-rail,
  .case-packet-rail,
  .qhx-card,
  .public-card,
  .empty-state {
    padding: 15px !important;
  }
}

.sf-stage-65-1-native-ui-finishing-marker{display:none}


/* Stage 65.2 Curved Orb Label Rootfix
   Circular score/readiness bubbles were losing text at the edges. The labels now
   sit on SVG inner-ring arcs while the numeric value stays centered. */
.mission-readiness-orb,
.command-orb,
.score-orb,
.evidence-custody-orb,
.report-studio-orb,
.ops-readiness-orb,
.qhx-score-orb,
.public-orb {
  isolation: isolate;
  overflow: hidden;
}

.sf-orb-curved-ready {
  position: relative !important;
  display: grid !important;
  place-items: center !important;
  align-content: center !important;
  justify-content: center !important;
  text-align: center !important;
  --sf-orb-arc-label: rgba(194, 225, 249, .74);
  --sf-orb-arc-caption: rgba(214, 223, 238, .68);
}

.sf-orb-curved-ready .sentinel-orb-rings {
  position: absolute;
  inset: 7.5%;
  width: 85%;
  height: 85%;
  z-index: 3;
  pointer-events: none;
  overflow: visible;
}

.sf-orb-curved-ready .orb-arc {
  fill: var(--sf-orb-arc-caption);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Inter", "Segoe UI", sans-serif;
  paint-order: stroke;
  stroke: rgba(7, 12, 20, .18);
  stroke-width: .35px;
  dominant-baseline: middle;
}

.sf-orb-curved-ready .orb-arc-label {
  fill: var(--sf-orb-arc-label);
  font-size: 9.6px;
  font-weight: 760;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.sf-orb-curved-ready .orb-arc-caption {
  fill: var(--sf-orb-arc-caption);
  font-size: 10.4px;
  font-weight: 620;
  letter-spacing: .018em;
}

.sf-orb-curved-ready > .sf-orb-original-label,
.sf-orb-curved-ready > .sf-orb-original-caption {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  clip-path: inset(50%) !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.sf-orb-curved-ready > .sf-orb-value,
.sf-orb-curved-ready > strong {
  position: relative;
  z-index: 4;
  max-width: 74%;
  text-align: center;
  overflow-wrap: anywhere;
  word-break: normal;
  line-height: .88;
  margin: 0 !important;
}

.mission-readiness-orb.sf-orb-curved-ready > strong,
.evidence-custody-orb.sf-orb-curved-ready > strong,
.report-studio-orb.sf-orb-curved-ready > strong,
.ops-readiness-orb.sf-orb-curved-ready > strong,
.qhx-score-orb.sf-orb-curved-ready > strong,
.public-orb.sf-orb-curved-ready > strong,
.command-orb.sf-orb-curved-ready > strong,
.score-orb.sf-orb-curved-ready > strong {
  transform: translateY(.02em);
}

.command-orb.sf-orb-curved-ready > strong,
.score-orb.sf-orb-curved-ready > strong,
.public-orb.sf-orb-curved-ready > strong {
  font-size:clamp(1.075rem, 9vw, 2rem);
}

.score-orb.giant.sf-orb-curved-ready > strong {
  font-size:clamp(1.5rem, 9vw, 2.9rem);
}

@media (max-width: 720px) {
  .sf-orb-curved-ready .sentinel-orb-rings { inset: 6.5%; width: 87%; height: 87%; }
  .sf-orb-curved-ready .orb-arc-label { font-size: 9.1px; letter-spacing: .15em; }
  .sf-orb-curved-ready .orb-arc-caption { font-size: 9.7px; letter-spacing: .01em; }
  .mission-readiness-orb.sf-orb-curved-ready,
  .evidence-custody-orb.sf-orb-curved-ready,
  .report-studio-orb.sf-orb-curved-ready,
  .ops-readiness-orb.sf-orb-curved-ready,
  .public-orb.sf-orb-curved-ready {
    min-width: min(250px, 72vw);
    min-height: min(250px, 72vw);
  }
}


/* Stage 65.3 Mobile Mission Orb + Topbar Rootfix
   Fixes mobile Mission Control clipping/bleed where the fixed OS top shell visually
   sat over the huge hero text, and prevents the readiness orb caption from being
   squeezed or half-enhanced on the home surface. */
@media (max-width: 720px) {
  .sf-os-shell-enabled .mission-control-home {
    padding-top: 8px !important;
    gap: 18px !important;
  }

  .sf-os-shell-enabled .mission-hero-panel {
    padding: 22px 18px 24px !important;
    border-radius: 30px !important;
    gap: 18px !important;
    overflow: hidden !important;
  }

  .sf-os-shell-enabled .mission-hero-copy {
    padding-top: 2px !important;
  }

  .sf-os-shell-enabled .mission-hero-copy h2 {
    font-size: clamp(2.25rem, 11.2vw, 3.35rem) !important;
    line-height: .96 !important;
    letter-spacing: -.066em !important;
    max-width: 100% !important;
    margin-top: 0 !important;
  }

  .sf-os-shell-enabled .mission-hero-copy p:not(.eyebrow) {
    font-size: .98rem !important;
    line-height: 1.55 !important;
    max-width: 100% !important;
  }

  .sf-os-shell-enabled .mission-readiness-orb,
  .sf-os-shell-enabled .mission-readiness-orb.sf-orb-curved-ready {
    width: min(174px, 48vw) !important;
    height: min(174px, 48vw) !important;
    min-width: min(174px, 48vw) !important;
    min-height: min(174px, 48vw) !important;
    padding: 16px !important;
    display: grid !important;
    grid-template-rows: auto 1fr auto !important;
    align-items: center !important;
    justify-items: center !important;
    overflow: hidden !important;
  }

  .sf-os-shell-enabled .mission-readiness-orb .sentinel-orb-rings {
    display: none !important;
  }

  .sf-os-shell-enabled .mission-readiness-orb > span,
  .sf-os-shell-enabled .mission-readiness-orb > .sf-orb-original-label {
    position: static !important;
    width: auto !important;
    height: auto !important;
    clip: auto !important;
    clip-path: none !important;
    overflow: visible !important;
    white-space: nowrap !important;
    font-size: .58rem !important;
    letter-spacing: .16em !important;
    transform: none !important;
    opacity: .78 !important;
  }

  .sf-os-shell-enabled .mission-readiness-orb > strong,
  .sf-os-shell-enabled .mission-readiness-orb.sf-orb-curved-ready > strong {
    font-size:clamp(1.325rem, 8.5vw, 2.025rem) !important;
    line-height: .82 !important;
    transform: none !important;
    align-self: center !important;
  }

  .sf-os-shell-enabled .mission-readiness-orb > small,
  .sf-os-shell-enabled .mission-readiness-orb > .sf-orb-original-caption {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    clip: auto !important;
    clip-path: none !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    font-size: .72rem !important;
    line-height: 1.15 !important;
    opacity: .72 !important;
    transform: none !important;
  }
}


/* Stage 65.4 Sacred Spacing Typography Rootfix
   Steve/Jony-level whitespace discipline: large titles must breathe.
   Reduces mangled negative tracking and gives hero/app titles calmer rhythm. */
:root {
  --sf-title-tracking: -0.024em;
  --sf-title-word-spacing: .035em;
  --sf-title-line: 1.035;
  --sf-subtitle-line: 1.55;
}

h1,
h2,
h3,
.topbar h1,
.hero-card h2,
.case-hero h2,
.compact-hero h2,
.app-window-title,
.sf-app-window-title,
.mission-hero h1,
.mission-hero h2,
.mission-title,
.public-hero h1,
.public-hero h2,
.case-workspace-hero h1,
.evidence-ledger-hero h1,
.report-studio-hero h1,
.ops-hero h1,
.qhx-hero h1 {
  letter-spacing: var(--sf-title-tracking) !important;
  word-spacing: var(--sf-title-word-spacing);
  line-height: var(--sf-title-line) !important;
  text-wrap: balance;
  overflow-wrap: normal;
}

.hero-card h2,
.case-hero h2,
.compact-hero h2,
.mission-hero h1,
.mission-hero h2,
.public-hero h1,
.case-workspace-hero h1,
.evidence-ledger-hero h1,
.report-studio-hero h1,
.ops-hero h1,
.qhx-hero h1 {
  max-width: 14ch;
}

.hero-card p,
.case-hero p,
.compact-hero p,
.mission-hero p,
.public-hero p,
.case-workspace-hero p,
.evidence-ledger-hero p,
.report-studio-hero p,
.ops-hero p,
.qhx-hero p,
.app-window-subtitle,
.sf-app-window-subtitle {
  line-height: var(--sf-subtitle-line) !important;
  letter-spacing: .002em;
  word-spacing: .025em;
}

.eyebrow,
.panel .eyebrow,
.hero-card .eyebrow,
.case-hero .eyebrow,
.mission-eyebrow,
.public-eyebrow,
.app-window-kicker,
.sf-app-window-kicker {
  letter-spacing: .22em !important;
  word-spacing: .18em;
  line-height: 1.28 !important;
}

.app-window-head,
.sf-app-window-head,
.app-window-chrome,
.sf-app-window-chrome,
.panel-head,
.hero-card,
.case-hero,
.compact-hero {
  gap: clamp(14px, 2.2vw, 28px);
}

.app-window-title,
.sf-app-window-title,
.panel-head h2,
.panel-head h3 {
  margin-bottom: .12em;
}

/* Prevent pill/label text from feeling squeezed. */
.badge,
.pill,
.status-pill,
.risk-pill,
.confidence-pill,
.quick-action,
.btn,
button,
.sf-command-item,
.sf-sheet-trigger {
  letter-spacing: .005em;
  word-spacing: .025em;
}

/* Mobile: titles should scale down and breathe instead of becoming wall-to-wall blocks. */
@media (max-width: 720px) {
  :root {
    --sf-title-tracking: -0.018em;
    --sf-title-word-spacing: .045em;
    --sf-title-line: 1.055;
  }

  .hero-card h2,
  .case-hero h2,
  .compact-hero h2,
  .mission-hero h1,
  .mission-hero h2,
  .public-hero h1,
  .public-hero h2,
  .case-workspace-hero h1,
  .evidence-ledger-hero h1,
  .report-studio-hero h1,
  .ops-hero h1,
  .qhx-hero h1 {
    font-size: clamp(2.15rem, 12vw, 3.95rem) !important;
    max-width: 10.8ch;
    letter-spacing: -0.016em !important;
    word-spacing: .048em;
    line-height: 1.055 !important;
  }

  .mission-hero h1,
  .mission-hero h2 {
    font-size: clamp(2rem, 11.4vw, 3.45rem) !important;
    max-width: 11.5ch;
  }

  .app-window-title,
  .sf-app-window-title,
  .topbar h1 {
    letter-spacing: -0.008em !important;
    word-spacing: .04em;
    line-height: 1.12 !important;
  }

  .hero-card,
  .case-hero,
  .compact-hero,
  .mission-hero,
  .public-hero,
  .case-workspace-hero,
  .evidence-ledger-hero,
  .report-studio-hero,
  .ops-hero,
  .qhx-hero {
    padding-inline: max(22px, env(safe-area-inset-left)) max(22px, env(safe-area-inset-right)) !important;
  }

  .hero-card p,
  .case-hero p,
  .compact-hero p,
  .mission-hero p,
  .public-hero p,
  .case-workspace-hero p,
  .evidence-ledger-hero p,
  .report-studio-hero p,
  .ops-hero p,
  .qhx-hero p {
    font-size: clamp(.98rem, 4.3vw, 1.12rem);
    line-height: 1.62 !important;
    word-spacing: .035em;
  }

  .eyebrow,
  .panel .eyebrow,
  .hero-card .eyebrow,
  .case-hero .eyebrow,
  .mission-eyebrow,
  .public-eyebrow,
  .app-window-kicker,
  .sf-app-window-kicker {
    letter-spacing: .24em !important;
    word-spacing: .2em;
    line-height: 1.38 !important;
  }
}

@media (max-width: 420px) {
  .hero-card h2,
  .case-hero h2,
  .compact-hero h2,
  .mission-hero h1,
  .mission-hero h2,
  .public-hero h1,
  .public-hero h2,
  .case-workspace-hero h1,
  .evidence-ledger-hero h1,
  .report-studio-hero h1,
  .ops-hero h1,
  .qhx-hero h1 {
    font-size: clamp(2rem, 11.2vw, 3.25rem) !important;
    max-width: 10.4ch;
    letter-spacing: -0.01em !important;
    word-spacing: .052em;
  }
}


/* Stage 65.5 Curved Glass Orb + Sacred Spacing Rootfix
   Reverts the Stage 65.3 Mission Control orb de-curving. The problem was not
   that the orb had curved text; the problem was that the curve/glass treatment
   was not refined enough and global titles were still too tightly tracked. */
:root {
  --sf-sacred-title-tracking: -0.014em;
  --sf-sacred-word-spacing: .055em;
  --sf-sacred-title-line: 1.075;
  --sf-orb-glass-line: rgba(202, 226, 255, .24);
  --sf-orb-glass-glow: rgba(146, 208, 255, .24);
}

/* Restore whitespace discipline across titles. No mangled/crushed headings. */
.topbar h1,
h1,
h2,
h3,
.hero-card h2,
.case-hero h2,
.compact-hero h2,
.mission-hero h1,
.mission-hero h2,
.mission-title,
.public-hero h1,
.public-hero h2,
.app-window-title,
.sf-app-window-title,
.case-workspace-hero h1,
.evidence-ledger-hero h1,
.report-studio-hero h1,
.ops-hero h1,
.qhx-hero h1,
.sf-app-library-hero h2,
.sf-os-launcher-panel h2 {
  letter-spacing: var(--sf-sacred-title-tracking) !important;
  word-spacing: var(--sf-sacred-word-spacing) !important;
  line-height: var(--sf-sacred-title-line) !important;
  text-wrap: balance;
}

/* Keep all important headings away from their container edges. */
.hero-card,
.case-hero,
.panel,
.sf-app-window,
.mission-hero-panel,
.public-hero-card,
.case-workspace-hero,
.evidence-ledger-hero,
.report-studio-hero,
.ops-hero,
.qhx-hero {
  scroll-margin-top: 110px;
}

/* Glass-sphere treatment for all numeric/readiness orbs. */
.mission-readiness-orb,
.command-orb,
.score-orb,
.case-score-orb,
.evidence-custody-orb,
.report-studio-orb,
.ops-readiness-orb,
.qhx-score-orb,
.public-orb {
  position: relative !important;
  isolation: isolate;
  overflow: hidden !important;
  border: 1px solid var(--sf-orb-glass-line) !important;
  background:
    radial-gradient(circle at 34% 18%, rgba(255,255,255,.42) 0, rgba(255,255,255,.16) 13%, transparent 27%),
    radial-gradient(circle at 62% 70%, rgba(69,104,255,.18), transparent 43%),
    radial-gradient(circle at 50% 48%, rgba(74,123,174,.56), rgba(15,25,42,.94) 55%, rgba(5,8,15,.96) 100%) !important;
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,.28),
    inset 12px 16px 42px rgba(255,255,255,.055),
    inset -18px -28px 56px rgba(0,0,0,.36),
    0 26px 86px rgba(0,0,0,.34),
    0 0 0 1px rgba(150,205,255,.055) !important;
  backdrop-filter: blur(24px) saturate(1.18);
}

.mission-readiness-orb::before,
.command-orb::before,
.score-orb::before,
.case-score-orb::before,
.evidence-custody-orb::before,
.report-studio-orb::before,
.ops-readiness-orb::before,
.qhx-score-orb::before,
.public-orb::before {
  content: "";
  position: absolute;
  inset: 7%;
  border-radius: 50%;
  background:
    linear-gradient(135deg, rgba(255,255,255,.22), transparent 34%),
    radial-gradient(circle at 35% 20%, rgba(255,255,255,.24), transparent 24%);
  box-shadow: inset 0 0 42px rgba(180,223,255,.08);
  opacity: .78;
  pointer-events: none;
  z-index: 1;
}

.mission-readiness-orb::after,
.command-orb::after,
.score-orb::after,
.case-score-orb::after,
.evidence-custody-orb::after,
.report-studio-orb::after,
.ops-readiness-orb::after,
.qhx-score-orb::after,
.public-orb::after {
  content: "";
  position: absolute;
  inset: -20%;
  border-radius: 50%;
  background: conic-gradient(from 190deg, transparent 0 18%, rgba(169,220,255,.18) 28%, transparent 43%, rgba(255,255,255,.08) 58%, transparent 74% 100%);
  opacity: .34;
  filter: blur(.2px);
  pointer-events: none;
  z-index: 2;
}

/* Make the curve labels actually visible and properly placed along the inner sphere. */
.sf-orb-curved-ready .sentinel-orb-rings {
  position: absolute !important;
  inset: 4.5% !important;
  width: 91% !important;
  height: 91% !important;
  z-index: 5 !important;
  pointer-events: none;
  overflow: visible !important;
}

.sf-orb-curved-ready .orb-arc {
  paint-order: stroke;
  stroke: rgba(4, 8, 15, .38);
  stroke-width: .52px;
  dominant-baseline: middle;
}

.sf-orb-curved-ready .orb-arc-label {
  fill: rgba(210, 233, 255, .82) !important;
  font-size: 10.5px !important;
  font-weight: 760 !important;
  letter-spacing: .22em !important;
  text-transform: uppercase;
}

.sf-orb-curved-ready .orb-arc-caption {
  fill: rgba(216, 226, 240, .74) !important;
  font-size: 10.8px !important;
  font-weight: 640 !important;
  letter-spacing: .025em !important;
}

.sf-orb-curved-ready > .sf-orb-value,
.sf-orb-curved-ready > strong {
  z-index: 6 !important;
  text-shadow: 0 10px 24px rgba(0,0,0,.28);
}

/* Revert Stage 65.3's mission-orb de-curving on mobile: it must stay curved. */
@media (max-width: 720px) {
  .sf-os-shell-enabled .mission-hero-panel {
    padding: 30px 22px 30px !important;
    gap: 22px !important;
  }

  .sf-os-shell-enabled .mission-hero-copy h2 {
    letter-spacing: -0.018em !important;
    word-spacing: .055em !important;
    line-height: 1.045 !important;
    font-size: clamp(2.55rem, 12.6vw, 3.8rem) !important;
  }

  .sf-os-shell-enabled .mission-hero-copy p:not(.eyebrow) {
    line-height: 1.68 !important;
    word-spacing: .025em !important;
  }

  .sf-os-shell-enabled .mission-readiness-orb,
  .sf-os-shell-enabled .mission-readiness-orb.sf-orb-curved-ready {
    width: min(214px, 58vw) !important;
    height: min(214px, 58vw) !important;
    min-width: min(214px, 58vw) !important;
    min-height: min(214px, 58vw) !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    grid-template-rows: none !important;
    overflow: hidden !important;
    margin: 18px auto 2px !important;
  }

  .sf-os-shell-enabled .mission-readiness-orb .sentinel-orb-rings,
  .sf-os-shell-enabled .mission-readiness-orb.sf-orb-curved-ready .sentinel-orb-rings {
    display: block !important;
    opacity: 1 !important;
  }

  .sf-os-shell-enabled .mission-readiness-orb > span,
  .sf-os-shell-enabled .mission-readiness-orb > small,
  .sf-os-shell-enabled .mission-readiness-orb > .sf-orb-original-label,
  .sf-os-shell-enabled .mission-readiness-orb > .sf-orb-original-caption,
  .sf-os-shell-enabled .mission-readiness-orb.sf-orb-curved-ready > span,
  .sf-os-shell-enabled .mission-readiness-orb.sf-orb-curved-ready > small {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    clip-path: inset(50%) !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  .sf-os-shell-enabled .mission-readiness-orb > strong,
  .sf-os-shell-enabled .mission-readiness-orb.sf-orb-curved-ready > strong {
    font-size:clamp(1.625rem, 9vw, 2.275rem) !important;
    line-height: .86 !important;
    letter-spacing: -0.045em !important;
    align-self: center !important;
    justify-self: center !important;
  }

  .topbar h1,
  h1,
  h2,
  .hero-card h2,
  .case-hero h2,
  .compact-hero h2,
  .public-hero h1,
  .case-workspace-hero h1,
  .evidence-ledger-hero h1,
  .report-studio-hero h1,
  .ops-hero h1,
  .qhx-hero h1,
  .sf-app-library-hero h2,
  .sf-os-launcher-panel h2 {
    letter-spacing: -0.01em !important;
    word-spacing: .06em !important;
    line-height: 1.08 !important;
  }
}

.sf-stage-65-5-curved-glass-orb-spacing-marker{display:none}

/* Stage 65.6 Visual Collision Audit Rootfix
   Pixel-level rhythm repair pass: mobile cards/panels must never kiss, overlap,
   or sit underneath sticky OS chrome/dock. Whitespace is a design primitive. */
:root {
  --sf-collision-gap: clamp(22px, 4vw, 38px);
  --sf-collision-gap-mobile: clamp(26px, 7.2vw, 44px);
  --sf-panel-inner-mobile: clamp(22px, 5.6vw, 30px);
  --sf-sticky-clearance-mobile: calc(94px + env(safe-area-inset-top));
  --sf-dock-clearance-mobile: calc(132px + env(safe-area-inset-bottom));
}

/* Global stack rhythm across the transformed OS surfaces. */
.sentinel-workspace-section + .sentinel-workspace-section,
.sf-app-window-body > section + section,
.sf-app-window-body > .panel + .panel,
.sf-app-window-body > .grid-2 + .panel,
.sf-app-window-body > .panel + .grid-2,
.mission-control-home > * + *,
.ops-center-shell + *,
.case-workspace-native + *,
.evidence-ledger-native + *,
.report-studio-native + * {
  margin-top: var(--sf-collision-gap) !important;
}

.panel + .panel,
.panel + .grid-2,
.grid-2 + .panel,
.metric-grid + .panel,
.metric-card-grid + .panel,
.empty-state + .panel,
.table-wrap + .panel,
.form-stack + .panel {
  margin-top: clamp(18px, 3vw, 30px) !important;
}

/* Make every major glass container breathe internally. */
.panel,
.hero-card,
.case-hero,
.sf-app-window,
.mission-card,
.mission-hero-panel,
.ops-center-shell,
.ops-control-panel,
.ops-cron-card,
.ops-radar-panel,
.ops-watchlist-panel,
.ops-alert-panel,
.ops-brief-panel,
.ops-run-panel,
.ops-event-stream,
.case-workspace-hero,
.evidence-ledger-hero,
.report-studio-hero,
.qhx-hero,
.public-card,
.empty-state {
  overflow: clip;
}

/* Operations Center: the status grid and the next cards need real separation. */
.ops-center-shell {
  padding-bottom: clamp(22px, 4vw, 38px) !important;
  margin-bottom: clamp(26px, 5vw, 44px) !important;
}

.ops-status-grid {
  gap: clamp(12px, 2.4vw, 18px) !important;
  margin-bottom: clamp(20px, 4.5vw, 34px) !important;
}

.ops-status-card,
.ops-record-card,
.ops-alert-card,
.ops-candidate-card,
.ops-timeline-item > div,
.ops-run-card,
.evidence-record,
.report-record-card,
.case-status-card,
.mission-card {
  min-width: 0;
  overflow: clip;
}

.ops-control-grid,
.ops-radar-panel,
.ops-watchlist-panel,
.ops-alert-panel,
.ops-brief-run-grid,
.ops-event-stream,
.category-sweep-panel {
  margin-top: var(--sf-collision-gap) !important;
  margin-bottom: var(--sf-collision-gap) !important;
}

.ops-form-band,
.ops-limit-grid,
.ops-switchboard,
.ops-sweep-options,
.ops-record-grid,
.ops-candidate-grid,
.ops-brief-run-grid,
.form-grid,
.metric-grid,
.metric-card-grid,
.case-workspace-strip,
.evidence-kpi-strip,
.evidence-custody-grid,
.report-studio-grid {
  row-gap: clamp(12px, 2.2vw, 20px) !important;
}

/* Empty states should be self-contained cards, not visual bridges between panels. */
.empty-state {
  margin-block: clamp(12px, 2.4vw, 20px) !important;
  padding: clamp(22px, 4vw, 34px) !important;
  border-radius: clamp(22px, 4vw, 32px) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.095), rgba(255,255,255,.052)) !important;
  border: 1px solid rgba(255,255,255,.13) !important;
}

/* Sticky workspace tabs and panels need clear scroll landings under the mobile shell. */
.sentinel-workspace-section,
.panel,
.hero-card,
.case-hero,
.ops-center-shell,
.category-sweep-panel,
.ops-watchlist-panel,
.ops-alert-panel,
.ops-brief-run-grid,
.case-workspace-native,
.evidence-ledger-native,
.report-studio-native {
  scroll-margin-top: calc(118px + env(safe-area-inset-top));
}

@media (max-width: 720px) {
  .sf-os-shell-enabled .main {
    padding-top: max(18px, env(safe-area-inset-top)) !important;
    padding-left: max(16px, env(safe-area-inset-left)) !important;
    padding-right: max(16px, env(safe-area-inset-right)) !important;
    padding-bottom: var(--sf-dock-clearance-mobile) !important;
  }

  /* Mobile top chrome must be chrome, not a transparent overlay letting content bleed through. */
  .sf-os-shell-enabled .sf-os-mobile-top {
    position: sticky !important;
    top: max(8px, env(safe-area-inset-top)) !important;
    margin: 0 0 clamp(22px, 5.8vw, 34px) !important;
    background:
      linear-gradient(180deg, rgba(13,19,31,.995), rgba(8,12,21,.985)) !important;
    backdrop-filter: blur(30px) saturate(1.18) !important;
    -webkit-backdrop-filter: blur(30px) saturate(1.18) !important;
    box-shadow:
      0 18px 54px rgba(0,0,0,.50),
      0 0 0 1px rgba(255,255,255,.06),
      inset 0 1px rgba(255,255,255,.12) !important;
  }

  .sf-os-shell-enabled .sf-os-mobile-top::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: rgba(5,8,14,.22);
    pointer-events: none;
    z-index: -1;
  }

  /* Universal mobile stack safety: every big surface gets vertical air. */
  .sentinel-workspace-section + .sentinel-workspace-section,
  .sf-app-window-body > section + section,
  .sf-app-window-body > .panel + .panel,
  .sf-app-window-body > .grid-2 + .panel,
  .sf-app-window-body > .panel + .grid-2,
  .mission-control-home > * + *,
  .ops-center-shell + *,
  .case-workspace-native + *,
  .evidence-ledger-native + *,
  .report-studio-native + * {
    margin-top: var(--sf-collision-gap-mobile) !important;
  }

  .panel,
  .hero-card,
  .case-hero,
  .compact-hero,
  .sf-app-window,
  .mission-card,
  .mission-hero-panel,
  .ops-center-shell,
  .ops-control-panel,
  .ops-cron-card,
  .ops-radar-panel,
  .ops-watchlist-panel,
  .ops-alert-panel,
  .ops-brief-panel,
  .ops-run-panel,
  .ops-event-stream,
  .case-workspace-hero,
  .case-status-card,
  .case-action-rail,
  .case-packet-rail,
  .evidence-ledger-hero,
  .evidence-kpi-strip article,
  .custody-card,
  .evidence-filter-console,
  .evidence-record,
  .evidence-action-rail,
  .report-studio-hero,
  .report-record-card,
  .qhx-hero,
  .public-card,
  .empty-state {
    padding: var(--sf-panel-inner-mobile) !important;
    border-radius: clamp(24px, 7vw, 34px) !important;
  }

  .ops-center-shell,
  .ops-control-grid,
  .ops-radar-panel,
  .ops-watchlist-panel,
  .ops-alert-panel,
  .ops-brief-run-grid,
  .ops-event-stream,
  .category-sweep-panel {
    margin-top: var(--sf-collision-gap-mobile) !important;
    margin-bottom: var(--sf-collision-gap-mobile) !important;
  }

  .ops-status-grid {
    gap: clamp(16px, 4.8vw, 24px) !important;
    margin-top: clamp(18px, 5vw, 28px) !important;
    margin-bottom: clamp(28px, 7vw, 46px) !important;
  }

  .ops-status-card {
    min-height: 142px !important;
    padding: clamp(18px, 5vw, 24px) !important;
  }

  .ops-control-panel,
  .ops-radar-panel,
  .ops-watchlist-panel,
  .ops-alert-panel,
  .ops-brief-panel,
  .ops-run-panel,
  .ops-event-stream,
  .category-sweep-panel {
    position: relative;
    isolation: isolate;
  }

  /* Visual separators between adjacent glass blocks so they do not blend into overlap. */
  .ops-control-panel::before,
  .ops-radar-panel::before,
  .ops-watchlist-panel::before,
  .ops-alert-panel::before,
  .ops-brief-panel::before,
  .ops-run-panel::before,
  .category-sweep-panel::before {
    content: "";
    position: absolute;
    left: clamp(20px, 6vw, 32px);
    right: clamp(20px, 6vw, 32px);
    top: -16px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(190,220,255,.22), transparent);
    pointer-events: none;
  }

  .form-grid,
  .form-grid.three,
  .form-grid.four,
  .ops-form-band,
  .ops-limit-grid,
  .ops-switchboard,
  .ops-sweep-options,
  .ops-record-grid,
  .ops-candidate-grid,
  .ops-brief-run-grid,
  .metric-grid,
  .metric-card-grid,
  .case-workspace-strip,
  .evidence-kpi-strip,
  .evidence-custody-grid {
    gap: clamp(16px, 4.8vw, 24px) !important;
  }

  .empty-state {
    margin-block: clamp(18px, 5vw, 28px) !important;
    min-height: auto !important;
  }

  .empty-state strong,
  .empty-state span,
  .empty-state p,
  .ops-timeline-item p,
  .ops-record-card p,
  .ops-alert-card p,
  .ops-candidate-main p,
  .panel p,
  .mission-card p,
  .case-status-card small {
    overflow-wrap: anywhere;
    text-wrap: pretty;
  }

  /* Dock-safe final content breathing room. */
  .sf-app-window-body > :last-child,
  .main > :last-child,
  .sentinel-workspace-section:last-child,
  .panel:last-child {
    margin-bottom: calc(34px + env(safe-area-inset-bottom)) !important;
  }
}

@media (max-width: 420px) {
  :root {
    --sf-panel-inner-mobile: 22px;
  }

  .sf-os-shell-enabled .main {
    padding-left: max(14px, env(safe-area-inset-left)) !important;
    padding-right: max(14px, env(safe-area-inset-right)) !important;
  }

  .ops-status-grid {
    grid-template-columns: 1fr !important;
  }

  .ops-status-card.primary {
    grid-column: auto !important;
  }
}

.sf-stage-65-6-visual-collision-audit-marker{display:none}


/* Stage 65.7 Inner Arc Orb + Visual Audit Rootfix
   Code-level correction: text must live along the inner curvature of the glass
   sphere, not sit flat at the bottom. Also tightens the mobile visual rhythm
   after the Stage 65.5/65.6 audit. */
:root {
  --sf-sacred-title-tracking: -0.004em;
  --sf-sacred-word-spacing: .072em;
  --sf-sacred-title-line: 1.11;
  --sf-mobile-section-gap: clamp(30px, 8.5vw, 52px);
  --sf-mobile-card-gap: clamp(20px, 6vw, 34px);
}

/* Final title whitespace correction: do not crush the words. */
.topbar h1,
h1,
h2,
.hero-card h2,
.case-hero h2,
.compact-hero h2,
.mission-hero h1,
.mission-hero h2,
.mission-title,
.public-hero h1,
.public-hero h2,
.app-window-title,
.sf-app-window-title,
.case-workspace-hero h1,
.evidence-ledger-hero h1,
.report-studio-hero h1,
.ops-hero h1,
.qhx-hero h1,
.sf-app-library-hero h2,
.sf-os-launcher-panel h2 {
  letter-spacing: var(--sf-sacred-title-tracking) !important;
  word-spacing: var(--sf-sacred-word-spacing) !important;
  line-height: var(--sf-sacred-title-line) !important;
}

/* Stronger glass sphere: separate outer rim, inner lens, and glossy surface. */
.mission-readiness-orb,
.command-orb,
.score-orb,
.case-score-orb,
.evidence-custody-orb,
.report-studio-orb,
.ops-readiness-orb,
.qhx-score-orb,
.public-orb {
  border-color: rgba(207,230,255,.25) !important;
  background:
    radial-gradient(circle at 32% 16%, rgba(255,255,255,.50) 0, rgba(255,255,255,.19) 11%, transparent 26%),
    radial-gradient(circle at 64% 74%, rgba(71,103,255,.22), transparent 42%),
    radial-gradient(circle at 50% 48%, rgba(78,128,180,.58), rgba(14,24,41,.95) 56%, rgba(5,8,15,.98) 100%) !important;
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,.32),
    inset 0 0 0 10px rgba(255,255,255,.022),
    inset 18px 18px 46px rgba(255,255,255,.06),
    inset -22px -32px 64px rgba(0,0,0,.42),
    0 30px 90px rgba(0,0,0,.38),
    0 0 0 1px rgba(150,205,255,.075) !important;
}

.sf-orb-curved-ready .sentinel-orb-rings {
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 8 !important;
  opacity: .98;
}

.sf-orb-curved-ready .orb-arc {
  paint-order: stroke;
  stroke: rgba(3, 7, 13, .56) !important;
  stroke-width: .72px !important;
  dominant-baseline: middle;
  text-rendering: geometricPrecision;
}

.sf-orb-curved-ready .orb-arc-label {
  fill: rgba(215, 239, 255, .88) !important;
  font-size: 10.8px !important;
  font-weight: 760 !important;
  letter-spacing: .24em !important;
}

.sf-orb-curved-ready .orb-arc-caption {
  fill: rgba(224, 232, 244, .82) !important;
  font-size: 10.4px !important;
  font-weight: 640 !important;
  letter-spacing: .035em !important;
}

.sf-orb-curved-ready > .sf-orb-value,
.sf-orb-curved-ready > strong {
  z-index: 9 !important;
  transform: translateY(.015em) !important;
}

@media (max-width: 720px) {
  /* Stop top chrome and content from fighting each other. */
  .sf-os-shell-enabled .main {
    padding-top: calc(18px + env(safe-area-inset-top)) !important;
    padding-bottom: calc(138px + env(safe-area-inset-bottom)) !important;
  }

  .sf-os-shell-enabled .sf-app-window,
  .sf-os-shell-enabled .mission-control-home,
  .sf-os-shell-enabled .ops-center-native,
  .sf-os-shell-enabled .case-workspace-native,
  .sf-os-shell-enabled .evidence-ledger-native,
  .sf-os-shell-enabled .report-studio-native {
    display: flex;
    flex-direction: column;
    gap: var(--sf-mobile-section-gap) !important;
  }

  .sf-os-shell-enabled .mission-hero-panel,
  .sf-os-shell-enabled .ops-hero,
  .sf-os-shell-enabled .evidence-ledger-hero,
  .sf-os-shell-enabled .report-studio-hero,
  .sf-os-shell-enabled .case-workspace-hero {
    padding: clamp(28px, 8vw, 42px) clamp(24px, 7vw, 34px) !important;
    margin-bottom: var(--sf-mobile-section-gap) !important;
  }

  .sf-os-shell-enabled .mission-hero-copy h2,
  .sf-os-shell-enabled .ops-hero h1,
  .sf-os-shell-enabled .evidence-ledger-hero h1,
  .sf-os-shell-enabled .report-studio-hero h1,
  .sf-os-shell-enabled .case-workspace-hero h1 {
    font-size: clamp(2.35rem, 11.2vw, 3.35rem) !important;
    letter-spacing: -0.006em !important;
    word-spacing: .065em !important;
    line-height: 1.1 !important;
  }

  .sf-os-shell-enabled .mission-readiness-orb,
  .sf-os-shell-enabled .mission-readiness-orb.sf-orb-curved-ready,
  .sf-os-shell-enabled .evidence-custody-orb,
  .sf-os-shell-enabled .report-studio-orb,
  .sf-os-shell-enabled .ops-readiness-orb,
  .sf-os-shell-enabled .qhx-score-orb,
  .sf-os-shell-enabled .public-orb {
    width: min(230px, 62vw) !important;
    height: min(230px, 62vw) !important;
    min-width: min(230px, 62vw) !important;
    min-height: min(230px, 62vw) !important;
    margin: clamp(18px, 5vw, 26px) auto 0 !important;
  }

  .sf-os-shell-enabled .sf-orb-curved-ready .sentinel-orb-rings {
    inset: -1.5% !important;
    width: 103% !important;
    height: 103% !important;
  }

  .sf-os-shell-enabled .sf-orb-curved-ready .orb-arc-label {
    font-size: 10px !important;
    letter-spacing: .22em !important;
  }

  .sf-os-shell-enabled .sf-orb-curved-ready .orb-arc-caption {
    font-size: 9.8px !important;
    letter-spacing: .02em !important;
  }

  .sf-os-shell-enabled .mission-readiness-orb.sf-orb-curved-ready > strong,
  .sf-os-shell-enabled .evidence-custody-orb.sf-orb-curved-ready > strong,
  .sf-os-shell-enabled .report-studio-orb.sf-orb-curved-ready > strong,
  .sf-os-shell-enabled .ops-readiness-orb.sf-orb-curved-ready > strong,
  .sf-os-shell-enabled .qhx-score-orb.sf-orb-curved-ready > strong {
    font-size:clamp(1.6rem, 9vw, 2.5rem) !important;
  }

  /* Hard separation between neighbouring glass blocks so they cannot visually kiss. */
  .sf-os-shell-enabled .panel,
  .sf-os-shell-enabled .hero-card,
  .sf-os-shell-enabled .case-hero,
  .sf-os-shell-enabled .mission-card,
  .sf-os-shell-enabled .ops-control-panel,
  .sf-os-shell-enabled .ops-radar-panel,
  .sf-os-shell-enabled .ops-watchlist-panel,
  .sf-os-shell-enabled .ops-alert-panel,
  .sf-os-shell-enabled .ops-brief-panel,
  .sf-os-shell-enabled .ops-run-panel,
  .sf-os-shell-enabled .ops-event-stream,
  .sf-os-shell-enabled .category-sweep-panel,
  .sf-os-shell-enabled .evidence-record,
  .sf-os-shell-enabled .report-record-card,
  .sf-os-shell-enabled .empty-state {
    margin-top: var(--sf-mobile-card-gap) !important;
    margin-bottom: var(--sf-mobile-card-gap) !important;
  }

  .sf-os-shell-enabled .empty-state {
    padding-block: clamp(28px, 8vw, 44px) !important;
  }
}

.sf-stage-65-7-inner-arc-orb-visual-audit-marker{display:none}


/* Stage 65.8 Shell Topbar + Orb Stability Rootfix
   Failsafe visual rules after the curved-orb experiment:
   - Original orb label/caption must never disappear unless SVG curve is mounted.
   - Mobile top shell must stay fixed at the top; never drift into page flow/bottom.
   - Mobile content gets a real top and bottom safe corridor. */
.sf-orb-curved-ready > .sf-orb-original-label,
.sf-orb-curved-ready > .sf-orb-original-caption {
  position: static !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  white-space: normal !important;
  clip: auto !important;
  clip-path: none !important;
  opacity: .72 !important;
  pointer-events: auto !important;
}

.sf-orb-curved-ready.sf-orb-curve-mounted > .sf-orb-original-label,
.sf-orb-curved-ready.sf-orb-curve-mounted > .sf-orb-original-caption {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  clip-path: inset(50%) !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.sf-orb-curved-ready .sentinel-orb-rings {
  display: block !important;
  position: absolute !important;
  inset: 5% !important;
  width: 90% !important;
  height: 90% !important;
  z-index: 5 !important;
  pointer-events: none !important;
  overflow: visible !important;
}

.sf-orb-curved-ready .orb-arc-label {
  fill: rgba(214, 237, 255, .86) !important;
  font-size: 10px !important;
  letter-spacing: .18em !important;
}

.sf-orb-curved-ready .orb-arc-caption {
  fill: rgba(220, 229, 242, .78) !important;
  font-size: 9.8px !important;
  letter-spacing: .015em !important;
}

@media (max-width: 720px) {
  html.sf-os-shell-active,
  body.sf-os-shell-enabled {
    scroll-padding-top: calc(96px + env(safe-area-inset-top)) !important;
  }

  .sf-os-shell-enabled .main,
  .sf-os-shell-enabled main.main {
    padding-top: calc(96px + env(safe-area-inset-top)) !important;
    padding-bottom: calc(148px + env(safe-area-inset-bottom)) !important;
  }

  .sf-os-shell-enabled .mission-control-home,
  .sf-os-shell-enabled .app-window,
  .sf-os-shell-enabled .sf-app-window,
  .sf-os-shell-enabled .panel,
  .sf-os-shell-enabled .hero-card,
  .sf-os-shell-enabled .case-hero,
  .sf-os-shell-enabled .mission-hero-panel,
  .sf-os-shell-enabled .evidence-ledger-hero,
  .sf-os-shell-enabled .report-studio-hero,
  .sf-os-shell-enabled .ops-hero,
  .sf-os-shell-enabled .case-workspace-hero {
    scroll-margin-top: calc(112px + env(safe-area-inset-top)) !important;
  }

  .sf-orb-curved-ready .sentinel-orb-rings {
    inset: 5.5% !important;
    width: 89% !important;
    height: 89% !important;
  }

  .sf-orb-curved-ready .orb-arc-label {
    font-size: 8.8px !important;
    letter-spacing: .14em !important;
  }

  .sf-orb-curved-ready .orb-arc-caption {
    font-size: 8.7px !important;
    letter-spacing: .006em !important;
  }
}

.sf-stage-65-8-shell-topbar-orb-stability-marker{display:none}


/* Stage 65.9 Orb Glass + TextPath Stability Rootfix
   Fixes Mission Control orb missing text after older Stage 65.3 mobile overrides.
   The curved SVG overlay is now explicitly restored for mission orbs, while the
   straight fallback text remains visible unless the SVG overlay is mounted.
   Also removes the faint rectangular backing artifact by enforcing true circular
   clipping and transparent SVG overlays. */
.mission-readiness-orb,
.command-orb,
.score-orb,
.case-score-orb,
.evidence-custody-orb,
.report-studio-orb,
.ops-readiness-orb,
.qhx-score-orb,
.public-orb {
  border-radius: 50% !important;
  background-clip: padding-box !important;
  clip-path: circle(50% at 50% 50%);
  border-color: rgba(154, 207, 255, .28) !important;
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,.30),
    inset 14px 18px 48px rgba(255,255,255,.07),
    inset -18px -30px 58px rgba(4,10,20,.30),
    0 22px 72px rgba(4,8,18,.30),
    0 0 0 1px rgba(149,204,255,.075) !important;
}

.mission-readiness-orb::before,
.command-orb::before,
.score-orb::before,
.case-score-orb::before,
.evidence-custody-orb::before,
.report-studio-orb::before,
.ops-readiness-orb::before,
.qhx-score-orb::before,
.public-orb::before,
.mission-readiness-orb::after,
.command-orb::after,
.score-orb::after,
.case-score-orb::after,
.evidence-custody-orb::after,
.report-studio-orb::after,
.ops-readiness-orb::after,
.qhx-score-orb::after,
.public-orb::after {
  border-radius: 50% !important;
}

.sf-orb-curved-ready .sentinel-orb-rings,
.sf-os-shell-enabled .mission-readiness-orb.sf-orb-curved-ready .sentinel-orb-rings {
  display: block !important;
  position: absolute !important;
  inset: 4.75% !important;
  width: 90.5% !important;
  height: 90.5% !important;
  z-index: 8 !important;
  pointer-events: none !important;
  overflow: visible !important;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.sf-orb-curved-ready .sentinel-orb-rings * {
  background: transparent !important;
  box-shadow: none !important;
}

.sf-orb-curved-ready .orb-arc {
  fill: rgba(218, 237, 255, .84) !important;
  stroke: rgba(6, 12, 22, .44) !important;
  stroke-width: .54px !important;
  paint-order: stroke;
  dominant-baseline: middle;
}

.sf-orb-curved-ready .orb-arc-label {
  font-size: 10.4px !important;
  font-weight: 760 !important;
  letter-spacing: .19em !important;
}

.sf-orb-curved-ready .orb-arc-caption {
  font-size: 9.9px !important;
  font-weight: 640 !important;
  letter-spacing: .012em !important;
}

.sf-orb-curved-ready > .sf-orb-original-label,
.sf-orb-curved-ready > .sf-orb-original-caption,
.sf-os-shell-enabled .mission-readiness-orb.sf-orb-curved-ready > .sf-orb-original-label,
.sf-os-shell-enabled .mission-readiness-orb.sf-orb-curved-ready > .sf-orb-original-caption {
  position: static !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  white-space: normal !important;
  clip: auto !important;
  clip-path: none !important;
  opacity: .72 !important;
  pointer-events: auto !important;
}

.sf-orb-curved-ready.sf-orb-curve-mounted > .sf-orb-original-label,
.sf-orb-curved-ready.sf-orb-curve-mounted > .sf-orb-original-caption,
.sf-os-shell-enabled .mission-readiness-orb.sf-orb-curved-ready.sf-orb-curve-mounted > .sf-orb-original-label,
.sf-os-shell-enabled .mission-readiness-orb.sf-orb-curved-ready.sf-orb-curve-mounted > .sf-orb-original-caption {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.sf-orb-curved-ready > .sf-orb-value,
.sf-orb-curved-ready > strong {
  z-index: 9 !important;
}

.mission-readiness-orb.sf-orb-curved-ready > strong {
  max-width: 58% !important;
}

@media (max-width: 720px) {
  .sf-os-shell-enabled .mission-readiness-orb.sf-orb-curved-ready .sentinel-orb-rings {
    display: block !important;
    inset: 4.5% !important;
    width: 91% !important;
    height: 91% !important;
  }

  .sf-os-shell-enabled .mission-readiness-orb.sf-orb-curved-ready .orb-arc-label {
    font-size: 9.05px !important;
    letter-spacing: .15em !important;
  }

  .sf-os-shell-enabled .mission-readiness-orb.sf-orb-curved-ready .orb-arc-caption {
    font-size: 8.75px !important;
    letter-spacing: .004em !important;
  }

  .sf-os-shell-enabled .mission-readiness-orb.sf-orb-curved-ready > strong {
    font-size:clamp(1.575rem, 10vw, 2.325rem) !important;
    max-width: 58% !important;
  }
}

.sf-stage-65-9-orb-glass-textpath-stability-marker{display:none}


/* Stage 65.10 Uniform Top Spacing Rootfix
   Every admin/app surface must begin after the fixed SENTINEL OS top shell with
   the same breathing-room rhythm. This prevents the first card/hero/component
   from sliding under the mobile topbar or starting with inconsistent vertical gaps. */
:root {
  --sf-shell-top-gap-desktop: 30px;
  --sf-shell-top-gap-tablet: 28px;
  --sf-shell-top-gap-mobile: 28px;
  --sf-shell-mobile-topbar-clearance: 112px;
  --sf-shell-mobile-bottom-clearance: 150px;
}

.sf-os-shell-enabled .main,
.sf-os-shell-enabled main.main,
.sf-os-shell-enabled [data-ajax-shell-main] {
  scroll-padding-top: calc(76px + var(--sf-shell-top-gap-desktop)) !important;
}

@media (min-width: 721px) {
  .sf-os-shell-enabled .main,
  .sf-os-shell-enabled main.main {
    padding-top: calc(54px + var(--sf-shell-top-gap-desktop)) !important;
  }

  .sf-os-shell-enabled .main > .topbar:first-child,
  .sf-os-shell-enabled main.main > .topbar:first-child,
  .sf-os-shell-enabled .main > .app-window:first-child,
  .sf-os-shell-enabled main.main > .app-window:first-child,
  .sf-os-shell-enabled .main > .sf-app-window:first-child,
  .sf-os-shell-enabled main.main > .sf-app-window:first-child,
  .sf-os-shell-enabled .main > .hero-card:first-child,
  .sf-os-shell-enabled main.main > .hero-card:first-child,
  .sf-os-shell-enabled .main > .panel:first-child,
  .sf-os-shell-enabled main.main > .panel:first-child,
  .sf-os-shell-enabled .main > .mission-control-home:first-child,
  .sf-os-shell-enabled main.main > .mission-control-home:first-child,
  .sf-os-shell-enabled .main > .public-shell:first-child,
  .sf-os-shell-enabled main.main > .public-shell:first-child {
    margin-top: 0 !important;
  }
}

@media (max-width: 1024px) and (min-width: 721px) {
  .sf-os-shell-enabled .main,
  .sf-os-shell-enabled main.main {
    padding-top: calc(58px + var(--sf-shell-top-gap-tablet)) !important;
  }
}

@media (max-width: 720px) {
  html.sf-os-shell-active,
  body.sf-os-shell-enabled {
    scroll-padding-top: calc(var(--sf-shell-mobile-topbar-clearance) + env(safe-area-inset-top)) !important;
  }

  .sf-os-shell-enabled .main,
  .sf-os-shell-enabled main.main,
  .sf-os-shell-enabled [data-ajax-shell-main] {
    padding-top: calc(var(--sf-shell-mobile-topbar-clearance) + var(--sf-shell-top-gap-mobile) + env(safe-area-inset-top)) !important;
    padding-bottom: calc(var(--sf-shell-mobile-bottom-clearance) + env(safe-area-inset-bottom)) !important;
    scroll-padding-top: calc(var(--sf-shell-mobile-topbar-clearance) + var(--sf-shell-top-gap-mobile) + env(safe-area-inset-top)) !important;
  }

  .sf-os-shell-enabled .main > :first-child,
  .sf-os-shell-enabled main.main > :first-child,
  .sf-os-shell-enabled [data-ajax-shell-main] > :first-child {
    margin-top: 0 !important;
  }

  .sf-os-shell-enabled .mission-control-home:first-child,
  .sf-os-shell-enabled .app-window:first-child,
  .sf-os-shell-enabled .sf-app-window:first-child,
  .sf-os-shell-enabled .hero-card:first-child,
  .sf-os-shell-enabled .case-hero:first-child,
  .sf-os-shell-enabled .panel:first-child,
  .sf-os-shell-enabled .public-shell:first-child,
  .sf-os-shell-enabled .case-workspace-hero:first-child,
  .sf-os-shell-enabled .evidence-ledger-hero:first-child,
  .sf-os-shell-enabled .report-studio-hero:first-child,
  .sf-os-shell-enabled .ops-hero:first-child,
  .sf-os-shell-enabled .qhx-hero:first-child {
    margin-top: 0 !important;
  }

  .sf-os-shell-enabled .topbar,
  .sf-os-shell-enabled .app-window,
  .sf-os-shell-enabled .sf-app-window,
  .sf-os-shell-enabled .hero-card,
  .sf-os-shell-enabled .case-hero,
  .sf-os-shell-enabled .panel,
  .sf-os-shell-enabled .mission-hero-panel,
  .sf-os-shell-enabled .public-card,
  .sf-os-shell-enabled .case-workspace-hero,
  .sf-os-shell-enabled .evidence-ledger-hero,
  .sf-os-shell-enabled .report-studio-hero,
  .sf-os-shell-enabled .ops-hero,
  .sf-os-shell-enabled .qhx-hero,
  .sf-os-shell-enabled .sentinel-workspace-section {
    scroll-margin-top: calc(var(--sf-shell-mobile-topbar-clearance) + var(--sf-shell-top-gap-mobile) + env(safe-area-inset-top)) !important;
  }

  /* Standardize the first hero/card start inside transformed pages without
     crushing internal whitespace. */
  .sf-os-shell-enabled .mission-control-home,
  .sf-os-shell-enabled .case-workspace,
  .sf-os-shell-enabled .evidence-ledger,
  .sf-os-shell-enabled .report-studio,
  .sf-os-shell-enabled .operations-center,
  .sf-os-shell-enabled .qhx-diagnostics,
  .sf-os-shell-enabled .public-native-shell {
    gap: max(22px, var(--sf-shell-top-gap-mobile)) !important;
  }
}

.sf-stage-65-10-uniform-top-spacing-marker{display:none}


/* Stage 65.11 App Library Topbar Clearance Rootfix — app companion */
@media (max-width: 720px) {
  .sf-os-shell-enabled .sf-os-launcher-panel.sf-os-app-library {
    scroll-margin-top: calc(120px + env(safe-area-inset-top)) !important;
  }

  .sf-os-shell-enabled .sf-os-app-library .sf-os-launcher-command-row,
  .sf-os-shell-enabled .sf-os-app-library .sf-os-launcher-groups,
  .sf-os-shell-enabled .sf-os-app-library .sf-os-launcher-body {
    border-radius: clamp(22px, 5vw, 32px);
  }

  .sf-os-shell-enabled .sf-os-app-library input[type="search"] {
    min-width: 0 !important;
    max-width: 100% !important;
  }
}

.sf-stage-65-11-app-library-topbar-clearance-marker{display:none}


/* Stage 65.12 Mission Control Top Gap Rootfix
   The Dashboard/Mission Control surface had a larger first-card clearance than
   the rest of the app after the fixed mobile top shell was stabilized. Normalize
   only the Mission Control first surface so its first glass card begins with the
   same deliberate breathing gap used elsewhere. */
@media (max-width: 720px) {
  .sf-os-shell-enabled .main > .mission-control-home:first-child,
  .sf-os-shell-enabled main.main > .mission-control-home:first-child,
  .sf-os-shell-enabled [data-ajax-shell-main] > .mission-control-home:first-child {
    margin-top: calc(-1 * clamp(82px, 19vw, 112px)) !important;
  }

  .sf-os-shell-enabled .mission-control-home > .mission-hero-panel:first-child {
    margin-top: 0 !important;
  }

  .sf-os-shell-enabled .mission-control-home {
    padding-top: 0 !important;
  }
}

.sf-stage-65-12-mission-control-top-gap-rootfix-marker{display:none}


/* Stage 65.13 Dashboard Top Gap Cascade Rootfix
   Root cause: admin/_layout.php always renders a hidden `.topbar` as the first
   child of `.main`; Dashboard/Mission Control comes immediately after it.
   Earlier Stage 65.12 targeted `.mission-control-home:first-child`, which never
   matched because `.topbar` is still the first DOM child even when display:none.
   This fixes the real cascade/DOM adjacency and normalizes the topbar-to-first-card
   gap only for the dashboard module. */
@media (max-width: 720px) {
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .main,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard main.main {
    padding-top: calc(112px + env(safe-area-inset-top)) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .main > header.topbar:first-child + .mission-control-home,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard main.main > header.topbar:first-child + .mission-control-home,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard [data-ajax-shell-main] > header.topbar:first-child + .mission-control-home {
    margin-top: calc(-1 * clamp(38px, 9vw, 56px)) !important;
    padding-top: 0 !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .main > header.topbar:first-child + .flash + .mission-control-home,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard main.main > header.topbar:first-child + .flash + .mission-control-home,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard [data-ajax-shell-main] > header.topbar:first-child + .flash + .mission-control-home {
    margin-top: calc(-1 * clamp(18px, 4vw, 28px)) !important;
    padding-top: 0 !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-control-home {
    gap: clamp(20px, 5vw, 26px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-control-home > .mission-hero-panel:first-child {
    margin-top: 0 !important;
  }
}

.sf-stage-65-13-dashboard-top-gap-cascade-rootfix-marker{display:none}


/* Stage 65.14 App Library iPad Landscape companion marker */
@media (min-width: 721px) and (max-width: 1180px) and (orientation: landscape) {
  .sf-os-shell-enabled .sf-os-launcher-panel.sf-os-app-library {
    scroll-margin-top: 0 !important;
  }
}
.sf-stage-65-14-app-library-ipad-landscape-marker{display:none}

/* Stage 66 Dynamic Wallpaper Library companion marker */
.sf-stage-66-dynamic-wallpaper-library-marker{display:none}

.sf-stage-66-1-dynamic-wallpaper-visibility-marker{display:none}

.sf-stage-66-2-visible-dynamic-wallpaper-motion-marker{display:none}


/* Stage 66.3 Scrollbarless + Buttery Scroll Rootfix
   Platform-wide native scrollbar suppression without disabling scroll.
   Applies to browser body, app shell, overlays, sheets, drawers, app windows,
   tables, panels, cards, picker lists, public/admin surfaces, and generated
   scroll containers. */

:root {
  --sf-scroll-touch-action: pan-x pan-y;
  --sf-scroll-momentum: touch;
  --sf-scroll-snap-softness: proximity;
  scroll-behavior: smooth;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}

html,
body {
  scroll-behavior: smooth !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: none;
}

*,
*::before,
*::after {
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}

*::-webkit-scrollbar,
*::before::-webkit-scrollbar,
*::after::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
  background: transparent !important;
}

*::-webkit-scrollbar-track,
*::-webkit-scrollbar-thumb,
*::-webkit-scrollbar-corner,
*::-webkit-resizer {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
  background: transparent !important;
  border: 0 !important;
}

body,
.main,
.content,
.admin-content,
.sf-page,
.sf-public-page,
.sf-os-page,
.sf-os-main,
.sf-os-scroll-root,
.sf-os-app-window,
.sf-os-app-window-body,
.sf-os-workspace,
.sf-os-workspace-body,
.sf-os-desktop,
.sf-os-desktop-layer,
.sf-os-launcher,
.sf-os-launcher-panel,
.sf-os-launcher-apps,
.sf-os-launcher-grid,
.sf-os-launcher-body,
.sf-os-launcher-list,
.sf-os-drawer,
.sf-os-drawer-body,
.sf-os-sheet,
.sf-os-sheet-body,
.sf-os-modal,
.sf-os-modal-body,
.sf-os-command-palette,
.sf-os-command-results,
.sf-os-control-center,
.sf-os-control-center-body,
.sf-record-card-list,
.sf-table-shell,
.sf-table-wrap,
.table-responsive,
.data-table-wrap,
.card-scroll,
.panel-scroll,
.scroll-panel,
.scroll-area,
.scroll-region,
.modal,
.modal-body,
.drawer,
.drawer-body,
.sheet,
.sheet-body,
.dropdown-menu,
.case-workspace,
.case-dossier,
.evidence-ledger,
.report-studio,
.pdf-studio,
.operations-center,
.qhx-console,
.public-shell,
.public-main,
pre,
code,
textarea,
select {
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
}

.sf-scrollbarless,
.sf-scrollbarless *,
[data-sf-scrollbarless="true"],
[data-sf-scrollbarless="true"] * {
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}

.sf-scrollbarless::-webkit-scrollbar,
.sf-scrollbarless *::-webkit-scrollbar,
[data-sf-scrollbarless="true"]::-webkit-scrollbar,
[data-sf-scrollbarless="true"] *::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}

@supports (-webkit-touch-callout: none) {
  html,
  body,
  .main,
  .sf-os-launcher-panel,
  .sf-os-launcher-apps,
  .sf-os-app-window-body,
  .sf-os-workspace-body,
  .sf-os-sheet-body,
  .sf-os-modal-body,
  .sf-os-drawer-body,
  .sf-table-wrap,
  .table-responsive,
  .data-table-wrap,
  .scroll-area,
  .scroll-region {
    -webkit-overflow-scrolling: touch !important;
    transform: translateZ(0);
    backface-visibility: hidden;
  }
}

/* Prevent hidden scrollbars from stealing layout width on engines that reserve it. */
html,
body,
.main,
.sf-os-app-window-body,
.sf-os-launcher-panel,
.sf-os-launcher-apps,
.sf-table-wrap,
.table-responsive,
.data-table-wrap {
  scrollbar-gutter: auto !important;
}

/* More native-feeling anchor/keyboard scroll offsets under the fixed shell. */
[id],
[data-scroll-anchor],
.sf-scroll-anchor {
  scroll-margin-top: calc(var(--sf-os-topbar-clearance, 82px) + 14px);
  scroll-margin-bottom: calc(var(--sf-os-dock-clearance, 94px) + 18px);
}

/* Smoother drag/pan behavior while keeping real native inertia. */
.sf-os-shell-enabled,
.sf-os-shell-enabled body,
.sf-os-shell-enabled .main,
.sf-os-shell-enabled .sf-os-app-window-body,
.sf-os-shell-enabled .sf-os-launcher-panel,
.sf-os-shell-enabled .sf-os-launcher-apps,
.sf-os-shell-enabled .sf-os-sheet-body,
.sf-os-shell-enabled .sf-os-modal-body,
.sf-os-shell-enabled .sf-os-drawer-body,
.sf-os-shell-enabled .sf-table-wrap,
.sf-os-shell-enabled .table-responsive,
.sf-os-shell-enabled .data-table-wrap {
  touch-action: pan-x pan-y;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch !important;
}

/* Keep textareas/selects usable while hiding native bars. */
textarea,
select,
pre,
code {
  overflow: auto;
}

/* Reduced motion should disable animated scroll but not restore scrollbars. */
@media (prefers-reduced-motion: reduce) {
  :root,
  html,
  body,
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
  }
}

.sf-stage-66-3-scrollbarless-buttery-scroll-marker{display:none}


/* Stage 66.4 Fixed Chrome Scroll Rootfix
   Stage 66.3 hid scrollbars, but its broad iOS scroll acceleration placed
   transforms/containment on page roots. iOS treats transformed ancestors as
   containing blocks for fixed descendants, so mobile chrome can appear to scroll
   away. This block keeps scrollbars hidden while making shell chrome immune. */

html.sf-scrollbarless,
html.sf-scrollbarless body,
body.sf-scrollbarless,
.sf-os-shell-enabled,
.sf-os-shell-enabled .shell,
.sf-os-shell-enabled .main,
.sf-os-shell-enabled main.main,
.sf-os-shell-enabled .content,
.sf-os-shell-enabled .admin-content {
  transform: none !important;
  perspective: none !important;
  filter: none !important;
  contain: none !important;
  backface-visibility: visible !important;
}

@supports (-webkit-touch-callout: none) {
  .sf-os-shell-enabled .main,
  .sf-os-shell-enabled main.main,
  .sf-os-shell-enabled .content,
  .sf-os-shell-enabled .admin-content {
    transform: none !important;
    contain: none !important;
    backface-visibility: visible !important;
  }
}

@media (max-width: 720px) {
  body.sf-os-shell-enabled .sf-os-mobile-top,
  body.sf-os-shell-enabled.sf-os-keyboard-focus .sf-os-mobile-top,
  html.sf-scrollbarless body.sf-os-shell-enabled .sf-os-mobile-top {
    display: flex !important;
    position: fixed !important;
    top: calc(10px + env(safe-area-inset-top)) !important;
    left: max(14px, env(safe-area-inset-left)) !important;
    right: max(14px, env(safe-area-inset-right)) !important;
    bottom: auto !important;
    z-index: 2147483000 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    translate: none !important;
    contain: none !important;
    will-change: auto !important;
    animation: none !important;
    transition-property: background, border-color, box-shadow, backdrop-filter, -webkit-backdrop-filter !important;
  }

  body.sf-os-shell-enabled .sf-os-mobile-dock,
  body.sf-os-shell-enabled.sf-os-keyboard-focus .sf-os-mobile-dock,
  html.sf-scrollbarless body.sf-os-shell-enabled .sf-os-mobile-dock {
    display: flex !important;
    position: fixed !important;
    left: max(18px, env(safe-area-inset-left)) !important;
    right: max(18px, env(safe-area-inset-right)) !important;
    bottom: calc(12px + env(safe-area-inset-bottom)) !important;
    top: auto !important;
    z-index: 2147482990 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    translate: none !important;
    contain: none !important;
    will-change: auto !important;
    animation: none !important;
    transition-property: background, border-color, box-shadow, backdrop-filter, -webkit-backdrop-filter !important;
  }

  body.sf-os-shell-enabled .main,
  body.sf-os-shell-enabled main.main {
    padding-top: calc(96px + env(safe-area-inset-top)) !important;
    padding-bottom: calc(148px + env(safe-area-inset-bottom)) !important;
    overflow: visible !important;
  }
}

@media (min-width: 721px) {
  body.sf-os-shell-enabled .sf-os-systembar {
    position: fixed !important;
    top: 12px !important;
    z-index: 2147482000 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    contain: none !important;
    will-change: auto !important;
  }

  body.sf-os-shell-enabled .sf-os-dock {
    position: fixed !important;
    left: 50% !important;
    bottom: 18px !important;
    z-index: 2147481990 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateX(-50%) !important;
    contain: none !important;
    will-change: auto !important;
  }
}

.sf-stage-66-4-fixed-chrome-scroll-marker{display:none}


/* Stage 66.5 companion marker + legacy chrome fallback */
:root {
  --sf-stage-66-5-chrome-ready: 1;
}

body.sf-os-shell-enabled .topbar:not([hidden]) {
  background:
    linear-gradient(135deg, rgba(255,255,255,.13), rgba(255,255,255,.045)),
    rgba(7,10,18,.54) !important;
  border-color: rgba(255,255,255,.18) !important;
  -webkit-backdrop-filter: saturate(1.45) blur(28px) !important;
  backdrop-filter: saturate(1.45) blur(28px) !important;
  box-shadow: 0 20px 70px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.22) !important;
}

.sf-stage-66-5-liquid-glass-chrome-marker{display:none}


/* Stage 66.6 iPad Rail + Launcher Scroll Rootfix companion
   Adds a compact rail hide/reveal control for iPad portrait OS/Desktop mode.
   Landscape iPad rail hiding is enforced in OS shell CSS. */
.sf-sidebar-rail-hide,
.sf-sidebar-rail-reveal {
  display: none;
}

@media (orientation: portrait) and (min-width: 721px) and (pointer: coarse) {
  body.sf-os-shell-enabled .sf-sidebar-rail-hide {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    min-width: 38px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.20);
    color: var(--text);
    background:
      linear-gradient(135deg, rgba(255,255,255,.14), rgba(255,255,255,.045)),
      rgba(8,12,20,.58);
    -webkit-backdrop-filter: saturate(1.5) blur(22px);
    backdrop-filter: saturate(1.5) blur(22px);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 14px 38px rgba(0,0,0,.24);
    cursor: pointer;
    font-size: 1.25rem;
    line-height: 1;
    margin: 2px auto 0;
    touch-action: manipulation;
  }

  body.sf-os-shell-enabled.sf-sidebar-rail-hidden .shell {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.sf-os-shell-enabled.sf-sidebar-rail-hidden .sidebar {
    display: none !important;
  }

  body.sf-os-shell-enabled.sf-sidebar-rail-hidden .main {
    padding-left: max(18px, env(safe-area-inset-left)) !important;
  }

  body.sf-os-shell-enabled.sf-sidebar-rail-hidden .sf-os-systembar {
    left: max(14px, env(safe-area-inset-left)) !important;
  }

  body.sf-os-shell-enabled.sf-sidebar-rail-hidden .sf-sidebar-rail-reveal {
    display: grid;
    place-items: center;
    position: fixed;
    left: max(8px, env(safe-area-inset-left));
    bottom: calc(112px + env(safe-area-inset-bottom));
    z-index: 2147481985;
    width: 42px;
    height: 48px;
    border-radius: 0 999px 999px 0;
    border: 1px solid rgba(255,255,255,.22);
    border-left: 0;
    color: var(--text);
    background:
      linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,255,255,.052)),
      rgba(7,10,18,.62);
    -webkit-backdrop-filter: saturate(1.55) blur(26px);
    backdrop-filter: saturate(1.55) blur(26px);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 18px 54px rgba(0,0,0,.30);
    cursor: pointer;
    font-size: 1.35rem;
    touch-action: manipulation;
  }
}

.sf-stage-66-6-ipad-rail-launcher-scroll-marker{display:none}

/* Stage 66.9 Dashboard Pan + Circular Bubble Text Rootfix
   - iPad landscape dashboard must never become a loose horizontal canvas.
   - Horizontal movement is allowed only inside intentional scroll surfaces.
   - Circular/text bubbles get responsive text sizing and clipping guards so values
     never escape their circles across phones, iPads, desktop mode, and desktop. */
:root {
  --sf-bubble-text-scale: 1;
  --sf-bubble-value-scale: 1;
}

html,
body {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
  overscroll-behavior-x: none !important;
}

body.sf-os-shell-enabled,
body.sf-os-shell-enabled .shell,
body.sf-os-shell-enabled .main,
body.sf-os-shell-enabled main.main,
body.sf-os-shell-enabled [data-ajax-shell-main],
body.sf-os-shell-enabled .mission-control-home {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
  overscroll-behavior-x: none !important;
  touch-action: pan-x pan-y !important;
}

body.sf-os-shell-enabled .table-wrap,
body.sf-os-shell-enabled .table-responsive,
body.sf-os-shell-enabled .data-table-wrap,
body.sf-os-shell-enabled .sf-table-wrap,
body.sf-os-shell-enabled .tabs,
body.sf-os-shell-enabled .workspace-tabs,
body.sf-os-shell-enabled .case-workspace-tabs,
body.sf-os-shell-enabled .sentinel-workspace-tabs,
body.sf-os-shell-enabled .sf-os-dock,
body.sf-os-shell-enabled .sf-os-launcher-groups,
body.sf-os-shell-enabled .sf-os-command-results {
  touch-action: pan-x pan-y !important;
  overscroll-behavior-x: contain !important;
}

body.sf-os-shell-enabled .mission-hero-panel,
body.sf-os-shell-enabled .mission-desktop-grid,
body.sf-os-shell-enabled .mission-widget-column,
body.sf-os-shell-enabled .mission-main-surface,
body.sf-os-shell-enabled .mission-app-grid,
body.sf-os-shell-enabled .mission-kpi-strip,
body.sf-os-shell-enabled .mission-intel-grid,
body.sf-os-shell-enabled .mission-card,
body.sf-os-shell-enabled .panel,
body.sf-os-shell-enabled .topbar {
  min-width: 0 !important;
  max-width: 100% !important;
}

@media (orientation: landscape) and (min-width: 721px) and (pointer: coarse),
       (orientation: landscape) and (min-width: 1181px) and (max-width: 1400px) and (max-height: 1100px) {
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .shell,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .main,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard main.main,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard [data-ajax-shell-main] {
    width: 100% !important;
    max-width: 100vw !important;
    overflow-x: clip !important;
    overscroll-behavior-x: none !important;
    touch-action: pan-y !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-control-home {
    width: 100% !important;
    max-width: min(1540px, calc(100vw - max(36px, env(safe-area-inset-left) + env(safe-area-inset-right)))) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow-x: clip !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-panel {
    grid-template-columns: minmax(124px, .48fr) minmax(0, 1.65fr) minmax(0, 2.05fr) minmax(128px, clamp(132px, 13.5vw, 172px)) !important;
    overflow: hidden !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb.sf-orb-curved-ready {
    width: clamp(128px, 13.5vw, 172px) !important;
    height: clamp(128px, 13.5vw, 172px) !important;
    min-width: 0 !important;
    min-height: 0 !important;
    justify-self: end !important;
  }
}

:is(
  .mission-readiness-orb,
  .command-orb,
  .score-orb,
  .case-score-orb,
  .evidence-custody-orb,
  .report-studio-orb,
  .ops-readiness-orb,
  .qhx-score-orb,
  .public-orb
) {
  container-type: inline-size;
  aspect-ratio: 1 / 1;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  border-radius: 50% !important;
  overflow: hidden !important;
  text-align: center !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

:is(
  .mission-readiness-orb,
  .command-orb,
  .score-orb,
  .case-score-orb,
  .evidence-custody-orb,
  .report-studio-orb,
  .ops-readiness-orb,
  .qhx-score-orb,
  .public-orb
) > :is(strong, .sf-orb-value, .score-value, .value, .number) {
  max-width: 68% !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
  line-height: .86 !important;
  font-size:calc(clamp(.775rem, 15.5cqw, 2.325rem) * var(--sf-bubble-value-scale, 1)) !important;
  letter-spacing: -0.045em !important;
  font-variant-numeric: tabular-nums;
}

:is(
  .mission-readiness-orb,
  .command-orb,
  .score-orb,
  .case-score-orb,
  .evidence-custody-orb,
  .report-studio-orb,
  .ops-readiness-orb,
  .qhx-score-orb,
  .public-orb
) > :is(span, small, .sf-orb-original-label, .sf-orb-original-caption) {
  max-width: 76% !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  line-height: 1.12 !important;
  font-size: calc(clamp(.52rem, 5.5cqw, .78rem) * var(--sf-bubble-text-scale, 1)) !important;
  letter-spacing: min(.16em, 1.4cqw) !important;
}

.sf-orb-curve-mounted > :is(.sf-orb-original-label, .sf-orb-original-caption) {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  clip-path: inset(50%) !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

:is(
  .brand-mark,
  .nav-icon,
  .icon-btn,
  .metric-icon,
  .sentinel-app-badge,
  .sf-os-app-icon,
  .mission-app-icon,
  .evidence-record-icon,
  .case-icon,
  .case-score-mini,
  .score-mini,
  .grade-badge,
  .status-bubble,
  .count-bubble,
  .number-bubble,
  .badge-circle,
  [data-circle-fit]
) {
  container-type: inline-size;
  display: grid !important;
  place-items: center !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-align: center !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  text-overflow: clip !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  font-size: calc(clamp(.52rem, 32cqw, 1rem) * var(--sf-bubble-text-scale, 1)) !important;
  font-variant-numeric: tabular-nums;
}

:is(.sf-os-app-icon, .mission-app-icon, .sentinel-app-badge, .nav-icon, .metric-icon) {
  aspect-ratio: 1 / 1;
}

.sf-bubble-fit-tight { --sf-bubble-text-scale: .86; --sf-bubble-value-scale: .88; }
.sf-bubble-fit-tighter { --sf-bubble-text-scale: .74; --sf-bubble-value-scale: .76; }
.sf-bubble-fit-min { --sf-bubble-text-scale: .64; --sf-bubble-value-scale: .66; }

@media (max-width: 390px) {
  :is(.mission-readiness-orb,.command-orb,.score-orb,.case-score-orb,.evidence-custody-orb,.report-studio-orb,.ops-readiness-orb,.qhx-score-orb,.public-orb) > :is(strong,.sf-orb-value,.score-value,.value,.number) {
    max-width: 62% !important;
  }
  :is(.mission-readiness-orb,.command-orb,.score-orb,.case-score-orb,.evidence-custody-orb,.report-studio-orb,.ops-readiness-orb,.qhx-score-orb,.public-orb) > :is(span,small,.sf-orb-original-label,.sf-orb-original-caption) {
    max-width: 70% !important;
  }
}

.sf-stage-66-7-dashboard-pan-bubble-rootfix-marker{display:none}

/* Stage 66.9 iPad Portrait Entry + Top Gap Rootfix
   Fixes the Stage 66.9 over-broad root pan lock that could make iPad portrait
   pages appear as a blank wallpaper until the user scrolled. The horizontal pan
   lock stays for iPad landscape dashboard only; portrait restores natural iPad
   vertical page entry, deterministic top placement, and viewport-safe app cards. */
@media (orientation: portrait) and (min-width: 721px) and (pointer: coarse) {
  html,
  body,
  body.sf-os-shell-enabled,
  body.sf-os-shell-enabled .shell,
  body.sf-os-shell-enabled .main,
  body.sf-os-shell-enabled main.main,
  body.sf-os-shell-enabled [data-ajax-shell-main] {
    max-width: 100% !important;
    overflow-x: hidden !important;
    overscroll-behavior-x: none !important;
    touch-action: pan-x pan-y !important;
  }

  body.sf-os-shell-enabled .shell {
    display: grid !important;
    grid-template-columns: 92px minmax(0, 1fr) !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 100dvh !important;
    overflow-y: visible !important;
  }

  body.sf-os-shell-enabled.sf-sidebar-rail-hidden .shell {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.sf-os-shell-enabled .main,
  body.sf-os-shell-enabled main.main,
  body.sf-os-shell-enabled [data-ajax-shell-main] {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding-top: calc(72px + env(safe-area-inset-top)) !important;
    padding-right: max(20px, calc(env(safe-area-inset-right) + 16px)) !important;
    padding-left: 22px !important;
    padding-bottom: calc(112px + env(safe-area-inset-bottom)) !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    transform: none !important;
    translate: none !important;
    contain: none !important;
    scroll-padding-top: calc(72px + env(safe-area-inset-top)) !important;
  }

  body.sf-os-shell-enabled.sf-sidebar-rail-hidden .main,
  body.sf-os-shell-enabled.sf-sidebar-rail-hidden main.main,
  body.sf-os-shell-enabled.sf-sidebar-rail-hidden [data-ajax-shell-main] {
    padding-left: max(18px, calc(env(safe-area-inset-left) + 14px)) !important;
  }

  body.sf-os-shell-enabled .topbar {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    margin-top: 0 !important;
    margin-bottom: 18px !important;
    transform: none !important;
    translate: none !important;
    scroll-margin-top: calc(72px + env(safe-area-inset-top)) !important;
  }

  body.sf-os-shell-enabled .main > .sentinel-app-window,
  body.sf-os-shell-enabled main.main > .sentinel-app-window,
  body.sf-os-shell-enabled [data-ajax-shell-main] > .sentinel-app-window,
  body.sf-os-shell-enabled .main > .mission-control-home,
  body.sf-os-shell-enabled main.main > .mission-control-home,
  body.sf-os-shell-enabled [data-ajax-shell-main] > .mission-control-home,
  body.sf-os-shell-enabled .main > .panel,
  body.sf-os-shell-enabled main.main > .panel,
  body.sf-os-shell-enabled [data-ajax-shell-main] > .panel {
    margin-top: 0 !important;
  }

  body.sf-os-shell-enabled .sentinel-app-window,
  body.sf-os-shell-enabled .mission-control-home,
  body.sf-os-shell-enabled .panel,
  body.sf-os-shell-enabled .hero-card,
  body.sf-os-shell-enabled .case-hero {
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
  }
}

/* Keep the strict Stage 66.9 root pan contract only where it was actually needed. */
@media (orientation: landscape) and (min-width: 721px) and (pointer: coarse),
       (orientation: landscape) and (min-width: 1181px) and (max-width: 1400px) and (max-height: 1100px) {
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .shell,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .main,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard main.main,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard [data-ajax-shell-main] {
    max-width: 100vw !important;
    overflow-x: clip !important;
    overscroll-behavior-x: none !important;
    touch-action: pan-y !important;
  }
}

.sf-stage-66-9-ipad-portrait-fixed-rail-rootfix-marker{display:none}

/* Stage 66.9 iPad Portrait Fixed Rail Rootfix
   The compact OS rail must not be part of page scrolling on iPad portrait.
   It is now a fixed, independently scrollable left rail while the main page
   scrolls in its own column. Dock, app library, and horizontal table scrolls
   stay untouched. */
@media (orientation: portrait) and (min-width: 721px) and (pointer: coarse) {
  body.sf-os-shell-enabled .shell {
    grid-template-columns: 92px minmax(0, 1fr) !important;
    min-height: 100dvh !important;
    overflow: visible !important;
  }

  body.sf-os-shell-enabled .sidebar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
    width: 92px !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    z-index: 45 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain !important;
    overscroll-behavior-x: none !important;
    touch-action: pan-y !important;
    transform: translateZ(0) !important;
    will-change: scroll-position !important;
    contain: layout paint style !important;
  }

  body.sf-os-shell-enabled .sidebar .brand-block {
    flex: 0 0 auto !important;
  }

  body.sf-os-shell-enabled .sidebar .nav-stack {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain !important;
    touch-action: pan-y !important;
    padding-bottom: calc(118px + env(safe-area-inset-bottom)) !important;
    scrollbar-width: none !important;
  }

  body.sf-os-shell-enabled .sidebar .nav-stack::-webkit-scrollbar,
  body.sf-os-shell-enabled .sidebar::-webkit-scrollbar {
    display: none !important;
  }

  body.sf-os-shell-enabled .sidebar .side-footer {
    position: absolute !important;
    left: 12px !important;
    right: 12px !important;
    bottom: calc(18px + env(safe-area-inset-bottom)) !important;
    z-index: 2 !important;
  }

  body.sf-os-shell-enabled .main,
  body.sf-os-shell-enabled main.main,
  body.sf-os-shell-enabled [data-ajax-shell-main] {
    grid-column: 2 / -1 !important;
    min-width: 0 !important;
  }

  body.sf-os-shell-enabled .sf-os-systembar {
    left: calc(92px + 18px + env(safe-area-inset-left)) !important;
  }

  body.sf-os-shell-enabled.sf-sidebar-rail-hidden .shell {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.sf-os-shell-enabled.sf-sidebar-rail-hidden .sidebar {
    display: none !important;
  }

  body.sf-os-shell-enabled.sf-sidebar-rail-hidden .main,
  body.sf-os-shell-enabled.sf-sidebar-rail-hidden main.main,
  body.sf-os-shell-enabled.sf-sidebar-rail-hidden [data-ajax-shell-main] {
    grid-column: 1 / -1 !important;
  }
}

.sf-stage-66-9-ipad-portrait-fixed-rail-rootfix-marker{display:none}

/* Stage 66.12 — iPad Portrait Rail Removal Rootfix
   Surgical contract: in every tablet/iPad portrait OS-shell mode, remove the
   left compact sidebar/rail completely. The top system bar and bottom dock
   remain the only navigation chrome; phone/mobile hamburger and iPad landscape
   behavior are left untouched. */
@media (orientation: portrait) and (min-width: 721px) and (max-width: 1400px) {
  body.sf-os-shell-enabled .shell,
  body.sf-os-shell-enabled.sf-sidebar-rail-hidden .shell,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .shell,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .shell {
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
  }

  body.sf-os-shell-enabled .sidebar,
  body.sf-os-shell-enabled .sidebar-scrim,
  body.sf-os-shell-enabled .sf-sidebar-rail-hide,
  body.sf-os-shell-enabled .sf-sidebar-rail-reveal,
  body.sf-os-shell-enabled.sf-sidebar-rail-hidden .sf-sidebar-rail-reveal,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .sf-sidebar-rail-reveal,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .sf-sidebar-rail-reveal {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    transform: none !important;
  }

  body.sf-os-shell-enabled .main,
  body.sf-os-shell-enabled main.main,
  body.sf-os-shell-enabled [data-ajax-shell-main],
  body.sf-os-shell-enabled.sf-sidebar-rail-hidden .main,
  body.sf-os-shell-enabled.sf-sidebar-rail-hidden main.main,
  body.sf-os-shell-enabled.sf-sidebar-rail-hidden [data-ajax-shell-main],
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .main,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail main.main,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail [data-ajax-shell-main] {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: max(18px, calc(env(safe-area-inset-left) + 14px)) !important;
    padding-right: max(18px, calc(env(safe-area-inset-right) + 14px)) !important;
  }

  body.sf-os-shell-enabled .sf-os-systembar,
  body.sf-os-shell-enabled.sf-sidebar-rail-hidden .sf-os-systembar,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .sf-os-systembar {
    left: max(14px, env(safe-area-inset-left)) !important;
    right: max(14px, env(safe-area-inset-right)) !important;
  }
}

.sf-stage-66-10-ipad-portrait-rail-removal-rootfix-marker{display:none}

/* Stage 66.12 — iPad Portrait iPad Sidebar Kill
   After the left rail was removed in portrait, older rail/scrim/chrome layers could
   still win parts of the iPad hit-test stack. This restores an explicit touch
   contract: portrait topbar controls are the top interactive app layer; removed
   rail artifacts cannot receive pointer/touch/click events. */
@media (orientation: portrait) and (min-width: 721px) and (max-width: 1400px) {
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled {
    -webkit-tap-highlight-color: transparent;
  }

  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .sidebar,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .sidebar-scrim,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .sf-sidebar-rail-hide,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .sf-sidebar-rail-reveal,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .sidebar,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .sidebar-scrim,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .sf-sidebar-rail-hide,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .sf-sidebar-rail-reveal {
    position: fixed !important;
    inset: auto !important;
    left: -9999px !important;
    top: -9999px !important;
    z-index: -1 !important;
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    touch-action: none !important;
    user-select: none !important;
    -webkit-user-select: none !important;
    clip-path: inset(50%) !important;
    clip: rect(0 0 0 0) !important;
  }

  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .main,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail main.main,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail [data-ajax-shell-main],
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .main,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled main.main,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled [data-ajax-shell-main] {
    position: relative !important;
    z-index: 10 !important;
    pointer-events: auto !important;
  }

  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .topbar,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .topbar {
    position: relative !important;
    z-index: 2147482050 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
    isolation: isolate !important;
    transform: translateZ(0) !important;
  }

  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .topbar *,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .topbar-actions,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .topbar-actions *,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .topbar *,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .topbar-actions,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .topbar-actions * {
    pointer-events: auto !important;
  }

  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .topbar button,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .topbar a,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .topbar .quick-action,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .topbar .sf-os-toggle,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .topbar .userchip,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .topbar .userchip a,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .topbar button,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .topbar a,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .topbar .quick-action,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .topbar .sf-os-toggle,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .topbar .userchip,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .topbar .userchip a {
    position: relative !important;
    z-index: 2147482051 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
    -webkit-user-select: none;
    user-select: none;
  }

  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .sentinel-app-actions,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .sentinel-app-actions *,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .sentinel-workspace-tabs,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .sentinel-workspace-tabs *,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .sentinel-app-actions,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .sentinel-app-actions *,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .sentinel-workspace-tabs,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .sentinel-workspace-tabs * {
    position: relative !important;
    z-index: 120 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }
}

.sf-stage-66-11-ipad-portrait-top-nav-hitfix-marker{display:none}


/* Stage 66.12 — iPad All-Orientation Sidebar Removal Rootfix
   Surgical contract: on iPad/tablet OS shell, portrait AND landscape must never
   show the full-height left menu/drawer/rail. The top nav/systembar and bottom
   dock remain the navigation surfaces; phones keep their hamburger drawer and
   desktop keeps the normal sidebar. */
@media (min-width: 721px) and (max-width: 1400px) {
  html.sf-ipad-no-sidebar,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar {
    overflow-x: hidden !important;
  }

  body.sf-os-shell-enabled.sf-ipad-no-sidebar .shell,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar.sidebar-open .shell,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .shell,
  html.sf-ipad-no-sidebar.sidebar-open body.sf-os-shell-enabled .shell {
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
  }

  body.sf-os-shell-enabled.sf-ipad-no-sidebar .sidebar,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar.sidebar-open .sidebar,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .sidebar-scrim,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar.sidebar-open .sidebar-scrim,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .sf-sidebar-rail-hide,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .sf-sidebar-rail-reveal,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .menu-btn,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .sidebar,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sidebar-open .sidebar,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .sidebar-scrim,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sidebar-open .sidebar-scrim,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .sf-sidebar-rail-hide,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .sf-sidebar-rail-reveal,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .menu-btn {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    touch-action: none !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    transform: none !important;
    clip-path: inset(50%) !important;
    clip: rect(0 0 0 0) !important;
    z-index: -1 !important;
  }

  body.sf-os-shell-enabled.sf-ipad-no-sidebar .main,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar main.main,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar [data-ajax-shell-main],
  body.sf-os-shell-enabled.sf-ipad-no-sidebar.sidebar-open .main,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar.sidebar-open main.main,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar.sidebar-open [data-ajax-shell-main],
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .main,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled main.main,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled [data-ajax-shell-main] {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 1540px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: max(18px, calc(env(safe-area-inset-left) + 14px)) !important;
    padding-right: max(18px, calc(env(safe-area-inset-right) + 14px)) !important;
    pointer-events: auto !important;
  }

  body.sf-os-shell-enabled.sf-ipad-no-sidebar .sf-os-systembar,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .sf-os-systembar {
    left: max(14px, env(safe-area-inset-left)) !important;
    right: max(14px, env(safe-area-inset-right)) !important;
    pointer-events: auto !important;
  }

  body.sf-os-shell-enabled.sf-ipad-no-sidebar .topbar,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .topbar-actions,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar-actions {
    position: relative !important;
    z-index: 2147482050 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
    isolation: isolate !important;
  }

  body.sf-os-shell-enabled.sf-ipad-no-sidebar .topbar button,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .topbar a,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .topbar .quick-action,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .userchip,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .userchip a,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar button,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar a,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar .quick-action,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .userchip,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .userchip a {
    position: relative !important;
    z-index: 2147482051 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }
}

@media (min-width: 721px) and (max-width: 1400px) and (pointer: coarse) {
  body.sf-os-shell-enabled .shell {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  body.sf-os-shell-enabled .sidebar,
  body.sf-os-shell-enabled.sidebar-open .sidebar,
  body.sf-os-shell-enabled .sidebar-scrim,
  body.sf-os-shell-enabled.sidebar-open .sidebar-scrim,
  body.sf-os-shell-enabled .menu-btn,
  body.sf-os-shell-enabled .sf-sidebar-rail-hide,
  body.sf-os-shell-enabled .sf-sidebar-rail-reveal {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
  body.sf-os-shell-enabled .main,
  body.sf-os-shell-enabled main.main,
  body.sf-os-shell-enabled [data-ajax-shell-main] {
    grid-column: 1 / -1 !important;
  }
}

.sf-stage-66-12-ipad-all-orientation-sidebar-removal-rootfix-marker{display:none}


/* Stage 66.13 — iPad Landscape Mission Control Responsive Rootfix
   The dashboard hero was inheriting an oversized desktop canvas on iPad landscape:
   the clock wrapped, the command bar ellipsized, the headline became too large,
   and the glass panel consumed too much vertical space above the dock. This is a
   tablet-specific composition contract only for the Dashboard/Mission Control page. */
@media (orientation: landscape) and (min-width: 721px) and (max-width: 1400px) {
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard.sf-ipad-no-sidebar,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard {
    --sf-ipad-landscape-hero-pad-x: clamp(20px, 2.25vw, 30px);
    --sf-ipad-landscape-hero-pad-y: clamp(20px, 2.05vw, 28px);
    --sf-ipad-landscape-hero-gap: clamp(14px, 1.55vw, 20px);
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .main,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard main.main,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard [data-ajax-shell-main],
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .main,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard main.main,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard [data-ajax-shell-main] {
    width: 100% !important;
    max-width: none !important;
    padding-left: max(18px, calc(env(safe-area-inset-left) + 16px)) !important;
    padding-right: max(18px, calc(env(safe-area-inset-right) + 16px)) !important;
    padding-bottom: calc(92px + env(safe-area-inset-bottom)) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-control-home,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-control-home {
    width: 100% !important;
    max-width: min(1180px, calc(100vw - max(36px, env(safe-area-inset-left) + env(safe-area-inset-right) + 32px))) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    gap: clamp(16px, 1.7vw, 22px) !important;
    overflow-x: clip !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-panel,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-panel {
    display: grid !important;
    grid-template-columns: minmax(132px, 158px) minmax(350px, 520px) minmax(128px, 1fr) !important;
    grid-template-areas:
      "clock command command"
      "copy  copy    orb" !important;
    align-items: stretch !important;
    gap: var(--sf-ipad-landscape-hero-gap) !important;
    min-height: 0 !important;
    height: auto !important;
    padding: var(--sf-ipad-landscape-hero-pad-y) var(--sf-ipad-landscape-hero-pad-x) !important;
    border-radius: clamp(28px, 2.35vw, 34px) !important;
    overflow: hidden !important;
  }

  /* Stage 68.76 — the clock/density/readiness widgets are organised under an
     intermediate .mission-hero-utility wrapper for the desktop/mobile grid,
     but THIS named-area layout requires clock/orb to be direct grid items of
     .mission-hero-panel: grid-area has no effect on a grandchild. Collapsing
     the wrapper to display:contents here (and only here) lets its children
     participate directly, without touching its role at any other breakpoint. */
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-utility,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-utility {
    display: contents !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-clock-card,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-analog-clock-orb {
    grid-area: clock !important;
    min-width: 0 !important;
    width: 100% !important;
    min-height: clamp(112px, 15vh, 146px) !important;
    height: auto !important;
    padding: clamp(14px, 1.55vw, 18px) !important;
    align-content: center !important;
    border-radius: clamp(22px, 2vw, 26px) !important;
  }
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-analog-clock-orb .mission-analog-clock {
    width: clamp(46px, 8vh, 66px) !important;
    height: clamp(46px, 8vh, 66px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-clock-card strong {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    font-size: clamp(2rem, 3.75vw, 3.05rem) !important;
    line-height: .9 !important;
    letter-spacing: -0.06em !important;
    font-variant-numeric: tabular-nums !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-clock-card span {
    display: block !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.35 !important;
    font-size: clamp(.78rem, 1.12vw, .92rem) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-command-bar {
    grid-area: command !important;
    min-width: 0 !important;
    width: 100% !important;
    min-height: clamp(112px, 15vh, 146px) !important;
    grid-template-columns: clamp(36px, 4vw, 46px) minmax(0, 1fr) !important;
    column-gap: clamp(12px, 1.45vw, 16px) !important;
    align-content: center !important;
    padding: clamp(15px, 1.75vw, 20px) !important;
    border-radius: clamp(22px, 2vw, 26px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-command-bar > span {
    width: clamp(36px, 4vw, 46px) !important;
    height: clamp(36px, 4vw, 46px) !important;
    border-radius: clamp(13px, 1.45vw, 17px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-command-bar strong {
    display: block !important;
    max-width: 100% !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    font-size: clamp(.98rem, 1.45vw, 1.18rem) !important;
    line-height: 1.28 !important;
    letter-spacing: -0.015em !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-command-bar small {
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    font-size: clamp(.78rem, 1.05vw, .92rem) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-copy,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-copy {
    grid-area: copy !important;
    align-self: center !important;
    min-width: 0 !important;
    max-width: 760px !important;
    padding-top: clamp(2px, .6vw, 8px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-copy h2 {
    max-width: 760px !important;
    font-size: clamp(2.65rem, 4.85vw, 4.65rem) !important;
    line-height: 1.01 !important;
    letter-spacing: -0.052em !important;
    word-spacing: .018em !important;
    margin: 0 !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-copy p:not(.eyebrow) {
    max-width: 720px !important;
    margin-top: clamp(10px, 1.15vw, 14px) !important;
    font-size: clamp(.9rem, 1.12vw, 1.02rem) !important;
    line-height: 1.52 !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-copy .eyebrow {
    margin-bottom: clamp(10px, 1.1vw, 14px) !important;
    font-size: clamp(.66rem, .92vw, .78rem) !important;
    letter-spacing: .18em !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb.sf-orb-curved-ready,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb.sf-orb-curved-ready {
    grid-area: orb !important;
    grid-column: auto !important;
    justify-self: end !important;
    align-self: end !important;
    width: clamp(116px, 12.3vw, 146px) !important;
    height: clamp(116px, 12.3vw, 146px) !important;
    min-width: clamp(116px, 12.3vw, 146px) !important;
    min-height: clamp(116px, 12.3vw, 146px) !important;
    margin: 0 !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb > strong,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb.sf-orb-curved-ready > strong {
    font-size:clamp(1.175rem, 2.55vw, 1.675rem) !important;
    line-height: .84 !important;
  }
}

@media (orientation: landscape) and (min-width: 721px) and (max-width: 980px) {
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-panel,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-panel {
    grid-template-columns: minmax(116px, 140px) minmax(0, 1fr) !important;
    grid-template-areas:
      "clock command"
      "copy  copy"
      "orb   orb" !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb.sf-orb-curved-ready {
    justify-self: start !important;
    width: clamp(108px, 15vw, 126px) !important;
    height: clamp(108px, 15vw, 126px) !important;
    min-width: clamp(108px, 15vw, 126px) !important;
    min-height: clamp(108px, 15vw, 126px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-copy h2 {
    font-size: clamp(2.35rem, 5.6vw, 3.55rem) !important;
  }
}

@media (orientation: landscape) and (min-width: 721px) and (max-width: 1400px) and (max-height: 820px) {
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-control-home,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-control-home {
    gap: clamp(14px, 1.4vw, 18px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-panel,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-panel {
    padding: clamp(18px, 1.95vw, 24px) !important;
    gap: clamp(12px, 1.25vw, 16px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-clock-card,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-analog-clock-orb,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-command-bar {
    min-height: clamp(102px, 14vh, 124px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-copy h2 {
    font-size: clamp(2.45rem, 4.65vw, 4rem) !important;
    line-height: 1.02 !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-copy p:not(.eyebrow) {
    font-size: .92rem !important;
    line-height: 1.48 !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb.sf-orb-curved-ready {
    width: clamp(106px, 12vw, 130px) !important;
    height: clamp(106px, 12vw, 130px) !important;
    min-width: clamp(106px, 12vw, 130px) !important;
    min-height: clamp(106px, 12vw, 130px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb > strong,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb.sf-orb-curved-ready > strong {
    font-size:clamp(1.075rem, 2.325vw, 1.525rem) !important;
  }
}

.sf-stage-66-13-ipad-landscape-mission-responsive-rootfix-marker{display:none}


/* Stage 66.14 — iPad Landscape Mission Density + Navigation Stability Rootfix
   This is a stronger tablet-specific layout contract. Stage 66.13 reduced the
   oversized dashboard hero, but on iPad landscape the mission surface still left
   a huge dead right zone and kept desktop-scale text. This pass makes the hero
   compact, distributes the command card and readiness orb correctly, and keeps
   the next dashboard surfaces in a tablet rhythm above the dock. */
@media (orientation: landscape) and (min-width: 721px) and (max-width: 1400px) and (pointer: coarse) {
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .main,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard main.main,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard [data-ajax-shell-main],
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .main,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard main.main,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard [data-ajax-shell-main] {
    padding-top: max(18px, calc(env(safe-area-inset-top) + 14px)) !important;
    padding-left: max(20px, calc(env(safe-area-inset-left) + 18px)) !important;
    padding-right: max(20px, calc(env(safe-area-inset-right) + 18px)) !important;
    padding-bottom: calc(106px + env(safe-area-inset-bottom)) !important;
    overflow-x: clip !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-control-home,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-control-home {
    max-width: min(1088px, calc(100vw - 44px - env(safe-area-inset-left) - env(safe-area-inset-right))) !important;
    gap: clamp(14px, 1.45vw, 18px) !important;
    margin-inline: auto !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-panel,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-panel {
    grid-template-columns: minmax(118px, 146px) minmax(0, 1fr) minmax(108px, 132px) !important;
    grid-template-areas:
      "clock command orb"
      "copy  copy    orb" !important;
    align-items: center !important;
    gap: clamp(12px, 1.25vw, 16px) !important;
    padding: clamp(16px, 1.75vw, 22px) !important;
    min-height: 0 !important;
    border-radius: clamp(26px, 2.2vw, 32px) !important;
    box-shadow: inset 0 1px rgba(255,255,255,.07), 0 22px 72px rgba(0,0,0,.24) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-panel:before,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-panel:before {
    opacity: .18 !important;
    background-size: 58px 58px !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-clock-card,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-analog-clock-orb,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-command-bar {
    min-height: clamp(92px, 12.6vh, 118px) !important;
    border-radius: clamp(20px, 1.75vw, 24px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-clock-card,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-analog-clock-orb {
    padding: clamp(12px, 1.25vw, 16px) !important;
  }
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-analog-clock-orb .mission-analog-clock {
    width: clamp(38px, 7vh, 54px) !important;
    height: clamp(38px, 7vh, 54px) !important;
  }
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-analog-clock-orb small {
    font-size: clamp(.74rem, .96vw, .86rem) !important;
    line-height: 1.35 !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-clock-card strong {
    font-size: clamp(2rem, 3.25vw, 2.75rem) !important;
    line-height: .9 !important;
    letter-spacing: -.055em !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-clock-card span {
    font-size: clamp(.74rem, .96vw, .86rem) !important;
    line-height: 1.35 !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-command-bar {
    grid-template-columns: clamp(34px, 3.25vw, 42px) minmax(0, 1fr) !important;
    column-gap: clamp(10px, 1.15vw, 14px) !important;
    padding: clamp(13px, 1.35vw, 17px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-command-bar > span {
    width: clamp(34px, 3.25vw, 42px) !important;
    height: clamp(34px, 3.25vw, 42px) !important;
    border-radius: clamp(12px, 1.25vw, 15px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-command-bar strong {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: anywhere !important;
    font-size: clamp(.92rem, 1.22vw, 1.08rem) !important;
    line-height: 1.26 !important;
    letter-spacing: -.012em !important;
    max-width: 100% !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-command-bar small {
    font-size: clamp(.72rem, .92vw, .82rem) !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-copy,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-copy {
    max-width: none !important;
    align-self: center !important;
    padding-top: 0 !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-copy .eyebrow {
    margin-bottom: clamp(8px, .85vw, 11px) !important;
    font-size: clamp(.61rem, .78vw, .72rem) !important;
    letter-spacing: .18em !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-copy h2 {
    max-width: 740px !important;
    font-size: clamp(2.25rem, 3.95vw, 3.45rem) !important;
    line-height: 1.03 !important;
    letter-spacing: -.047em !important;
    word-spacing: .02em !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-copy p:not(.eyebrow) {
    max-width: 690px !important;
    margin-top: clamp(8px, .9vw, 12px) !important;
    font-size: clamp(.84rem, .98vw, .94rem) !important;
    line-height: 1.46 !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb.sf-orb-curved-ready,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb.sf-orb-curved-ready {
    grid-area: orb !important;
    grid-column: auto !important;
    justify-self: end !important;
    align-self: center !important;
    width: clamp(104px, 10.2vw, 128px) !important;
    height: clamp(104px, 10.2vw, 128px) !important;
    min-width: clamp(104px, 10.2vw, 128px) !important;
    min-height: clamp(104px, 10.2vw, 128px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb span,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb small {
    font-size: clamp(.54rem, .72vw, .64rem) !important;
    line-height: 1.1 !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb > strong,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb.sf-orb-curved-ready > strong {
    font-size:clamp(1rem, 1.9vw, 1.375rem) !important;
    line-height: .84 !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-desktop-grid,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-desktop-grid {
    grid-template-columns: 1fr !important;
    gap: clamp(14px, 1.35vw, 18px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-widget-column,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-widget-column {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: clamp(10px, 1.15vw, 14px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-widget {
    min-height: 88px !important;
    padding: clamp(12px, 1.2vw, 15px) !important;
    border-radius: clamp(18px, 1.65vw, 22px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-widget strong {
    font-size: clamp(1rem, 1.45vw, 1.26rem) !important;
    line-height: 1.08 !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-main-surface {
    padding: clamp(15px, 1.55vw, 20px) !important;
    border-radius: clamp(22px, 1.9vw, 28px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-surface-head {
    margin-bottom: clamp(12px, 1.2vw, 16px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-surface-head h3 {
    font-size: clamp(1.25rem, 1.7vw, 1.55rem) !important;
    line-height: 1.1 !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-app-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: clamp(10px, 1.05vw, 13px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-app-tile {
    min-height: 150px !important;
    padding: clamp(12px, 1.2vw, 15px) !important;
    border-radius: clamp(20px, 1.7vw, 24px) !important;
    gap: 8px !important;
  }

  /* Stage 68.57 — iPad-landscape Command Center icons at Apple-launcher scale.
     This selector outranks the aurora-control-centre base rule (0,3,1 vs 0,3,0),
     so the size must be raised here, not only there. */
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-app-icon {
    width: clamp(80px, 7.2vw, 98px) !important;
    height: clamp(80px, 7.2vw, 98px) !important;
    border-radius: clamp(24px, 2.15vw, 29px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-app-icon svg {
    width: clamp(47px, 4.25vw, 58px) !important;
    height: clamp(47px, 4.25vw, 58px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-app-copy strong {
    font-size: clamp(.88rem, 1.05vw, .98rem) !important;
    line-height: 1.1 !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-app-copy small,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-app-tile em {
    font-size: clamp(.68rem, .82vw, .76rem) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-kpi-strip {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: clamp(9px, 1vw, 12px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-kpi-strip article {
    min-height: 86px !important;
    padding: clamp(11px, 1.05vw, 14px) !important;
    border-radius: clamp(18px, 1.55vw, 22px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-kpi-strip strong {
    font-size: clamp(1.58rem, 2.45vw, 2.2rem) !important;
    line-height: .9 !important;
  }
}

@media (orientation: landscape) and (min-width: 721px) and (max-width: 1100px) and (pointer: coarse) {
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-control-home,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-control-home {
    max-width: calc(100vw - 34px - env(safe-area-inset-left) - env(safe-area-inset-right)) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-panel,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-panel {
    grid-template-columns: minmax(112px, 132px) minmax(0, 1fr) !important;
    grid-template-areas:
      "clock command"
      "copy  copy"
      "orb   orb" !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb.sf-orb-curved-ready {
    justify-self: start !important;
    width: clamp(96px, 12.5vw, 112px) !important;
    height: clamp(96px, 12.5vw, 112px) !important;
    min-width: clamp(96px, 12.5vw, 112px) !important;
    min-height: clamp(96px, 12.5vw, 112px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-copy h2 {
    max-width: 680px !important;
    font-size: clamp(2.05rem, 4.35vw, 2.95rem) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-widget-column,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-kpi-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-app-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (orientation: landscape) and (min-width: 721px) and (max-width: 1400px) and (max-height: 760px) and (pointer: coarse) {
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-panel,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-panel {
    padding: clamp(14px, 1.45vw, 18px) !important;
    gap: clamp(10px, 1vw, 14px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-clock-card,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-analog-clock-orb,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-command-bar {
    min-height: clamp(82px, 12vh, 104px) !important;
  }
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-analog-clock-orb .mission-analog-clock {
    width: clamp(32px, 6vh, 44px) !important;
    height: clamp(32px, 6vh, 44px) !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-copy h2 {
    font-size: clamp(2rem, 3.55vw, 3.08rem) !important;
    line-height: 1.035 !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-hero-copy p:not(.eyebrow) {
    font-size: clamp(.8rem, .9vw, .88rem) !important;
    line-height: 1.42 !important;
  }

  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb,
  body.sf-os-shell-enabled.sf-os-shell-module-dashboard .mission-readiness-orb.sf-orb-curved-ready {
    width: clamp(94px, 9.4vw, 114px) !important;
    height: clamp(94px, 9.4vw, 114px) !important;
    min-width: clamp(94px, 9.4vw, 114px) !important;
    min-height: clamp(94px, 9.4vw, 114px) !important;
  }
}

.sf-stage-66-14-ipad-landscape-mission-density-nav-stability-rootfix-marker{display:none}

/* Stage 66.15 — iPad Portrait Workspace Tabs Rootfix
   Contract: the horizontal section menus such as Overview / Filters / Ledger / Detail
   must never float across the hero or stick over content on iPad portrait. They are
   ordinary contained segmented scrollers between the app chrome and page content. */
@media (orientation: portrait) and (min-width: 721px) and (max-width: 1400px) and (pointer: coarse) {
  body.sf-os-shell-enabled .sentinel-app-window,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .sentinel-app-window,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .sentinel-app-window {
    overflow-x: hidden !important;
    overflow-y: visible !important;
    isolation: isolate !important;
  }

  body.sf-os-shell-enabled .sentinel-app-chrome,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .sentinel-app-chrome,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .sentinel-app-chrome {
    position: relative !important;
    z-index: 3 !important;
  }

  body.sf-os-shell-enabled .sentinel-workspace-tabs,
  body.sf-os-shell-enabled .workspace-tabs,
  body.sf-os-shell-enabled .case-workspace-tabs,
  body.sf-os-shell-enabled .tabs.dossier-tabs,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .sentinel-workspace-tabs,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .workspace-tabs,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .case-workspace-tabs,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .tabs.dossier-tabs,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .sentinel-workspace-tabs,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .workspace-tabs,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .case-workspace-tabs,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .tabs.dossier-tabs {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    z-index: 2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: clamp(7px, 1.05vw, 10px) !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: clamp(46px, 5.4vw, 58px) !important;
    margin: clamp(12px, 1.8vw, 18px) 0 clamp(16px, 2vw, 22px) !important;
    padding: clamp(7px, .95vw, 10px) !important;
    border-radius: clamp(20px, 2.5vw, 28px) !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    background: linear-gradient(180deg, rgba(13,18,30,.76), rgba(7,10,18,.54)) !important;
    box-shadow: inset 0 1px rgba(255,255,255,.06), 0 12px 34px rgba(0,0,0,.16) !important;
    -webkit-backdrop-filter: blur(22px) saturate(1.05) !important;
    backdrop-filter: blur(22px) saturate(1.05) !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
    transform: none !important;
    translate: none !important;
    pointer-events: auto !important;
    touch-action: pan-x !important;
    overscroll-behavior-x: contain !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }

  body.sf-os-shell-enabled .sentinel-workspace-tabs::-webkit-scrollbar,
  body.sf-os-shell-enabled .workspace-tabs::-webkit-scrollbar,
  body.sf-os-shell-enabled .case-workspace-tabs::-webkit-scrollbar,
  body.sf-os-shell-enabled .tabs.dossier-tabs::-webkit-scrollbar {
    display: none !important;
  }

  body.sf-os-shell-enabled .sentinel-workspace-tabs *,
  body.sf-os-shell-enabled .workspace-tabs *,
  body.sf-os-shell-enabled .case-workspace-tabs *,
  body.sf-os-shell-enabled .tabs.dossier-tabs *,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .sentinel-workspace-tabs *,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .workspace-tabs *,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .case-workspace-tabs *,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .tabs.dossier-tabs *,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .sentinel-workspace-tabs *,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .workspace-tabs *,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .case-workspace-tabs *,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .tabs.dossier-tabs * {
    z-index: auto !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }

  body.sf-os-shell-enabled .sentinel-workspace-tabs a,
  body.sf-os-shell-enabled .workspace-tabs a,
  body.sf-os-shell-enabled .case-workspace-tabs a,
  body.sf-os-shell-enabled .tabs.dossier-tabs a,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .sentinel-workspace-tabs a,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .workspace-tabs a,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .case-workspace-tabs a,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .tabs.dossier-tabs a,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .sentinel-workspace-tabs a,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .workspace-tabs a,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .case-workspace-tabs a,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .tabs.dossier-tabs a {
    flex: 0 0 auto !important;
    min-width: max-content !important;
    min-height: clamp(34px, 4vw, 42px) !important;
    padding: 0 clamp(12px, 1.65vw, 16px) !important;
    border-radius: 999px !important;
    font-size: clamp(.78rem, 1.55vw, .92rem) !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    text-align: center !important;
    transform: none !important;
  }

  body.sf-os-shell-enabled .sentinel-workspace-tabs + .sentinel-app-workspace,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .sentinel-workspace-tabs + .sentinel-app-workspace,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .sentinel-workspace-tabs + .sentinel-app-workspace {
    position: relative !important;
    z-index: 1 !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
  }

  body.sf-os-shell-enabled .sentinel-workspace-section,
  body.sf-os-shell-enabled .sentinel-app-workspace > section[id],
  body.sf-os-shell-enabled .sentinel-app-workspace .panel[id],
  body.sf-os-shell-enabled section[id],
  body.sf-os-shell-enabled .panel[id] {
    scroll-margin-top: calc(96px + env(safe-area-inset-top)) !important;
  }
}

.sf-stage-66-15-ipad-portrait-workspace-tabs-rootfix-marker{display:none}

/* Stage 66.16 — iPad Topbar Separation Rootfix
   Contract: on iPad/tablet landscape, the fixed SENTINEL OS systembar and the
   in-page admin topbar must be two separate chrome layers. The page topbar must
   never slide under, overlap, or visually merge into the systembar after AJAX
   navigation, rotation, PWA restore, or cache refresh. */
@media (orientation: landscape) and (min-width: 721px) and (max-width: 1400px) and (pointer: coarse) {
  body.sf-os-shell-enabled,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled {
    --sf-stage-66-16-systembar-fallback-bottom: calc(12px + env(safe-area-inset-top) + 52px);
    --sf-stage-66-16-systembar-bottom: var(--sf-stage-66-16-systembar-fallback-bottom);
    --sf-stage-66-16-topbar-gap: clamp(18px, 2.25vh, 28px);
    --sf-stage-66-16-page-top-clearance: calc(var(--sf-stage-66-16-systembar-bottom) + var(--sf-stage-66-16-topbar-gap));
  }

  body.sf-os-shell-enabled .sf-os-systembar,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .sf-os-systembar {
    position: fixed !important;
    top: calc(12px + env(safe-area-inset-top)) !important;
    left: max(14px, env(safe-area-inset-left)) !important;
    right: max(14px, env(safe-area-inset-right)) !important;
    min-height: 46px !important;
    height: auto !important;
    z-index: 2147483100 !important;
    pointer-events: auto !important;
    transform: translateZ(0) !important;
    contain: none !important;
  }

  body.sf-os-shell-enabled .main,
  body.sf-os-shell-enabled main.main,
  body.sf-os-shell-enabled [data-ajax-shell-main],
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .main,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar main.main,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar [data-ajax-shell-main],
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .main,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled main.main,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled [data-ajax-shell-main] {
    padding-top: var(--sf-stage-66-16-page-top-clearance) !important;
    scroll-padding-top: var(--sf-stage-66-16-page-top-clearance) !important;
  }

  body.sf-os-shell-enabled .main > header.topbar:first-child,
  body.sf-os-shell-enabled main.main > header.topbar:first-child,
  body.sf-os-shell-enabled [data-ajax-shell-main] > header.topbar:first-child,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .main > header.topbar:first-child,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar main.main > header.topbar:first-child,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar [data-ajax-shell-main] > header.topbar:first-child,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .main > header.topbar:first-child,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled main.main > header.topbar:first-child,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled [data-ajax-shell-main] > header.topbar:first-child {
    position: relative !important;
    z-index: 120 !important;
    margin-top: 0 !important;
    margin-bottom: clamp(22px, 2.2vh, 32px) !important;
    transform: none !important;
    translate: none !important;
    isolation: isolate !important;
  }

  body.sf-os-shell-enabled .topbar,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar {
    align-items: flex-start !important;
    gap: clamp(14px, 1.5vw, 24px) !important;
  }

  body.sf-os-shell-enabled .topbar-left,
  body.sf-os-shell-enabled .topbar-actions,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar-left,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar-actions {
    min-width: 0 !important;
  }

  body.sf-os-shell-enabled .topbar-actions,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar-actions {
    max-width: min(72vw, 820px) !important;
    gap: clamp(8px, .9vw, 12px) !important;
  }

  body.sf-os-shell-enabled .topbar h1,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar h1 {
    font-size: clamp(2rem, 3vw, 3rem) !important;
    line-height: .98 !important;
  }

  body.sf-os-shell-enabled .topbar .quick-action,
  body.sf-os-shell-enabled .topbar .userchip,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar .quick-action,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar .userchip {
    min-height: clamp(38px, 4.2vw, 44px) !important;
  }
}

@media (orientation: landscape) and (min-width: 721px) and (max-width: 1400px) and (max-height: 780px) and (pointer: coarse) {
  body.sf-os-shell-enabled,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled {
    --sf-stage-66-16-topbar-gap: clamp(14px, 1.9vh, 22px);
  }

  body.sf-os-shell-enabled .topbar,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar {
    padding-top: clamp(12px, 1.2vw, 16px) !important;
    padding-bottom: clamp(12px, 1.2vw, 16px) !important;
  }

  body.sf-os-shell-enabled .topbar h1,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar h1 {
    font-size: clamp(1.86rem, 2.65vw, 2.65rem) !important;
  }
}

.sf-stage-66-16-ipad-topbar-separation-rootfix-marker{display:none}

/* Stage 66.17 — iPad Hard Topbar Clearance Rootfix
   The previous 66.16 media gate could miss real iPad/PWA landscape sessions, so
   this contract is intentionally broad for tablet-width landscape OS shell. The
   page admin topbar is physically pushed below the fixed SENTINEL OS systembar;
   the bars are not allowed to share the same y-band. */
@media (orientation: landscape) and (min-width: 721px) and (max-width: 1400px) {
  body.sf-os-shell-enabled,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled {
    --sf-stage-66-17-safe-top: env(safe-area-inset-top);
    --sf-stage-66-17-systembar-bottom-fallback: calc(86px + var(--sf-stage-66-17-safe-top));
    --sf-stage-66-17-topbar-gap: clamp(22px, 2.8vh, 34px);
    --sf-stage-66-17-live-clearance: calc(var(--sf-stage-66-17-systembar-bottom, var(--sf-stage-66-17-systembar-bottom-fallback)) + var(--sf-stage-66-17-topbar-gap));
    overflow-x: hidden !important;
  }

  body.sf-os-shell-enabled .sf-os-systembar,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .sf-os-systembar,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .sf-os-systembar {
    position: fixed !important;
    top: calc(12px + env(safe-area-inset-top)) !important;
    left: max(14px, env(safe-area-inset-left)) !important;
    right: max(14px, env(safe-area-inset-right)) !important;
    z-index: 2147483600 !important;
    pointer-events: auto !important;
    transform: translateZ(0) !important;
    contain: none !important;
  }

  body.sf-os-shell-enabled .main,
  body.sf-os-shell-enabled main.main,
  body.sf-os-shell-enabled [data-ajax-shell-main],
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .main,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar main.main,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar [data-ajax-shell-main],
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .main,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled main.main,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled [data-ajax-shell-main] {
    padding-top: var(--sf-stage-66-17-live-clearance) !important;
    scroll-padding-top: var(--sf-stage-66-17-live-clearance) !important;
    overflow-x: hidden !important;
    transform: none !important;
    translate: none !important;
    contain: none !important;
  }

  body.sf-os-shell-enabled .main > header.topbar:first-child,
  body.sf-os-shell-enabled main.main > header.topbar:first-child,
  body.sf-os-shell-enabled [data-ajax-shell-main] > header.topbar:first-child,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .main > header.topbar:first-child,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar main.main > header.topbar:first-child,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar [data-ajax-shell-main] > header.topbar:first-child,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .main > header.topbar:first-child,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled main.main > header.topbar:first-child,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled [data-ajax-shell-main] > header.topbar:first-child {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    z-index: 120 !important;
    margin-top: 0 !important;
    margin-bottom: clamp(24px, 2.7vh, 34px) !important;
    transform: none !important;
    translate: none !important;
    isolation: isolate !important;
  }

  body.sf-os-shell-enabled .topbar,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .topbar,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar {
    display: grid !important;
    grid-template-columns: minmax(230px, 1fr) minmax(0, auto) !important;
    align-items: center !important;
    gap: clamp(12px, 1.5vw, 22px) !important;
    min-height: clamp(62px, 7vh, 78px) !important;
    padding: clamp(12px, 1.35vw, 18px) clamp(16px, 1.8vw, 24px) !important;
    border-radius: clamp(24px, 2.5vw, 32px) !important;
  }

  body.sf-os-shell-enabled .topbar-left,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .topbar-left,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar-left {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body.sf-os-shell-enabled .topbar h1,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .topbar h1,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar h1 {
    font-size: clamp(1.85rem, 3.2vw, 3rem) !important;
    line-height: .98 !important;
    white-space: normal !important;
  }

  body.sf-os-shell-enabled .topbar-actions,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .topbar-actions,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar-actions {
    position: relative !important;
    z-index: 121 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex-wrap: nowrap !important;
    gap: clamp(7px, .9vw, 11px) !important;
    width: auto !important;
    max-width: min(69vw, 860px) !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    touch-action: pan-x !important;
  }

  body.sf-os-shell-enabled .topbar-actions::-webkit-scrollbar,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .topbar-actions::-webkit-scrollbar,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar-actions::-webkit-scrollbar {
    display: none !important;
  }

  body.sf-os-shell-enabled .topbar .quick-action,
  body.sf-os-shell-enabled .topbar .userchip,
  body.sf-os-shell-enabled .topbar .icon-btn,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .topbar .quick-action,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .topbar .userchip,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .topbar .icon-btn,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar .quick-action,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar .userchip,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar .icon-btn {
    flex: 0 0 auto !important;
    min-height: clamp(38px, 4.4vw, 44px) !important;
    white-space: nowrap !important;
    position: relative !important;
    z-index: auto !important;
  }

  body.sf-os-shell-enabled .topbar .userchip,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .topbar .userchip,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar .userchip {
    flex-wrap: nowrap !important;
    max-width: none !important;
    overflow: visible !important;
  }

  body.sf-os-shell-enabled .topbar .userchip a,
  body.sf-os-shell-enabled .topbar .userchip span,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .topbar .userchip a,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .topbar .userchip span,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar .userchip a,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar .userchip span {
    white-space: nowrap !important;
  }
}

@media (orientation: landscape) and (min-width: 721px) and (max-width: 980px) {
  body.sf-os-shell-enabled .topbar,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .topbar,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar {
    grid-template-columns: 1fr !important;
    align-items: start !important;
  }

  body.sf-os-shell-enabled .topbar-actions,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .topbar-actions,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .topbar-actions {
    justify-content: flex-start !important;
    max-width: 100% !important;
  }
}

.sf-stage-66-17-ipad-hard-topbar-clearance-rootfix-marker{display:none}

/* Stage 66.18 — Workspace Anchor Scroll Rootfix
   Contract: segmented workspace menus (Overview / Generate / Ledger / Detail / etc.)
   must not native-hash scroll and then bounce back to the top on iPad/PWA. JS owns
   anchor positioning; CSS only provides stable target margins and prevents smooth
   animation from fighting delayed iOS relayout. */
html.sf-workspace-tab-scroll-active,
html.sf-workspace-tab-scroll-active body {
  scroll-behavior: auto !important;
}
body.sf-os-shell-enabled .sentinel-workspace-section,
body.sf-os-shell-enabled .sentinel-app-workspace > section[id],
body.sf-os-shell-enabled .sentinel-app-workspace .panel[id],
body.sf-os-shell-enabled section[id].sentinel-workspace-section,
body.sf-os-shell-enabled .report-studio-card[id],
body.sf-os-shell-enabled .panel[id] {
  scroll-margin-top: calc(110px + env(safe-area-inset-top)) !important;
}
@media (orientation: landscape) and (min-width: 721px) and (max-width: 1400px) {
  body.sf-os-shell-enabled .sentinel-workspace-section,
  body.sf-os-shell-enabled .sentinel-app-workspace > section[id],
  body.sf-os-shell-enabled .sentinel-app-workspace .panel[id],
  body.sf-os-shell-enabled section[id].sentinel-workspace-section,
  body.sf-os-shell-enabled .report-studio-card[id],
  body.sf-os-shell-enabled .panel[id] {
    scroll-margin-top: calc(var(--sf-stage-66-17-live-clearance, 118px) + 18px) !important;
  }
}
@media (orientation: portrait) and (min-width: 721px) and (max-width: 1400px) {
  body.sf-os-shell-enabled .sentinel-workspace-section,
  body.sf-os-shell-enabled .sentinel-app-workspace > section[id],
  body.sf-os-shell-enabled .sentinel-app-workspace .panel[id],
  body.sf-os-shell-enabled section[id].sentinel-workspace-section,
  body.sf-os-shell-enabled .report-studio-card[id],
  body.sf-os-shell-enabled .panel[id] {
    scroll-margin-top: calc(104px + env(safe-area-inset-top)) !important;
  }
}
.sf-stage-66-18-workspace-anchor-scroll-rootfix-marker{display:none}


/* Stage 66.19 — iPad App Library Quick Actions Docklet Rootfix companion.
   Keeps App Library quick actions visible on iPad portrait and landscape without
   stealing grid real estate: compact glass ribbon, horizontal action chips, and
   enough scroll padding above the bottom dock. */
@media (min-width: 721px) and (max-width: 1400px) {
  body.sf-os-shell-enabled .sf-os-launcher-panel.sf-os-app-library {
    scroll-padding-bottom: calc(124px + env(safe-area-inset-bottom)) !important;
    padding-bottom: calc(112px + env(safe-area-inset-bottom)) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  body.sf-os-shell-enabled .sf-os-launcher-body {
    display: flex !important;
    flex-direction: column !important;
    max-height: none !important;
    overflow: visible !important;
  }

  body.sf-os-shell-enabled .sf-os-launcher-sidecar {
    order: -1 !important;
    width: 100% !important;
    display: block !important;
    margin: 0 0 10px !important;
    overflow: visible !important;
  }

  body.sf-os-shell-enabled .sf-os-launcher-sidecar .sf-os-launcher-recent-pulse {
    display: none !important;
  }

  body.sf-os-shell-enabled .sf-os-launcher-quick-actions,
  body.sf-os-shell-enabled .sf-os-launcher-sidecar article:first-child {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    min-height: 58px !important;
    padding: 7px !important;
    border-radius: 999px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-x !important;
  }

  body.sf-os-shell-enabled .sf-os-launcher-quick-actions::-webkit-scrollbar,
  body.sf-os-shell-enabled .sf-os-launcher-sidecar article:first-child::-webkit-scrollbar {
    display: none !important;
  }
}

.sf-stage-66-19-app-library-quick-actions-docklet-rootfix-marker{display:none}


/* Stage 66.20 — Workspace Tab User Scroll Release Rootfix
   A workspace tab click may briefly protect the landing from iOS/PWA relayout,
   but the lock must immediately release on the next real user scroll gesture. */
html.sf-workspace-tab-scroll-active body {
  overscroll-behavior-y: auto !important;
}
.sf-stage-66-20-workspace-tab-user-scroll-release-rootfix-marker{display:none}

/* Stage 66.21 — App Library Action Island Rootfix companion.
   Global fallback so the tablet action island exists as a real flow element, not
   as the old sticky sidecar strip that could cover category chips. The detailed
   launcher styling lives in the OS shell plugin CSS loaded after this file. */
.sf-os-launcher-tablet-actions { display: none; }
@media (min-width: 721px) and (max-width: 1400px) {
  body.sf-os-shell-enabled .sf-os-launcher-tablet-actions {
    display: flex;
    position: relative;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
  }
  body.sf-os-shell-enabled .sf-os-launcher-sidecar,
  body.sf-os-shell-enabled .sf-os-launcher-recent-pulse {
    display: none;
  }
}
.sf-stage-66-21-app-library-action-island-rootfix-marker{display:none}


/* Stage 66.22 — App Library Compact Actions Tapfix companion */
@media (min-width: 721px) and (max-width: 1400px) {
  body.sf-os-shell-enabled .sf-os-launcher-tablet-actions,
  body.sf-os-shell-enabled .sf-os-launcher-tablet-actions a {
    pointer-events: auto !important;
  }
  body.sf-os-shell-enabled .sf-os-launcher-tablet-actions {
    height: 42px !important;
    min-height: 42px !important;
    margin-bottom: 7px !important;
  }
  body.sf-os-shell-enabled .sf-os-launcher-groups {
    margin-top: 0 !important;
  }
}
.sf-stage-66-22-app-library-compact-actions-tapfix-rootfix-marker{display:none}

/* Stage 66.23 — App Library Quick Actions Hard Navigation companion */
@media (min-width: 721px) and (max-width: 1400px) {
  body.sf-os-shell-enabled .sf-os-launcher-tablet-actions {
    position: relative !important;
    z-index: 80 !important;
    pointer-events: auto !important;
  }
  body.sf-os-shell-enabled .sf-os-launcher-tablet-actions a {
    position: relative !important;
    z-index: 90 !important;
    pointer-events: auto !important;
  }
}
.sf-stage-66-23-app-library-quick-actions-hard-nav-rootfix-marker{display:none}


/* Stage 66.24 — App Library Filter Hitbox fallback */
@media (min-width: 721px) and (max-width: 1400px) {
  body.sf-os-shell-enabled .sf-os-launcher-tablet-actions {
    z-index: 6 !important;
    transform: none !important;
    contain: layout paint !important;
  }
  body.sf-os-shell-enabled .sf-os-launcher-groups {
    position: relative !important;
    z-index: 20 !important;
    min-height: 48px !important;
    padding: 6px 4px 8px !important;
    margin: 0 0 14px !important;
    pointer-events: auto !important;
  }
  body.sf-os-shell-enabled .sf-os-launcher-groups button {
    min-height: 36px !important;
    height: 36px !important;
    line-height: 1 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }
}
.sf-stage-66-24-app-library-filter-hitbox-rootfix-marker{display:none}


/* Stage 66.25 — App Library Filter Hard State Rootfix.
   Native `[hidden]` alone can lose against older important card display rules.
   This explicit class is the final source of truth for App Library filter state. */
.sf-os-launcher .sf-os-filter-hidden,
.sf-os-launcher [data-os-shell-search-item].sf-os-filter-hidden,
.sf-os-launcher [data-os-shell-group-block].sf-os-filter-hidden,
body.sf-os-shell-enabled .sf-os-launcher .sf-os-filter-hidden {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
@media (min-width: 721px) and (max-width: 1400px) {
  body.sf-os-shell-enabled .sf-os-launcher-groups,
  body.sf-os-shell-enabled .sf-os-launcher-groups * {
    pointer-events: auto !important;
  }
  body.sf-os-shell-enabled .sf-os-launcher-groups {
    isolation: isolate !important;
    position: relative !important;
    z-index: 60 !important;
    contain: none !important;
  }
  body.sf-os-shell-enabled .sf-os-launcher-groups button,
  body.sf-os-shell-enabled .sf-os-launcher-groups button:active,
  body.sf-os-shell-enabled .sf-os-launcher-groups button:focus-visible {
    position: relative !important;
    z-index: 61 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
    -webkit-user-select: none !important;
    user-select: none !important;
  }
  body.sf-os-shell-enabled .sf-os-launcher-groups button[data-stage-66-25-filter-ready="1"] {
    cursor: pointer !important;
  }
}
.sf-stage-66-25-app-library-filter-hard-state-rootfix-marker{display:none}


/* Stage 66.26 — App Library Filter Single Controller Rootfix */
body.sf-os-shell-enabled .sf-os-launcher .sf-os-launcher-groups {
  position: relative !important;
  z-index: 95 !important;
  pointer-events: auto !important;
  contain: layout paint !important;
}
body.sf-os-shell-enabled .sf-os-launcher .sf-os-launcher-groups button[data-os-shell-launcher-group] {
  pointer-events: auto !important;
  touch-action: manipulation !important;
  -webkit-user-select: none !important;
  user-select: none !important;
  min-height: 40px !important;
}
body.sf-os-shell-enabled .sf-os-launcher [data-os-shell-search-item].sf-os-filter-hidden,
body.sf-os-shell-enabled .sf-os-launcher [data-os-shell-group-block].sf-os-filter-hidden,
body.sf-os-shell-enabled .sf-os-launcher .sf-os-filter-hidden {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
.sf-stage-66-26-app-library-filter-controller-rootfix-marker{display:none}


/* Stage 66.27 — Action Sheet Anchor Rootfix. Prevents hidden data-sheet form anchors from leaving mobile/PWA pages visually blank after action taps. */
.sf-stage-66-27-action-sheet-anchor-rootfix-marker{display:none}
html.sf-stage-66-27-action-sheet-anchor-rootfix form[data-sheet][aria-hidden="true"]{scroll-margin-top:0!important}

/* Stage 66.28 Action Button Audit Rootfix marker: action hash targets and hidden-sheet aliases are normalized. */
.sf-stage-66-28-action-button-audit-rootfix-marker,
.sentinel-action-target {
  scroll-margin-top: calc(var(--sf-ipad-topbar-clearance, 112px) + 18px);
}

/* Stage 66.29 Touch Button Navigation Arbitration Rootfix marker: sf-stage-66-29-touch-button-navigation-arbitration-rootfix-marker */


/* sf-stage-66-30-bfsi-financial-institution-intelligence-plugin-marker
   Stage 66.30 — BFSI Financial Institution Fraud Intelligence Plugin. */
.bfsi-hero{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(180px,240px);
  gap:24px;
  align-items:center;
  padding:30px;
  margin-bottom:20px;
  border:1px solid var(--line);
  border-radius:28px;
  background:linear-gradient(135deg,rgba(116,180,255,.13),rgba(255,255,255,.05) 42%,rgba(108,83,255,.12));
  box-shadow:var(--shadow);
  backdrop-filter:blur(26px);
}
.bfsi-hero:before{content:"";position:absolute;inset:-1px;background:radial-gradient(circle at 18% 0%,rgba(169,220,255,.20),transparent 30%),radial-gradient(circle at 86% 12%,rgba(119,104,255,.20),transparent 34%);pointer-events:none}.bfsi-hero-copy{position:relative;z-index:1;min-width:0}.bfsi-hero h2{font-size:clamp(2.3rem,5vw,5.6rem);letter-spacing:-.07em;line-height:.94;max-width:1050px}.bfsi-hero p{max-width:900px;color:var(--muted);font-size:1.02rem;line-height:1.75}.bfsi-orb{position:relative;z-index:1;width:clamp(158px,18vw,220px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;text-align:center;padding:24px;background:radial-gradient(circle at 50% 20%,rgba(255,255,255,.26),rgba(33,48,77,.92) 54%,rgba(5,8,14,.95));border:1px solid var(--line2);box-shadow:inset 0 0 54px rgba(169,220,255,.13),0 28px 90px rgba(0,0,0,.32)}.bfsi-orb span{color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.18em}.bfsi-orb strong{font-size:clamp(1.4rem,2.5vw,2.4rem);font-weight:420;letter-spacing:-.08em;line-height:.9}.bfsi-orb small{color:var(--muted2);font-size:.78rem;line-height:1.35}.bfsi-intake textarea{min-height:110px}.bfsi-score-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.bfsi-score-list li{display:flex;align-items:center;gap:12px;padding:12px 13px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.045);color:var(--text2)}.bfsi-score-list strong{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:rgba(169,220,255,.12);border:1px solid rgba(169,220,255,.2);font-weight:520;color:var(--accent)}.bfsi-output-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.bfsi-output-grid span{display:flex;align-items:center;min-height:48px;padding:11px 13px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.05);color:var(--text2);font-size:.92rem}.sentinel-app-tone-violet .sentinel-app-badge{overflow:hidden}@media(max-width:980px){.bfsi-hero{grid-template-columns:1fr;padding:22px}.bfsi-orb{width:160px}.bfsi-output-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.bfsi-hero{padding:18px;border-radius:22px}.bfsi-hero h2{font-size:clamp(2.2rem,12vw,3.3rem)}.bfsi-output-grid{grid-template-columns:1fr}.bfsi-score-list li{align-items:flex-start}.bfsi-score-list strong{width:38px;height:38px;flex:0 0 auto}}
body.sf-os-shell-enabled.sf-action-route-pending [data-ajax-shell-main] {
  pointer-events: auto !important;
}
a[data-action-sheet-route],
a[data-sentinel-action-route] {
  touch-action: manipulation;
}
.sf-stage-66-36-original-motion-contract-restore-rootfix-marker{display:none}


/* Stage 66.36 — restore visible native page motion on touch/PWA navigation.
   The AJAX capture chain stays disabled on touch, but normal mobile links now still
   receive the snappy full-page leave/arrive treatment. */
body.sf-os-shell-enabled.sf-fullpage-leaving [data-ajax-shell-main] > :not(.topbar),
body.sf-os-shell-enabled.sf-fullpage-leaving .main > :not(.topbar) {
  opacity: .84 !important;
  transform: translate3d(0,-2px,0) !important;
  transition: opacity .075s cubic-bezier(.2,0,.2,1), transform .075s cubic-bezier(.2,0,.2,1) !important;
}
.sf-stage-66-36-original-motion-contract-restore-rootfix-marker{display:none}
.sf-stage-66-36-original-motion-contract-restore-rootfix-marker{display:none}


/* Stage 66.37 — Touch Scroll vs Tap Arbitration + Action Contract Rootfix. */
html.sf-scroll-intent-active a,
html.sf-scroll-intent-active button,
html.sf-scroll-intent-active [role="button"],
html.sf-scroll-intent-active .btn,
html.sf-scroll-intent-active .quick-action,
html.sf-scroll-intent-active .sf-os-launcher-card {
  -webkit-tap-highlight-color: transparent;
}
.sf-stage-66-37-touch-scroll-action-contract-rootfix-marker{display:none}
.sf-stage-66-38-mobile-action-super-contract-rootfix-marker{display:none}
.sf-stage-66-42-mobile-blank-screen-action-firewall-rootfix-marker{display:none}

/* Stage 66.42 — iOS Action Sheet Portal + Native Select Rootfix.
   Action sheets are now portaled to <body>; they must sit above the mobile OS
   shell and must never be clipped by the blurred app window on iPhone/PWA. */
.sentinel-sheet-portal-root {
  position: relative;
  z-index: 7000;
}
html.sf-action-sheet-opened body.sentinel-sheet-active .sentinel-sheet-backdrop,
body.sentinel-sheet-active .sentinel-sheet-backdrop,
body.sentinel-sheet-portaled-active .sentinel-sheet-backdrop {
  z-index: 6900 !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  visibility: visible !important;
}
html.sf-action-sheet-opened body.sentinel-sheet-active form[data-sheet].is-open,
body.sentinel-sheet-active form[data-sheet].is-open,
body.sentinel-sheet-portaled-active form[data-sheet].is-open,
.sf-sheets-ready form[data-sheet][data-sentinel-sheet-portaled="1"].is-open {
  display: grid !important;
  position: fixed !important;
  z-index: 7000 !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: translate3d(0,0,0) !important;
  filter: none !important;
  will-change: auto !important;
}
@media (max-width: 720px) {
  html.sf-action-sheet-opened body.sentinel-sheet-active .sentinel-sheet-backdrop,
  body.sentinel-sheet-active .sentinel-sheet-backdrop,
  body.sentinel-sheet-portaled-active .sentinel-sheet-backdrop {
    backdrop-filter: blur(18px) saturate(1.2) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.2) !important;
  }
  html.sf-action-sheet-opened body.sentinel-sheet-active form[data-sheet].is-open,
  body.sentinel-sheet-active form[data-sheet].is-open,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open,
  .sf-sheets-ready form[data-sheet][data-sentinel-sheet-portaled="1"].is-open {
    top: auto !important;
    left: max(12px, env(safe-area-inset-left)) !important;
    right: max(12px, env(safe-area-inset-right)) !important;
    bottom: calc(14px + env(safe-area-inset-bottom)) !important;
    width: auto !important;
    max-width: none !important;
    max-height: min(78svh, calc(100svh - 112px - env(safe-area-inset-top) - env(safe-area-inset-bottom))) !important;
    overflow: auto !important;
    -webkit-overflow-scrolling: touch !important;
    border-radius: 28px !important;
  }
  body.sentinel-sheet-active .sf-os-mobile-top,
  body.sentinel-sheet-active .sf-os-mobile-dock,
  body.sentinel-sheet-portaled-active .sf-os-mobile-top,
  body.sentinel-sheet-portaled-active .sf-os-mobile-dock {
    pointer-events: none !important;
  }
}
/* sf-stage-66-42-ios-action-sheet-portal-native-select-rootfix-marker */

/* Stage 66.42 — Mobile Sheet Viewport + Close Release Rootfix.
   66.41 made sheets visible, but iPhone/PWA still left too much dead margin,
   clipped the scroll bottom, and did not reliably release the blurred/blank
   main viewport after closing. These rules make sheets near full-screen,
   scroll-native, and safe-area aware without disabling page motion. */
html.sf-stage-66-42-sheet-close-released body.sf-os-shell-enabled [data-ajax-shell-main],
html.sf-stage-66-42-sheet-close-released body.sf-os-shell-enabled main.main,
html.sf-stage-66-42-sheet-close-released body.sf-os-shell-enabled .main {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  translate: none !important;
  filter: none !important;
  pointer-events: auto !important;
}

body.sentinel-sheet-active,
body.sentinel-sheet-portaled-active {
  overscroll-behavior: none;
  touch-action: none;
}
body.sentinel-sheet-active form[data-sheet].is-open,
body.sentinel-sheet-portaled-active form[data-sheet].is-open,
.sf-sheets-ready form[data-sheet][data-sentinel-sheet-portaled="1"].is-open {
  box-sizing: border-box !important;
  overscroll-behavior: contain !important;
  touch-action: pan-y !important;
  scrollbar-gutter: stable both-edges;
}
body.sentinel-sheet-active form[data-sheet].is-open > *,
body.sentinel-sheet-portaled-active form[data-sheet].is-open > * {
  min-width: 0;
}
body.sentinel-sheet-active form[data-sheet].is-open > button:last-child,
body.sentinel-sheet-active form[data-sheet].is-open > .btn:last-child,
body.sentinel-sheet-portaled-active form[data-sheet].is-open > button:last-child,
body.sentinel-sheet-portaled-active form[data-sheet].is-open > .btn:last-child {
  margin-bottom: calc(12px + env(safe-area-inset-bottom)) !important;
}

@media (max-width: 720px), (pointer: coarse) and (max-width: 900px) {
  html.sf-action-sheet-opened body.sentinel-sheet-active .sentinel-sheet-backdrop,
  body.sentinel-sheet-active .sentinel-sheet-backdrop,
  body.sentinel-sheet-portaled-active .sentinel-sheet-backdrop {
    position: fixed !important;
    inset: 0 !important;
    z-index: 8900 !important;
    background: rgba(4, 8, 14, .62) !important;
    backdrop-filter: blur(20px) saturate(1.18) !important;
    -webkit-backdrop-filter: blur(20px) saturate(1.18) !important;
  }
  html.sf-action-sheet-opened body.sentinel-sheet-active form[data-sheet].is-open,
  body.sentinel-sheet-active form[data-sheet].is-open,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open,
  .sf-sheets-ready form[data-sheet][data-sentinel-sheet-portaled="1"].is-open {
    top: max(7px, env(safe-area-inset-top)) !important;
    right: max(5px, env(safe-area-inset-right)) !important;
    bottom: max(7px, env(safe-area-inset-bottom)) !important;
    left: max(5px, env(safe-area-inset-left)) !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-content: start !important;
    gap: 13px !important;
    padding: 15px 13px calc(30px + env(safe-area-inset-bottom)) !important;
    border-radius: 26px !important;
    z-index: 9000 !important;
    box-shadow: 0 24px 90px rgba(0,0,0,.62), inset 0 1px rgba(255,255,255,.12) !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open .sentinel-sheet-header,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open .sentinel-sheet-header,
  .sf-sheets-ready form[data-sheet][data-sentinel-sheet-portaled="1"].is-open .sentinel-sheet-header {
    position: sticky !important;
    top: -15px !important;
    margin: -15px -13px 4px !important;
    padding: 14px 13px 12px !important;
    z-index: 2 !important;
    border-radius: 24px 24px 0 0 !important;
    background: linear-gradient(180deg, rgba(15,22,34,.98), rgba(15,22,34,.90)) !important;
    backdrop-filter: blur(22px) saturate(1.12) !important;
    -webkit-backdrop-filter: blur(22px) saturate(1.12) !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open input,
  body.sentinel-sheet-active form[data-sheet].is-open select,
  body.sentinel-sheet-active form[data-sheet].is-open textarea,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open input,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open select,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open textarea {
    min-height: 46px;
    font-size: 16px !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open textarea,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open textarea {
    min-height: 96px;
  }
  body.sentinel-sheet-active form[data-sheet].is-open > button,
  body.sentinel-sheet-active form[data-sheet].is-open > .btn,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open > button,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open > .btn {
    min-height: 52px;
    width: 100%;
  }
}
.sf-stage-66-42-mobile-sheet-viewport-close-rootfix-marker{display:none}

/* Stage 66.44 — Mobile Login Crash Nullsafe Runtime Rootfix.
   The sheet must not slide under the fixed SENTINEL OS top capsule, and it must
   end above the bottom dock so the last fields/buttons are reachable. Geometry
   is fed by assets/js/app.js through --sentinel-sheet-top-clear and
   --sentinel-sheet-bottom-clear using the live topbar/dock measurements. */
:root {
  --sentinel-sheet-top-clear: calc(112px + env(safe-area-inset-top));
  --sentinel-sheet-bottom-clear: calc(124px + env(safe-area-inset-bottom));
  --sentinel-sheet-visual-height: 100svh;
}
body.sentinel-sheet-active,
body.sentinel-sheet-portaled-active {
  overflow: hidden !important;
  overscroll-behavior: none !important;
  touch-action: auto !important;
}
body.sentinel-sheet-active .sentinel-sheet-backdrop,
body.sentinel-sheet-portaled-active .sentinel-sheet-backdrop {
  touch-action: none !important;
}
@media (max-width: 720px), (pointer: coarse) and (max-width: 900px) {
  html.sf-action-sheet-opened body.sentinel-sheet-active form[data-sheet].is-open,
  body.sentinel-sheet-active form[data-sheet].is-open,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open,
  .sf-sheets-ready form[data-sheet][data-sentinel-sheet-portaled="1"].is-open {
    top: var(--sentinel-sheet-top-clear) !important;
    bottom: var(--sentinel-sheet-bottom-clear) !important;
    left: max(7px, env(safe-area-inset-left)) !important;
    right: max(7px, env(safe-area-inset-right)) !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(var(--sentinel-sheet-visual-height, 100svh) - var(--sentinel-sheet-top-clear) - var(--sentinel-sheet-bottom-clear)) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain !important;
    touch-action: pan-y !important;
    padding: 0 13px calc(28px + env(safe-area-inset-bottom)) !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-content: start !important;
    gap: 13px !important;
    border-radius: 0 0 26px 26px !important;
    z-index: 9000 !important;
    scroll-padding-top: 82px !important;
    scroll-padding-bottom: calc(46px + env(safe-area-inset-bottom)) !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open .sentinel-sheet-header,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open .sentinel-sheet-header,
  .sf-sheets-ready form[data-sheet][data-sentinel-sheet-portaled="1"].is-open .sentinel-sheet-header {
    position: sticky !important;
    top: 0 !important;
    margin: 0 -13px 4px !important;
    padding: 18px 13px 14px !important;
    z-index: 4 !important;
    border-radius: 0 !important;
    min-height: 76px !important;
    background: linear-gradient(180deg, rgba(15,22,34,.99), rgba(15,22,34,.93)) !important;
    border-bottom: 1px solid rgba(255,255,255,.12) !important;
    backdrop-filter: blur(24px) saturate(1.14) !important;
    -webkit-backdrop-filter: blur(24px) saturate(1.14) !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open .sentinel-sheet-header h3,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open .sentinel-sheet-header h3 {
    font-size: clamp(1.55rem, 7.4vw, 2.15rem) !important;
    line-height: 1.02 !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open .sentinel-sheet-close,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open .sentinel-sheet-close {
    min-width: 54px !important;
    min-height: 54px !important;
    border-radius: 50% !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open > :last-child,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open > :last-child {
    margin-bottom: calc(22px + env(safe-area-inset-bottom)) !important;
  }
}
.sf-stage-66-43-mobile-sheet-chrome-clearance-rootfix-marker{display:none}

/* Stage 66.45 — Mobile Sheet Portal Stack + Close Lifecycle Rootfix.
   Root cause finally removed: the portaled sheet lived inside a z-index:7000
   stacking context while the backdrop was z-index:8900, so the form could be
   visible but untouchable. This block makes the portal root the highest modal
   layer, keeps the backdrop below the sheet, starts the sheet below the fixed
   SENTINEL OS top capsule, and keeps the scrollable sheet above the bottom dock. */
:root {
  --sentinel-sheet-top-clear: calc(124px + env(safe-area-inset-top));
  --sentinel-sheet-bottom-clear: calc(124px + env(safe-area-inset-bottom));
  --sentinel-sheet-visual-height: 100svh;
  --sentinel-sheet-available-height: calc(100svh - var(--sentinel-sheet-top-clear) - var(--sentinel-sheet-bottom-clear));
}
.sentinel-sheet-portal-root[data-sentinel-sheet-portal-root="1"] {
  position: fixed !important;
  inset: 0 !important;
  z-index: 9400 !important;
  pointer-events: none !important;
  isolation: isolate !important;
}
html.sf-action-sheet-opened body.sentinel-sheet-active .sentinel-sheet-backdrop,
body.sentinel-sheet-active .sentinel-sheet-backdrop,
body.sentinel-sheet-portaled-active .sentinel-sheet-backdrop {
  position: fixed !important;
  inset: 0 !important;
  z-index: 9300 !important;
  pointer-events: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
}
html.sf-action-sheet-opened body.sentinel-sheet-active form[data-sheet].is-open,
body.sentinel-sheet-active form[data-sheet].is-open,
body.sentinel-sheet-portaled-active form[data-sheet].is-open,
.sf-sheets-ready form[data-sheet][data-sentinel-sheet-portaled="1"].is-open {
  position: fixed !important;
  z-index: 9500 !important;
  pointer-events: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
  transform: translate3d(0,0,0) !important;
  filter: none !important;
  box-sizing: border-box !important;
}
body.sentinel-sheet-active,
body.sentinel-sheet-portaled-active {
  overflow: hidden !important;
  overscroll-behavior: none !important;
  touch-action: auto !important;
}
body.sentinel-sheet-active .sentinel-sheet-backdrop,
body.sentinel-sheet-portaled-active .sentinel-sheet-backdrop {
  touch-action: none !important;
}
body.sentinel-sheet-active form[data-sheet].is-open,
body.sentinel-sheet-portaled-active form[data-sheet].is-open {
  touch-action: pan-y !important;
  overscroll-behavior-y: contain !important;
}
@media (max-width: 720px), (pointer: coarse) and (max-width: 900px) {
  html.sf-action-sheet-opened body.sentinel-sheet-active form[data-sheet].is-open,
  body.sentinel-sheet-active form[data-sheet].is-open,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open,
  .sf-sheets-ready form[data-sheet][data-sentinel-sheet-portaled="1"].is-open {
    top: var(--sentinel-sheet-top-clear) !important;
    bottom: var(--sentinel-sheet-bottom-clear) !important;
    left: max(7px, env(safe-area-inset-left)) !important;
    right: max(7px, env(safe-area-inset-right)) !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: var(--sentinel-sheet-available-height, calc(100svh - var(--sentinel-sheet-top-clear) - var(--sentinel-sheet-bottom-clear))) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-content: start !important;
    gap: 13px !important;
    padding: 0 13px calc(34px + env(safe-area-inset-bottom)) !important;
    border-radius: 28px !important;
    scroll-padding-top: 84px !important;
    scroll-padding-bottom: calc(58px + env(safe-area-inset-bottom)) !important;
    box-shadow: 0 30px 110px rgba(0,0,0,.66), inset 0 1px rgba(255,255,255,.12) !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open .sentinel-sheet-header,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open .sentinel-sheet-header,
  .sf-sheets-ready form[data-sheet][data-sentinel-sheet-portaled="1"].is-open .sentinel-sheet-header {
    position: sticky !important;
    top: 0 !important;
    margin: 0 -13px 4px !important;
    padding: 18px 13px 14px !important;
    min-height: 76px !important;
    z-index: 3 !important;
    border-radius: 28px 28px 0 0 !important;
    background: linear-gradient(180deg, rgba(15,22,34,.99), rgba(15,22,34,.93)) !important;
    border-bottom: 1px solid rgba(255,255,255,.12) !important;
    backdrop-filter: blur(24px) saturate(1.14) !important;
    -webkit-backdrop-filter: blur(24px) saturate(1.14) !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open .sentinel-sheet-close,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open .sentinel-sheet-close {
    pointer-events: auto !important;
    touch-action: manipulation !important;
    min-width: 56px !important;
    min-height: 56px !important;
    z-index: 4 !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open input,
  body.sentinel-sheet-active form[data-sheet].is-open select,
  body.sentinel-sheet-active form[data-sheet].is-open textarea,
  body.sentinel-sheet-active form[data-sheet].is-open button,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open input,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open select,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open textarea,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open button {
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open textarea,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open textarea {
    touch-action: pan-y !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open > :last-child,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open > :last-child {
    margin-bottom: calc(28px + env(safe-area-inset-bottom)) !important;
  }
  body.sentinel-sheet-active .sf-os-mobile-top,
  body.sentinel-sheet-active .sf-os-mobile-dock,
  body.sentinel-sheet-portaled-active .sf-os-mobile-top,
  body.sentinel-sheet-portaled-active .sf-os-mobile-dock {
    pointer-events: none !important;
  }
}
.sf-stage-66-45-mobile-sheet-portal-stack-close-rootfix-marker{display:none}


/* Stage 66.46 retained baseline — Mobile Sheet Backdrop Release + Chrome Passthrough Rootfix.
   The sheet is not allowed to sit under the top SENTINEL capsule, and the
   backdrop is not allowed to survive close or block fixed chrome. */
:root {
  --sentinel-sheet-top-clear: calc(196px + env(safe-area-inset-top));
  --sentinel-sheet-bottom-clear: calc(130px + env(safe-area-inset-bottom));
  --sentinel-sheet-visual-height: 100svh;
  --sentinel-sheet-available-height: calc(100svh - var(--sentinel-sheet-top-clear) - var(--sentinel-sheet-bottom-clear));
}
.sentinel-sheet-portal-root[data-sentinel-sheet-portal-root="1"] {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147482500 !important;
  pointer-events: none !important;
  isolation: isolate !important;
}
.sentinel-sheet-backdrop {
  position: fixed !important;
  top: var(--sentinel-sheet-top-clear) !important;
  bottom: var(--sentinel-sheet-bottom-clear) !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 2147482400 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
body.sentinel-sheet-active .sentinel-sheet-backdrop.is-open,
body.sentinel-sheet-portaled-active .sentinel-sheet-backdrop.is-open,
html.sf-action-sheet-opened body.sentinel-sheet-active .sentinel-sheet-backdrop.is-open {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
html.sf-action-sheet-opened body.sentinel-sheet-active form[data-sheet].is-open,
body.sentinel-sheet-active form[data-sheet].is-open,
body.sentinel-sheet-portaled-active form[data-sheet].is-open,
.sf-sheets-ready form[data-sheet][data-sentinel-sheet-portaled="1"].is-open {
  z-index: 2147482510 !important;
  pointer-events: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
}
@media (max-width: 720px), (pointer: coarse) and (max-width: 900px) {
  html.sf-action-sheet-opened body.sentinel-sheet-active form[data-sheet].is-open,
  body.sentinel-sheet-active form[data-sheet].is-open,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open,
  .sf-sheets-ready form[data-sheet][data-sentinel-sheet-portaled="1"].is-open {
    top: var(--sentinel-sheet-top-clear) !important;
    bottom: var(--sentinel-sheet-bottom-clear) !important;
    left: max(7px, env(safe-area-inset-left)) !important;
    right: max(7px, env(safe-area-inset-right)) !important;
    width: auto !important;
    max-width: none !important;
    max-height: var(--sentinel-sheet-available-height, calc(100svh - var(--sentinel-sheet-top-clear) - var(--sentinel-sheet-bottom-clear))) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-y !important;
    padding-bottom: calc(34px + env(safe-area-inset-bottom)) !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open .sentinel-sheet-header,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open .sentinel-sheet-header,
  .sf-sheets-ready form[data-sheet][data-sentinel-sheet-portaled="1"].is-open .sentinel-sheet-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 4 !important;
  }
  body.sentinel-sheet-active .sf-os-mobile-top,
  body.sentinel-sheet-active .sf-os-mobile-top *,
  body.sentinel-sheet-active .sf-os-mobile-dock,
  body.sentinel-sheet-active .sf-os-mobile-dock *,
  body.sentinel-sheet-portaled-active .sf-os-mobile-top,
  body.sentinel-sheet-portaled-active .sf-os-mobile-top *,
  body.sentinel-sheet-portaled-active .sf-os-mobile-dock,
  body.sentinel-sheet-portaled-active .sf-os-mobile-dock * {
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }
}
.sf-stage-66-46-mobile-sheet-backdrop-release-chrome-passthrough-rootfix-marker{display:none}


/* Stage 66.47 — Mobile Sheet Topbar Edge Alignment Rootfix.
   All data-sheet overlays must begin immediately after the fixed SENTINEL OS
   mobile top capsule, not halfway down the viewport. The live value is written
   by assets/js/app.js; these are only safe fallbacks. */
:root {
  --sentinel-sheet-top-clear: calc(124px + env(safe-area-inset-top));
  --sentinel-sheet-bottom-clear: calc(130px + env(safe-area-inset-bottom));
  --sentinel-sheet-visual-height: 100svh;
  --sentinel-sheet-available-height: calc(100svh - var(--sentinel-sheet-top-clear) - var(--sentinel-sheet-bottom-clear));
}
@media (max-width: 720px), (pointer: coarse) and (max-width: 900px) {
  html.sf-action-sheet-opened body.sentinel-sheet-active form[data-sheet].is-open,
  body.sentinel-sheet-active form[data-sheet].is-open,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open,
  .sf-sheets-ready form[data-sheet][data-sentinel-sheet-portaled="1"].is-open {
    top: var(--sentinel-sheet-top-clear) !important;
    bottom: var(--sentinel-sheet-bottom-clear) !important;
    max-height: var(--sentinel-sheet-available-height, calc(100svh - var(--sentinel-sheet-top-clear) - var(--sentinel-sheet-bottom-clear))) !important;
  }
  .sentinel-sheet-backdrop {
    top: var(--sentinel-sheet-top-clear) !important;
    bottom: var(--sentinel-sheet-bottom-clear) !important;
  }
}
.sf-stage-66-47-mobile-sheet-topbar-edge-alignment-rootfix-marker{display:none}


/* Stage 66.48 — Mobile Sheet Glass Corridor + Responsive Overlay Rootfix.
   The backdrop must visibly blur only the sheet corridor (below the fixed top
   SENTINEL capsule and above the dock), then release completely on close,
   submit, or outside/chrome action. Tablet/iPad sheets must not stretch into
   oversized controls; they use a centered responsive max-width contract. */
:root {
  --sentinel-sheet-glass-bg: rgba(4, 9, 16, .48);
  --sentinel-sheet-glass-blur: 22px;
  --sentinel-sheet-tablet-width: min(780px, calc(100vw - 112px));
  --sentinel-sheet-phone-gutter: max(7px, env(safe-area-inset-left));
}
body.sentinel-sheet-active .sentinel-sheet-backdrop.is-open,
body.sentinel-sheet-portaled-active .sentinel-sheet-backdrop.is-open,
html.sf-action-sheet-opened body .sentinel-sheet-backdrop.is-open {
  position: fixed !important;
  top: var(--sentinel-sheet-top-clear) !important;
  bottom: var(--sentinel-sheet-bottom-clear) !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 2147482400 !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  background:
    radial-gradient(circle at 16% 6%, rgba(169,220,255,.14), transparent 34%),
    radial-gradient(circle at 88% 18%, rgba(77,104,255,.12), transparent 36%),
    var(--sentinel-sheet-glass-bg) !important;
  backdrop-filter: blur(var(--sentinel-sheet-glass-blur)) saturate(1.18) !important;
  -webkit-backdrop-filter: blur(var(--sentinel-sheet-glass-blur)) saturate(1.18) !important;
  transition: opacity .18s var(--ease), visibility .18s var(--ease) !important;
}
body:not(.sentinel-sheet-active):not(.sentinel-sheet-portaled-active) .sentinel-sheet-backdrop,
body.sf-sheet-glass-released .sentinel-sheet-backdrop {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
body.sentinel-sheet-active [data-ajax-shell-main],
body.sentinel-sheet-portaled-active [data-ajax-shell-main],
body.sentinel-sheet-active main.main,
body.sentinel-sheet-portaled-active main.main {
  /* The actual visual blur is the corridor backdrop. Do not blur fixed chrome. */
  filter: none !important;
}
@media (max-width: 720px), (pointer: coarse) and (max-width: 720px) {
  body.sentinel-sheet-active .sentinel-sheet-backdrop.is-open,
  body.sentinel-sheet-portaled-active .sentinel-sheet-backdrop.is-open {
    top: var(--sentinel-sheet-top-clear) !important;
    bottom: var(--sentinel-sheet-bottom-clear) !important;
    --sentinel-sheet-glass-bg: rgba(4, 9, 16, .50);
    --sentinel-sheet-glass-blur: 22px;
  }
}
@media (pointer: coarse) and (min-width: 721px) {
  body.sentinel-sheet-active .sentinel-sheet-backdrop.is-open,
  body.sentinel-sheet-portaled-active .sentinel-sheet-backdrop.is-open {
    top: var(--sentinel-sheet-top-clear) !important;
    bottom: var(--sentinel-sheet-bottom-clear) !important;
    --sentinel-sheet-glass-bg: rgba(4, 9, 16, .42);
    --sentinel-sheet-glass-blur: 20px;
  }
  html.sf-action-sheet-opened body.sentinel-sheet-active form[data-sheet].is-open,
  body.sentinel-sheet-active form[data-sheet].is-open,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open,
  .sf-sheets-ready form[data-sheet][data-sentinel-sheet-portaled="1"].is-open {
    top: var(--sentinel-sheet-top-clear) !important;
    bottom: var(--sentinel-sheet-bottom-clear) !important;
    left: var(--sentinel-sheet-viewport-left, max(24px, calc((100vw - var(--sentinel-sheet-tablet-width)) / 2))) !important;
    right: auto !important;
    width: var(--sentinel-sheet-viewport-width, var(--sentinel-sheet-tablet-width)) !important;
    max-width: var(--sentinel-sheet-viewport-width, var(--sentinel-sheet-tablet-width)) !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: var(--sentinel-sheet-available-height, calc(100svh - var(--sentinel-sheet-top-clear) - var(--sentinel-sheet-bottom-clear))) !important;
    transform: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: clamp(16px, 1.6vw, 22px) !important;
    gap: clamp(10px, 1.1vw, 14px) !important;
    border-radius: clamp(24px, 2vw, 32px) !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    align-content: start !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open.form-grid,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open.form-grid,
  body.sentinel-sheet-active form[data-sheet].is-open.case-wizard,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open.case-wizard {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open .form-grid.two,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open .form-grid.two,
  body.sentinel-sheet-active form[data-sheet].is-open .form-grid.three,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open .form-grid.three,
  body.sentinel-sheet-active form[data-sheet].is-open .form-grid.four,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open .form-grid.four {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: clamp(10px, 1.2vw, 14px) !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open input,
  body.sentinel-sheet-active form[data-sheet].is-open select,
  body.sentinel-sheet-active form[data-sheet].is-open textarea,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open input,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open select,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open textarea {
    min-height: clamp(42px, 4.4vw, 50px) !important;
    font-size: clamp(14px, 1.45vw, 16px) !important;
    padding: clamp(10px, 1.1vw, 13px) clamp(12px, 1.3vw, 15px) !important;
    border-radius: clamp(14px, 1.6vw, 18px) !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open textarea,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open textarea {
    min-height: clamp(84px, 11vw, 120px) !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open .btn,
  body.sentinel-sheet-active form[data-sheet].is-open button:not(.sentinel-sheet-close),
  body.sentinel-sheet-portaled-active form[data-sheet].is-open .btn,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open button:not(.sentinel-sheet-close) {
    min-height: clamp(40px, 4.2vw, 48px) !important;
    width: auto !important;
    max-width: 100% !important;
    padding: clamp(8px, 1vw, 11px) clamp(13px, 1.4vw, 18px) !important;
    font-size: clamp(14px, 1.35vw, 16px) !important;
    border-radius: 999px !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open > button:last-child,
  body.sentinel-sheet-active form[data-sheet].is-open > .btn:last-child,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open > button:last-child,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open > .btn:last-child {
    justify-self: start !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open .sentinel-sheet-header,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open .sentinel-sheet-header {
    margin: clamp(-22px, -1.6vw, -16px) clamp(-22px, -1.6vw, -16px) 2px !important;
    padding: clamp(16px, 1.6vw, 22px) !important;
    min-height: clamp(68px, 7vw, 84px) !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open .sentinel-sheet-header h3,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open .sentinel-sheet-header h3 {
    font-size: clamp(1.45rem, 3.2vw, 2rem) !important;
  }
  body.sentinel-sheet-active form[data-sheet].is-open .sentinel-sheet-close,
  body.sentinel-sheet-portaled-active form[data-sheet].is-open .sentinel-sheet-close {
    min-width: clamp(46px, 5.2vw, 56px) !important;
    min-height: clamp(46px, 5.2vw, 56px) !important;
    width: clamp(46px, 5.2vw, 56px) !important;
    height: clamp(46px, 5.2vw, 56px) !important;
    font-size: clamp(1.2rem, 2.4vw, 1.55rem) !important;
  }
}
@media (pointer: coarse) and (min-width: 1024px) {
  :root { --sentinel-sheet-tablet-width: min(840px, calc(100vw - 180px)); }
}
.sf-stage-66-48-mobile-sheet-glass-responsive-rootfix-marker{display:none}

/* Stage 66.49 — iPad/Tablet Sheet Viewport Lock + Blur Corridor Rootfix.
   Final visual contract: every overlay is pinned to the visible viewport, not
   to a horizontally pannable document. No transform-centering on iPad; no
   off-left clipping; blur follows the same visible corridor and releases. */
:root {
  --sentinel-sheet-viewport-left: 16px;
  --sentinel-sheet-viewport-width: min(860px, calc(100vw - 48px));
}
html.sf-stage-66-49-sheet-viewport-locked,
html.sf-stage-66-49-sheet-viewport-locked body {
  overflow-x: hidden !important;
  overscroll-behavior-x: none !important;
}
html.sf-stage-66-49-sheet-viewport-locked body.sentinel-sheet-active .sentinel-sheet-backdrop.is-open,
html.sf-stage-66-49-sheet-viewport-locked body.sentinel-sheet-portaled-active .sentinel-sheet-backdrop.is-open {
  position: fixed !important;
  top: var(--sentinel-sheet-top-clear) !important;
  bottom: auto !important;
  left: 0 !important;
  right: auto !important;
  width: 100vw !important;
  height: var(--sentinel-sheet-available-height) !important;
  z-index: 2147482400 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  overflow: hidden !important;
  backdrop-filter: blur(20px) saturate(1.18) !important;
  -webkit-backdrop-filter: blur(20px) saturate(1.18) !important;
}
html.sf-stage-66-49-sheet-viewport-locked body.sentinel-sheet-active form[data-sheet].is-open,
html.sf-stage-66-49-sheet-viewport-locked body.sentinel-sheet-portaled-active form[data-sheet].is-open,
html.sf-stage-66-49-sheet-viewport-locked .sf-sheets-ready form[data-sheet][data-sentinel-sheet-portaled="1"].is-open {
  position: fixed !important;
  top: var(--sentinel-sheet-top-clear) !important;
  bottom: auto !important;
  left: var(--sentinel-sheet-viewport-left) !important;
  right: auto !important;
  width: var(--sentinel-sheet-viewport-width) !important;
  max-width: var(--sentinel-sheet-viewport-width) !important;
  min-width: 0 !important;
  height: auto !important;
  max-height: var(--sentinel-sheet-available-height) !important;
  transform: translate3d(0,0,0) !important;
  margin: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior-x: none !important;
  box-sizing: border-box !important;
  pointer-events: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
}
@media (pointer: coarse) and (min-width: 721px) {
  html.sf-stage-66-49-sheet-viewport-locked body.sentinel-sheet-active form[data-sheet].is-open,
  html.sf-stage-66-49-sheet-viewport-locked body.sentinel-sheet-portaled-active form[data-sheet].is-open,
  html.sf-stage-66-49-sheet-viewport-locked .sf-sheets-ready form[data-sheet][data-sentinel-sheet-portaled="1"].is-open {
    left: var(--sentinel-sheet-viewport-left) !important;
    width: var(--sentinel-sheet-viewport-width) !important;
    max-width: var(--sentinel-sheet-viewport-width) !important;
    transform: translate3d(0,0,0) !important;
    padding: clamp(16px, 1.45vw, 22px) !important;
    gap: clamp(10px, 1.1vw, 14px) !important;
  }
}
@media (pointer: coarse) and (max-width: 720px) {
  html.sf-stage-66-49-sheet-viewport-locked body.sentinel-sheet-active form[data-sheet].is-open,
  html.sf-stage-66-49-sheet-viewport-locked body.sentinel-sheet-portaled-active form[data-sheet].is-open,
  html.sf-stage-66-49-sheet-viewport-locked .sf-sheets-ready form[data-sheet][data-sentinel-sheet-portaled="1"].is-open {
    left: max(7px, env(safe-area-inset-left)) !important;
    right: auto !important;
    width: calc(100vw - 14px - env(safe-area-inset-left) - env(safe-area-inset-right)) !important;
    max-width: calc(100vw - 14px - env(safe-area-inset-left) - env(safe-area-inset-right)) !important;
  }
  html.sf-stage-66-49-sheet-viewport-locked body.sentinel-sheet-active .sentinel-sheet-backdrop.is-open,
  html.sf-stage-66-49-sheet-viewport-locked body.sentinel-sheet-portaled-active .sentinel-sheet-backdrop.is-open {
    backdrop-filter: blur(22px) saturate(1.18) !important;
    -webkit-backdrop-filter: blur(22px) saturate(1.18) !important;
  }
}
.sf-stage-66-49-tablet-sheet-viewport-lock-rootfix-marker{display:none}

/* Stage 66.50 — Stable Overlay Geometry Contract.
   Final root cause fix for iPad/tablet/desktop overlay shake: all active
   data-sheet overlays are owned by one JS geometry engine. CSS no longer uses
   transform-centering or competing left/right tablet rules while the stable
   engine is armed. */
:root {
  --sentinel-sheet-viewport-left: 16px;
  --sentinel-sheet-viewport-width: min(860px, calc(100vw - 48px));
}
html.sf-stage-66-50-sheet-stable-geometry,
html.sf-stage-66-50-sheet-stable-geometry body {
  overflow-x: hidden !important;
  overscroll-behavior-x: none !important;
}
html.sf-stage-66-50-sheet-stable-geometry body.sentinel-sheet-active .sentinel-sheet-backdrop.is-open,
html.sf-stage-66-50-sheet-stable-geometry body.sentinel-sheet-portaled-active .sentinel-sheet-backdrop.is-open {
  position: fixed !important;
  top: var(--sentinel-sheet-top-clear) !important;
  left: 0 !important;
  right: auto !important;
  bottom: auto !important;
  width: 100vw !important;
  height: var(--sentinel-sheet-available-height) !important;
  z-index: 2147482400 !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  background:
    radial-gradient(circle at 16% 8%, rgba(169,220,255,.14), transparent 34%),
    radial-gradient(circle at 86% 18%, rgba(77,104,255,.12), transparent 36%),
    rgba(4, 9, 16, .43) !important;
  backdrop-filter: blur(20px) saturate(1.18) !important;
  -webkit-backdrop-filter: blur(20px) saturate(1.18) !important;
}
html.sf-stage-66-50-sheet-stable-geometry body.sentinel-sheet-active form[data-sheet].is-open,
html.sf-stage-66-50-sheet-stable-geometry body.sentinel-sheet-portaled-active form[data-sheet].is-open,
html.sf-stage-66-50-sheet-stable-geometry .sf-sheets-ready form[data-sheet][data-sentinel-sheet-portaled="1"].is-open {
  position: fixed !important;
  top: var(--sentinel-sheet-top-clear) !important;
  left: var(--sentinel-sheet-viewport-left) !important;
  right: auto !important;
  bottom: auto !important;
  width: var(--sentinel-sheet-viewport-width) !important;
  max-width: var(--sentinel-sheet-viewport-width) !important;
  min-width: 0 !important;
  height: auto !important;
  max-height: var(--sentinel-sheet-available-height) !important;
  margin: 0 !important;
  transform: none !important;
  translate: none !important;
  animation: none !important;
  transition: opacity .14s ease, box-shadow .18s ease !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior: contain !important;
  touch-action: pan-y !important;
  pointer-events: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
  box-sizing: border-box !important;
  contain: layout paint !important;
  display: grid !important;
  align-content: start !important;
}
html.sf-stage-66-50-sheet-stable-geometry body.sentinel-sheet-active .sf-os-mobile-top,
html.sf-stage-66-50-sheet-stable-geometry body.sentinel-sheet-active .sf-os-mobile-top *,
html.sf-stage-66-50-sheet-stable-geometry body.sentinel-sheet-active .sf-os-mobile-dock,
html.sf-stage-66-50-sheet-stable-geometry body.sentinel-sheet-active .sf-os-mobile-dock *,
html.sf-stage-66-50-sheet-stable-geometry body.sentinel-sheet-active .sf-os-systembar,
html.sf-stage-66-50-sheet-stable-geometry body.sentinel-sheet-active .sf-os-systembar *,
html.sf-stage-66-50-sheet-stable-geometry body.sentinel-sheet-active .sf-os-dock,
html.sf-stage-66-50-sheet-stable-geometry body.sentinel-sheet-active .sf-os-dock *,
html.sf-stage-66-50-sheet-stable-geometry body.sentinel-sheet-active header.topbar,
html.sf-stage-66-50-sheet-stable-geometry body.sentinel-sheet-active header.topbar * {
  pointer-events: auto !important;
  touch-action: manipulation !important;
}
html.sf-stage-66-50-sheet-stable-geometry form[data-sheet].is-open .sentinel-sheet-header {
  transform: none !important;
  translate: none !important;
  position: sticky !important;
  top: calc(-1 * clamp(15px, 1.35vw, 22px)) !important;
  z-index: 3 !important;
  background: linear-gradient(180deg, rgba(15,22,34,.985), rgba(15,22,34,.90)) !important;
  backdrop-filter: blur(22px) saturate(1.12) !important;
  -webkit-backdrop-filter: blur(22px) saturate(1.12) !important;
}
html.sf-stage-66-50-sheet-stable-geometry form[data-sheet].is-open input,
html.sf-stage-66-50-sheet-stable-geometry form[data-sheet].is-open select,
html.sf-stage-66-50-sheet-stable-geometry form[data-sheet].is-open textarea {
  max-width: 100% !important;
  box-sizing: border-box !important;
}
@media (pointer: coarse) and (max-width: 720px) {
  html.sf-stage-66-50-sheet-stable-geometry body.sentinel-sheet-active .sentinel-sheet-backdrop.is-open,
  html.sf-stage-66-50-sheet-stable-geometry body.sentinel-sheet-portaled-active .sentinel-sheet-backdrop.is-open {
    background:
      radial-gradient(circle at 16% 8%, rgba(169,220,255,.14), transparent 34%),
      radial-gradient(circle at 86% 18%, rgba(77,104,255,.12), transparent 36%),
      rgba(4, 9, 16, .50) !important;
    backdrop-filter: blur(22px) saturate(1.18) !important;
    -webkit-backdrop-filter: blur(22px) saturate(1.18) !important;
  }
  html.sf-stage-66-50-sheet-stable-geometry form[data-sheet].is-open {
    grid-template-columns: 1fr !important;
  }
}
@media (pointer: coarse) and (min-width: 721px), (pointer: fine) and (min-width: 721px) {
  html.sf-stage-66-50-sheet-stable-geometry form[data-sheet].is-open {
    gap: clamp(10px, 1.1vw, 14px) !important;
  }
  html.sf-stage-66-50-sheet-stable-geometry form[data-sheet].is-open.form-grid,
  html.sf-stage-66-50-sheet-stable-geometry form[data-sheet].is-open.case-wizard {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }
  html.sf-stage-66-50-sheet-stable-geometry form[data-sheet].is-open .form-grid.two,
  html.sf-stage-66-50-sheet-stable-geometry form[data-sheet].is-open .form-grid.three,
  html.sf-stage-66-50-sheet-stable-geometry form[data-sheet].is-open .form-grid.four {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: clamp(10px, 1.15vw, 14px) !important;
  }
  html.sf-stage-66-50-sheet-stable-geometry form[data-sheet].is-open input,
  html.sf-stage-66-50-sheet-stable-geometry form[data-sheet].is-open select,
  html.sf-stage-66-50-sheet-stable-geometry form[data-sheet].is-open textarea {
    min-height: clamp(42px, 3.6vw, 50px) !important;
    font-size: clamp(14px, 1.2vw, 16px) !important;
    padding: clamp(10px, 1vw, 13px) clamp(12px, 1.15vw, 15px) !important;
    border-radius: clamp(14px, 1.35vw, 18px) !important;
  }
  html.sf-stage-66-50-sheet-stable-geometry form[data-sheet].is-open textarea {
    min-height: clamp(84px, 9vw, 124px) !important;
  }
  html.sf-stage-66-50-sheet-stable-geometry form[data-sheet].is-open .btn,
  html.sf-stage-66-50-sheet-stable-geometry form[data-sheet].is-open button:not(.sentinel-sheet-close) {
    width: auto !important;
    max-width: 100% !important;
    min-height: clamp(40px, 3.4vw, 48px) !important;
    padding: clamp(8px, .9vw, 11px) clamp(13px, 1.25vw, 18px) !important;
    font-size: clamp(14px, 1.1vw, 16px) !important;
    border-radius: 999px !important;
  }
  html.sf-stage-66-50-sheet-stable-geometry form[data-sheet].is-open .form-actions,
  html.sf-stage-66-50-sheet-stable-geometry form[data-sheet].is-open .button-row {
    justify-content: flex-end !important;
  }
}
.sf-stage-66-50-stable-overlay-geometry-rootfix-marker{display:none}


/* Stage 66.51 — Dark Locked / No User Appearance Toggle Rootfix.
   Removes the near-nav light/appearance switch and any stale user-facing
   shell-mode toggle surfaces while preserving dark glass UI and emergency
   query/config fallback paths. */
[data-theme-toggle],
.sf-os-toggle,
.sf-os-mobile-classic {
  display: none !important;
  pointer-events: none !important;
}
html[data-theme="light"] {
  color-scheme: dark !important;
}
.sf-stage-66-51-dark-locked-no-light-toggle-rootfix-marker{display:none}

/* Stage 66.52 — Panel Action Spacing Rhythm Rootfix.
   Gives panel action groups a single spacing contract so adjacent pills never
   visually collide on iPhone/iPad OS-shell screens while preserving Stage 66.50
   stable overlay geometry and Stage 66.51 dark-locked UI. */
:root {
  --sf-action-gap-x: clamp(10px, 1.35vw, 15px);
  --sf-action-gap-y: clamp(10px, 1.15vw, 14px);
  --sf-panel-action-top: clamp(16px, 2.2vw, 22px);
}
.panel-action-stack,
.panel-actions,
.button-row,
.form-actions,
.hero-actions,
.case-queue-actions,
.public-footer-links,
.ops-command-strip {
  gap: var(--sf-action-gap-y) var(--sf-action-gap-x) !important;
}
.panel-action-stack {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  margin-top: var(--sf-panel-action-top);
  max-width: 100%;
}
.panel-action-stack .btn {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  white-space: nowrap;
}
/* Legacy inline panel buttons that are still direct children get safe margins
   even if their markup has not yet been wrapped in .panel-action-stack. */
.panel > a.btn,
.panel > button.btn,
.panel > form.inline-form,
.install-card > a.btn,
.auth-card > a.btn {
  margin: var(--sf-action-gap-y) var(--sf-action-gap-x) 0 0 !important;
}
.panel > a.btn + a.btn,
.panel > button.btn + button.btn,
.panel > a.btn + button.btn,
.panel > button.btn + a.btn {
  margin-left: 0 !important;
}
@media (max-width: 720px) {
  .panel-action-stack,
  .panel-actions,
  .button-row,
  .form-actions,
  .hero-actions,
  .case-queue-actions,
  .public-footer-links,
  .ops-command-strip {
    gap: max(11px, var(--sf-action-gap-y)) var(--sf-action-gap-x) !important;
  }
  .panel-action-stack {
    align-items: flex-start;
  }
  .panel-action-stack .btn {
    width: auto !important;
    min-width: min(100%, 236px);
    justify-content: center;
  }
}
@media (max-width: 420px) {
  .panel-action-stack {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px !important;
  }
  .panel-action-stack .btn {
    width: 100% !important;
    min-width: 0;
  }
}
.sf-stage-66-52-panel-action-spacing-rhythm-rootfix-marker{display:none}

.sf-stage-66-55-universal-schema-api-audit-rootfix-marker{display:none}

/* Stage 66.55 schema introspection rootfix marker. */
.sf-stage-66-55-universal-schema-api-audit-rootfix-marker{display:none}

/* Stage 66.56 — Apple-Level Visual Finishing Pass.
   Visual-only refinement layer. No workflow, routing, AJAX, schema, permission,
   overlay geometry, touch arbitration, or application behavior is changed. */
:root {
  --sf-font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Inter, "Segoe UI", sans-serif;
  --sf-font-text: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Helvetica Neue", Inter, "Segoe UI", sans-serif;
  --sf-ink-primary: rgba(247,250,255,.965);
  --sf-ink-secondary: rgba(218,227,240,.80);
  --sf-ink-tertiary: rgba(169,183,204,.68);
  --sf-hairline: rgba(255,255,255,.105);
  --sf-hairline-strong: rgba(255,255,255,.165);
  --sf-fill-quiet: rgba(255,255,255,.045);
  --sf-fill-hover: rgba(255,255,255,.075);
  --sf-fill-active: rgba(255,255,255,.105);
  --sf-glass-panel: linear-gradient(180deg, rgba(255,255,255,.078), rgba(255,255,255,.032));
  --sf-glass-panel-strong: linear-gradient(180deg, rgba(255,255,255,.105), rgba(255,255,255,.041));
  --sf-shadow-panel: 0 22px 70px rgba(0,0,0,.245), inset 0 1px 0 rgba(255,255,255,.055);
  --sf-shadow-float: 0 30px 96px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.07);
  --sf-focus-ring: 0 0 0 1px rgba(163,215,255,.82), 0 0 0 5px rgba(92,166,255,.16);
  --sf-control-radius: 15px;
  --sf-control-radius-pill: 999px;
  --sf-motion-fast: 150ms;
  --sf-motion-base: 220ms;
  --sf-motion-slow: 340ms;
  --sf-ease-native: cubic-bezier(.22,.72,.18,1);
  --sf-ease-press: cubic-bezier(.2,.8,.2,1);
}

html {
  color-scheme: dark;
  font-family: var(--sf-font-text);
  font-synthesis: none;
  -webkit-text-size-adjust: 100%;
}

body,
button,
input,
select,
textarea {
  font-family: var(--sf-font-text);
  font-kerning: normal;
  font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
}

body {
  color: var(--sf-ink-primary);
  font-weight: 400;
  letter-spacing: -.006em;
  line-height: 1.52;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4,
h5,
h6,
.topbar h1,
.sentinel-app-identity h2,
.mission-hero-copy h2,
.ops-hero-copy h2,
.case-identity-panel h2,
.evidence-ledger-copy h2,
.report-studio-copy h2,
.qhx-hero h2,
.public-hero h1 {
  font-family: var(--sf-font-display);
  font-weight: 450;
  font-kerning: normal;
  font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
  text-wrap: balance;
}

p,
li,
small,
.muted,
.panel-note,
.app-window-subtitle,
.sentinel-app-identity small {
  text-wrap: pretty;
}

strong,
b {
  font-weight: 550;
}

.eyebrow,
.widget-kicker,
.public-eyebrow,
.report-studio-strip span,
.report-record-meta span,
.evidence-dossier-strip small,
.technical-table-toggle summary {
  font-weight: 580;
  letter-spacing: .155em;
  color: rgba(173,205,239,.82);
}

code,
pre,
.mono,
[data-mono] {
  font-variant-ligatures: none;
  font-feature-settings: "tnum" 1, "zero" 1;
}

/* Quiet, consistent selection and keyboard focus. */
::selection {
  color: #fff;
  background: rgba(91,166,255,.36);
}

a,
button,
input,
select,
textarea,
summary,
[tabindex] {
  -webkit-tap-highlight-color: transparent;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: none;
  box-shadow: var(--sf-focus-ring) !important;
}

/* One restrained surface language across legacy and native workspaces. */
.panel,
.hero-card,
.case-hero,
.metric,
.metric-card,
.sentinel-app-window,
.mission-hero-panel,
.mission-main-surface,
.mission-widget,
.mission-kpi-strip article,
.mission-app-tile,
.mission-card,
.ops-center-shell,
.ops-readiness-orb,
.case-workspace-hero,
.case-status-card,
.case-action-rail,
.case-packet-rail,
.evidence-ledger-hero,
.evidence-action-rail,
.evidence-review-console,
.evidence-record,
.report-studio-native,
.report-studio-card,
.report-studio-queue,
.report-template-studio,
.qhx-shell,
.qhx-card,
.public-card,
.public-panel,
.public-result-card,
.public-warning-card,
.auth-card,
.install-card,
.empty-state {
  border-color: var(--sf-hairline);
  background-clip: padding-box;
}

.panel,
.metric,
.metric-card,
.mission-widget,
.mission-kpi-strip article,
.mission-app-tile,
.mission-card,
.case-status-card,
.case-action-rail,
.case-packet-rail,
.evidence-action-rail,
.evidence-review-console,
.evidence-record,
.report-studio-card,
.report-studio-queue,
.report-template-studio,
.qhx-card,
.public-card,
.public-panel,
.public-result-card,
.public-warning-card,
.empty-state {
  background: var(--sf-glass-panel);
  box-shadow: var(--sf-shadow-panel);
}

.hero-card,
.case-hero,
.sentinel-app-window,
.mission-hero-panel,
.mission-main-surface,
.ops-center-shell,
.case-workspace-hero,
.evidence-ledger-hero,
.report-studio-native,
.qhx-shell,
.auth-card,
.install-card {
  box-shadow: var(--sf-shadow-float);
}

.panel,
.metric,
.metric-card,
.mission-widget,
.mission-app-tile,
.mission-kpi-strip article,
.mission-record,
.evidence-record,
.report-record-card,
.case-status-card,
.qhx-card,
.public-card,
.public-warning-card {
  transition:
    border-color var(--sf-motion-base) var(--sf-ease-native),
    background-color var(--sf-motion-base) var(--sf-ease-native),
    box-shadow var(--sf-motion-base) var(--sf-ease-native),
    transform var(--sf-motion-base) var(--sf-ease-native),
    filter var(--sf-motion-base) var(--sf-ease-native);
}

@media (hover:hover) and (pointer:fine) {
  .mission-app-tile:hover,
  .mission-record:hover,
  .evidence-record:hover,
  .report-record-card:hover,
  .public-warning-card:hover {
    border-color: var(--sf-hairline-strong);
    background-color: var(--sf-fill-hover);
    box-shadow: 0 24px 68px rgba(0,0,0,.28), inset 0 1px rgba(255,255,255,.07);
  }
}

/* Cleaner top chrome and side navigation without changing geometry. */
.topbar {
  border-color: var(--sf-hairline) !important;
  background: linear-gradient(180deg, rgba(18,25,39,.78), rgba(9,14,24,.66)) !important;
  box-shadow: 0 18px 58px rgba(0,0,0,.22), inset 0 1px rgba(255,255,255,.065) !important;
  -webkit-backdrop-filter: blur(30px) saturate(1.12);
  backdrop-filter: blur(30px) saturate(1.12);
}

.topbar h1 {
  color: var(--sf-ink-primary);
  font-weight: 440;
  letter-spacing: -.047em;
}

.topbar .eyebrow {
  margin-bottom: 5px;
}

.sidebar {
  border-right-color: rgba(255,255,255,.075);
  box-shadow: inset -1px 0 rgba(0,0,0,.18);
}

.brand-mark,
.sentinel-app-badge,
.mission-app-icon {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.52),
    inset 0 -1px 0 rgba(0,0,0,.10),
    0 12px 30px rgba(0,0,0,.24);
}

.brand-text strong {
  font-weight: 620;
  letter-spacing: .145em;
}

.nav-item {
  font-weight: 450;
  letter-spacing: -.004em;
  transition:
    color var(--sf-motion-fast) var(--sf-ease-native),
    border-color var(--sf-motion-fast) var(--sf-ease-native),
    background-color var(--sf-motion-fast) var(--sf-ease-native),
    transform var(--sf-motion-base) var(--sf-ease-native);
}

.nav-item.active {
  border-color: rgba(255,255,255,.145);
  background: linear-gradient(180deg, rgba(255,255,255,.105), rgba(255,255,255,.055));
  box-shadow: inset 0 1px rgba(255,255,255,.055), 0 12px 34px rgba(0,0,0,.16);
}

.nav-icon {
  border: 1px solid rgba(255,255,255,.055);
  background: rgba(255,255,255,.045);
  font-weight: 580;
}

/* Buttons and compact actions: quiet at rest, precise on intent. */
.btn,
.quick-action,
.icon-btn,
.form-sheet-trigger,
.sentinel-command-open,
.sentinel-workspace-tabs a,
.tabs a,
.workspace-tabs a,
.case-workspace-tabs a {
  color: rgba(239,245,253,.91);
  border-color: var(--sf-hairline);
  background: linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.042));
  box-shadow: inset 0 1px rgba(255,255,255,.055), 0 8px 24px rgba(0,0,0,.12);
  font-weight: 500;
  letter-spacing: -.008em;
  transition:
    color var(--sf-motion-fast) var(--sf-ease-native),
    border-color var(--sf-motion-fast) var(--sf-ease-native),
    background var(--sf-motion-fast) var(--sf-ease-native),
    box-shadow var(--sf-motion-base) var(--sf-ease-native),
    transform var(--sf-motion-fast) var(--sf-ease-press),
    opacity var(--sf-motion-fast) var(--sf-ease-native);
}

.btn.primary,
button.primary,
.quick-action.primary {
  color: #07101a;
  background: linear-gradient(180deg, #f8fcff 0%, #b8e4ff 42%, #72bfff 72%, #6783ff 100%);
  box-shadow:
    inset 0 1px rgba(255,255,255,.78),
    inset 0 -1px rgba(27,71,135,.20),
    0 12px 30px rgba(70,136,238,.22);
  font-weight: 600;
}

@media (hover:hover) and (pointer:fine) {
  .btn:hover,
  .quick-action:hover,
  .icon-btn:hover,
  .form-sheet-trigger:hover,
  .sentinel-workspace-tabs a:hover,
  .tabs a:hover,
  .workspace-tabs a:hover,
  .case-workspace-tabs a:hover {
    color: #fff;
    border-color: var(--sf-hairline-strong);
    background: linear-gradient(180deg, rgba(255,255,255,.105), rgba(255,255,255,.06));
    box-shadow: inset 0 1px rgba(255,255,255,.075), 0 12px 30px rgba(0,0,0,.18);
  }
}

.btn:active,
.quick-action:active,
.icon-btn:active,
.form-sheet-trigger:active,
.sentinel-workspace-tabs a:active,
.tabs a:active,
.workspace-tabs a:active,
.case-workspace-tabs a:active {
  transform: scale(.982);
  box-shadow: inset 0 1px 4px rgba(0,0,0,.18), 0 5px 14px rgba(0,0,0,.12);
}

button:disabled,
.btn.disabled,
.btn[aria-disabled="true"],
input:disabled,
select:disabled,
textarea:disabled {
  opacity: .46;
  cursor: not-allowed;
  filter: saturate(.55);
}

.userchip,
.panel-note,
.status-pill,
.risk,
.confidence-pill,
.grade-badge,
.badge,
.chip,
.pill,
.mission-app-tile em,
.sentinel-app-status {
  border-color: rgba(255,255,255,.095);
  background: rgba(255,255,255,.047);
  box-shadow: inset 0 1px rgba(255,255,255,.035);
  font-weight: 500;
}

.userchip {
  color: var(--sf-ink-secondary);
}

.userchip span {
  color: var(--sf-ink-tertiary);
}

/* Form controls retain all dimensions and event contracts; only their finish changes. */
input,
select,
textarea {
  color: var(--sf-ink-primary);
  border-color: var(--sf-hairline);
  background: linear-gradient(180deg, rgba(255,255,255,.058), rgba(255,255,255,.037));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025), inset 0 0 0 1px rgba(0,0,0,.06);
  caret-color: #9ed7ff;
  transition:
    border-color var(--sf-motion-fast) var(--sf-ease-native),
    background var(--sf-motion-fast) var(--sf-ease-native),
    box-shadow var(--sf-motion-fast) var(--sf-ease-native);
}

input::placeholder,
textarea::placeholder {
  color: rgba(151,165,188,.56);
  opacity: 1;
}

input:hover,
select:hover,
textarea:hover {
  border-color: rgba(255,255,255,.145);
}

input:focus,
select:focus,
textarea:focus {
  border-color: rgba(151,210,255,.72);
  background: linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.045));
}

select,
option {
  color-scheme: dark;
}

input[type="checkbox"],
input[type="radio"] {
  accent-color: #76c4ff;
}

label {
  color: rgba(217,226,239,.84);
  font-weight: 500;
  letter-spacing: -.004em;
}

/* Tables and record rows: less visual weight, stronger scan rhythm. */
table,
.metric strong,
.mission-kpi-strip strong,
.mission-clock-card strong,
.mission-readiness-orb strong,
.ops-readiness-orb strong,
.report-studio-orb strong,
.evidence-custody-orb strong {
  font-variant-numeric: tabular-nums lining-nums;
}

th {
  color: rgba(176,190,211,.70);
  font-size: .675rem;
  font-weight: 600;
  letter-spacing: .145em;
}

td {
  color: rgba(228,235,246,.88);
  border-top-color: rgba(255,255,255,.085);
  border-bottom-color: rgba(255,255,255,.085);
  background: rgba(255,255,255,.037);
}

tr td:first-child { border-left-color: rgba(255,255,255,.085); }
tr td:last-child { border-right-color: rgba(255,255,255,.085); }

@media (hover:hover) and (pointer:fine) {
  .premium-table tbody tr:hover {
    filter: none;
  }
  .premium-table tbody tr:hover td {
    background: rgba(255,255,255,.055);
    border-color: rgba(255,255,255,.13);
  }
}

.table-wrap,
.table-scroll {
  scrollbar-color: rgba(255,255,255,.16) transparent;
}

/* App-window chrome and tabs read as one coherent native workspace. */
.sentinel-app-window {
  background:
    radial-gradient(circle at 14% 0%, rgba(151,211,255,.095), transparent 36%),
    linear-gradient(180deg, rgba(255,255,255,.064), rgba(255,255,255,.026));
}

.sentinel-app-window:before {
  opacity: .26;
}

.sentinel-app-chrome {
  border-bottom-color: rgba(255,255,255,.08);
  background: linear-gradient(180deg, rgba(8,13,22,.76), rgba(8,13,22,.34));
}

.sentinel-window-dots span {
  opacity: .78;
  box-shadow: inset 0 1px rgba(255,255,255,.25), 0 1px 5px rgba(0,0,0,.22);
}

.sentinel-app-identity h2 {
  color: var(--sf-ink-primary);
  font-weight: 455;
}

.sentinel-app-identity small {
  color: var(--sf-ink-tertiary);
}

.sentinel-workspace-tabs {
  border-color: var(--sf-hairline);
  background: linear-gradient(180deg, rgba(14,20,32,.84), rgba(8,12,21,.69));
  box-shadow: 0 16px 48px rgba(0,0,0,.20), inset 0 1px rgba(255,255,255,.05);
}

.sentinel-workspace-tabs a {
  color: rgba(175,189,209,.72);
  font-weight: 520;
}

.sentinel-workspace-tabs a.active {
  color: rgba(247,250,255,.96);
  border-color: rgba(255,255,255,.14);
  background: linear-gradient(180deg, rgba(255,255,255,.105), rgba(255,255,255,.055));
  box-shadow: inset 0 1px rgba(255,255,255,.05), 0 7px 18px rgba(0,0,0,.14);
}

/* Mission Control: preserve composition, remove excess visual noise. */
.mission-hero-panel {
  background:
    radial-gradient(circle at 86% 6%, rgba(88,127,235,.18), transparent 40%),
    linear-gradient(145deg, rgba(255,255,255,.088), rgba(255,255,255,.031));
}

.mission-hero-panel:before {
  opacity: .16;
}

.mission-clock-card,
.mission-command-bar,
.mission-widget,
.mission-main-surface,
.mission-kpi-strip article,
.mission-app-tile,
.mission-card {
  border-color: rgba(255,255,255,.095);
  background: linear-gradient(160deg, rgba(255,255,255,.078), rgba(255,255,255,.03));
  box-shadow: inset 0 1px rgba(255,255,255,.045), 0 14px 44px rgba(0,0,0,.17);
}

.mission-hero-copy h2 {
  color: rgba(231,238,249,.88) !important;
  -webkit-text-fill-color: rgba(231,238,249,.88) !important;
  font-weight: 410;
  letter-spacing: -.068em;
}

.mission-hero-copy p:not(.eyebrow) {
  color: rgba(198,210,228,.72);
}

.mission-command-bar strong,
.mission-app-copy strong,
.mission-widget strong,
.mission-feed-item strong,
.mission-record strong {
  font-weight: 520;
}

.mission-readiness-orb,
.command-orb,
.ops-readiness-orb,
.report-studio-orb,
.evidence-custody-orb {
  border-color: rgba(255,255,255,.145);
  box-shadow:
    inset 0 1px rgba(255,255,255,.12),
    inset 0 -24px 70px rgba(0,0,0,.22),
    inset 0 0 48px rgba(105,185,255,.10),
    0 24px 72px rgba(0,0,0,.28);
}

.mission-app-tile:before {
  opacity: .56;
}

.mission-app-tile em {
  color: rgba(220,229,241,.78);
}

.mission-kpi-strip span,
.mission-widget small,
.mission-app-tile small,
.mission-feed-item small,
.mission-record small {
  color: rgba(157,172,194,.68);
}

.mission-record {
  border-color: rgba(255,255,255,.085);
  background: rgba(255,255,255,.035);
}

/* Shared module typography and inner-card finish. */
.panel-head h2,
.panel-head h3,
.mission-surface-head h3,
.mission-card h3,
.report-studio-card h3,
.evidence-dossier-title h3,
.qhx-card h3,
.public-card h2,
.public-card h3 {
  color: rgba(241,246,253,.94);
  font-weight: 455;
  letter-spacing: -.041em;
}

.panel p,
.empty-state p,
.empty-state span,
.public-card p,
.public-panel p {
  color: rgba(184,197,216,.72);
}

.empty-state {
  border-style: solid;
  background: linear-gradient(180deg, rgba(255,255,255,.036), rgba(255,255,255,.02));
  box-shadow: inset 0 1px rgba(255,255,255,.025);
}

.flash {
  border-color: rgba(255,255,255,.12);
  box-shadow: inset 0 1px rgba(255,255,255,.04), 0 12px 30px rgba(0,0,0,.14);
}

/* Public, login, reset, and installer surfaces share the same finishing standard. */
.public-native-topbar,
.public-topbar {
  border-color: rgba(255,255,255,.10);
  background: linear-gradient(180deg, rgba(13,19,30,.86), rgba(8,13,22,.74));
  box-shadow: 0 18px 56px rgba(0,0,0,.22), inset 0 1px rgba(255,255,255,.055);
}

.public-nav a {
  font-weight: 500;
  color: rgba(190,202,221,.76);
}

.public-nav a.active {
  color: #fff;
  background: rgba(255,255,255,.075);
  border-color: rgba(255,255,255,.115);
}

.auth-card,
.install-card {
  background:
    radial-gradient(circle at 12% 0%, rgba(146,207,255,.12), transparent 36%),
    linear-gradient(180deg, rgba(21,29,44,.93), rgba(8,13,22,.92));
}

.auth-card h1,
.install-card h1 {
  color: rgba(246,249,255,.96);
  font-weight: 440;
  letter-spacing: -.05em;
}

/* Stable mobile rhythm. Overlay geometry from Stage 66.50 remains untouched. */
@media (max-width: 720px) {
  body {
    font-size: 15px;
  }

  .topbar h1 {
    letter-spacing: -.042em;
  }

  .panel,
  .mission-main-surface,
  .mission-widget,
  .mission-kpi-strip article,
  .mission-app-tile,
  .mission-card,
  .report-studio-card,
  .report-studio-queue,
  .report-template-studio,
  .evidence-record,
  .public-card,
  .public-panel {
    box-shadow: 0 16px 46px rgba(0,0,0,.22), inset 0 1px rgba(255,255,255,.045);
  }

  .mission-hero-copy h2 {
    font-weight: 405;
    letter-spacing: -.058em;
  }

  .mission-app-copy strong,
  .mission-widget strong,
  .mission-record strong,
  .mission-feed-item strong {
    letter-spacing: -.018em;
  }

  .btn,
  .quick-action,
  .form-sheet-trigger {
    font-weight: 520;
  }

  th {
    letter-spacing: .12em;
  }
}

@media (max-width: 390px) {
  .eyebrow,
  .widget-kicker,
  .public-eyebrow {
    letter-spacing: .13em;
  }
}

@media (prefers-reduced-motion: reduce) {
  .panel,
  .metric,
  .metric-card,
  .mission-widget,
  .mission-app-tile,
  .mission-kpi-strip article,
  .mission-record,
  .evidence-record,
  .report-record-card,
  .case-status-card,
  .qhx-card,
  .public-card,
  .public-warning-card,
  .btn,
  .quick-action,
  .icon-btn,
  .form-sheet-trigger,
  .sentinel-workspace-tabs a,
  .tabs a,
  .workspace-tabs a,
  .case-workspace-tabs a,
  input,
  select,
  textarea {
    transition-duration: .001ms !important;
  }
}

/* Preserve intentional module tone while keeping the unified finish. */
.report-studio-card-dark {
  background: linear-gradient(145deg, rgba(255,213,138,.072), rgba(255,255,255,.03));
}
.mission-widget.is-ok {
  background: linear-gradient(160deg, rgba(117,226,162,.062), rgba(255,255,255,.028));
}
.mission-widget.is-warn {
  background: linear-gradient(160deg, rgba(255,191,114,.06), rgba(255,255,255,.028));
}

.sf-stage-66-56-apple-level-visual-finishing-marker { display: none; }


/* Stage 66.91.7 — SBPI real mobile containment contract.
   Applied on the concrete app-window class, independent of body hooks/load order. */
@media (max-width: 720px) {
  .sentinel-app-window.sentinel-app-sbpi .sentinel-app-chrome {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    gap: 12px !important;
    padding: 14px !important;
    overflow: visible !important;
  }

  .sentinel-app-window.sentinel-app-sbpi .sentinel-app-identity,
  .sentinel-app-window.sentinel-app-sbpi .sentinel-app-identity > div,
  .sentinel-app-window.sentinel-app-sbpi .sentinel-app-status,
  .sentinel-app-window.sentinel-app-sbpi .sentinel-app-actions {
    grid-column: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .sentinel-app-window.sentinel-app-sbpi .sentinel-app-identity h2,
  .sentinel-app-window.sentinel-app-sbpi .sentinel-app-identity small {
    max-width: 100% !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: anywhere !important;
  }

  .sentinel-app-window.sentinel-app-sbpi .sentinel-app-status {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) !important;
    align-items: start !important;
    justify-self: stretch !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 10px 12px !important;
    border-radius: 17px !important;
    white-space: normal !important;
    overflow: visible !important;
  }

  .sentinel-app-window.sentinel-app-sbpi .sentinel-app-status > span:last-child {
    display: block !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    line-height: 1.32 !important;
  }

  .sentinel-app-window.sentinel-app-sbpi .sentinel-app-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .sentinel-app-window.sentinel-app-sbpi .sentinel-app-actions .btn {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
  }
}

@media (max-width: 390px) {
  .sentinel-app-window.sentinel-app-sbpi .sentinel-app-actions {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* Stage 66.91.8 Circular Metric Center Number 50 Percent Rootfix
   All recognized large OS orb/score/readiness center-value font declarations are exactly halved at source. */
.sf-stage-66-91-8-circular-metric-number-rootfix-marker{display:none}

/* Stage 66.91.9 — Circular Metric Effective Cascade Rootfix
   This is intentionally the final app.css rule. Earlier Stage 66.91.8 edits
   were overridden by the adaptive bubble contract and later !important rules.
   The visible centre value is now exactly 50% of the effective shared orb size. */
:is(
  .mission-readiness-orb,
  .command-orb,
  .score-orb,
  .case-score-orb,
  .evidence-custody-orb,
  .report-studio-orb,
  .ops-readiness-orb,
  .qhx-score-orb,
  .public-orb
) > :is(strong, .sf-orb-value, .score-value, .value, .number) {
  --sf-bubble-value-scale: .5 !important;
  font-size: calc(clamp(.775rem, 15.5cqw, 2.325rem) * .5) !important;
}

.bfsi-orb > strong {
  font-size: clamp(.7rem, 1.25vw, 1.2rem) !important;
}

.sf-stage-66-91-9-circular-metric-effective-cascade-rootfix-marker { display:none; }

/* Stage 66.91.10 — Circular Metric Value Box Unclip Rootfix
   The effective font was already reduced, but the value remained clipped by
   legacy max-width + overflow:hidden + compressed line-height rules. This
   final contract fixes the value box itself across all recognized OS orbs. */
:is(
  .mission-readiness-orb,
  .command-orb,
  .score-orb,
  .case-score-orb,
  .evidence-custody-orb,
  .report-studio-orb,
  .ops-readiness-orb,
  .qhx-score-orb,
  .public-orb,
  .bfsi-orb
) > :is(strong, .sf-orb-value, .score-value, .value, .number) {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  justify-self: center !important;
  align-self: center !important;
  width: min(78%, calc(100% - 32px)) !important;
  max-width: none !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 1.35em !important;
  box-sizing: border-box !important;
  padding: .14em .08em .2em !important;
  margin: 0 auto !important;
  overflow: visible !important;
  overflow-x: visible !important;
  overflow-y: visible !important;
  text-overflow: unset !important;
  white-space: nowrap !important;
  line-height: 1.15 !important;
  letter-spacing: -.02em !important;
  text-indent: 0 !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  clip: auto !important;
  clip-path: none !important;
  font-size: calc(clamp(.775rem, 15.5cqw, 2.325rem) * .5) !important;
}

@media (max-width: 390px) {
  :is(
    .mission-readiness-orb,
    .command-orb,
    .score-orb,
    .case-score-orb,
    .evidence-custody-orb,
    .report-studio-orb,
    .ops-readiness-orb,
    .qhx-score-orb,
    .public-orb,
    .bfsi-orb
  ) > :is(strong, .sf-orb-value, .score-value, .value, .number) {
    width: min(82%, calc(100% - 24px)) !important;
    min-height: 1.45em !important;
  }
}

.sf-stage-66-91-10-circular-metric-value-box-unclip-rootfix-marker { display:none; }


/* Stage 66.91.11 — Circular Metrics Optical Symmetry + Readability Masterfix
   Restore a readable centre value while preserving the unclipped value box.
   Curved labels remain native to the shared Sentinel orb system. */
:is(
  .mission-readiness-orb,
  .command-orb,
  .score-orb,
  .case-score-orb,
  .evidence-custody-orb,
  .report-studio-orb,
  .ops-readiness-orb,
  .qhx-score-orb,
  .public-orb,
  .bfsi-orb
) > :is(strong, .sf-orb-value, .score-value, .value, .number) {
  --sf-bubble-value-scale: .72 !important;
  width: min(82%, calc(100% - 28px)) !important;
  min-height: 1.28em !important;
  padding: .08em .1em .14em !important;
  margin: 0 auto !important;
  line-height: 1.06 !important;
  letter-spacing: -.015em !important;
  text-align: center !important;
  font-variant-numeric: tabular-nums lining-nums !important;
  font-size: clamp(1.65rem, 12cqw, 4rem) !important;
}

.sf-orb-curved-ready .orb-arc-label,
.sf-orb-curved-ready .orb-arc-caption {
  text-anchor: middle !important;
}

.sf-orb-curved-ready .orb-arc-label {
  font-size: 9.6px !important;
  letter-spacing: .16em !important;
}

.sf-orb-curved-ready .orb-arc-caption {
  font-size: 9.4px !important;
  letter-spacing: .025em !important;
}

.sf-stage-66-91-11-circular-metrics-optical-symmetry-masterfix-marker { display:none; }

/* Stage 66.91.13 — iPad portrait status-bar safe-clearance rootfix.
   iPad Safari/PWA may report env(safe-area-inset-top) as zero while the native
   status strip still occupies the upper viewport. Keep the fixed Sentinel system
   bar below that strip and reserve matching content clearance. Phone and tablet
   landscape rules remain independently owned. */
@media (orientation: portrait) and (min-width: 721px) and (max-width: 1400px) and (pointer: coarse) {
  body.sf-os-shell-enabled .sf-os-systembar,
  body.sf-os-shell-enabled.sf-ipad-no-sidebar .sf-os-systembar,
  body.sf-os-shell-enabled.sf-ipad-portrait-no-rail .sf-os-systembar,
  html.sf-ipad-no-sidebar body.sf-os-shell-enabled .sf-os-systembar,
  html.sf-ipad-portrait-no-rail body.sf-os-shell-enabled .sf-os-systembar {
    top: max(calc(env(safe-area-inset-top) + 12px), 44px) !important;
    left: max(18px, calc(env(safe-area-inset-left) + 14px)) !important;
    right: max(18px, calc(env(safe-area-inset-right) + 14px)) !important;
  }

  body.sf-os-shell-enabled .main,
  body.sf-os-shell-enabled main.main,
  body.sf-os-shell-enabled [data-ajax-shell-main] {
    padding-top: var(--sf-stage-66-91-13-ipad-portrait-clearance, 126px) !important;
    scroll-padding-top: var(--sf-stage-66-91-13-ipad-portrait-clearance, 126px) !important;
  }
}

.sf-stage-66-91-13-ipad-portrait-statusbar-clearance-rootfix-marker { display:none; }


/* Stage 66.95.2 — subtle persistent-session control */
.sf-keep-signed-in{display:flex!important;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid rgba(255,255,255,.11);border-radius:18px;background:rgba(255,255,255,.045);cursor:pointer}.sf-keep-signed-in>span{display:grid;gap:2px}.sf-keep-signed-in strong{font-size:.92rem}.sf-keep-signed-in small{font-size:.75rem;color:var(--muted,#94a3b8)}.sf-keep-signed-in input[role="switch"]{appearance:none;-webkit-appearance:none;width:44px;height:26px;border:0;border-radius:999px;background:rgba(148,163,184,.34);position:relative;flex:0 0 auto;transition:background .18s ease}.sf-keep-signed-in input[role="switch"]:before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.3);transition:transform .18s ease}.sf-keep-signed-in input[role="switch"]:checked{background:#4d9cff}.sf-keep-signed-in input[role="switch"]:checked:before{transform:translateX(18px)}.sf-keep-signed-in input[role="switch"]:focus-visible{outline:2px solid #8fc2ff;outline-offset:3px}


/* Stage 66.96 — Unified Hero Typography System
   One responsive typography and spacing contract for operational hero surfaces.
   Desktop preserves authority; phone and tablet prioritize first-viewport utility. */
:root {
  --sf-hero-title-size: clamp(2.05rem, 4.8vw, 5.15rem);
  --sf-hero-title-leading: 1.05;
  --sf-hero-title-tracking: .012em;
  --sf-hero-copy-size: clamp(.94rem, 1.15vw, 1.04rem);
  --sf-hero-copy-leading: 1.52;
  --sf-hero-eyebrow-gap: 10px;
  --sf-hero-copy-gap: 17px;
  --sf-hero-actions-gap: 26px;
}

body.sf-os-shell-enabled :is(
  .mission-hero-copy, .ops-hero-copy, .hero-copy, .bfsi-hero-copy,
  .evidence-ledger-copy, .report-studio-copy, .qhx-hero .hero-copy,
  .case-workspace-hero > div:first-child, .case-hero > div:first-child
) { min-width: 0; }

body.sf-os-shell-enabled :is(
  .mission-hero-copy, .ops-hero-copy, .hero-copy, .bfsi-hero-copy,
  .evidence-ledger-copy, .report-studio-copy, .qhx-hero .hero-copy
) > .eyebrow {
  margin: 0 0 var(--sf-hero-eyebrow-gap) !important;
  font-size: .72rem !important;
  line-height: 1.15 !important;
  letter-spacing: .18em !important;
}

body.sf-os-shell-enabled :is(
  .mission-hero-copy h2, .ops-hero-copy h2, .hero-card .hero-copy h2,
  .compact-hero .hero-copy h2, .bfsi-hero-copy h2, .evidence-ledger-copy h2,
  .report-studio-copy h2, .qhx-hero h2, .case-workspace-hero h2, .case-hero h2
) {
  max-width: 19ch !important;
  margin: 0 !important;
  font-size: var(--sf-hero-title-size) !important;
  line-height: var(--sf-hero-title-leading) !important;
  letter-spacing: var(--sf-hero-title-tracking) !important;
  text-wrap: balance;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

body.sf-os-shell-enabled :is(
  .mission-hero-copy, .ops-hero-copy, .hero-copy, .bfsi-hero-copy,
  .evidence-ledger-copy, .report-studio-copy, .qhx-hero .hero-copy
) > p:not(.eyebrow) {
  max-width: 64ch !important;
  margin: var(--sf-hero-copy-gap) 0 0 !important;
  font-size: var(--sf-hero-copy-size) !important;
  line-height: var(--sf-hero-copy-leading) !important;
}

body.sf-os-shell-enabled :is(
  .mission-hero-copy, .ops-hero-copy, .hero-copy, .bfsi-hero-copy,
  .evidence-ledger-copy, .report-studio-copy, .qhx-hero .hero-copy
) > :is(.hero-actions, .evidence-ledger-actions, .ops-command-strip) {
  margin-top: var(--sf-hero-actions-gap) !important;
}

@media (min-width: 721px) and (max-width: 1180px) {
  :root {
    --sf-hero-title-size: clamp(2rem, 5.2vw, 4.15rem);
    --sf-hero-copy-size: .98rem;
    --sf-hero-title-leading: 1.05;
  }
}

@media (max-width: 720px) {
  :root {
    --sf-hero-title-size: clamp(2.05rem, 10.1vw, 3.05rem);
    --sf-hero-title-leading: 1.07;
    --sf-hero-title-tracking: .014em;
    --sf-hero-copy-size: .94rem;
    --sf-hero-copy-leading: 1.48;
    --sf-hero-eyebrow-gap: 9px;
    --sf-hero-copy-gap: 15px;
    --sf-hero-actions-gap: 22px;
  }

  body.sf-os-shell-enabled :is(
    .mission-hero-copy h2, .ops-hero-copy h2, .hero-card .hero-copy h2,
    .compact-hero .hero-copy h2, .bfsi-hero-copy h2, .evidence-ledger-copy h2,
    .report-studio-copy h2, .qhx-hero h2, .case-workspace-hero h2, .case-hero h2
  ) {
    max-width: 17ch !important;
  }

  body.sf-os-shell-enabled :is(
    .mission-hero-panel, .hero-card, .compact-hero, .bfsi-hero,
    .evidence-ledger-hero, .report-studio-native, .qhx-hero, .ops-center-shell
  ) {
    --sf-hero-mobile-padding: 18px;
  }

  body.sf-os-shell-enabled .mission-hero-copy > p:not(.eyebrow) {
    max-width: 36ch !important;
  }
}

.sf-stage-66-96-unified-hero-typography-system-marker { display:none; }

/* Stage 66.96.1 — Inevitable Hero Copy & Optical Tracking */
.sf-stage-66-96-1-inevitable-hero-copy-marker { display:none; }


/* Stage 66.96.3 — Brand Protection Hero Contract Alignment */
body.sf-os-shell-enabled .sbpi-hero {
  position: relative;
  overflow: hidden;
}
body.sf-os-shell-enabled .sbpi-hero .eyebrow {
  margin: 0 0 var(--sf-hero-eyebrow-gap) !important;
  font-size: .72rem !important;
  line-height: 1.15 !important;
  letter-spacing: .18em !important;
}
body.sf-os-shell-enabled .sbpi-hero h2 {
  max-width: 19ch !important;
  margin: 0 !important;
  font-size: var(--sf-hero-title-size) !important;
  line-height: var(--sf-hero-title-leading) !important;
  letter-spacing: var(--sf-hero-title-tracking) !important;
  text-wrap: balance;
  overflow-wrap: normal !important;
  word-break: normal !important;
}
body.sf-os-shell-enabled .sbpi-hero > p.muted {
  max-width: 64ch !important;
  margin: var(--sf-hero-copy-gap) 0 0 !important;
  font-size: var(--sf-hero-copy-size) !important;
  line-height: var(--sf-hero-copy-leading) !important;
}
body.sf-os-shell-enabled .sbpi-hero > .hero-actions {
  margin-top: var(--sf-hero-actions-gap) !important;
}
@media (max-width: 720px) {
  body.sf-os-shell-enabled .sbpi-hero h2 { max-width: 17ch !important; }
}
.sf-stage-66-96-3-brand-protection-hero-contract-marker { display:none; }

/* Stage 66.96.4 — Brand Protection shared hero contract rootfix */
body.sf-os-shell-enabled .sbpi-hero {
  display: grid;
  gap: 0;
}
body.sf-os-shell-enabled .sbpi-hero .hero-copy { min-width: 0; }
body.sf-os-shell-enabled .sbpi-hero .hero-copy > .eyebrow {
  margin: 0 0 var(--sf-hero-eyebrow-gap) !important;
  font-size: .72rem !important;
  line-height: 1.15 !important;
  letter-spacing: .18em !important;
}
body.sf-os-shell-enabled .sbpi-hero .hero-copy > h2 {
  max-width: 19ch !important;
  margin: 0 !important;
  font-size: var(--sf-hero-title-size) !important;
  line-height: var(--sf-hero-title-leading) !important;
  letter-spacing: var(--sf-hero-title-tracking) !important;
  text-wrap: balance;
  overflow-wrap: normal !important;
  word-break: normal !important;
}
body.sf-os-shell-enabled .sbpi-hero .hero-copy > p:not(.eyebrow) {
  max-width: 52ch !important;
  margin: var(--sf-hero-copy-gap) 0 0 !important;
  font-size: var(--sf-hero-copy-size) !important;
  line-height: var(--sf-hero-copy-leading) !important;
}
body.sf-os-shell-enabled .sbpi-hero > .hero-actions {
  margin-top: var(--sf-hero-actions-gap) !important;
}
body.sf-os-shell-enabled .sbpi-hero-meta {
  margin-top: 14px;
  color: var(--muted);
  font-size: .84rem;
}
@media (max-width: 720px) {
  body.sf-os-shell-enabled .sbpi-hero .hero-copy > h2 {
    max-width: 17ch !important;
  }
  body.sf-os-shell-enabled .sbpi-hero {
    padding: 22px !important;
  }
  body.sf-os-shell-enabled .sbpi-hero > .hero-actions {
    gap: 10px !important;
  }
}
.sf-stage-66-96-4-brand-protection-shared-hero-rootfix-marker { display:none; }

/* Stage 67.1 — AURORA Control Centre / CasaOS-inspired visual foundation */
.mission-control-home{
  --aurora-glass:rgba(247,250,255,.60);
  --aurora-glass-strong:rgba(251,253,255,.76);
  --aurora-line:rgba(255,255,255,.68);
  --aurora-ink:#162238;
  --aurora-muted:#607087;
  --aurora-shadow:0 22px 60px rgba(22,54,98,.16),inset 0 1px 0 rgba(255,255,255,.86);
  color:var(--aurora-ink);
  padding:clamp(20px,3vw,44px);
  border-radius:34px;
  overflow:hidden;
  background:
    radial-gradient(circle at 10% 6%,rgba(255,255,255,.9),transparent 28%),
    radial-gradient(circle at 88% 12%,rgba(139,205,255,.34),transparent 32%),
    linear-gradient(135deg,#d9efff 0%,#eaf5ff 32%,#f3f7fb 68%,#dcecff 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
.mission-control-home .mission-environment{opacity:.62;filter:saturate(.82) brightness(1.16)}
.mission-control-home .mission-hero-panel,
.mission-control-home .mission-main-surface,
.mission-control-home .mission-widget,
.mission-control-home .mission-kpi-strip,
.mission-control-home .mission-card{
  border:1px solid var(--aurora-line);
  background:linear-gradient(145deg,rgba(255,255,255,.74),rgba(244,249,255,.48));
  -webkit-backdrop-filter:blur(28px) saturate(145%);
  backdrop-filter:blur(28px) saturate(145%);
  box-shadow:var(--aurora-shadow);
}
.mission-control-home .mission-hero-panel{padding:clamp(22px,3vw,38px);border-radius:30px;gap:24px}
.mission-control-home .mission-hero-panel:before{opacity:.22}
.mission-control-home .mission-hero-copy h2{font-size:clamp(34px,5vw,66px);font-weight:350;letter-spacing:-.045em;line-height:.98;color:#17253c}
.mission-control-home .mission-hero-copy p:not(.eyebrow){max-width:650px;color:#53657d;font-size:clamp(15px,1.5vw,19px);line-height:1.55;font-weight:400}
.mission-control-home .eyebrow{color:#5684b6;letter-spacing:.18em;font-weight:650}
.mission-control-home .mission-clock-card,
.mission-control-home .mission-analog-clock-orb,
.mission-control-home .mission-command-bar,
.mission-control-home .mission-readiness-orb{background:rgba(255,255,255,.52);border:1px solid rgba(255,255,255,.76);box-shadow:inset 0 1px 0 rgba(255,255,255,.92),0 12px 30px rgba(47,82,126,.10)}
.mission-control-home .mission-clock-card strong,
.mission-control-home .mission-readiness-orb strong{color:#17253c;font-weight:350}
.mission-control-home .mission-command-bar strong{color:#263852;font-weight:500}
.mission-control-home .mission-command-bar small,
.mission-control-home .mission-clock-card span,
.mission-control-home .mission-readiness-orb small{color:#6c7c91}
.mission-control-home .mission-desktop-grid{gap:24px}
.mission-control-home .mission-widget-column{gap:14px}
.mission-control-home .mission-widget{border-radius:24px;padding:20px;min-height:118px;transition:transform .28s ease,box-shadow .28s ease}
.mission-control-home .mission-widget:hover{transform:translateY(-3px);box-shadow:0 26px 65px rgba(22,54,98,.19),inset 0 1px 0 #fff}
.mission-control-home .mission-widget strong{color:#20314a;font-weight:480;font-size:clamp(20px,2vw,29px)}
.mission-control-home .mission-widget small{color:#718096}
.mission-control-home .widget-kicker{color:#5f86ae}
.mission-control-home .mission-main-surface{border-radius:30px;padding:clamp(22px,2.5vw,34px)}
.mission-control-home .mission-surface-head h3{font-weight:420;letter-spacing:-.025em;color:#1e2f48;font-size:clamp(24px,2.4vw,34px)}
.mission-control-home .mission-app-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2vw,24px)}
.mission-control-home .mission-app-tile{
  min-height:178px;padding:22px 18px;border-radius:28px;text-align:center;align-items:center;justify-content:center;flex-direction:column;gap:12px;
  border:1px solid rgba(255,255,255,.78);background:linear-gradient(155deg,rgba(255,255,255,.66),rgba(243,248,255,.42));
  box-shadow:0 12px 30px rgba(46,80,122,.10),inset 0 1px 0 rgba(255,255,255,.95);
  transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease,background .28s ease;
}
.mission-control-home .mission-app-tile:hover{transform:translateY(-6px) scale(1.018);background:rgba(255,255,255,.79);box-shadow:0 24px 48px rgba(34,72,120,.18),inset 0 1px 0 #fff}
.mission-control-home .mission-app-icon{
  width:76px;height:76px;display:grid;place-items:center;border-radius:23px;color:#fff;
  background:linear-gradient(145deg,#57b9ff,#3477e8);box-shadow:0 16px 28px rgba(48,113,205,.28),inset 0 1px 1px rgba(255,255,255,.65),inset 0 -8px 18px rgba(16,57,135,.18);
}
.mission-control-home .mission-app-icon svg{width:44px;height:44px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 2px 2px rgba(15,54,115,.16))}
.mission-control-home .tile-evidence .mission-app-icon{background:linear-gradient(145deg,#67d7ba,#20a88e)}
.mission-control-home .tile-entity .mission-app-icon,.mission-control-home .tile-cluster .mission-app-icon{background:linear-gradient(145deg,#a58cff,#6656db)}
.mission-control-home .tile-signal .mission-app-icon,.mission-control-home .tile-alert .mission-app-icon{background:linear-gradient(145deg,#ff8e9a,#e74a63)}
.mission-control-home .tile-collector .mission-app-icon,.mission-control-home .tile-sweep .mission-app-icon{background:linear-gradient(145deg,#65d5ff,#248fc4)}
.mission-control-home .tile-ai .mission-app-icon{background:linear-gradient(145deg,#7b9cff,#4c5bd8)}
.mission-control-home .tile-risk .mission-app-icon{background:linear-gradient(145deg,#ffc76d,#e8832f)}
.mission-control-home .tile-report .mission-app-icon{background:linear-gradient(145deg,#65c9ff,#3b80d5)}
.mission-control-home .tile-ops .mission-app-icon,.mission-control-home .tile-system .mission-app-icon{background:linear-gradient(145deg,#7b8ca8,#485a78)}
.mission-control-home .tile-public .mission-app-icon{background:linear-gradient(145deg,#62d2e8,#298fa7)}
.mission-control-home .tile-qa .mission-app-icon{background:linear-gradient(145deg,#74d28a,#31a35a)}
.mission-control-home .tile-settings .mission-app-icon{background:linear-gradient(145deg,#9aaac2,#60738f)}
.mission-control-home .mission-app-copy{align-items:center;text-align:center}
.mission-control-home .mission-app-copy strong{font-size:16px;color:#1c2b43;font-weight:560;letter-spacing:-.015em}
.mission-control-home .mission-app-copy small{color:#738198;line-height:1.35}
.mission-control-home .mission-app-tile em{position:absolute;top:14px;right:14px;background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.8);color:#66768c;border-radius:999px;padding:5px 8px;font-size:10px;font-style:normal}
.mission-control-home .mission-kpi-strip{border-radius:28px;padding:10px;gap:8px}
.mission-control-home .mission-kpi-strip article{background:rgba(255,255,255,.34);border-radius:20px;padding:18px}
.mission-control-home .mission-kpi-strip strong{color:#1c2d45;font-weight:380}
.mission-control-home .mission-kpi-strip span,.mission-control-home .mission-kpi-strip small{color:#718197}
.mission-control-home .mission-card{border-radius:28px}
.mission-control-home .panel-head h3,.mission-control-home .mission-record strong,.mission-control-home .mission-feed-item strong{color:#24344c}
.mission-control-home .panel-head a{color:#3979bc}
.mission-control-home .mission-record,.mission-control-home .mission-feed-item{border-color:rgba(70,101,140,.10)}
.mission-control-home .mission-record small,.mission-control-home .mission-feed-item small,.mission-control-home .panel-note{color:#728198}
@media(max-width:1180px){.mission-control-home .mission-app-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){
 .mission-control-home{padding:14px;border-radius:24px}
 .mission-control-home .mission-app-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .mission-control-home .mission-app-tile{min-height:154px;padding:18px 10px;border-radius:23px}
 .mission-control-home .mission-app-icon{width:64px;height:64px;border-radius:20px}
 .mission-control-home .mission-app-icon svg{width:37px;height:37px}
}
@media(prefers-reduced-motion:reduce){.mission-control-home .mission-app-tile,.mission-control-home .mission-widget{transition:none!important}}
