/* NeXt Chapter Recovery — Brand & UX System v9, additive CSS after existing styles.
   Official mark retained; design tokens align navigation, recovery pathways, public,
   secure portal, and admin. No third-party JS/CSS framework required. */
:root,html[data-theme="light"]{
  --color-bg:#f8f5ef;--color-surface:#faf7f1;--color-surface-2:#fffdfa;
  --color-surface-offset:#f1e9df;--color-surface-dynamic:#e8d9c9;
  --color-divider:#e2d7c9;--color-border:#c9b8a7;
  --color-text:#261c19;--color-text-muted:#62544e;--color-text-faint:#78665b;
  --color-text-inverse:#fffdfa;--color-primary:#7d3526;--color-primary-hover:#652719;
  --color-primary-active:#4b1d14;--color-primary-highlight:#f4ded0;
  --color-accent:#86502d;--color-accent-hover:#6c3c20;--color-accent-highlight:#f8e7cf;
  --color-warm:#b77020;--ncr-ink:#241b18;--ncr-gold:#d79a42;
  --content-wide:1340px;--radius-md:.7rem;--radius-lg:1rem;--radius-xl:1.3rem;
  --shadow-sm:0 2px 7px rgba(48,26,19,.05);--shadow-md:0 12px 28px rgba(48,26,19,.11);
  --shadow-lg:0 28px 65px rgba(48,26,19,.14);
}
html[data-theme="dark"]{
  --color-bg:#1d1917;--color-surface:#27201c;--color-surface-2:#302720;
  --color-surface-offset:#332923;--color-surface-dynamic:#3d322b;
  --color-divider:#55463b;--color-border:#705847;
  --color-text:#fff5e8;--color-text-muted:#d8c5b2;--color-text-faint:#b4a092;
  --color-text-inverse:#fff8ee;--color-primary:#ae583e;--color-primary-hover:#91422e;
  --color-primary-active:#7a3323;--color-primary-highlight:#513022;
  --color-accent:#ddb385;--color-accent-hover:#c59b71;--color-accent-highlight:#423024;
  --color-warm:#e3a450;--ncr-ink:#1d1511;--ncr-gold:#efc079;
}
body{overflow-wrap:break-word;font-kerning:normal}main{min-width:0}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--ncr-gold)!important;outline-offset:3px}
:where(button,a,input,textarea,select){min-height:0}
::selection{background:rgba(213,146,64,.32);color:var(--color-text)}
.ncr-skip:focus,.sr-only.ncr-skip:focus{position:fixed!important;z-index:9999;top:.5rem;left:.5rem;width:auto!important;height:auto!important;padding:.8rem 1.1rem!important;background:#fff;clip:auto!important;color:#241b18!important;border-radius:12px;box-shadow:0 0 0 3px #d79a42}
/* Safety contact strip is above page navigation, never a floating chat blocker. */
.ncr-crisis{background:var(--ncr-ink);color:#f5e8d7;padding:.42rem 0;font-size:.76rem;font-weight:600;letter-spacing:.01em}
.ncr-crisis-inner{display:flex;align-items:center;justify-content:space-between;gap:.45rem 1.25rem;flex-wrap:wrap}
.ncr-crisis a{color:#ffdb9d;text-decoration:underline;text-underline-offset:3px;font-weight:800}
.ncr-crisis a:hover{color:#fff}
.ncr-public .site-header{z-index:180;background:color-mix(in srgb,var(--color-surface-2) 95%,transparent);padding-block:.55rem;box-shadow:0 5px 22px rgba(47,25,18,.08);border-bottom:1px solid var(--color-divider)}
.ncr-public .header-inner{gap:clamp(.5rem,1vw,1.25rem);position:relative}
.ncr-brand{min-width:0;gap:.75rem;flex-shrink:0}
.ncr-brand-emblem{width:clamp(52px,5.5vw,70px);height:clamp(52px,5.5vw,70px);object-fit:contain;border-radius:12px;background:#fff;flex-shrink:0;border:1px solid #eadccd;box-shadow:0 4px 10px rgba(36,27,24,.06)}
.ncr-public .logo-text{gap:.28rem}
.ncr-public .logo-title{font-family:var(--font-display);color:var(--color-text);font-size:clamp(1rem,1.3vw,1.27rem);line-height:1.12;max-width:13rem;font-weight:780}
.ncr-public .logo-title span{color:var(--color-primary)}
.ncr-public .logo-sub{font-size:.66rem;letter-spacing:.07em;text-transform:uppercase;font-weight:800;line-height:1.5}
.ncr-desktop-nav{display:flex;align-items:center;justify-content:flex-end;flex:1;gap:clamp(.1rem,.45vw,.55rem);min-width:0}
.ncr-desktop-nav .nav-link{font-size:clamp(.76rem,.85vw,.92rem);padding:.7rem clamp(.45rem,.8vw,.95rem);white-space:nowrap;color:var(--color-text);font-weight:750}
.ncr-desktop-nav .nav-link:hover{color:var(--color-primary);background:var(--color-primary-highlight)}
.ncr-desktop-nav .nav-cta,.ncr-public .mobile-nav .nav-cta{color:#fffdfa!important;background:var(--color-primary);box-shadow:0 5px 14px rgba(83,31,21,.13)}
.ncr-desktop-nav .nav-cta:hover{color:#fff!important;background:var(--color-primary-hover)!important}
.ncr-dropdown{position:relative;list-style:none;flex:0 0 auto}
.ncr-dropdown summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem}
.ncr-dropdown summary::-webkit-details-marker{display:none}
.ncr-dropdown[open] summary{background:var(--color-primary-highlight);color:var(--color-primary)}
.ncr-dropdown-panel{display:grid;gap:.2rem;position:absolute;top:calc(100% + .5rem);left:-.55rem;z-index:240;min-width:238px;max-width:295px;background:var(--color-surface-2);padding:.6rem;border:1px solid var(--color-divider);border-radius:16px;box-shadow:0 18px 48px rgba(34,21,13,.16)}
.ncr-dropdown-panel a{display:block;font-size:.86rem;font-weight:650;text-decoration:none;color:var(--color-text);padding:.7rem .8rem;border-radius:8px;line-height:1.4}
.ncr-dropdown-panel a:hover,.ncr-dropdown-panel a:focus-visible{background:var(--color-primary-highlight);color:var(--color-primary)}
.ncr-header-actions{display:flex;align-items:center;gap:.4rem}
.ncr-header-actions button{border:1px solid var(--color-divider);background:var(--color-surface-2);border-radius:12px;min-width:42px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text)}
.ncr-header-actions button:hover{border-color:var(--color-primary);color:var(--color-primary)}
.ncr-public .menu-btn{display:none}
.ncr-public .mobile-nav{display:none;z-index:220;max-height:min(80dvh,700px);overflow-y:auto;background:var(--color-surface-2);border:1px solid var(--color-divider);border-top:4px solid var(--ncr-gold);border-radius:0 0 18px 18px;box-shadow:0 20px 35px rgba(34,21,13,.22);padding:1.2rem 1.35rem 1.5rem}
.ncr-public .mobile-nav.open{display:flex!important}
.ncr-mobile-heading{font-family:var(--font-display);font-size:1.3rem;font-weight:800;color:var(--color-primary);margin-bottom:.2rem}
.ncr-mobile-help{font-size:.82rem;color:var(--color-text-muted);border-top:1px solid var(--color-divider);padding-top:1rem}
/* Branded, readable public pages. Body content intentionally calmer than the dramatic emblem. */
.ncr-public .hero{background:radial-gradient(ellipse at 74% 36%,#f3ddbb 0%,transparent 40%),linear-gradient(133deg,var(--color-bg),var(--color-surface-offset));border-bottom:1px solid var(--color-divider)}
html[data-theme=dark] .ncr-public .hero{background:linear-gradient(155deg,#2d231e,var(--color-bg))}
.ncr-public .hero-inner{gap:clamp(1.5rem,5vw,4.5rem)}
.ncr-public .hero h1{font-weight:410;font-size:clamp(2.3rem,5vw,4.8rem);letter-spacing:-.035em}
.ncr-public .hero h1 strong{font-size:1.04em;font-style:normal}
.ncr-public .hero-desc{max-width:57ch;line-height:1.65}
.ncr-hero-brand{position:relative;padding:clamp(1rem,3vw,2.5rem);border:1px solid #e8d5b7;border-radius:2rem;background:#fff;box-shadow:0 30px 75px rgba(76,45,19,.15)}
.ncr-hero-brand img{width:100%;height:auto;max-height:590px;object-fit:contain}
.ncr-public section{scroll-margin-top:6rem}
.ncr-public .btn,.ncr-public .nav-cta{min-height:44px;justify-content:center}
.ncr-public .btn-primary,.ncr-public .admin-btn{color:#fffdfa}
.ncr-public .btn:hover,.ncr-public .admin-btn:hover{transform:translateY(-1px)}
.ncr-public :where(input,select,textarea){max-width:100%}
.ncr-public :where(.service-card,.resource-card,.post-card,.contact-form,.faq-list,.admin-card){border-radius:var(--radius-xl)}
.ncr-public .post-card,.ncr-public .service-card,.ncr-public .resource-card{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.ncr-public .post-card:hover,.ncr-public .service-card:hover,.ncr-public .resource-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.ncr-public .form-note{line-height:1.55}
.ncr-footer-brand{display:flex;align-items:center;gap:.9rem;margin-bottom:1rem}
.ncr-footer-brand img{object-fit:contain;border-radius:12px;background:white;flex-shrink:0}
.ncr-footer-brand .logo-title{font-size:1.12rem;color:var(--color-text);font-weight:800}
/* App surfaces — retain all existing page widgets/routes and the existing fixed sidebar shell. */
body.app-body{background:var(--color-bg)!important;color:var(--color-text)}
body.app-body .app-sidebar{background:#261c19!important;color:#fff3e9;border-right:1px solid #49362c}
body.app-body .app-sidebar-head{background:linear-gradient(135deg,#241b18,#552d21)!important;border-bottom:1px solid rgba(255,255,255,.13)}
body.app-body .app-brand{gap:.8rem}
body.app-body .ncr-app-brand-mark{height:56px!important;width:56px!important;padding:0!important;border-radius:10px!important;overflow:hidden;background:white!important;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
body.app-body .ncr-app-brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
body.app-body .app-menu-label{font-size:.68rem;letter-spacing:.11em;color:#e3b68d!important}
body.app-body .app-menu a{color:#f4e9e0!important;border-radius:11px;display:flex;align-items:center;gap:.6rem;min-height:40px;line-height:1.25!important;white-space:normal}
body.app-body .app-menu a:hover,body.app-body .app-menu a:focus-visible{background:#50342a!important}
body.app-body .app-menu a.active{background:#793823!important;box-shadow:inset 3px 0 #eab771;color:#fff!important}
body.app-body .app-menu a span{flex-shrink:0}
body.app-body .app-topbar,body.app-body .app-topbar-v6{border-bottom:1px solid var(--color-divider)!important;background:color-mix(in srgb,var(--color-surface-2) 94%,transparent)!important;color:var(--color-text);box-shadow:0 6px 20px rgba(49,28,17,.065)!important}
html[data-theme=dark] body.app-body .app-topbar,html[data-theme=dark] body.app-body .app-topbar-v6{background:#30241f!important}
body.app-body .app-content{max-width:1500px!important;padding:clamp(1rem,2vw,2.25rem)!important}
body.app-body .admin-card,body.app-body .app-page-title,body.app-body .app-hero-card{background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-divider);border-radius:17px;box-shadow:0 7px 25px rgba(39,24,18,.055);min-width:0}
body.app-body .app-topbar h1{font-size:clamp(1rem,2vw,1.45rem);overflow-wrap:anywhere}
body.app-body .app-link,body.app-body .ncr-app-theme{display:inline-flex;align-items:center;justify-content:center;min-height:40px;border:1px solid var(--color-divider);border-radius:10px;padding:.5rem .75rem;text-decoration:none;color:var(--color-text);font-weight:700;background:var(--color-surface-2);font-size:.84rem}
body.app-body .ncr-app-theme:hover{background:var(--color-primary-highlight)}
body.app-body .app-menu-toggle{min-width:43px;min-height:43px;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:11px;background:var(--color-surface-2);color:var(--color-text)}
body.app-body .admin-table{width:100%;max-width:100%;overflow-wrap:anywhere}
body.app-body .admin-table td,body.app-body .admin-table th{border-color:var(--color-divider)}
body.app-body .admin-input,body.app-body .admin-select,body.app-body .admin-textarea{background:var(--color-surface-2);color:var(--color-text);border-color:var(--color-border);max-width:100%}
body.app-body .app-topbar-actions{display:flex!important;flex-wrap:wrap;gap:.45rem;align-items:center}
body.app-body.sidebar-open{overflow:hidden}
.ncr-health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr));gap:1rem}
.ncr-health-tile{border-radius:14px;border:1px solid var(--color-divider);padding:1rem;background:var(--color-surface);min-width:0}
.ncr-health-tile strong{display:block;font-size:.98rem;margin-bottom:.4rem}
.ncr-health-tile small{display:block;color:var(--color-text-muted);font-size:.85rem}
.ncr-check{display:inline-block;padding:.2rem .5rem;border-radius:10px;background:#e0f0df;color:#24572c;font-size:.75rem;font-weight:800;margin-bottom:.5rem}
.ncr-check--warn{background:#fff0cd;color:#6c4216}
.ncr-health-tile code{font-size:.85rem;overflow-wrap:anywhere}
@media(max-width:1180px){
  .ncr-public .ncr-desktop-nav{display:none!important}
  .ncr-public .menu-btn{display:inline-flex!important}
  .ncr-public .mobile-nav:not(.open){display:none!important}
}
@media(max-width:800px){
  .ncr-public .hero-inner{grid-template-columns:1fr}
  .ncr-public .hero-img-wrap.ncr-hero-brand{display:block;width:min(100%,390px);margin:0 auto}
  .ncr-public .hero{padding:clamp(2.3rem,6vw,4rem) 0}
  .ncr-crisis-inner{justify-content:center;text-align:center}
  body.app-body .app-content{padding:1rem!important}
  body.app-body .app-topbar{flex-wrap:wrap}
  body.app-body .app-topbar-actions{width:auto;max-width:100%}
}
@media(max-width:540px){
  .ncr-public .container,.ncr-public .container--wide,.ncr-public .container--narrow{padding-inline:1rem}
  .ncr-public .logo-title{font-size:.9rem;max-width:9rem}
  .ncr-public .logo-sub{font-size:.58rem}
  .ncr-public .header-inner{gap:.35rem}
  .ncr-brand{gap:.38rem}
  .ncr-brand-emblem{height:49px;width:49px}
  .ncr-header-actions{gap:.22rem}
  .ncr-header-actions button{min-width:38px;min-height:38px}
  .ncr-public .mobile-nav{padding:1rem}
  .ncr-public .hero h1{font-size:clamp(2.15rem,10vw,3.4rem)}
  body.app-body .app-topbar-actions{display:flex!important;order:3;width:100%}
  body.app-body .app-link,body.app-body .ncr-app-theme{font-size:.78rem;min-height:36px}
  body.app-body .admin-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  .ncr-public .post-card:hover,.ncr-public .service-card:hover,.ncr-public .resource-card:hover,.ncr-public .btn:hover{transform:none}
  *{scroll-behavior:auto!important}
}
