/* Chance Publishers — premium portal design system.
   Palette is taken from the logo itself: deep forest #052D1A, brand green #064F28,
   gold #FFD24C (dark gold #B07A00), warm cream. Glow is used ONLY for active/important
   states; everything animated has a prefers-reduced-motion fallback at the bottom. */
:root{
  --cp-forest:#052D1A;--cp-forest-2:#073b22;--cp-green:#064F28;--cp-emerald:#0f9d58;--cp-glow:rgba(30,190,110,.45);
  --cp-gold:#FFD24C;--cp-gold-dark:#B07A00;--cp-gold-glow:rgba(255,210,76,.6);--cp-gold-shine:linear-gradient(145deg,#FFF0A8 0%,#FFD24C 38%,#F2B400 100%);
  --cp-cream:#f7f2e4;--cp-paper:#fffdf6;--cp-ink:#000;--cp-line:#e6dfc8;--cp-muted:#000;
  --cp-serif:"Fraunces","Playfair Display",Georgia,serif;
  /* re-point the existing portal tokens at the logo palette so every page inherits it */
  --green:#0a6a36;--deep-green:#064F28;--yellow:#FFD24C;--yellow-shadow:#B07A00;--gold:#FFD24C;
  --surface-2:#f7f3e8;--text:#000;--muted:#000;--line:#e6dfc8;--soft-green:#e5efe4;
}
body{background:var(--cp-cream)}
.portal-sidebar{background:radial-gradient(120% 60% at 0% 0%,#0a5a30 0%,transparent 55%),linear-gradient(180deg,var(--cp-forest) 0%,#04200f 100%)}
.portal-sidebar nav a{transition:background .18s ease,box-shadow .18s ease,color .18s ease}
.portal-sidebar nav a.active{background:linear-gradient(90deg,rgba(255,210,76,.22),rgba(255,255,255,.06));box-shadow:inset 3px 0 0 var(--cp-gold),0 0 18px -4px var(--cp-gold-glow);color:#fff}
.portal-main h1,.cp-serif{font-family:var(--cp-serif);font-weight:600;letter-spacing:-.01em}

/* entrance */
@keyframes cp-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.cp-reveal{animation:cp-rise .55s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0) * 70ms)}

/* hero */
.cp-hero{position:relative;overflow:hidden;border-radius:22px;padding:clamp(1.4rem,3vw,2.4rem);color:#fff;background:radial-gradient(90% 140% at 100% 0%,rgba(255,210,76,.28),transparent 55%),radial-gradient(70% 100% at 0% 100%,rgba(15,157,88,.28),transparent 60%),linear-gradient(135deg,var(--cp-forest) 0%,var(--cp-green) 100%);box-shadow:0 18px 40px -22px rgba(5,45,26,.7)}
.cp-hero h1{margin:.2rem 0 .3rem;font-size:clamp(1.7rem,3.4vw,2.5rem);color:#fff}
.cp-hero p{margin:0;color:#fff;max-width:46ch}
.cp-hero-tag{position:absolute;right:clamp(1rem,3vw,2.2rem);top:50%;transform:translateY(-50%);text-align:right;font-family:var(--cp-serif);font-style:italic;font-size:clamp(1rem,1.8vw,1.35rem);line-height:1.35;color:var(--cp-gold)}
@media(max-width:760px){.cp-hero-tag{display:none}}

/* KPI cards */
.cp-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;margin:1.1rem 0 1.8rem}
@media(max-width:1199px){.cp-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.cp-kpis>[data-financial]{grid-column:span 2}}
@media(max-width:699px){.cp-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cp-kpis>[data-financial]{grid-column:1/-1}}
.cp-kpi{position:relative;display:grid;gap:.15rem;padding:1.15rem 1.2rem;border-radius:18px;text-decoration:none;color:#fff;background:linear-gradient(160deg,var(--cp-green),var(--cp-forest));border:1px solid rgba(255,210,76,.28);box-shadow:0 10px 24px -16px rgba(5,45,26,.8);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
a.cp-kpi:hover{transform:translateY(-3px);border-color:var(--cp-gold);box-shadow:0 16px 30px -14px rgba(5,45,26,.85),0 0 22px -6px var(--cp-gold-glow)}
.cp-kpi:focus-visible,.cp-card-link:focus-visible,.cp-eye:focus-visible{outline:3px solid #ffd978;outline-offset:3px}
.cp-kpi-label{font-size:.78rem;font-weight:800;letter-spacing:.03em;color:#fff}
.cp-kpi-num{font-family:var(--cp-serif);font-size:2.1rem;font-weight:600;line-height:1.1;color:#fff;font-variant-numeric:tabular-nums}
.cp-kpi-go{font-size:.74rem;font-weight:800;color:var(--cp-gold)}
.cp-kpi-go i{font-style:normal;display:inline-block;transition:transform .2s ease}
a.cp-kpi:hover .cp-kpi-go i{transform:translateX(4px)}
.cp-kpi-icon{position:absolute;right:1rem;top:1rem;font-size:1.5rem;opacity:.85}
.cp-money-row{display:flex;align-items:center;gap:.5rem;min-height:2.4rem}
.cp-eye{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,210,76,.5);background:rgba(255,255,255,.08);color:var(--cp-gold);cursor:pointer;transition:background .15s ease,box-shadow .15s ease}
.cp-eye:hover{background:rgba(255,210,76,.2);box-shadow:0 0 14px -2px var(--cp-gold-glow)}
.cp-eye svg{width:18px;height:18px}.cp-eye .off{display:none}.cp-eye[aria-pressed="true"] .on{display:none}.cp-eye[aria-pressed="true"] .off{display:block}
.cp-kpi-num.cp-money{font-size:1.35rem;white-space:nowrap}.cp-money .cp-money-hidden{letter-spacing:.08em}.cp-money .cp-money-shown{display:none}
.cp-money.is-visible .cp-money-hidden{display:none}.cp-money.is-visible .cp-money-shown{display:inline;animation:cp-rise .35s ease both}
.cp-light .cp-money{color:#000}

/* section header */
.cp-section{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin:1.8rem 0 .9rem}
.cp-section h2{margin:0;font-family:var(--cp-serif);font-size:1.45rem;font-weight:600;color:#000}
.cp-section a{color:var(--cp-green);font-weight:800;font-size:.82rem;text-decoration:none}.cp-section a:hover{text-decoration:underline}

/* book covers + cards */
.cp-cover{position:relative;aspect-ratio:2/3;border-radius:6px 10px 10px 6px;overflow:hidden;background:linear-gradient(150deg,var(--cp-green),var(--cp-forest));box-shadow:0 10px 22px -10px rgba(5,45,26,.7),inset 4px 0 0 rgba(0,0,0,.18);display:grid;place-items:center;color:var(--cp-gold)}
.cp-cover img{width:100%;height:100%;object-fit:cover}
.cp-cover-ph{padding:.7rem;text-align:center;border:1px solid rgba(255,210,76,.45);border-radius:4px;margin:7%;width:86%;height:86%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem}
.cp-cover-ph b{font-family:var(--cp-serif);font-size:.72em;line-height:1.2;color:#fff;overflow-wrap:break-word;hyphens:auto}.cp-cover-ph span{font-size:.55em;letter-spacing:.18em;font-weight:800;color:var(--cp-gold)}
.cp-books{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}
.cp-book{display:grid;grid-template-columns:84px 1fr;gap:.9rem;padding:.9rem;border-radius:18px;background:var(--cp-paper);border:1px solid var(--cp-line);text-decoration:none;color:#000;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.cp-book:hover{transform:translateY(-4px);border-color:var(--cp-gold);box-shadow:0 16px 28px -16px rgba(5,45,26,.5),0 0 20px -8px var(--cp-gold-glow)}
.cp-book:focus-visible{outline:3px solid var(--cp-gold);outline-offset:2px}
.cp-book h3{margin:0;font-family:var(--cp-serif);font-size:1rem;line-height:1.25}
.cp-book small{display:block;color:#000;font-size:.74rem;font-weight:700;margin:.15rem 0}
.cp-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:99px;font-size:.64rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase;background:#e5efe4;color:var(--cp-green);border:1px solid #cfe0cd}
.cp-badge.gold{background:#fbf0d4;color:#000;border-color:#F5DD84}.cp-badge.dark{background:var(--cp-forest);color:var(--cp-gold);border-color:rgba(255,210,76,.4)}
.cp-progress{height:7px;border-radius:99px;background:#e9e4cf;overflow:hidden;margin:.45rem 0}
.cp-progress>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--cp-emerald),var(--cp-gold));box-shadow:0 0 10px var(--cp-glow);transform-origin:left;animation:cp-grow 1.1s cubic-bezier(.2,.7,.2,1) both}
@keyframes cp-grow{from{transform:scaleX(0)}to{transform:none}}
.cp-pct{font-size:.72rem;font-weight:900;color:var(--cp-green)}

/* people */
.cp-avatar{--s:34px;width:var(--s);height:var(--s);border-radius:50%;flex:0 0 var(--s);display:grid;place-items:center;overflow:hidden;font-weight:800;font-size:calc(var(--s) * .36);color:var(--cp-gold);background:linear-gradient(145deg,var(--cp-green),var(--cp-forest));border:2px solid var(--cp-paper);box-shadow:0 0 0 1px var(--cp-line)}
.cp-avatar img{width:100%;height:100%;object-fit:cover}
.cp-avatars{display:flex}.cp-avatars .cp-avatar+.cp-avatar{margin-left:-9px}.cp-avatars em{font-style:normal;margin-left:.4rem;align-self:center;font-size:.72rem;font-weight:800;color:#000}

/* publishing pipeline */
.cp-pipeline{position:relative;padding:1.4rem 1.2rem 1.1rem;border-radius:20px;background:var(--cp-paper);border:1px solid var(--cp-line);box-shadow:0 12px 28px -22px rgba(5,45,26,.6)}
.cp-pipe-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.2rem}
.cp-pipe-head h2{margin:0;font-family:var(--cp-serif);font-size:1.5rem}.cp-pipe-head p{margin:.2rem 0 0;color:#000;font-size:.85rem}
.cp-pipe-overall{min-width:200px;text-align:right}.cp-pipe-overall b{font-family:var(--cp-serif);font-size:1.5rem;color:var(--cp-green)}
.cp-stages{--n:6;position:relative;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));list-style:none;margin:0;padding:0;counter-reset:st}
.cp-stage{position:relative;display:grid;justify-items:center;text-align:center;gap:.35rem;padding:0 .3rem}
.cp-stage::before{content:"";position:absolute;top:24px;left:-50%;width:100%;height:4px;border-radius:4px;background:#e4ddc3;z-index:0}
.cp-stage:first-child::before{display:none}
.cp-stage.done::before,.cp-stage.current::before{background:linear-gradient(90deg,var(--cp-emerald),var(--cp-emerald));box-shadow:0 0 10px var(--cp-glow);transform-origin:left;animation:cp-draw .9s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0) * 120ms)}
.cp-stage.current::before{background:linear-gradient(90deg,var(--cp-emerald),var(--cp-gold));background-size:200% 100%;animation:cp-draw .9s cubic-bezier(.2,.7,.2,1) both,cp-flow 5s linear 1s infinite}
@keyframes cp-draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes cp-flow{to{background-position:-200% 0}}
.cp-node{position:relative;z-index:1;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:1rem;background:var(--cp-paper);border:3px solid #d9d2b6;color:#a29c82}
.cp-stage.done .cp-node{background:var(--cp-emerald);border-color:var(--cp-emerald);color:#fff;box-shadow:0 0 14px -2px var(--cp-glow)}
.cp-stage.done .cp-node svg{animation:cp-pop .5s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(var(--i,0) * 120ms + .3s)}
@keyframes cp-pop{from{transform:scale(0) rotate(-20deg)}to{transform:none}}
.cp-stage.current .cp-node{background:radial-gradient(circle,#0e7a40,var(--cp-green));border-color:var(--cp-gold);color:#fff;box-shadow:0 0 0 5px rgba(255,210,76,.18),0 0 26px var(--cp-gold-glow);animation:cp-breathe 3.6s ease-in-out infinite}
@keyframes cp-breathe{50%{box-shadow:0 0 0 9px rgba(255,210,76,.1),0 0 38px var(--cp-glow)}}
.cp-stage-name{font-weight:800;font-size:.8rem;color:#000;min-height:2.4em;display:flex;align-items:center}
@media(max-width:1100px){.cp-stage-name{min-height:0}}.cp-stage.upcoming .cp-stage-name{color:#000}
.cp-stage-sub{font-size:.68rem;font-weight:800;letter-spacing:.03em;color:#000}
.cp-stage.done .cp-stage-sub,.cp-stage.current .cp-stage-sub{color:#000}
.cp-stage-person{display:flex;align-items:center;gap:.4rem;margin-top:.2rem;padding:.25rem .5rem .25rem .25rem;border-radius:99px;background:#f2ecd6;text-decoration:none;color:#000;font-size:.7rem;font-weight:800;max-width:100%;transition:background .15s ease}
a.cp-stage-person:hover{background:#ecdfb4}.cp-stage-person .cp-avatar{--s:24px}.cp-stage-person span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp-stage-person small{display:block;font-size:.6rem;color:#000;font-weight:700}
/* current / next stage panels */
.cp-panels{display:grid;grid-template-columns:2fr 1fr;gap:1rem;margin-top:1rem}
.cp-panel{padding:1.2rem 1.3rem;border-radius:18px;background:var(--cp-paper);border:1px solid var(--cp-line)}
.cp-panel.cur{border-color:rgba(255,210,76,.6);box-shadow:0 0 0 1px rgba(255,210,76,.25),0 14px 30px -20px var(--cp-gold-glow)}
.cp-panel small.k{display:block;font-size:.66rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:#000}
.cp-panel h3{margin:.25rem 0 .4rem;font-family:var(--cp-serif);font-size:1.3rem}.cp-panel p{margin:0 0 .7rem;color:#000;font-size:.85rem}
.cp-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.6rem;margin:.8rem 0 0}.cp-facts dt{font-size:.62rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#000}.cp-facts dd{margin:.1rem 0 0;font-weight:800;font-size:.84rem}
.cp-person{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:#000}.cp-person .cp-avatar{--s:46px}.cp-person b{display:block}.cp-person small{color:#000;font-weight:700}
a.cp-person:hover b{text-decoration:underline}
@media(max-width:900px){.cp-panels{grid-template-columns:1fr}}
/* narrow content area (tablet + mobile): vertical journey */
@media(max-width:1100px){
  .cp-stages{grid-template-columns:1fr;gap:0}
  .cp-stage{grid-template-columns:48px 1fr;justify-items:start;text-align:left;column-gap:.9rem;padding:0 0 1.1rem}
  .cp-stage::before,.cp-stage:first-child::before{display:block;top:48px;left:22px;width:4px;height:calc(100% - 48px);transform-origin:top;background:#e4ddc3;box-shadow:none;animation:none}
  .cp-stage:last-child::before{display:none}
  .cp-stage.done::before{background:var(--cp-emerald);box-shadow:0 0 10px var(--cp-glow);animation:cp-draw-y .9s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0) * 120ms)}
  .cp-stage.current::before{background:linear-gradient(180deg,var(--cp-gold),#e4ddc3);animation:none}
  .cp-stage .cp-node{grid-row:1 / span 3}
  @keyframes cp-draw-y{from{transform:scaleY(0)}to{transform:scaleY(1)}}
  .cp-pipe-overall{text-align:left}
}
.cp-empty{padding:2rem 1.4rem;border-radius:18px;text-align:center;background:var(--cp-paper);border:1px dashed var(--cp-line)}
.cp-empty h3{margin:0 0 .3rem;font-family:var(--cp-serif)}.cp-empty p{margin:0 0 .8rem;color:#000}
.cp-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.65rem 1.1rem;border-radius:12px;font-weight:800;font-size:.84rem;text-decoration:none;background:var(--cp-green);color:#fff;border:1px solid rgba(255,210,76,.5);box-shadow:0 4px 0 var(--cp-forest);transition:transform .12s ease,box-shadow .12s ease}
.cp-btn:hover{box-shadow:0 4px 0 var(--cp-forest),0 0 18px -4px var(--cp-gold-glow);transform:translateY(-1px)}.cp-btn:active{transform:translateY(2px);box-shadow:0 2px 0 var(--cp-forest)}
@media(prefers-reduced-motion:reduce){
  .cp-progress>i,.cp-reveal,.cp-stage::before,.cp-stage.done .cp-node svg,.cp-stage.current .cp-node,.cp-money.is-visible .cp-money-shown{animation:none!important}
  .cp-progress>i,a.cp-kpi,.cp-book,.cp-btn,.portal-sidebar nav a{transition:none!important}
  a.cp-kpi:hover,.cp-book:hover{transform:none}
}
.cp-eye-light{border-color:var(--cp-line);background:var(--cp-paper);color:var(--cp-green)}
.cp-eye-light:hover{background:#f2ecd6}
.cp-eye:focus-visible{outline:3px solid var(--cp-gold)}

/* ===== Premium shell: sidebar + top bar (prefixed .portal-shell to win over the layout's base rules) ===== */
.portal-shell .portal-sidebar{padding:1.1rem .85rem;background:radial-gradient(120% 45% at 0% 0%,rgba(15,157,88,.28),transparent 60%),radial-gradient(90% 35% at 100% 100%,rgba(255,210,76,.12),transparent 60%),linear-gradient(180deg,#063a21 0%,var(--cp-forest) 100%);border-right:1px solid rgba(255,210,76,.18)}
.portal-shell .portal-logo{padding:.55rem .8rem;background:linear-gradient(180deg,#fffdf6,#f4eed9);border:1px solid rgba(255,210,76,.45);border-radius:14px;box-shadow:0 8px 20px -12px rgba(0,0,0,.6)}
.portal-shell .portal-sidebar-head{margin-bottom:1rem}
.portal-shell .portal-identity{background:linear-gradient(135deg,rgba(255,255,255,.09),rgba(255,255,255,.03));border:1px solid rgba(255,210,76,.22);border-radius:14px;margin-bottom:1rem}
.portal-shell .portal-avatar{background:var(--cp-gold-shine);color:#000;box-shadow:0 0 0 2px rgba(5,45,26,.9),0 0 0 3.5px rgba(255,210,76,.55)}
.portal-shell .portal-identity small{color:var(--cp-gold);letter-spacing:.08em}
.portal-shell .portal-sidebar nav{gap:.1rem;scrollbar-width:thin;scrollbar-color:rgba(255,210,76,.35) transparent;padding-right:.15rem}
.portal-shell .nav-group-label{display:flex;align-items:center;gap:.5rem;padding:.9rem .75rem .35rem;color:rgba(255,210,76,.75);font-size:.6rem;letter-spacing:.14em}
.portal-shell .nav-group-label::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(255,210,76,.3),transparent)}
.portal-shell .portal-sidebar nav a{position:relative;gap:.7rem;padding:.5rem .6rem;border-radius:12px;color:#fff;font-weight:700;font-size:.84rem}
.portal-shell .nav-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:rgba(255,255,255,.06);color:#fff;flex:0 0 32px;transition:background .18s ease,color .18s ease,box-shadow .18s ease}
.portal-shell .nav-icon .nav-svg{display:block}.nav-dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.portal-shell .nav-label{min-width:0;line-height:1.25}
.portal-shell .portal-sidebar nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.portal-shell .portal-sidebar nav a:hover .nav-icon{background:rgba(255,210,76,.18);color:var(--cp-gold)}
.portal-shell .portal-sidebar nav a.active{background:linear-gradient(90deg,rgba(255,210,76,.24),rgba(255,210,76,.04));color:#fff;box-shadow:inset 0 0 0 1px rgba(255,210,76,.35),0 0 22px -8px var(--cp-gold-glow)}
.portal-shell .portal-sidebar nav a.active::before{content:"";position:absolute;left:-.85rem;top:22%;bottom:22%;width:4px;border-radius:0 4px 4px 0;background:var(--cp-gold);box-shadow:0 0 12px var(--cp-gold-glow)}
.portal-shell .portal-sidebar nav a.active .nav-icon{background:var(--cp-gold-shine);color:#000;box-shadow:0 0 14px -2px var(--cp-gold-glow)}
.portal-shell .portal-sidebar nav a:focus-visible,.portal-shell .portal-logout button:focus-visible,.portal-shell .portal-logo:focus-visible{outline:3px solid #ffd978;outline-offset:2px}
.portal-shell .portal-footer-card{background:linear-gradient(145deg,rgba(255,210,76,.16),rgba(255,255,255,.03));border:1px solid rgba(255,210,76,.3);border-radius:14px}
.portal-shell .portal-tagline{font-family:var(--cp-serif);font-style:italic;font-weight:500;color:var(--cp-gold)}
.portal-shell .portal-help{display:flex;align-items:center;gap:.4rem;color:#fff}
.portal-shell .portal-logout button{display:flex;align-items:center;justify-content:center;gap:.5rem;border-color:rgba(255,210,76,.35);border-radius:12px;color:#fff}
.portal-shell .portal-logout button:hover{background:rgba(255,210,76,.14)}
/* top bar */
.portal-shell .portal-topbar{background:rgba(255,253,246,.86);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--cp-line);gap:.8rem}
.topbar-context{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}
.portal-shell .topbar-section{flex:0 0 auto;font-family:inherit;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#000;font-weight:900}
.topbar-sep{color:#000;font-weight:800}
.topbar-title{font-family:var(--cp-serif);font-weight:600;font-size:1.02rem;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.portal-shell .portal-bell{border-radius:12px;border-color:var(--cp-line);background:var(--cp-paper);color:var(--cp-green)}
.portal-shell .portal-bell:hover{background:#f2ecd6;box-shadow:0 0 14px -4px var(--cp-gold-glow)}
.portal-shell .portal-bell-wrap{margin-left:0}
.topbar-me{display:flex;align-items:center;gap:.55rem;padding:.2rem .7rem .2rem .25rem;border:1px solid var(--cp-line);border-radius:99px;background:var(--cp-paper);text-decoration:none;color:#000;font-weight:800;font-size:.8rem;max-width:230px;transition:box-shadow .18s ease,border-color .18s ease}
.topbar-me:hover{border-color:var(--cp-gold);box-shadow:0 0 14px -4px var(--cp-gold-glow)}.topbar-me:focus-visible{outline:3px solid var(--cp-gold);outline-offset:2px}
.topbar-me .portal-avatar{width:30px;height:30px;font-size:.7rem;box-shadow:none}
.topbar-me-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:820px){.topbar-me-name{display:none}.topbar-me{padding:.2rem}.topbar-context{justify-content:center}.portal-shell .topbar-section{display:none}.topbar-sep{display:none}}

@media(prefers-reduced-motion:reduce){.portal-shell .nav-icon,.topbar-me{transition:none!important}}
.portal-shell .portal-bell .nav-icon{background:transparent;color:var(--cp-green);width:auto;height:auto;flex:0 0 auto}

/* ===== Premium skin for the shared portal primitives (cards, tables, tabs, buttons, pills, forms, banners).
   Prefixed .portal-shell .portal-main so it wins over each page's scoped base styles without touching their markup/logic. ===== */
.portal-shell .portal-main{--surface:var(--cp-paper);--surface-2:#f6f1de;--line:var(--cp-line);--text:#000;--muted:#000;--cp-muted:#000;--green:#0a6a36;--deep-green:#064F28}
.portal-shell .portal-main :is(.card,.ws-card,.timeline-block,.completion-status,.approval-card,.alert-card){background:var(--cp-paper);border:1px solid var(--cp-line);border-radius:18px;box-shadow:0 12px 28px -24px rgba(5,45,26,.55)}
.portal-shell .portal-main :is(.card h2,.ws-card-title,.timeline-block h2,.completion-status h2,.section-title){font-family:var(--cp-serif);font-weight:600;color:#000}
.portal-shell .portal-main :is(h2){font-family:var(--cp-serif);font-weight:600}
.portal-shell .portal-main .ws-metric{background:var(--cp-paper);border:1px solid var(--cp-line);border-radius:18px;box-shadow:0 12px 28px -24px rgba(5,45,26,.55);position:relative;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}
.portal-shell .portal-main .ws-metric::before{content:"";position:absolute;left:0;top:14%;bottom:14%;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(180deg,var(--cp-gold),var(--cp-gold-dark))}
.portal-shell .portal-main .ws-metric:hover{transform:translateY(-2px);box-shadow:0 16px 30px -20px rgba(5,45,26,.6)}
.portal-shell .portal-main .ws-metric-label{color:#000;letter-spacing:.09em}
.portal-shell .portal-main .ws-metric-value{font-family:var(--cp-serif);font-weight:600;color:#000}
.portal-shell .portal-main .ws-metric-value.ws-gold{color:#000}
/* tabs */
.portal-shell .portal-main .ws-tabs{gap:.4rem;border-bottom:0;padding:.35rem;background:#efe8cf;border-radius:16px;margin:1.2rem 0 1.5rem;width:fit-content;max-width:100%}
.portal-shell .portal-main .ws-tab{border-radius:12px;border-bottom:0;padding:.55rem .95rem;color:#000;transition:background .15s ease,color .15s ease,box-shadow .15s ease}
.portal-shell .portal-main .ws-tab:hover{background:rgba(255,255,255,.65);color:var(--cp-green)}
.portal-shell .portal-main .ws-tab.is-active{background:linear-gradient(160deg,var(--cp-green),var(--cp-forest));color:#fff;box-shadow:0 8px 18px -10px rgba(5,45,26,.8),0 0 16px -6px var(--cp-gold-glow)}
.portal-shell .portal-main .ws-tab:focus-visible{outline:3px solid var(--cp-gold)}
/* next-action */
.portal-shell .portal-main .ws-next-action{border-radius:20px;background:radial-gradient(80% 160% at 100% 0%,rgba(255,210,76,.2),transparent 60%),linear-gradient(135deg,#eaf3e6,var(--cp-paper));border:1px solid #cfe0cd;box-shadow:0 12px 28px -24px rgba(5,45,26,.55)}
.portal-shell .portal-main .ws-next-action.ws-attention{background:radial-gradient(80% 160% at 100% 0%,rgba(255,210,76,.32),transparent 60%),linear-gradient(135deg,#fbf0d4,var(--cp-paper));border-color:#F5DD84}
.portal-shell .portal-main .ws-next-action-label{color:var(--cp-green);letter-spacing:.1em}
.portal-shell .portal-main .ws-next-action.ws-attention .ws-next-action-label{color:#000}
.portal-shell .portal-main .ws-next-action-body h3{font-family:var(--cp-serif);font-weight:600;font-size:1.2rem}
/* buttons */
.portal-shell .portal-main .ws-btn{border-radius:12px;letter-spacing:.01em}
.portal-shell .portal-main .ws-btn-primary,.portal-shell .portal-main .btn-primary{background:linear-gradient(160deg,var(--cp-green),var(--cp-forest));color:#fff;border:1px solid rgba(255,210,76,.45);box-shadow:0 4px 0 var(--cp-forest)}
.portal-shell .portal-main .ws-btn-primary:hover:not([disabled]):not(.is-disabled),.portal-shell .portal-main .btn-primary:hover:not([disabled]){background:linear-gradient(160deg,#0a6a36,var(--cp-green));box-shadow:0 4px 0 var(--cp-forest),0 0 18px -4px var(--cp-gold-glow)}
.portal-shell .portal-main .ws-btn-secondary{background:var(--cp-paper);color:var(--cp-green);border:1.5px solid var(--cp-green)}
.portal-shell .portal-main .ws-btn-secondary:hover:not([disabled]):not(.is-disabled){background:#e5efe4}
.portal-shell .portal-main .ws-btn-gold{background:var(--cp-gold-shine);color:#000;box-shadow:0 4px 0 var(--cp-gold-dark)}
.portal-shell .portal-main .ws-btn:focus-visible,.portal-shell .portal-main .btn-primary:focus-visible{outline:3px solid var(--cp-gold);outline-offset:2px}
/* pills + chips */
.portal-shell .portal-main :is(.ws-pill-progress,.ws-pill-success,.status-chip,.status-chip.ok){background:#e5efe4;color:var(--cp-green);border-color:#cfe0cd}
.portal-shell .portal-main .ws-pill-neutral{background:#f1ecd8;color:#000;border-color:var(--cp-line)}
.portal-shell .portal-main .ws-pill-attention{background:#fbf0d4;color:#000;border-color:#F5DD84}
/* tables */
.portal-shell .portal-main :is(.table-wrap,.ws-table-wrap){background:var(--cp-paper);border:1px solid var(--cp-line);border-radius:18px;box-shadow:0 12px 28px -24px rgba(5,45,26,.55)}
.portal-shell .portal-main :is(thead,.ws-table th){background:linear-gradient(180deg,#f3edd6,#efe8cf)}
.portal-shell .portal-main :is(th,.ws-table th){color:#000;letter-spacing:.09em}
.portal-shell .portal-main tbody tr{transition:background .12s ease}.portal-shell .portal-main tbody tr:hover{background:#faf5e2}
.portal-shell .portal-main td a{color:var(--cp-green)}
/* banners + errors (still visible, consistently styled) */
.portal-shell .portal-main .banner{border-radius:14px;border:1px solid transparent;border-left-width:4px;box-shadow:0 8px 20px -18px rgba(5,45,26,.5)}
.portal-shell .portal-main .banner.ok{background:#eaf3e6;color:var(--cp-green);border-color:#cfe0cd;border-left-color:var(--cp-emerald)}
.portal-shell .portal-main .banner.error{background:#fdf0ed;color:#9b2c1e;border-color:#f3cfc7;border-left-color:#c0392b}
/* forms */
.portal-shell .portal-main :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=file]){border-color:#ddd5b8;background:#fffefa;border-radius:11px;transition:border-color .15s ease,box-shadow .15s ease}
.portal-shell .portal-main :is(input,select,textarea):not([type=checkbox]):not([type=radio]):focus-visible{outline:none;border-color:var(--cp-emerald);box-shadow:0 0 0 3px rgba(15,157,88,.2)}
.portal-shell .portal-main :is(.ws-empty){background:var(--cp-paper);border:1.5px dashed #d9d0ae;border-radius:18px}
.portal-shell .portal-main .back-link,.portal-shell .portal-main .back{color:var(--cp-green);font-weight:800}
.portal-shell .portal-main .back-link:hover,.portal-shell .portal-main .back:hover{text-decoration:underline}
@media(max-width:700px){.portal-shell .portal-main .ws-tabs{width:auto;border-radius:14px}}
@media(prefers-reduced-motion:reduce){.portal-shell .portal-main .ws-metric,.portal-shell .portal-main .ws-tab{transition:none!important}.portal-shell .portal-main .ws-metric:hover{transform:none}}

/* team member cards (Admin project Team view) */
.cp-team{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1rem}
.cp-member{display:grid;gap:.7rem;padding:1.1rem;border-radius:20px;background:var(--cp-paper);border:1px solid var(--cp-line);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;scroll-margin-top:90px}
.cp-member:hover,.cp-member:target{border-color:var(--cp-gold);box-shadow:0 16px 28px -18px rgba(5,45,26,.5),0 0 20px -8px var(--cp-gold-glow)}
.cp-member:hover{transform:translateY(-3px)}
.cp-member.lead{background:linear-gradient(160deg,#fbf3da,var(--cp-paper));border-color:#F3D675}
.cp-member-head{display:flex;gap:.8rem;align-items:center;text-decoration:none;color:#000}
.cp-member-head b{display:block;font-family:var(--cp-serif);font-size:1.05rem;font-weight:600}.cp-member-head small{display:block;color:#000;font-size:.72rem;font-weight:700}
.cp-member-head:hover b{text-decoration:underline}.cp-member-head:focus-visible{outline:3px solid var(--cp-gold);outline-offset:3px;border-radius:12px}
.cp-role{display:flex;gap:.4rem;flex-wrap:wrap}
.cp-resp{margin:0;color:#000;font-size:.84rem}
.cp-comp{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.6rem;padding:.7rem .8rem;background:#f4efdc;border-radius:12px}
.cp-comp small{display:block;font-size:.6rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:#000}.cp-comp b{font-size:.82rem}
.cp-comp .cp-money{font-size:inherit;font-family:inherit;color:inherit}
@media(prefers-reduced-motion:reduce){.cp-member{transition:none}.cp-member:hover{transform:none}}
.cp-lead{display:inline-flex;align-items:center;gap:.55rem;margin-top:.7rem;padding:.3rem .8rem .3rem .3rem;border-radius:99px;background:linear-gradient(135deg,#fbf0d4,#f6e3ae);border:1px solid #F3D675;text-decoration:none;color:#000;font-weight:800;font-size:.8rem}
.cp-lead small{display:block;font-size:.55rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#000}
a.cp-lead:hover{box-shadow:0 0 16px -4px var(--cp-gold-glow)}a.cp-lead:focus-visible{outline:3px solid var(--cp-gold);outline-offset:2px}

/* "Meet Your Publishing Team" (author) — markup from renderTeamCardsHtml, shared by first paint and live polling */
.portal-shell .team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}
.portal-shell .team-card{display:flex;align-items:center;gap:.95rem;padding:1.1rem 1.15rem;background:var(--cp-paper);border:1px solid var(--cp-line);border-radius:20px;flex-wrap:wrap;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.portal-shell .team-card:hover{border-color:var(--cp-gold);transform:translateY(-3px);box-shadow:0 16px 28px -18px rgba(5,45,26,.5),0 0 20px -8px var(--cp-gold-glow)}
.portal-shell .team-card.is-lead{background:linear-gradient(160deg,#fbf3da,var(--cp-paper));border-color:#F3D675}
.portal-shell .team-card.is-open{background:transparent;border-style:dashed;box-shadow:none;opacity:.8}
.team-avatar-photo,.team-avatar-initials{width:56px;height:56px;flex:0 0 56px;border-radius:50%;border:2px solid var(--cp-paper);box-shadow:0 0 0 1px var(--cp-line)}
.team-avatar-photo{object-fit:cover}
.team-avatar-initials{display:grid;place-items:center;background:linear-gradient(145deg,var(--cp-green),var(--cp-forest));color:var(--cp-gold);font-weight:800;font-size:1rem}
.team-card.is-open .team-avatar-initials{background:#e9e4cf;color:#a29c82}
.team-card-body{display:grid;gap:.12rem;flex:1;min-width:0}
.team-card strong{font-family:var(--cp-serif);font-size:1.05rem;font-weight:600;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.team-card .team-role{justify-self:start;margin:.1rem 0;padding:.15rem .55rem;border-radius:99px;background:#fbf0d4;color:#000;border:1px solid #F5DD84;font-size:.68rem;font-weight:900;letter-spacing:.02em}
.team-card small{color:#000;font-size:.72rem;font-weight:700}
.team-card .contact-line{display:block;color:var(--cp-green);font-size:.76rem;font-weight:700}
.team-card .contact-hidden{display:block;color:#000;font-weight:800;font-size:.62rem;letter-spacing:.08em}
.team-actions{display:flex;gap:.45rem;flex-wrap:wrap;width:100%}
.btn-team-action{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem .85rem;border-radius:11px;background:#e5efe4;color:var(--cp-green);text-decoration:none;font-weight:800;font-size:.76rem;border:1px solid #cfe0cd;min-height:36px}
.btn-team-action:hover{background:#d8e8d6}.btn-team-action.call{background:#fbf0d4;color:#000;border-color:#F5DD84}
.btn-team-action.disabled{background:#f1ecd8;color:#a29c82;border-color:var(--cp-line);cursor:not-allowed}
.btn-team-action:focus-visible{outline:3px solid var(--cp-gold);outline-offset:2px}
@media(prefers-reduced-motion:reduce){.portal-shell .team-card{transition:none}.portal-shell .team-card:hover{transform:none}}

/* ===== Author project page: header hero, next-step, approvals, progress ===== */
.portal-shell .portal-main .book-header{align-items:center;gap:1.6rem;padding:clamp(1.1rem,2.5vw,1.8rem);border-radius:24px;color:#fff;background:radial-gradient(90% 160% at 100% 0%,rgba(255,210,76,.3),transparent 55%),radial-gradient(70% 120% at 0% 100%,rgba(15,157,88,.28),transparent 60%),linear-gradient(135deg,var(--cp-forest),var(--cp-green));box-shadow:0 22px 44px -28px rgba(5,45,26,.85);margin-bottom:1.2rem}
.portal-shell .portal-main .book-header .cp-cover{box-shadow:0 20px 36px -14px rgba(0,0,0,.7),inset 5px 0 0 rgba(0,0,0,.2),0 0 0 1px rgba(255,210,76,.4);font-size:1.2rem}
.portal-shell .portal-main .book-header small{color:var(--cp-gold);letter-spacing:.14em}
.portal-shell .portal-main .book-header h1{color:#fff;font-size:clamp(1.7rem,3.4vw,2.6rem);line-height:1.1}
.portal-shell .portal-main .book-header :is(.subtitle-line,.updated-line){color:#fff}
.portal-shell .portal-main .book-header .isbn-line{color:var(--cp-gold)}
.portal-shell .portal-main .book-header .meta-chip{background:rgba(255,255,255,.1);border-color:rgba(255,210,76,.4);color:#fff}
.portal-shell .portal-main .book-header .status-chip{background:rgba(255,210,76,.2);color:#fff;border:1px solid rgba(255,210,76,.55)}
.portal-shell .portal-main .book-header .ws-btn-secondary{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,210,76,.6)}
.portal-shell .portal-main .book-header .ws-btn-secondary:hover{background:rgba(255,210,76,.2)}
.portal-shell .portal-main .book-header .ws-btn-primary{background:linear-gradient(160deg,var(--cp-gold),#F2B400);color:#000;border-color:transparent;box-shadow:0 4px 0 var(--cp-gold-dark)}
.portal-shell .portal-main .progress-block{padding:.2rem .2rem 0}
.portal-shell .portal-main .progress-track{height:9px;border-radius:99px;background:#e9e4cf}
.portal-shell .portal-main .progress-fill{background:linear-gradient(90deg,var(--cp-emerald),var(--cp-gold));box-shadow:0 0 10px var(--cp-glow);border-radius:99px}
.portal-shell .portal-main .whats-next{border-radius:20px;background:var(--cp-paper);border:1px solid var(--cp-line);box-shadow:0 12px 28px -24px rgba(5,45,26,.55)}
.portal-shell .portal-main .whats-next.is-actionable{background:radial-gradient(80% 160% at 100% 0%,rgba(255,210,76,.3),transparent 60%),linear-gradient(135deg,#fbf0d4,var(--cp-paper));border-color:#F3D675;box-shadow:0 0 28px -10px var(--cp-gold-glow)}
.portal-shell .portal-main .whats-next-icon{background:#e5efe4;color:var(--cp-green)}.portal-shell .portal-main .whats-next.is-actionable .whats-next-icon{background:var(--cp-gold)}
.portal-shell .portal-main .whats-next-label{color:#000;letter-spacing:.1em}
.portal-shell .portal-main .approval-card{background:radial-gradient(80% 160% at 100% 0%,rgba(255,210,76,.3),transparent 60%),linear-gradient(135deg,#fbf0d4,var(--cp-paper));border-color:#F3D675;box-shadow:0 0 26px -10px var(--cp-gold-glow)}
.portal-shell .portal-main .approvals-block h2{color:#000}
.portal-shell .portal-main .completion-banner{border-radius:16px;background:#eaf3e6;border:1px solid #cfe0cd}
.portal-shell .portal-main .live-status{color:#000}
.portal-shell .portal-main .book-header .book-cover{display:none}
.portal-shell .portal-main .ws-tab svg{flex:0 0 auto;opacity:.9}
/* plain file / invoice lists → designed rows */
.portal-shell .portal-main ul.file-list{list-style:none;margin:0 0 1rem;padding:0;display:grid;gap:.55rem}
.portal-shell .portal-main ul.file-list>li{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;padding:.75rem 1rem;border-radius:14px;background:#faf6e6;border:1px solid var(--cp-line);font-weight:700;font-size:.84rem}
.portal-shell .portal-main ul.file-list>li a{margin-left:auto;padding:.3rem .75rem;border-radius:99px;background:#e5efe4;color:var(--cp-green);font-weight:800;font-size:.74rem;text-decoration:none;border:1px solid #cfe0cd}
.portal-shell .portal-main ul.file-list>li a:hover{background:#d8e8d6}
.portal-shell .portal-main ul.file-list>li a:focus-visible{outline:3px solid var(--cp-gold);outline-offset:2px}
.portal-shell .portal-main ul.file-list>li .muted{font-weight:600}
.portal-shell .portal-main :is(.gate-row,.distribution-status-row,.grant-row,.workload-row){background:#faf6e6;border:1px solid var(--cp-line);border-radius:14px}
.portal-shell .portal-main .muted{color:#000}
/* approval actions */
.portal-shell .portal-main .btn-approve{background:linear-gradient(160deg,var(--cp-green),var(--cp-forest));color:#fff;border:1px solid rgba(255,210,76,.45);border-radius:12px;box-shadow:0 4px 0 var(--cp-forest);font-weight:800}
.portal-shell .portal-main .btn-changes{background:var(--cp-paper);border:1.5px solid #c9a24a;color:#000;border-radius:12px}
.portal-shell .portal-main .btn-approve:focus-visible,.portal-shell .portal-main .btn-changes:focus-visible,.portal-shell .portal-main .btn-changes-submit:focus-visible{outline:3px solid var(--cp-gold);outline-offset:2px}
/* loading placeholder (used where the portal genuinely waits on the client, e.g. the notifications panel) */
.cp-skel{position:relative;overflow:hidden;border-radius:12px;background:#efe8cf;color:#000}
.cp-skel::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.7) 50%,transparent 80%);transform:translateX(-100%);animation:cp-shimmer 1.4s ease-in-out infinite}
@keyframes cp-shimmer{to{transform:translateX(100%)}}
@media(prefers-reduced-motion:reduce){.cp-skel::after{animation:none;display:none}}
.portal-shell .portal-main h1{font-family:var(--cp-serif);font-weight:600;letter-spacing:-.01em}
.cp-facts>div{min-width:0}.cp-facts dd{overflow-wrap:anywhere}.cp-facts .ws-pill{white-space:normal;text-align:left;line-height:1.25}
.cp-kpi-label{padding-right:2.2rem}.cp-kpi-icon{color:var(--cp-gold);opacity:.95;display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:rgba(255,210,76,.14);right:.9rem;top:.9rem}
/* WorkspaceHeader nav sits directly inside .ws-head — keep the generic .ws-tabs skin from boxing it */
.portal-shell .portal-main .ws-head .ws-tabs{background:transparent;padding:0;margin:0;width:auto;border-radius:0}

/* Compensation allocation panel (Admin only) */
.cp-alloc{display:grid;gap:.7rem;padding:.9rem 1rem;border-radius:16px;background:#f6f1de;border:1px solid var(--cp-line);color:#000}
.cp-alloc header{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;justify-content:space-between}.cp-alloc header b{font-family:var(--cp-serif);font-size:1.02rem;font-weight:600}
.cp-alloc dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:.6rem;margin:0}
.cp-alloc dl>div{padding:.55rem .7rem;border-radius:12px;background:#fff;border:1px solid var(--cp-line);min-width:0}
.cp-alloc dl>div.hl{background:linear-gradient(160deg,var(--cp-green),var(--cp-forest));border-color:transparent}.cp-alloc dl>div.hl dt,.cp-alloc dl>div.hl dd,.cp-alloc dl>div.hl small{color:#fff}
.cp-alloc dt{font-size:.6rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#000}.cp-alloc dd{margin:.1rem 0 0;font-family:var(--cp-serif);font-size:1.15rem;font-weight:600;color:#000;overflow-wrap:anywhere}
.cp-alloc dd .cp-money{font-size:inherit;font-family:inherit;color:inherit}.cp-alloc small{font-size:.66rem;font-weight:700}
.cp-alloc .note{margin:0;font-size:.78rem;color:#000}.cp-alloc .warn{margin:0;padding:.6rem .8rem;border-radius:12px;background:#fff1c4;border:1px solid #e0b800;color:#000;font-size:.8rem}
.cp-split{display:grid;gap:.5rem;padding:.8rem 1rem;border-radius:16px;background:#fff;border:1.5px solid #e0b800;margin-top:.8rem;color:#000}
.cp-split h3{margin:0;font-size:1rem}.cp-split .row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.cp-split label{display:flex;gap:.4rem;align-items:center;font-weight:800;font-size:.82rem}.cp-split input{width:7rem}

/* Password visibility control */
.cp-pw{position:relative;display:block;width:100%}
.cp-pw>input{width:100%;box-sizing:border-box;padding-right:3rem!important}
.cp-pw-eye{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:10px;background:transparent;color:#000;cursor:pointer}
.cp-pw-eye svg{width:20px;height:20px}.cp-pw-eye .off{display:none}.cp-pw-eye[aria-pressed="true"] .on{display:none}.cp-pw-eye[aria-pressed="true"] .off{display:block}
.cp-pw-eye:hover{background:rgba(5,45,26,.08)}.cp-pw-eye:focus-visible{outline:3px solid var(--cp-green);outline-offset:1px}

/* Colour-contrast corrections: light surface -> black text, dark surface -> white text */
.portal-shell .portal-main .book-header small,.portal-shell .portal-main .book-header .book-meta small{color:#fff!important}
.portal-shell .team-card.is-open .team-avatar-initials{color:#000}
.cp-member{align-content:start}.cp-role{align-items:flex-start}.cp-role .cp-badge{align-self:flex-start}
/* Informational text on DARK surfaces is white; gold stays an accent (borders, icons, glow, decorative taglines) */
.cp-kpi-go,.cp-badge.dark,.portal-shell .portal-identity small,.portal-shell .nav-group-label,.cp-hero small,.ws-header-body small,.ws-title small,.cp-bookhero .cp-bh-next .k,.cp-bh-greet,.cp-fin-grid small,.portal-shell .portal-main .book-header .isbn-line{color:#fff}
.cp-kpi-go i{color:var(--cp-gold)}
.cp-badge.dark{border-color:var(--cp-gold)}

/* ===== 14-working-day schedule ===== */
.cp-sched{padding:1.2rem 1.3rem;border-radius:22px;background:var(--cp-paper);border:1px solid var(--cp-line);color:#000}
.cp-sched-head{display:flex;gap:1rem;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;margin-bottom:1rem}.cp-sched-head h2{margin:0 0 .25rem;font-size:1.35rem}.cp-sched-head p{margin:0;font-size:.84rem;max-width:70ch}
.cp-sched-start{display:flex;gap:.5rem;align-items:flex-end;flex-wrap:wrap}.cp-sched-start label{display:grid;gap:.2rem;font-size:.7rem;font-weight:800}
.cp-gantt{display:grid;gap:.35rem;overflow-x:auto}.cp-g-row{display:grid;grid-template-columns:minmax(190px,230px) repeat(var(--days),minmax(34px,1fr));align-items:center;gap:2px;min-width:760px}
.cp-g-head .cp-g-day{font-size:.68rem;font-weight:900;text-align:center;color:#000;border-bottom:2px solid var(--cp-line);padding-bottom:.2rem}.cp-g-head .cp-g-label{font-size:.66rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.cp-g-label{display:grid;line-height:1.2;padding-right:.5rem}.cp-g-label b{font-size:.8rem}.cp-g-label small{font-size:.68rem;font-weight:700}
.cp-g-bar{grid-row:1;height:26px;border-radius:8px;display:flex;align-items:center;padding:0 .5rem;background:linear-gradient(160deg,var(--cp-green),var(--cp-forest));box-shadow:0 0 0 1px rgba(255,210,76,.35)}.cp-g-bar i{font-style:normal;font-size:.66rem;font-weight:900;color:#fff;white-space:nowrap}
.cp-g-row.done .cp-g-bar{background:linear-gradient(160deg,#0f9d58,#0a6a36)}.cp-g-row.author .cp-g-bar{background:var(--cp-gold-shine)}.cp-g-row.author .cp-g-bar i{color:#000}
.cp-g-row.planned .cp-g-bar{background:#fff;box-shadow:inset 0 0 0 2px var(--cp-green)}.cp-g-row.planned .cp-g-bar i{color:#000}
.cp-g-row:not(.cp-g-head):hover{background:#f6f1de;border-radius:10px}
.cp-sched-list{display:none;list-style:none;margin:0;padding:0;gap:.7rem}
.cp-sched-list li{padding:.8rem .95rem;border-radius:16px;background:#fff;border:1px solid var(--cp-line);border-left:5px solid var(--cp-green);display:grid;gap:.2rem}.cp-sched-list li.planned{border-left-color:#000}.cp-sched-list li.author{border-left-color:var(--cp-gold)}
.cp-sched-list .top{display:flex;justify-content:space-between;gap:.5rem;align-items:center;flex-wrap:wrap}.cp-sched-list p{margin:0;font-size:.82rem}.cp-sched-list .note{font-size:.74rem}
.cp-sched-edit{margin-top:1rem;border-top:1px dashed var(--cp-line);padding-top:.7rem}.cp-sched-edit summary{cursor:pointer;font-weight:800;font-size:.82rem}.cp-sched-edit .list{display:grid;gap:.6rem;margin-top:.6rem}
.cp-sched-edit .row{display:flex;gap:.7rem;align-items:flex-end;flex-wrap:wrap;padding:.6rem .8rem;border-radius:12px;background:#faf6e6}.cp-sched-edit .row b{flex:1 1 220px;font-size:.82rem}.cp-sched-edit label{display:grid;gap:.2rem;font-size:.68rem;font-weight:800}
@media(max-width:900px){.cp-gantt{display:none}.cp-sched-list{display:grid}}

/* ===== Project financial breakdown (Admin) ===== */
.cp-pf{display:grid;gap:1rem;color:#000}
.cp-pf-top{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.9rem}
.cp-pf-card{display:grid;gap:.2rem;padding:1rem 1.1rem;border-radius:18px;background:var(--cp-paper);border:1px solid var(--cp-line);color:#000}.cp-pf-card.dark{background:linear-gradient(160deg,var(--cp-green),var(--cp-forest));border-color:transparent;color:#fff}
.cp-pf-card small{font-size:.64rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.cp-pf-card b{font-family:var(--cp-serif);font-size:1.5rem;font-weight:600}.cp-pf-card em{font-style:normal;font-size:.72rem;font-weight:700}
.cp-pf-card .cp-money{font-size:inherit;font-family:inherit;color:inherit}
.cp-pf-lines{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.9rem}
.cp-pf-line{display:grid;gap:.5rem;padding:1rem 1.1rem;border-radius:18px;background:var(--cp-paper);border:1px solid var(--cp-line);align-content:start;color:#000}
.cp-pf-line header{display:flex;gap:.5rem;justify-content:space-between;align-items:center;flex-wrap:wrap}.cp-pf-line header b{font-family:var(--cp-serif);font-size:1.05rem;font-weight:600}
.cp-pf-line p{margin:0;font-size:.8rem}.cp-pf-line .figs{display:flex;gap:1rem;flex-wrap:wrap;font-weight:800}.cp-pf-line .warn{padding:.55rem .75rem;border-radius:12px;background:#fff1c4;border:1px solid #e0b800}
.holders{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.holders li{display:grid;gap:.25rem;padding:.6rem .75rem;border-radius:12px;background:#faf6e6;border:1px solid var(--cp-line)}.holders li>span{font-size:.72rem;font-weight:700}
.holders dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:.4rem;margin:.2rem 0 0}.holders dt{font-size:.58rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.holders dd{margin:0;font-weight:800;font-size:.85rem}
.holders .cp-money,.cp-pf-line .cp-money{font-size:inherit;font-family:inherit;color:inherit}
.cp-pf-cost{display:flex;gap:.6rem;align-items:flex-end;flex-wrap:wrap}.cp-pf-cost label{display:grid;gap:.2rem;font-size:.7rem;font-weight:800}
.cp-pf-proj{padding:1rem 1.2rem;border-radius:18px;background:var(--cp-paper);border:1px solid var(--cp-line)}.cp-pf-proj summary{cursor:pointer;font-weight:800}.cp-pf-proj ul{list-style:none;margin:.8rem 0;padding:0;display:grid;gap:.3rem}
.cp-pf-proj li{display:flex;justify-content:space-between;gap:1rem;padding:.4rem .6rem;border-radius:10px;background:#faf6e6;font-size:.84rem}.cp-pf-proj li.total{background:#000;color:#fff;font-weight:900}.cp-pf-proj li.total .cp-money{color:#fff}.cp-pf-proj .note{font-size:.78rem;margin:0}

/* ===== Assign team member ===== */
.cp-assign{padding:1.2rem 1.3rem;border-radius:22px;background:var(--cp-paper);border:1px solid var(--cp-line);color:#000}.cp-assign h2{margin:0 0 .2rem;font-size:1.35rem}.cp-assign header p{margin:0 0 .8rem;font-size:.84rem}
.cp-assign form{display:grid;gap:1rem}.cp-assign .person{display:grid;gap:.3rem;font-weight:800;font-size:.8rem;max-width:420px}.cp-assign fieldset{border:0;padding:0;margin:0;display:grid;gap:.6rem}.cp-assign legend{font-weight:900;font-size:.85rem;margin-bottom:.4rem}
.cp-ra{border:1px solid var(--cp-line);border-radius:14px;background:#fff;padding:.7rem .9rem}.cp-ra .head{display:flex;gap:.7rem;align-items:flex-start;cursor:pointer}.cp-ra .head input{width:20px;height:20px;margin-top:.15rem;accent-color:var(--cp-green)}.cp-ra .head small{display:block;font-size:.72rem;font-weight:700}
.cp-ra .detail[hidden]{display:none}.cp-ra .detail{display:flex;gap:.8rem;flex-wrap:wrap;margin:.7rem 0 .2rem 2rem}.cp-ra .detail label{display:grid;gap:.2rem;font-size:.7rem;font-weight:800}
.cp-ra .shared{flex:1 1 100%;display:grid;gap:.4rem;padding:.7rem .9rem;border-radius:12px;background:#fff1c4;border:1.5px solid #e0b800}.cp-ra .shared label{display:flex;gap:.4rem;align-items:center;font-size:.8rem}.cp-ra .shared input{width:6rem}.cp-ra .shared p{margin:0;font-size:.76rem}
.cp-ra .total{font-weight:900;font-size:.82rem}.cp-ra .total[data-valid="0"]{color:#b91c1c}
.cp-assign .preview{padding:.8rem 1rem;border-radius:14px;background:linear-gradient(160deg,var(--cp-green),var(--cp-forest));color:#fff}.cp-assign .preview ul{list-style:none;margin:.4rem 0;padding:0;display:grid;gap:.25rem}.cp-assign .preview li{display:flex;justify-content:space-between;gap:1rem;font-size:.84rem}.cp-assign .preview li.total{border-top:1px solid #fff;padding-top:.3rem;font-weight:900}.cp-assign .preview .note{margin:0;font-size:.72rem}
.cp-assign .warn{margin:0 0 .8rem;padding:.6rem .8rem;border-radius:12px;background:#fff1c4;border:1px solid #e0b800;font-size:.82rem}

.cp-lead small{color:#000}

.holders a,.cp-pf a{color:#000;font-weight:800;text-decoration-color:#FFD24C;text-underline-offset:3px}
.cp-pipeline,.cp-reveal{min-width:0;max-width:100%}
.portal-shell .portal-main .ws-tabpanel{grid-template-columns:minmax(0,1fr)}

/* Admin review shortcut on the Current-stage card */
.cp-review-btn{display:inline-block;margin:.5rem 0 .2rem;padding:.4rem .9rem;border-radius:8px;background:#111;color:#fff;font-weight:900;font-size:.72rem;letter-spacing:.08em;text-decoration:none;border:1px solid #111;transition:.2s}.cp-review-btn:hover{background:#ffd21c;color:#111}.cp-review-btn:focus-visible{outline:3px solid #ffd21c;outline-offset:2px}

/* Assign panel: assigned responsibilities list */
.cp-assigned{margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--line)}.cp-assigned h3{margin:0 0 .5rem;font-family:var(--display);font-size:1rem}.cp-assigned>ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.cp-assigned>ul>li{padding:.7rem .9rem;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.cp-assigned .full{margin-left:.4rem;padding:.12rem .5rem;border-radius:99px;background:#0c8a45;color:#fff;font-size:.62rem;font-weight:900;letter-spacing:.05em}.cp-assigned .holders{margin:.4rem 0 0;padding-left:1rem;font-size:.8rem}.cp-assigned .share-more{margin-top:.5rem}.cp-assigned .share-more summary{cursor:pointer;font-weight:800;color:#0c5f34}.cp-assigned .share-more form{display:grid;gap:.5rem;margin-top:.6rem;max-width:380px}.cp-assigned .share-more label{display:grid;gap:.2rem;font-size:.74rem;font-weight:800}.cp-ra .rem{font-style:normal;color:#7a5a00;font-weight:800;font-size:.72rem}

.cp-legalname{margin:1rem 0;padding:1rem 1.2rem;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.cp-legalname h2{margin:0 0 .4rem;font-family:var(--display);font-size:.95rem;letter-spacing:.06em}.cp-ln-form{display:grid;gap:.5rem;max-width:420px;margin-top:.6rem}.cp-ln-form label{display:grid;gap:.2rem;font-size:.74rem;font-weight:800}.cp-ln-form input{padding:.5rem .6rem;border:1px solid var(--line);border-radius:8px}
