*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.static{position:static}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.left-0{left:0}.top-0{top:0}.top-16{top:4rem}.top-full{top:100%}.z-40{z-index:40}.z-50{z-index:50}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-auto{margin-left:auto}.mr-3{margin-right:.75rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.\!grid{display:grid!important}.grid{display:grid}.hidden{display:none}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-7{height:1.75rem}.h-9{height:2.25rem}.min-h-\[120px\]{min-height:120px}.min-h-\[170px\]{min-height:170px}.min-h-\[88px\]{min-height:88px}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0}.max-w-2xl{max-width:42rem}.max-w-5xl{max-width:64rem}.max-w-7xl{max-width:80rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-pointer{cursor:pointer}.list-disc{list-style-type:disc}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.625rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[\#1a3a8f\]\/20{border-color:rgba(26,58,143,.2)}.border-\[var\(--gold-soft\)\]{border-color:var(--gold-soft)}.border-\[var\(--line\)\]{border-color:var(--line)}.border-\[var\(--line-2\)\]{border-color:var(--line-2)}.border-white\/40{border-color:hsla(0,0%,100%,.4)}.bg-\[\#33333a\]{--tw-bg-opacity:1;background-color:rgb(51 51 58/var(--tw-bg-opacity,1))}.bg-\[\#FCFAF4\]{--tw-bg-opacity:1;background-color:rgb(252 250 244/var(--tw-bg-opacity,1))}.bg-\[\#f4f7fd\]{--tw-bg-opacity:1;background-color:rgb(244 247 253/var(--tw-bg-opacity,1))}.bg-\[rgba\(255\2c 255\2c 255\2c \.45\)\]{background-color:hsla(0,0%,100%,.45)}.bg-charcoal{--tw-bg-opacity:1;background-color:rgb(27 27 29/var(--tw-bg-opacity,1))}.bg-cream{--tw-bg-opacity:1;background-color:rgb(251 248 241/var(--tw-bg-opacity,1))}.bg-gold{--tw-bg-opacity:1;background-color:rgb(226 163 41/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/95{background-color:hsla(0,0%,100%,.95)}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pl-5{padding-left:1.25rem}.pr-1{padding-right:.25rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[\.58rem\]{font-size:.58rem}.text-\[\.62rem\]{font-size:.62rem}.text-\[\.66rem\]{font-size:.66rem}.text-\[\.6rem\]{font-size:.6rem}.text-\[\.72rem\]{font-size:.72rem}.text-\[\.74rem\]{font-size:.74rem}.text-\[\.7rem\]{font-size:.7rem}.text-\[\.98rem\]{font-size:.98rem}.text-\[1\.05rem\]{font-size:1.05rem}.text-\[2\.1rem\]{font-size:2.1rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-\[1\.05\]{line-height:1.05}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[\.22em\]{letter-spacing:.22em}.tracking-\[\.2em\]{letter-spacing:.2em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-\[\#1a3a8f\]{--tw-text-opacity:1;color:rgb(26 58 143/var(--tw-text-opacity,1))}.text-\[\#241500\]{--tw-text-opacity:1;color:rgb(36 21 0/var(--tw-text-opacity,1))}.text-\[\#2f6b36\]{--tw-text-opacity:1;color:rgb(47 107 54/var(--tw-text-opacity,1))}.text-\[\#3a2400\]{--tw-text-opacity:1;color:rgb(58 36 0/var(--tw-text-opacity,1))}.text-\[\#3a2a08\]{--tw-text-opacity:1;color:rgb(58 42 8/var(--tw-text-opacity,1))}.text-\[\#4a3a18\]{--tw-text-opacity:1;color:rgb(74 58 24/var(--tw-text-opacity,1))}.text-\[\#5a4413\]{--tw-text-opacity:1;color:rgb(90 68 19/var(--tw-text-opacity,1))}.text-\[\#EDEAE2\]{--tw-text-opacity:1;color:rgb(237 234 226/var(--tw-text-opacity,1))}.text-\[\#aaa49a\]{--tw-text-opacity:1;color:rgb(170 164 154/var(--tw-text-opacity,1))}.text-\[\#cfcabd\]{--tw-text-opacity:1;color:rgb(207 202 189/var(--tw-text-opacity,1))}.text-\[var\(--ink\)\]{color:var(--ink)}.text-\[var\(--ink-soft\)\]{color:var(--ink-soft)}.text-charcoal{--tw-text-opacity:1;color:rgb(27 27 29/var(--tw-text-opacity,1))}.text-gold{--tw-text-opacity:1;color:rgb(226 163 41/var(--tw-text-opacity,1))}.text-gold-deep{--tw-text-opacity:1;color:rgb(188 126 22/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-\[var\(--gold-deep\)\]{accent-color:var(--gold-deep)}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-2xl,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.last\:border-0:last-child{border-width:0}.hover\:border-\[var\(--gold-soft\)\]:hover{border-color:var(--gold-soft)}.hover\:bg-cream:hover{--tw-bg-opacity:1;background-color:rgb(251 248 241/var(--tw-bg-opacity,1))}.hover\:text-\[var\(--ink\)\]:hover{color:var(--ink)}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:ml-auto{margin-left:auto}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:gap-4{gap:1rem}.sm\:gap-7{gap:1.75rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-20{padding-top:5rem;padding-bottom:5rem}.sm\:text-left{text-align:left}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-\[13px\]{font-size:13px}.sm\:text-\[2\.9rem\]{font-size:2.9rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media (min-width:768px){.md\:inline{display:inline}}@media (min-width:1024px){.lg\:sticky{position:sticky}.lg\:top-6{top:1.5rem}.lg\:top-\[72px\]{top:72px}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:ml-2{margin-left:.5rem}.lg\:mt-0{margin-top:0}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-\[72px\]{height:72px}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-end{align-items:flex-end}.lg\:border-b-0{border-bottom-width:0}.lg\:border-r{border-right-width:1px}.lg\:text-\[3\.2rem\]{font-size:3.2rem}}@media (min-width:1280px){.xl\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xl\:gap-7{gap:1.75rem}}

/* ===== IS4NCDs brand layer ===== */
:root{
    --charcoal:#1b1b1d;
    --charcoal-2:#27272b;
    --gold:#E2A329;
    --gold-deep:#BC7E16;
    --gold-soft:#F2D49A;
    --gold-wash:#FBEFD3;
    --blue:#2C6E8F;
    --teal:#2F9C8B;
    --lightblue:#7FB6CC;
    --rust:#B8542C;
    --ink:#242427;
    --ink-soft:#55555d;
    --cream:#FBF8F1;
    --paper:#ffffff;
    --line:#E8E2D6;
    --line-2:#D9D2C4;
    /* CPC-01 hero-field tokens — defaults are the EXACT values the hero
       previously hard-coded, so tenants without an override render
       identically. Tenant palette config may substitute these (server
       allowlist in functions/_lib/composition.js). */
    --hero-grad-from:#E7AE36;
    --hero-grad-mid:#DC9A22;
    --hero-grad-to:#C9871A;
    --hero-glow-a:#F2C25A;
    --hero-glow-b:#C98B17;
    --hero-ink-strong:#241500;
    --hero-ink:#3a2a08;
    --hero-ink-soft:#4a3a18;
    --hero-eyebrow-ink:#3a2400;

    /* ===== PX-1B design-system tokens (authoritative) =====================
       Consolidation, NOT a rebrand: every value below equals a colour/size
       ALREADY in use, so pages render identically while the vocabulary is
       unified. Governing reference: docs/PX-1A_AUDIT_AND_DESIGN_BASELINE.md §3.
       Adds the semantic roles the audit found missing (success/warning/danger/
       info/muted/surface/border) so duplicated inline hex can reference a token. */
    /* Semantic surfaces & borders (aliases of existing brand values) */
    --surface:#ffffff;            /* = --paper */
    --surface-sunk:#F3EFE4;       /* = existing .tagchip / sunk fills */
    --border:#E8E2D6;             /* = --line */
    --border-strong:#D9D2C4;      /* = --line-2 */
    --muted:#55555d;              /* = --ink-soft */
    --muted-fill:#EFEFEF;         /* = existing 'mut' chip fill */
    /* Semantic status roles (text + tint fill + border) — values preserve the
       exact colours the chip()/badge() tone maps + inline styles already used. */
    --success:#2f6b36;  --success-fill:#E7F3E8;  --success-border:#BFE0C4;
    --warning:#BC7E16;  --warning-fill:#FBEFD3;  --warning-border:#F2D49A;
    --danger:#B8542C;   --danger-fill:#F7E6E1;   --danger-border:#E8C4B4;  /* = --rust */
    --info:#2C6E8F;     --info-fill:#EAF2F5;     --info-border:#C3D8E2;    /* = --blue */
    --link:#1a3a8f;                                                        /* text links only */
    /* Radii — reduced to 3 institutional steps (+ pill). Card/modal keep their
       current 14/16px; small controls settle on 8px (was 8–10). */
    --r-sm:8px; --r-md:14px; --r-lg:16px; --r-pill:999px;
    /* Spacing — the single 0.25rem grid (matches the compiled Tailwind scale) */
    --sp-1:.25rem; --sp-2:.5rem; --sp-3:.75rem; --sp-4:1rem; --sp-5:1.25rem; --sp-6:1.5rem;
    /* Named spacing roles (for hand-written component CSS) */
    --pad-card:1.25rem;           /* p-5 */
    --pad-card-sm:1rem;           /* p-4 */
    --gap-inline:.5rem;           /* chip/action gaps */
    --gap-grid:.75rem;            /* card grids */
    --section-gap:1.5rem;         /* between page sections */
  }

  *{ -webkit-font-smoothing:antialiased; }

  body{
    font-family:var(--font-body,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif);
    color:var(--ink);
    background:var(--cream);
  }

  /* The variable hook permits later tenant activation; the current serif
     default remains unchanged until a scoped visual implementation phase. */
  .font-display{
    font-family:var(--font-display,Georgia,"Times New Roman","Iowan Old Style",Cambria,serif);
    letter-spacing:-0.01em;
  }
  .font-mono-stack{
    font-family:ui-monospace,"SF Mono","Cascadia Mono","Roboto Mono",Menlo,Consolas,monospace;
  }
  .eyebrow{
    font-size:.72rem;
    letter-spacing:.18em;
    text-transform:uppercase;
    font-weight:700;
  }

  /* ---- Signature: segmented-roundel monogram (echoes live IS4NCDs mark) ---- */
  .roundel{
    border-radius:50%;
    background:conic-gradient(
      var(--gold) 0 42%,
      var(--blue) 42% 60%,
      var(--teal) 60% 76%,
      var(--lightblue) 76% 88%,
      var(--rust) 88% 100%
    );
    position:relative;
    flex:none;
  }
  .roundel::after{
    content:"";
    position:absolute;
    inset:22%;
    border-radius:50%;
    background:var(--hub-bg,var(--charcoal));
  }
  .roundel.on-dark::after{ background:var(--charcoal); }
  .roundel.on-light::after{ background:var(--cream); }
  .roundel.on-paper::after{ background:var(--paper); }

  /* ---- Signature: spectrum accent bar (echoes live footer) ---- */
  .spectrum{
    height:6px;
    width:100%;
    background:linear-gradient(90deg,
      var(--gold) 0 52%,
      var(--blue) 52% 66%,
      var(--teal) 66% 80%,
      var(--lightblue) 80% 90%,
      var(--rust) 90% 100%);
    border:none;
  }
  .spectrum-thin{ height:3px; }

  a{ text-decoration:none; }

  /* Visible focus states everywhere */
  a:focus-visible, button:focus-visible, input:focus-visible,
  select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible{
    outline:3px solid var(--gold);
    outline-offset:2px;
    border-radius:4px;
  }

  /* ------------------------------- Header ------------------------------- */
  .topnav{ background:var(--charcoal); }
  .navlink{
    color:#EDEAE2; font-size:.9rem; font-weight:500; padding:.45rem .2rem;
    position:relative; white-space:nowrap;
  }
  .navlink:hover{ color:#fff; }
  .navlink.active{ color:#fff; }
  .navlink.active::after{
    content:""; position:absolute; left:0; right:0; bottom:-.55rem; height:3px;
    background:var(--gold); border-radius:2px;
  }
  .dropdown-panel{ display:none; }
  .dropdown.open .dropdown-panel{ display:block; }

  /* Sub-navigation (in-page) */
  .subnav-link{
    color:var(--ink-soft); font-size:.83rem; font-weight:600; padding:.85rem .15rem;
    border-bottom:3px solid transparent; white-space:nowrap;
  }
  .subnav-link:hover{ color:var(--ink); }
  .subnav-link.active{ color:var(--gold-deep); border-bottom-color:var(--gold); }

  /* ------------------------------- Hero -------------------------------- */
  .hero{
    /* CPC-01: field colors are tenant tokens (defaults = the previous
       hard-coded golds). The zero-alpha out-stops use `transparent` —
       identical rendering under CSS premultiplied gradient
       interpolation, and hue-correct under any tenant override. */
    background:
      radial-gradient(120% 120% at 88% -10%, var(--hero-glow-a) 0%, transparent 55%),
      radial-gradient(120% 130% at 5% 120%, var(--hero-glow-b) 0%, transparent 50%),
      linear-gradient(135deg,var(--hero-grad-from) 0%, var(--hero-grad-mid) 55%, var(--hero-grad-to) 100%);
    position:relative; overflow:hidden;
  }
  /* CPC-01 hero ink classes — replace the four literal color utilities
     inside the hero only; defaults equal the previous literals. */
  .hero-ink-strong{ color:var(--hero-ink-strong); }
  .hero-ink{ color:var(--hero-ink); }
  .hero-ink-soft{ color:var(--hero-ink-soft); }
  .hero-eyebrow-ink{ color:var(--hero-eyebrow-ink); }
  .hero-shape{ position:absolute; border-radius:50%; pointer-events:none; }
  .hero-ring{
    position:absolute; border-radius:50%; border:2px solid rgba(255,255,255,.18);
    pointer-events:none;
  }

  /* ------------------------------- Cards ------------------------------- */
  .card{
    background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md);
  }
  .card-hover{ transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
  .card-hover:hover{
    transform:translateY(-3px);
    box-shadow:0 14px 34px -18px rgba(40,30,10,.35);
    border-color:var(--gold-soft);
  }

  .chip{
    display:inline-flex; align-items:center; gap:.4rem;
    font-size:.72rem; font-weight:700; letter-spacing:.02em;
    padding:.28rem .6rem; border-radius:var(--r-pill); border:1px solid transparent;
  }
  .chip-dot{ width:7px; height:7px; border-radius:50%; }

  .badge{
    font-size:.68rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
    padding:.2rem .5rem; border-radius:6px;
  }

  /* Form controls */
  .field{
    width:100%; border:1px solid var(--border-strong); border-radius:var(--r-sm);
    padding:.62rem .75rem; font-size:.92rem; background:var(--surface); color:var(--ink);
  }
  .field::placeholder{ color:#9a958c; }
  .field:focus{ border-color:var(--gold); }
  .field-label{ font-size:.8rem; font-weight:700; color:var(--ink); margin-bottom:.3rem; display:block; }
  .req{ color:var(--danger); }
  .field.invalid{ border-color:var(--danger); background:var(--danger-fill); }
  .err-msg{ color:var(--danger); font-size:.74rem; margin-top:.25rem; display:none; }
  .err-msg.show{ display:block; }

  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
    font-weight:700; font-size:.92rem; border-radius:var(--r-sm); padding:.7rem 1.15rem;
    cursor:pointer; border:1px solid transparent; transition:background .15s ease, transform .12s ease, box-shadow .15s ease;
  }
  .btn:active{ transform:translateY(1px); }
  .btn-gold{ background:var(--gold); color:#2a1d00; }
  .btn-gold:hover{ background:var(--gold-deep); color:#fff; }
  .btn-dark{ background:var(--charcoal); color:#fff; }
  .btn-dark:hover{ background:#000; }
  .btn-ghost{ background:transparent; color:var(--ink); border-color:var(--border-strong); }
  .btn-ghost:hover{ border-color:var(--gold); background:#fff; }
  .btn-light{ background:#fff; color:var(--ink); border-color:rgba(255,255,255,.0); }
  /* PX-1B — destructive variant + size modifiers (replace copy-pasted inline
     text-/py-/px- on buttons; sizes match the values the console already used). */
  .btn-danger{ background:var(--danger); color:#fff; }
  .btn-danger:hover{ background:#9a4523; }
  .btn-sm{ font-size:.875rem; padding:.375rem .75rem; }
  .btn-xs{ font-size:.75rem; padding:.25rem .625rem; gap:.35rem; }

  /* ===== PX-1B shared component vocabulary =============================
     Canonical classes so audited surfaces stop hand-rolling equivalents.
     Reference: docs/PX-1A_AUDIT_AND_DESIGN_BASELINE.md §3.5. */
  /* Typography roles — one scale, applied by role not by arbitrary size. */
  .ds-page-title{ font-size:1.5rem; line-height:1.2; font-weight:700; color:var(--charcoal); }
  .ds-section-title{ font-size:1.05rem; line-height:1.3; font-weight:700; color:var(--charcoal); }
  .ds-card-title{ font-size:.95rem; line-height:1.35; font-weight:700; color:var(--charcoal); }
  .ds-body{ font-size:.875rem; line-height:1.55; color:var(--ink); }
  .ds-label{ font-size:.8rem; font-weight:700; color:var(--ink); }
  .ds-help{ font-size:.75rem; line-height:1.5; color:var(--muted); }
  .ds-caption{ font-size:.625rem; letter-spacing:.04em; color:var(--muted); }
  .ds-status{ font-size:.75rem; font-weight:700; }
  /* Semantic badge tints (route chip()/badge() tones through tokens) */
  .badge-success{ background:var(--success-fill); color:var(--success); }
  .badge-warning{ background:var(--warning-fill); color:var(--warning); }
  .badge-danger{ background:var(--danger-fill); color:var(--danger); }
  .badge-info{ background:var(--info-fill); color:var(--info); }
  .badge-muted{ background:var(--muted-fill); color:var(--muted); }
  .badge-accent{ background:var(--gold-wash); color:var(--charcoal); }
  /* Category chip semantic variants (pill form) */
  .chip-success{ background:var(--success-fill); color:var(--success); border-color:var(--success-border); }
  .chip-warning{ background:var(--warning-fill); color:var(--warning); border-color:var(--warning-border); }
  .chip-danger{ background:var(--danger-fill); color:var(--danger); border-color:var(--danger-border); }
  .chip-info{ background:var(--info-fill); color:var(--info); border-color:var(--info-border); }
  .chip-muted{ background:var(--muted-fill); color:var(--muted); border-color:var(--border); }
  /* Alert / feedback block (persistent, unlike the transient toast) */
  .alert{ display:flex; gap:.5rem; align-items:flex-start; border:1px solid var(--border);
    border-radius:var(--r-sm); padding:.7rem .9rem; font-size:.85rem; line-height:1.5; }
  /* An alert with nothing to say renders NOTHING: the Tailwind reset's [hidden]
     rule is :where()-wrapped (zero specificity) and loses to .alert's display,
     which painted empty pink bars. */
  .alert[hidden]{ display:none !important; }
  .alert-danger{ background:var(--danger-fill); border-color:var(--danger-border); color:var(--danger); }
  .alert-success{ background:var(--success-fill); border-color:var(--success-border); color:var(--success); }
  .alert-warning{ background:var(--warning-fill); border-color:var(--warning-border); color:#6d4a09; }
  .alert-info{ background:var(--info-fill); border-color:var(--info-border); color:var(--info); }
  /* Empty state (dashed, muted — distinct from a real card) */
  .empty-state{ border:1px dashed var(--border-strong); border-radius:var(--r-md);
    padding:1.25rem; text-align:center; color:var(--muted); font-size:.9rem; background:var(--surface); }
  /* Review panel — the canonical "reviewable item" card (drafts + questions):
     a card with a gold status rail; variants recolour the rail. */
  .review-panel{ background:var(--surface); border:1px solid var(--border);
    border-left:3px solid var(--gold); border-radius:var(--r-md); }
  .review-panel.is-approved{ border-left-color:var(--success); }
  .review-panel.is-danger{ border-left-color:var(--danger); }
  .review-panel.is-review{ border-left-color:var(--info); }
  /* Summary / KPI tile */
  .summary-card{ background:var(--surface); border:1px solid var(--border);
    border-radius:var(--r-md); padding:var(--pad-card-sm); }
  /* Table alias — promote table.adm to a semantic .table (identical rules) */
  table.table{ width:100%; border-collapse:collapse; font-size:.82rem; }
  table.table thead th{ position:sticky; top:0; background:var(--charcoal); color:#fff;
    text-align:left; font-weight:700; padding:.55rem .7rem; white-space:nowrap; }
  table.table td{ border-bottom:1px solid var(--border); padding:.5rem .7rem; vertical-align:top; }

  /* ===== PX-1E canonical state components (uses PX-1B tokens; no new system) =
     Loading is TEXT + aria-busy (+ optional reserved-layout skeleton) — no
     spinner or decorative animation, so nothing induces motion discomfort. */
  .state-inline{ color:var(--muted); font-size:.85rem; }        /* inline loading / status line */
  .state-loading{ color:var(--muted); font-size:.85rem; padding:.25rem 0; }
  .state-unavailable{ color:var(--muted); font-size:.9rem; background:var(--surface);
    border:1px dashed var(--border-strong); border-radius:var(--r-md); padding:1rem; }
  /* Reserved-layout placeholder — a STATIC tint block (prevents layout jump);
     intentionally un-animated. */
  .skeleton{ background:var(--surface-sunk); border-radius:var(--r-sm); }
  .skeleton-line{ height:.7rem; background:var(--surface-sunk); border-radius:var(--r-pill); margin:.4rem 0; }
  .skeleton-line.w-60{ width:60%; } .skeleton-line.w-40{ width:40%; } .skeleton-line.w-80{ width:80%; }

  /* ===== PX-1F responsive & accessibility hardening ======================= */
  /* Screen-reader-only text (Tailwind tree-shook its .sr-only; restore it so
     meaningful glyph-only controls can carry an accessible name). */
  .sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  /* Accessible, locally-scoped table scroller — used ONLY where collapsing a
     wide table would lose essential meaning. Focusable + announced so keyboard
     and AT users can reach the horizontal overflow; a subtle edge hints at it. */
  .table-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch;
    background:linear-gradient(90deg,var(--surface) 30%, rgba(255,255,255,0)),
      linear-gradient(90deg, rgba(0,0,0,.04), transparent 8px) 100% 0/12px 100% no-repeat local;
    scrollbar-width:thin; }
  .table-scroll:focus-visible{ outline:3px solid var(--gold); outline-offset:2px; }

  /* PX-1H-A: authenticated-entry transition overlay. Masks the public-shell
     flash while identity + destination resolve; hidden for signed-out visitors. */
  .auth-transition{ position:fixed; inset:0; z-index:1000; display:flex;
    align-items:center; justify-content:center;
    background:var(--cream, #FBF7EE); }
  .auth-transition.hidden{ display:none; }
  .auth-transition-card{ display:flex; flex-direction:column; align-items:center;
    gap:14px; color:var(--ink, #3a3327); font-weight:600; }
  .auth-spinner{ width:34px; height:34px; border-radius:50%;
    border:3px solid var(--gold-soft, #E7D9AE); border-top-color:var(--gold-deep, #8a6d1f);
    animation:auth-spin .8s linear infinite; }
  @keyframes auth-spin{ to{ transform:rotate(360deg); } }
  @media (prefers-reduced-motion: reduce){ .auth-spinner{ animation-duration:2s; } }

  /* ---------- PX-1H-B: Sample Completion Acknowledgement (demo artifact) ---- */
  .ack-overlay{ position:fixed; inset:0; z-index:1100; display:none; flex-direction:column;
    background:rgba(28,24,18,.55); }
  .ack-overlay.open{ display:flex; }
  .ack-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:12px;
    flex-wrap:wrap; padding:10px 16px; background:var(--charcoal, #1b1b1d); color:#EDEAE2; }
  .ack-toolbar-label{ font-weight:700; font-size:.9rem; }
  .ack-toolbar-actions{ display:flex; gap:8px; }
  .ack-scroll{ flex:1; overflow:auto; -webkit-overflow-scrolling:touch; padding:24px 16px; }
  .ack-sheet{ position:relative; max-width:820px; margin:0 auto; background:#fff; color:#241f17;
    border:1px solid var(--line, #E4DCC9); border-radius:var(--r-md, 14px);
    box-shadow:0 18px 50px rgba(0,0,0,.25); padding:clamp(28px,5vw,56px); overflow:hidden; }
  .ack-ribbon{ position:absolute; top:22px; right:-52px; transform:rotate(45deg);
    background:var(--rust, #B8542C); color:#fff; font-weight:800; letter-spacing:.18em;
    font-size:.8rem; padding:6px 64px; }
  .ack-watermark{ position:absolute; inset:0; display:grid; place-items:center; pointer-events:none;
    font-weight:800; font-size:clamp(4rem,18vw,9rem); color:rgba(184,84,44,.06);
    letter-spacing:.1em; transform:rotate(-24deg); }
  .ack-head{ display:flex; align-items:center; gap:14px; position:relative; }
  .ack-logo{ height:52px; width:auto; max-width:200px; object-fit:contain; }
  /* PX-1H-C: accessible Close control — high contrast on the dark toolbar,
     visible hover + keyboard focus, ~44px touch target. */
  .ack-close{ display:inline-flex; align-items:center; gap:6px; min-height:44px; min-width:44px;
    padding:8px 16px; border-radius:var(--r-sm, 8px); font-weight:700; font-size:.9rem;
    color:#fff; background:rgba(255,255,255,.12); border:1.5px solid rgba(255,255,255,.85);
    cursor:pointer; transition:background .15s ease, border-color .15s ease; }
  .ack-close:hover{ background:rgba(255,255,255,.26); border-color:#fff; }
  .ack-close:focus-visible{ outline:3px solid var(--gold, #E2A329); outline-offset:2px; }
  .ack-close span{ font-size:1.2rem; line-height:1; }
  .ack-eyebrow{ margin-top:18px; text-transform:uppercase; letter-spacing:.16em; font-size:.72rem;
    font-weight:800; color:var(--rust, #B8542C); position:relative; }
  .ack-title{ font-family:var(--font-display, inherit); font-size:clamp(1.5rem,4vw,2.1rem);
    font-weight:800; margin-top:4px; position:relative; }
  .ack-lead{ margin-top:14px; color:#4a4235; position:relative; }
  .ack-name{ font-family:var(--font-display, inherit); font-size:clamp(1.4rem,3.5vw,1.8rem);
    font-weight:800; margin-top:2px; position:relative; }
  .ack-course{ font-size:1.1rem; font-weight:700; margin-top:2px; position:relative; }
  .ack-meta{ display:flex; flex-wrap:wrap; gap:24px; margin-top:22px; position:relative; }
  .ack-meta dt{ text-transform:uppercase; letter-spacing:.1em; font-size:.66rem; font-weight:800; color:#7a7060; }
  .ack-meta dd{ font-size:.95rem; font-weight:700; margin-top:2px; }
  .ack-statement{ margin-top:22px; font-size:.86rem; line-height:1.5; color:#4a4235;
    border-top:1px solid var(--line, #E4DCC9); padding-top:16px; position:relative; }
  .ack-sign{ margin-top:34px; position:relative; }
  .ack-sign-line{ display:block; width:min(280px,70%); height:1px; background:#241f17; }
  .ack-sign-label{ margin-top:6px; font-size:.78rem; color:#7a7060; font-weight:700; }
  .ack-footnote{ margin-top:22px; font-size:.72rem; color:#7a7060; position:relative; }

  /* Print: only the sheet, on ONE clean A4 LANDSCAPE page, when our Print action
     ran. Vertical rhythm is tightened so the certificate composition fits a
     single landscape page with readable margins and no clipping (PX-1H-C). */
  @media print{
    body.ack-print > *:not(#sampleAckOverlay){ display:none !important; }
    body.ack-print{ background:#fff !important; }
    body.ack-print #sampleAckOverlay{ position:static !important; display:block !important; background:#fff !important; }
    body.ack-print #sampleAckOverlay .ack-toolbar{ display:none !important; }
    body.ack-print #sampleAckOverlay .ack-scroll{ overflow:visible !important; padding:0 !important; }
    body.ack-print .ack-sheet{ box-shadow:none !important; border:none !important; border-radius:0 !important;
      max-width:100% !important; margin:0 auto !important; padding:18px 44px !important; overflow:hidden !important; }
    body.ack-print .ack-watermark{ font-size:7rem !important; }
    body.ack-print .ack-eyebrow{ margin-top:10px !important; }
    body.ack-print .ack-title{ font-size:1.8rem !important; }
    body.ack-print .ack-lead{ margin-top:8px !important; }
    body.ack-print .ack-name{ font-size:1.6rem !important; }
    body.ack-print .ack-meta{ margin-top:14px !important; }
    body.ack-print .ack-statement{ margin-top:14px !important; padding-top:10px !important; }
    body.ack-print .ack-sign{ margin-top:22px !important; }
    body.ack-print .ack-footnote{ margin-top:14px !important; }
    @page{ size:A4 landscape; margin:12mm; }
  }

  /* Tabs (capabilities + modal) */
  .tabbtn{
    font-weight:700; font-size:.86rem; padding:.6rem .95rem; border-radius:9px;
    color:var(--ink-soft); cursor:pointer; border:1px solid transparent; background:transparent;
  }
  .tabbtn:hover{ color:var(--ink); }
  .tabbtn.active{ background:var(--charcoal); color:#fff; }
  .modal-tab{
    font-size:.8rem; font-weight:700; padding:.5rem .7rem; border-radius:8px;
    color:var(--ink-soft); cursor:pointer; background:transparent; border:1px solid transparent;
    white-space:nowrap;
  }
  .modal-tab.active{ background:var(--gold-wash); color:var(--gold-deep); border-color:var(--gold-soft); }

  .tabpane, .modal-pane{ display:none; }
  .tabpane.active, .modal-pane.active{ display:block; animation:fade .25s ease; }
  @keyframes fade{ from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:none;} }

  /* Readiness / progress bars */
  .bar{ height:7px; background:#EEE7D8; border-radius:999px; overflow:hidden; }
  .bar > span{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--gold),var(--gold-deep)); }

  /* Roadmap timeline */
  .phase-line{ position:relative; }
  .phase-line::before{
    content:""; position:absolute; left:13px; top:6px; bottom:6px; width:2px; background:var(--line-2);
  }
  .phase-dot{
    width:28px; height:28px; border-radius:50%; flex:none; display:grid; place-items:center;
    font-size:.72rem; font-weight:800; color:#fff; position:relative; z-index:1;
  }

  /* Modal */
  .modal-backdrop{
    position:fixed; inset:0; background:rgba(20,16,8,.55); backdrop-filter:blur(2px);
    display:none; align-items:flex-start; justify-content:center; padding:1rem; z-index:80; overflow-y:auto;
  }
  .modal-backdrop.open{ display:flex; }
  .modal-card{
    background:#fff; border-radius:16px; max-width:760px; width:100%; margin:3.5rem auto;
    box-shadow:0 30px 80px -20px rgba(0,0,0,.5); animation:pop .22s ease;
  }
  @keyframes pop{ from{opacity:0; transform:scale(.97) translateY(8px);} to{opacity:1; transform:none;} }

  /* Status banner */
  .statusbar{ background:#241F14; color:#F3ECDB; }

  /* Back to top */
  #toTop{
    position:fixed; right:18px; bottom:18px; z-index:70; width:46px; height:46px; border-radius:12px;
    background:var(--charcoal); color:#fff; display:none; align-items:center; justify-content:center;
    box-shadow:0 10px 24px -10px rgba(0,0,0,.5); cursor:pointer;
  }
  #toTop:hover{ background:#000; }
  #toTop.show{ display:flex; }

  .section-pad{ padding-top:4.5rem; padding-bottom:4.5rem; }
  .rule-label{
    display:inline-flex; align-items:center; gap:.55rem; color:var(--gold-deep);
  }
  .rule-label::before{ content:""; width:26px; height:2px; background:var(--gold); display:inline-block; }

  @media (prefers-reduced-motion: reduce){
    *{ scroll-behavior:auto !important; animation:none !important; transition:none !important; }
  }

  /* Mobile menu */
  @media (max-width:1023px){
    #mainMenu{ display:none; }
    #mainMenu.open{
      display:flex; flex-direction:column; position:absolute; top:100%; left:0; right:0;
      background:var(--charcoal-2); padding:1rem 1.25rem 1.4rem; gap:.35rem; z-index:60;
      border-top:1px solid rgba(255,255,255,.08);
    }
    #mainMenu.open .navlink.active::after{ display:none; }
    #mainMenu.open .navlink{ padding:.6rem 0; border-bottom:1px solid rgba(255,255,255,.06); }
    #mainMenu.open .dropdown-panel{ position:static; box-shadow:none; background:transparent; border:none; padding-left:.5rem; }
  }

  /* ----------------------------- App / logged-in preview ----------------------------- */
  #appView{ min-height:100vh; background:var(--cream); }
  .app-topbar{ background:var(--charcoal); color:#fff; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.7rem 1rem; position:sticky; top:0; z-index:50; flex-wrap:wrap; }
  .role-switch{ display:inline-flex; background:#33333a; border-radius:9px; padding:3px; }
  .role-btn{ font-size:.8rem; font-weight:700; color:#cfcabd; padding:.35rem .8rem; border-radius:7px; cursor:pointer; border:none; background:transparent; }
  .role-btn.active{ background:var(--gold); color:#2a1d00; }
  .app-shell{ display:flex; align-items:flex-start; }
  .app-side{ width:240px; flex:none; background:#fff; border-right:1px solid var(--line); min-height:calc(100vh - 56px); position:sticky; top:56px; align-self:flex-start; }
  .side-inner{ padding:1rem .85rem; }
  .side-link{ display:flex; align-items:center; gap:.7rem; padding:.6rem .75rem; border-radius:9px; font-size:.88rem; font-weight:600; color:var(--ink-soft); cursor:pointer; }
  .side-link:hover{ background:var(--cream); color:var(--ink); }
  .side-link.active{ background:var(--gold-wash); color:var(--gold-deep); }
  .side-link .ic{ width:8px; height:8px; border-radius:3px; background:var(--line-2); flex:none; }
  .side-link.active .ic{ background:var(--gold); }
  .side-group{ font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; font-weight:800; color:#a89f8c; padding:.9rem .75rem .3rem; }
  .app-main{ flex:1; min-width:0; }
  .app-wrap{ max-width:1040px; margin:0 auto; padding:1.5rem 1rem 3rem; }
  .avatar{ width:54px; height:54px; flex:none; border-radius:50%; background:var(--gold-deep); color:#fff; display:grid; place-items:center; font-weight:800; font-family:Georgia,serif; font-size:1.15rem; }
  .ring{ width:104px; height:104px; border-radius:50%; display:grid; place-items:center; position:relative; margin:0 auto; }
  .ring::before{ content:""; position:absolute; inset:11px; border-radius:50%; background:#fff; }
  .ring span{ position:relative; font-weight:800; color:var(--ink); font-family:Georgia,serif; font-size:1.15rem; }
  .acc-body{ display:none; }
  .acc.open .acc-body{ display:block; }
  .acc.open .acc-chev{ transform:rotate(180deg); }
  .acc-chev{ transition:transform .2s ease; flex:none; }
  .unit-dot{ width:26px; height:26px; flex:none; border-radius:50%; display:grid; place-items:center; font-size:.72rem; font-weight:800; background:#EEE7D8; color:var(--ink-soft); }
  .unit-dot.current{ background:var(--gold); color:#2a1d00; }
  .unit-dot.done{ background:#3f7a45; color:#fff; }
  .videoframe{ aspect-ratio:16/9; background:linear-gradient(135deg,#2b2b30,#1b1b1d); border-radius:14px; position:relative; overflow:hidden; display:grid; place-items:center; }
  .vf-poster{ display:grid; place-items:center; gap:.6rem; text-align:center; }
  .vf-play{ width:64px; height:64px; border-radius:50%; background:var(--gold); display:grid; place-items:center; cursor:pointer; border:none; box-shadow:0 8px 24px -8px rgba(0,0,0,.5); }
  .vf-play:hover{ background:#fff; }
  .vf-label{ color:#cfcabd; font-size:.78rem; }
  .vf-msg{ text-align:center; padding:1.5rem; max-width:420px; }
  .fx-active{ background:var(--charcoal)!important; color:#fff!important; border-color:var(--charcoal)!important; }

  @media (max-width:860px){
    .app-shell{ display:block; }
    .app-side{ width:100%; min-height:auto; position:static; border-right:none; border-bottom:1px solid var(--line); }
    .side-inner{ display:flex; gap:.4rem; overflow-x:auto; padding:.6rem .75rem; }
    .side-group{ display:none; }
    .side-link{ white-space:nowrap; }
  }

/* ===== Sandbox component additions (toast, demo, admin table) ===== */
#toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(20px);background:var(--charcoal);color:#fff;padding:.7rem 1.1rem;border-radius:10px;font-size:.86rem;font-weight:600;box-shadow:0 12px 30px -10px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:120;max-width:90vw;text-align:center}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
#demoOverlay{position:fixed;inset:0;z-index:110;display:none;pointer-events:none}
#demoOverlay.open{display:block}
.demo-card{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);width:min(560px,92vw);background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 60px -16px rgba(0,0,0,.45);padding:1.05rem 1.2rem;pointer-events:auto}
table.adm{width:100%;border-collapse:collapse;font-size:.8rem}
table.adm th,table.adm td{text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:top}
table.adm th{background:var(--charcoal);color:#fff;font-weight:700;position:sticky;top:0;z-index:1}
table.adm tbody tr:hover{background:var(--cream)}
table.adm td.mono,table.adm .mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.74rem}
.status-sel{border:1px solid var(--line-2);border-radius:7px;padding:.2rem .4rem;font-size:.76rem;background:#fff}
.tagchip{display:inline-block;font-size:.66rem;font-weight:700;color:var(--ink-soft);background:#F3EFE4;border-radius:6px;padding:.1rem .42rem}
.btn.justify-start{justify-content:flex-start}

/* ===== v2: course builder + materials-driven delivery ===== */
.step-tabs{display:flex;flex-wrap:wrap;gap:.4rem;border-bottom:1px solid var(--line);padding-bottom:.6rem}
.step-tab{font-size:.8rem;font-weight:700;color:var(--ink-soft);background:#F3EFE4;border:1px solid var(--line);border-radius:8px;padding:.4rem .7rem;cursor:pointer}
.step-tab.active{background:var(--charcoal);color:#fff;border-color:var(--charcoal)}
.step-tab:hover{color:var(--ink)}
.step-tab.active:hover{color:#fff}
.mat-icon{flex:none;width:42px;height:42px;border-radius:9px;display:grid;place-items:center;font-size:.62rem;font-weight:800;letter-spacing:.02em;color:var(--gold-deep);background:var(--gold-wash);border:1px solid var(--gold-soft)}
.delivery-sec{font-size:.66rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:.5rem}
.mat-done{border-color:#bfe0c4;background:#FAFDF9}
.btn.w-full.justify-start{justify-content:flex-start}

/* ===== v3: LMS course page, spotlight, reports, settings ===== */
.spotlight{border-left:4px solid var(--gold)}
.snapshot{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.snap-cell{padding:.55rem .4rem;text-align:center;border-right:1px solid var(--line);background:#fff}
.snap-cell:last-child{border-right:0}
.snap-n{display:block;font-family:var(--font-display,inherit);font-weight:800;font-size:1.15rem;color:var(--charcoal);line-height:1.1}
.snap-l{display:block;font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-weight:700;margin-top:.15rem}

.lms-header{background:linear-gradient(120deg,var(--gold-wash),#fff);border:1px solid var(--line);border-radius:16px;padding:1.25rem 1.4rem}
.lms-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem;margin-top:1rem}
.lms-meta-cell{background:#fff;border:1px solid var(--line);border-radius:10px;padding:.5rem .6rem;text-align:center}
.lms-meta-k{display:block;font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:800}
.lms-meta-v{display:block;font-weight:700;color:var(--charcoal);font-size:.85rem;margin-top:.1rem}

.video-ph{position:relative;border-radius:14px;overflow:hidden;background:radial-gradient(120% 120% at 30% 0%,#2a2a30,var(--charcoal));aspect-ratio:16/9;display:grid;place-items:center;text-align:center;padding:1.2rem}
.video-ph-inner{max-width:30rem}
.vp-play{width:60px;height:60px;border-radius:999px;background:var(--gold);color:var(--charcoal);display:grid;place-items:center;margin:0 auto .5rem;border:0;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.3)}
.vp-play:hover{background:#f0b53f}
.vp-title{color:#fff;font-weight:700;font-size:1.02rem}
.vp-desc{color:#D9D5CC;font-size:.82rem;margin-top:.2rem}
.vp-meta{color:#A8A399;font-size:.7rem;margin-top:.5rem}
.vp-badge{display:inline-block;background:rgba(255,255,255,.12);color:#EDEAE2;font-size:.66rem;font-weight:700;padding:.2rem .55rem;border-radius:999px;letter-spacing:.04em}

.keypoints{background:var(--gold-wash);border:1px solid var(--gold-soft);border-radius:12px;padding:.9rem 1rem}

.uacc{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.uacc-head{width:100%;display:flex;align-items:center;gap:.6rem;padding:.7rem .85rem;background:#fff;border:0;cursor:pointer;font-size:.9rem;color:var(--charcoal);text-align:left}
.uacc-head:hover{background:var(--cream)}
.uacc-body{display:none;padding:.2rem .95rem 1rem;border-top:1px solid var(--line)}
.uacc.open .uacc-body{display:block}
.uacc-chev{transition:transform .2s;color:var(--ink-soft)}
.uacc.open .uacc-chev{transform:rotate(180deg)}

.ustate{flex:none;width:11px;height:11px;border-radius:999px;display:inline-block;border:2px solid #fff;box-shadow:0 0 0 1px var(--line)}
.ustate-done{background:#3f9a4d}
.ustate-current{background:var(--gold-deep)}
.ustate-pending{background:#D7D2C6}

.unit-nav{width:100%;display:flex;align-items:center;gap:.55rem;padding:.5rem .6rem;border-radius:9px;border:1px solid transparent;background:transparent;cursor:pointer;color:var(--ink);text-align:left}
.unit-nav:hover{background:var(--cream)}
.unit-nav-current{background:var(--gold-wash);border-color:var(--gold-soft)}

.avatar-img{border-radius:999px;object-fit:cover;border:2px solid var(--gold-soft);display:inline-block}
.avatar-edit{position:absolute;right:-2px;bottom:-2px;width:26px;height:26px;border-radius:999px;background:var(--gold-deep);display:grid;place-items:center;border:2px solid #fff}

/* ===== WP4-4B focused PDF viewer ===================================== */
.pdfv{display:flex;flex-direction:column;height:100%;min-height:0;background:#f3f4f6;border-radius:12px;overflow:hidden}
.pdfv-toolbar{display:flex;align-items:center;gap:.25rem;padding:.4rem .5rem;background:#fff;border-bottom:1px solid var(--line,#e5e7eb);flex-wrap:wrap}
.pdfv-btn{min-width:40px;min-height:40px;display:inline-grid;place-items:center;border:1px solid var(--line,#e5e7eb);background:#fff;border-radius:8px;font-size:1.1rem;line-height:1;cursor:pointer;color:var(--ink,#1f2937);text-decoration:none;padding:0 .5rem}
.pdfv-btn:hover{background:#f3f4f6}
.pdfv-btn:focus-visible{outline:2px solid var(--gold-deep,#b8860b);outline-offset:2px}
.pdfv-btn[disabled]{opacity:.4;cursor:default}
.pdfv-page{width:3.2rem;min-height:40px;text-align:center;border:1px solid var(--line,#e5e7eb);border-radius:8px;font-size:.95rem}
.pdfv-total{font-size:.9rem;color:var(--ink-soft,#6b7280);padding:0 .25rem;white-space:nowrap}
.pdfv-sp{flex:0 0 .5rem}
.pdfv-scroller{flex:1 1 auto;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;display:flex;justify-content:center;padding:1rem;background:#e5e7eb}
.pdfv-scroller:focus-visible{outline:2px solid var(--gold-deep,#b8860b);outline-offset:-2px}
.pdfv-canvas{max-width:100%;height:auto;background:#fff;box-shadow:0 1px 6px rgba(0,0,0,.18);border-radius:2px}
.pdfv-status{padding:.75rem 1rem;font-size:.9rem;color:var(--ink-soft,#6b7280);text-align:center}
.pdfv-status[data-kind="error"]{color:#b91c1c;background:#fef2f2}
@media (max-width:640px){
  .pdfv-toolbar{gap:.2rem;padding:.35rem}
  .pdfv-btn{min-width:44px;min-height:44px}
  .pdfv-scroller{padding:.5rem}
}

/* A2-M6A operational session shell. The APCC host marker is installed by the
   existing synchronous host boot script and removed after canonical tenant +
   session resolution. All colours are existing APCC design tokens. */
html[data-bootstrap-tenant="apcc"] #authTransition.auth-transition.hidden{display:flex;background:var(--cream)}
.auth-transition [data-apcc-bootstrap-label]{display:none}
html[data-bootstrap-tenant="apcc"] #authTransition [data-auth-transition-label]{display:none}
html[data-bootstrap-tenant="apcc"] #authTransition [data-apcc-bootstrap-label]{display:inline}
.app-account-controls{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;min-width:0}
.app-identity-summary{display:flex;flex-direction:column;align-items:flex-end;min-width:0;max-width:28rem}
.app-identity-summary>span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-context-label{font-size:.7rem;line-height:1.15;color:var(--gold-soft)}
.operational-context-grid,.operational-record-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1rem;min-width:0}
.operational-session-state{border-left:4px solid var(--gold);overflow-wrap:anywhere}
.operational-context-grid button,.operational-session-state button{min-height:44px}
@media (max-width:767px){
  .app-topbar{align-items:flex-start}
  .app-account-controls{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.5rem}
  .app-identity-summary{align-items:flex-start;max-width:none}
  .app-account-controls .btn{min-height:44px}
}
@media (max-width:420px){
  .app-account-controls{grid-template-columns:1fr 1fr}
  .app-identity-summary{grid-column:1/-1}
  .app-account-controls .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){ .pdfv-scroller{scroll-behavior:auto} }

/* ===== WP4-4B document viewer overlay (the document area) ============ */
.docv-overlay{position:fixed;inset:0;z-index:1000;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:2vh 2vw}
.docv-shell{background:#fff;border-radius:14px;width:min(1100px,96vw);height:min(94vh,100%);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.docv-head{display:flex;align-items:center;gap:.75rem;padding:.6rem .85rem;border-bottom:1px solid var(--line,#e5e7eb)}
.docv-title{font-weight:600;color:var(--ink,#1f2937);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.docv-close{min-width:44px;min-height:44px;border:1px solid var(--line,#e5e7eb);background:#fff;border-radius:8px;font-size:1rem;cursor:pointer;color:var(--ink,#1f2937)}
.docv-close:hover{background:#f3f4f6}
.docv-close:focus-visible{outline:2px solid var(--gold-deep,#b8860b);outline-offset:2px}
.docv-body{flex:1 1 auto;min-height:0;display:flex}
.docv-body>.pdfv{flex:1;border-radius:0}
@media (max-width:640px){ .docv-overlay{padding:0} .docv-shell{width:100vw;height:100vh;border-radius:0} }

/* ===== WP4-4C integrated lesson workspace ============================ */
.lw{display:flex;flex-direction:column;min-height:0}
.lw-tabs{display:flex;gap:.25rem;flex-wrap:wrap;border-bottom:1px solid var(--line,#e5e7eb);padding-bottom:.4rem;margin-bottom:.75rem}
.lw-tab{min-height:40px;padding:.4rem .8rem;border:1px solid transparent;border-radius:8px 8px 0 0;background:transparent;font-size:.9rem;font-weight:600;color:var(--ink-soft,#6b7280);cursor:pointer}
.lw-tab:hover{color:var(--ink,#1f2937);background:#f3f4f6}
.lw-tab[aria-selected="true"]{color:var(--gold-deep,#b8860b);border-color:var(--line,#e5e7eb);border-bottom-color:#fff;background:#fff}
.lw-tab:focus-visible{outline:2px solid var(--gold-deep,#b8860b);outline-offset:2px}
.lw-panel{min-height:0}
.lw-panel:focus-visible{outline:2px solid var(--gold-deep,#b8860b);outline-offset:2px;border-radius:8px}
.lw-empty,.lw-status{padding:1rem;color:var(--ink-soft,#6b7280);font-size:.9rem;text-align:center}
.lw-status.lw-error,.lw-error{color:#b91c1c}
.lw-viewer-host{height:min(70vh,640px);min-height:320px;border:1px solid var(--line,#e5e7eb);border-radius:12px;overflow:hidden}
.lw-viewer-host>.pdfv{height:100%}
.lw-subnav{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.6rem}
.lw-subtab{min-height:40px;padding:.35rem .7rem;border:1px solid var(--line,#e5e7eb);border-radius:8px;background:#fff;font-size:.85rem;cursor:pointer}
.lw-subtab[aria-pressed="true"]{background:var(--gold-wash,#faf6ec);border-color:var(--gold-soft,#e7d9a8);color:var(--gold-deep,#b8860b);font-weight:600}
.lw-transcript{max-height:min(70vh,640px);overflow:auto;white-space:pre-wrap;font-size:.95rem;line-height:1.6;color:var(--ink,#1f2937);background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:12px;padding:1rem}
.lw-notes{font-size:.95rem;line-height:1.7;color:var(--ink,#1f2937)}
.lw-notes h1,.lw-notes h2,.lw-notes h3{font-weight:700;margin:.75rem 0 .35rem}
.lw-notes a{color:var(--gold-deep,#b8860b);text-decoration:underline}
.lw-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.lw-links a,.lw-dl-off{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.5rem .75rem;border:1px solid var(--line,#e5e7eb);border-radius:10px;text-decoration:none;color:var(--ink,#1f2937);font-size:.92rem}
.lw-links a:hover{background:#f3f4f6}
.lw-ext-badge{font-size:.7rem;color:var(--blue,#2563eb);font-weight:600}
.lw-muted{color:var(--ink-soft,#6b7280);font-size:.8rem}
.lw-video+.lw-video{margin-top:1rem}
.lw-video-title{font-weight:600;color:var(--ink,#1f2937);margin-bottom:.4rem}
.lw-video-host{position:relative;background:#0b1220;border-radius:12px;overflow:hidden;aspect-ratio:16/9;display:grid;place-items:center}
.lw-video-host .lw-status{color:#e5e7eb}
.lw-stream{position:absolute;inset:0;width:100%;height:100%;border:0}
@media (max-width:640px){
  .lw-tab{padding:.4rem .6rem;font-size:.85rem}
  .lw-viewer-host{height:min(72vh,560px)}
  .lw-links a,.lw-dl-off,.lw-tab{min-height:44px}
}

/* ===== WP5B — learner assessment experience (.as-*) ===== */
.as{display:block}
.as-title{font-weight:800;color:var(--charcoal,#222);margin:.9rem 0 .35rem;font-size:1rem}
.as-title:first-child{margin-top:0}
.as-line{font-size:.9rem;color:var(--ink,#333);margin:.25rem 0}
.as-muted{color:var(--ink-soft,#666);font-size:.82rem}
.as-status{font-size:.86rem;color:var(--ink-soft,#666);margin:.4rem 0}
.as-error{color:var(--rust,#a33)}
.as-pass{color:#2f6b36;font-weight:700}
.as-retry{color:var(--rust,#a33);font-weight:700}
.as-badge{background:var(--gold,#e2a329);color:#fff;border-radius:.5rem;padding:.05rem .45rem;font-size:.7rem;font-weight:700;margin-left:.35rem}
.as-bar{height:8px;background:var(--line,#e5e0d5);border-radius:99px;overflow:hidden;margin:.3rem 0 .6rem}
.as-bar span{display:block;height:100%;background:var(--gold-deep,#b07d18);border-radius:99px}
.as-mods{list-style:none;margin:.3rem 0 .6rem;padding:0}
.as-mod{display:flex;align-items:center;gap:.5rem;font-size:.88rem;padding:.3rem 0;color:var(--ink,#333)}
.as-mod-done{color:#2f6b36}
.as-mod-cur{font-weight:700}
.as-attempts{list-style:none;margin:.2rem 0 .5rem;padding:0;font-size:.84rem;color:var(--ink-soft,#666)}
.as-missing{list-style:none;margin:.2rem 0;padding:0;font-size:.86rem;color:var(--ink,#333)}
.as-btn{min-height:44px;padding:.5rem 1rem;border:1px solid var(--line,#d8d2c4);border-radius:.6rem;background:#fff;font-weight:700;font-size:.9rem;cursor:pointer;color:var(--ink,#333)}
.as-btn:focus-visible{outline:3px solid var(--gold,#e2a329);outline-offset:2px}
.as-primary{background:var(--gold,#e2a329);border-color:var(--gold,#e2a329);color:#fff}
.as-mini{min-height:44px;min-width:44px;padding:.2rem .5rem}
.as-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.8rem}
.as-q{border:1px solid var(--line,#e5e0d5);border-radius:.7rem;padding:.8rem .9rem;margin:.7rem 0}
.as-q legend{font-weight:700;font-size:.92rem;color:var(--charcoal,#222);padding:0 .25rem}
.as-qnum{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft,#888);margin:0 0 .15rem}
.as-opt{display:flex;align-items:center;gap:.55rem;padding:.45rem .3rem;min-height:44px;font-size:.9rem;cursor:pointer}
.as-opt input{width:1.1rem;height:1.1rem;accent-color:var(--gold-deep,#b07d18)}
.as-match{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.35rem 0;font-size:.9rem;flex-wrap:wrap}
.as-match select{min-height:44px;border:1px solid var(--line,#d8d2c4);border-radius:.5rem;padding:.3rem .5rem;font-size:.88rem;max-width:100%}
.as-order{list-style:none;margin:.3rem 0;padding:0}
.as-order li{display:flex;align-items:center;justify-content:space-between;gap:.6rem;border:1px solid var(--line,#e5e0d5);border-radius:.5rem;padding:.45rem .6rem;margin:.3rem 0;font-size:.9rem}
.as-ordbtns{display:flex;gap:.3rem}
.as-q textarea{width:100%;border:1px solid var(--line,#d8d2c4);border-radius:.5rem;padding:.5rem;font-size:.9rem;margin-top:.3rem}
.as-form{margin:0}
.as-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.as-fb{list-style:none;margin:.6rem 0;padding:0;counter-reset:fb}
.as-fbitem{border:1px solid var(--line,#e5e0d5);border-radius:.7rem;padding:.7rem .9rem;margin:.55rem 0}
.as-why{font-size:.88rem;color:var(--ink,#333);margin:.3rem 0}
.as-refs{list-style:none;margin:.25rem 0;padding:0;font-size:.82rem;color:var(--ink-soft,#666)}
.as-reco{font-size:.88rem;font-weight:700;color:var(--gold-deep,#8a6414);margin:.35rem 0 0}
.as-ack .as-ackdl{display:grid;grid-template-columns:auto 1fr;gap:.25rem .9rem;font-size:.9rem;margin:.6rem 0}
.as-ackdl dt{font-weight:700;color:var(--ink-soft,#666)}
.as-ackdl dd{margin:0;word-break:break-word}
@media (max-width:640px){
  .as-match{flex-direction:column;align-items:stretch}
  .as-actions .as-btn{flex:1}
  .as-ack .as-ackdl{grid-template-columns:1fr}
}

/* ===== WP5C — learning intelligence (.li-*) ===== */
.li{display:block}
.li-status{font-size:.86rem;color:var(--ink-soft,#666);margin:.35rem 0}
.li-error{color:var(--rust,#a33)}
.li-muted{color:var(--ink-soft,#888);font-weight:400;font-size:.78rem}
.li-cohort{font-size:.82rem;background:#fdf6e3;border:1px solid var(--gold,#e2a329);border-radius:.5rem;padding:.45rem .6rem;color:#6b5312;margin:.3rem 0 .6rem}
.li-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.5rem;margin:.4rem 0 .8rem}
.li-tile{border:1px solid var(--line,#e5e0d5);border-radius:.6rem;padding:.5rem .6rem;display:flex;flex-direction:column;gap:.15rem}
.li-k{font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft,#888)}
.li-v{font-weight:800;font-size:.95rem;color:var(--charcoal,#222)}
.li-sub{font-weight:800;font-size:.95rem;color:var(--charcoal,#222);margin:.8rem 0 .3rem}
.li-recs{list-style:none;margin:.3rem 0;padding:0}
.li-rec{border-left:4px solid var(--line,#ccc);padding:.4rem .6rem;margin:.3rem 0;font-size:.88rem;background:var(--paper,#faf8f3);border-radius:0 .4rem .4rem 0}
.li-high{border-left-color:var(--rust,#a33)}
.li-warn{border-left-color:var(--gold,#e2a329)}
.li-info{border-left-color:#7a9bb8}
.li-badge{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-right:.35rem;color:var(--ink-soft,#666)}
.li-details{border:1px solid var(--line,#e5e0d5);border-radius:.6rem;margin:.4rem 0;padding:.35rem .6rem}
.li-details summary{cursor:pointer;font-weight:700;font-size:.88rem;min-height:44px;display:flex;align-items:center}
.li-details summary:focus-visible{outline:3px solid var(--gold,#e2a329);outline-offset:2px}
.li-list{font-size:.84rem;color:var(--ink,#333);margin:.3rem 0 .4rem;padding-left:1.1rem}
.li-list li{margin:.25rem 0}
.li-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.7rem}
.li-btn{min-height:44px;padding:.5rem 1rem;border:1px solid var(--line,#d8d2c4);border-radius:.6rem;background:#fff;font-weight:700;font-size:.88rem;cursor:pointer}
.li-btn:focus-visible{outline:3px solid var(--gold,#e2a329);outline-offset:2px}
.li-privacy{font-size:.76rem;color:var(--ink-soft,#888);border-top:1px dashed var(--line,#e5e0d5);margin-top:.8rem;padding-top:.5rem}
@media (max-width:640px){ .li-tiles{grid-template-columns:repeat(2,1fr)} .li-actions .li-btn{flex:1} }

/* ===== PV-17A: shared dashboard design system (presentation only) =====
   Scoped to the authenticated dashboards (.dash-*, .stat*, app shell). No
   business logic; consistent hierarchy across Learner / Educator / Admin. */
.dash-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.8rem 1.2rem;margin-bottom:1.25rem}
.dash-head h1{font-family:Georgia,'Times New Roman',serif;font-size:1.45rem;font-weight:800;color:var(--charcoal);line-height:1.2}
.dash-head .dash-sub{font-size:.85rem;color:var(--ink-soft);margin-top:.2rem;max-width:46rem}
.dash-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.dash-sec{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin:0 0 .75rem}
.dash-sec h2{font-weight:700;color:var(--charcoal);font-size:1rem}
.dash-sec .sec-link{font-size:.82rem;font-weight:700;color:var(--gold-deep);white-space:nowrap}
.dash-sec .sec-link:hover{text-decoration:underline}
/* Stat tiles: one consistent metric card for all three dashboards. */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin-bottom:1.5rem}
.stat{display:block;text-align:left;background:var(--surface,#fff);border:1px solid var(--line);border-radius:12px;padding:.85rem .95rem;min-height:74px}
button.stat{cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}
button.stat:hover{border-color:var(--gold-soft);box-shadow:0 4px 14px -8px rgba(0,0,0,.18)}
button.stat:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.stat-n{display:block;font-family:Georgia,serif;font-weight:800;font-size:1.45rem;line-height:1.15;color:var(--charcoal);overflow-wrap:anywhere}
.stat-l{display:block;font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);margin-top:.2rem}
.stat--attn{border-left:4px solid var(--gold)}
/* Hero continue-learning panel (learner): the ONE dominant action. */
.dash-hero{background:linear-gradient(120deg,var(--gold-wash),#fff 62%);border:1px solid var(--gold-soft);border-left:4px solid var(--gold);border-radius:14px;padding:1.1rem 1.25rem;margin-bottom:1.25rem}
.dash-hero .hero-kicker{font-size:.66rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep)}
.dash-hero h2{font-family:Georgia,serif;font-weight:800;font-size:1.2rem;color:var(--charcoal);margin:.25rem 0 .1rem;overflow-wrap:anywhere}
/* Identity strip (slim profile row — progressive disclosure of the old spotlight). */
.id-strip{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}
.id-strip .avatar{width:46px;height:46px;font-size:1rem}
/* Empty + loading states. */
.empty{border:1px dashed var(--line-2);border-radius:12px;padding:1.4rem 1.2rem;text-align:center;color:var(--ink-soft);font-size:.9rem;background:#fff}
.skel{position:relative;overflow:hidden;background:#f1ede3;border-radius:8px;min-height:14px}
.skel::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);animation:skel 1.4s infinite}
@keyframes skel{100%{transform:translateX(100%)}}
@media (prefers-reduced-motion:reduce){.skel::after{animation:none}button.stat{transition:none}}
/* Desktop: use wide screens without letting lines sprawl. */
@media (min-width:1280px){.app-wrap{max-width:1120px}}
/* App topbar on narrow screens: keep controls reachable, never clipped. */
@media (max-width:640px){
  .app-topbar{padding:.55rem .75rem;gap:.5rem}
  .app-topbar .btn{padding:.35rem .6rem;font-size:.78rem}
  #appUserName{display:none}
  #appRoleLabel{max-width:46vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
/* Mobile side-nav chip strip: sticky, snappable, obvious active state. */
@media (max-width:860px){
  .app-side{position:sticky;top:52px;z-index:40;box-shadow:0 6px 14px -12px rgba(0,0,0,.25)}
  .side-inner{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
  .side-link{scroll-snap-align:start;min-height:44px;align-items:center}
  .side-link.active{box-shadow:inset 0 0 0 1px var(--gold-soft)}
}
.side-link:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}

/* ===== APCC A2-M5B: reconciliation preview responsiveness =====
   Scoped to this workspace so shared application layouts are unchanged. */
.a2m5b-verification-root,.a2m5b-workspace,#importWorkspaceBody{width:100%;min-width:0;max-width:100%}
.a2m5b-workspace .banner,.import-workspace-banner{display:flex;align-items:flex-start;gap:.65rem;padding:.8rem .9rem;border:1px solid var(--line);border-radius:.7rem;overflow-wrap:anywhere}
.a2m5b-workspace .banner>span:last-child,.a2m5b-preview-copy{min-width:0;flex:1 1 auto}
.a2m5b-workspace .a2m5b-preview-banner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start}
.a2m5b-preview-controls{display:flex;align-items:end;gap:.5rem;min-width:0}
.a2m5b-preview-controls label{display:grid;gap:.25rem;min-width:0}
.a2m5b-preview-controls .field{width:auto;max-width:100%;min-height:44px}
.a2m5b-view-tabs{max-width:100%}
.a2m5b-table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.a2m5b-table-scroll:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.a2m5b-action-group .btn{min-height:44px;white-space:normal}

/* APCC-A2-M5C operational conference workspace. Tables scroll inside their
   own labelled regions; the page itself never needs horizontal scrolling. */
.a2m5c-workspace{width:100%;max-width:100%;min-width:0;overflow-wrap:anywhere}
.a2m5c-tabs{max-width:100%}
.a2m5c-table-scroll{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.a2m5c-table-scroll:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.a2m5c-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 1rem}
.a2m5c-detail-grid dt{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}
.a2m5c-detail-grid dd{margin-top:.15rem;overflow-wrap:anywhere}
.a2m5c-workspace button,.a2m5c-workspace select{min-height:44px}
.a2m5c-review-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(22rem,.85fr);gap:1rem;align-items:start}
.a2m5c-abstract-pane{max-height:calc(100vh - 12rem);overflow-y:auto}
.a2m5c-review-pane{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow-y:auto}
.a2m6b0-breadcrumbs{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;color:var(--ink-soft);font-weight:700}
.a2m6b0-breadcrumbs span+span:before{content:'›';margin-right:.5rem;color:var(--gold)}
.a2m6b0-form{display:grid;gap:.75rem;align-content:start}
.a2m6b0-form input,.a2m6b0-form select{min-height:44px;width:100%}
.a2m6b0-tree{min-width:0;overflow-wrap:anywhere}
@media (max-width:640px){
  .a2m5b-workspace .a2m5b-preview-banner{grid-template-columns:auto minmax(0,1fr)}
  .a2m5b-preview-controls{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr);width:100%}
  .a2m5b-preview-controls .field,.a2m5b-preview-controls .btn{width:100%;min-height:44px}
  .a2m5b-view-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding-bottom:.25rem}
  .a2m5b-view-tabs .step-tab{flex:0 0 auto;min-height:44px;scroll-snap-align:start}
  .a2m5b-action-group{width:100%}
  .a2m5b-action-group .btn{flex:1 1 9rem}
  .a2m5b-workspace .card{min-width:0;overflow-wrap:anywhere}
  .a2m5c-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:.25rem}
  .a2m5c-tabs .step-tab{flex:0 0 auto;min-height:44px;scroll-snap-align:start}
  .a2m5c-detail-grid{grid-template-columns:minmax(0,1fr)}
  .a2m5c-review-grid{grid-template-columns:minmax(0,1fr)}
  .a2m5c-abstract-pane,.a2m5c-review-pane{position:static;max-height:none;overflow:visible}
  .a2m5c-workspace .card{min-width:0}
}

/* ===== IS4NCDs official brand foundation ==================================
   R2A establishes the authoritative tenant-scoped palette and safe font
   stacks without migrating shared components or the accepted page layouts.
   Acumin Variable Concept and Aptos are not bundled: the heading stack below
   is INTERIM and neither stack is wired into the wider UI in this increment. */
html[data-tenant="is4ncds"]{
  --is4ncds-golden-yellow:#E89E27;
  --is4ncds-deep-blue:#1F5690;
  --is4ncds-burnt-sienna:#9F3E22;
  --is4ncds-slate-teal:#416B6E;
  --is4ncds-cyan:#6CACB2;
  --is4ncds-charcoal-black:#222222;
  --is4ncds-light-grey:#E6E7E8;
  --is4ncds-font-body:"Aptos","Segoe UI",Arial,sans-serif;
  --is4ncds-font-heading-official:"Acumin Variable Concept","Arial Nova",Arial,"Helvetica Neue",sans-serif;
  --is4ncds-font-heading-interim:"Arial Nova",Arial,"Helvetica Neue",sans-serif;
}

/* The supplied reverse artwork is approved for the official Deep Blue
   surface. Header geometry and shared primitives remain unchanged. */
html[data-tenant="is4ncds"] .topnav,
html[data-tenant="is4ncds"] .app-topbar{
  background:var(--is4ncds-deep-blue);
}
html[data-tenant="is4ncds"] .public-brand-product,
html[data-tenant="is4ncds"] .app-topbar #appRoleLabel{
  color:var(--is4ncds-light-grey);
}

/* Official artwork is supplied as immutable SVG. These rules control only
   the surrounding lock-up dimensions and keep product/environment text as
   separate interface copy. */
.tenant-brand-picture{ display:block; flex:none; line-height:0; }
.tenant-brand-picture[hidden]{ display:none; }
.tenant-brand-picture img{ display:block; object-fit:contain; }
html[data-tenant="is4ncds"] .tenant-brand-picture--public img{
  width:auto !important; height:36px !important; max-width:180px;
}
html[data-tenant="is4ncds"] .tenant-brand-picture--workspace img{
  width:30px !important; height:30px !important;
}
html[data-tenant="is4ncds"] .tenant-brand-picture--footer img{
  width:auto !important; height:40px !important; max-width:200px;
}
html[data-tenant="is4ncds"] .public-brand-name{ display:none; }
html[data-tenant="is4ncds"] .public-brand-product{
  font-family:var(--is4ncds-font-body);
}
@media (max-width:639px){
  html[data-tenant="is4ncds"] .tenant-brand-picture--public img{
    width:38px !important; height:38px !important;
  }
}

/* R2E1 — IS4NCDs Programme Administrator EOI queue presentation.
   The shared queue data, controls and bulk workflow remain in the DOM; only
   the official tenant receives this denser presentation and privacy layer. */
html[data-tenant="is4ncds"] .eoi-queue-summary{
  font-family:var(--is4ncds-font-body);
}
html[data-tenant="is4ncds"] .eoi-queue-toolbar{
  display:flex; align-items:center; gap:.75rem; width:100%;
}
html[data-tenant="is4ncds"] .eoi-queue-toolbar-filters{
  display:grid; grid-template-columns:minmax(13rem,1.25fr) minmax(13rem,1.05fr)
    minmax(8.25rem,.68fr) minmax(9.5rem,.78fr);
  align-items:center; gap:.5rem; flex:1 1 auto; min-width:0;
}
html[data-tenant="is4ncds"] .eoi-queue-search-group{
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.4rem; min-width:0;
}
html[data-tenant="is4ncds"] .eoi-queue-toolbar .field{
  width:100%; min-width:0; max-width:none;
}
html[data-tenant="is4ncds"] .eoi-queue-toolbar [data-eoi-sort]{
  display:none;
}
html[data-tenant="is4ncds"] .eoi-queue-pagination{
  display:flex; align-items:center; justify-content:flex-end; gap:.45rem;
  flex:0 0 auto; white-space:nowrap;
}

html[data-tenant="is4ncds"] .eoi-queue-table{
  width:100%; min-width:56rem; table-layout:auto;
  font-family:var(--is4ncds-font-body); font-size:.8rem;
}
html[data-tenant="is4ncds"] .eoi-queue-table th,
html[data-tenant="is4ncds"] .eoi-queue-table td{
  padding:.52rem .5rem;
}
html[data-tenant="is4ncds"] .eoi-queue-table th{
  background:#EDF3F8; color:#173F69;
  border-bottom:2px solid rgba(31,86,144,.24);
  font-size:.7rem; letter-spacing:.045em; text-transform:uppercase;
}
html[data-tenant="is4ncds"] .eoi-queue-table .eoi-queue-select{
  width:2.5rem; text-align:center;
}
html[data-tenant="is4ncds"] .eoi-queue-table .eoi-queue-applicant{
  min-width:8.5rem; white-space:normal;
}
html[data-tenant="is4ncds"] .eoi-queue-table .eoi-queue-course{
  width:32%; max-width:21rem; min-width:14rem;
  white-space:normal; overflow-wrap:anywhere; line-height:1.35;
}
html[data-tenant="is4ncds"] .eoi-queue-table .eoi-queue-submitted{
  width:7.5rem;
}
html[data-tenant="is4ncds"] .eoi-queue-table .eoi-queue-status,
html[data-tenant="is4ncds"] .eoi-queue-table .eoi-queue-screening{
  width:8.25rem;
}
html[data-tenant="is4ncds"] .eoi-queue-table .eoi-queue-outcome{
  width:9rem;
}
html[data-tenant="is4ncds"] .eoi-queue-table .eoi-queue-review{
  width:5rem; text-align:right;
}
html[data-tenant="is4ncds"] .eoi-queue-applicant-email,
html[data-tenant="is4ncds"] .eoi-queue-score{
  display:none;
}
html[data-tenant="is4ncds"] .eoi-queue-outcome-empty{
  color:var(--ink-soft); opacity:.38; font-size:.75rem;
}
html[data-tenant="is4ncds"] .eoi-queue-outcome-value{
  display:inline-flex; align-items:center; min-height:1.6rem;
  padding:.18rem .52rem; border:1px solid rgba(31,86,144,.2);
  border-radius:999px; background:rgba(31,86,144,.08);
  color:#173F69; font-size:.72rem; font-weight:700; line-height:1.2;
  white-space:normal;
}
html[data-tenant="is4ncds"] #alEoiBulkBar[hidden]{
  display:none;
}
html[data-tenant="is4ncds"] .eoi-queue-bulk-context{
  line-height:1.45; overflow-wrap:anywhere;
}
html[data-tenant="is4ncds"] .eoi-bulk-ineligible{ color:var(--ink-soft); opacity:.48; }
html[data-tenant="is4ncds"] .eoi-bulk-panel{ border-top:3px solid var(--is4ncds-golden-yellow); }
html[data-tenant="is4ncds"] .eoi-bulk-preview{
  margin-top:1rem; padding:1rem; border:1px solid rgba(31,86,144,.22);
  border-radius:var(--r-md); background:#F7FAFD;
}
html[data-tenant="is4ncds"] .eoi-bulk-preview > ul,
html[data-tenant="is4ncds"] .eoi-bulk-result-list{
  display:grid; gap:.5rem; margin-top:.8rem;
}
html[data-tenant="is4ncds"] .eoi-bulk-preview > ul > li{
  display:grid; grid-template-columns:minmax(9rem,.8fr) minmax(14rem,1.4fr) auto;
  gap:.75rem; align-items:start; padding:.55rem .65rem;
  border:1px solid var(--line); border-radius:.45rem; background:#fff;
  font-size:.78rem; line-height:1.4;
}
html[data-tenant="is4ncds"] .eoi-bulk-preview > ul > li span{ overflow-wrap:anywhere; }
html[data-tenant="is4ncds"] .eoi-bulk-result:focus{ outline:3px solid rgba(31,86,144,.28); outline-offset:3px; }
html[data-tenant="is4ncds"] .eoi-bulk-result-list > li{
  display:grid; grid-template-columns:minmax(14rem,1.25fr) minmax(12rem,.75fr);
  gap:.75rem; padding:.65rem .75rem; border-left:4px solid #4F7D58;
  background:#F3F8F4; font-size:.8rem; line-height:1.4;
}
html[data-tenant="is4ncds"] .eoi-bulk-result-list > li.is-failure{
  border-left-color:var(--rust); background:#FFF7F3;
}
html[data-tenant="is4ncds"] .eoi-bulk-result-list > li > div:first-child{ display:grid; }
html[data-tenant="is4ncds"] .eoi-bulk-result-list > li span{ overflow-wrap:anywhere; }

@media (max-width:768px){
  html[data-tenant="is4ncds"] .eoi-bulk-preview > ul > li,
  html[data-tenant="is4ncds"] .eoi-bulk-result-list > li{ grid-template-columns:minmax(0,1fr); gap:.3rem; }
}

/* R2E2 — IS4NCDs Programme Administrator EOI applicant review detail.
   The queue, shared workspace shell and review behaviours are unchanged;
   these selectors organise only the expanded, individual EOI record. */
html[data-tenant="is4ncds"] .eoi-review-detail{
  max-width:72rem; margin:0 auto; font-family:var(--is4ncds-font-body);
}
html[data-tenant="is4ncds"] .eoi-review-header{
  padding:1.35rem 1.5rem; border-top:4px solid var(--is4ncds-golden-yellow);
}
html[data-tenant="is4ncds"] .eoi-review-header .eyebrow{
  color:var(--is4ncds-deep-blue);
}
html[data-tenant="is4ncds"] .eoi-review-title-row{
  display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-top:.35rem;
}
html[data-tenant="is4ncds"] .eoi-review-title-row h2{
  color:var(--is4ncds-deep-blue); font-family:var(--is4ncds-font-heading-interim);
  font-size:clamp(1.45rem,2.25vw,2rem); font-weight:750; line-height:1.18; overflow-wrap:anywhere;
}
html[data-tenant="is4ncds"] .eoi-review-course{
  max-width:50rem; margin-top:.35rem; color:var(--ink); font-size:1rem; font-weight:650; line-height:1.45;
}
html[data-tenant="is4ncds"] .eoi-review-meta{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem 1rem;
  margin-top:1.2rem; padding-top:1rem; border-top:1px solid var(--line);
}
html[data-tenant="is4ncds"] .eoi-review-meta dt,
html[data-tenant="is4ncds"] .eoi-review-fact dt,
html[data-tenant="is4ncds"] .eoi-review-audit dt{
  color:var(--ink-soft); font-size:.7rem; font-weight:750; letter-spacing:.055em; line-height:1.3; text-transform:uppercase;
}
html[data-tenant="is4ncds"] .eoi-review-meta dd{
  margin-top:.2rem; color:var(--ink); font-size:.86rem; font-weight:650; line-height:1.4; overflow-wrap:anywhere;
}
html[data-tenant="is4ncds"] .eoi-review-layout{
  display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; margin-top:1rem; align-items:start;
}
html[data-tenant="is4ncds"] .eoi-review-main{ padding:1.35rem 1.5rem; min-width:0; }
html[data-tenant="is4ncds"] .eoi-review-content-heading > p:last-child{
  max-width:42rem; margin-top:.25rem; color:var(--ink-soft); font-size:.84rem; line-height:1.5;
}
html[data-tenant="is4ncds"] .eoi-review-section{
  margin-top:1.5rem; padding-top:1.15rem; border-top:1px solid var(--line);
}
html[data-tenant="is4ncds"] .eoi-review-section h3,
html[data-tenant="is4ncds"] .eoi-review-rail-section > h3{
  color:var(--is4ncds-deep-blue); font-family:var(--is4ncds-font-heading-interim);
  font-size:1rem; font-weight:750; line-height:1.35;
}
html[data-tenant="is4ncds"] .eoi-review-facts{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem 1.5rem; margin-top:1rem;
}
html[data-tenant="is4ncds"] .eoi-review-fact{ min-width:0; }
html[data-tenant="is4ncds"] .eoi-review-fact--long{ grid-column:1 / -1; }
html[data-tenant="is4ncds"] .eoi-review-fact dd{
  margin-top:.28rem; color:var(--ink); font-size:.92rem; line-height:1.55;
  overflow-wrap:anywhere; white-space:pre-line;
}
html[data-tenant="is4ncds"] .eoi-review-fact--long dd{ max-width:44rem; }
html[data-tenant="is4ncds"] .eoi-review-external,
html[data-tenant="is4ncds"] .eoi-review-document a{
  color:#765114; font-weight:750; text-decoration:underline; text-underline-offset:.16em;
}
html[data-tenant="is4ncds"] .eoi-review-external:focus-visible,
html[data-tenant="is4ncds"] .eoi-review-document a:focus-visible{
  outline:3px solid var(--is4ncds-golden-yellow); outline-offset:3px;
}
html[data-tenant="is4ncds"] .eoi-review-document{ display:grid; gap:.2rem; }
html[data-tenant="is4ncds"] .eoi-review-document + .eoi-review-document{ margin-top:.65rem; }
html[data-tenant="is4ncds"] .eoi-review-document small{ color:var(--ink-soft); font-size:.76rem; }
html[data-tenant="is4ncds"] .eoi-review-notes{ display:grid; gap:.85rem; }
html[data-tenant="is4ncds"] .eoi-review-notes h3{ margin-bottom:.1rem; }
html[data-tenant="is4ncds"] .eoi-review-notes > div{
  max-width:44rem; padding:.85rem 1rem; border-left:3px solid var(--is4ncds-cyan);
  border-radius:0 8px 8px 0; background:color-mix(in srgb,var(--is4ncds-cyan) 5%,#fff);
}
html[data-tenant="is4ncds"] .eoi-review-note-label{ font-size:.78rem; font-weight:750; }
html[data-tenant="is4ncds"] .eoi-review-notes > div p:last-child{ margin-top:.25rem; font-size:.88rem; line-height:1.5; }
html[data-tenant="is4ncds"] .eoi-review-rail{ display:grid; gap:1rem; min-width:0; }
html[data-tenant="is4ncds"] .eoi-review-rail-section{ padding:1.1rem 1.15rem; min-width:0; }
html[data-tenant="is4ncds"] .eoi-review-screening summary{
  margin-top:.8rem; font-size:.84rem; font-weight:700; cursor:pointer;
}
html[data-tenant="is4ncds"] .eoi-review-screening ul{
  margin:.65rem 0 0 1.1rem; color:var(--ink-soft); font-size:.75rem; line-height:1.5;
}
html[data-tenant="is4ncds"] .eoi-review-no-screen,
html[data-tenant="is4ncds"] .eoi-review-score-hold{
  margin-top:.8rem; padding:.8rem; border-radius:8px; background:#F5F8FA;
}
html[data-tenant="is4ncds"] .eoi-review-decision details{
  padding-top:.75rem; border-top:1px solid var(--line);
}
html[data-tenant="is4ncds"] .eoi-review-decision .field{ max-width:100%; }
html[data-tenant="is4ncds"] .eoi-review-audit{ margin-top:1rem; padding:1rem 1.25rem; }
html[data-tenant="is4ncds"] .eoi-review-audit summary{
  color:var(--ink-soft); font-size:.8rem; font-weight:700; cursor:pointer;
}
html[data-tenant="is4ncds"] .eoi-review-audit dl{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem 1rem; margin-top:.9rem;
}
html[data-tenant="is4ncds"] .eoi-review-audit dd{
  margin-top:.2rem; color:var(--ink-soft); font-size:.76rem; line-height:1.45; overflow-wrap:anywhere;
}

@media (min-width:1180px){
  html[data-tenant="is4ncds"] .eoi-review-layout{
    grid-template-columns:minmax(0,1fr) minmax(18rem,19rem); gap:1.25rem;
  }
}
@media (max-width:900px){
  html[data-tenant="is4ncds"] .eoi-review-meta{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  html[data-tenant="is4ncds"] .eoi-review-audit dl{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:560px){
  html[data-tenant="is4ncds"] .eoi-review-header,
  html[data-tenant="is4ncds"] .eoi-review-main{ padding:1.1rem; }
  html[data-tenant="is4ncds"] .eoi-review-title-row{ display:block; }
  html[data-tenant="is4ncds"] .eoi-review-title-row > .badge{ margin-top:.75rem; }
  html[data-tenant="is4ncds"] .eoi-review-meta,
  html[data-tenant="is4ncds"] .eoi-review-facts,
  html[data-tenant="is4ncds"] .eoi-review-audit dl{ grid-template-columns:minmax(0,1fr); }
}

@media (max-width:1199px){
  html[data-tenant="is4ncds"] .eoi-queue-toolbar{
    align-items:stretch; flex-direction:column; gap:.55rem;
  }
  html[data-tenant="is4ncds"] .eoi-queue-pagination{
    justify-content:flex-start;
  }
}
@media (max-width:900px){
  html[data-tenant="is4ncds"] .eoi-queue-toolbar-filters{
    grid-template-columns:minmax(13rem,1fr) minmax(13rem,1fr);
  }
}
@media (max-width:520px){
  html[data-tenant="is4ncds"] .eoi-queue-toolbar-filters{
    grid-template-columns:minmax(0,1fr);
  }
  html[data-tenant="is4ncds"] .eoi-queue-pagination{
    flex-wrap:wrap;
  }
}

/* ===== APCC tenant theme ==================================================
   Scoped strictly to html[data-tenant="apcc"] (set once from the resolved
   tenant config in platform.js). Mirrors the public apcc.africa design
   language — deep green #034C43, active green #148A3B, brand gold #FFC107,
   mint #EEF7F2/#E9F8EF, soft grey page #F4F7F8, sans headings, 14px radius,
   green-tinted elevation. Variable overrides only where possible so every
   component keeps its structure; IS4NCDs and the neutral shell are untouched. */
html[data-tenant="apcc"]{
  --cream:#F4F7F8; --paper:#FFFFFF; --surface:#FFFFFF;
  --line:#E2E8E5; --line-2:#D3DDD7; --border:#E2E8E5; --border-strong:#C9D6CE;
  --ink:#2B3138; --ink-soft:#55606A; --muted:#6B7280;
  --charcoal:#034C43;
  --gold:#FFC107; --gold-deep:#8A6D00; --gold-soft:#FFE59A; --gold-wash:#FFF6DA;
  --surface-sunk:#EEF7F2;
  --apcc-deep:#034C43; --apcc-active:#148A3B; --apcc-mint:#E9F8EF; --apcc-mint-bd:#BCE7CC;
  --r-md:14px;
}
html[data-tenant="apcc"] body{ background:var(--cream); }
html[data-tenant="apcc"] .font-display{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Inter",Roboto,Arial,sans-serif;
  font-weight:800; letter-spacing:-.01em;
}
html[data-tenant="apcc"] .text-charcoal{ color:var(--apcc-deep); }
html[data-tenant="apcc"] .bg-charcoal{ background-color:var(--apcc-deep); }
html[data-tenant="apcc"] .text-gold{ color:#B78600; }
html[data-tenant="apcc"] .text-gold-deep{ color:#8A6D00; }
html[data-tenant="apcc"] .bg-cream{ background-color:var(--cream); }
html[data-tenant="apcc"] .eyebrow,
html[data-tenant="apcc"] .rule-label{ color:var(--apcc-active); }
html[data-tenant="apcc"] .rule-label::before{ background:var(--apcc-active); }
html[data-tenant="apcc"] .card{
  border-radius:14px; border-color:var(--line);
  box-shadow:0 6px 20px rgba(6,75,42,.06);
}
html[data-tenant="apcc"] .badge{
  border-radius:999px; font-size:.66rem; letter-spacing:.06em; padding:.24rem .62rem;
}
html[data-tenant="apcc"] .btn{ border-radius:10px; font-weight:700; }
html[data-tenant="apcc"] .btn-gold{
  background:var(--gold); color:#3A2E00; box-shadow:0 4px 14px rgba(255,193,7,.30);
}
html[data-tenant="apcc"] .btn-gold:hover{ background:#E9B206; color:#3A2E00; }
html[data-tenant="apcc"] .btn-ghost{ color:var(--apcc-deep); border-color:#C9D6CE; }
html[data-tenant="apcc"] .btn-ghost:hover{ border-color:var(--apcc-active); background:#fff; }
html[data-tenant="apcc"] .side-link.active{ background:var(--apcc-mint); color:var(--apcc-deep); }
html[data-tenant="apcc"] .side-link.active .ic{ background:var(--apcc-active); }
html[data-tenant="apcc"] .side-link:hover{ background:#EFF5F1; color:var(--apcc-deep); }
html[data-tenant="apcc"] .side-group{ color:#6E8B7C; }
html[data-tenant="apcc"] .step-tabs{ border-bottom:0; gap:.45rem; padding-bottom:.35rem; }
html[data-tenant="apcc"] .step-tab{
  background:#fff; border:1px solid var(--line); border-radius:999px;
  padding:.45rem .95rem; color:var(--ink-soft); font-weight:600;
}
html[data-tenant="apcc"] .step-tab:hover{ border-color:var(--apcc-active); color:var(--apcc-deep); }
html[data-tenant="apcc"] .step-tab.active{
  background:var(--apcc-deep); border-color:var(--apcc-deep); color:#fff; font-weight:700;
}
html[data-tenant="apcc"] table.adm th{
  text-transform:uppercase; font-size:.68rem; letter-spacing:.08em;
  color:var(--muted); background:#F8FAF9; border-bottom:2px solid var(--line);
}
html[data-tenant="apcc"] table.adm td{ padding:.6rem .7rem; }
html[data-tenant="apcc"] table.adm tbody tr:hover td{ background:#F6FBF7; }
html[data-tenant="apcc"] .banner{ border-radius:12px; }
html[data-tenant="apcc"] .banner.warn{ background:#FFF8E1; border:1px solid var(--gold-soft); color:#5B4A12; }
html[data-tenant="apcc"] .banner.info{ background:var(--apcc-mint); border:1px solid var(--apcc-mint-bd); color:#0D4D33; }
html[data-tenant="apcc"] .field:focus{ border-color:var(--apcc-active); outline:2px solid rgba(20,138,59,.18); }
/* Workspace rhythm: calmer headings, more air, softer detail grids. */
html[data-tenant="apcc"] .a2m5c-workspace h1{ font-size:clamp(1.65rem,3vw,2.15rem); }
html[data-tenant="apcc"] .a2m5c-workspace .card{ transition:box-shadow .18s ease; }
html[data-tenant="apcc"] .a2m5c-workspace .card:hover{ box-shadow:0 10px 26px rgba(6,75,42,.10); }
html[data-tenant="apcc"] .apcc-hero{
  background:linear-gradient(135deg,#034C43 0%,#0A5E48 60%,#148A3B 130%);
  color:#fff; border-radius:16px; padding:1.6rem 1.8rem;
  box-shadow:0 14px 34px rgba(6,75,42,.22);
}
html[data-tenant="apcc"] .apcc-hero .eyebrow{ color:#BFEACD; }
html[data-tenant="apcc"] .apcc-hero h1{ color:#fff; }
html[data-tenant="apcc"] .apcc-hero .apcc-hero-meta{ color:#DCEFE2; font-size:.92rem; }
html[data-tenant="apcc"] .apcc-chip{
  display:inline-flex; align-items:center; gap:.4rem; border-radius:999px;
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.35);
  color:#fff; font-size:.72rem; font-weight:700; letter-spacing:.05em;
  padding:.3rem .7rem; text-transform:uppercase;
}
html[data-tenant="apcc"] .apcc-stat{
  background:#fff; border:1px solid var(--line); border-radius:14px;
  padding:1.1rem 1.2rem; box-shadow:0 6px 20px rgba(6,75,42,.06);
}
html[data-tenant="apcc"] .apcc-stat .apcc-stat-n{
  font-size:1.9rem; font-weight:800; color:var(--apcc-deep); line-height:1.1;
}
html[data-tenant="apcc"] .apcc-stat .apcc-stat-l{
  text-transform:uppercase; letter-spacing:.08em; font-size:.7rem;
  color:var(--muted); font-weight:700; margin-top:.15rem;
}
html[data-tenant="apcc"] .apcc-stat .apcc-stat-s{ font-size:.8rem; color:var(--ink-soft); margin-top:.35rem; }
html[data-tenant="apcc"] .apcc-person{
  display:flex; gap:.85rem; align-items:flex-start;
  background:#fff; border:1px solid var(--line); border-radius:14px; padding:1rem 1.1rem;
}
html[data-tenant="apcc"] .apcc-person .apcc-avatar{
  width:44px; height:44px; flex:none; border-radius:50%;
  background:var(--apcc-deep); color:#fff; display:grid; place-items:center;
  font-weight:800; letter-spacing:.02em;
}
html[data-tenant="apcc"] .apcc-lead-chip{
  display:inline-block; border-radius:999px; background:var(--gold);
  color:#3A2E00; font-size:.64rem; font-weight:800; letter-spacing:.06em;
  text-transform:uppercase; padding:.2rem .55rem;
}

/* ============================================================================
   CARTA JAS II (C1 foundation) — tenant-scoped identity.
   Every rule is scoped to html[data-tenant="carta"], which only the resolved
   `carta` tenant ever carries (platform.js sets the attribute from the
   server-resolved tenant slug). IS4NCDs and APCC can never match these
   selectors. Tokens are the C0-B captured values from the accepted
   Preservation Contract — CARTA's own identity, not the IS4NCDs palette.
   ========================================================================== */
/* C1-R pre-paint bootstrap veil — keyed on the data-boot-carta attribute
   that favicon-boot.js sets synchronously in <head> for the CARTA preview
   HOSTNAME only. Until jas-shell mounts (or clears the attribute on any
   non-carta outcome), the generic shared shell is never painted: the page
   shows a neutral CARTA loading surface in the CARTA palette. No other
   host ever carries the attribute, so IS4NCDs/APCC first paint is
   untouched by construction. */
html[data-boot-carta] body > :not(#jasShell){ display:none !important; }
html[data-boot-carta] body{ background:#f7f3ea; }
html[data-boot-carta] body::before{
  content:"CARTA \00b7  JAS II Programme Hub";
  position:fixed; inset:0; display:grid; place-items:center;
  color:#6d675f; background:#f7f3ea;
  font:600 14px/1.4 Inter, ui-sans-serif, system-ui, sans-serif;
  letter-spacing:.12em; text-transform:uppercase;
}
html[data-boot-carta] body.jas-active::before{ display:none; }

html[data-tenant="carta"]{
  --jas-ink:#090a0c; --jas-ink-2:#231f20; --jas-ochre:#8e5624;
  --jas-gold:#ebb322; --jas-gold-soft:#fff3c8; --jas-ivory:#f7f3ea;
  --jas-paper:#ffffff; --jas-muted:#6d675f; --jas-line:#e7dfd3; --jas-line-2:#d7cbbd;
  --jas-green:#1e7a56; --jas-green-soft:#e7f6ef;
  --jas-blue:#215f91; --jas-blue-soft:#e9f3fb;
  --jas-red:#b53d35; --jas-red-soft:#faecea;
  --jas-amber:#9c6900; --jas-amber-soft:#fff4d7;
  --jas-purple:#6b4c9a; --jas-purple-soft:#f0ebf8;
  --jas-shadow:0 14px 38px rgba(35,31,32,.09);
  --jas-radius:18px; --jas-radius-sm:12px;
  --jas-topbar:76px; --jas-sidebar:252px;
}
html[data-tenant="carta"] body.jas-active{ background:var(--jas-ivory); color:var(--jas-ink-2);
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; }
html[data-tenant="carta"] body.jas-active > [data-jas-hidden]{ display:none !important; }

#jasShell{ min-height:100vh; }
#jasShell .jas-topbar{ position:fixed; inset:0 0 auto 0; z-index:80; height:var(--jas-topbar);
  display:flex; align-items:center; gap:16px; padding:10px 24px;
  background:rgba(255,255,255,.96); border-bottom:1px solid var(--jas-line); backdrop-filter:blur(14px); }
#jasShell .jas-brand{ display:flex; align-items:center; gap:14px; text-decoration:none; color:inherit; min-width:0; }
#jasShell .jas-brand img{ width:150px; height:50px; object-fit:contain; object-position:left center; }
#jasShell .jas-brand span{ display:grid; line-height:1.1; }
#jasShell .jas-brand strong{ font-size:15px; letter-spacing:-.01em; }
#jasShell .jas-brand small{ margin-top:4px; color:var(--jas-muted); font-size:12px; }
#jasShell .jas-topbar-actions{ margin-left:auto; display:flex; align-items:center; gap:10px; }
#jasShell .jas-icon-btn{ width:44px; height:44px; display:grid; place-items:center;
  border:1px solid var(--jas-line); border-radius:12px; background:var(--jas-paper); font-size:18px; }
#jasShell .jas-avatar{ width:38px; height:38px; display:grid; place-items:center; border-radius:999px;
  background:var(--jas-gold); color:var(--jas-ink); font-weight:800; }
#jasShell .jas-id-copy{ display:grid; line-height:1.15; }
#jasShell .jas-id-copy small{ color:var(--jas-muted); }
#jasShell .jas-identity-menu{ position:relative; }
#jasShell .jas-identity-menu>summary{
  display:flex; align-items:center; gap:9px; min-height:46px; padding:4px 7px; border:1px solid transparent;
  border-radius:12px; cursor:pointer; list-style:none;
}
#jasShell .jas-identity-menu>summary::-webkit-details-marker{ display:none; }
#jasShell .jas-identity-menu>summary:hover,
#jasShell .jas-identity-menu[open]>summary{ border-color:var(--jas-line); background:var(--jas-ivory); }
#jasShell .jas-identity-chevron{ color:var(--jas-muted); font-size:14px; transition:transform .16s ease; }
#jasShell .jas-identity-menu[open] .jas-identity-chevron{ transform:rotate(180deg); }
#jasShell .jas-identity-pop{
  position:absolute; z-index:140; top:calc(100% + 7px); right:0; min-width:240px; padding:10px;
  border:1px solid var(--jas-line); border-radius:12px; background:var(--jas-paper); box-shadow:var(--jas-shadow);
}
#jasShell .jas-identity-pop p{ display:grid; gap:3px; margin:0 0 8px; padding:5px 7px 10px; border-bottom:1px solid var(--jas-line); }
#jasShell .jas-identity-pop p small,
#jasShell .jas-identity-pop p span{ color:var(--jas-muted); font-size:12px; }
#jasShell .jas-identity-pop .jas-signout{ width:100%; justify-content:flex-start; margin:0; }
#jasShell .jas-btn{ display:inline-flex; align-items:center; justify-content:center; min-height:44px;
  padding:8px 18px; border-radius:12px; border:1px solid transparent; font-weight:700; font-size:14px; cursor:pointer;
  white-space:nowrap; }
#jasShell .jas-btn-primary{ background:var(--jas-ink); color:#fff; }
#jasShell .jas-btn-primary:hover{ background:var(--jas-ochre); }
#jasShell .jas-signout{ background:transparent; border:1px solid var(--jas-line);
  color:var(--jas-muted); min-height:38px; padding:6px 12px; font-size:13px; }
#jasShell .jas-signout:hover{ border-color:var(--jas-ochre); color:var(--jas-ochre); }
#jasShell .jas-sidebar{ position:fixed; top:var(--jas-topbar); bottom:0; left:0; width:var(--jas-sidebar);
  background:var(--jas-ink); color:#efece6; padding:20px 14px; display:flex; flex-direction:column; z-index:70; }
#jasShell .jas-nav-group{ margin:16px 8px 6px; font-size:11px; font-weight:800; letter-spacing:.14em;
  text-transform:uppercase; color:rgba(239,236,230,.55); }
#jasShell .jas-nav-link{ display:block; padding:10px 12px; border-radius:12px; text-decoration:none;
  color:#efece6; font-size:14px; font-weight:600; }
#jasShell .jas-nav-link:hover{ background:rgba(255,255,255,.08); }
#jasShell .jas-nav-link.active{ background:var(--jas-gold); color:var(--jas-ink); }
#jasShell .jas-nav-link.jas-locked{ opacity:.45; }
#jasShell .jas-sidebar-foot{ margin-top:auto; display:flex; gap:10px; align-items:center;
  padding:12px; border:1px solid rgba(255,255,255,.14); border-radius:14px; font-size:12px; }
#jasShell .jas-sidebar-foot small{ display:block; color:rgba(239,236,230,.6); }
#jasShell .jas-dot{ width:9px; height:9px; border-radius:50%; background:var(--jas-gold); flex:none; }
#jasShell .jas-main{ padding:calc(var(--jas-topbar) + 26px) 30px 40px calc(var(--jas-sidebar) + 30px); }
#jasShell .jas-page{ max-width:1480px; margin-inline:auto; }
#jasShell.nav-collapsed .jas-sidebar{ transform:translateX(-105%); }
#jasShell.nav-collapsed .jas-main{ padding-left:30px; }
#jasShell .jas-eyebrow{ margin:0; font-size:12px; font-weight:800; letter-spacing:.14em;
  text-transform:uppercase; color:var(--jas-ochre); }
#jasShell h1{ margin:4px 0 18px; font-size:clamp(28px,3vw,44px); line-height:1.05;
  letter-spacing:-.035em; font-weight:700; color:var(--jas-ink); }
#jasShell .jas-card{ background:var(--jas-paper); border:1px solid var(--jas-line);
  border-radius:var(--jas-radius); box-shadow:var(--jas-shadow); padding:26px; }
#jasShell .jas-empty{ display:grid; justify-items:start; gap:6px; max-width:560px; }
#jasShell .jas-empty-mark{ font-size:26px; color:var(--jas-ochre); }
#jasShell .jas-empty h2{ margin:0; font-size:20px; letter-spacing:-.02em; }
#jasShell .jas-empty p{ margin:0; color:var(--jas-muted); font-size:14.5px; line-height:1.6; max-width:60ch; }

/* -------- C2B: dashboard, timetable and schedule administration -------- */
#jasShell .jas-page > .jas-card{ margin-bottom:16px; }
#jasShell .jas-muted{ color:var(--jas-muted); font-size:14.5px; line-height:1.6; margin:4px 0 0; }
#jasShell .jas-notice{ margin:0 0 14px; padding:10px 14px; border-radius:12px;
  background:var(--jas-red-soft); color:var(--jas-red); font-size:14px; font-weight:600; }
#jasShell .jas-card-title{ margin:0 0 12px; font-size:17px; letter-spacing:-.02em; }
#jasShell .jas-edition-card h2{ margin:6px 0 4px; font-size:24px; letter-spacing:-.03em; }
#jasShell .jas-chip{ display:inline-block; padding:3px 10px; border-radius:999px; font-size:12px;
  font-weight:700; background:var(--jas-gold-soft); color:var(--jas-ochre); }
#jasShell .jas-chip-type{ background:var(--jas-blue-soft); color:var(--jas-blue); }
#jasShell .jas-chip-track{ background:var(--jas-purple-soft); color:var(--jas-purple); }
#jasShell .jas-chip-track.jas-chip-method-qualitative{ background:var(--jas-green-soft); color:var(--jas-green); box-shadow:inset 3px 0 0 var(--jas-green); }
#jasShell .jas-chip-track.jas-chip-method-quantitative{ background:var(--jas-blue-soft); color:var(--jas-blue); box-shadow:inset 3px 0 0 var(--jas-blue); }
#jasShell .jas-chip-track.jas-chip-method-mixed{ background:var(--jas-purple-soft); color:var(--jas-purple); box-shadow:inset 3px 0 0 var(--jas-purple); }
#jasShell .jas-chip-cancelled{ background:var(--jas-red-soft); color:var(--jas-red); }
#jasShell .jas-chip-draft{ background:var(--jas-amber-soft); color:var(--jas-amber); }
#jasShell .jas-chip-published{ background:var(--jas-green-soft); color:var(--jas-green); }
#jasShell .jas-week-tabs{ display:flex; gap:8px; overflow-x:auto; padding-bottom:6px; margin-bottom:12px; }
#jasShell .jas-week-tab{ flex:0 0 auto; display:grid; gap:1px; padding:9px 16px; min-height:44px;
  border-radius:12px; border:1px solid var(--jas-line); background:var(--jas-paper);
  font:inherit; font-weight:700; font-size:14px; color:var(--jas-ink); cursor:pointer; text-align:left; }
#jasShell .jas-week-tab small{ font-weight:600; font-size:11.5px; color:var(--jas-muted); }
#jasShell .jas-week-tab.active{ background:var(--jas-ink); color:#fff; border-color:var(--jas-ink); }
#jasShell .jas-week-tab.active small{ color:var(--jas-gold); }
#jasShell .jas-filters{ display:flex; flex-wrap:wrap; gap:14px; margin:0 0 16px; }
#jasShell .jas-filters label{ display:grid; gap:4px; font-size:12.5px; font-weight:700; color:var(--jas-muted); }
#jasShell .jas-field{ font:inherit; font-size:16px; padding:9px 12px; min-height:44px; border-radius:12px;
  border:1px solid var(--jas-line-2); background:#fff; color:var(--jas-ink); max-width:100%; }
#jasShell .jas-day-heading{ margin:22px 0 10px; font-size:15px; letter-spacing:-.01em; color:var(--jas-ink); }
#jasShell .jas-session{ background:var(--jas-paper); border:1px solid var(--jas-line); border-radius:var(--jas-radius);
  box-shadow:var(--jas-shadow); margin-bottom:10px; overflow:hidden; }
#jasShell .jas-session-toggle{ position:relative; display:block; width:100%; padding:16px 52px 16px 18px; border:0;
  background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
#jasShell .jas-session-toggle:hover{ background:color-mix(in srgb,var(--jas-gold) 5%,transparent); }
#jasShell .jas-session-toggle:focus-visible{ outline:3px solid color-mix(in srgb,var(--jas-gold) 65%,#fff); outline-offset:-3px; }
#jasShell .jas-session-head{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
#jasShell .jas-session-badges{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; min-width:0; margin-top:6px; }
#jasShell .jas-session-badges .jas-chip{ white-space:normal; overflow-wrap:anywhere; }
#jasShell .jas-sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
#jasShell .jas-session-time{ font-size:13px; font-weight:800; color:var(--jas-ochre); letter-spacing:.02em; }
#jasShell .jas-session-title{ margin:6px 0 2px; font-size:16.5px; letter-spacing:-.015em; }
#jasShell .jas-session-meta{ margin:0; color:var(--jas-muted); font-size:13.5px; }
#jasShell .jas-session.cancelled .jas-session-title{ text-decoration:line-through; color:var(--jas-muted); }
#jasShell .jas-cancel-reason{ margin:4px 0 2px; color:var(--jas-red); font-size:13.5px; font-weight:600; }
#jasShell .jas-session-open-label{ position:absolute; top:16px; right:16px; color:var(--jas-ochre); font-size:12px; font-weight:800; }
#jasShell .jas-session-detail{ border-top:1px solid var(--jas-line); padding:14px 18px 18px; background:#fffdf9; }
#jasShell .jas-session-detail p{ margin:0 0 6px; font-size:14.5px; line-height:1.6; max-width:70ch; }
#jasShell .jas-form{ display:grid; gap:12px; max-width:560px; }
#jasShell .jas-form label{ display:grid; gap:4px; font-size:12.5px; font-weight:700; color:var(--jas-muted); }
#jasShell .jas-form-inline{ grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); align-items:end; margin-top:12px; }
#jasShell form[data-jas-form="create-type"] .jas-field{ width:100%; min-width:0; box-sizing:border-box; }
#jasShell form[data-jas-form="create-track"] .jas-field{ width:100%; min-width:0; box-sizing:border-box; }
#jasShell .jas-fieldset{ border:1px solid var(--jas-line); border-radius:12px; padding:10px 14px; }
#jasShell .jas-fieldset legend{ font-size:12.5px; font-weight:700; color:var(--jas-muted); padding:0 4px; }
#jasShell .jas-check{ display:flex; align-items:center; gap:8px; font-size:14px; color:var(--jas-ink); min-height:34px; }
#jasShell .jas-admin-row{ display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  padding:9px 0; border-bottom:1px solid var(--jas-line); font-size:14px; }
#jasShell .jas-admin-row.cancelled .jas-admin-title{ text-decoration:line-through; color:var(--jas-muted); }
#jasShell .jas-admin-when{ font-weight:700; color:var(--jas-ochre); font-size:13px; }
#jasShell .jas-admin-title small{ color:var(--jas-muted); font-weight:600; }
#jasShell .jas-admin-actions{ margin-left:auto; display:flex; gap:8px; }

/* JAS II experience reunification: programme-first home and timetable. */
#jasShell .jas-programme-hero{ position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1.45fr) minmax(260px,.65fr);
  gap:clamp(24px,4vw,64px); align-items:end; margin-bottom:18px; padding:clamp(26px,4vw,48px);
  border-radius:24px; color:#fff; background:linear-gradient(118deg,#090a0c 0%,#211b18 58%,#82501f 100%);
  box-shadow:0 22px 54px rgba(35,31,32,.16); }
#jasShell .jas-programme-hero::after{ content:""; position:absolute; right:-90px; bottom:-130px; width:320px; height:320px;
  border:44px solid rgba(235,179,34,.13); border-radius:50%; pointer-events:none; }
#jasShell .jas-programme-hero > *{ position:relative; z-index:1; }
#jasShell .jas-hero-kicker{ margin:0 0 10px; color:var(--jas-gold); font-size:12px; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
#jasShell .jas-programme-hero h2{ max-width:18ch; margin:0; font-size:clamp(28px,4vw,48px); line-height:1.04; letter-spacing:-.04em; }
#jasShell .jas-programme-hero p:not(.jas-hero-kicker){ max-width:64ch; margin:14px 0 0; color:rgba(255,255,255,.78); line-height:1.6; }
#jasShell .jas-hero-actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
#jasShell .jas-about-back{ margin:0 0 20px; }
#jasShell .jas-about-back a{ display:inline-flex; align-items:center; min-height:44px; }
#jasShell .jas-about{ max-width:900px; padding:clamp(20px,3vw,36px); overflow-wrap:break-word; line-height:1.75; }
#jasShell .jas-about h2{ font-size:clamp(1.25rem,2vw,1.65rem); line-height:1.35; margin:0; }
#jasShell .jas-about section{ margin-top:28px; }
#jasShell .jas-about h3{ font-size:1.1rem; line-height:1.4; margin:0 0 10px; }
#jasShell .jas-about p{ margin:0 0 12px; }
#jasShell .jas-about ul{ padding-left:1.35em; margin:0; }
#jasShell .jas-about li + li{ margin-top:10px; }
#jasShell .jas-programme-hero .jas-btn-primary{ color:var(--jas-ink); background:var(--jas-gold); text-decoration:none; }
#jasShell .jas-programme-progress{ display:grid; gap:10px; min-width:0; padding:18px; border:1px solid rgba(255,255,255,.16);
  border-radius:16px; background:rgba(255,255,255,.07); backdrop-filter:blur(8px); }
#jasShell .jas-programme-progress span{ display:grid; gap:3px; }
#jasShell .jas-programme-progress strong{ font-size:18px; }
#jasShell .jas-programme-progress small{ color:rgba(255,255,255,.7); line-height:1.4; }
#jasShell .jas-progress-track{ height:7px; overflow:hidden; border-radius:99px; background:rgba(255,255,255,.16); }
#jasShell .jas-progress-track span{ display:block; height:100%; border-radius:inherit; background:var(--jas-gold); }
#jasShell .jas-home-grid{ display:grid; grid-template-columns:minmax(0,2fr) minmax(360px,1fr); gap:clamp(18px,2.4vw,30px); align-items:start; }
#jasShell .jas-home-primary{ min-width:0; }
#jasShell .jas-home-aside{ display:grid; min-width:0; gap:14px; }
#jasShell .jas-section-heading{ display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:14px; }
#jasShell .jas-section-heading h2{ margin:3px 0 0; font-size:24px; letter-spacing:-.03em; }
#jasShell .jas-section-heading a,#jasShell .jas-text-link{ color:var(--jas-ochre); font-size:13px; font-weight:800; text-decoration:none; }
#jasShell .jas-journey-links,#jasShell .jas-overview-actions{ display:grid; gap:10px; }
#jasShell .jas-overview-actions{ grid-template-columns:repeat(3,minmax(0,1fr)); margin:8px 0 16px; }
#jasShell .jas-journey-link{ display:grid; gap:4px; min-height:76px; padding:16px 18px; border:1px solid var(--jas-line);
  border-radius:14px; background:var(--jas-paper); color:var(--jas-ink); text-decoration:none; box-shadow:0 8px 24px rgba(35,31,32,.05); }
#jasShell .jas-journey-link:hover{ border-color:var(--jas-gold); transform:translateY(-1px); }
#jasShell .jas-journey-link span{ color:var(--jas-muted); font-size:12px; font-weight:750; text-transform:uppercase; letter-spacing:.06em; }
#jasShell .jas-journey-link strong{ font-size:14px; line-height:1.35; }
#jasShell .jas-support-team{ min-width:0; }
#jasShell .jas-support-list{ display:grid; gap:0; margin:14px 0 0; padding:0; list-style:none; }
#jasShell .jas-supporter{ display:grid; gap:9px; min-width:0; padding:15px 0; border-bottom:1px solid var(--jas-line); }
#jasShell .jas-supporter:first-child{ padding-top:4px; }
#jasShell .jas-supporter:last-child{ border-bottom:0; }
#jasShell .jas-supporter-identity{ display:grid; gap:3px; min-width:0; }
#jasShell .jas-supporter-identity strong{ overflow-wrap:anywhere; line-height:1.3; }
#jasShell .jas-supporter-identity span,#jasShell .jas-supporter small{ color:var(--jas-muted); font-size:13px; line-height:1.45; }
#jasShell .jas-supporter-contexts{ display:flex; flex-wrap:wrap; gap:6px; min-width:0; }
#jasShell .jas-supporter-contexts .jas-chip{ max-width:100%; white-space:normal; }
#jasShell .jas-support-privacy{ margin:12px 0 0; padding:11px 13px; border-left:3px solid var(--jas-gold); background:var(--jas-gold-soft); color:var(--jas-muted); font-size:12px; line-height:1.5; }
#jasShell .jas-support-privacy strong{ color:var(--jas-ink); }
#jasShell .jas-page-intro{ margin-bottom:16px; }
#jasShell .jas-page-intro h2{ margin:4px 0; font-size:clamp(21px,2vw,28px); letter-spacing:-.03em; }
#jasShell .jas-page-intro p{ margin:0; color:var(--jas-muted); line-height:1.55; }
#jasShell .jas-timetable-toolbar{ position:sticky; top:calc(var(--jas-topbar) + 8px); z-index:20; margin-bottom:18px; padding:12px;
  border:1px solid var(--jas-line); border-radius:16px; background:rgba(247,243,234,.94); box-shadow:0 10px 28px rgba(35,31,32,.07); backdrop-filter:blur(12px); }
#jasShell .jas-timetable-toolbar .jas-week-tabs{ margin-bottom:8px; }
#jasShell .jas-timetable-toolbar .jas-filters{ margin-bottom:0; }
#jasShell .jas-chip-today{ color:#fff; background:var(--jas-green); }
#jasShell .jas-operations-hero{ grid-template-columns:minmax(0,1.2fr) minmax(260px,.7fr); }

/* Proposal Companion: dominant canvas and one contextual support mode. */
#jasShell .jas-rd-project-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; }
#jasShell .jas-rd-project-head h1{ margin-bottom:0; }
#jasShell .jas-rd-project-status{ flex:none; margin-bottom:6px; padding:7px 11px; border-radius:999px; background:var(--jas-green-soft);
  color:var(--jas-green); font-size:12px; font-weight:800; }
#jasShell .jas-rd-tools{ max-width:72rem; margin-top:14px; border:1px solid var(--jas-line); border-radius:14px; background:rgba(255,255,255,.55); }
#jasShell .jas-rd-tools > summary{ min-height:44px; padding:12px 16px; cursor:pointer; color:var(--jas-ochre); font-size:13px; font-weight:800; }
#jasShell .jas-rd-tools-body{ padding:0 16px 16px; border-top:1px solid var(--jas-line); }
#jasShell .jas-rd{ grid-template-columns:210px minmax(34rem,1fr) minmax(270px,310px); gap:18px; }
#jasShell .jas-rd-support-head{ display:grid; gap:8px; }
#jasShell .jas-rd-support-tabs{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; padding:4px;
  border:1px solid var(--jas-line); border-radius:12px; background:#fff; }
#jasShell .jas-rd-support-tab{ min-height:38px; padding:6px 8px; border:0; border-radius:9px; background:transparent;
  color:var(--jas-muted); font:inherit; font-size:11.5px; font-weight:800; cursor:pointer; }
#jasShell .jas-rd-support-tab.active{ color:var(--jas-ink); background:var(--jas-gold-soft); }
#jasShell .jas-rd-support-tab:focus-visible{ outline:3px solid color-mix(in srgb,var(--jas-gold) 48%,transparent); }
#jasShell .jas-rd-support-content{ display:grid; gap:12px; }
#jasShell .jas-rd-support-content > :only-child{ margin:0; }

#jasShell :where(a,button,input,select,textarea,summary):focus-visible{ outline:3px solid color-mix(in srgb,var(--jas-gold) 62%,#fff); outline-offset:2px; }

/* ============ C2B-P4B: Coordinator workspace (read-only) ================
   po.roster.read views over the authoritative programme + cohort. Same
   --jas-* design DNA as the member timetable: ivory field, ochre/gold
   accents, soft-shadow cards. Fellow roster renders a real data table on
   the desktop and stacked cards on phones (no mandatory horizontal scroll).
   ======================================================================= */
#jasShell .jas-co-sub{ margin:2px 0 16px; color:var(--jas-muted); font-size:14px; }
#jasShell .jas-co-sub a{ color:var(--jas-ochre); font-weight:700; text-decoration:none; }
#jasShell .jas-co-sub a:hover{ text-decoration:underline; }
#jasShell .jas-stat-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px; margin-bottom:18px; }
#jasShell .jas-stat{ background:var(--jas-paper); border:1px solid var(--jas-line); border-radius:var(--jas-radius-sm);
  box-shadow:var(--jas-shadow); padding:18px 20px; }
#jasShell .jas-stat-n{ font-size:34px; font-weight:800; letter-spacing:-.03em; color:var(--jas-ink); line-height:1; }
#jasShell .jas-stat-l{ margin-top:6px; font-size:13px; font-weight:700; color:var(--jas-muted); }
#jasShell .jas-co-2col{ display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; }
#jasShell .jas-co-2col > *{ margin:0; }
/* -- Fellow roster: table on desktop, cards on phones -- */
#jasShell .jas-co-mob{ display:none; }
#jasShell .jas-co-tablewrap{ overflow-x:auto; border:1px solid var(--jas-line); border-radius:var(--jas-radius-sm); background:var(--jas-paper); box-shadow:var(--jas-shadow); }
#jasShell .jas-table{ width:100%; border-collapse:collapse; font-size:14px; }
#jasShell .jas-table th{ text-align:left; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--jas-muted);
  padding:12px 14px; border-bottom:1px solid var(--jas-line-2); white-space:nowrap; }
#jasShell .jas-table td{ padding:12px 14px; border-bottom:1px solid var(--jas-line); vertical-align:top; }
#jasShell .jas-table tbody tr:last-child td{ border-bottom:0; }
#jasShell .jas-table tbody tr:hover{ background:var(--jas-ivory); }
#jasShell .jas-table a{ color:var(--jas-ink); text-decoration:none; }
#jasShell .jas-table a:hover{ color:var(--jas-ochre); text-decoration:underline; }
#jasShell .jas-co-toolbar{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:14px; }
#jasShell .jas-co-search{ flex:1 1 220px; min-width:180px; }
#jasShell .jas-co-toolbar select{ flex:0 1 auto; }
#jasShell .jas-co-fcard{ padding:16px 18px; margin-bottom:10px; }
#jasShell .jas-co-fcard a{ color:var(--jas-ink); text-decoration:none; font-size:15.5px; }
#jasShell .jas-co-fcard a:hover{ color:var(--jas-ochre); }
#jasShell .jas-co-fsub{ font-size:13px; }
#jasShell .jas-co-fmeta{ margin-top:6px; font-size:13px; display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
/* -- chips specific to the coordinator surface -- */
#jasShell .jas-chip-count{ background:var(--jas-ink); color:#fff; }
#jasShell .jas-chip-preview{ background:var(--jas-line); color:var(--jas-muted); }
#jasShell .jas-chip-prop.jas-prop-not_started{ background:var(--jas-line); color:var(--jas-muted); }
#jasShell .jas-chip-prop.jas-prop-in_progress{ background:var(--jas-amber-soft); color:var(--jas-amber); }
#jasShell .jas-chip-prop.jas-prop-in_review{ background:var(--jas-blue-soft); color:var(--jas-blue); }
#jasShell .jas-chip-prop.jas-prop-feedback_shared{ background:var(--jas-green-soft); color:var(--jas-green); }
#jasShell .jas-acct-not_activated{ background:var(--jas-line); color:var(--jas-muted); }
#jasShell .jas-acct-account_linked{ background:var(--jas-green-soft); color:var(--jas-green); }
#jasShell .jas-map-exact{ background:var(--jas-green-soft); color:var(--jas-green); }
#jasShell .jas-map-partial{ background:var(--jas-amber-soft); color:var(--jas-amber); }
#jasShell .jas-map-adjacent{ background:var(--jas-blue-soft); color:var(--jas-blue); }
#jasShell .jas-map-programme_specific{ background:var(--jas-purple-soft); color:var(--jas-purple); }
#jasShell .jas-map-unmapped{ background:var(--jas-line); color:var(--jas-muted); }
/* -- preview-identities disclosure -- */
#jasShell .jas-co-preview{ margin-top:16px; }
#jasShell .jas-co-prevnote{ margin:12px 0 8px; }
#jasShell .jas-co-prevlist{ display:grid; gap:8px; }
#jasShell .jas-co-prevlist li{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:14px; }
/* -- Fellow detail key/value -- */
#jasShell .jas-kv-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px 24px; margin:0; }
#jasShell .jas-kv dt{ font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--jas-muted); margin-bottom:4px; }
#jasShell .jas-kv dd{ margin:0; font-size:14.5px; color:var(--jas-ink); display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
#jasShell .jas-co-privnote{ margin-top:18px; padding-top:14px; border-top:1px solid var(--jas-line); font-size:13px; max-width:70ch; }
/* -- groups & tracks -- */
#jasShell .jas-co-groupgrid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:14px; margin-bottom:8px; }
#jasShell .jas-co-group{ border:1px solid var(--jas-line); border-radius:var(--jas-radius-sm); padding:14px 16px; background:var(--jas-ivory); }
#jasShell .jas-co-group h3{ margin:0 0 8px; font-size:15px; display:flex; align-items:center; gap:8px; }
#jasShell .jas-co-memlist{ display:grid; gap:6px; }
#jasShell .jas-co-memlist li{ font-size:13.5px; display:flex; flex-direction:column; }
#jasShell .jas-co-memlist li span{ font-size:12px; }
#jasShell .jas-co-trackrow{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin-bottom:8px; }
#jasShell .jas-co-track{ border:1px solid var(--jas-line); border-radius:var(--jas-radius-sm); padding:12px 14px; display:flex; flex-direction:column; gap:4px; }
#jasShell .jas-co-track strong{ font-size:14.5px; }
#jasShell .jas-co-track span{ font-size:13px; }
/* -- facilitators -- */
#jasShell .jas-co-faclist{ display:grid; gap:10px; margin-bottom:8px; }
#jasShell .jas-co-fac{ border:1px solid var(--jas-line); border-radius:var(--jas-radius-sm); padding:12px 14px; }
#jasShell .jas-co-facname{ font-weight:700; font-size:14.5px; color:var(--jas-ink); }
#jasShell .jas-co-facmeta{ margin-top:4px; font-size:13px; color:var(--jas-ink-2); }
#jasShell .jas-co-facnote{ margin-top:12px; max-width:74ch; }
/* -- curriculum journey -- */
#jasShell .jas-co-journey{ margin-bottom:12px; padding:18px 20px; }
#jasShell .jas-co-jhead{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
#jasShell .jas-co-jhead h3{ margin:0; font-size:16px; letter-spacing:-.01em; }
#jasShell .jas-co-jmeta{ margin:8px 0 0; font-size:12.5px; color:var(--jas-muted); }
/* -- attention / planning register rows -- */
#jasShell .jas-attn-row{ padding:12px 0; border-bottom:1px solid var(--jas-line); }
#jasShell .jas-attn-row:last-child{ border-bottom:0; }
#jasShell .jas-attn-head{ display:flex; align-items:center; gap:8px; }
#jasShell .jas-attn-head strong{ font-size:14.5px; }
/* -- C2B-P4B-R: Programme-Administrator role-aware affordances -- */
#jasShell .jas-co-admin{ margin-top:14px; padding-top:14px; border-top:1px dashed var(--jas-line-2);
  display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
#jasShell .jas-co-adminlabel{ font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  color:var(--jas-ochre); background:var(--jas-gold-soft); border-radius:999px; padding:3px 10px; }
#jasShell .jas-co-abtn{ min-height:34px; padding:6px 12px; font-size:13px; }
#jasShell .jas-co-xbtn{ border:1px solid var(--jas-line-2); background:var(--jas-paper); color:var(--jas-red);
  border-radius:8px; width:24px; height:24px; line-height:1; font-size:15px; font-weight:700; cursor:pointer;
  padding:0; margin-left:6px; vertical-align:middle; }
#jasShell .jas-co-xbtn:hover{ background:var(--jas-red-soft); border-color:var(--jas-red); }
#jasShell .jas-co-memlist li{ display:flex; align-items:center; }
#jasShell .jas-co-memlist li .jas-muted{ margin-left:auto; }
#jasShell .jas-co-memlist li .jas-co-xbtn{ margin-left:8px; flex:none; }
#jasShell .jas-co-groupadd{ margin-top:10px; }
#jasShell .jas-co-groupadd select{ width:100%; }
#jasShell .jas-co-toprow{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; }
#jasShell .jas-co-manageschedule{ min-height:38px; }
#jasShell .jas-co-week{ display:inline-block; margin-left:6px; padding:2px 10px; border-radius:999px;
  background:var(--jas-ink); color:#fff; font-size:12px; font-weight:700; }
#jasShell .jas-co-actionmsg{ margin:0 0 14px; padding:10px 14px; border-radius:10px; font-size:14px; font-weight:600; }
#jasShell .jas-co-action-ok{ background:var(--jas-green-soft); color:var(--jas-green); }
#jasShell .jas-co-action-err{ background:var(--jas-red-soft); color:var(--jas-red); }
#jasShell .jas-preview-tag{ display:inline-block; padding:1px 7px; border-radius:999px; background:var(--jas-gold-soft);
  color:var(--jas-ochre); font-size:10px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; vertical-align:middle; }
@media (max-width:860px){
  #jasShell .jas-co-2col{ grid-template-columns:1fr; }
  #jasShell .jas-kv-grid{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  /* Phones: the roster table is replaced by stacked cards — no horizontal
     scroll is ever required to read a Fellow's row. */
  #jasShell .jas-co-desk{ display:none; }
  #jasShell .jas-co-mob{ display:block; }
  #jasShell .jas-stat-grid{ grid-template-columns:1fr 1fr; }
  #jasShell .jas-co-toolbar select,
  #jasShell .jas-co-search{ flex:1 1 100%; }
  #jasShell .jas-co-jhead{ flex-direction:column; align-items:flex-start; gap:6px; }
}
@media (max-width:390px){
  #jasShell .jas-stat-grid{ grid-template-columns:1fr; }
}

/* -------- C2E-B/C2E-BR2: Proposal Companion (Research Development) ------
   SECTION-LEVEL AUTHORING (C2E-BR2): the centre canvas is one coherent
   intellectual section — its fields flow vertically as a document, with
   typography and hairlines carrying the hierarchy (no card-per-field
   chrome, no wizard). Navigation is sections-first on the left; the right
   rail follows ONE active context field and remains HONESTLY unavailable
   (no fake recommendations, no active-looking dead controls). Reviewer
   mode renders the same structure read-only with an unmistakable banner. */
#jasShell .jas-rd{ display:grid; grid-template-columns:236px minmax(0,1fr) 290px; gap:22px; align-items:start; margin-top:18px; }
#jasShell .jas-rd-tmeta{ margin:6px 0 0; font-size:13px; color:var(--jas-muted); }
/* PROPOSAL-COMPANION-DEMO §7: concise landing explainer on the workspace. */
#jasShell .jas-rd-intro{ margin:12px 0 0; max-width:70ch; font-size:14px; line-height:1.55; color:var(--jas-ink,#333); }
#jasShell .jas-rd-file-actions{ display:flex; flex-wrap:wrap; align-items:flex-start; gap:10px; margin-top:14px; }
#jasShell .jas-rd-file-actions > .jas-rd-import{ flex:1 0 100%; margin-top:2px; }
#jasShell .jas-rd-import-open{ background:transparent; border-color:var(--jas-line-2); color:var(--jas-ink); }
#jasShell .jas-rd-export{ display:flex; flex-wrap:wrap; align-items:center; gap:9px; }
#jasShell .jas-rd-export-options{ display:flex; flex-wrap:wrap; gap:8px; }
#jasShell .jas-rd-export-open{ background:var(--jas-gold-soft); border-color:var(--jas-gold); color:var(--jas-ink); }
#jasShell .jas-rd-export span{ max-width:52ch; font-size:12.5px; color:var(--jas-muted); }
/* Fellow-owned, qualitative proposal-development profile. Its typography
   deliberately reads as reflective evidence, not a score dashboard. */
#jasShell .jas-rd-development{ margin-top:20px; padding:clamp(18px,2.5vw,30px); border:1px solid var(--jas-line);
  border-top:4px solid var(--jas-gold); border-radius:var(--jas-radius); background:var(--jas-paper); }
#jasShell .jas-rd-development-head{ display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,38rem); gap:28px; align-items:end; }
#jasShell .jas-rd-development-head h2{ margin:.2rem 0 0; font-size:clamp(1.35rem,2vw,1.8rem); color:var(--jas-ink); }
#jasShell .jas-rd-development-head > p{ margin:0; max-width:64ch; line-height:1.55; color:var(--jas-ink-2); }
#jasShell .jas-rd-development-disclaimer{ max-width:92ch; margin:16px 0 0; padding:12px 14px;
  border-left:3px solid var(--jas-line-2); background:var(--jas-ivory); font-size:12.5px; line-height:1.55; color:var(--jas-muted); }
#jasShell .jas-rd-development-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px;
  margin-top:22px; border:1px solid var(--jas-line); background:var(--jas-line); }
#jasShell .jas-rd-development-domain{ min-width:0; padding:18px; background:var(--jas-paper); }
#jasShell .jas-rd-development-domain:last-child{ grid-column:1 / -1; }
#jasShell .jas-rd-development-domain > div{ display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:10px; }
#jasShell .jas-rd-development-domain h3{ margin:0; font-size:16px; color:var(--jas-ink); }
#jasShell .jas-rd-development-level{ flex:none; padding:4px 8px; border-radius:999px; background:var(--jas-gold-soft);
  color:var(--jas-ochre); font-size:11px; font-weight:800; letter-spacing:.04em; }
#jasShell .jas-rd-development-domain h4{ margin:16px 0 5px; font-size:11px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--jas-muted); }
#jasShell .jas-rd-development-domain p{ margin:0; max-width:68ch; font-size:13.5px; line-height:1.6; color:var(--jas-ink-2); }
#jasShell .jas-rd-development-guide{ margin-top:16px; }
#jasShell .jas-rd-development-guide summary{ min-height:40px; cursor:pointer; font-size:13px; font-weight:750; color:var(--jas-ochre); }
#jasShell .jas-rd-development-guide dl{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 22px; margin:4px 0 0; }
#jasShell .jas-rd-development-guide dl div{ border-top:1px solid var(--jas-line); padding-top:8px; }
#jasShell .jas-rd-development-guide dt{ font-size:12.5px; font-weight:800; color:var(--jas-ink); }
#jasShell .jas-rd-development-guide dd{ margin:3px 0 0; font-size:12.5px; line-height:1.5; color:var(--jas-muted); }
#jasShell .jas-rd-import{ margin-top:16px; padding:18px; border:1px solid var(--jas-line); border-radius:var(--jas-radius); background:var(--jas-paper); }
#jasShell .jas-rd-import h2{ margin:.15rem 0 0; font-size:1.2rem; }
#jasShell .jas-rd-import > p{ max-width:72ch; line-height:1.55; }
#jasShell .jas-rd-import-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
#jasShell .jas-rd-import-head .jas-eyebrow{ margin:0; }
#jasShell .jas-rd-import-file{ display:grid; gap:6px; max-width:560px; margin-top:14px; font-size:13px; font-weight:700; }
#jasShell .jas-rd-import-file input{ padding:9px; }
#jasShell .jas-rd-import-status, #jasShell .jas-rd-import-privacy, #jasShell .jas-rd-import-note{ font-size:12.5px; color:var(--jas-muted); }
#jasShell .jas-rd-import-summary{ display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 8px; }
#jasShell .jas-rd-import-summary span{ padding:6px 9px; border:1px solid var(--jas-line); border-radius:999px; font-size:12px; color:var(--jas-muted); }
#jasShell .jas-rd-import-summary strong{ color:var(--jas-ink); }
#jasShell .jas-rd-import-list{ display:grid; gap:12px; margin-top:14px; }
#jasShell .jas-rd-import-row{ display:grid; grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr); gap:18px; padding:15px; border:1px solid var(--jas-line); border-radius:12px; background:var(--jas-ivory); }
#jasShell .jas-rd-import-source h3{ margin:5px 0; font-size:16px; }
#jasShell .jas-rd-import-source p{ margin:0; white-space:pre-wrap; font-size:13px; line-height:1.55; color:var(--jas-ink-2); }
#jasShell .jas-rd-import-location{ display:block; margin-bottom:9px; font-size:11.5px; color:var(--jas-muted); }
#jasShell .jas-rd-import-passage, #jasShell .jas-rd-import-object{ margin-top:8px; padding:9px 10px; border:1px solid var(--jas-line); border-radius:8px; background:var(--jas-paper); }
#jasShell .jas-rd-import-passage > span, #jasShell .jas-rd-import-object > span{ display:block; font-size:11px; color:var(--jas-muted); }
#jasShell .jas-rd-import-object strong{ display:block; margin-bottom:2px; font-size:12.5px; }
#jasShell .jas-rd-import-pii{ border-color:#b77948; background:#fff8ef; }
#jasShell .jas-rd-import-confidence{ display:inline-block; font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--jas-muted); }
#jasShell .jas-rd-import-high{ color:#4d6b3e; }
#jasShell .jas-rd-import-possible{ color:var(--jas-ochre); }
#jasShell .jas-rd-import-controls{ display:grid; align-content:start; gap:10px; }
#jasShell .jas-rd-import-controls label{ display:grid; gap:4px; font-size:12px; font-weight:700; }
#jasShell .jas-rd-import-controls select{ width:100%; min-height:40px; }
#jasShell .jas-rd-import-mapping{ display:grid; gap:9px; padding:11px; border:1px solid var(--jas-line); border-radius:9px; background:var(--jas-paper); }
#jasShell .jas-rd-import-mapping-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:12px; }
#jasShell .jas-rd-import-boundaries{ display:grid; gap:6px; margin:0; padding:9px; border:1px solid var(--jas-line); border-radius:8px; }
#jasShell .jas-rd-import-boundaries legend{ padding:0 4px; font-size:11px; font-weight:800; }
#jasShell .jas-rd-import-boundaries label, #jasShell .jas-rd-import-pii-confirm{ display:flex; grid-template-columns:none; align-items:flex-start; gap:7px; font-weight:500; line-height:1.35; }
#jasShell .jas-rd-import-boundaries input, #jasShell .jas-rd-import-pii-confirm input{ flex:0 0 auto; margin-top:2px; }
#jasShell .jas-rd-import-pii-confirm{ padding:8px; border-radius:7px; background:#fff3e3; color:#6e3e16; }
#jasShell .jas-rd-import-collision{ padding-top:10px; border-top:1px solid var(--jas-line); }
#jasShell .jas-rd-import-collision p{ margin:0 0 6px; max-height:8rem; overflow:auto; white-space:pre-wrap; font-size:12px; line-height:1.5; }
#jasShell .jas-rd-import-commit{ display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:16px; padding-top:14px; border-top:1px solid var(--jas-line); }
#jasShell .jas-rd-import-commit p{ margin:0; font-size:13px; }
#jasShell .jas-rd-import-done{ display:flex; justify-content:space-between; align-items:center; gap:16px; border-color:#8da37d; }
#jasShell .jas-rd-import-done p{ margin:.2rem 0 0; }
#jasShell .jas-rd-robanner{ border-left:3px solid var(--jas-amber); }
#jasShell .jas-rd-nav{ position:sticky; top:calc(var(--jas-topbar) + 16px); display:flex; flex-direction:column; gap:10px; }
#jasShell .jas-rd-navsec{ border:1px solid var(--jas-line); border-radius:12px; background:var(--jas-paper); overflow:hidden; }
#jasShell .jas-rd-navsec.active{ border-color:var(--jas-gold); }
#jasShell .jas-rd-sechead{ display:flex; flex-direction:column; gap:1px; min-height:48px; justify-content:center;
  padding:8px 12px; text-decoration:none; color:var(--jas-ink); }
#jasShell .jas-rd-sechead strong{ font-size:12px; letter-spacing:.09em; text-transform:uppercase; }
#jasShell .jas-rd-sechead small{ font-size:11.5px; color:var(--jas-muted); }
#jasShell .jas-rd-sechead:hover{ background:var(--jas-gold-soft); }
#jasShell .jas-rd-fldl{ display:flex; align-items:center; gap:8px; min-height:40px; padding:0 12px 0 14px;
  text-decoration:none; color:var(--jas-ink-2); font-size:13.5px; border-top:1px solid var(--jas-line); }
#jasShell .jas-rd-fldl:hover{ background:var(--jas-gold-soft); }
#jasShell .jas-rd-fldl.active{ font-weight:700; color:var(--jas-ink); background:var(--jas-ivory); box-shadow:inset 3px 0 0 var(--jas-gold); }
#jasShell .jas-rd-flddot{ width:7px; height:7px; border-radius:50%; flex:none; background:transparent; border:1.5px solid var(--jas-line-2); }
#jasShell .jas-rd-flddot.has{ background:var(--jas-gold); border-color:var(--jas-gold); }
#jasShell .jas-rd-mobilenav{ display:none; }
/* ---- the section canvas ---- */
#jasShell .jas-rd-main{ background:var(--jas-paper); border:1px solid var(--jas-line); border-radius:var(--jas-radius);
  padding:clamp(18px,2.4vw,34px); min-width:0; }
#jasShell .jas-rd-sechd h2{ margin:0; font-size:23px; letter-spacing:-.02em; color:var(--jas-ink); }
#jasShell .jas-rd-secsub{ margin:6px 0 0; font-size:14px; line-height:1.55; color:var(--jas-muted); }
#jasShell .jas-rd-field{ padding:24px 0 2px; }
#jasShell .jas-rd-field + .jas-rd-field{ border-top:1px solid var(--jas-line); }
#jasShell .jas-rd-sechd + .jas-rd-field{ margin-top:10px; border-top:1px solid var(--jas-line); }
/* The active-context field: a quiet marker, never a competing frame. */
#jasShell .jas-rd-fieldactive{ border-left:3px solid var(--jas-gold); margin-left:-15px; padding-left:12px; }
#jasShell .jas-rd-fhead{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px; }
#jasShell .jas-rd-fhead label{ font-size:15.5px; font-weight:700; color:var(--jas-ink); }
#jasShell .jas-rd-meta{ font-size:12px; color:var(--jas-muted); }
#jasShell .jas-rd-band{ margin-left:8px; }
#jasShell .jas-rd-help{ margin:6px 0 10px; font-size:13.5px; line-height:1.55; color:var(--jas-muted); }
#jasShell .jas-rd-field .jas-field{ width:100%; font-size:15px; line-height:1.6; }
#jasShell .jas-rd-field textarea.jas-field{ resize:vertical; min-height:110px; }
/* Field-TYPE-appropriate controls: short project metadata and structural
   facts never get an essay box (generic renderer, template-driven). */
#jasShell .jas-rd-ctl-input.jas-field{ max-width:360px; }
#jasShell .jas-rd-ctl-input.jas-rd-ctl-wide{ max-width:560px; }
#jasShell .jas-rd-ctl-select.jas-field{ max-width:300px; }
#jasShell .jas-rd-read{ padding:12px 14px; background:var(--jas-ivory); border-left:3px solid var(--jas-line-2);
  border-radius:8px; font-size:15px; line-height:1.65; color:var(--jas-ink-2); white-space:pre-wrap; }
#jasShell .jas-rd-read em{ color:var(--jas-muted); }
/* Compact draft/revision footer — facts first, restrained actions. */
#jasShell .jas-rd-foot{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; margin-top:6px; }
#jasShell .jas-rd-savestate{ font-size:12px; color:var(--jas-muted); }
#jasShell .jas-rd-actions{ display:flex; gap:2px; }
#jasShell .jas-rd-linkbtn{ min-height:30px; padding:2px 8px; font-size:12.5px; font-weight:700;
  background:transparent; border-color:transparent; color:var(--jas-ochre);
  text-decoration:underline; text-underline-offset:3px; border-radius:8px; }
#jasShell .jas-rd-linkbtn:hover{ background:var(--jas-gold-soft); text-decoration:none; }
#jasShell .jas-rd-histbtn{ min-height:34px; padding:4px 12px; font-size:12.5px; }
#jasShell .jas-rd-rel{ margin:8px 0 0; font-size:12.5px; color:var(--jas-ochre); }
#jasShell .jas-rd-vload{ margin:10px 0 0; font-size:13px; color:var(--jas-muted); }
#jasShell .jas-rd-versions{ list-style:none; margin:12px 0 0; padding:0; display:grid; gap:10px; }
#jasShell .jas-rd-versions li{ background:var(--jas-ivory); border:1px solid var(--jas-line); border-radius:10px; padding:10px 12px; }
#jasShell .jas-rd-vhead{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; font-size:12.5px; color:var(--jas-muted); }
#jasShell .jas-rd-vhead strong{ color:var(--jas-ink); font-size:13px; }
#jasShell .jas-rd-vhead .jas-rd-histbtn{ margin-left:auto; }
#jasShell .jas-rd-vbody{ margin:8px 0 0; font-size:13px; line-height:1.55; color:var(--jas-ink-2); white-space:pre-wrap; }
/* Section step links: a convenience under the canvas, not the navigation. */
#jasShell .jas-rd-stepnav{ display:flex; justify-content:space-between; gap:10px; margin-top:26px; padding-top:16px; border-top:1px solid var(--jas-line); }
#jasShell .jas-rd-stepnav .jas-btn{ max-width:48%; min-width:0; text-align:left;
  overflow:hidden; text-overflow:ellipsis; display:block; line-height:26px; padding:9px 18px; }
/* Optional evidence discovery stays subordinate to the writing canvas. */
#jasShell .jas-rd-evidence{ margin:30px 0 4px; border-top:1px solid var(--jas-line); border-bottom:1px solid var(--jas-line); }
#jasShell .jas-rd-evidence-toggle{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding:17px 2px; border:0; background:transparent; color:var(--jas-ink); cursor:pointer; text-align:left; font:inherit; }
#jasShell .jas-rd-evidence-toggle span:first-child{ display:grid; gap:3px; }
#jasShell .jas-rd-evidence-toggle small{ color:var(--jas-muted); font-size:11px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
#jasShell .jas-rd-evidence-toggle strong{ font-size:16px; }
#jasShell .jas-rd-evidence-toggle span[aria-hidden]{ color:var(--jas-ochre); font-size:23px; line-height:1; }
#jasShell .jas-rd-evidence-summary{ color:var(--jas-muted); font-size:12px; font-weight:500; }
#jasShell .jas-rd-evidence-body{ padding:0 2px 20px; }
#jasShell .jas-rd-evidence-note,#jasShell .jas-rd-evidence-hint,#jasShell .jas-rd-evidence-empty{
  max-width:680px; color:var(--jas-muted); font-size:13px; line-height:1.55; }
#jasShell .jas-rd-evidence-stale{ max-width:680px; margin:10px 0; padding:8px 10px; border-left:3px solid var(--jas-gold);
  background:var(--jas-gold-soft); color:var(--jas-ink); font-size:12.5px; }
#jasShell .jas-rd-evidence-keywords{ display:grid; gap:6px; max-width:680px; margin-top:18px; font-size:12.5px; font-weight:800; }
#jasShell .jas-rd-evidence-keywords .jas-field{ width:100%; font-weight:400; }
#jasShell .jas-rd-evidence-hint{ margin:5px 0 14px; font-size:12px; }
#jasShell .jas-rd-evidence-clusters{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:14px 0; }
#jasShell .jas-rd-evidence-clusters article{ padding:14px; border:1px solid var(--jas-line); border-radius:10px; background:var(--jas-ivory); }
#jasShell .jas-rd-evidence-clusters h4{ margin:0 0 6px; font-size:14px; line-height:1.4; }
#jasShell .jas-rd-evidence-clusters p{ margin:0 0 10px; color:var(--jas-muted); font-size:12px; line-height:1.45; }
#jasShell .jas-rd-evidence-loading{ color:var(--jas-muted); font-size:13px; }
#jasShell .jas-rd-evidence-explorer{ max-width:1120px; }
#jasShell .jas-rd-evidence-context{ max-width:760px; color:var(--jas-muted); line-height:1.6; }
#jasShell .jas-rd-evidence-concepts{ display:flex; flex-wrap:wrap; gap:7px; max-width:820px; margin:12px 0 0; }
#jasShell .jas-rd-evidence-concepts span{ padding:5px 9px; border:1px solid var(--jas-line); border-radius:999px; background:var(--jas-ivory); font-size:12px; }
#jasShell .jas-rd-evidence-search{ max-width:820px; margin:20px 0 24px; padding:18px; border:1px solid var(--jas-line); border-radius:12px; background:var(--jas-paper); }
#jasShell .jas-rd-evidence-search>label{ display:block; margin-bottom:7px; font-size:12.5px; font-weight:800; }
#jasShell .jas-rd-evidence-search>div{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; }
#jasShell .jas-rd-evidence-search small{ display:block; margin-top:7px; color:var(--jas-muted); line-height:1.45; }
#jasShell .jas-rd-evidence-count{ color:var(--jas-muted); font-size:12.5px; }
#jasShell .jas-rd-evidence-results{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:14px; }
#jasShell .jas-rd-evidence-results .jas-card{ display:flex; flex-direction:column; min-width:0; }
#jasShell .jas-rd-evidence-results h2{ margin:4px 0 8px; font-size:18px; line-height:1.35; }
#jasShell .jas-rd-evidence-results article>p:not(.jas-rd-evidence-meta):not(.jas-rd-evidence-authors){
  display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:6; color:var(--jas-muted); font-size:13px; line-height:1.55; }
#jasShell .jas-rd-evidence-meta{ margin:0; color:var(--jas-ochre); font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
#jasShell .jas-rd-evidence-authors{ margin:0 0 8px; color:var(--jas-ink); font-size:12.5px; }
#jasShell .jas-rd-evidence-links{ display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:auto; padding-top:12px; border-top:1px solid var(--jas-line); font-size:12px; }
#jasShell .jas-rd-evidence-links a{ overflow-wrap:anywhere; }
/* Contextual support: follows ONE field; honestly unavailable areas. */
#jasShell .jas-rd-side{ position:sticky; top:calc(var(--jas-topbar) + 16px); display:grid; gap:12px; }
#jasShell .jas-rd-supfor{ margin:0; font-size:12px; font-weight:700; letter-spacing:.02em; color:var(--jas-muted); }
#jasShell .jas-rd-supfor strong{ color:var(--jas-ochre); font-weight:800; }
#jasShell .jas-rd-support{ border:1px dashed var(--jas-line-2); border-radius:var(--jas-radius-sm); padding:14px 16px; background:transparent; }
#jasShell .jas-rd-support h3{ margin:0; font-size:12px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; color:var(--jas-muted); }
#jasShell .jas-rd-support p{ margin:6px 0 0; font-size:12.5px; line-height:1.55; color:var(--jas-muted); }
/* C2E-C: LIVE guideline guidance (verified + activated + applicable only).
   Solid gold frame distinguishes real deterministic guidance from the
   dashed reserved placeholders; content stays quiet and reading-sized. */
#jasShell .jas-rd-guidance{ border-style:solid; border-color:var(--jas-gold); background:var(--jas-paper); }
#jasShell .jas-rd-guidance h3{ color:var(--jas-ochre); }
#jasShell .jas-rd-gitem{ margin-top:12px; padding-top:12px; border-top:1px solid var(--jas-line); }
#jasShell .jas-rd-gitem:first-of-type{ margin-top:8px; padding-top:0; border-top:none; }
#jasShell .jas-rd-gitem h4{ margin:0; font-size:13px; line-height:1.4; color:var(--jas-ink); }
#jasShell .jas-rd-gwhy{ margin:6px 0 0; font-size:12.5px; line-height:1.55; color:var(--jas-ink-2); }
#jasShell .jas-rd-gwhy strong{ color:var(--jas-ink); }
#jasShell .jas-rd-gconsider-h{ margin:8px 0 0; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--jas-muted); }
#jasShell .jas-rd-gconsider{ margin:4px 0 0; padding-left:18px; font-size:12.5px; line-height:1.5; color:var(--jas-ink-2); }
#jasShell .jas-rd-gconsider li{ margin-top:3px; }
#jasShell .jas-rd-gsrc{ margin:8px 0 0; font-size:11.5px; line-height:1.5; color:var(--jas-muted); }
#jasShell .jas-rd-gsrc a{ color:var(--jas-ochre); }
/* C2E-E: PROPOSAL GUIDANCE — the platform's own voice: solid quiet frame,
   no gold framework accent, no citation line. Title + why visible;
   Consider (N) collapsed by default. */
#jasShell .jas-rd-pg{ border-style:solid; border-color:var(--jas-line-2); background:var(--jas-paper); }
#jasShell .jas-rd-pg h3{ color:var(--jas-ink); }
#jasShell .jas-rd-pgitem h4{ margin:8px 0 0; font-size:13px; line-height:1.4; color:var(--jas-ink); }
#jasShell .jas-rd-pgitem .jas-rd-linkbtn{ margin-top:6px; }
#jasShell .jas-rd-pgitem .jas-rd-gconsider{ margin-top:6px; }
/* FRAMEWORK GUIDANCE keeps the gold frame; collapsed to one disclosure
   line by default, absent entirely when nothing applies. */
#jasShell .jas-rd-fwline{ display:block; text-align:left; }
/* REASONING SUPPORT — compact actions, no box until a result exists. */
#jasShell .jas-rd-reason{ display:grid; gap:8px; }
#jasShell .jas-rd-reasonhead{ margin:0; font-size:12px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; color:var(--jas-muted); }
#jasShell .jas-rd-reasonacts{ display:flex; gap:8px; flex-wrap:wrap; }
#jasShell .jas-rd-reasonresult{ border-style:solid; border-color:var(--jas-line-2); background:var(--jas-ivory); }
#jasShell .jas-rd-reasonprompts{ margin:4px 0 0; padding-left:18px; font-size:12.5px; line-height:1.55; color:var(--jas-ink-2); }
#jasShell .jas-rd-reasonprompts li{ margin-top:5px; }
#jasShell .jas-rd-reasongroup{ margin-top:10px; padding-top:10px; border-top:1px solid var(--jas-line); }
#jasShell .jas-rd-reasongroup:first-of-type{ margin-top:0; padding-top:0; border-top:none; }
#jasShell .jas-rd-reasonexpl{ margin:0; font-size:12px; font-weight:700; color:var(--jas-ink-2); }
#jasShell .jas-rd-reasonmembers{ margin:6px 0 0; font-size:12px; color:var(--jas-muted); }
#jasShell .jas-rd-reasonmember{ margin-top:8px; font-size:12.5px; color:var(--jas-ink-2); }
#jasShell .jas-rd-reasonmember strong{ font-size:12px; color:var(--jas-ink); }
#jasShell .jas-rd-reasonexcerpt{ margin:2px 0 0; line-height:1.5; color:var(--jas-ink-2); }
#jasShell .jas-rd-provenance{ margin:10px 0 0; font-size:11px; letter-spacing:.03em; color:var(--jas-muted); }
/* C2E-F1: AI-mode chrome — same restrained rail language. The first-use
   notice and the failure/fallback card are quiet paper cards, not alarms;
   Details is a compact definition list of keys and counts only. */
#jasShell .jas-rd-reasonbusy{ margin:0; font-size:12px; color:var(--jas-muted); }
#jasShell .jas-rd-ainotice h4,
#jasShell .jas-rd-aihead{ margin:0; font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--jas-ink); }
#jasShell .jas-rd-ainotice p,
#jasShell .jas-rd-aifailed p{ margin:6px 0 0; font-size:12.5px; line-height:1.55; color:var(--jas-ink-2); }
/* C2E-F2B-R §7: restrained task-identity sub-label on every reasoning
   result and failure card — names the task, never competes with content. */
#jasShell .jas-rd-tasklabel{ margin:2px 0 0; font-size:11px; font-weight:700; letter-spacing:.04em; color:var(--jas-muted); }
#jasShell .jas-rd-ailimits{ margin:8px 0 0; padding-left:18px; font-size:11.5px; line-height:1.5; color:var(--jas-muted); }
#jasShell .jas-rd-aidetails{ margin:8px 0 0; font-size:11.5px; line-height:1.5; color:var(--jas-ink-2);
  display:grid; grid-template-columns:auto 1fr; gap:2px 10px; }
#jasShell .jas-rd-aidetails dt{ font-weight:700; color:var(--jas-muted); }
#jasShell .jas-rd-aidetails dd{ margin:0; overflow-wrap:anywhere; }
#jasShell .jas-rd-evline{ margin:0; font-size:11.5px; line-height:1.5; color:var(--jas-muted); }
/* C2E-G1: SECTION REVIEW — a small quiet section-end block (no progress
   counts, badges or traffic lights) and a dedicated right-side review sheet
   that leaves the writing surface visible behind it. Mobile: full screen. */
#jasShell .jas-rd-secrev{ margin:26px 0 8px; padding:14px 16px; border:1px solid var(--jas-line); border-radius:var(--jas-radius-sm); background:var(--jas-paper); }
#jasShell .jas-rd-secrevhead{ margin:0; font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--jas-ink); }
#jasShell .jas-rd-secrevsub{ margin:4px 0 8px; font-size:12.5px; line-height:1.5; color:var(--jas-ink-2); }
#jasShell .jas-rd-secrevstate{ margin:8px 0 0; font-size:11.5px; letter-spacing:.03em; color:var(--jas-muted); }
/* C2E-G2: quiet cumulative-coherence entry inside the section-end block. */
#jasShell .jas-rd-secrev-coh{ margin-top:12px; padding-top:10px; border-top:1px dashed var(--jas-line); }
#jasShell .jas-rd-secrevcohhead{ margin:0 0 4px; font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--jas-muted); }
#jasShell .jas-rd-secsheet-scrim{ position:fixed; inset:0; background:rgba(24,19,9,.35); z-index:60; }
#jasShell .jas-rd-secsheet{ position:fixed; top:0; right:0; bottom:0; width:min(640px,100%); background:var(--jas-paper); border-left:1px solid var(--jas-line); z-index:61; display:flex; flex-direction:column; box-shadow:-14px 0 34px rgba(0,0,0,.14); }
#jasShell .jas-rd-secsheethd{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:16px 20px 10px; border-bottom:1px solid var(--jas-line); }
#jasShell .jas-rd-secsheethd h3{ margin:0; font-size:13px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--jas-ink); }
#jasShell .jas-rd-secsheetbody{ flex:1; overflow-y:auto; padding:14px 20px 18px; }
#jasShell .jas-rd-secsheetft{ border-top:1px solid var(--jas-line); padding:12px 20px 16px; background:var(--jas-paper); }
#jasShell .jas-rd-secrevh{ margin:14px 0 6px; font-size:11.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--jas-muted); }
#jasShell .jas-rd-secrevitem{ margin:0 0 10px; padding:6px 10px; border-left:2px solid var(--jas-line-2); }
#jasShell .jas-rd-secrevissue{ margin:0; font-size:12.5px; line-height:1.55; color:var(--jas-ink-2); }
#jasShell .jas-rd-secrevfields{ margin:2px 0; font-size:11px; letter-spacing:.03em; color:var(--jas-muted); }
#jasShell .jas-rd-secrevwhy{ margin:2px 0 0; font-size:12px; line-height:1.5; color:var(--jas-ink-2); }
#jasShell .jas-rd-secrevq{ margin:4px 0 0; font-size:12.5px; line-height:1.5; font-style:italic; color:var(--jas-ink); }
#jasShell .jas-rd-secrevcaveat{ margin:10px 0 0; font-size:11px; line-height:1.5; color:var(--jas-muted); }
#jasShell .jas-rd-secrevdisph{ margin:0 0 6px; font-size:12px; font-weight:800; color:var(--jas-ink); }
@media (max-width:767px){
  #jasShell .jas-rd-secsheet{ width:100%; border-left:none; }
}
/* C2E-D: the HUMAN loop — reflection and feedback are two more of the four
   distinct surfaces. REFLECTION = the Fellow's own thinking: warm ivory
   with an ochre spine. FEEDBACK = another person's voice: paper with a
   gold spine (drafts dashed — visibly unsent). Neither imitates the
   proposal text or the guidance frame. */
#jasShell .jas-rd-reflzone{ margin-top:10px; }
#jasShell .jas-rd-seccollab{ margin:14px 0 6px; }
#jasShell .jas-rd-projcollab{ margin-top:30px; padding-top:18px; border-top:1px solid var(--jas-line); }
#jasShell .jas-rd-collabhead{ margin:10px 0 0; font-size:11px; font-weight:800; letter-spacing:.1em;
  text-transform:uppercase; color:var(--jas-muted); }
#jasShell .jas-rd-collabempty{ margin:8px 0 0; font-size:12.5px; line-height:1.55; color:var(--jas-muted); }
#jasShell .jas-rd-reflcard{ margin-top:8px; padding:10px 12px; background:var(--jas-ivory);
  border-left:3px solid var(--jas-ochre); border-radius:0 var(--jas-radius-sm) var(--jas-radius-sm) 0; }
#jasShell .jas-rd-fbcard{ margin-top:8px; padding:10px 12px; background:var(--jas-paper);
  border:1px solid var(--jas-line-2); border-left:3px solid var(--jas-gold);
  border-radius:0 var(--jas-radius-sm) var(--jas-radius-sm) 0; }
#jasShell .jas-rd-fbdraft{ border-style:dashed; border-left-style:solid; }
#jasShell .jas-rd-collabdim{ opacity:.62; }
#jasShell .jas-rd-collabmeta{ margin:0; font-size:11.5px; line-height:1.5; color:var(--jas-muted); }
#jasShell .jas-rd-collabbody{ margin:6px 0 0; font-size:13px; line-height:1.55; color:var(--jas-ink-2); white-space:pre-wrap; }
#jasShell .jas-rd-fbkindchip{ color:var(--jas-ochre); letter-spacing:.04em; text-transform:uppercase; font-size:11px; }
#jasShell .jas-rd-fbsuperseded, #jasShell .jas-rd-fbcorrects{ margin:6px 0 0; font-size:11.5px; font-weight:700; color:var(--jas-muted); }
#jasShell .jas-rd-fbregion{ border-style:solid; border-color:var(--jas-line-2); background:var(--jas-paper); }
#jasShell .jas-rd-fbregion h3{ color:var(--jas-ink); }
#jasShell .jas-rd-fbneutral{ margin:6px 0 0; font-size:11.5px; line-height:1.5; color:var(--jas-muted); }
#jasShell .jas-rd-reflcompose, #jasShell .jas-rd-fbcompose{ margin-top:10px; display:grid; gap:8px; }
#jasShell .jas-rd-reflcompose textarea, #jasShell .jas-rd-fbcompose textarea{ font-size:13px; }
#jasShell .jas-rd-fbkind{ font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--jas-muted); }
#jasShell .jas-rd-fbkind select{ display:block; margin-top:4px; max-width:220px; }
#jasShell .jas-rd-reflcard .jas-rd-actions, #jasShell .jas-rd-fbcard .jas-rd-actions,
#jasShell .jas-rd-reflcompose .jas-rd-actions, #jasShell .jas-rd-fbcompose .jas-rd-actions{
  display:flex; gap:8px; flex-wrap:wrap; margin-top:8px; }
/* C2E-D-R: the reviewer's mobile support-context selector. Desktop keeps
   the field-nav links; this appears ONLY where those are hidden. */
#jasShell .jas-rd-ctxwrap{ display:none; }
@media (max-width:1180px){
  #jasShell .jas-rd{ grid-template-columns:210px minmax(0,1fr); }
  #jasShell .jas-rd-side{ grid-column:1 / -1; position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
  #jasShell .jas-rd-supfor{ grid-column:1 / -1; }
}
@media (max-width:900px){
  #jasShell .jas-rd-import-row{ grid-template-columns:1fr; }
  #jasShell .jas-rd-development-head, #jasShell .jas-rd-development-grid{ grid-template-columns:1fr; }
  #jasShell .jas-rd-development-domain:last-child{ grid-column:auto; }
  #jasShell .jas-rd{ grid-template-columns:1fr; gap:14px; }
  /* Deliberate mobile pattern: ONE section selector, then the whole
     section scrolls as a single canvas — never a 23-link sidebar and
     never one-field-per-screen. */
  #jasShell .jas-rd-nav{ display:none; }
  #jasShell .jas-rd-mobilenav{ display:grid; grid-template-columns:1fr; gap:10px; margin-top:14px; }
  #jasShell .jas-rd-mobilenav label{ font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--jas-muted); }
  #jasShell .jas-rd-mobilenav select{ width:100%; margin-top:4px; min-height:44px; }
  #jasShell .jas-rd-fieldactive{ margin-left:-12px; padding-left:9px; }
  #jasShell .jas-rd-side{ grid-template-columns:1fr; }
  #jasShell .jas-rd-vhead .jas-rd-histbtn{ margin-left:0; min-height:44px; }
  #jasShell .jas-rd-histbtn, #jasShell .jas-rd-linkbtn{ min-height:44px; }
  #jasShell .jas-rd-stepnav .jas-btn{ min-height:44px; }
  #jasShell .jas-rd-evidence-clusters,#jasShell .jas-rd-evidence-results{ grid-template-columns:1fr; }
  /* C2E-D-R: reviewer support-context selector — mobile only, compact. */
  #jasShell .jas-rd-ctxwrap{ display:block; font-size:11px; font-weight:800;
    letter-spacing:.1em; text-transform:uppercase; color:var(--jas-muted); }
  #jasShell .jas-rd-ctxwrap select{ width:100%; margin-top:4px; min-height:44px; }
}
@media (max-width:620px){
  #jasShell .jas-rd-import{ padding:14px; }
  #jasShell .jas-rd-import-head, #jasShell .jas-rd-import-commit, #jasShell .jas-rd-import-done{ align-items:stretch; flex-direction:column; }
  #jasShell .jas-rd-import-commit .jas-btn{ width:100%; }
  #jasShell .jas-rd-development{ padding:16px; }
  #jasShell .jas-rd-development-guide dl{ grid-template-columns:1fr; }
  #jasShell .jas-rd-export, #jasShell .jas-rd-export-options{ width:100%; }
  #jasShell .jas-rd-export-options .jas-btn{ width:100%; }
  #jasShell .jas-rd-evidence-search>div{ grid-template-columns:1fr; }
  #jasShell .jas-rd-evidence-search .jas-btn{ width:100%; }
}

/* -------- JAS II pre-sign-up homepage (#jasShell.jas-home) --------------
   Programme-led entry page inspired by the owner-supplied layout studies,
   rebuilt with the real CARTA identity, approved photography and verified
   JAS II capabilities. Every selector remains signed-out-home scoped. */
html[data-tenant="carta"] body.jas-active:has(#jasShell.jas-home){ background:var(--jas-ivory); }
#jasShell.jas-home{ display:flex; flex-direction:column; min-height:100vh; color:var(--jas-ink-2); overflow-x:hidden; }
#jasShell.jas-home .jas-skip{ position:absolute; left:-9999px; top:0; background:var(--jas-ink); color:#fff;
  padding:10px 16px; border-radius:0 0 12px 0; z-index:200; }
#jasShell.jas-home .jas-skip:focus{ left:0; }
@media (prefers-reduced-motion: no-preference){
  html[data-tenant="carta"]{ scroll-behavior:smooth; }
  /* The pre-reveal hide is ARMED BY JS (.jasH-motion set only once the
     IntersectionObserver exists) — without JS motion support the page is
     simply static and fully visible. */
  #jasShell.jas-home.jasH-motion .jasH-reveal{ opacity:0; transform:translateY(14px); transition:opacity .55s ease, transform .55s ease; }
  #jasShell.jas-home.jasH-motion .jasH-reveal.in{ opacity:1; transform:none; }
}

/* ------------------------------- header -------------------------------- */
#jasShell.jas-home .jas-home-top{ position:sticky; top:0; z-index:90; display:flex; align-items:center; gap:26px;
  min-height:76px; padding:12px clamp(16px,4vw,56px); background:rgba(255,255,255,.96); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--jas-line); }
#jasShell.jas-home .jas-brand img{ width:128px; height:42px; }
#jasShell.jas-home .jas-brand strong{ font-size:13px; letter-spacing:.02em; }
#jasShell.jas-home .jasH-header-date{ margin-left:auto; color:var(--jas-muted); font-size:13px; font-weight:750; }
#jasShell.jas-home .jas-home-top-actions{ margin-left:auto; display:flex; align-items:center; gap:10px; }
#jasShell.jas-home .jasH-header-date + .jas-home-top-actions{ margin-left:0; }
#jasShell.jas-home .jas-home-top-actions .jas-btn{ min-width:88px; min-height:46px; }
#jasShell.jas-home .jas-home-top-actions .jas-btn:focus-visible{ outline:3px solid var(--jas-ink); outline-offset:3px; }
#jasShell.jas-home .jasH-cta-main:focus-visible{ outline:3px solid #fff; outline-offset:3px; }

/* -------------------------------- hero --------------------------------- */
#jasShell.jas-home main{ display:block; flex:1; }
#jasShell.jas-home .jasH-hero{ position:relative; display:grid; width:100%; overflow:hidden;
  padding:clamp(52px,7vh,88px) clamp(16px,4vw,56px) clamp(74px,9vh,112px); background:var(--jas-ink); }
#jasShell.jas-home .jasH-arcs{ position:absolute; z-index:0; right:-160px; top:-160px; width:520px; height:520px; }
#jasShell.jas-home .jasH-arcs i{ position:absolute; inset:0; border-radius:50%; border:1px solid rgba(255,255,255,.13); }
#jasShell.jas-home .jasH-arcs i:nth-child(2){ inset:70px; border-color:rgba(235,179,34,.34); }
#jasShell.jas-home .jasH-arcs i:nth-child(3){ inset:140px; border:14px solid rgba(235,179,34,.13); }
#jasShell.jas-home .jasH-arcs b{ position:absolute; left:50%; bottom:104px; width:14px; height:14px;
  border-radius:50%; background:var(--jas-gold); }
#jasShell.jas-home .jasH-hero-grid{ position:relative; z-index:2; max-width:1240px; margin:0 auto;
  display:grid; grid-template-columns:minmax(0,47fr) minmax(0,53fr); gap:clamp(34px,5.5vw,82px);
  align-items:center; }
#jasShell.jas-home .jasH-hero-inner{ position:relative; z-index:2; }
/* The supplied session photograph remains content, not decoration. Its crop
   keeps both participants and their shared working surface visible. */
#jasShell.jas-home .jasH-photo{ position:relative; z-index:2; margin:0; }
#jasShell.jas-home .jasH-photo-frame{ position:relative; padding:10px; border:1px solid rgba(235,179,34,.48);
  border-radius:22px 22px 6px 22px; background:rgba(255,255,255,.06); box-shadow:0 26px 70px rgba(0,0,0,.28); }
#jasShell.jas-home .jasH-photo-frame::before{ content:""; position:absolute; z-index:-1; inset:-18px 18px 18px -18px;
  border-radius:22px 6px 22px 22px; background:var(--jas-ochre); opacity:.6; }
#jasShell.jas-home .jasH-photo img{ display:block; width:100%; aspect-ratio:3/2; height:auto;
  object-fit:cover; object-position:50% 48%; border-radius:15px 15px 2px 15px; background:var(--jas-paper); }
#jasShell.jas-home .jasH-photo figcaption{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:6px 14px;
  margin:15px 4px 0; color:rgba(255,255,255,.72); font-size:12px; line-height:1.45; }
#jasShell.jas-home .jasH-photo figcaption strong{ color:var(--jas-gold); text-transform:uppercase; letter-spacing:.09em; font-size:10px; }
/* A failed asset degrades to the editorial field, never a broken frame. */
#jasShell.jas-home.jasH-nophoto .jasH-photo{ display:none; }
#jasShell.jas-home.jasH-nophoto .jasH-hero-grid{ grid-template-columns:minmax(0,1fr); }
#jasShell.jas-home .jasH-eyebrow{ display:flex; align-items:center; gap:14px; margin:0; font-size:12px;
  font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--jas-gold); }
#jasShell.jas-home .jasH-eyebrow-rule{ width:46px; height:2px; background:var(--jas-gold); flex:none; }
#jasShell.jas-home h1{ margin:22px 0 0; font-size:clamp(50px,6.3vw,90px); line-height:.98;
  letter-spacing:-.045em; font-weight:700; color:#fff; max-width:9em; }
#jasShell.jas-home .jasH-ii{ color:var(--jas-gold); }
#jasShell.jas-home .jasH-date{ margin:24px 0 0; font-size:clamp(18px,1.8vw,23px); line-height:1.3;
  font-weight:750; color:#fff; }
#jasShell.jas-home .jasH-date span{ color:var(--jas-gold); padding-inline:5px; }
#jasShell.jas-home .jasH-sub{ margin:16px 0 0; font-size:17px; line-height:1.6; color:rgba(255,255,255,.75); max-width:46ch; }
#jasShell.jas-home .jasH-ctas{ display:flex; align-items:center; margin-top:30px; }
#jasShell.jas-home .jasH-cta-main{ min-height:52px; padding:10px 26px; font-size:15px; background:var(--jas-gold); color:var(--jas-ink); }
#jasShell.jas-home .jasH-cta-main:hover{ background:#f6c84d; }
#jasShell.jas-home .jasH-audience{ margin:18px 0 0; max-width:52ch; font-size:13px; line-height:1.55; color:rgba(255,255,255,.6); }

/* --------------------------- programme overview -------------------------- */
#jasShell.jas-home .jasH-overview{ position:relative; z-index:3; padding:0 clamp(16px,4vw,56px) clamp(32px,4vw,48px); background:var(--jas-ivory); }
#jasShell.jas-home .jasH-overview-inner{ max-width:1240px; margin:-42px auto 0; }
#jasShell.jas-home .jasH-section-head{ display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.72fr); gap:4px 40px;
  align-items:end; padding:28px 30px 25px; border:1px solid var(--jas-line); border-bottom:0; border-radius:20px 20px 0 0; background:var(--jas-paper); }
#jasShell.jas-home .jasH-section-label{ grid-column:1; margin:0 0 2px; color:var(--jas-ochre); font-size:11px; font-weight:850;
  letter-spacing:.14em; text-transform:uppercase; }
#jasShell.jas-home .jasH-section-head h2{ grid-column:1; margin:0; color:var(--jas-ink); font-size:clamp(27px,3.2vw,42px); line-height:1.08; letter-spacing:-.035em; }
#jasShell.jas-home .jasH-section-head > p:last-child{ grid-column:2; grid-row:1 / span 2; margin:0; color:var(--jas-muted); font-size:15px; line-height:1.6; }
#jasShell.jas-home .jasH-feature-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--jas-line); border-radius:0 0 20px 20px;
  overflow:hidden; background:var(--jas-paper); box-shadow:0 22px 56px rgba(35,31,32,.1); }
#jasShell.jas-home .jasH-feature{ position:relative; min-width:0; padding:28px 30px 30px; border-left:1px solid var(--jas-line); }
#jasShell.jas-home .jasH-feature:first-child{ border-left:0; }
#jasShell.jas-home .jasH-feature::before{ content:""; position:absolute; inset:0 auto auto 0; width:100%; height:4px; background:var(--jas-gold); }
#jasShell.jas-home .jasH-feature:nth-child(2)::before{ background:var(--jas-ochre); }
#jasShell.jas-home .jasH-feature:nth-child(3)::before{ background:var(--jas-muted); }
#jasShell.jas-home .jasH-feature-icon{ display:grid; place-items:center; width:46px; height:46px; margin-bottom:20px; border-radius:13px;
  background:var(--jas-gold-soft); color:var(--jas-ochre); }
#jasShell.jas-home .jasH-feature-icon svg{ width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
#jasShell.jas-home .jasH-card-kicker{ margin:0 0 7px; color:var(--jas-ochre); font-size:10.5px; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
#jasShell.jas-home .jasH-feature h3{ margin:0; color:var(--jas-ink); font-size:20px; letter-spacing:-.02em; }
#jasShell.jas-home .jasH-feature > p:last-child{ margin:10px 0 0; color:var(--jas-muted); font-size:14px; line-height:1.58; }
#jasShell.jas-home .jasH-role-note{ grid-column:1 / -1; margin:0; padding:14px 24px; border-top:1px solid var(--jas-line);
  background:#fbfaf6; color:var(--jas-muted); font-size:12.5px; line-height:1.55; text-align:center; }
#jasShell.jas-home .jasH-role-note strong{ color:var(--jas-ink); }

/* -------------------------------- footer -------------------------------- */
#jasShell.jas-home .jas-home-foot{ border-top:1px solid var(--jas-line); background:var(--jas-paper);
  padding:21px clamp(16px,4vw,56px); }
#jasShell.jas-home .jas-home-foot p{ max-width:1240px; margin:0 auto; font-size:12.5px; line-height:1.5; color:var(--jas-muted); }
#jasShell.jas-home .jas-home-foot strong{ letter-spacing:.08em; color:var(--jas-ink); }

/* ------------------------------ responsive ------------------------------- */
@media (max-width:900px){
  #jasShell.jas-home .jasH-hero{ padding-block:46px 82px; }
  #jasShell.jas-home .jasH-hero-grid{ grid-template-columns:minmax(0,1fr); gap:32px; }
  #jasShell.jas-home .jasH-photo img{ aspect-ratio:16/8.8; object-position:50% 48%; }
  #jasShell.jas-home h1{ max-width:none; font-size:clamp(48px,10vw,76px); }
  #jasShell.jas-home .jasH-section-head{ grid-template-columns:1fr; align-items:start; }
  #jasShell.jas-home .jasH-section-head > p:last-child{ grid-column:1; grid-row:auto; margin-top:10px; }
  #jasShell.jas-home .jasH-feature-grid{ grid-template-columns:1fr; }
  #jasShell.jas-home .jasH-feature{ display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:18px; border-left:0; border-top:1px solid var(--jas-line); }
  #jasShell.jas-home .jasH-feature:first-child{ border-top:0; }
  #jasShell.jas-home .jasH-feature-icon{ grid-row:1 / span 3; margin:0; }
  #jasShell.jas-home .jasH-feature :is(.jasH-card-kicker,h3,p){ grid-column:2; }
}
@media (max-width:480px){
  #jasShell.jas-home .jas-home-top{ gap:10px; padding:10px 14px; }
  #jasShell.jas-home .jas-brand{ gap:8px; }
  #jasShell.jas-home .jas-brand img{ width:94px; height:auto; }
  #jasShell.jas-home .jas-brand strong{ display:block; max-width:90px; font-size:11px; line-height:1.2; }
  #jasShell.jas-home .jasH-header-date{ display:none; }
  #jasShell.jas-home .jasH-header-date + .jas-home-top-actions{ margin-left:auto; flex:none; }
  #jasShell.jas-home .jas-home-top-actions .jas-btn{ min-width:76px; min-height:44px; padding-inline:13px; }
  #jasShell.jas-home .jasH-hero{ padding:38px 16px 70px; }
  #jasShell.jas-home .jasH-hero-grid{ gap:26px; }
  #jasShell.jas-home .jasH-eyebrow{ gap:10px; font-size:11px; }
  #jasShell.jas-home .jasH-eyebrow-rule{ width:30px; }
  #jasShell.jas-home h1{ margin-top:16px; font-size:clamp(40px,13vw,54px); }
  #jasShell.jas-home .jasH-date{ margin-top:17px; font-size:16px; }
  #jasShell.jas-home .jasH-date span{ display:block; height:0; overflow:hidden; }
  #jasShell.jas-home .jasH-sub{ margin-top:12px; font-size:15px; line-height:1.5; }
  #jasShell.jas-home .jasH-ctas{ margin-top:24px; }
  #jasShell.jas-home .jasH-cta-main{ width:100%; min-height:50px; }
  #jasShell.jas-home .jasH-audience{ margin-top:14px; font-size:12px; }
  #jasShell.jas-home .jasH-photo-frame{ padding:6px; border-radius:14px 14px 3px 14px; }
  #jasShell.jas-home .jasH-photo-frame::before{ inset:-10px 10px 10px -10px; border-radius:14px 3px 14px 14px; }
  #jasShell.jas-home .jasH-photo img{ aspect-ratio:16/9; max-height:220px; object-position:50% 48%; border-radius:9px 9px 1px 9px; }
  #jasShell.jas-home .jasH-photo figcaption{ display:block; margin-top:11px; }
  #jasShell.jas-home .jasH-photo figcaption span{ display:block; margin-top:3px; }
  #jasShell.jas-home .jasH-arcs{ right:-270px; top:-270px; }
  #jasShell.jas-home .jasH-overview{ padding-inline:12px; padding-bottom:44px; }
  #jasShell.jas-home .jasH-overview-inner{ margin-top:-34px; }
  #jasShell.jas-home .jasH-section-head{ padding:23px 20px 21px; border-radius:15px 15px 0 0; }
  #jasShell.jas-home .jasH-section-head h2{ font-size:28px; }
  #jasShell.jas-home .jasH-section-head > p:last-child{ font-size:14px; }
  #jasShell.jas-home .jasH-feature-grid{ border-radius:0 0 15px 15px; }
  #jasShell.jas-home .jasH-feature{ padding:23px 20px 24px; column-gap:14px; }
  #jasShell.jas-home .jasH-feature-icon{ width:42px; height:42px; }
  #jasShell.jas-home .jasH-feature h3{ font-size:18px; }
  #jasShell.jas-home .jas-home-foot{ padding:17px 16px; }
  #jasShell.jas-home .jas-home-foot p{ font-size:11.5px; }
}

/* Compact workspace topbar — at phone widths keep the logo and the
   accessible avatar-led identity menu; its full copy remains in the popup. */
@media (max-width:600px){
  #jasShell:not(.jas-home) .jas-brand span{ display:none; }
  #jasShell:not(.jas-home) .jas-id-copy{ display:none; }
  #jasShell:not(.jas-home) .jas-topbar{ gap:10px; }
  #jasShell .jas-identity-menu>summary{ min-width:48px; min-height:48px; justify-content:center; }
  #jasShell .jas-identity-chevron{ display:none; }
}

@media (max-width:860px){
  #jasShell .jas-icon-btn{ display:grid; }
  #jasShell.jas-home .jas-icon-btn{ display:none; }
  #jasShell.jas-home .jas-home-menu-btn{ display:grid; }
  #jasShell .jas-sidebar{ transform:translateX(-105%); transition:transform .22s ease; box-shadow:18px 0 50px rgba(0,0,0,.22); }
  #jasShell.nav-open .jas-sidebar{ transform:translateX(0); }
  #jasShell .jas-main{ padding:calc(var(--jas-topbar) + 20px) 16px 32px 16px; }
  #jasShell .jas-brand img{ width:118px; height:40px; }
  #jasShell .jas-admin-actions{ margin-left:0; width:100%; }
}


/* ================= C2B-P5B-2C Curriculum Review workspace ================= *
   Programme Administrator review surface. Scoped under #jasShell and built on
   the existing carta palette tokens; no new colour system. */
#jasShell .jas-notice-ok{ border-left:4px solid var(--jas-green,#2f6b36); }
#jasShell .jas-notice-err{ border-left:4px solid var(--jas-red,#a5342a); }
#jasShell .jas-cr-flabel{ display:flex; flex-direction:column; gap:4px; font-size:.72rem; font-weight:600;
  letter-spacing:.02em; text-transform:uppercase; color:var(--jas-muted); }
#jasShell .jas-cr-flabel .jas-field{ text-transform:none; font-weight:400; letter-spacing:0; }
#jasShell .jas-cr-rowcard{ margin-bottom:10px; }
#jasShell .jas-cr-rowtitle{ margin:0 0 2px; font-size:1rem; }
#jasShell .jas-cr-verpanel{ margin-bottom:18px; }
#jasShell .jas-cr-verhead{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:8px; }
#jasShell .jas-cr-verbar{ display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; padding-top:14px; border-top:1px solid var(--jas-line); }
#jasShell .jas-cr-lock{ margin-top:10px; }
#jasShell .jas-cr-ttlist{ margin:0; padding:0; list-style:none; display:grid; gap:3px; }
#jasShell .jas-cr-field{ margin-bottom:14px; }
#jasShell .jas-cr-fhead{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:6px; }
#jasShell .jas-cr-items{ list-style:none; margin:0; padding:0; display:grid; gap:12px; }
#jasShell .jas-cr-item{ border:1px solid var(--jas-line); border-radius:12px; padding:12px 14px; background:var(--jas-paper,#fff); }
#jasShell .jas-cr-itemval{ line-height:1.55; white-space:pre-wrap; }
#jasShell .jas-cr-ta{ width:100%; }
#jasShell .jas-cr-prov{ margin:6px 0 0; font-size:.76rem; color:var(--jas-muted); }
#jasShell .jas-cr-badge{ margin:6px 0 0; }
#jasShell .jas-cr-resurl{ margin:6px 0 0; font-size:.8rem; word-break:break-all; }
#jasShell .jas-cr-srcnote{ font-size:.72rem; }
#jasShell .jas-cr-noext{ margin:2px 0 0; font-style:italic; }
#jasShell .jas-cr-nsnote{ margin:0 0 8px; }
#jasShell .jas-cr-itembar,#jasShell .jas-cr-fbar{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:10px; }
#jasShell .jas-cr-xbtn{ padding:5px 10px; min-height:34px; font-size:.78rem; }
#jasShell .jas-cr-confirm{ display:inline-flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:.8rem; color:var(--jas-red,#a5342a); }
#jasShell .jas-btn-danger{ background:var(--jas-red-soft,#f7e3e0); color:var(--jas-red,#a5342a); border-color:var(--jas-red,#a5342a); }
#jasShell .jas-chip.jas-cr-src{ background:var(--jas-blue-soft,#e6edf9); color:var(--jas-blue,#1a3a8f); }
#jasShell .jas-chip.jas-cr-pending{ background:var(--jas-amber-soft,#f7efd9); color:var(--jas-amber,#8a6a13); }
#jasShell .jas-chip.jas-cr-reviewed{ background:var(--jas-green-soft,#e0f0e2); color:var(--jas-green,#2f6b36); }
#jasShell .jas-chip.jas-cr-not_specified{ background:var(--jas-line-2,#eee); color:var(--jas-muted); }
#jasShell .jas-chip.jas-cr-v-draft{ background:var(--jas-amber-soft,#f7efd9); color:var(--jas-amber,#8a6a13); }
#jasShell .jas-chip.jas-cr-v-in_review{ background:var(--jas-blue-soft,#e6edf9); color:var(--jas-blue,#1a3a8f); }
#jasShell .jas-chip.jas-cr-v-approved{ background:var(--jas-green-soft,#e0f0e2); color:var(--jas-green,#2f6b36); }
#jasShell .jas-chip.jas-cr-v-archived{ background:var(--jas-line-2,#eee); color:var(--jas-muted); }

/* C2B-P5C-1-R — temporary preview-only AI evaluation surface (evaluation only;
   nothing saved). Admin-only; scoped under #jasShell like the review workspace. */
#jasShell .jas-cre-banner{ border-left:4px solid var(--jas-amber,#8a6a13); background:var(--jas-amber-soft,#f7efd9); line-height:1.55; }
#jasShell .jas-cre-runbar{ display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:0 0 14px; }
#jasShell .jas-cre-flag{ color:var(--jas-red,#a5342a); font-weight:600; }
#jasShell .jas-cre-json{ width:100%; font-family:var(--jas-mono,ui-monospace,SFMono-Regular,Menlo,monospace); font-size:.76rem; line-height:1.45; white-space:pre; }
#jasShell .jas-cre-legend{ margin:8px 0 0; font-size:.74rem; }

/* C2B-P5C-2 — session brief + AI pre-population affordances (Admin review) */
#jasShell .jas-chip.jas-cr-syn{ background:var(--jas-blue-soft,#e6edf9); color:var(--jas-blue,#1a3a8f); }
#jasShell .jas-cr-brief{ border-left:4px solid var(--jas-blue,#1a3a8f); }
#jasShell .jas-cr-brief-comp{ margin:10px 0 0; }
#jasShell .jas-cr-brief-h{ margin:0 0 2px; font-size:.86rem; }
#jasShell .jas-cr-brief-t{ margin:0; line-height:1.55; white-space:pre-wrap; }
#jasShell .jas-cr-pp{ border:1px dashed var(--jas-line); }
#jasShell .jas-chip.jas-cr-pp-SAFE_TO_PERSIST{ background:var(--jas-green-soft,#e0f0e2); color:var(--jas-green,#2f6b36); }
#jasShell .jas-chip.jas-cr-pp-REJECTED_BY_GUARD{ background:var(--jas-red-soft,#f7e0dd); color:var(--jas-red,#a5342a); }
#jasShell .jas-chip.jas-cr-pp-UNRESOLVED{ background:var(--jas-line-2,#eee); color:var(--jas-muted); }
/* P5C-3 dry-run inspection cards */
#jasShell .jas-cr-pp-sub{ margin:14px 0 6px; font-size:.9rem; }
#jasShell .jas-cr-ppcard{ border:1px solid var(--jas-line); border-radius:8px; padding:10px 12px; margin:8px 0; }
#jasShell .jas-cr-ppcard-safe{ border-left:4px solid var(--jas-green,#2f6b36); }
#jasShell .jas-cr-ppcard-rej{ border-left:4px solid var(--jas-red,#a5342a); }
#jasShell .jas-cr-ppcard-h{ margin:0; font-size:.9rem; }
#jasShell .jas-cr-proposed{ margin:8px 0 6px 1.1rem; line-height:1.5; }
#jasShell .jas-cr-proposed li{ margin:2px 0; }
#jasShell .jas-cr-rationale{ margin:6px 0 0; font-size:.86rem; line-height:1.5; }
#jasShell .jas-cr-sbasis{ margin:6px 0 0; }
#jasShell .jas-cr-sbasis-h,#jasShell .jas-cr-ped-h{ margin:6px 0 2px; font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; color:var(--jas-muted); }
#jasShell .jas-cr-sbasis ul{ margin:0 0 0 1.1rem; padding:0; font-size:.84rem; line-height:1.5; }
#jasShell .jas-cr-ped{ margin:8px 0 0; }
#jasShell .jas-chip.jas-cr-ped{ background:var(--jas-line-2,#eee); color:var(--jas-ink,#333); margin:2px 4px 2px 0; font-size:.76rem; }
#jasShell .jas-chip.jas-cr-ped-review{ background:var(--jas-amber-soft,#fbeecd); color:var(--jas-amber-ink,#7a5300); }
#jasShell .jas-cr-ped-notes{ margin:4px 0 0; font-size:.82rem; }
#jasShell .jas-cr-pp-prof{ margin:10px 0 0; font-size:.8rem; font-style:italic; }
/* P5C-4 cross-role curriculum read + Admin batch populate */
#jasShell .jas-lede{ font-size:1rem; line-height:1.6; color:var(--jas-ink,#333); max-width:60ch; margin:0 0 14px; }
#jasShell .jas-ln-mod{ margin:0 0 12px; }
#jasShell .jas-ln-list{ list-style:none; margin:0; padding:0; }
#jasShell .jas-ln-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 4px; border-bottom:1px solid var(--jas-line); }
#jasShell .jas-ln-row:last-child{ border-bottom:0; }
#jasShell .jas-ln-row.jas-ln-has{ cursor:pointer; }
#jasShell .jas-ln-row.jas-ln-has:hover{ background:var(--jas-line-2,#f4f4f6); }
#jasShell .jas-ln-t{ font-weight:600; }
#jasShell .jas-ln-status{ font-size:.76rem; color:var(--jas-amber-ink,#7a5300); background:var(--jas-amber-soft,#fbeecd); border-radius:999px; padding:2px 9px; white-space:nowrap; }
#jasShell .jas-ln-empty{ font-size:.8rem; }
#jasShell .jas-ln-back{ margin:0 0 10px; }
#jasShell .jas-ln-ctx{ margin:-4px 0 6px; }
#jasShell .jas-ln-pending{ display:inline-block; font-size:.8rem; color:var(--jas-amber-ink,#7a5300); background:var(--jas-amber-soft,#fbeecd); border-radius:999px; padding:3px 12px; margin:0 0 12px; }
#jasShell .jas-ln-brief{ border-left:4px solid var(--jas-blue,#1a3a8f); }
#jasShell .jas-ln-briefc{ margin:8px 0 0; }
#jasShell .jas-ln-briefc h3{ margin:0 0 2px; font-size:.85rem; }
#jasShell .jas-ln-briefc p{ margin:0; line-height:1.6; }
#jasShell .jas-ln-field ul{ margin:2px 0 0 1.1rem; line-height:1.6; }
#jasShell .jas-ln-field li{ margin:3px 0; }
#jasShell .jas-cr-pop{ border:1px dashed var(--jas-line); }
#jasShell .jas-cr-poplog{ list-style:none; margin:10px 0 0; padding:0; font-size:.84rem; max-height:220px; overflow:auto; }
#jasShell .jas-cr-poplog li{ padding:3px 0; border-bottom:1px solid var(--jas-line-2,#eee); }
#jasShell .jas-cr-poplog-warn{ color:var(--jas-amber-ink,#7a5300); }
#jasShell .jas-cr-poplog-err{ color:var(--jas-red,#a5342a); }
#jasShell .jas-cr-popdone{ margin:10px 0 0; font-weight:600; color:var(--jas-green,#2f6b36); }
#jasShell .jas-tt-curricrow{ display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 2px; }
#jasShell .jas-tt-curricrow .jas-btn{ font-size:.82rem; }
/* Fellow support planning */
#jasShell .jas-fs-card{ }
#jasShell .jas-fs-title h3,#jasShell .jas-fs-dim h3{ margin:0 0 4px; font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; color:var(--jas-muted); }
#jasShell .jas-fs-title p{ margin:0 0 12px; line-height:1.5; }
#jasShell .jas-fs-dim{ margin:12px 0 0; }
#jasShell .jas-chip.jas-fs-ap{ background:var(--jas-blue-soft,#e6edf9); color:var(--jas-blue,#1a3a8f); }
#jasShell .jas-chip.jas-fs-tp{ background:var(--jas-green-soft,#e0f0e2); color:var(--jas-green,#2f6b36); }
#jasShell .jas-chip.jas-fs-sp{ background:var(--jas-amber-soft,#fbeecd); color:var(--jas-amber-ink,#7a5300); }
#jasShell .jas-chip.jas-fs-core{ background:var(--jas-line-2,#eee); color:var(--jas-ink,#333); }
#jasShell .jas-fs-status{ margin:12px 0 0; font-size:.85rem; font-style:italic; color:var(--jas-muted); }
/* R2: compact overflow marker + support-status chips shared by the Fellows
   roster and the Fellow detail Research & Support Profile. */
#jasShell .jas-fs-more{ font-size:.74rem; font-weight:700; color:var(--jas-muted); white-space:nowrap; }
#jasShell .jas-chip.jas-fs-status-chip{ font-size:.72rem; font-weight:700; }
#jasShell .jas-chip.jas-fs-st-ai_suggested{ background:var(--jas-line-2,#eee); color:var(--jas-ink,#333); }
#jasShell .jas-chip.jas-fs-st-fellow_confirmed{ background:var(--jas-blue-soft,#e6edf9); color:var(--jas-blue,#1a3a8f); }
#jasShell .jas-chip.jas-fs-st-admin_reviewed{ background:var(--jas-green-soft,#e0f0e2); color:var(--jas-green,#2f6b36); }
#jasShell .jas-co-fapproach{ display:flex; flex-wrap:wrap; align-items:center; gap:4px; margin-top:4px; }
#jasShell .jas-co-fdetinst{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
#jasShell .jas-fs-elabel{ display:block; margin:10px 0 0; font-size:.8rem; }
#jasShell .jas-fs-earea{ width:100%; margin-top:3px; }
#jasShell .jas-fs-agggrid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; margin:0 0 14px; }
#jasShell .jas-fs-agglist{ list-style:none; margin:6px 0 0; padding:0; font-size:.88rem; }
#jasShell .jas-fs-agglist li{ display:flex; justify-content:space-between; gap:10px; padding:4px 0; border-bottom:1px solid var(--jas-line-2,#eee); }
#jasShell .jas-fs-count{ font-weight:700; color:var(--jas-blue,#1a3a8f); }
#jasShell .jas-fs-aggnote{ margin:8px 0 0; font-size:.76rem; }
#jasShell .jas-fs-rtitle{ max-width:32ch; font-size:.86rem; }

/* CARTA RDW Thesis Foundation T1: read-oriented, tenant-scoped surface. */
html[data-tenant="carta"] .jas-thesis-intro{border-left:4px solid var(--jas-gold,#c99a2e)}
html[data-tenant="carta"] .jas-thesis-index{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:24px;align-items:start}
html[data-tenant="carta"] .jas-thesis-document-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-top:1px solid rgba(28,26,23,.13)}
html[data-tenant="carta"] .jas-thesis-document-row:first-of-type{border-top:0}
html[data-tenant="carta"] .jas-thesis-document-row p,html[data-tenant="carta"] .jas-thesis-document-row h4{margin:0 0 5px}
html[data-tenant="carta"] .jas-thesis-document-row p{font-size:.9rem;color:var(--jas-muted,#6b675f)}
html[data-tenant="carta"] .jas-thesis-document-row small{display:block;color:var(--jas-muted,#6b675f);font-size:.78rem}
html[data-tenant="carta"] .jas-thesis-status{display:inline-block;margin-left:.45rem;padding:.12rem .45rem;border:1px solid rgba(28,26,23,.18);border-radius:999px;font-size:.72rem;text-transform:capitalize;color:#45413a}
html[data-tenant="carta"] .jas-thesis-create{display:grid;gap:16px}
html[data-tenant="carta"] .jas-thesis-create label{display:grid;gap:7px;font-weight:650}
html[data-tenant="carta"] .jas-thesis-title-field{font-size:.95rem}
html[data-tenant="carta"] .jas-thesis-format-options{display:grid;gap:10px;margin:0;padding:0;border:0}
html[data-tenant="carta"] .jas-thesis-format-options legend{margin-bottom:9px;font-weight:700}
html[data-tenant="carta"] .jas-thesis-format-card{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:11px;padding:13px;border:1px solid rgba(28,26,23,.16);border-radius:10px;background:#fff;cursor:pointer}
html[data-tenant="carta"] .jas-thesis-format-card:has(input:checked){border-color:var(--jas-gold,#c99a2e);background:#fcf8ed;box-shadow:0 0 0 1px rgba(201,154,46,.22)}
html[data-tenant="carta"] .jas-thesis-format-card input{margin-top:.22rem;accent-color:var(--jas-burgundy,#7f1d3f)}
html[data-tenant="carta"] .jas-thesis-format-card span{display:grid;gap:4px}
html[data-tenant="carta"] .jas-thesis-format-card small{font-weight:400;line-height:1.45;color:var(--jas-muted,#6b675f)}
html[data-tenant="carta"] .jas-thesis-existing-project{padding-top:2px;color:var(--jas-muted,#6b675f)}
html[data-tenant="carta"] .jas-thesis-existing-project summary{cursor:pointer;font-size:.86rem;font-weight:650}
html[data-tenant="carta"] .jas-thesis-existing-project label{margin-top:10px;color:var(--jas-ink,#1c1a17)}
html[data-tenant="carta"] .jas-thesis-starting-copy{display:grid;gap:3px;margin:0;padding:.75rem .85rem;border-radius:8px;background:#f8f1df;color:#4b3b19;font-size:.86rem;line-height:1.45}
html[data-tenant="carta"] .jas-thesis-back{margin-bottom:16px}
html[data-tenant="carta"] .jas-thesis-document-head{display:grid;gap:8px;align-items:start}
html[data-tenant="carta"] .jas-thesis-document-head h2{margin:0;max-width:760px}
html[data-tenant="carta"] .jas-thesis-format{margin:0;color:var(--jas-muted,#6b675f);font-weight:700}
html[data-tenant="carta"] .jas-thesis-starting-note{display:grid;gap:3px;margin-top:8px;padding:.8rem 1rem;border-radius:10px;background:#f8f1df;color:#4b3b19;line-height:1.45}
html[data-tenant="carta"] .jas-thesis-readonly-note{margin:18px 0;padding:.8rem 1rem;border-left:3px solid var(--jas-gold,#c99a2e);background:#fbfaf6;color:var(--jas-muted,#6b675f)}
html[data-tenant="carta"] .jas-thesis-structure{max-width:920px}
html[data-tenant="carta"] .jas-thesis-tree{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:12px}
html[data-tenant="carta"] .jas-thesis-tree .jas-thesis-tree{margin:8px 0 0 18px;padding-left:18px;border-left:1px solid rgba(166,117,35,.3)}
html[data-tenant="carta"] .jas-thesis-node{min-width:0}
html[data-tenant="carta"] .jas-thesis-node-title{display:block;padding:9px 11px;border-radius:8px;background:#fbfaf6}
html[data-tenant="carta"] .jas-thesis-major_unit>.jas-thesis-node-title{padding:11px 13px;background:#f5f1e8;font-size:1rem}
html[data-tenant="carta"] .jas-thesis-node-title strong{min-width:0;overflow-wrap:anywhere}

/* RDW Thesis T1.1: owner-only writing workspace. Proposal Companion styles
 * remain separate; all selectors are CARTA + thesis scoped. */
html[data-tenant="carta"] .jas-thesis-writing-shell{max-width:1320px;margin:0 auto}
html[data-tenant="carta"] .jas-thesis-writing-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:14px;margin-bottom:14px}
html[data-tenant="carta"] .jas-thesis-writing-head h2,html[data-tenant="carta"] .jas-thesis-writing-head p{margin:0}
html[data-tenant="carta"] .jas-thesis-writing-head>div:nth-child(2){display:grid;gap:2px;min-width:0}
html[data-tenant="carta"] .jas-thesis-writing-head>div:nth-child(2)>p:last-child{color:var(--jas-muted,#6b675f);overflow-wrap:anywhere}
html[data-tenant="carta"] .jas-thesis-tools{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
html[data-tenant="carta"] .jas-thesis-tools .is-active{border-color:var(--jas-burgundy,#7f1d3f);color:var(--jas-burgundy,#7f1d3f);background:#fbf4f7}
html[data-tenant="carta"] .jas-thesis-document-context{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;min-width:0}
html[data-tenant="carta"] .jas-thesis-title-menu,html[data-tenant="carta"] .jas-thesis-research-tools{position:relative}
html[data-tenant="carta"] .jas-thesis-title-menu>summary,html[data-tenant="carta"] .jas-thesis-research-tools>summary{list-style:none;cursor:pointer}
html[data-tenant="carta"] .jas-thesis-title-menu>summary::-webkit-details-marker,html[data-tenant="carta"] .jas-thesis-research-tools>summary::-webkit-details-marker{display:none}
html[data-tenant="carta"] .jas-thesis-title-menu form,html[data-tenant="carta"] .jas-thesis-research-tools>div{position:absolute;z-index:1050;top:calc(100% + 6px);right:0;width:min(340px,calc(100vw - 32px));padding:12px;border:1px solid rgba(28,26,23,.16);border-radius:10px;background:#fff;box-shadow:0 16px 42px rgba(34,31,26,.2)}
html[data-tenant="carta"] .jas-thesis-title-menu form{display:grid;gap:10px}
html[data-tenant="carta"] .jas-thesis-title-menu label{display:grid;gap:5px;font-weight:750}
html[data-tenant="carta"] .jas-thesis-title-menu form>div{display:flex;gap:8px;justify-content:flex-end}
html[data-tenant="carta"] .jas-thesis-research-tools>div{display:grid;width:220px;padding:6px}
html[data-tenant="carta"] .jas-thesis-research-tools>div .jas-btn{justify-content:flex-start;width:100%}
html[data-tenant="carta"] .jas-thesis-research-tools>div [aria-current="page"]{background:#fbf4f7;color:var(--jas-burgundy,#7f1d3f)}
html[data-tenant="carta"] .jas-thesis-writing-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
html[data-tenant="carta"] .jas-thesis-writing-shell.has-structure .jas-thesis-writing-grid{grid-template-columns:270px minmax(0,1fr)}
html[data-tenant="carta"] .jas-thesis-structure-rail{position:sticky;top:84px;max-height:calc(100vh - 108px);overflow:auto;padding:13px}
html[data-tenant="carta"] .jas-thesis-rail-head{display:flex;align-items:start;gap:8px;justify-content:space-between}
html[data-tenant="carta"] .jas-thesis-rail-head details{min-width:0;color:var(--jas-muted,#6b675f);font-size:.75rem;line-height:1.35}
html[data-tenant="carta"] .jas-thesis-rail-head summary{cursor:pointer;font-weight:750;color:var(--jas-burgundy,#7f1d3f)}
html[data-tenant="carta"] .jas-thesis-rail-head p{margin:6px 0 0}
html[data-tenant="carta"] .jas-thesis-structure-rail .jas-thesis-tree{margin-top:10px;gap:6px}
html[data-tenant="carta"] .jas-thesis-structure-rail .jas-thesis-tree .jas-thesis-tree{margin-left:8px;padding-left:9px}
html[data-tenant="carta"] .jas-thesis-structure-rail .jas-thesis-node-title{display:flex;align-items:center;gap:5px;padding:6px 7px;font-size:.77rem;background:transparent;color:var(--jas-muted,#6b675f)}
html[data-tenant="carta"] .jas-thesis-major>summary{display:flex;align-items:center;gap:6px;padding:8px 7px;border-radius:7px;background:#f5f1e8;cursor:pointer;font-size:.8rem;list-style-position:inside}
html[data-tenant="carta"] .jas-thesis-major>summary strong{min-width:0;overflow-wrap:anywhere}
html[data-tenant="carta"] .jas-thesis-major-body{padding:2px 0 5px}
html[data-tenant="carta"] .jas-thesis-major-body>.jas-thesis-unit-menu{margin:6px 8px 2px}
html[data-tenant="carta"] .jas-thesis-optional{margin-left:auto;color:var(--jas-muted,#6b675f);font-size:.62rem;font-weight:650;letter-spacing:.02em;text-transform:uppercase}
html[data-tenant="carta"] .jas-thesis-structure-rail .jas-thesis-node.is-archived{opacity:.72}
html[data-tenant="carta"] .jas-thesis-block-link{display:flex;width:100%;align-items:center;justify-content:space-between;gap:7px;margin-top:3px;padding:7px;border:0;border-radius:7px;background:transparent;color:var(--jas-ink,#1c1a17);text-align:left;cursor:pointer;font-size:.78rem}
html[data-tenant="carta"] .jas-thesis-block-link:hover,html[data-tenant="carta"] .jas-thesis-block-link:focus-visible{background:#f5f1e8}
html[data-tenant="carta"] .jas-thesis-block-link.is-active{background:#f8f1df;box-shadow:inset 3px 0 var(--jas-gold,#c99a2e)}
html[data-tenant="carta"] .jas-thesis-block-link small{flex:none;color:var(--jas-muted,#6b675f);font-size:.68rem}
html[data-tenant="carta"] .jas-thesis-unit-menu{margin-left:auto;position:relative}
html[data-tenant="carta"] .jas-thesis-unit-menu>summary{cursor:pointer;color:var(--jas-burgundy,#7f1d3f);font-size:.72rem;font-weight:700}
html[data-tenant="carta"] .jas-thesis-unit-menu[open]{padding:8px;border:1px solid rgba(28,26,23,.14);border-radius:8px;background:#fff}
html[data-tenant="carta"] .jas-thesis-unit-menu form{display:grid;gap:6px;margin:8px 0}
html[data-tenant="carta"] .jas-thesis-unit-menu label{display:grid;gap:4px;font-size:.75rem}
html[data-tenant="carta"] .jas-thesis-unit-menu .jas-field{min-width:0;padding:7px}
html[data-tenant="carta"] .jas-thesis-move{display:flex;gap:5px;margin-bottom:6px}
html[data-tenant="carta"] .jas-thesis-add-unit{width:100%;margin-top:14px}
html[data-tenant="carta"] .jas-thesis-editor-card{width:100%;max-width:1100px;justify-self:center;padding:clamp(22px,2.6vw,38px)}
html[data-tenant="carta"] .jas-thesis-writing-shell.has-structure .jas-thesis-editor-card{max-width:1040px}
html[data-tenant="carta"] .jas-thesis-writing-shell.is-focus .jas-thesis-editor-card{max-width:1180px}
html[data-tenant="carta"] .jas-thesis-breadcrumb{margin:0 0 18px;color:var(--jas-muted,#6b675f);font-size:.82rem;overflow-wrap:anywhere}
html[data-tenant="carta"] .jas-thesis-editor-label,html[data-tenant="carta"] .jas-thesis-editor,html[data-tenant="carta"] .jas-thesis-editor-meta,html[data-tenant="carta"] .jas-thesis-editor-actions{width:100%;max-width:78ch;margin-left:auto;margin-right:auto}
html[data-tenant="carta"] .jas-thesis-editor-label{display:block;margin-bottom:9px;font-weight:750}
html[data-tenant="carta"] .jas-thesis-editor{display:block;min-height:64vh;padding:24px;border:1px solid rgba(28,26,23,.2);border-radius:8px;background:#fff;color:var(--jas-ink,#1c1a17);font:400 1.05rem/1.72 Georgia,'Times New Roman',serif;resize:vertical}
html[data-tenant="carta"] .jas-thesis-editor:focus{outline:3px solid rgba(201,154,46,.3);border-color:var(--jas-gold,#c99a2e)}
html[data-tenant="carta"] .jas-thesis-editor-meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:10px;color:var(--jas-muted,#6b675f);font-size:.78rem}
html[data-tenant="carta"] .jas-thesis-editor-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}
html[data-tenant="carta"] .jas-thesis-support{position:fixed;z-index:1001;top:84px;right:16px;bottom:16px;width:min(360px,calc(100vw - 32px));max-height:none;overflow:auto;padding:20px;box-shadow:0 22px 64px rgba(34,31,26,.22)}
html[data-tenant="carta"] .jas-thesis-support-close{float:right;font-size:1.35rem}
html[data-tenant="carta"] .jas-thesis-guidance{display:grid;gap:8px;margin:16px 0;padding:14px;border-radius:8px;background:#f8f1df;color:#4b3b19}
html[data-tenant="carta"] .jas-thesis-guidance ul{margin:0;padding-left:20px}
html[data-tenant="carta"] .jas-thesis-support-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:14px 0}
html[data-tenant="carta"] .jas-thesis-support-tabs .jas-btn{min-width:0;padding-inline:7px}
html[data-tenant="carta"] .jas-thesis-support-tabs .is-active{border-color:var(--jas-burgundy,#7f1d3f);background:#fbf4f7;color:var(--jas-burgundy,#7f1d3f)}
html[data-tenant="carta"] .jas-thesis-companion,html[data-tenant="carta"] .jas-thesis-section-alignment{display:grid;gap:8px;margin:16px 0;padding:14px;border-radius:8px;background:#f5f1e8}
html[data-tenant="carta"] .jas-thesis-companion ol{margin:0;padding-left:21px}
html[data-tenant="carta"] .jas-thesis-companion small{color:var(--jas-muted,#6b675f)}
html[data-tenant="carta"] .jas-thesis-attention{display:inline-flex;width:max-content;padding:3px 8px;border-radius:999px;background:#ece9e2;color:#554f46;font-size:.69rem;font-weight:800;letter-spacing:.035em;text-transform:uppercase}
html[data-tenant="carta"] .jas-thesis-attention.is-connected{background:#e8f3ec;color:#245c38}
html[data-tenant="carta"] .jas-thesis-attention.is-missing_link{background:#fff2d9;color:#76520c}
html[data-tenant="carta"] .jas-thesis-attention.is-review_needed{background:#fbe8e8;color:#8b2727}
html[data-tenant="carta"] .jas-thesis-alignment-sheet{position:fixed;z-index:1100;inset:64px 0 0 auto;width:min(760px,calc(100vw - 48px));overflow:auto;padding:clamp(20px,3vw,38px);background:#fbfaf6;border-left:1px solid rgba(28,26,23,.14);box-shadow:-24px 0 60px rgba(34,31,26,.2)}
html[data-tenant="carta"] .jas-thesis-alignment-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:1px solid rgba(28,26,23,.14)}
html[data-tenant="carta"] .jas-thesis-alignment-head h2,html[data-tenant="carta"] .jas-thesis-alignment-head p{margin:0}
html[data-tenant="carta"] .jas-thesis-alignment-content{display:grid;gap:24px;padding-top:22px}
html[data-tenant="carta"] .jas-thesis-alignment-card,html[data-tenant="carta"] .jas-thesis-component-list article{display:grid;gap:8px;margin-top:10px;padding:16px;border:1px solid rgba(28,26,23,.14);border-radius:10px;background:#fff}
html[data-tenant="carta"] .jas-thesis-alignment-card h3,html[data-tenant="carta"] .jas-thesis-alignment-card p,html[data-tenant="carta"] .jas-thesis-component-list p{margin:0}
html[data-tenant="carta"] .jas-thesis-alignment-card ul{margin:0;padding-left:20px}
html[data-tenant="carta"] .jas-thesis-alignment-manage{padding:14px;border:1px solid rgba(28,26,23,.14);border-radius:10px;background:#fff}
html[data-tenant="carta"] .jas-thesis-alignment-manage>summary{cursor:pointer;font-weight:800;color:var(--jas-burgundy,#7f1d3f)}
html[data-tenant="carta"] .jas-thesis-alignment-manage form{display:grid;gap:12px;margin-top:14px}
html[data-tenant="carta"] .jas-thesis-alignment-manage label{display:grid;gap:5px;font-weight:700}
html[data-tenant="carta"] .jas-thesis-candidates>p{max-width:62ch}
html[data-tenant="carta"] .jas-thesis-candidates{padding:14px;border:1px solid rgba(28,26,23,.14);border-radius:10px;background:#fff}
html[data-tenant="carta"] .jas-thesis-candidates>summary{cursor:pointer;font-weight:800;color:var(--jas-burgundy,#7f1d3f)}
html[data-tenant="carta"] .jas-thesis-candidates>div{display:grid;gap:10px;margin-top:12px}
html[data-tenant="carta"] .jas-thesis-candidate{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,230px);gap:16px;padding:15px;border:1px solid rgba(28,26,23,.14);border-radius:10px;background:#fff}
html[data-tenant="carta"] .jas-thesis-candidate p{margin:.35rem 0;color:var(--jas-muted,#6b675f)}
html[data-tenant="carta"] .jas-thesis-candidate form{display:grid;align-content:start;gap:8px}
html[data-tenant="carta"] .jas-thesis-candidate label{display:grid;gap:4px;font-weight:700}
html[data-tenant="carta"] .jas-thesis-source{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 10px;margin-top:7px;color:var(--jas-muted,#6b675f)}
html[data-tenant="carta"] .jas-thesis-source .jas-btn{min-height:32px;padding:4px 8px;font-size:.75rem}
html[data-tenant="carta"] .jas-thesis-alignment-lanes{display:grid;gap:8px;margin:0;padding:0;list-style:none}
html[data-tenant="carta"] .jas-thesis-alignment-lane{padding:11px 12px;border-left:3px solid rgba(127,29,63,.24);background:#fbfaf6}
html[data-tenant="carta"] .jas-thesis-alignment-lane>div{display:flex;align-items:center;justify-content:space-between;gap:10px}
html[data-tenant="carta"] .jas-thesis-alignment-lane>p{margin:.35rem 0 0;color:var(--jas-muted,#6b675f);font-size:.84rem}
html[data-tenant="carta"] .jas-thesis-alignment-lane ul{margin:.45rem 0 0;padding-left:18px}
html[data-tenant="carta"] .jas-thesis-alignment-lane details{margin-top:8px}
html[data-tenant="carta"] .jas-thesis-alignment-lane summary{width:max-content;cursor:pointer;color:var(--jas-burgundy,#7f1d3f);font-weight:750}
html[data-tenant="carta"] .jas-thesis-alignment-lane form{display:grid;gap:8px;margin-top:8px}
html[data-tenant="carta"] .jas-thesis-alignment-manage.is-secondary{background:#f7f5ef}
html[data-tenant="carta"] .jas-thesis-support-actions{display:flex;gap:8px;margin-bottom:18px}
html[data-tenant="carta"] .jas-thesis-history-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;border-top:1px solid rgba(28,26,23,.12)}
html[data-tenant="carta"] .jas-thesis-history-row small{display:block;color:var(--jas-muted,#6b675f)}
html[data-tenant="carta"] .jas-thesis-reflection{padding:12px 0;border-top:1px solid rgba(28,26,23,.12)}
html[data-tenant="carta"] .jas-thesis-reflection p{white-space:pre-wrap}

@media (min-width:1380px){
  html[data-tenant="carta"] .jas-thesis-writing-shell.has-support .jas-thesis-writing-grid{grid-template-columns:minmax(0,1fr) 320px}
  html[data-tenant="carta"] .jas-thesis-writing-shell.has-support .jas-thesis-editor-card{max-width:960px}
  html[data-tenant="carta"] .jas-thesis-writing-shell.has-support .jas-thesis-support{position:sticky;z-index:auto;top:84px;right:auto;bottom:auto;width:100%;max-height:calc(100vh - 108px);box-shadow:none}
}
@media (max-width:1100px){
  html[data-tenant="carta"] .jas-thesis-writing-head{grid-template-columns:auto minmax(0,1fr)}
  html[data-tenant="carta"] .jas-thesis-tools{grid-column:1/-1;justify-content:flex-start}
  html[data-tenant="carta"] .jas-thesis-writing-shell.has-structure .jas-thesis-writing-grid{grid-template-columns:minmax(0,1fr)}
  html[data-tenant="carta"] .jas-thesis-structure-rail{position:fixed;z-index:1002;inset:64px auto 0 0;width:min(320px,calc(100vw - 32px));max-height:none;border-radius:0 12px 0 0;overflow:auto;box-shadow:18px 0 50px rgba(0,0,0,.2)}
}
@media (max-width:760px){
  html[data-tenant="carta"] .jas-thesis-writing-shell.has-support .jas-thesis-writing-grid{grid-template-columns:minmax(0,1fr)}
  html[data-tenant="carta"] .jas-thesis-writing-head{grid-template-columns:1fr;gap:10px}
  html[data-tenant="carta"] .jas-thesis-writing-head .jas-thesis-back{justify-self:start;margin:0}
  html[data-tenant="carta"] .jas-thesis-tools{grid-column:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  html[data-tenant="carta"] .jas-thesis-tools>.jas-btn,html[data-tenant="carta"] .jas-thesis-research-tools>summary{width:100%}
  html[data-tenant="carta"] .jas-thesis-research-tools>div{position:fixed;z-index:1150;inset:auto 12px 12px;width:auto;padding:12px;border-radius:14px}
  html[data-tenant="carta"] .jas-thesis-research-tools>div .jas-btn{min-height:48px}
  html[data-tenant="carta"] .jas-thesis-title-menu form{position:fixed;z-index:1150;inset:auto 12px 12px;width:auto}
  html[data-tenant="carta"] .jas-thesis-structure-rail,html[data-tenant="carta"] .jas-thesis-support{position:fixed;z-index:1002;inset:64px 0 0;width:auto;max-height:none;border-radius:0;overflow:auto}
  html[data-tenant="carta"] .jas-thesis-alignment-sheet{inset:64px 0 0;width:100%;padding:18px 14px;border-left:0}
  html[data-tenant="carta"] .jas-thesis-candidate{grid-template-columns:1fr}
  html[data-tenant="carta"] .jas-thesis-alignment-lane>div{align-items:flex-start;flex-direction:column}
  html[data-tenant="carta"] .jas-thesis-alignment-lane details,html[data-tenant="carta"] .jas-thesis-alignment-lane summary{width:100%}
  html[data-tenant="carta"] .jas-thesis-alignment-lane .jas-btn{width:100%}
  html[data-tenant="carta"] .jas-thesis-editor-card{padding:18px 14px}
  html[data-tenant="carta"] .jas-thesis-editor{min-height:56vh;padding:15px;font-size:1rem}
  html[data-tenant="carta"] .jas-thesis-editor-actions{display:grid;grid-template-columns:1fr}
  html[data-tenant="carta"] .jas-thesis-editor-actions .jas-btn{width:100%}
}
@media (max-width:1024px){
  html[data-tenant="carta"] .jas-thesis-index{grid-template-columns:1fr}
}
@media (max-width:760px){
  html[data-tenant="carta"] .jas-thesis-document-row{align-items:flex-start;flex-direction:column}
  html[data-tenant="carta"] .jas-thesis-document-row .jas-btn{width:100%}
  html[data-tenant="carta"] .jas-thesis-tree .jas-thesis-tree{margin-left:7px;padding-left:10px}
  html[data-tenant="carta"] .jas-thesis-format-card{padding:12px}
}

/* ============================================================================
   PUBLIC EOI SURFACES — responsive typography & content width
   ----------------------------------------------------------------------------
   Scope: the three surfaces an external applicant actually reads —
   the Training Opportunities listing, an opportunity detail page, and the
   expression-of-interest form. ONE shared block, not per-module or per-title
   patches, and deliberately NOT a change to the global .field/.btn tokens:
   those are shared with the admin console and APCC, whose dense layouts are
   out of scope for this increment.

   Measured defects this fixes (real-browser, all nine real opportunities):
     * .max-w-3xl was absent from the compiled CSS, so the EOI form page had
       NO maximum width and ran the full 1440px viewport;
     * detail prose reached ~139 characters per line on desktop;
     * form labels 12.8px, inputs 14.7px (below the 16px mobile minimum, which
       makes iOS Safari zoom on focus), help text 11.5px;
     * substantive card/detail body copy sat at 14px — metadata treatment for
       applicant-facing information;
     * section headings 16–18px, flat against 30px titles.

   Everything below uses the existing tokens and scale; titles use clamp() so
   the system is fluid between breakpoints rather than correct only at four.
   ========================================================================== */

/* The design system's own 48rem step, restored (Tailwind's max-w-3xl was
   purged because nothing used it until the EOI page did). */
.max-w-3xl{ max-width:48rem; }

/* R2D2: the EOI is the only public surface that needs a wider completion
   frame. Long answers retain their own reading measure inside it. */
.eoi-page-frame{ width:100%; max-width:66rem; }
html[data-tenant="is4ncds"] #eoiFormView{ font-family:var(--is4ncds-font-body); }
html[data-tenant="is4ncds"] #eoiFormView h1,
html[data-tenant="is4ncds"] #eoiFormView h2,
html[data-tenant="is4ncds"] #eoiFormView .eoi-opportunity-title{
  font-family:var(--is4ncds-font-heading-interim);
}

/* --- shared reading measure ------------------------------------------------
   Long-form prose stays left-aligned (the existing design language) but stops
   growing past a comfortable measure on wide screens.

   The opportunity DETAIL page no longer takes its measure per element — it
   takes ONE column measure on its shell (see the restoration block below), so
   its paragraphs, lists and title cannot end up three different widths. */
#eoiFormView p:not(.eyebrow){ max-width:68ch; }

/* --- titles: fluid, never a single excessive desktop line ------------------ */
#opportunityDetailView h1,
#eoiFormView h1{
  font-size:clamp(1.65rem, 1.15rem + 1.9vw, 2.4rem);   /* 26.4px → 38.4px */
  line-height:1.2;
  overflow-wrap:break-word;
}
/* The 22ch cap belongs to the EOI form, whose title sits above a form rather
   than at the head of an article; on the detail page it was crushing an
   85-character title into five lines inside a much wider page. */
#eoiFormView h1{ max-width:22ch; }
#eoiFormView .eoi-page-heading{ max-width:48rem; }
#eoiFormView .eoi-opportunity-title{
  max-width:42rem; margin-top:.5rem; color:var(--is4ncds-deep-blue);
  font-size:clamp(1.15rem,1.02rem + .45vw,1.35rem); font-weight:700; line-height:1.35;
  overflow-wrap:break-word;
}
#opportunities h2{ font-size:clamp(1.65rem, 1.2rem + 1.9vw, 2.25rem); line-height:1.2; }

/* --- R2C1: Training Opportunity detail composition -------------------------
   The page uses a wide frame for hierarchy, then returns long-form content to
   a comfortable reading measure. Every selector is detail-scoped: the frozen
   homepage announcement, hero, opportunity grid and cards are untouched. */
#opportunityDetailView > div{ max-width:70rem; }
html[data-tenant="is4ncds"] #opportunityDetailView{
  font-family:var(--is4ncds-font-body);
}
html[data-tenant="is4ncds"] #opportunityDetailBody h1,
html[data-tenant="is4ncds"] #opportunityDetailBody h2,
html[data-tenant="is4ncds"] #opportunityDetailBody h3{
  font-family:var(--is4ncds-font-heading-interim);
}
#opportunityDetailBody .opp-detail-upper{ min-width:0; }
#opportunityDetailBody .opp-detail-primary{ min-width:0; }
#opportunityDetailBody .opp-detail-reading{ max-width:44rem; }
#opportunityDetailBody .opp-detail-intro{ max-width:42rem; }

/* The accepted Phase 1 badge language, restated for the detail page:
   the level badge carries the small identifying dot; "Accepting interest"
   is the outlined gold status (5.80:1 on white). */
#opportunityDetailBody .badge-level{ display:inline-flex; align-items:center; gap:.32rem; }
#opportunityDetailBody .badge-level::before{
  content:""; width:6px; height:6px; border-radius:50%; background:currentColor; flex:none;
}
#opportunityDetailBody .badge-open{ background:#fff; border:1px solid var(--gold-soft); color:#8a5c0f; }

/* KEY FACTS — one restrained supporting rail, using existing source values.
   Missing values render no row. The gold rule is the sole high-chroma accent. */
#opportunityDetailBody .opp-facts-rail{
  margin-top:2rem; padding:1.15rem 1.25rem 1.25rem;
  border:1px solid color-mix(in srgb,var(--is4ncds-deep-blue) 18%,#fff);
  border-top:3px solid var(--is4ncds-golden-yellow);
  border-radius:var(--radius); background:color-mix(in srgb,var(--is4ncds-deep-blue) 4%,#fff);
}
#opportunityDetailBody .opp-facts-heading{
  color:var(--is4ncds-deep-blue); font-size:1rem; font-weight:700;
  line-height:1.3; margin:0 0 .85rem;
}
#opportunityDetailBody .opp-facts{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 1.5rem; margin:0;
}
#opportunityDetailBody .opp-fact{
  padding:.72rem 0; border-top:1px solid color-mix(in srgb,var(--is4ncds-deep-blue) 12%,#fff);
}
#opportunityDetailBody .opp-fact:nth-of-type(-n+2){ border-top:0; padding-top:0; }
@media (max-width:639px){
  #opportunityDetailBody .opp-facts{ grid-template-columns:1fr; }
  #opportunityDetailBody .opp-fact:nth-of-type(2){ border-top:1px solid color-mix(in srgb,var(--is4ncds-deep-blue) 12%,#fff); padding-top:.72rem; }
}
#opportunityDetailBody .opp-fact dt{
  font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink-soft); margin-bottom:.25rem;
}
#opportunityDetailBody .opp-fact dd{ font-size:.9375rem; line-height:1.45; color:var(--ink); margin:0; overflow-wrap:anywhere; }

/* SECTION RHYTHM — each content section opens with a hairline rule and a
   consistent breathing space, so the page reads as structured chapters
   rather than one flat run of text. */
#opportunityDetailBody .opp-section{ margin-top:2rem; padding-top:1.25rem; border-top:1px solid var(--line); }
#opportunityDetailBody .opp-section h2{ margin-bottom:.25rem; }
#opportunityDetailBody .opp-practical-grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem 1.5rem; margin-top:1rem;
}
#opportunityDetailBody .opp-practical-item{
  padding:1rem; border:1px solid var(--line); border-radius:var(--radius); background:#fff;
}
#opportunityDetailBody .opp-practical-item h3{
  color:var(--is4ncds-deep-blue); font-size:.95rem; font-weight:700; line-height:1.35;
}
#opportunityDetailBody .opp-practical-item p{ margin-top:.4rem; }
#opportunityDetailBody .opp-closing-action{ padding-bottom:.25rem; }

/* EOI reassurance — supporting guidance, not cramped microcopy. */
#opportunityDetailBody .opp-note{
  font-size:.875rem; line-height:1.55; max-width:26rem; display:inline-block;
}

@media (min-width:1024px){
  #opportunityDetailBody .opp-detail-upper{
    display:grid; grid-template-columns:minmax(0,2.2fr) minmax(18rem,1fr);
    gap:3rem; align-items:start;
  }
  #opportunityDetailBody .opp-facts-rail{ margin-top:0; }
  #opportunityDetailBody .opp-facts{ grid-template-columns:1fr; }
  #opportunityDetailBody .opp-fact:nth-of-type(2){
    border-top:1px solid color-mix(in srgb,var(--is4ncds-deep-blue) 12%,#fff); padding-top:.72rem;
  }
  html[data-tenant="is4ncds"] #opportunityDetailView p,
  html[data-tenant="is4ncds"] #opportunityDetailView li{ font-size:1.0625rem; }
}
@media (min-width:1120px){
  #opportunityDetailBody .opp-detail-upper{
    grid-template-columns:minmax(0,44rem) minmax(19rem,20rem);
    justify-content:center;
  }
}
@media (max-width:639px){
  #opportunityDetailBody .opp-detail-action{ display:block; }
  #opportunityDetailBody .opp-detail-action .btn{ width:100%; }
  #opportunityDetailBody .opp-note{ display:block; margin-top:.75rem; max-width:none; }
  #opportunityDetailBody .opp-practical-grid{ grid-template-columns:1fr; }
}

/* --- PHASE 1: opportunity-card rhythm (owner-directed UI refinement) --------
   The grid already equalises card HEIGHTS, but the content inside was ragged:
   summaries ran 3–7 lines, institutions 1–3 lines, and the action row sat
   wherever the content ended — up to 129px of dead space below it. All nine
   cards now share one rhythm:
     * the card is a flex column and its action row pins to the bottom;
     * the summary clamps at 3 lines (the detail page remains the complete
       source — no underlying data is truncated);
     * the full institutional attribution clamps at 2 lines on the CARD only
       (the detail page keeps the complete source-supported attribution);
     * the LEVEL badge (always first) carries a small dot so the academic
       tier reads as its own badge family, distinct from the neutral
       delivery-mode badge;
     * "Accepting interest" becomes an OUTLINED badge (.badge-open) so status
       is distinguishable from level at a glance — previously its blue tint
       was nearly identical to Intermediate's.
   Scoped to #opportunityGrid — the announcement above it (frozen, PR #122),
   the catalogue grid and every other surface are untouched. */
#opportunityGrid > .card{ display:flex; flex-direction:column; }
#opportunityGrid > .card > div:last-child{ margin-top:auto; padding-top:1.1rem; }
#opportunityGrid .card-summary{
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden;
}
#opportunityGrid .card-institution{
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden;
}
#opportunityGrid > .card > div:first-child .badge:first-child{
  display:inline-flex; align-items:center; gap:.32rem;
}
#opportunityGrid > .card > div:first-child .badge:first-child::before{
  content:""; width:6px; height:6px; border-radius:50%; background:currentColor; flex:none;
}
#opportunityGrid .badge-open{ background:#fff; border:1px solid var(--gold-soft); color:#8a5c0f; }

/* --- homepage Training Opportunities announcement --------------------------
   PHASE 1 AMENDMENT (owner-directed). One flat cap on the whole block
   (max-width:64rem) fixed the earlier heading/prose mismatch but produced a
   uniformly narrow announcement above a wider three-column grid — at 1440px
   both the headline and the prose stopped 208px short of the grid's right
   edge, reading as an accidentally truncated column.

   The announcement is now part of the SAME horizontal composition as the
   grid, with an editorial cascade instead of one flat cap:
     * the OUTER wrapper spans the section container, so the eyebrow rule and
       the block's left edge align with the grid exactly;
     * the HEADLINE takes its own deliberate measure and wraps as two
       balanced lines at wide desktop (text-wrap:balance; safe no-op where
       unsupported — the max-width alone still forces the deliberate wrap);
     * the PROSE (including the closing EOI reassurance) sits under the same
       41rem/~85ch reading measure the opportunity DETAIL pages use, so the
       two public reading surfaces share one measure.
   Left alignment is preserved; nothing is centred; no filler content.
   Everything is scoped ≥1024px so the accepted tablet/mobile behaviour is
   untouched by construction, and the card grid is a sibling this never
   reaches. */
@media (min-width:1024px){
  /* The 58-character headline cannot span a 77rem grid without one overlong
     line, so it wraps at its natural break (the em-dash, via balance) and
     steps up to the design system's top page-title size (44px at 1440) —
     the two balanced lines then sit at ~the same width as the prose, so
     headline and body share ONE column edge instead of three ragged ones. */
  #opportunities .opp-announce h2{
    max-width:64rem;
    font-size:clamp(2.25rem, 1.2rem + 1.9vw, 2.75rem);
    text-wrap:balance;
  }
  #opportunities .opp-announce-body{ max-width:41rem; }
}

/* --- section headings: a real step above body ------------------------------ */
#opportunityDetailView h2,
#eoiFormView section h2{ font-size:clamp(1.2rem, 1.1rem + .4vw, 1.4rem); line-height:1.3; }

/* --- substantive body copy ------------------------------------------------- */
#opportunities .opp-intro,
#opportunityDetailView p,
#eoiFormView .eoi-intro{ font-size:1rem; line-height:1.6; }
#opportunityDetailView li{ font-size:1rem; line-height:1.6; }

/* --- opportunity cards: clear hierarchy, readable at every width ----------- */
#opportunityGrid h3{ font-size:1.05rem; line-height:1.3; overflow-wrap:break-word; }
#opportunityGrid .card-institution{ font-size:.875rem; line-height:1.4; }
#opportunityGrid .card-dates{ font-size:.9375rem; }
#opportunityGrid .card-summary{ font-size:.9375rem; line-height:1.55; }

/* --- forms: the 16px control minimum (no iOS zoom-on-focus) ---------------- */
#eoiFormView .field{ font-size:1rem; line-height:1.5; }
#eoiFormView .field-label{ font-size:.9375rem; margin-bottom:.35rem; }
#eoiFormView .eoi-help{ font-size:.875rem; line-height:1.45; }
#eoiFormView textarea.field{ min-height:7rem; }
/* Consent and acknowledgement are substantive statements, not fine print. */
#eoiFormView label.eoi-consent,
#eoiFormView section label[for]{ font-size:.9375rem; line-height:1.5; }

/* R2D2 form composition. Only the dedicated public EOI page uses these
   hooks; shared field, card and button primitives remain unchanged. */
#eoiFormView .eoi-form-section{ border-color:color-mix(in srgb,var(--is4ncds-deep-blue) 13%,var(--line)); }
#eoiFormView .eoi-form-section > h2{
  color:var(--is4ncds-deep-blue); padding-bottom:.8rem;
  border-bottom:1px solid color-mix(in srgb,var(--is4ncds-deep-blue) 12%,var(--line));
}
#eoiFormView .eoi-field-grid{
  display:grid; grid-template-columns:minmax(0,1fr); gap:1.15rem 1.5rem; margin-top:1.25rem;
}
#eoiFormView .eoi-field-group{ min-width:0; }
#eoiFormView .eoi-field-group > .field-label{ display:block; margin-top:0; margin-bottom:.35rem; }
#eoiFormView .eoi-field-group > .eoi-help{ margin-top:.2rem; margin-bottom:.45rem; }
#eoiFormView .eoi-field--reading{ width:100%; max-width:none; }
/* Reading measure belongs to supporting copy, not to the interactive row.
   Full-row controls now share the same right edge as the two-column grid. */
#eoiFormView .eoi-field--reading > :is(.field-label,.eoi-help){ max-width:46rem; }
#eoiFormView .eoi-field--long textarea.field{ min-height:9rem; resize:vertical; }
#eoiFormView .eoi-word-counter{
  margin:.35rem 0 0 auto; color:var(--ink-soft); font-size:.8125rem;
  font-variant-numeric:tabular-nums; line-height:1.35; text-align:right;
}
#eoiFormView .eoi-upload-field{
  padding:1rem; border:1px solid color-mix(in srgb,var(--is4ncds-deep-blue) 16%,var(--line));
  border-radius:10px; background:color-mix(in srgb,var(--is4ncds-cyan) 4%,#fff);
}
#eoiFormView .eoi-upload-field input[type="file"]{ padding:.55rem; background:#fff; }
#eoiFormView .eoi-submit-section > .eoi-consent{ margin-top:1.15rem; max-width:46rem; }
#eoiFormView #eoiTurnstile:not(:empty){ margin-top:1rem; }
#eoiFormView #eoiTurnstile iframe{ max-width:100%; }
#eoiFormView .eoi-field-error{
  margin:.4rem 0 0; color:#8b2f21; font-size:.875rem; font-weight:650; line-height:1.4;
}
#eoiFormView .eoi-field-error::before{ content:"Error: "; }
#eoiFormView .field.invalid,
#eoiFormView input.invalid{ border-color:#a53a28; box-shadow:0 0 0 3px rgba(165,58,40,.16); }
#eoiFormView #eoiPageErr{ max-width:46rem; border-left:4px solid #a53a28; }

/* R2D3 EOI state vocabulary. It is shared only by the public EOI completion
   and verification surfaces; the frozen form controls and grids are untouched. */
#eoiFormView .eoi-status,
#guestEoiOverlay .eoi-status{
  width:min(100%,56rem); margin:2.5rem auto; padding:clamp(1.5rem,3vw,2.5rem);
  border-top:4px solid var(--is4ncds-golden-yellow); background:var(--paper,#FBF9F4);
}
html[data-tenant="is4ncds"] .eoi-status{ font-family:var(--is4ncds-font-body); }
html[data-tenant="is4ncds"] .eoi-status-title,
html[data-tenant="is4ncds"] .eoi-status-course{ font-family:var(--is4ncds-font-heading-interim); }
.eoi-status-eyebrow{ color:var(--is4ncds-deep-blue); }
.eoi-status-title{
  max-width:22ch; margin-top:.45rem; color:var(--charcoal); font-size:clamp(1.75rem,2.6vw,2.25rem);
  font-weight:750; line-height:1.15; text-wrap:balance;
}
.eoi-status-course{
  max-width:46rem; margin-top:.75rem; color:var(--is4ncds-deep-blue);
  font-size:clamp(1.05rem,1.5vw,1.2rem); font-weight:700; line-height:1.4;
}
.eoi-status-copy{ max-width:46rem; margin-top:1.4rem; color:var(--ink-soft); font-size:1rem; line-height:1.65; }
.eoi-status-copy p + p{ margin-top:.75rem; }
.eoi-status-copy strong{ color:var(--ink); }
.eoi-status-reference{ max-width:46rem; margin-top:1.4rem; padding:1rem 1.1rem; border-radius:10px; background:color-mix(in srgb,var(--is4ncds-cyan) 7%,#fff); }
.eoi-status-reference dt{ color:var(--ink-soft); font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.eoi-status-reference dd{ margin-top:.2rem; color:var(--ink); font-size:1rem; font-weight:750; overflow-wrap:anywhere; }
.eoi-status-actions{ display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.5rem; }
.eoi-status-text-action{ color:var(--gold-deep); font-weight:750; text-decoration:underline; text-underline-offset:.18em; }
.eoi-status-text-action:hover{ text-decoration-thickness:2px; }
.eoi-status-text-action:focus-visible{ outline:3px solid var(--is4ncds-golden-yellow); outline-offset:3px; border-radius:2px; }

@media (max-width:640px){
  #eoiFormView .eoi-status,
  #guestEoiOverlay .eoi-status{ margin:1rem auto; padding:1.35rem 1.15rem 1.5rem; }
  .eoi-status-actions{ display:grid; grid-template-columns:1fr; }
  .eoi-status-actions .btn{ justify-content:center; width:100%; }
}

@media (min-width:900px){
  #eoiFormView .eoi-field-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  #eoiFormView .eoi-field--full{ grid-column:1 / -1; }
}

/* --- controls: comfortable targets on touch -------------------------------- */
#opportunities .btn,
#opportunityDetailView .btn,
#eoiFormView .btn{ font-size:.9688rem; min-height:44px; }

/* --- badges stay compact labels, just legible ------------------------------ */
#opportunities .badge,
#opportunityDetailView .badge{ font-size:.72rem; }

@media (max-width:640px){
  /* Mobile: full-width controls and a comfortable, tappable submit. */
  #eoiFormView .btn[type="submit"]{ width:100%; }
  #eoiFormView .eoi-submit-actions{ display:grid; grid-template-columns:1fr; }
  #eoiFormView .eoi-submit-actions .btn{ justify-content:center; }
  #eoiFormView .eoi-upload-field{ padding:.85rem; }
  #opportunityGrid .btn{ flex:1 1 auto; }
}

/* ===========================================================================
   Conference Planning → Abstracts operational workspace
   ========================================================================== */
.planning-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin:.25rem 0 1rem}
.planning-section-heading h3{font-size:1.25rem;font-weight:750;line-height:1.25;color:var(--charcoal,#25313c)}
.planning-section-heading p{max-width:72ch;margin-top:.25rem;color:var(--ink-soft);font-size:.9rem;line-height:1.5}
.planning-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}
.planning-summary-card{min-height:7.25rem;padding:1rem;text-align:left;background:var(--surface,#fff);border:1px solid var(--line);border-radius:var(--radius,12px);box-shadow:0 1px 2px rgba(15,23,42,.04);transition:border-color .15s,box-shadow .15s,transform .15s}
.planning-summary-card:hover{border-color:var(--brand);box-shadow:0 5px 16px rgba(15,23,42,.08);transform:translateY(-1px)}
.planning-summary-card:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 32%,transparent);outline-offset:2px}
.planning-summary-card.is-active{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand),0 5px 16px rgba(15,23,42,.08)}
.planning-summary-card.is-informational{cursor:default}.planning-summary-card.is-informational:hover{border-color:var(--line);box-shadow:0 1px 2px rgba(15,23,42,.04);transform:none}
.planning-summary-card strong{display:block;margin:.3rem 0;font-size:1.65rem;line-height:1;color:var(--charcoal,#25313c)}
.planning-summary-card>span:last-child{display:block;font-size:.78rem;line-height:1.35;color:var(--ink-soft)}
.planning-summary-label{display:block;font-size:.75rem;font-weight:750;letter-spacing:.035em;text-transform:uppercase;color:var(--ink-soft)}
.planning-filter-panel{display:grid;grid-template-columns:minmax(14rem,2fr) repeat(5,minmax(8.5rem,1fr));gap:.75rem;align-items:end;padding:1rem;margin-bottom:1rem;background:color-mix(in srgb,var(--brand) 4%,#fff);border:1px solid var(--line);border-radius:var(--radius,12px)}
.planning-filter-panel label{display:grid;gap:.35rem;min-width:0}
.planning-filter-panel label>span{font-size:.75rem;font-weight:750;color:var(--ink-soft)}
.planning-filter-panel input,.planning-filter-panel select{width:100%;min-width:0;min-height:42px;padding:.58rem .7rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--charcoal,#25313c);font-size:.9rem}
.planning-filter-panel input:focus,.planning-filter-panel select:focus{outline:2px solid color-mix(in srgb,var(--brand) 35%,transparent);border-color:var(--brand)}
.planning-reset-button,.planning-pagination button,.planning-detail-button{min-height:40px;padding:.5rem .75rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--charcoal,#25313c);font-weight:700;font-size:.82rem}
.planning-reset-button:hover,.planning-pagination button:not(:disabled):hover,.planning-detail-button:hover{border-color:var(--brand);color:var(--brand)}
.planning-results-heading{display:flex;justify-content:space-between;gap:1rem;margin:.25rem 0 .65rem;color:var(--ink-soft);font-size:.82rem}
.planning-results-heading strong{color:var(--charcoal,#25313c)}
.planning-table-shell{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:var(--radius,12px);background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.04)}
.planning-abstract-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:.88rem}
.planning-abstract-table th{position:sticky;top:0;z-index:1;padding:.78rem .75rem;text-align:left;background:#f7f8f8;border-bottom:1px solid var(--line);color:var(--ink-soft);font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.planning-abstract-table td{padding:1rem .75rem;vertical-align:top;border-bottom:1px solid var(--line);line-height:1.45;overflow-wrap:anywhere;word-break:normal;white-space:normal}
.planning-abstract-table tbody tr:last-child td{border-bottom:0}
.planning-abstract-row:hover td{background:color-mix(in srgb,var(--brand) 2.5%,#fff)}
.planning-col-reference{width:10rem}.planning-col-track{width:16%}.planning-col-coverage{width:10.5rem}.planning-col-flags{width:12.5rem}.planning-col-action{width:5.5rem}
.planning-reference-cell strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;color:var(--charcoal,#25313c)}
.planning-title-cell strong{display:block;font-size:.94rem;line-height:1.4;color:var(--charcoal,#25313c)}
.planning-title-cell>span,.planning-coverage-cell>span{display:block;margin-top:.3rem;color:var(--ink-soft);font-size:.79rem;line-height:1.4}
.planning-track-cell{color:var(--charcoal,#25313c)}
.planning-track-cell>strong,.planning-track-cell>span{display:block}.planning-track-cell>span{margin-top:.3rem;color:var(--ink-soft);font-size:.79rem}
.planning-coverage-cell strong{display:block;color:var(--charcoal,#25313c)}
.planning-badge{display:inline-flex;align-items:center;max-width:100%;margin:.1rem .25rem .1rem 0;padding:.24rem .48rem;border-radius:999px;background:#edf1f4;color:#425466;font-size:.7rem;font-weight:750;line-height:1.25;white-space:normal}
.planning-badge--ready{background:#e3f5ec;color:#17633e}.planning-badge--progress{background:#e7f0fb;color:#24598a}.planning-badge--attention{background:#fff2d6;color:#765114}.planning-badge--danger{background:#fde8e7;color:#8b2c28}.planning-badge--muted{background:#edf0f2;color:#5e6872}
.planning-detail-row td{padding:0;background:#f8fafb}
.planning-detail-grid{display:grid;grid-template-columns:1.3fr 1.3fr 1fr;gap:1.25rem;padding:1rem 1.25rem 1.25rem;border-bottom:1px solid var(--line)}
.planning-detail-grid h4{margin-bottom:.5rem;color:var(--charcoal,#25313c);font-size:.78rem;font-weight:800;letter-spacing:.035em;text-transform:uppercase}
.planning-detail-grid p,.planning-detail-grid li{font-size:.82rem;line-height:1.45;color:var(--ink-soft);overflow-wrap:anywhere}
.planning-detail-list{display:grid;gap:.65rem}.planning-detail-list li{display:grid;gap:.16rem}.planning-detail-list strong{color:var(--charcoal,#25313c)}
.planning-detail-list a{color:var(--brand);text-decoration:underline;text-underline-offset:2px}.planning-detail-note{margin-top:.35rem}
.planning-source-note{margin-top:.35rem;font-size:.78rem;color:var(--ink-soft)}
.planning-registration-table .planning-col-organization{width:18%}.planning-registration-table .planning-col-participation{width:15%}.planning-registration-table .planning-col-verification{width:8.5rem}
.planning-registration-filters{grid-template-columns:minmax(14rem,2fr) repeat(4,minmax(8.5rem,1fr))}.planning-registration-filters .planning-reset-button{grid-column:auto}
.planning-reviewers-workspace,.planning-reviewer-filters,.planning-reviewers-workspace .planning-table-shell{min-width:0;max-width:100%}.planning-reviewers-workspace .planning-table-shell{width:100%}.planning-reviewer-table{max-width:100%}
.planning-reviewer-table .planning-col-reviewer-identity{width:22%}.planning-reviewer-table .planning-col-reviewer-tracks{width:24%}.planning-reviewer-table .planning-col-reviewer-readiness{width:19%}.planning-reviewer-table .planning-col-reviewer-workload{width:12%}.planning-reviewer-table .planning-col-reviewer-progress{width:16%}.planning-reviewer-table .planning-col-action{width:7%}
.planning-reviewer-cell strong,.planning-reviewer-cell span,.planning-reviewer-cell a,.planning-reviewer-readiness-cell>span,.planning-reviewer-progress-cell strong,.planning-reviewer-progress-cell span{display:block;white-space:normal}.planning-reviewer-cell strong{overflow-wrap:normal;word-break:normal}.planning-reviewer-cell a{overflow-wrap:break-word;word-break:normal}.planning-reviewer-cell span,.planning-reviewer-readiness-cell>span,.planning-reviewer-progress-cell strong,.planning-reviewer-progress-cell span{overflow-wrap:anywhere}.planning-reviewer-cell strong,.planning-reviewer-progress-cell strong{color:var(--charcoal,#25313c)}.planning-reviewer-cell span,.planning-reviewer-cell a,.planning-reviewer-readiness-cell>span,.planning-reviewer-progress-cell span{margin-top:.25rem;color:var(--ink-soft);font-size:.78rem;line-height:1.4}.planning-reviewer-cell a{color:var(--brand);text-decoration:underline;text-underline-offset:2px}.planning-reviewer-table .planning-action-cell{padding-left:.25rem;padding-right:.25rem}.planning-reviewer-table .planning-detail-button{padding-left:.35rem;padding-right:.35rem;font-size:.78rem;white-space:nowrap}
.planning-reviewer-attention{margin-bottom:.65rem}.planning-reviewer-attention .planning-badge--attention,.planning-reviewer-attention .planning-badge--danger{font-weight:800}
.planning-reviewer-filters{grid-template-columns:minmax(14rem,2fr) repeat(4,minmax(8.5rem,1fr))}
.planning-track-table .planning-col-track-name{width:25%}.planning-track-table .planning-col-track-pool{width:15%}.planning-track-table .planning-col-track-target{width:17%}.planning-track-table .planning-col-track-capacity{width:19%}.planning-track-table .planning-col-track-progress{width:17%}.planning-track-table .planning-col-action{width:7%}
.planning-track-name-cell strong,.planning-track-name-cell span,.planning-track-pool-cell strong,.planning-track-pool-cell span,.planning-track-target-cell strong,.planning-track-target-cell span,.planning-track-capacity-cell strong,.planning-track-capacity-cell span,.planning-track-progress-cell strong,.planning-track-progress-cell span{display:block;white-space:normal;word-break:normal;overflow-wrap:break-word}.planning-track-name-cell strong,.planning-track-pool-cell strong,.planning-track-target-cell strong,.planning-track-capacity-cell strong,.planning-track-progress-cell strong{color:var(--charcoal,#25313c)}.planning-track-name-cell span,.planning-track-pool-cell span,.planning-track-target-cell span,.planning-track-capacity-cell span,.planning-track-progress-cell span{margin-top:.25rem;color:var(--ink-soft);font-size:.78rem;line-height:1.4}.planning-track-table .planning-action-cell{padding-left:.25rem;padding-right:.25rem}.planning-track-table .planning-detail-button{padding-left:.35rem;padding-right:.35rem;font-size:.78rem;white-space:nowrap}.planning-track-filters{grid-template-columns:minmax(14rem,2fr) repeat(5,minmax(8.5rem,1fr))}
.planning-empty{padding:2.5rem 1rem;text-align:center;border:1px dashed var(--line);border-radius:var(--radius,12px);background:#fff;color:var(--ink-soft)}
.planning-pagination{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.75rem}.planning-pagination button:disabled{opacity:.45;cursor:not-allowed}

@media (min-width:1101px){
  .planning-reviewer-table,.planning-reviewer-table thead,.planning-reviewer-table tbody{display:block}
  .planning-reviewer-table thead tr,.planning-reviewer-table .planning-reviewer-row{display:grid;grid-template-columns:minmax(0,22fr) minmax(0,24fr) minmax(0,19fr) minmax(0,12fr) minmax(0,16fr) minmax(0,7fr)}
  .planning-reviewer-table thead th,.planning-reviewer-table .planning-reviewer-row td{width:auto}
  .planning-reviewer-table .planning-detail-row{display:block}.planning-reviewer-table .planning-detail-row[hidden]{display:none}.planning-reviewer-table .planning-detail-row td{display:block;width:auto}
}
@media (max-width:1100px){
  .planning-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .planning-filter-panel{grid-template-columns:repeat(3,minmax(0,1fr))}.planning-search{grid-column:span 2}
  .planning-col-reference{width:9rem}.planning-col-track{width:13rem}.planning-col-flags{width:10rem}
  .planning-reviewer-table,.planning-reviewer-table tbody{display:block}.planning-reviewer-table thead{display:none}
  .planning-reviewer-table .planning-reviewer-row{display:grid;grid-template-columns:1fr auto;margin-bottom:.75rem;border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}
  .planning-reviewer-table .planning-reviewer-row td{display:block;padding:.65rem .8rem;border:0}.planning-reviewer-table .planning-reviewer-cell,.planning-reviewer-table .planning-track-cell,.planning-reviewer-table .planning-reviewer-readiness-cell,.planning-reviewer-table .planning-coverage-cell,.planning-reviewer-table .planning-reviewer-progress-cell,.planning-reviewer-table .planning-flags-cell{grid-column:1}
  .planning-reviewer-table .planning-action-cell{grid-column:2;grid-row:1/3}.planning-reviewer-table .planning-detail-row{display:block;margin:-.75rem 0 .75rem}.planning-reviewer-table .planning-detail-row[hidden]{display:none}.planning-reviewer-table .planning-detail-row td{display:block!important;border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px}
}
@media (max-width:860px){
  .planning-section-heading{display:block}.planning-section-heading>.planning-badge{margin-top:.65rem}
  .planning-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.planning-summary-card{min-height:6.5rem;padding:.8rem}
  .planning-filter-panel{grid-template-columns:1fr 1fr}.planning-search{grid-column:1/-1}
  .planning-table-shell{overflow:visible;border:0;background:transparent;box-shadow:none}
  .planning-abstract-table,.planning-abstract-table tbody{display:block}.planning-abstract-table thead{display:none}
  .planning-abstract-row{display:grid;grid-template-columns:1fr auto;margin-bottom:.75rem;border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}
  .planning-abstract-table .planning-abstract-row td{display:block;padding:.65rem .8rem;border:0}
  .planning-reference-cell,.planning-title-cell,.planning-track-cell,.planning-coverage-cell,.planning-verification-cell,.planning-flags-cell,.planning-reviewer-cell,.planning-reviewer-readiness-cell,.planning-reviewer-progress-cell,.planning-track-name-cell,.planning-track-pool-cell,.planning-track-target-cell,.planning-track-capacity-cell,.planning-track-progress-cell{grid-column:1}
  .planning-action-cell{grid-column:2;grid-row:1/3}.planning-title-cell{padding-top:.15rem!important}.planning-track-cell{font-size:.82rem}
  .planning-detail-row{display:block;margin:-.75rem 0 .75rem}.planning-detail-row[hidden]{display:none}.planning-detail-row td{display:block!important;border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px}
  .planning-detail-grid{grid-template-columns:1fr;gap:1rem}.planning-results-heading{display:block}.planning-results-heading p+p{margin-top:.2rem}
}
@media (max-width:480px){
  .planning-summary-grid,.planning-filter-panel{grid-template-columns:1fr}.planning-search{grid-column:auto}
  .planning-filter-panel select,.planning-filter-panel input{font-size:1rem}
}
.eoi-request-history { border-top: 1px solid var(--border); padding-top: 1.25rem; }
.eoi-request-round { border: 1px solid var(--border); border-radius: .65rem; padding: 1rem; margin-top: .75rem; background: var(--surface-soft, #f8fafb); }
.eoi-request-round header { display: flex; justify-content: space-between; gap: .75rem; flex-wrap: wrap; font-size: .8rem; color: var(--ink-soft); }
.eoi-request-round blockquote { margin: .75rem 0; padding-left: .75rem; border-left: 3px solid var(--tenant-accent, #1f5690); white-space: pre-wrap; }
.eoi-request-round ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.eoi-request-round li { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem; font-size: .85rem; }
.eoi-request-round li small { flex-basis: 100%; color: var(--ink-soft); }

/* JAS II Facilitator proposal-review workspace --------------------------- */
html[data-tenant="carta"] .jas-rd-review-summary{
  display:flex; gap:1rem; margin:0 0 1.25rem;
}
html[data-tenant="carta"] .jas-rd-review-summary p{
  display:flex; align-items:baseline; gap:.55rem; margin:0; padding:.8rem 1rem;
  border:1px solid var(--jas-line, #d9d2c4); background:#fffdf8;
}
html[data-tenant="carta"] .jas-rd-review-summary strong{ font-size:1.5rem; color:var(--jas-ink, #25231f); }
html[data-tenant="carta"] .jas-rd-review-summary span{ color:#625d53; }
html[data-tenant="carta"] .jas-rd-review-listhead{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(18rem,32rem); gap:2rem;
  align-items:end; margin-bottom:1rem;
}
html[data-tenant="carta"] .jas-rd-review-listhead h2,
html[data-tenant="carta"] .jas-rd-review-listhead p{ margin-bottom:0; }
html[data-tenant="carta"] .jas-rd-review-row{
  display:grid; grid-template-columns:minmax(14rem,1.15fr) minmax(24rem,1.8fr) minmax(12rem,.8fr);
  gap:1.5rem; align-items:center; margin-bottom:.8rem;
}
html[data-tenant="carta"] .jas-rd-review-person h3{ margin:.15rem 0 .35rem; }
html[data-tenant="carta"] .jas-rd-review-person p{ margin:.15rem 0; }
html[data-tenant="carta"] .jas-rd-review-facts{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem 1rem; margin:0;
}
html[data-tenant="carta"] .jas-rd-review-facts div{ min-width:0; }
html[data-tenant="carta"] .jas-rd-review-facts dt{ color:#71695e; font-size:.76rem; text-transform:uppercase; letter-spacing:.06em; }
html[data-tenant="carta"] .jas-rd-review-facts dd{ margin:.12rem 0 0; font-weight:650; }
html[data-tenant="carta"] .jas-rd-review-open{ display:flex; flex-direction:column; align-items:flex-start; gap:.65rem; }
html[data-tenant="carta"] .jas-rd-review-open small{ color:#71695e; }
html[data-tenant="carta"] .jas-rd-review-fellow{ margin:.1rem 0 .65rem; color:#5d574e; }
html[data-tenant="carta"] .jas-rd-back{ margin-bottom:1rem; }
html[data-tenant="carta"] .jas-rd-fbpanel{
  margin:.65rem 0; border:1px solid rgba(83,72,55,.2); border-radius:.55rem;
  background:rgba(255,255,255,.58); overflow:hidden;
}
html[data-tenant="carta"] .jas-rd-fbpanel > summary{
  cursor:pointer; min-height:3rem; padding:.65rem .8rem; display:flex;
  align-items:center; justify-content:space-between; gap:1rem;
  font-weight:750; color:var(--jas-ink, #25231f); background:rgba(247,243,234,.72);
}
html[data-tenant="carta"] .jas-rd-fbpanel[open] > summary{ border-bottom:1px solid rgba(83,72,55,.16); }
html[data-tenant="carta"] .jas-rd-fbcount{
  flex:none; font-size:.76rem; font-weight:750; color:#625d54; white-space:nowrap;
}
html[data-tenant="carta"] .jas-rd-fbpanelbody{ padding:.1rem .8rem .75rem; }
html[data-tenant="carta"] .jas-rd-fbsection{ margin-top:.55rem; }
html[data-tenant="carta"] .jas-rd-fbgroup{
  margin:.65rem 0 0; border-top:1px solid rgba(83,72,55,.18); padding-top:.35rem;
}
html[data-tenant="carta"] .jas-rd-fbgroup > summary{
  cursor:pointer; font-weight:700; color:var(--jas-ink, #25231f); min-height:2.75rem;
  display:flex; align-items:center;
}
html[data-tenant="carta"] .jas-rd-fbpanel > summary:focus-visible,
html[data-tenant="carta"] .jas-rd-fbgroup > summary:focus-visible{
  outline:3px solid rgba(31,86,144,.42); outline-offset:-3px; border-radius:.35rem;
}
html[data-tenant="carta"] .jas-rd-fbstate{ font-weight:700; color:#4d5145; }
html[data-tenant="carta"] .jas-rd-fb-resolved{ border-left-color:#6e8264; }
html[data-tenant="carta"] .jas-rd-fb-reopened{ border-left-color:#b56b3f; }
html[data-tenant="carta"] .jas-rd-fb-archived{ opacity:.82; }

@media (max-width: 760px){
  html[data-tenant="carta"] .jas-rd-fbpanel > summary{ align-items:flex-start; gap:.45rem; }
  html[data-tenant="carta"] .jas-rd-fbpanelbody{ padding-inline:.65rem; }
}

@media (max-width: 1100px){
  html[data-tenant="carta"] .jas-rd-review-row{ grid-template-columns:minmax(0,1fr) minmax(20rem,1.25fr); }
  html[data-tenant="carta"] .jas-rd-review-open{ grid-column:1 / -1; flex-direction:row; align-items:center; justify-content:space-between; }
}
@media (max-width: 760px){
  html[data-tenant="carta"] .jas-rd-review-summary{ flex-direction:column; }
  html[data-tenant="carta"] .jas-rd-review-listhead,
  html[data-tenant="carta"] .jas-rd-review-row{ grid-template-columns:1fr; gap:1rem; }
  html[data-tenant="carta"] .jas-rd-review-facts{ grid-template-columns:1fr 1fr; }
  html[data-tenant="carta"] .jas-rd-review-open{ grid-column:auto; flex-direction:column; align-items:stretch; }
  html[data-tenant="carta"] .jas-rd-review-open .jas-btn{ width:100%; text-align:center; }
}

/* Proposal Companion Writing Focus Foundation -------------------------- */
#jasShell{
  --jas-sidebar-current:var(--jas-sidebar);
}
#jasShell.sidebar-collapsed,
#jasShell.jas-rd-focus{
  --jas-sidebar-current:72px;
}
#jasShell .jas-sidebar{
  width:var(--jas-sidebar-current);
  overflow-y:auto;
  overflow-x:hidden;
  transition:width .2s ease, transform .22s ease;
}
#jasShell .jas-main{
  padding-left:calc(var(--jas-sidebar-current) + 30px);
  transition:padding-left .2s ease;
}
#jasShell .jas-sidebar-toggle{
  display:flex; align-items:center; gap:10px; width:calc(100% - 24px); min-height:42px;
  margin:12px; padding:8px 10px; border:1px solid rgba(255,255,255,.18); border-radius:10px;
  background:rgba(255,255,255,.06); color:var(--jas-ivory); cursor:pointer; font:inherit;
}
#jasShell .jas-sidebar-toggle:hover{ background:rgba(255,255,255,.11); }
#jasShell .jas-sidebar-toggle-icon{ flex:none; width:22px; font-size:22px; line-height:1; text-align:center; }
#jasShell .jas-sidebar-toggle-label{ font-size:12px; font-weight:750; white-space:nowrap; }
#jasShell .jas-nav-link{ position:relative; display:flex; align-items:center; gap:10px; }
#jasShell .jas-nav-symbol{ display:inline-grid; flex:none; place-items:center; width:24px; min-height:24px; }
#jasShell .jas-nav-symbol svg{ width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
#jasShell .jas-nav-label{ min-width:0; line-height:1.35; overflow-wrap:break-word; }
#jasShell .jas-nav-group{ margin-top:20px; line-height:1.4; }
#jasShell #jasNav > .jas-nav-group:first-child{ margin-top:8px; }
#jasShell.sidebar-collapsed .jas-sidebar-toggle{ justify-content:center; width:100%; margin-inline:0; }
#jasShell.sidebar-collapsed .jas-sidebar-toggle-label,
#jasShell.sidebar-collapsed .jas-nav-label,
#jasShell.sidebar-collapsed .jas-nav-group,
#jasShell.sidebar-collapsed .jas-sidebar-foot > span:last-child{ display:none; }
#jasShell.sidebar-collapsed .jas-nav-link{ justify-content:center; min-height:44px; padding-inline:10px; }
#jasShell.sidebar-collapsed .jas-nav-link::after{
  content:attr(data-nav-label); position:fixed; z-index:120; left:82px; top:auto;
  transform:translate(4px,0); padding:7px 9px; border-radius:8px; background:var(--jas-ink); color:var(--jas-ivory);
  box-shadow:0 7px 20px rgba(24,29,31,.24); font-size:12px; font-weight:700; line-height:1.2; white-space:nowrap;
  opacity:0; pointer-events:none; transition:opacity .12s ease, transform .12s ease;
}
#jasShell.sidebar-collapsed .jas-nav-link:is(:hover,:focus-visible)::after{ opacity:1; transform:translate(0,0); }
#jasShell.sidebar-collapsed .jas-sidebar-foot{ justify-content:center; padding-inline:8px; }
#jasShell .jas-nav-scrim{ display:none; }

#jasShell :is(.jas-sidebar-toggle,.jas-nav-link,.jas-identity-menu>summary,.jas-rd-tool,.jas-rd-toolmenu>summary,.jas-rd-field-actions>summary,.jas-rd-context-close,.jas-rd-project-reflect,.jas-rd-support-pin,.jas-rd-support-choice):focus-visible{
  outline:3px solid var(--jas-gold); outline-offset:2px;
}

#jasShell .jas-rd-page{ position:relative; max-width:none; }
#jasShell .jas-rd-workhead{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  max-width:1120px; margin:0 auto 10px;
}
#jasShell .jas-rd-worktitle{ min-width:0; flex:1; }
#jasShell .jas-rd-workhead .jas-eyebrow{ margin-bottom:3px; }
#jasShell .jas-rd-workhead h1:not(.sr-only){
  display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2;
  margin:0; max-width:42ch; font-size:clamp(1.15rem,1.65vw,1.5rem); line-height:1.22;
}
#jasShell .jas-rd-progress{ margin:4px 0 0; color:var(--jas-muted); font-size:12.5px; }
#jasShell .jas-rd-worktools{ display:flex; align-items:center; flex:none; flex-wrap:wrap; justify-content:flex-end; gap:8px; max-width:100%; }
#jasShell .jas-rd-tool{
  min-height:44px; padding:8px 11px; border-color:var(--jas-line-2); background:var(--jas-paper); color:var(--jas-ink); white-space:nowrap;
  font-size:12.5px;
}
#jasShell .jas-rd-tool.active,
#jasShell .jas-rd-tool[aria-pressed="true"]{ border-color:var(--jas-gold); background:var(--jas-gold-soft); }
#jasShell .jas-rd-toolmenu{ position:relative; }
#jasShell .jas-rd-toolmenu>summary{ display:flex; align-items:center; list-style:none; cursor:pointer; }
#jasShell .jas-rd-toolmenu>summary::-webkit-details-marker{ display:none; }
#jasShell .jas-rd-toolmenu-pop{
  position:absolute; z-index:130; top:calc(100% + 6px); right:0; display:grid; gap:5px; min-width:220px;
  padding:7px; border:1px solid var(--jas-line); border-radius:10px; background:var(--jas-paper);
  box-shadow:0 14px 34px rgba(34,31,26,.16);
}
#jasShell .jas-rd-toolmenu-pop .jas-rd-tool{ width:100%; justify-content:flex-start; text-align:left; }
#jasShell .jas-rd-info{
  max-width:1120px; margin:0 auto 18px; padding:16px 18px; border:1px solid var(--jas-line);
  border-radius:12px; background:var(--jas-ivory);
}
#jasShell .jas-rd-info[hidden]{ display:none; }
#jasShell .jas-rd-sources{margin:16px 0;padding:18px;border:1px solid var(--jas-line,#d9e2e7);border-radius:12px;background:var(--jas-paper,#fff);min-width:0;overflow-wrap:anywhere}
#jasShell .jas-rd-sources>header{display:flex;align-items:center;justify-content:space-between;gap:12px}
#jasShell .jas-rd-sources h2{margin:0;font-size:18px}
#jasShell .jas-rd-sources h3{font-size:16px;margin:18px 0 10px}
#jasShell .jas-rd-sources :is(button,summary){min-height:44px}
#jasShell .jas-rd-sources :is(button,summary,a,input,textarea,select):focus-visible{outline:3px solid var(--jas-accent,#176d74);outline-offset:3px}
#jasShell .jas-rd-source-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#jasShell .jas-rd-source-card{padding:12px;border:1px solid var(--jas-line,#d9e2e7);border-radius:8px;min-width:0;align-self:start}
#jasShell .jas-rd-source-card summary{cursor:pointer}
#jasShell .jas-rd-source-card summary span{display:block;font-size:13px;color:var(--jas-muted,#546773);margin-top:6px}
#jasShell .jas-rd-source-card :is(form,label){display:grid;gap:8px;margin:12px 0;min-width:0}
#jasShell .jas-rd-source-card .jas-field{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
#jasShell .jas-rd-source-card textarea{resize:vertical;min-height:88px}
#jasShell .jas-rd-source-card form button{justify-self:start}
#jasShell .jas-rd-source-links{list-style:none;padding:0}
#jasShell .jas-rd-source-links li{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:6px 0}
#jasShell .jas-rd-source-provider{margin-top:16px;padding-top:12px;border-top:1px solid var(--jas-line,#d9e2e7)}
#jasShell .jas-rd-source-provider summary{cursor:pointer;font-weight:600}
#jasShell .jas-rd-source-provider ul{padding-left:20px}
#jasShell .jas-rd-source-provider li{margin:10px 0}
#jasShell .jas-rd-source-provider li span{display:block}
@media(max-width:760px){#jasShell .jas-rd-sources{padding:14px}#jasShell .jas-rd-source-list{grid-template-columns:minmax(0,1fr)}}

/* Temporary, non-modal reading-query panel. Writing/autosave stays independent. */
#jasShell .jas-rd-find-sources{margin:16px 0 0;padding:16px;max-height:80vh;overflow:auto;min-width:0;max-width:100%;overflow-wrap:anywhere;border:1px solid var(--jas-line);border-radius:12px;background:var(--jas-paper)}
#jasShell .jas-rd-find-sources>header{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:-16px;background:var(--jas-paper);z-index:1;padding:8px 0}
#jasShell .jas-rd-find-sources h3{margin:0;font-size:18px}
#jasShell .jas-rd-find-sources p{font-size:13px;line-height:1.6}
#jasShell .jas-rd-find-sources label{display:block;font-size:13px;font-weight:700;margin:10px 0 6px}
#jasShell .jas-rd-find-sources .jas-field{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
#jasShell .jas-rd-find-sources textarea{resize:vertical;min-height:96px}
#jasShell .jas-rd-find-actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}
#jasShell .jas-rd-find-sources button{min-height:44px;white-space:normal;overflow-wrap:anywhere}
#jasShell .jas-rd-find-sources .jas-icon-btn{min-width:44px}
#jasShell .jas-rd-find-sources button:disabled{opacity:.6;cursor:not-allowed}
#jasShell .jas-rd-find-sources :is(button,input,textarea,select):focus-visible{outline:3px solid var(--jas-accent,#176d74);outline-offset:3px}
#jasShell .jas-rd-find-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#jasShell .jas-rd-find-results article{min-width:0;padding:12px;border:1px solid var(--jas-line);border-radius:8px}
#jasShell .jas-rd-find-results h4{margin:0;line-height:1.5}
#jasShell .jas-rd-find-results button{margin:4px 6px 4px 0}
@media(max-width:760px){#jasShell .jas-rd-find-sources{padding:12px}#jasShell .jas-rd-find-sources>header{top:-12px}#jasShell .jas-rd-find-results{grid-template-columns:minmax(0,1fr)}#jasShell .jas-rd-find-actions{flex-direction:column}#jasShell .jas-rd-find-actions button{width:100%}}
#jasShell .jas-rd-info-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
#jasShell .jas-rd-info-head h2{ margin:0; font-size:16px; color:var(--jas-ink); }
#jasShell .jas-rd-info-close{ flex:none; cursor:pointer; }
#jasShell .jas-rd-info-row{ display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px 20px; margin-top:8px; }
#jasShell .jas-rd-info-row .jas-rd-intro{ margin:0; max-width:none; }
#jasShell .jas-rd-info-row .jas-rd-file-actions{ margin:0; }
#jasShell .jas-rd-export-status{ max-width:1120px; margin:0 auto 12px; color:var(--jas-muted); font-size:13px; }
#jasShell .jas-rd-info .jas-rd-development{ margin-top:16px; }
#jasShell .jas-rd-info .jas-rd-development-head{ grid-template-columns:1fr; gap:10px; align-items:start; }
#jasShell .jas-rd-info .jas-rd-development-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
#jasShell .jas-rd-info .jas-rd-development-domain:last-child{ grid-column:auto; }
#jasShell .jas-rd-intro{ max-width:72ch; }

#jasShell .jas-rd{
  display:grid; grid-template-columns:minmax(180px,214px) minmax(0,760px);
  justify-content:center; gap:24px; align-items:start; margin-top:14px;
}
#jasShell .jas-rd-main{ width:100%; max-width:760px; }
#jasShell .jas-rd-nav{ width:100%; max-height:calc(100vh - var(--jas-topbar) - 32px); overflow:auto; overscroll-behavior:contain; }
#jasShell .rd-structure-collapsed .jas-rd{ grid-template-columns:minmax(0,920px); }
#jasShell .rd-structure-collapsed .jas-rd-main{ max-width:920px; }
#jasShell .rd-structure-collapsed .jas-rd-nav{ display:none; }
#jasShell .rd-focus-mode .jas-rd{ grid-template-columns:minmax(0,920px); }
#jasShell .rd-focus-mode .jas-rd-main{ max-width:920px; }
#jasShell .rd-focus-mode .jas-rd-workhead{ max-width:1120px; }
#jasShell .rd-focus-mode .jas-rd-worktools > :not(.jas-rd-focus-toggle){ display:none; }
#jasShell .rd-focus-mode .jas-rd-info{ display:none; }
#jasShell .rd-focus-mode .jas-rd-support-pin{ display:none; }

/* R4 keeps the surrounding canvas generous while retaining an academic
   long-form measure. Short, select and title controls keep their existing
   template-driven widths. */
#jasShell .jas-rd-field textarea.jas-field{ max-width:78ch; font-size:16px; line-height:1.75; padding:14px 16px; }
#jasShell .jas-rd-fhead h3{ margin:0; font-size:17px; line-height:1.4; }
#jasShell .jas-rd-fhead label{ font-size:inherit; }
#jasShell .jas-rd-help{ max-width:78ch; line-height:1.65; margin:8px 0 14px; }
#jasShell .jas-rd-field{ padding-top:28px; padding-bottom:18px; scroll-margin-top:calc(var(--jas-topbar) + 16px); }
#jasShell .jas-rd-sechead strong{ text-transform:none; letter-spacing:0; font-size:14px; }
#jasShell .jas-rd-fldl{ min-height:44px; padding-block:8px; }
#jasShell .jas-rd-page :is(a,button,summary,select,textarea,input):focus-visible{ outline:3px solid var(--jas-ink,#231f20); outline-offset:3px; }
#jasShell .jas-rd-page .jas-rd-workhead :is(button,summary):focus-visible,
#jasShell .jas-rd-page .jas-rd-field-actions>summary:focus-visible{ outline:3px solid var(--jas-ink,#231f20); outline-offset:3px; }
#jasShell .jas-rd-page .jas-rd-actions{ flex-wrap:wrap; gap:4px; }
#jasShell .jas-rd-page .jas-rd-actions .jas-btn{ min-height:44px; }
#jasShell .jas-rd-history-region{ margin-top:12px; padding:14px; border:1px solid var(--jas-line); border-radius:10px; }
#jasShell .jas-rd-history-region h4{ margin:0 0 8px; }
#jasShell .jas-rd-history-note{ font-size:13px; line-height:1.5; color:var(--jas-muted); }
#jasShell .jas-rd-revision-text summary{ min-height:44px; padding:10px 0; cursor:pointer; }
#jasShell .jas-rd-vbody{ white-space:pre-wrap; overflow-wrap:anywhere; }
#jasShell .jas-rd-context-feedback .jas-rd-fbcard{ border-left:3px solid var(--jas-brown); background:var(--jas-ivory); }
#jasShell .jas-rd-reflcompose{ border-left:3px solid var(--jas-line-2); padding-left:12px; }

/* Continuously discoverable support without a permanent support column. */
#jasShell .jas-rd-support-pin{
  position:fixed; z-index:118; top:46%; right:0; min-height:92px; padding:13px 8px;
  border:1px solid var(--jas-line-2); border-right:0; border-radius:12px 0 0 12px;
  background:var(--jas-paper); color:var(--jas-ink); box-shadow:0 8px 22px rgba(34,31,26,.12);
  cursor:pointer; font:inherit; font-size:12px; font-weight:800; letter-spacing:.04em;
  writing-mode:vertical-rl; transform:translateY(-50%);
}
#jasShell .jas-rd-support-pin:hover,
#jasShell .jas-rd-support-pin[aria-expanded="true"]{ border-color:var(--jas-gold); background:var(--jas-gold-soft); }

#jasShell .jas-rd-side{
  position:fixed; z-index:125; top:var(--rd-context-top,calc(var(--jas-topbar) + 12px)); right:12px; bottom:12px;
  display:block; width:min(380px,calc(100vw - 32px)); max-height:none; overflow:auto;
  padding:18px; border:1px solid var(--jas-line); border-radius:14px; background:var(--jas-paper);
  box-shadow:0 22px 64px rgba(34,31,26,.22);
}
#jasShell .jas-rd-side[hidden]{ display:none; }
#jasShell .jas-rd-context-head{ position:sticky; top:-18px; z-index:2; background:var(--jas-paper); display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:18px 0 14px; margin-top:-18px; border-bottom:1px solid var(--jas-line); }
#jasShell .jas-rd-context-head h2{ margin:.15rem 0 .3rem; font-size:1.35rem; }
#jasShell .jas-rd-context-head p:last-child{ margin:0; color:var(--jas-muted); font-size:13px; line-height:1.45; }
#jasShell .jas-rd-context-close{ display:grid; flex:none; color:var(--jas-ink); background:var(--jas-ivory); border:1px solid var(--jas-line); }
#jasShell .jas-rd-supfor{ margin:14px 0 10px; }
#jasShell .jas-rd-support-choices{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin:0 0 14px; }
#jasShell .jas-rd-support-choice{ min-height:44px; padding:8px; border-color:var(--jas-line-2); background:var(--jas-ivory); color:var(--jas-ink); font-size:12px; line-height:1.4; white-space:normal; text-align:center; min-width:0; }
#jasShell .jas-rd-support-choice.active{ border-color:var(--jas-gold); background:var(--jas-gold-soft); }
#jasShell .jas-rd-support-choice.is-suggested{ font-weight:800; border-color:var(--jas-ochre); }
#jasShell .jas-rd-orientation{ max-width:78ch; margin:12px auto 18px; font-size:14px; line-height:1.65; color:var(--jas-muted); }
#jasShell .jas-rd-meta,#jasShell .jas-rd-savestate{ font-size:13px; line-height:1.5; }
#jasShell .jas-rd-band{ font-size:12px; }
#jasShell .jas-rd-human-support{ margin-top:18px; padding-top:12px; border-top:1px solid var(--jas-line); }
#jasShell .jas-rd-human-support p{ font-size:13px; line-height:1.55; color:var(--jas-muted); }
#jasShell .jas-rd-reasonnote{ margin:0 0 10px; color:var(--jas-muted); font-size:13px; line-height:1.5; }
#jasShell .jas-rd-more-connections,#jasShell .jas-rd-missing-connections{ margin:14px 0; }
#jasShell .jas-rd-more-connections>summary,#jasShell .jas-rd-missing-connections>summary{ min-height:44px; padding:10px 0; cursor:pointer; font-weight:650; }
#jasShell .jas-rd-secsheet-scrim{ z-index:130; }
#jasShell .jas-rd-secsheet{ z-index:131; }
#jasShell .jas-rd-context-body{ min-width:0; overflow-wrap:anywhere; }
#jasShell .jas-rd-context-body:focus-visible{ outline:2px solid var(--jas-ink,#231f20); outline-offset:3px; }
#jasShell .jas-rd-side .jas-rd-response-heading{ margin:12px 0 6px; color:var(--jas-ink); font-size:14px; line-height:1.45; font-weight:700; letter-spacing:0; text-transform:none; }
#jasShell .jas-rd-context-close{ flex-shrink:0; }
#jasShell .jas-rd-support-overview{ margin:0; color:var(--jas-muted); font-size:13px; line-height:1.55; }
#jasShell .jas-rd-context-body{ display:grid; gap:12px; }
#jasShell .jas-rd-side details.jas-rd-reasongroup{ margin:12px 0; padding:0; border:1px solid var(--jas-line); border-radius:10px; overflow:hidden; }
#jasShell .jas-rd-reasongroup>summary{ padding:12px; min-height:44px; cursor:pointer; background:var(--jas-ivory); font-size:14px; line-height:1.5; }
#jasShell .jas-rd-reasongroup>summary strong{ display:block; margin-top:4px; }
#jasShell .jas-rd-connection-label{ font-size:12px; color:var(--jas-muted); }
#jasShell .jas-rd-connection-body{ padding:0 12px 12px; }
#jasShell .jas-rd-side .jas-rd-reasonprompts li,#jasShell .jas-rd-side .jas-rd-gconsider li{ margin:8px 0; line-height:1.65; }
#jasShell .jas-rd-side .jas-rd-reasonexpl{ font-weight:400; line-height:1.6; }
#jasShell .jas-rd-side .jas-rd-support,
#jasShell .jas-rd-side .jas-rd-reason{
  padding:0; border:0; border-radius:0; background:transparent;
}
#jasShell .jas-rd-side .jas-rd-support + .jas-rd-support{ padding-top:12px; border-top:1px solid var(--jas-line); }
#jasShell .jas-rd-support-empty{ color:var(--jas-muted); font-size:13px; }
#jasShell .jas-rd-support-empty p{ margin:.25rem 0 .8rem; }

#jasShell .jas-rd-field-actions{ position:relative; flex:none; }
#jasShell .jas-rd-field-actions>summary{
  width:auto; min-height:44px; display:flex; align-items:center; justify-content:center; padding:6px 10px;
  border:1px solid transparent; border-radius:8px; cursor:pointer; color:var(--jas-muted);
  font-size:12px; font-weight:650; letter-spacing:0; list-style:none;
}
#jasShell .jas-rd-field-actions>summary:hover{ border-color:var(--jas-line); background:var(--jas-ivory); color:var(--jas-ochre); }
#jasShell .jas-rd-field-actions>summary::-webkit-details-marker{ display:none; }
#jasShell .jas-rd-field-actions[open]{ flex-basis:100%; }
#jasShell .jas-rd-field-actions[open]>summary{ width:max-content; margin-left:auto; }
#jasShell .jas-rd-field-menu{
  display:grid; gap:3px; width:min(280px,calc(100vw - 48px)); margin:8px 0 0 auto; padding:8px;
  border:1px solid var(--jas-line); border-radius:10px; background:var(--jas-paper); box-shadow:0 12px 30px rgba(34,31,26,.13);
}
#jasShell .jas-rd-field-actions:not([open])>.jas-rd-field-menu{ display:none; }
#jasShell .jas-rd-field-menu .jas-btn{ width:100%; justify-content:flex-start; min-height:38px; padding:6px 9px; text-align:left; }
#jasShell .jas-rd-field-menuhead{
  margin:4px 9px 2px; color:var(--jas-muted); font-size:10.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
}
#jasShell .jas-rd-field-menuhead:not(:first-child){ margin-top:9px; padding-top:8px; border-top:1px solid var(--jas-line); }
#jasShell .jas-rd-field-actions .jas-rd-rel{ margin-top:8px; }
#jasShell .jas-rd-rel{
  margin:10px 0 0; padding:10px 12px; border-left:3px solid var(--jas-line-2); background:var(--jas-ivory);
  color:var(--jas-muted); font-size:12px; line-height:1.5;
}
#jasShell .jas-rd-rel p{ margin:4px 0 0; }
#jasShell .jas-rd-project-reflect{
  display:block; min-height:42px; margin:24px auto 0; border-color:var(--jas-line-2); background:transparent; color:var(--jas-ochre);
}

#jasShell .jas-rd-secrev{
  display:flex; flex-wrap:wrap; align-items:center; gap:7px 14px; margin:22px 0 6px; padding:10px 0;
  border:0; border-top:1px solid var(--jas-line); border-radius:0; background:transparent;
}
#jasShell .jas-rd-secrev-open{ padding-inline:0; }
#jasShell .jas-rd-secrevstate{ margin:0; }
#jasShell .jas-rd-secrev-coh{ flex-basis:100%; margin-top:2px; padding-top:7px; }
#jasShell .jas-rd-info .jas-rd-projcollab{ margin-top:18px; }

/* At genuinely wide desktop the temporary panel can sit beside a still-
   comfortable editor. Laptop widths use the existing overlay drawer and
   reclaim the full editor width immediately on close. */
@media (min-width:1380px){
  #jasShell .rd-support-open .jas-rd{
    grid-template-columns:minmax(0,760px) minmax(300px,340px);
    max-width:1124px; margin-inline:auto;
  }
  #jasShell .rd-support-open .jas-rd-main{ max-width:760px; }
  #jasShell .rd-support-open .jas-rd-side{
    position:sticky; grid-column:2; grid-row:1; top:calc(var(--jas-topbar) + 12px); right:auto; bottom:auto;
    width:100%; max-height:calc(100vh - var(--jas-topbar) - 24px);
  }
  #jasShell .rd-support-open:not(.rd-structure-collapsed) .jas-rd{
    grid-template-columns:minmax(180px,214px) minmax(0,760px) minmax(300px,340px); max-width:1362px;
  }
  #jasShell .rd-support-open:not(.rd-structure-collapsed) .jas-rd-main{ grid-column:2; grid-row:1; }
  #jasShell .rd-support-open:not(.rd-structure-collapsed) .jas-rd-side{ grid-column:3; }
}

@media (min-width:1101px) and (max-width:1379px){
  #jasShell .rd-support-open .jas-rd{
    grid-template-columns:minmax(0,760px); justify-content:start;
    max-width:1120px; margin-inline:auto;
  }
  #jasShell .rd-support-open .jas-rd-main{ max-width:760px; }
  #jasShell .rd-support-open:not(.rd-structure-collapsed) .jas-rd{ grid-template-columns:minmax(180px,214px) minmax(0,760px); }
}

@media (max-width:1320px) and (min-width:1021px){
  #jasShell:not(.sidebar-collapsed){ --jas-sidebar-current:var(--jas-sidebar); }
}

@media (max-width:1100px){
  #jasShell .jas-rd,
  #jasShell .rd-structure-collapsed .jas-rd,
  #jasShell .rd-focus-mode .jas-rd{ grid-template-columns:minmax(0,920px); }
  #jasShell .jas-rd-main,
  #jasShell .rd-structure-collapsed .jas-rd-main,
  #jasShell .rd-focus-mode .jas-rd-main{ max-width:920px; }
  #jasShell .jas-rd-nav{ display:none; }
  #jasShell .jas-rd-mobilenav{ display:grid; grid-template-columns:1fr; gap:10px; max-width:920px; margin:14px auto 0; }
  #jasShell .jas-rd-mobilenav label{ font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--jas-muted); }
  #jasShell .jas-rd-mobilenav select{ width:100%; margin-top:4px; min-height:44px; }
  #jasShell .jas-rd-workhead{ align-items:flex-start; flex-direction:column; gap:14px; }
  #jasShell .jas-rd-worktitle{ width:100%; max-width:100%; }
  #jasShell .jas-rd-worktools{ justify-content:flex-start; max-width:none; }
  #jasShell .jas-rd-worktools [data-rd-structure-toggle]{ display:none; }
}

@media (max-width:1020px){
  #jasShell .jas-icon-btn#jasMenuToggle{ display:grid; }
  #jasShell .jas-sidebar,
  #jasShell.sidebar-collapsed .jas-sidebar{
    width:min(320px,86vw); transform:translateX(-105%); visibility:hidden; z-index:110; box-shadow:18px 0 50px rgba(0,0,0,.22);
  }
  #jasShell.nav-open .jas-sidebar{ transform:translateX(0); visibility:visible; }
  #jasShell .jas-sidebar-toggle{ display:none; }
  #jasShell.sidebar-collapsed .jas-nav-label,
  #jasShell.sidebar-collapsed .jas-nav-group,
  #jasShell.sidebar-collapsed .jas-sidebar-foot > span:last-child{ display:initial; }
  #jasShell.sidebar-collapsed .jas-nav-link{ justify-content:flex-start; padding-inline:16px; }
  #jasShell.sidebar-collapsed .jas-nav-link::after{ display:none; }
  #jasShell.sidebar-collapsed .jas-sidebar-foot{ justify-content:flex-start; padding-inline:12px; }
  #jasShell .jas-main{ padding:calc(var(--jas-topbar) + 20px) 16px 32px; }
  #jasShell .jas-nav-scrim{
    position:fixed; z-index:109; inset:var(--jas-topbar) 0 0; border:0; background:rgba(22,20,17,.42);
  }
  #jasShell.nav-open .jas-nav-scrim{ display:block; }
}

/* JAS II programme-surface responsive closure. The later Thesis/Proposal
   workspace rules below remain authoritative for their own three-pane UI. */
@media (max-width:1120px){
  #jasShell .jas-home-grid{ grid-template-columns:1fr; }
}

@media (max-width:980px){
  #jasShell .jas-programme-hero,#jasShell .jas-operations-hero{ grid-template-columns:1fr; }
  #jasShell .jas-home-grid{ grid-template-columns:1fr; }
  #jasShell .jas-overview-actions{ grid-template-columns:1fr; }
}

@media (max-width:700px){
  #jasShell .jas-topbar{ padding-inline:12px; gap:10px; }
  #jasShell .jas-brand img{ width:96px; height:38px; }
  #jasShell .jas-brand strong{ font-size:13px; }
  #jasShell .jas-brand small,#jasShell .jas-id-copy{ display:none; }
  #jasShell .jas-programme-hero{ padding:24px 20px; border-radius:18px; }
  #jasShell .jas-programme-hero h2{ max-width:none; font-size:30px; }
  #jasShell .jas-section-heading{ align-items:flex-start; flex-direction:column; gap:6px; }
  #jasShell .jas-timetable-toolbar{ top:calc(var(--jas-topbar) + 4px); margin-inline:-4px; padding:9px; }
  #jasShell .jas-filters{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  #jasShell .jas-filters label,#jasShell .jas-filters select{ width:100%; min-width:0; }
  #jasShell .jas-session-toggle{ padding:15px 16px; }
  #jasShell .jas-session-open-label{ position:static; display:block; margin-top:9px; }
}

@media (max-width:420px){
  #jasShell .jas-main{ padding-inline:12px; }
  #jasShell .jas-page > h1{ font-size:30px; }
  #jasShell .jas-programme-hero{ margin-inline:-2px; }
  #jasShell .jas-programme-progress{ padding:14px; }
  #jasShell .jas-card{ padding:18px; }
  #jasShell .jas-supporter{ gap:8px; }
  #jasShell .jas-supporter-contexts .jas-chip{ font-size:11px; }
  #jasShell .jas-support-privacy{ margin-inline:-2px; }
  #jasShell .jas-filters{ grid-template-columns:1fr; }
  #jasShell .jas-week-tab{ padding-inline:13px; }
}

@media (max-width:760px){
  #jasShell .jas-rd-workhead h1{ max-width:none; }
  #jasShell .jas-rd-worktools{ width:100%; }
  #jasShell .jas-rd-toolmenu-pop{ right:auto; left:0; max-width:calc(100vw - 32px); }
  #jasShell .jas-rd-info{ padding:14px; }
  #jasShell .jas-rd-info-row{ grid-template-columns:1fr; }
  #jasShell .jas-rd-info .jas-rd-development-grid{ grid-template-columns:1fr; }
  #jasShell .jas-rd-side{ inset:var(--jas-topbar) 0 0; width:100%; border-radius:0; }
  #jasShell .jas-rd-support-pin{
    top:auto; right:16px; bottom:14px; min-height:44px; padding:10px 15px; border-right:1px solid var(--jas-line-2);
    border-radius:999px; writing-mode:horizontal-tb; transform:none;
  }
  #jasShell .jas-rd-main{ padding:18px 16px; }
  #jasShell .jas-rd-foot{ align-items:flex-start; }
  #jasShell .jas-rd-field-actions>summary{ width:auto; min-height:44px; }
  #jasShell .jas-rd-field-actions[open]>summary{ width:max-content; }
  #jasShell .jas-rd-field-menu .jas-btn{ min-height:44px; }
}
#jasShell .jas-rd-project-switcher{position:relative;width:100%;max-width:100%;margin:.28rem 0 .4rem}
#jasShell .jas-rd-project-switcher>summary{display:flex;align-items:center;gap:.5rem;width:100%;min-height:44px;max-width:100%;padding:.35rem .6rem;border:1px solid var(--jas-line,#d8dfe5);border-radius:.5rem;background:#fff;cursor:pointer;list-style:none}
#jasShell .jas-rd-project-switcher>summary::-webkit-details-marker{display:none}
#jasShell .jas-rd-project-switcher>summary span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
#jasShell .jas-rd-project-switcher>summary small{flex:none;padding:.12rem .42rem;border-radius:999px;background:var(--jas-soft,#edf4f7);color:var(--jas-muted);font-size:11px;font-weight:600}
#jasShell .jas-rd-project-menu{position:absolute;z-index:45;top:calc(100% + .35rem);left:0;width:min(25rem,calc(100vw - 2rem));padding:.4rem;border:1px solid var(--jas-line,#d8dfe5);border-radius:.65rem;background:#fff;box-shadow:0 .7rem 2rem rgba(20,40,58,.16)}
#jasShell .jas-rd-project-menu button{display:flex;width:100%;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.62rem;border:0;border-radius:.4rem;background:transparent;color:inherit;text-align:left;cursor:pointer}
#jasShell .jas-rd-project-menu button:hover,#jasShell .jas-rd-project-menu button:focus-visible{background:var(--jas-soft,#edf4f7)}
#jasShell .jas-rd-project-menu button[aria-current=true]{box-shadow:inset 3px 0 var(--jas-accent,#236b77)}
#jasShell .jas-rd-project-menu button span{min-width:0;overflow-wrap:anywhere;font-weight:700}
#jasShell .jas-rd-project-menu button small{flex:none}
#jasShell .jas-rd-project-menu hr{border:0;border-top:1px solid var(--jas-line,#d8dfe5);margin:.3rem}
#jasShell .jas-rd-primary-note{margin:.45rem .65rem;color:var(--jas-muted,#52616b);font-size:.82rem;font-weight:700}
#jasShell .jas-rd-danger{color:#8c2f25;border-color:#cda49f}
#jasShell .jas-rd-project-overlay{position:fixed;z-index:120;inset:0;display:grid;place-items:center;padding:1rem;background:rgba(8,25,38,.48)}
#jasShell .jas-rd-project-dialog{width:min(38rem,100%);max-height:min(80vh,44rem);overflow:auto;padding:1.2rem;border-radius:.75rem;background:#fff;box-shadow:0 1.2rem 3rem rgba(8,25,38,.28)}
#jasShell .jas-rd-project-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}
#jasShell .jas-rd-project-dialog h2,#jasShell .jas-rd-project-dialog h3{margin-top:0}
#jasShell .jas-rd-archived-list{display:grid;gap:.65rem}
#jasShell .jas-rd-archived-list article{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem;border:1px solid var(--jas-line,#d8dfe5);border-radius:.55rem}
#jasShell .jas-rd-archived-list article p{margin:0;color:var(--jas-muted,#52616b)}
#jasShell .jas-rd-archived-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}
#jasShell .jas-rd-archive-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-left:3px solid var(--jas-amber,#d79b29)}
#jasShell .jas-rd-archive-banner p{margin:.25rem 0 0}
#jasShell .jas-rd-confirm>div{display:flex;justify-content:flex-end;gap:.55rem;margin-top:1rem}
#jasShell .jas-rd-settings-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin-top:1rem}

@media (max-width:760px){
  #jasShell .jas-rd-project-switcher>summary{width:100%;justify-content:space-between}
  #jasShell .jas-rd-project-menu{position:fixed;z-index:130;left:1rem;right:1rem;top:auto;bottom:1rem;width:auto;max-height:70vh;overflow:auto}
  #jasShell .jas-rd-archived-list article{align-items:flex-start;flex-direction:column}
  #jasShell .jas-rd-archived-actions{width:100%}
  #jasShell .jas-rd-archived-list article .jas-btn{flex:1 1 9rem}
  #jasShell .jas-rd-archive-banner{align-items:flex-start;flex-direction:column}
  #jasShell .jas-rd-archive-banner .jas-btn{width:100%}
}
/* RDW Thesis T3 — optional standards and Fellow-owned concept-map sheets. */
.jas-thesis-development-sheet{position:fixed;inset:clamp(1rem,4vw,3rem);z-index:80;background:var(--surface,#fff);border:1px solid var(--border,#d7dde5);border-radius:1rem;box-shadow:0 1.5rem 4rem rgba(15,23,42,.18);display:flex;flex-direction:column;overflow:hidden}
.jas-thesis-development-head{display:flex;justify-content:space-between;gap:2rem;align-items:flex-start;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border,#d7dde5)}
.jas-thesis-development-head h2{margin:.15rem 0}.jas-thesis-development-head p{max-width:52rem;margin:.35rem 0 0}
.jas-thesis-development-content{overflow:auto;padding:1.5rem;display:grid;gap:1.25rem;grid-template-columns:repeat(2,minmax(0,1fr))}
.jas-thesis-development-content>section,.jas-thesis-study-card,.jas-thesis-development-manage{border:1px solid var(--border,#d7dde5);border-radius:.75rem;padding:1rem;background:#fff}
.jas-thesis-development-content form{display:grid;gap:.75rem}.jas-thesis-development-content label{display:grid;gap:.3rem}
.jas-thesis-study-card ul,.jas-thesis-concept-relations{padding-left:1.2rem}.jas-thesis-study-card li span{display:block;color:var(--muted,#64748b)}
.jas-thesis-framework-review{display:grid;gap:.75rem}.jas-thesis-framework-review>section{border-top:1px solid var(--border,#d7dde5);padding-top:.75rem;display:grid;gap:.4rem}.jas-thesis-framework-review form{display:grid;grid-template-columns:minmax(0,1fr) minmax(10rem,14rem) auto;gap:.65rem;align-items:end;padding:.65rem 0}.jas-thesis-framework-review h4,.jas-thesis-framework-review p{margin:0}.jas-thesis-framework-review label{display:grid;gap:.25rem;font-size:.82rem}
.jas-thesis-concept-nodes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.jas-thesis-concept-nodes article{border-left:3px solid var(--brand,#275d86);padding:.25rem .75rem}.jas-thesis-concept-nodes span{display:block;color:var(--muted,#64748b);font-size:.85rem}
.jas-thesis-framework-guidance{display:grid;gap:.75rem;margin:1rem 0}.jas-thesis-framework-guidance article{border-left:3px solid var(--brand,#275d86);padding:.25rem .75rem}.jas-thesis-framework-guidance h4{margin:.15rem 0}.jas-thesis-framework-guidance p{margin:.25rem 0}
@media(max-width:1024px){.jas-thesis-development-content{grid-template-columns:1fr}}
@media(max-width:768px){.jas-thesis-development-sheet{inset:0;border-radius:0}.jas-thesis-development-head{padding:1rem;gap:1rem}.jas-thesis-development-content{padding:1rem}.jas-thesis-concept-nodes{grid-template-columns:1fr}.jas-thesis-framework-review form{grid-template-columns:1fr}.jas-thesis-framework-review form .jas-btn{justify-self:start}}

/* RDW Thesis T4 — Fellow-private, project-level Research Library and
 * contextual Africahied evidence search. Proposal Companion is untouched. */
html[data-tenant="carta"] .jas-thesis-library-sheet,
html[data-tenant="carta"] .jas-thesis-evidence-sheet{position:fixed;z-index:1120;inset:64px 0 0 auto;width:min(920px,calc(100vw - 48px));overflow:auto;padding:clamp(20px,3vw,38px);background:#fbfaf6;border-left:1px solid rgba(28,26,23,.14);box-shadow:-24px 0 60px rgba(34,31,26,.2)}
html[data-tenant="carta"] .jas-thesis-library-head,
html[data-tenant="carta"] .jas-thesis-evidence-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding-bottom:18px;border-bottom:1px solid rgba(28,26,23,.14)}
html[data-tenant="carta"] .jas-thesis-library-head h2,
html[data-tenant="carta"] .jas-thesis-library-head p,
html[data-tenant="carta"] .jas-thesis-evidence-head h2,
html[data-tenant="carta"] .jas-thesis-evidence-head p{margin:.2rem 0}
html[data-tenant="carta"] .jas-thesis-library-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:10px;align-items:end;margin:20px 0}
html[data-tenant="carta"] .jas-thesis-library-filters label,
html[data-tenant="carta"] .jas-thesis-evidence-search label,
html[data-tenant="carta"] .jas-thesis-library-edit label,
html[data-tenant="carta"] .jas-thesis-library-links label{display:grid;gap:5px;font-weight:750}
html[data-tenant="carta"] .jas-thesis-library-list{display:grid;gap:10px}
html[data-tenant="carta"] .jas-thesis-library-list>article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:16px;border:1px solid rgba(28,26,23,.14);border-radius:10px;background:#fff}
html[data-tenant="carta"] .jas-thesis-library-list h3,
html[data-tenant="carta"] .jas-thesis-library-list p{margin:.2rem 0;overflow-wrap:anywhere}
html[data-tenant="carta"] .jas-thesis-library-tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;padding:0;list-style:none}
html[data-tenant="carta"] .jas-thesis-library-tags :is(span,li){padding:4px 8px;border-radius:999px;background:#f5f1e8;font-size:.78rem}
html[data-tenant="carta"] .jas-thesis-evidence-prompts{margin:0 0 18px;padding:14px 16px;border-left:3px solid var(--jas-gold,#c99a2e);background:#f8f1df}
html[data-tenant="carta"] .jas-thesis-evidence-prompts ul{margin:.5rem 0 0;padding-left:20px}
html[data-tenant="carta"] .jas-thesis-library-detail{max-width:760px;margin:22px auto;display:grid;gap:14px}
html[data-tenant="carta"] .jas-thesis-library-detail h2,
html[data-tenant="carta"] .jas-thesis-library-detail p{margin:.15rem 0;overflow-wrap:anywhere}
html[data-tenant="carta"] .jas-thesis-library-edit,
html[data-tenant="carta"] .jas-thesis-library-links{display:grid;gap:14px;margin-top:8px;padding:18px;border:1px solid rgba(28,26,23,.14);border-radius:10px;background:#fff}
html[data-tenant="carta"] .jas-thesis-library-edit form,
html[data-tenant="carta"] .jas-thesis-library-links form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}
html[data-tenant="carta"] .jas-thesis-library-edit form[data-thesis-library-note]{grid-template-columns:1fr}
html[data-tenant="carta"] .jas-thesis-library-links ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}
html[data-tenant="carta"] .jas-thesis-library-links li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid rgba(28,26,23,.1)}
html[data-tenant="carta"] .jas-thesis-guidance-actions,
html[data-tenant="carta"] .jas-thesis-evidence-actions,
html[data-tenant="carta"] .jas-thesis-evidence-links{display:flex;flex-wrap:wrap;gap:8px}
html[data-tenant="carta"] .jas-thesis-evidence-search{max-width:720px;margin:20px auto}
html[data-tenant="carta"] .jas-thesis-evidence-search label>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
html[data-tenant="carta"] .jas-thesis-evidence-results{display:grid;gap:12px}
html[data-tenant="carta"] .jas-thesis-evidence-results article{display:grid;gap:10px}
html[data-tenant="carta"] .jas-thesis-evidence-results h3,
html[data-tenant="carta"] .jas-thesis-evidence-results p{margin:0}
html[data-tenant="carta"] .jas-thesis-saved{color:#245c38}
@media(max-width:1024px){html[data-tenant="carta"] .jas-thesis-library-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:768px){html[data-tenant="carta"] .jas-thesis-library-sheet,html[data-tenant="carta"] .jas-thesis-evidence-sheet{inset:64px 0 0;width:100%;padding:18px 14px;border-left:0}html[data-tenant="carta"] .jas-thesis-library-head,html[data-tenant="carta"] .jas-thesis-evidence-head{align-items:stretch;flex-direction:column}html[data-tenant="carta"] .jas-thesis-library-filters,html[data-tenant="carta"] .jas-thesis-library-edit form,html[data-tenant="carta"] .jas-thesis-library-links form,html[data-tenant="carta"] .jas-thesis-evidence-search label>div{grid-template-columns:1fr}html[data-tenant="carta"] .jas-thesis-library-list>article{grid-template-columns:1fr}html[data-tenant="carta"] .jas-thesis-library-list>article>.jas-btn,html[data-tenant="carta"] .jas-thesis-evidence-actions .jas-btn{width:100%}}

/* JAS II facilitator foundation */
html[data-tenant="carta"] .jas-fac-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
html[data-tenant="carta"] .jas-fac-metrics span{display:grid;gap:3px;padding:16px;border:1px solid rgba(28,26,23,.12);border-radius:10px;background:#fcfaf4}
html[data-tenant="carta"] .jas-fac-metrics strong{font-size:1.45rem;color:var(--gold-deep)}
html[data-tenant="carta"] .jas-fac-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}
html[data-tenant="carta"] .jas-fac-form>*{min-width:0}
html[data-tenant="carta"] .jas-fac-form .jas-field{width:100%;min-width:0;max-width:100%}
html[data-tenant="carta"] .jas-fac-form label{display:grid;gap:6px;font-weight:650}
html[data-tenant="carta"] .jas-fac-form textarea{min-height:120px}
html[data-tenant="carta"] .jas-fac-wide,html[data-tenant="carta"] .jas-fac-consequence{grid-column:1/-1}
html[data-tenant="carta"] .jas-fac-consequence{display:block;padding:12px 14px;border-left:3px solid var(--gold-deep);background:#fcfaf4;color:var(--ink-soft)}
html[data-tenant="carta"] .jas-fac-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid rgba(28,26,23,.1)}
/* Profile & settings: presentation cues only; the server owns field policy. */
#jasShell .jas-profile-section .jas-card-title{font-size:clamp(1.2rem,1.5vw,1.35rem);font-weight:750;line-height:1.25;margin:0 0 8px}
#jasShell .jas-profile-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
#jasShell .jas-profile-section-head .jas-card-title{margin:0}
#jasShell .jas-profile-cue{display:inline-flex;align-items:center;min-height:28px;padding:3px 10px;border:1px solid var(--jas-line);border-radius:999px;color:var(--jas-muted);font-size:.78rem;font-weight:700;white-space:nowrap}
#jasShell .jas-profile-record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;margin-top:14px}
#jasShell .jas-profile-record-grid .jas-fac-row{grid-template-columns:minmax(0,1fr);gap:0;padding:10px 0}
#jasShell .jas-profile-record-grid .jas-fac-row:last-child{border-bottom:0}
#jasShell .jas-profile-fact-note{margin-top:2px}
#jasShell .jas-profile-form textarea.jas-field{min-height:132px;resize:vertical}
#jasShell .jas-profile-research{min-width:0}
#jasShell .jas-profile-research h3{margin:24px 0 8px;font-size:1.05rem}
#jasShell .jas-profile-research .jas-fac-row small,#jasShell .jas-profile-history li{overflow-wrap:anywhere}
#jasShell .jas-profile-research-status{margin-top:12px}
#jasShell .jas-profile-history{margin:16px 0;padding:10px 0;border-top:1px solid var(--jas-line)}
#jasShell .jas-profile-history summary{cursor:pointer;min-height:44px;display:list-item;padding:10px 0;font-weight:650;overflow-wrap:anywhere}
#jasShell .jas-profile-history ol{padding-left:24px}
#jasShell .jas-profile-history li{margin:8px 0;line-height:1.5}
#jasShell .jas-profile-approaches{min-height:180px;max-width:100%}
#jasShell .jas-profile-form .jas-cre-runbar{margin-top:0;min-width:0}
#jasShell .jas-profile-save{justify-self:start;width:auto;min-width:180px;background:var(--jas-gold-soft);border-color:var(--jas-line);color:var(--jas-ink)}
#jasShell .jas-profile-save:hover{background:#f9edcc;border-color:var(--jas-ochre)}
#jasShell .jas-profile-correction{border-left:3px solid var(--jas-gold)}
#jasShell .jas-profile-notice{margin:0 0 14px;padding:11px 14px;border-radius:12px;font-size:14px;font-weight:650}
#jasShell .jas-profile-notice-success{background:#eaf5ee;border:1px solid #b9d7c4;color:#20593b}
#jasShell .jas-profile-notice-error,#jasShell .jas-profile-load.is-error{background:var(--jas-red-soft);border:1px solid #e5bdb8;color:var(--jas-red)}
html[data-tenant="carta"] .jas-prep-panel{margin-top:18px;max-width:100%;overflow-wrap:anywhere}
html[data-tenant="carta"] .jas-activity-guide{margin:18px 0;border:1px solid rgba(119,73,30,.2);border-radius:14px;background:#fffdf8;overflow:hidden}
html[data-tenant="carta"] .jas-activity-guide>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;list-style:none;cursor:pointer;padding:18px 20px}
html[data-tenant="carta"] .jas-activity-guide>summary::-webkit-details-marker{display:none}
html[data-tenant="carta"] .jas-activity-guide-heading{display:grid;gap:4px;min-width:0}
html[data-tenant="carta"] .jas-activity-guide-heading .jas-eyebrow{margin:0;color:#77491e}
html[data-tenant="carta"] .jas-activity-guide-heading strong{font-size:1.12rem;line-height:1.3}
html[data-tenant="carta"] .jas-activity-guide-heading small{font-size:.92rem;color:var(--ink-soft);line-height:1.45}
html[data-tenant="carta"] .jas-activity-guide-toggle{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:50%;background:#f4e7c7;color:#77491e;font-size:1.15rem;transition:transform .15s ease}
html[data-tenant="carta"] .jas-activity-guide[open] .jas-activity-guide-toggle{transform:rotate(180deg)}
html[data-tenant="carta"] .jas-activity-guide>summary:focus-visible,html[data-tenant="carta"] .jas-activity-guide-tasks summary:focus-visible{outline:3px solid #d49923;outline-offset:-4px}
html[data-tenant="carta"] .jas-activity-guide-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 26px;padding:20px;border-top:1px solid rgba(119,73,30,.15)}
html[data-tenant="carta"] .jas-activity-guide-section{min-width:0}
html[data-tenant="carta"] .jas-activity-guide-section h5,html[data-tenant="carta"] .jas-activity-guide-tasks h5{margin:0 0 8px;font-size:1rem;line-height:1.3;color:#77491e}
html[data-tenant="carta"] .jas-activity-guide-section ul,html[data-tenant="carta"] .jas-activity-guide-tasks ul{margin:0;padding-left:20px;line-height:1.55}
html[data-tenant="carta"] .jas-activity-guide-section li+li,html[data-tenant="carta"] .jas-activity-guide-tasks li+li{margin-top:6px}
html[data-tenant="carta"] .jas-activity-guide-focus,html[data-tenant="carta"] .jas-activity-guide-tasks,html[data-tenant="carta"] .jas-activity-guide-boundary{grid-column:1/-1}
html[data-tenant="carta"] .jas-activity-guide-focus{margin:0;padding:10px 14px;border-left:3px solid #a97532;background:#fbf4e4}
html[data-tenant="carta"] .jas-activity-guide-tasks{border-top:1px solid rgba(119,73,30,.15);padding-top:16px}
html[data-tenant="carta"] .jas-activity-guide-tasks details{padding:10px 0;border-bottom:1px solid rgba(119,73,30,.12)}
html[data-tenant="carta"] .jas-activity-guide-tasks summary{cursor:pointer;font-weight:650}
html[data-tenant="carta"] .jas-activity-guide-tasks ul{padding-top:10px}
html[data-tenant="carta"] .jas-activity-guide-boundary{margin:0;padding-top:12px;border-top:1px solid rgba(119,73,30,.15);color:var(--ink-soft);font-size:.9rem}
@media(max-width:760px){html[data-tenant="carta"] .jas-activity-guide>summary{padding:16px}html[data-tenant="carta"] .jas-activity-guide-body{grid-template-columns:1fr;padding:16px;gap:18px}}
html[data-tenant="carta"] .jas-prep-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;border-bottom:1px solid rgba(28,26,23,.12);padding-bottom:18px;margin-bottom:20px}
html[data-tenant="carta"] .jas-prep-header>div{min-width:0}
html[data-tenant="carta"] .jas-prep-header>.jas-chip{flex:0 0 auto;white-space:nowrap;overflow-wrap:normal}
html[data-tenant="carta"] .jas-prep-facilitators{max-width:68ch}
html[data-tenant="carta"] .jas-prep-header h3{font-size:clamp(1.25rem,2vw,1.8rem);line-height:1.25;margin:4px 0 8px}
html[data-tenant="carta"] .jas-prep-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
html[data-tenant="carta"] .jas-prep-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;padding:16px;margin:18px 0;border:1px solid rgba(120,75,32,.2);border-radius:12px;background:#fffaf0}
html[data-tenant="carta"] .jas-prep-form label{display:grid;gap:5px;min-width:0}
html[data-tenant="carta"] .jas-prep-form input[type=file]{max-width:100%}
html[data-tenant="carta"] .jas-prep-section{padding:16px 0;border-top:1px solid rgba(28,26,23,.1)}
html[data-tenant="carta"] .jas-prep-section h4{margin:0 0 8px;color:#77491e;font-size:1.02rem}
html[data-tenant="carta"] .jas-prep-section p{margin:0;white-space:normal;line-height:1.6}
html[data-tenant="carta"] .jas-prep-draft,html[data-tenant="carta"] .jas-prep-published{margin-top:22px;padding:20px 22px;border:1px solid rgba(28,26,23,.12);border-radius:12px;background:#fff}
html[data-tenant="carta"] .jas-prep-draft{border-left:4px solid #ad5c28}
html[data-tenant="carta"] .jas-prep-published{border-left:4px solid #28714d}
html[data-tenant="carta"] .jas-prep-draft>h4:first-child{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 8px;font-size:1.16rem}
html[data-tenant="carta"] .jas-prep-version,html[data-tenant="carta"] .jas-prep-publication{font-size:.88rem;font-weight:400;color:var(--ink-soft)}
html[data-tenant="carta"] .jas-prep-published>.jas-eyebrow{margin:0 0 4px;color:#246343}
html[data-tenant="carta"] .jas-prep-published>.jas-prep-publication{margin:0 0 16px}
html[data-tenant="carta"] .jas-prep-draft>h4:not(:first-child),html[data-tenant="carta"] .jas-prep-published>h4{margin:20px 0 6px;font-size:1.02rem}
html[data-tenant="carta"] .jas-prep-alert{padding:12px 16px;border-left:4px solid #ad5c28;background:#fff2e4;border-radius:6px}
html[data-tenant="carta"] .jas-prep-alert ul{margin:8px 0 0;padding-left:20px}
html[data-tenant="carta"] .jas-prep-materials{list-style:none;margin:8px 0 18px;padding:0}
html[data-tenant="carta"] .jas-prep-materials li{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-bottom:1px solid rgba(28,26,23,.1);padding:10px 0}
html[data-tenant="carta"] .jas-prep-materials a{font-weight:600;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
html[data-tenant="carta"] .jas-prep-materials .jas-muted{font-size:.85rem}
html[data-tenant="carta"] .jas-prep-publish{border:1px solid #bd9a59;background:#fffbef;border-radius:12px;padding:18px;margin:20px 0}
html[data-tenant="carta"] .jas-prep-panel :is(button,a,input,select):focus-visible{outline:3px solid #d49923;outline-offset:3px}
@media(max-width:760px){html[data-tenant="carta"] .jas-prep-header{flex-direction:column}html[data-tenant="carta"] .jas-prep-form{grid-template-columns:1fr}html[data-tenant="carta"] .jas-prep-form .jas-btn{width:100%}html[data-tenant="carta"] .jas-prep-actions .jas-btn{flex:1 1 100%}html[data-tenant="carta"] .jas-prep-draft,html[data-tenant="carta"] .jas-prep-published{padding:16px}}
html[data-tenant="carta"] .jas-fac-row:last-child{border-bottom:0}
html[data-tenant="carta"] .jas-fac-assignment-head{display:flex;justify-content:space-between;gap:16px;align-items:start;margin-top:28px}
html[data-tenant="carta"] .jas-fac-assignment-head h3,html[data-tenant="carta"] .jas-fac-assignment-head p{margin:0 0 4px}
html[data-tenant="carta"] .jas-fac-filters{display:grid;grid-template-columns:minmax(220px,2fr) repeat(3,minmax(140px,1fr));gap:12px;align-items:end;padding:16px;margin:12px 0;border:1px solid rgba(28,26,23,.12);border-radius:10px;background:#fcfaf4}
html[data-tenant="carta"] .jas-fac-filters label{display:grid;gap:6px;font-weight:650}
html[data-tenant="carta"] .jas-fac-filter-actions{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}
html[data-tenant="carta"] .jas-fac-results{margin:14px 0;color:var(--ink-soft);font-weight:650}
html[data-tenant="carta"] .jas-fac-assignment{display:flex;justify-content:space-between;gap:16px;align-items:center}
html[data-tenant="carta"] .jas-fac-assignment-main{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;min-width:0}
html[data-tenant="carta"] .jas-fac-assignment-main .jas-muted,html[data-tenant="carta"] .jas-fac-assignment-main small{flex-basis:100%}
html[data-tenant="carta"] .jas-fac-revoked{background:#f0ece5;color:var(--ink-soft)}
html[data-tenant="carta"] .jas-fac-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:14px}
html[data-tenant="carta"] .jas-fac-pagination .jas-btn,html[data-tenant="carta"] .jas-fac-filter-actions .jas-btn,html[data-tenant="carta"] .jas-fac-assignment>.jas-btn{min-height:44px;min-width:44px}
@media(max-width:1024px){html[data-tenant="carta"] .jas-fac-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){html[data-tenant="carta"] .jas-fac-metrics,html[data-tenant="carta"] .jas-fac-form,html[data-tenant="carta"] .jas-fac-filters{grid-template-columns:1fr}html[data-tenant="carta"] .jas-fac-wide,html[data-tenant="carta"] .jas-fac-consequence,html[data-tenant="carta"] .jas-fac-filter-actions{grid-column:auto}html[data-tenant="carta"] .jas-fac-row{grid-template-columns:1fr;align-items:start}html[data-tenant="carta"] .jas-fac-form .jas-btn,html[data-tenant="carta"] .jas-fac-filter-actions .jas-btn{width:100%}html[data-tenant="carta"] .jas-fac-assignment{align-items:stretch;flex-direction:column}html[data-tenant="carta"] .jas-fac-assignment>.jas-btn{width:100%}html[data-tenant="carta"] .jas-fac-pagination{justify-content:space-between;flex-wrap:wrap}}
@media(max-width:760px){#jasShell .jas-profile-record-grid{grid-template-columns:minmax(0,1fr)}#jasShell .jas-profile-record-grid .jas-fac-row{padding:9px 0}#jasShell .jas-profile-section-head{flex-wrap:wrap}#jasShell .jas-profile-save{width:100%}}

/* JAS II final UI sanitization ----------------------------------------
 * Restores the static mock-up's programme identity and role clarity while
 * retaining the live platform's governed data and permission boundaries. */
#jasShell .jas-brand span{gap:1px}
#jasShell .jas-brand strong{letter-spacing:.01em}
#jasShell .jas-brand small{font-size:11px;letter-spacing:.075em;text-transform:uppercase}
#jasShell .jas-page{max-width:1240px;margin-inline:auto}
#jasShell .jas-page>.jas-eyebrow{margin-bottom:5px;color:var(--jas-ochre)}
#jasShell .jas-page>h1{max-width:20ch;margin-bottom:10px;line-height:1.08}
#jasShell .jas-page>.jas-eyebrow+ h1{letter-spacing:-.025em}
#jasShell .jas-week-tabs{scrollbar-width:thin}
#jasShell .jas-week-tab{min-height:44px}

#jasShell .jas-fac-intro{max-width:64ch;margin:0 0 22px}
#jasShell .jas-fac-intro .jas-eyebrow{margin:0 0 5px;color:var(--jas-ochre);font-weight:800;letter-spacing:.1em}
#jasShell .jas-fac-intro > p:nth-child(2){margin:0;color:var(--jas-muted);font-size:1.05rem;line-height:1.55}
#jasShell .jas-fac-tabs{margin-bottom:22px}
#jasShell .jas-fac-overview{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(360px,1.25fr);gap:16px;margin-bottom:16px}
#jasShell .jas-fac-welcome,#jasShell .jas-fac-priority{min-width:0;padding:25px;border:1px solid var(--jas-line);border-radius:14px;background:var(--jas-paper)}
#jasShell .jas-fac-welcome{display:flex;flex-direction:column;justify-content:center}
#jasShell .jas-fac-welcome h2,#jasShell .jas-fac-priority h2{margin:.25rem 0 .55rem;line-height:1.18}
#jasShell .jas-fac-welcome p:last-child{max-width:34ch;margin:.1rem 0 0;color:var(--jas-muted);line-height:1.5}
#jasShell .jas-fac-priority{position:relative;overflow:hidden;border-color:rgba(198,151,42,.4);background:linear-gradient(135deg,#22201c,#343027);color:var(--jas-ivory)}
#jasShell .jas-fac-priority::after{content:"";position:absolute;right:-50px;bottom:-70px;width:190px;height:190px;border:1px solid rgba(202,158,56,.23);border-radius:50%}
#jasShell .jas-fac-priority .jas-eyebrow{color:#e2bf6d}
#jasShell .jas-fac-priority p{position:relative;z-index:1;color:rgba(255,255,255,.76)}
#jasShell .jas-fac-priority h2,#jasShell .jas-fac-priority .jas-chip{position:relative;z-index:1}
#jasShell .jas-fac-priority .jas-chip{display:inline-flex;border-color:rgba(255,255,255,.26);background:rgba(255,255,255,.09);color:#fff}
#jasShell .jas-fac-priority-empty{background:linear-gradient(135deg,#343027,#474137)}
#jasShell .jas-fac-metrics{margin-bottom:16px}
#jasShell .jas-fac-metrics button{display:grid;min-width:0;min-height:92px;gap:3px;padding:16px;border:1px solid var(--jas-line);border-radius:10px;background:#fcfaf4;color:inherit;text-align:left;cursor:pointer;font:inherit}
#jasShell .jas-fac-metrics button:hover{border-color:var(--jas-gold);background:var(--jas-gold-soft)}
#jasShell .jas-fac-metrics button:focus-visible{outline:3px solid var(--jas-gold);outline-offset:2px}
#jasShell .jas-fac-metrics button strong{font-size:1.55rem;color:var(--jas-ochre)}
#jasShell .jas-fac-metrics button span{padding:0;border:0;background:transparent;color:var(--jas-muted)}
#jasShell .jas-fac-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:10px}
#jasShell .jas-fac-section-head .jas-eyebrow{margin:0 0 4px;color:var(--jas-ochre)}
#jasShell .jas-fac-section-head .jas-card-title{margin:0}
#jasShell .jas-fac-row>div{display:grid;gap:4px;min-width:0}
#jasShell .jas-fac-row small{color:var(--jas-muted);line-height:1.45}
#jasShell .jas-fac-boundary{margin:18px 0 0;padding:12px 14px;border-left:3px solid var(--jas-gold);background:var(--jas-gold-soft);color:var(--jas-muted);font-size:.88rem;line-height:1.5}

@media(max-width:760px){
  #jasShell .jas-page>h1{max-width:none;font-size:clamp(2rem,10vw,2.65rem)}
  #jasShell .jas-fac-overview{grid-template-columns:1fr}
  #jasShell .jas-fac-welcome,#jasShell .jas-fac-priority{padding:20px}
  #jasShell .jas-fac-tabs{margin-inline:-2px;overflow-x:auto;scroll-snap-type:x proximity}
  #jasShell .jas-fac-tabs .jas-week-tab{flex:0 0 auto;scroll-snap-align:start}
  #jasShell .jas-fac-section-head{align-items:flex-start;flex-direction:column;gap:8px}
  #jasShell .jas-fac-row .jas-btn{width:100%;justify-content:center}
}

@media(max-width:420px){
  #jasShell .jas-brand img{width:84px}
  #jasShell .jas-brand strong{font-size:12px}
  #jasShell .jas-topbar-actions .jas-id-role{font-size:11px}
  #jasShell .jas-fac-welcome,#jasShell .jas-fac-priority{padding:18px}
}
/* Isolated JAS II preview: email-code sign-in only. The dialog is created
   after the tenant guard resolves, so these styles cannot affect other hosts. */
html[data-tenant="carta"] .jas-preview-auth-backdrop{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:20px;background:rgba(13,32,49,.72)}
html[data-tenant="carta"] .jas-preview-auth-card{position:relative;width:min(100%,430px);padding:32px;border-radius:18px;background:#fff;color:#172c3b;box-shadow:0 24px 72px rgba(0,0,0,.24)}
html[data-tenant="carta"] .jas-preview-auth-kicker{margin:0 0 8px;color:#8b5727;font-size:.75rem;font-weight:800;letter-spacing:.12em}
html[data-tenant="carta"] .jas-preview-auth-card h2{margin:0;font-size:1.65rem;line-height:1.2}
html[data-tenant="carta"] .jas-preview-auth-help{margin:12px 0 24px;line-height:1.5;color:#465866}
html[data-tenant="carta"] .jas-preview-auth-card form:not([hidden]){display:grid;gap:10px}
html[data-tenant="carta"] .jas-preview-auth-card label{font-weight:700}
html[data-tenant="carta"] .jas-preview-auth-card input{width:100%;min-height:46px;padding:10px 12px;border:1px solid #82909a;border-radius:8px;color:#172c3b;background:#fff}
html[data-tenant="carta"] .jas-preview-auth-card form button{min-height:46px;margin-top:6px;padding:10px 16px;border:0;border-radius:8px;background:#163a50;color:#fff;font-weight:700;cursor:pointer}
html[data-tenant="carta"] .jas-preview-auth-card button:disabled{opacity:.6;cursor:wait}
html[data-tenant="carta"] .jas-preview-auth-card :focus-visible{outline:3px solid #d9a93a;outline-offset:3px}
html[data-tenant="carta"] .jas-preview-auth-close{position:absolute;top:12px;right:14px;width:34px;height:34px;border:0;background:transparent;color:#263c4a;font-size:1.7rem;cursor:pointer}
html[data-tenant="carta"] .jas-preview-auth-status{min-height:1.5em;margin:16px 0 0;color:#465866;line-height:1.4}
html[data-tenant="carta"] .jas-access-pending{min-height:60vh;display:grid;place-items:center;padding:40px 24px;text-align:center;color:#314a58;font-size:1.05rem}
html[data-tenant="carta"] #jasShell.jas-resolving > :not(.jas-access-pending){visibility:hidden!important}
html[data-tenant="carta"] #jasShell.jas-resolving > .jas-access-pending{position:fixed;inset:0;z-index:20;min-height:100vh;background:var(--jas-ivory)}
.jas-match-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:1rem;align-items:end}
.jas-match-modes{display:flex;flex-wrap:wrap;gap:.65rem;margin:0 0 1.25rem}
.jas-match-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:.6rem;margin:.8rem 0 1rem}
.jas-match-choices label{display:flex;align-items:flex-start;gap:.55rem;border:1px solid var(--jas-border,#d8d0c4);border-radius:12px;padding:.75rem;line-height:1.45;min-width:0}
.jas-match-choices input{flex:none;margin-top:.2rem}
.jas-match-choices label:focus-within{outline:2px solid var(--jas-gold,#bb861e);outline-offset:2px}
.jas-match-grid label{display:grid;gap:.4rem;min-width:0}
.jas-match-grid form{display:grid;gap:.75rem;min-width:0}
.jas-match-grid .jas-match-confirm{display:flex;align-items:flex-start;gap:.6rem;line-height:1.5}
.jas-match-grid .jas-match-confirm input{margin-top:.3rem;flex:0 0 auto}
.jas-match-list{display:grid;gap:.8rem;padding-left:1.25rem}
.jas-match-list li{line-height:1.5}
.jas-match-list p{margin:.2rem 0}
.jas-match-list small{color:var(--jas-muted,#665f59)}
.jas-match-drafts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:1rem;margin:1.25rem 0}
.jas-match-draft{min-width:0;border:1px solid var(--jas-border,#d8d0c4);border-radius:14px;padding:1rem;background:#fff}
.jas-match-draft h3{margin:0 0 .75rem}
.jas-match-draft .jas-match-list{padding-left:1.1rem}
.jas-match-draft .jas-match-list li{overflow-wrap:anywhere}
.jas-match-draft form{margin:.65rem 0}
.jas-match-card-head{display:flex;align-items:start;justify-content:space-between;gap:.75rem;flex-wrap:wrap}
.jas-match-card-head h3,.jas-match-card-head h2{margin:0}
.jas-match-count{font-weight:600;color:var(--jas-ink,#302c26);margin:.75rem 0}
.jas-match-summary{display:grid;gap:.55rem;margin:1rem 0;font-size:.9rem}
.jas-match-summary div{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:.6rem}
.jas-match-summary dt{color:var(--jas-muted,#665f59)}
.jas-match-summary dd{margin:0;overflow-wrap:anywhere}
.jas-match-selected{border-color:var(--jas-gold,#bb861e);box-shadow:0 0 0 1px var(--jas-gold,#bb861e)}
.jas-match-status{white-space:normal;text-align:left}
#jasShell .jas-match-status-ok{background:#e6efe5;color:#245c36}
#jasShell .jas-match-status-hold{background:#fff0d4;color:#744a09}
#jasShell .jas-notice.jas-match-success{background:#e6efe5;color:#245c36}
.jas-match-disclosure{border-top:1px solid var(--jas-border,#d8d0c4);padding:.85rem 0;margin:.75rem 0 0}
.jas-match-disclosure summary{cursor:pointer;font-weight:600;line-height:1.5;min-height:32px}
.jas-match-disclosure summary:focus-visible,.jas-match-review:focus-visible{outline:2px solid var(--jas-gold,#bb861e);outline-offset:4px}
.jas-match-disclosure[open]>summary{margin-bottom:.85rem}
.jas-match-steps{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;list-style:none;padding:0;margin:0 0 1.5rem}
.jas-match-steps li{display:flex;align-items:center;gap:.5rem;color:var(--jas-muted,#665f59);font-size:.9rem}
.jas-match-steps span{display:grid;place-items:center;min-width:28px;height:28px;border:1px solid var(--jas-border,#d8d0c4);border-radius:50%;font-weight:600}
.jas-match-steps [aria-current="step"]{color:var(--jas-ink,#302c26);font-weight:600}
.jas-match-steps [aria-current="step"] span{background:#302c26;color:#fff;border-color:#302c26}
.jas-match-workspace{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:1rem;align-items:start}
.jas-match-workspace>.jas-card{margin:0}
.jas-match-candidates{display:grid;gap:.75rem;margin:1rem 0}
.jas-match-candidate{border:1px solid var(--jas-border,#d8d0c4);border-radius:12px;padding:1rem;min-width:0}
.jas-match-candidate h3{margin:0 0 .5rem;font-size:1rem}
.jas-match-candidate p{margin:0 0 .5rem;line-height:1.5}
.jas-match-candidate small{color:var(--jas-muted,#665f59);line-height:1.5}
.jas-match-actions{border-top:1px solid var(--jas-border,#d8d0c4);padding-top:1rem;margin-top:1rem}
.jas-match-actions .jas-match-disclosure{border:0;padding:0;margin:0}
.jas-match-continuity{border-top:1px solid var(--jas-border,#d8d0c4);padding-top:1rem;margin-top:1rem}
.jas-match-modes .jas-btn[aria-pressed="true"]{box-shadow:inset 0 -3px 0 var(--jas-gold,#bb861e)}
.jas-match-grid .jas-btn{min-height:44px}
.jas-match-grid .jas-field{width:100%;min-width:0;box-sizing:border-box}
.jas-match-grid .jas-btn:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:600px){.jas-match-grid{grid-template-columns:minmax(0,1fr)}.jas-match-modes .jas-btn{flex:1 1 100%}}
/* Edition-scoped JAS II communications/community; no shared-shell restyling. */
html[data-tenant="carta"] .jas-social-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; margin:.8rem 0; }
html[data-tenant="carta"] .jas-social-form { display:grid; gap:1rem; max-width:48rem; }
html[data-tenant="carta"] .jas-social-form label { display:grid; gap:.35rem; }
html[data-tenant="carta"] .jas-social-form .jas-field { width:100%; min-width:0; box-sizing:border-box; }
html[data-tenant="carta"] .jas-social-text { white-space:pre-wrap; overflow-wrap:anywhere; }
html[data-tenant="carta"] .jas-social-row { padding:1rem 0; border-bottom:1px solid #ddd5c7; }
html[data-tenant="carta"] .jas-social-toolbar [aria-pressed="true"] { outline:2px solid #a37732; }
#jasShell .jas-learning-page{max-width:1100px}
#jasShell .jas-learning-page-course{max-width:860px}
#jasShell .jas-learning-page-reader{max-width:780px}
#jasShell .jas-learning-page>h1{max-width:30ch;margin:8px 0 16px;font-size:clamp(2rem,2.6vw,2.6rem);line-height:1.14;overflow-wrap:break-word}
#jasShell .jas-learning-page-reader>h1{max-width:none;font-size:clamp(1.95rem,2.5vw,2.45rem)}
#jasShell .jas-learning{max-width:none;margin:0;padding-bottom:2.5rem;min-width:0}
#jasShell .jas-learning-intro{max-width:68ch;font-size:1.06rem;line-height:1.6;margin:0 0 .45rem}
#jasShell .jas-learning-note,#jasShell .jas-learning-source{max-width:75ch;color:var(--jas-muted);font-size:.88rem;line-height:1.6;margin:.3rem 0 0}
#jasShell .jas-learning-pathway{border-top:1px solid var(--jas-line);padding-top:1.55rem;margin:1.9rem 0 2.4rem}
#jasShell .jas-learning-pathway:first-of-type{border-top:0;padding-top:0;margin-top:2.25rem}
#jasShell .jas-learning-section-head{margin-bottom:1rem}
#jasShell .jas-learning-section-head h2{font-size:1.4rem;line-height:1.28;margin:0 0 .3rem}
#jasShell .jas-learning-section-head p{color:var(--jas-muted);line-height:1.5;margin:0}
#jasShell .jas-learning-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
#jasShell .jas-learning-card{display:flex;flex-direction:column;gap:.55rem;min-width:0;padding:22px;box-shadow:0 6px 20px rgba(35,31,32,.045)}
#jasShell .jas-learning-card h3{font-size:1.17rem;line-height:1.32;margin:0;overflow-wrap:anywhere}
#jasShell .jas-learning-card p{margin:0;line-height:1.55}
#jasShell .jas-learning-card-summary{max-width:70ch}
#jasShell .jas-learning-card-foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem 1rem;margin-top:auto;padding-top:.8rem;flex-wrap:wrap}
#jasShell .jas-learning-card-foot span{color:var(--jas-muted);font-size:.87rem}
#jasShell .jas-learning-card-foot .jas-btn{display:inline-flex;align-items:center;min-height:44px;padding:.5rem .8rem}
#jasShell .jas-learning-tag,#jasShell .jas-learning-meta{color:var(--jas-muted);font-size:.84rem;font-weight:700;letter-spacing:.015em;margin:0;line-height:1.5}
#jasShell .jas-learning-back{display:inline-flex;align-items:center;min-height:40px;margin:2px 0 0;font-weight:700}
#jasShell .jas-learning-course-intro{margin-bottom:1.7rem}
#jasShell .jas-learning-course-intro .jas-learning-intro{margin:.65rem 0 .4rem}
#jasShell .jas-learning-start{display:inline-flex;align-items:center;min-height:44px;margin-top:1.2rem}
#jasShell .jas-learning-outcomes{border-left:3px solid var(--jas-gold);border-radius:0 12px 12px 0;background:var(--jas-gold-soft);padding:1.15rem 1.35rem;margin:0 0 2rem}
#jasShell .jas-learning-outcomes h2{font-size:1.2rem;line-height:1.3;margin:0 0 .6rem}
#jasShell .jas-learning-outcomes ul{list-style:disc;padding-left:1.35rem;margin:0;line-height:1.6}
#jasShell .jas-learning-outcomes li{margin:.35rem 0}
#jasShell .jas-learning-module-list{margin:0 0 1.8rem}
#jasShell .jas-learning-module-list h2{font-size:1.35rem;margin:0 0 .75rem}
#jasShell .jas-learning-module-items{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
#jasShell .jas-learning-module-link{display:flex;align-items:center;gap:1rem;padding:.9rem 1rem;border:1px solid var(--jas-line);border-radius:12px;background:var(--jas-paper);text-decoration:none;min-height:68px}
#jasShell .jas-learning-module-link:hover,#jasShell .jas-learning-module-link:focus-visible{border-color:var(--jas-gold);background:#fffdf8}
#jasShell .jas-learning-module-link>span:nth-child(2){flex:1;min-width:0}
#jasShell .jas-learning-module-link strong,#jasShell .jas-learning-module-link small{display:block}
#jasShell .jas-learning-module-link strong{line-height:1.35}
#jasShell .jas-learning-module-link small{color:var(--jas-muted);margin-top:.2rem;line-height:1.4}
#jasShell .jas-learning-module-number{font-weight:800;color:var(--jas-ochre);font-size:1.1rem}
#jasShell .jas-learning-source{margin-top:1.6rem}
#jasShell .jas-learning-reader{max-width:none}
#jasShell .jas-learning-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .55rem;margin:.25rem 0 .15rem;color:var(--jas-muted);font-size:.88rem;line-height:1.5}
#jasShell .jas-learning-crumbs [aria-current="page"]{font-weight:700;color:var(--jas-ink)}
#jasShell .jas-learning-reader>.jas-learning-meta{margin:0 0 1.4rem}
#jasShell .jas-learning-prose{font-size:1.04rem;line-height:1.78;overflow-wrap:anywhere}
#jasShell .jas-learning-prose h2{font-size:1.34rem;line-height:1.3;margin:2.1rem 0 .7rem}
#jasShell .jas-learning-prose h2:first-child{margin-top:0}
#jasShell .jas-learning-prose h3{font-size:1.14rem;line-height:1.35;margin:1.6rem 0 .55rem}
#jasShell .jas-learning-prose p{margin:.75rem 0 1.15rem}
#jasShell .jas-learning-prose ul,#jasShell .jas-learning-prose ol{padding-left:1.55rem;margin:.7rem 0 1.3rem}
#jasShell .jas-learning-prose ul{list-style:disc}
#jasShell .jas-learning-prose ol{list-style:decimal}
#jasShell .jas-learning-prose li{margin:.4rem 0;padding-left:.15rem}
#jasShell .jas-learning-prose li::marker{color:var(--jas-ochre);font-weight:700}
#jasShell .jas-learning-prose blockquote{border-left:3px solid var(--jas-gold);border-radius:0 8px 8px 0;padding:.35rem 1rem;margin:1.4rem 0;background:var(--jas-gold-soft)}
#jasShell .jas-learning-prose blockquote p:last-child{margin-bottom:.35rem}
#jasShell .jas-learning-prose hr{border:0;border-top:1px solid var(--jas-line);margin:2rem 0}
#jasShell .jas-learning-table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;margin:1.3rem 0;border:1px solid var(--jas-line);border-radius:8px}
#jasShell .jas-learning-table-wrap table{border-collapse:collapse;min-width:480px;width:100%;background:var(--jas-paper)}
#jasShell .jas-learning-table-wrap th,#jasShell .jas-learning-table-wrap td{text-align:left;border:1px solid var(--jas-line);padding:.65rem .75rem;vertical-align:top;line-height:1.5}
#jasShell .jas-learning-table-wrap th{background:var(--jas-gold-soft)}
#jasShell .jas-learning-next{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.75rem;border-top:1px solid var(--jas-line);padding-top:1.45rem;margin:2.4rem 0 0}
#jasShell .jas-learning-next .jas-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px}
#jasShell .jas-learning-page a:focus-visible{outline:3px solid var(--jas-gold);outline-offset:3px}
@media(max-width:680px){#jasShell .jas-learning-grid{grid-template-columns:1fr}}
@media(max-width:600px){#jasShell .jas-learning-page>h1{font-size:clamp(1.9rem,7.7vw,2.15rem);line-height:1.16}#jasShell .jas-learning{padding-bottom:1.5rem}#jasShell .jas-learning-pathway{margin-block:1.65rem 2rem}#jasShell .jas-learning-card{padding:18px}#jasShell .jas-learning-outcomes{padding:1rem 1.1rem}#jasShell .jas-learning-module-link{gap:.7rem}#jasShell .jas-learning-next .jas-btn{flex:1 1 100%;text-align:center}}
.jas-rd-citation-controls { display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.5rem; }
.jas-rd-citation-controls ul { flex-basis:100%;padding:0;list-style:none;margin:.25rem 0; }
.jas-rd-citation-controls li { display:flex;flex-wrap:wrap;gap:.4rem;align-items:center; }
.jas-rd-citation-controls li span { flex:1 1 15rem;overflow-wrap:anywhere; }
.jas-rd-citation-chooser { margin:1rem 0;padding:1rem;border:1px solid var(--border,#d6dde3);border-radius:.6rem;min-width:0; }
.jas-rd-citation-chooser header { display:flex;align-items:center;justify-content:space-between;gap:1rem; }
#jasShell .jas-rd-citation-chooser h2,#jasShell .jas-rd-references h2 { font-size:1.15rem;font-weight:700;line-height:1.35;margin:0 0 .6rem; }
.jas-rd-citation-chooser fieldset { border:0;padding:0;min-width:0; }
.jas-rd-citation-source { display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:.65rem;padding:.75rem 0;border-bottom:1px solid var(--border,#d6dde3); }
.jas-rd-citation-source label { min-width:0;overflow-wrap:anywhere; }
.jas-rd-citation-source input[type=checkbox] { width:1.25rem;height:1.25rem; }
.jas-rd-citation-source input:not([type=checkbox]) { width:100%;box-sizing:border-box; }
.jas-rd-citation-source > div { grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:.5rem; }
.jas-rd-references { border-top:1px solid var(--border,#d6dde3);margin-top:1.5rem;padding-top:1rem;overflow-wrap:anywhere; }
.jas-rd-references li { margin:.65rem 0; }
.jas-rd-citation-chooser .jas-btn,.jas-rd-citation-controls .jas-btn { min-height:44px;white-space:normal; }
@media(max-width:600px) { .jas-rd-citation-source { grid-template-columns:minmax(0,1fr); }.jas-rd-citation-chooser {padding:.75rem;} }
/* Weekly programme evaluation: scoped, compact, never an assessment matrix. */
html[data-tenant="carta"] .jas-weekly{max-width:960px;min-width:0;overflow-wrap:anywhere}
html[data-tenant="carta"] .jas-weekly-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
html[data-tenant="carta"] .jas-weekly-tabs button{min-height:44px;padding:8px 14px;border:1px solid #b9ac98;background:#fff;color:#191714;border-radius:8px}
html[data-tenant="carta"] .jas-weekly-tabs button[aria-pressed="true"]{border-color:#785013;background:#fff4d6;font-weight:700}
html[data-tenant="carta"] .jas-weekly-tabs small{display:block;font-size:12px}
html[data-tenant="carta"] .jas-weekly-section{border-top:1px solid #d6cdbf;padding:18px 0;margin-top:16px}
html[data-tenant="carta"] .jas-weekly-question{min-width:0;border:0;padding:0;margin:0 0 22px}
html[data-tenant="carta"] .jas-weekly-question legend,html[data-tenant="carta"] .jas-weekly-question>label{display:block;font-weight:600;margin-bottom:8px;max-width:100%}
html[data-tenant="carta"] .jas-weekly-question small{font-weight:400;font-size:12px;color:#62594d}
html[data-tenant="carta"] .jas-weekly-options{display:flex;flex-wrap:wrap;gap:8px}
html[data-tenant="carta"] .jas-weekly-options label,html[data-tenant="carta"] .jas-weekly-contact{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;border:1px solid #b9ac98;border-radius:6px;background:#fff}
html[data-tenant="carta"] .jas-weekly input[type="radio"],html[data-tenant="carta"] .jas-weekly input[type="checkbox"]{width:20px;height:20px;flex-shrink:0;accent-color:#785013}
html[data-tenant="carta"] .jas-weekly select,html[data-tenant="carta"] .jas-weekly textarea{display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-height:44px;border:1px solid #b9ac98;border-radius:6px;background:#fff;color:#191714;padding:10px;font:inherit}
html[data-tenant="carta"] .jas-weekly textarea{min-height:96px;resize:vertical}
html[data-tenant="carta"] .jas-weekly select:disabled,html[data-tenant="carta"] .jas-weekly textarea:disabled{opacity:1;background:#f2efe9;color:#49433a}
html[data-tenant="carta"] .jas-weekly-urgent{padding:12px;border-left:3px solid #9a6211;background:#fff4d6;font-size:14px;line-height:1.6}
html[data-tenant="carta"] .jas-weekly-status{color:#245c35;min-height:1.5em}
html[data-tenant="carta"] .jas-weekly-error{color:#8b2020;padding:12px;border-left:3px solid #8b2020;background:#fff0ee}
html[data-tenant="carta"] .jas-weekly-actions{display:flex;flex-wrap:wrap;gap:12px}
html[data-tenant="carta"] .jas-weekly-statistics{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
html[data-tenant="carta"] .jas-weekly-statistics li{min-width:0;padding:12px;border:1px solid #d6cdbf;border-radius:6px}
html[data-tenant="carta"] .jas-weekly h3{font-size:17px;line-height:1.5}
html[data-tenant="carta"] .jas-weekly details summary{cursor:pointer;min-height:44px;padding:10px 0}
html[data-tenant="carta"] .jas-weekly-followup{border:1px solid #d6cdbf;padding:16px;margin:12px 0;border-radius:8px}
html[data-tenant="carta"] .jas-weekly-followup form{display:flex;align-items:end;flex-wrap:wrap;gap:12px}
html[data-tenant="carta"] .jas-weekly :focus-visible{outline:3px solid #8e5a13;outline-offset:3px}
@media(max-width:760px){html[data-tenant="carta"] .jas-weekly-statistics{grid-template-columns:minmax(0,1fr)}html[data-tenant="carta"] .jas-weekly-actions .jas-btn{min-height:44px}html[data-tenant="carta"] .jas-weekly-section{padding:14px 0}html[data-tenant="carta"] .jas-weekly-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}html[data-tenant="carta"] .jas-weekly-tabs button{min-width:0;width:100%}html[data-tenant="carta"] .jas-weekly-tabs [data-weekly-report="0"]{grid-column:1/-1}}
/* Purpose-bound current-protocol reading within Clinic support review. */
.jas-clinic-protocol { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.jas-clinic-protocol-body { min-width: 0; max-width: 100%; margin-top: 1rem; }
.jas-clinic-protocol-body section { margin-top: 1.5rem; }
.jas-clinic-protocol-field { margin-top: 1rem; min-width: 0; }
.jas-clinic-protocol-field h4 { margin-bottom: .4rem; }
.jas-clinic-protocol-text { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.65; }
.jas-clinic-protocol .jas-btn { min-height: 44px; max-width: 100%; white-space: normal; }
