/* Ewindi: studio and admin styles (AGENT D).
   Author portal (#/studio...) and administration (#/admin...): the calmer working mode of the brand
   (off-white/night surfaces, indigo navigation rail, orange primary, DM Sans tabular numbers, hand-made SVG charts). */

/* ---------- tokens of the working mode ---------- */
.ws,.lp,.sheet{--ws-bg:#F6EFE3;--ws-card:#FFFFFF;--ws-rail:#1E2A78;--ws-rail-2:#27348C;--ws-line:rgba(15,18,34,.1);--ws-soft:rgba(30,42,120,.06);
  --ch-a:#3D4FC4;--ch-b:#E8561A;--ch-p:rgba(15,18,34,.16);--ws-ink:#0F1222;
  --st-gray:#5D6178;--st-gray-bg:rgba(93,97,120,.12);--st-blue:#2A3BA8;--st-blue-bg:rgba(61,79,196,.12);--st-amber:#8A5300;--st-amber-bg:rgba(255,201,60,.28);
  --st-green:#0E6B47;--st-green-bg:rgba(31,157,107,.15);--st-red:#B4320A;--st-red-bg:rgba(232,86,26,.13)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .ws,:root:not([data-theme="light"]) .lp,:root:not([data-theme="light"]) .sheet{
  --ws-bg:#0B0F2E;--ws-card:#141A47;--ws-rail:#10164A;--ws-rail-2:#1A2163;--ws-line:rgba(255,248,238,.11);--ws-soft:rgba(255,248,238,.05);
  --ch-a:#6E7FF0;--ch-b:#F0602A;--ch-p:rgba(255,248,238,.18);
  --st-gray:#B9BDD6;--st-gray-bg:rgba(185,189,214,.14);--st-blue:#A9B4FF;--st-blue-bg:rgba(110,127,240,.2);--st-amber:#FFD36B;--st-amber-bg:rgba(255,201,60,.16);
  --st-green:#5BD6A2;--st-green-bg:rgba(31,157,107,.2);--st-red:#FF9466;--st-red-bg:rgba(240,96,42,.18)}}
:root[data-theme="dark"] .ws,:root[data-theme="dark"] .lp,:root[data-theme="dark"] .sheet{
  --ws-bg:#0B0F2E;--ws-card:#141A47;--ws-rail:#10164A;--ws-rail-2:#1A2163;--ws-line:rgba(255,248,238,.11);--ws-soft:rgba(255,248,238,.05);
  --ch-a:#6E7FF0;--ch-b:#F0602A;--ch-p:rgba(255,248,238,.18);
  --st-gray:#B9BDD6;--st-gray-bg:rgba(185,189,214,.14);--st-blue:#A9B4FF;--st-blue-bg:rgba(110,127,240,.2);--st-amber:#FFD36B;--st-amber-bg:rgba(255,201,60,.16);
  --st-green:#5BD6A2;--st-green-bg:rgba(31,157,107,.2);--st-red:#FF9466;--st-red-bg:rgba(240,96,42,.18)}

html[data-route="studio"] body,html[data-route="admin"] body{background:var(--bg)}
:is(.ws,.lp,.sheet) .small{font-size:13.5px}:is(.ws,.lp,.sheet) .nowrap{white-space:nowrap}
.ws code{font:500 12.5px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--ws-soft);padding:2px 6px;border-radius:6px;word-break:break-all}

/* ---------- shell: rail + main ---------- */
.ws{display:grid;grid-template-columns:minmax(0,1fr);background:var(--ws-bg);min-height:calc(100vh - 76px);font-size:15.5px}
.ws-rail{background:var(--ws-rail);color:var(--paper);position:sticky;top:76px;z-index:30;box-shadow:0 10px 24px -18px rgba(5,8,30,.6)}
.ws-who,.ws-foot{display:none}
.ws-nav{list-style:none;margin:0;padding:8px var(--gut);display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}
.ws-nav::-webkit-scrollbar{display:none}
.ws-nav li{flex:none;scroll-snap-align:start}
.ws-nav a{display:flex;align-items:center;gap:9px;min-height:44px;padding:0 14px;border-radius:999px;text-decoration:none;font-weight:500;font-size:14.5px;color:rgba(255,248,238,.82);white-space:nowrap;transition:background-color .2s,color .2s}
.ws-nav a svg{width:19px;height:19px;flex:none;opacity:.85}
.ws-nav a:hover{background:rgba(255,248,238,.08);color:var(--paper)}
.ws-nav a[aria-current]{background:var(--paper);color:var(--ink);font-weight:700}
.ws-nav a[aria-current] svg{color:var(--orange);opacity:1}
.ws-badge{font:800 11.5px/1 var(--ui);font-style:normal;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--orange);color:var(--ink);display:inline-grid;place-items:center;margin-left:auto}
.ws-main{min-width:0;padding:22px var(--gut) 72px}
.ws-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 24px;margin:6px 0 24px}
.ws-head-t{min-width:0;max-width:52em}
.ws-head .eyebrow{color:var(--orange);font-size:12px}
.ws-head h1{font-size:clamp(34px,4.6vw,52px);letter-spacing:-.04em;line-height:1;margin:10px 0 0;text-wrap:balance}
.ws-lede{color:var(--muted);margin-top:10px;font-size:16px;max-width:44em}
.ws-back{display:flex;width:max-content;align-items:center;gap:6px;min-height:44px;font-weight:700;font-size:14.5px;text-decoration:none;color:var(--muted);margin:-8px 0 2px -4px;padding:0 4px;border-radius:10px}
.ws-back:hover{color:var(--text)}
.ws-back svg{width:18px;height:18px}
.ws-actions{align-items:center}
.ws .btn-sm{min-height:44px;font-size:14.5px;padding:0 16px;gap:8px}
.ws .btn-sm svg{width:18px;height:18px}
.ws .btn-ghost{box-shadow:inset 0 0 0 1.5px var(--ws-line),inset 0 0 0 1.5px currentColor;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,currentColor 35%,transparent)}
.ws .btn-ghost:hover{background:var(--ws-soft)}
:is(.ws,.lp,.sheet) .btn-warn{color:var(--st-red)!important}
@media (min-width:1024px){
  .ws{grid-template-columns:248px minmax(0,1fr)}
  .ws-rail{height:calc(100vh - 76px);display:flex;flex-direction:column;padding:22px 14px 18px;box-shadow:none;overflow-y:auto}
  .ws-who{display:flex;align-items:center;gap:12px;padding:6px 10px 18px;margin-bottom:10px;border-bottom:1px solid rgba(255,248,238,.12)}
  .ws-who b{display:block;font-size:15px;line-height:1.2}
  .ws-who small{display:block;color:rgba(255,248,238,.66);font-size:12.5px;margin-top:2px}
  .ws-who .avatar{box-shadow:none}
  .ws-photo{object-fit:cover;border-radius:50%}
  .ws-nav{flex-direction:column;padding:0;gap:3px;overflow:visible}
  .ws-nav a{border-radius:14px;min-height:46px;font-size:15px;position:relative}
  .ws-nav a[aria-current]::before{content:"";position:absolute;left:-14px;top:12px;bottom:12px;width:4px;border-radius:0 4px 4px 0;background:var(--orange)}
  .ws-foot{display:flex;gap:10px;align-items:flex-start;margin-top:auto;padding:14px 10px 0;border-top:1px solid rgba(255,248,238,.12);font-size:12.5px;line-height:1.45;color:rgba(255,248,238,.7)}
  .ws-foot svg{width:18px;height:18px;flex:none;color:var(--sun)}
  .ws-main{padding:34px clamp(28px,3.2vw,56px) 88px}
  .ws-main>*{max-width:1240px}
}

/* ---------- panels, KPI tiles ---------- */
:is(.ws,.lp,.sheet) .panel{background:var(--ws-card);border-radius:22px;padding:clamp(18px,2.2vw,28px);box-shadow:0 0 0 1px var(--ws-line);margin-bottom:20px;min-width:0}
:is(.ws,.lp,.sheet) .panel h2{font:800 22px/1.15 var(--display);letter-spacing:-.025em}
:is(.ws,.lp,.sheet) .panel-h{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px 20px;margin-bottom:16px}
:is(.ws,.lp,.sheet) .panel-h .muted{font-size:14.5px;margin-top:5px}
:is(.ws,.lp,.sheet) .panel-ink{background:var(--indigo);color:var(--paper);box-shadow:none}
:root[data-theme="dark"] .panel-ink{background:#1A2163}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .panel-ink{background:#1A2163}}
:is(.ws,.lp,.sheet) .panel-ink .muted{color:rgba(255,248,238,.74)}
:is(.ws,.lp,.sheet) .split{display:grid;grid-template-columns:minmax(0,1fr);gap:0 20px}
@media (min-width:1180px){:is(.ws,.lp,.sheet) .split{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)}:is(.ws,.lp,.sheet) .split-r{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr)}}
:is(.ws,.lp,.sheet) .see{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-weight:700;font-size:14.5px;text-decoration:none}
:is(.ws,.lp,.sheet) .see svg{width:17px;height:17px;color:var(--orange)}
.wks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:20px}
.wk{background:var(--ws-card);border-radius:20px;padding:16px 18px;box-shadow:0 0 0 1px var(--ws-line);min-width:0;position:relative;overflow:hidden}
.wk-l{display:flex;align-items:center;gap:8px;font-weight:700;font-size:13.5px;color:var(--muted)}
.wk-l svg{width:17px;height:17px;flex:none;color:var(--orange)}
.wk-v{font:800 clamp(22px,2.3vw,28px)/1.05 var(--display);letter-spacing:-.03em;margin:10px 0 4px;font-variant-numeric:tabular-nums;white-space:nowrap}
.wk-s{font-size:13px;color:var(--muted)}
.wk::after{content:"";position:absolute;left:18px;top:0;width:28px;height:4px;border-radius:0 0 4px 4px;background:var(--ws-line)}
.wk-orange::after{background:var(--orange)}.wk-sun::after{background:var(--sun)}.wk-leaf::after{background:var(--leaf)}
.wk-hero{grid-column:1 / -1;background:var(--indigo);color:var(--paper);box-shadow:none;padding:20px 22px 18px;display:grid;gap:2px}
:root[data-theme="dark"] .wk-hero{background:#1A2163}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .wk-hero{background:#1A2163}}
.wk-hero::after{background:var(--orange)}
.wk-hero .wk-l,.wk-hero .wk-s{color:rgba(255,248,238,.78)}
.wk-hero .wk-l svg{color:var(--sun)}
.wk-hero .wk-v{font-size:clamp(34px,4vw,48px)}
:is(.ws,.lp,.sheet) .thr{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,248,238,.14)}
:is(.ws,.lp,.sheet) .thr-top{display:flex;justify-content:space-between;gap:10px;font-size:13px;font-weight:700;color:rgba(255,248,238,.82)}
:is(.ws,.lp,.sheet) .thr-bar{height:12px;border-radius:999px;background:rgba(255,248,238,.14);overflow:hidden;margin:8px 0 10px}
:is(.ws,.lp,.sheet) .thr-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--sun),var(--orange));transition:width .6s var(--ease)}
:is(.ws,.lp,.sheet) .thr-msg{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;color:rgba(255,248,238,.88);line-height:1.4}
:is(.ws,.lp,.sheet) .thr-msg svg{width:17px;height:17px;flex:none;color:var(--sun);margin-top:1px}
@media (min-width:760px){.wks{grid-template-columns:repeat(4,minmax(0,1fr))}.wks-6{grid-template-columns:repeat(3,minmax(0,1fr))}.wks-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1280px){
  .wks:not(.wks-6):not(.wks-4){grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr));grid-template-rows:auto auto}
  .wks:not(.wks-6):not(.wks-4) .wk-hero{grid-column:1;grid-row:1 / span 2}
  
}
:is(.ws,.lp,.sheet) .pool-chip{display:grid;gap:2px;background:var(--ws-soft);border-radius:16px;padding:10px 14px;text-align:right}
:is(.ws,.lp,.sheet) .pool-chip span{font-size:12.5px;font-weight:700;color:var(--muted)}
:is(.ws,.lp,.sheet) .pool-chip b{font:800 20px/1.1 var(--display);letter-spacing:-.02em}
:is(.ws,.lp,.sheet) .pool-chip small{font-size:12px;color:var(--muted)}
.ws-head .pool-chip{background:var(--ws-card);box-shadow:0 0 0 1px var(--ws-line)}

/* ---------- status pills ---------- */
:is(.ws,.lp,.sheet) .st{display:inline-flex;align-items:center;gap:7px;min-height:26px;padding:0 10px;border-radius:999px;font:700 12.5px/1.15 var(--ui);background:var(--st-gray-bg);color:var(--st-gray);white-space:nowrap}
:is(.ws,.lp,.sheet) .st i{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
:is(.ws,.lp,.sheet) .st-submitted,:is(.ws,.lp,.sheet) .st-under_review,:is(.ws,.lp,.sheet) .st-approved{background:var(--st-blue-bg);color:var(--st-blue)}
:is(.ws,.lp,.sheet) .st-requires_changes,:is(.ws,.lp,.sheet) .st-pending,:is(.ws,.lp,.sheet) .st-partial,:is(.ws,.lp,.sheet) .st-provisional{background:var(--st-amber-bg);color:var(--st-amber)}
:is(.ws,.lp,.sheet) .st-published,:is(.ws,.lp,.sheet) .st-paid{background:var(--st-green-bg);color:var(--st-green)}
:is(.ws,.lp,.sheet) .st-rejected,:is(.ws,.lp,.sheet) .st-suspended{background:var(--st-red-bg);color:var(--st-red)}
:is(.ws,.lp,.sheet) .st-carried,:is(.ws,.lp,.sheet) .st-unpublished,:is(.ws,.lp,.sheet) .st-draft{background:var(--st-gray-bg);color:var(--st-gray)}
:is(.ws,.lp,.sheet) .st-provisional i{background:transparent;box-shadow:inset 0 0 0 2px currentColor}
:is(.ws,.lp,.sheet) .subst{font-size:14px}:is(.ws,.lp,.sheet) .subst-active{color:var(--st-green);font-weight:700}:is(.ws,.lp,.sheet) .subst-past_due{color:var(--st-red);font-weight:700}:is(.ws,.lp,.sheet) .subst-canceled{color:var(--st-amber);font-weight:700}

/* ---------- tables (cards below 760 px) ---------- */
:is(.ws,.lp,.sheet) .tbl-wrap{overflow-x:auto;margin:0 -4px;padding:0 4px}
:is(.ws,.lp,.sheet) .tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:14.5px}
:is(.ws,.lp,.sheet) .tbl th,:is(.ws,.lp,.sheet) .tbl td{padding:12px 12px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--ws-line)}
:is(.ws,.lp,.sheet) .tbl thead th{font:700 12px/1.25 var(--ui);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-top:4px;white-space:nowrap}
:is(.ws,.lp,.sheet) .tbl tbody th{font-weight:500}
:is(.ws,.lp,.sheet) .tbl .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
:is(.ws,.lp,.sheet) .tbl tbody tr:hover>*{background:var(--ws-soft)}
:is(.ws,.lp,.sheet) .tbl tbody tr:last-child>*{border-bottom:0}
:is(.ws,.lp,.sheet) .tbl tfoot th,:is(.ws,.lp,.sheet) .tbl tfoot td{border-top:2px solid var(--text);border-bottom:0;font-weight:700}
:is(.ws,.lp,.sheet) .tbl .sub{display:block;font-size:12.5px;color:var(--muted);font-weight:500;margin-top:2px}
:is(.ws,.lp,.sheet) .tbl .act{text-align:right;width:1%}
:is(.ws,.lp,.sheet) .tbl-empty td{color:var(--muted);text-align:center!important;padding:28px}
:is(.ws,.lp,.sheet) .tbl-dense{font-size:13.5px}:is(.ws,.lp,.sheet) .tbl-dense th,:is(.ws,.lp,.sheet) .tbl-dense td{padding:9px 10px}
:is(.ws,.lp,.sheet) .tcell{display:flex;align-items:center;gap:12px;min-width:0;text-decoration:none}
:is(.ws,.lp,.sheet) .tcell img{width:40px;height:40px;border-radius:10px;object-fit:cover;object-position:50% 40%;flex:none;background:var(--surface)}
:is(.ws,.lp,.sheet) .tcell>span{min-width:0;display:grid;gap:1px}
:is(.ws,.lp,.sheet) .tcell b{font-weight:700;line-height:1.25}
:is(.ws,.lp,.sheet) .tcell small{color:var(--muted);font-size:12.5px}
:is(.ws,.lp,.sheet) .tcell .pill{justify-self:start;min-height:20px;font-size:11px}
:is(.ws,.lp,.sheet) a.rowlink{text-decoration:none;font-weight:700}
:is(.ws,.lp,.sheet) a.rowlink:hover b,:is(.ws,.lp,.sheet) a.rowlink:hover{text-decoration:underline;text-underline-offset:3px}
@media (max-width:759px){
  :is(.ws,.lp,.sheet) .tbl-wrap{overflow:visible;margin:0;padding:0}
  :is(.ws,.lp,.sheet) .tbl,:is(.ws,.lp,.sheet) .tbl tbody,:is(.ws,.lp,.sheet) .tbl tfoot{display:block}
  :is(.ws,.lp,.sheet) .tbl thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  :is(.ws,.lp,.sheet) .tbl tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:14px 2px;border-bottom:1px solid var(--ws-line)}
  :is(.ws,.lp,.sheet) .tbl tbody tr:last-child{border-bottom:0}
  :is(.ws,.lp,.sheet) .tbl th,:is(.ws,.lp,.sheet) .tbl td{display:contents;border:0;padding:0}
  :is(.ws,.lp,.sheet) .tbl tr>[data-label]{display:flex;align-items:center;justify-content:space-between;gap:12px;grid-column:1 / -1;text-align:right;padding:0;font-size:14px;min-width:0}
  :is(.ws,.lp,.sheet) .tbl tr>[data-label]::before{content:attr(data-label);font-size:12.5px;font-weight:700;color:var(--muted);text-align:left;flex:none;max-width:48%}
  :is(.ws,.lp,.sheet) .tbl tr>[data-label=""]::before{display:none}
  :is(.ws,.lp,.sheet) .tbl tr>:first-child{justify-content:flex-start;text-align:left;font-size:15px}
  :is(.ws,.lp,.sheet) .tbl tr>:first-child::before{display:none}
  :is(.ws,.lp,.sheet) .tbl tr>.act{justify-content:flex-start}
  :is(.ws,.lp,.sheet) .tbl tr>.act::before{display:none}
  :is(.ws,.lp,.sheet) .tbl tr>.act .btn,:is(.ws,.lp,.sheet) .tbl tr>.act .actions{width:100%}
  :is(.ws,.lp,.sheet) .tbl tbody tr:hover>*{background:none}
  :is(.ws,.lp,.sheet) .tbl .sub{text-align:right}
  :is(.ws,.lp,.sheet) .tbl tr>:first-child .sub{text-align:left}
  :is(.ws,.lp,.sheet) .tbl tfoot tr{border-top:2px solid var(--text)}
  :is(.ws,.lp,.sheet) .tbl-empty{display:block!important}
  :is(.ws,.lp,.sheet) .tbl-cat tr>[data-label]{flex-wrap:wrap}
  :is(.ws,.lp,.sheet) .tbl-cat .input-sm{min-width:170px}
}

/* ---------- chart ---------- */
.wchart{margin:0;position:relative}
:is(.ws,.lp,.sheet) .chart-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;font-size:13.5px;font-weight:700;margin-bottom:6px}
:is(.ws,.lp,.sheet) .chart-legend span{display:inline-flex;align-items:center;gap:8px}
:is(.ws,.lp,.sheet) .chart-toggle{margin-left:auto;font-size:13.5px;min-height:40px}
:is(.ws,.lp,.sheet) .sw{width:12px;height:12px;border-radius:3px;display:inline-block;flex:none}
:is(.ws,.lp,.sheet) .sw-a{background:var(--ch-a)}:is(.ws,.lp,.sheet) .sw-b{background:var(--ch-b)}
:is(.ws,.lp,.sheet) .sw-p{background:repeating-linear-gradient(45deg,var(--ch-p) 0 2px,transparent 2px 5px);box-shadow:inset 0 0 0 1.5px var(--muted)}
:is(.ws,.lp,.sheet) .chart-host{position:relative;min-height:230px}
:is(.ws,.lp,.sheet) .chart-host svg{display:block;overflow:visible}
:is(.ws,.lp,.sheet) .ch-grid{stroke:var(--ws-line);stroke-width:1}
:is(.ws,.lp,.sheet) .ch-base{stroke:var(--muted);stroke-opacity:.5}
:is(.ws,.lp,.sheet) .ch-ax{font:500 12px var(--ui);fill:var(--muted)}
:is(.ws,.lp,.sheet) .ch-ax-b{font-weight:700;fill:var(--text)}
:is(.ws,.lp,.sheet) .ch-val{font:700 12.5px var(--ui);fill:var(--text);font-variant-numeric:tabular-nums}
:is(.ws,.lp,.sheet) .ch-a{fill:var(--ch-a)}:is(.ws,.lp,.sheet) .ch-b{fill:var(--ch-b)}
:is(.ws,.lp,.sheet) .ch-prov-fill{fill:url(#ch-hatch);pointer-events:none}
:is(.ws,.lp,.sheet) .ch-hatch-bg{fill:transparent}:is(.ws,.lp,.sheet) .ch-hatch-ln{stroke:var(--ws-card);stroke-opacity:.55}
:is(.ws,.lp,.sheet) .ch-hit{fill:transparent}
:is(.ws,.lp,.sheet) .ch-bar{outline:none;cursor:default;transition:opacity .15s}
:is(.ws,.lp,.sheet) .ch-bar.dim{opacity:.45}
:is(.ws,.lp,.sheet) .ch-bar:focus-visible .ch-hit{stroke:var(--sun);stroke-width:3;rx:8}
:is(.ws,.lp,.sheet) .ch-tip{position:absolute;z-index:3;min-width:190px;background:var(--ink);color:var(--paper);border-radius:14px;padding:10px 12px;font-size:13px;display:grid;gap:4px;pointer-events:none;box-shadow:var(--shadow-sm)}
:root[data-theme="dark"] .ch-tip{background:#FFF8EE;color:var(--ink)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .ch-tip{background:#FFF8EE;color:var(--ink)}}
:is(.ws,.lp,.sheet) .ch-tip b{font-size:13.5px}
:is(.ws,.lp,.sheet) .ch-tip span{display:flex;align-items:center;gap:7px}
:is(.ws,.lp,.sheet) .ch-tip em{font-style:normal;margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums;padding-left:12px}
:is(.ws,.lp,.sheet) .ch-tip .tt-tot{border-top:1px solid rgba(127,127,160,.35);padding-top:4px;font-weight:700}
:is(.ws,.lp,.sheet) .ch-tip .sw{width:10px;height:10px}

/* ---------- dashboard explainer ---------- */
:is(.ws,.lp,.sheet) .how h2{font-size:24px;color:var(--paper)}
:is(.ws,.lp,.sheet) .how-d{color:rgba(255,248,238,.78);margin:6px 0 16px;font-size:14.5px}
:is(.ws,.lp,.sheet) .how-steps{list-style:none;margin:0;padding:0;display:grid;gap:2px}
:is(.ws,.lp,.sheet) .how-steps li{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:12px;align-items:start;padding:10px 0;border-bottom:1px dashed rgba(255,248,238,.18)}
:is(.ws,.lp,.sheet) .how-n{width:28px;height:28px;border-radius:50%;background:rgba(255,248,238,.12);display:grid;place-items:center;font:800 13px/1 var(--ui);color:var(--sun)}
:is(.ws,.lp,.sheet) .how-steps b{display:block;font-size:14.5px}
:is(.ws,.lp,.sheet) .how-steps p{font-size:13px;color:rgba(255,248,238,.74);margin-top:2px;line-height:1.45}
:is(.ws,.lp,.sheet) .how-steps em{font-style:normal;font-weight:700;font-size:15px;white-space:nowrap;padding-top:2px}
:is(.ws,.lp,.sheet) .how-total{border-bottom:0!important;padding-top:14px!important}
:is(.ws,.lp,.sheet) .how-total .how-n{background:var(--orange);color:var(--ink)}
:is(.ws,.lp,.sheet) .how-total em{font:800 22px/1 var(--display);color:var(--sun)}
:is(.ws,.lp,.sheet) .how h3{font:800 16px/1.2 var(--display);letter-spacing:-.01em;margin:20px 0 10px;color:var(--paper)}
:is(.ws,.lp,.sheet) .how-rules{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:13.5px;color:rgba(255,248,238,.86)}
:is(.ws,.lp,.sheet) .how-rules li{display:flex;gap:10px;align-items:flex-start;line-height:1.4}
:is(.ws,.lp,.sheet) .how-rules svg{width:17px;height:17px;flex:none;color:var(--sun);margin-top:1px}
:is(.ws,.lp,.sheet) .how-v{margin-top:16px;font-size:12.5px;font-weight:700;color:var(--sun);letter-spacing:.02em}
:is(.ws,.lp,.sheet) .pay-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
:is(.ws,.lp,.sheet) .pay-list li{display:flex;align-items:center;gap:14px;padding:10px 6px;border-radius:14px}
:is(.ws,.lp,.sheet) .pay-list li:hover{background:var(--ws-soft)}
:is(.ws,.lp,.sheet) .pay-list div{flex:1;min-width:0}
:is(.ws,.lp,.sheet) .pay-list b{display:block;font-size:16px}
:is(.ws,.lp,.sheet) .pay-list small{display:block;font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}
:is(.ws,.lp,.sheet) .pay-ic{width:40px;height:40px;border-radius:12px;background:var(--own-bg);color:var(--own-fg);display:grid;place-items:center;flex:none}
:is(.ws,.lp,.sheet) .pay-ic svg{width:20px;height:20px}
:is(.ws,.lp,.sheet) .input-sm{min-height:44px;border-radius:12px;padding:0 4px 0 12px;border-width:1.5px}
:is(.ws,.lp,.sheet) .input-sm select,:is(.ws,.lp,.sheet) .input-sm input{height:40px;font-size:14.5px}

/* ---------- filter chips ---------- */
:is(.ws,.lp,.sheet) .fchips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 calc(var(--gut) * -1) 18px;padding:2px var(--gut)}
:is(.ws,.lp,.sheet) .fchips::-webkit-scrollbar{display:none}
@media (min-width:1024px){:is(.ws,.lp,.sheet) .fchips{flex-wrap:wrap;margin-inline:0;padding-inline:0}}
:is(.ws,.lp,.sheet) .fchip{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 8px 0 16px;border-radius:999px;background:var(--ws-card);box-shadow:0 0 0 1px var(--ws-line);text-decoration:none;font-weight:700;font-size:14px}
:is(.ws,.lp,.sheet) .fchip em{font-style:normal;min-width:26px;height:26px;padding:0 7px;border-radius:999px;background:var(--ws-soft);display:inline-grid;place-items:center;font-size:12.5px;font-variant-numeric:tabular-nums}
:is(.ws,.lp,.sheet) .fchip:hover{box-shadow:0 0 0 1.5px var(--text)}
:is(.ws,.lp,.sheet) .fchip[aria-current]{background:var(--text);color:var(--bg);box-shadow:none}
:is(.ws,.lp,.sheet) .fchip[aria-current] em{background:var(--orange);color:var(--ink)}

/* ---------- private catalogue cards ---------- */
:is(.ws,.lp,.sheet) .tlist{list-style:none;margin:0;padding:0;display:grid;gap:14px}
:is(.ws,.lp,.sheet) .tcard{display:grid;grid-template-columns:76px minmax(0,1fr);gap:16px;background:var(--ws-card);border-radius:22px;padding:16px;box-shadow:0 0 0 1px var(--ws-line);scroll-margin-top:150px}
:is(.ws,.lp,.sheet) .tcard.focus{box-shadow:0 0 0 2px var(--orange),0 18px 40px -26px rgba(232,86,26,.6);animation:pop .45s var(--spring)}
:is(.ws,.lp,.sheet) .tcard-cover{width:76px;height:auto;aspect-ratio:2/3;object-fit:cover;border-radius:12px;box-shadow:var(--shadow-sm);background:var(--surface)}
:is(.ws,.lp,.sheet) .tcard-main{min-width:0}
:is(.ws,.lp,.sheet) .tcard-top{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
:is(.ws,.lp,.sheet) .tcard-t{font:800 clamp(20px,2vw,24px)/1.1 var(--display);letter-spacing:-.025em}
:is(.ws,.lp,.sheet) .tcard-m{font-size:13.5px;color:var(--muted);margin-top:4px}
:is(.ws,.lp,.sheet) .tcard-d{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:14px 0 0}
:is(.ws,.lp,.sheet) .tcard-d div{min-width:0}
:is(.ws,.lp,.sheet) .tcard-d dt{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.02em}
:is(.ws,.lp,.sheet) .tcard-d dd{margin:2px 0 0;font-size:14.5px}
:is(.ws,.lp,.sheet) .tcard-a{margin-top:14px;gap:8px}
@media (min-width:760px){:is(.ws,.lp,.sheet) .tcard{grid-template-columns:104px minmax(0,1fr);padding:18px 20px;gap:20px}:is(.ws,.lp,.sheet) .tcard-cover{width:104px}:is(.ws,.lp,.sheet) .tcard-d{grid-template-columns:repeat(5,minmax(0,auto));justify-content:start;gap:10px 32px}}
:is(.ws,.lp,.sheet) .enote{margin-top:14px;background:var(--st-amber-bg);border-radius:16px;padding:12px 14px;font-size:14.5px;border-left:4px solid var(--sun)}
:is(.ws,.lp,.sheet) .enote-h{display:flex;align-items:center;gap:8px;font-weight:700;font-size:13px;color:var(--st-amber);margin-bottom:4px}
:is(.ws,.lp,.sheet) .enote-h svg{width:17px;height:17px}
:is(.ws,.lp,.sheet) .enote-wide{margin:0 0 18px}

/* ---------- wizard ---------- */
.wz-steps{list-style:none;margin:0 0 16px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;counter-reset:s}
.wz-steps li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:16px;background:var(--ws-card);box-shadow:0 0 0 1px var(--ws-line);color:var(--muted);font-weight:700;font-size:14px;min-width:0}
.wz-n{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--ws-soft);font:800 13px/1 var(--ui);flex:none}
.wz-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wz-steps li.cur{color:var(--text);box-shadow:0 0 0 2px var(--orange)}
.wz-steps li.cur .wz-n{background:var(--orange);color:var(--ink)}
.wz-steps li.done{color:var(--text)}
.wz-steps li.done .wz-n{background:var(--leaf);color:var(--ink)}
@media (max-width:620px){.wz-steps li{flex-direction:column;gap:4px;padding:8px 4px;font-size:12px;text-align:center}.wz-steps li .wz-l{white-space:normal}}
.wz-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font:800 26px/1.1 var(--display);letter-spacing:-.03em;margin-bottom:16px}
.wz-h small{font:700 13px/1 var(--ui);color:var(--muted);letter-spacing:0}
.wz-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:22px;padding-top:18px;border-top:1px solid var(--ws-line)}
.wz-sp{flex:1}
.wz-foot .btn[hidden]{display:none}
@media (max-width:520px){.wz-foot{display:grid;grid-template-columns:1fr 1fr}.wz-foot .wz-sp{display:none}.wz-foot [data-wz=next]{grid-column:1 / -1;order:-1}.wz-foot .linkbtn{justify-self:end}}
:is(.ws,.lp,.sheet) .drop{display:grid;justify-items:center;text-align:center;gap:8px;padding:clamp(24px,4vw,40px) 18px;border-radius:22px;border:2px dashed color-mix(in srgb,var(--text) 22%,transparent);background:var(--ws-soft);transition:border-color .2s,background-color .2s}
:is(.ws,.lp,.sheet) .drop.over{border-color:var(--orange);background:var(--buy-bg)}
:is(.ws,.lp,.sheet) .drop-ic{width:56px;height:56px;border-radius:18px;background:var(--orange);color:var(--ink);display:grid;place-items:center;transform:rotate(-6deg);margin-bottom:4px}
:is(.ws,.lp,.sheet) .drop-ic svg{width:26px;height:26px}
:is(.ws,.lp,.sheet) .drop-t{font:800 22px/1.1 var(--display);letter-spacing:-.02em}
:is(.ws,.lp,.sheet) .drop .muted{max-width:34em;font-size:14.5px}
:is(.ws,.lp,.sheet) .drop .btn{margin-top:8px}
:is(.ws,.lp,.sheet) .ferr{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:6px}
:is(.ws,.lp,.sheet) .ferr[hidden]{display:none}
:is(.ws,.lp,.sheet) .ferr li{display:flex;gap:10px;align-items:flex-start;background:var(--err-bg);color:var(--err);font-weight:700;font-size:14px;border-radius:14px;padding:10px 12px}
:is(.ws,.lp,.sheet) .ferr svg{width:18px;height:18px;flex:none;margin-top:1px}
:is(.ws,.lp,.sheet) .frows{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px}
:is(.ws,.lp,.sheet) .frow{display:grid;grid-template-columns:40px minmax(0,1fr) 48px;gap:12px;align-items:center;padding:10px 6px 10px 12px;border-radius:16px;box-shadow:0 0 0 1px var(--ws-line)}
:is(.ws,.lp,.sheet) .frow-ic{width:40px;height:40px;border-radius:12px;background:var(--ws-soft);display:grid;place-items:center}
:is(.ws,.lp,.sheet) .frow-ic svg{width:20px;height:20px}
:is(.ws,.lp,.sheet) .frow-m p:first-child{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;font-size:14.5px}
:is(.ws,.lp,.sheet) .frow-m b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
:is(.ws,.lp,.sheet) .frow-m small{color:var(--muted);font-size:12.5px}
:is(.ws,.lp,.sheet) .frow-bar{height:6px;border-radius:999px;background:var(--ws-soft);overflow:hidden;margin:6px 0 4px}
:is(.ws,.lp,.sheet) .frow-bar i{display:block;height:100%;background:var(--orange);border-radius:999px;transition:width .12s linear}
:is(.ws,.lp,.sheet) .frow-done .frow-bar i{background:var(--leaf)}
:is(.ws,.lp,.sheet) .frow-s{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--muted)}
:is(.ws,.lp,.sheet) .frow-done .frow-s{color:var(--ok-fg)}
:is(.ws,.lp,.sheet) .frow-s svg{width:14px;height:14px}
:is(.ws,.lp,.sheet) .needs{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:6px;font-size:14px}
:is(.ws,.lp,.sheet) .needs li{display:flex;gap:9px;align-items:center;color:var(--muted)}
:is(.ws,.lp,.sheet) .needs li svg{width:18px;height:18px;flex:none;padding:2px;border-radius:50%;background:var(--ws-soft)}
:is(.ws,.lp,.sheet) .needs li.ok{color:var(--text);font-weight:700}
:is(.ws,.lp,.sheet) .needs li.ok svg{background:var(--leaf);color:var(--ink)}
:is(.ws,.lp,.sheet) .needs li.warn{color:var(--st-amber)}
:is(.ws,.lp,.sheet) .est{margin-top:8px;background:var(--ws-soft);border-radius:18px;padding:14px 16px;font-size:14.5px;display:grid;gap:6px}
:is(.ws,.lp,.sheet) .est-h{display:flex;align-items:center;gap:8px;font-weight:700}
:is(.ws,.lp,.sheet) .est-h svg{width:18px;height:18px;color:var(--orange)}
:is(.ws,.lp,.sheet) .seg-3{grid-template-columns:repeat(3,minmax(0,1fr))}
:is(.ws,.lp,.sheet) .seg-4{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:760px){:is(.ws,.lp,.sheet) .seg-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ws .seg-opt span{min-height:60px;border-width:1.5px}
.ws .seg-opt b{font-size:16px;font-family:var(--ui);font-weight:700;letter-spacing:0}
.ws .input{min-height:52px;border-width:1.5px;border-radius:14px}
.ws .input input,.ws .input select{height:48px;font-size:16px}
.ws .field{margin:14px 0}
.ws .field label,.ws .field legend{font-size:14px}
:is(.ws,.lp,.sheet) .rev{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
@media (min-width:760px){:is(.ws,.lp,.sheet) .rev{grid-template-columns:160px minmax(0,1fr)}}
:is(.ws,.lp,.sheet) .rev-cover{width:160px;height:auto;aspect-ratio:2/3;object-fit:cover;border-radius:16px;box-shadow:var(--shadow)}
:is(.ws,.lp,.sheet) .rev-main{display:grid;gap:18px;min-width:0}
:is(.ws,.lp,.sheet) .rev-main section{border-bottom:1px solid var(--ws-line);padding-bottom:16px}
:is(.ws,.lp,.sheet) .rev-h{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
:is(.ws,.lp,.sheet) .rev-h h3{font:800 18px/1.2 var(--display);letter-spacing:-.01em}
:is(.ws,.lp,.sheet) .rev-desc{font-size:14.5px;color:var(--muted);margin-top:10px;white-space:pre-line}
:is(.ws,.lp,.sheet) .dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px 18px;margin:0}
:is(.ws,.lp,.sheet) .dl dt{font-size:12px;font-weight:700;color:var(--muted)}
:is(.ws,.lp,.sheet) .dl dd{margin:2px 0 0;font-size:14.5px;overflow-wrap:anywhere}
:is(.ws,.lp,.sheet) .files{list-style:none;margin:0;padding:0;display:grid;gap:6px}
:is(.ws,.lp,.sheet) .files li{display:flex;align-items:center;gap:10px;font-size:14.5px;flex-wrap:wrap}
:is(.ws,.lp,.sheet) .files li>svg{width:18px;height:18px;color:var(--ok-fg);flex:none}
:is(.ws,.lp,.sheet) .files li span{font-weight:700;min-width:0;overflow-wrap:anywhere}
:is(.ws,.lp,.sheet) .files li small{color:var(--muted);font-size:12.5px}
:is(.ws,.lp,.sheet) .files-act li{padding:8px 0;border-bottom:1px solid var(--ws-line)}
:is(.ws,.lp,.sheet) .files-act li .btn{margin-left:auto}
:is(.ws,.lp,.sheet) .files-act li>svg{color:var(--muted)}
:is(.ws,.lp,.sheet) .sheet-h3{font:800 17px/1.2 var(--display);letter-spacing:-.01em;margin:18px 0 10px}
:is(.ws,.lp,.sheet) .sheet-h3:first-child{margin-top:0}

/* ---------- timeline ---------- */
:is(.ws,.lp,.sheet) .tl{list-style:none;margin:0;padding:0;display:grid;gap:0}
:is(.ws,.lp,.sheet) .tl li{display:grid;grid-template-columns:18px minmax(0,1fr);gap:12px;position:relative;padding-bottom:14px}
:is(.ws,.lp,.sheet) .tl li:not(:last-child)::before{content:"";position:absolute;left:8px;top:16px;bottom:-2px;width:2px;background:var(--ws-line)}
:is(.ws,.lp,.sheet) .tl-dot{width:18px;height:18px;border-radius:50%;margin-top:2px;background:var(--st-gray-bg);box-shadow:inset 0 0 0 5px var(--ws-card)}
:is(.ws,.lp,.sheet) .tl-dot.st-published,:is(.ws,.lp,.sheet) .tl-dot.st-approved{background:var(--st-green)}:is(.ws,.lp,.sheet) .tl-dot.st-requires_changes{background:var(--sun)}
:is(.ws,.lp,.sheet) .tl-dot.st-rejected,:is(.ws,.lp,.sheet) .tl-dot.st-suspended{background:var(--st-red)}:is(.ws,.lp,.sheet) .tl-dot.st-submitted,:is(.ws,.lp,.sheet) .tl-dot.st-under_review{background:var(--st-blue)}
:is(.ws,.lp,.sheet) .tl p{font-size:14px}
:is(.ws,.lp,.sheet) .tl-note{margin-top:4px;background:var(--ws-soft);border-radius:12px;padding:8px 10px;font-size:13.5px}

/* ---------- statement document ---------- */
:is(.ws,.lp,.sheet) .doc{background:var(--ws-card);border-radius:22px;box-shadow:0 0 0 1px var(--ws-line);padding:clamp(20px,3.4vw,44px);max-width:980px}
:is(.ws,.lp,.sheet) .doc-h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:18px;border-bottom:2px solid var(--text)}
:is(.ws,.lp,.sheet) .doc-brand{display:flex;gap:12px;align-items:center}
:is(.ws,.lp,.sheet) .doc-brand svg{width:44px;height:44px;flex:none}
:is(.ws,.lp,.sheet) .doc-brand b{display:block;font:800 20px/1.1 var(--display)}
:is(.ws,.lp,.sheet) .doc-brand small{display:block;font-size:12.5px;color:var(--muted);margin-top:3px}
:is(.ws,.lp,.sheet) .doc-st{display:grid;justify-items:end;gap:6px;text-align:right}
:is(.ws,.lp,.sheet) .doc-st small{font-size:12.5px;color:var(--muted);max-width:22em}
:is(.ws,.lp,.sheet) .doc-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px;margin:20px 0 6px}
@media (min-width:760px){:is(.ws,.lp,.sheet) .doc-meta{grid-template-columns:repeat(4,minmax(0,1fr))}}
:is(.ws,.lp,.sheet) .doc-meta dt{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.03em;text-transform:uppercase}
:is(.ws,.lp,.sheet) .doc-meta dd{margin:4px 0 0;font-weight:700;font-size:15px}
:is(.ws,.lp,.sheet) .doc-meta small{display:block;font-weight:500;color:var(--muted);font-size:12px}
:is(.ws,.lp,.sheet) .doc-sec{font:800 15px/1.2 var(--ui)!important;letter-spacing:.08em!important;text-transform:uppercase;color:var(--orange);margin:26px 0 8px}
:is(.ws,.lp,.sheet) .tbl-doc .calc{font-size:13px;color:var(--muted)}
:is(.ws,.lp,.sheet) .doc-adj{list-style:none;margin:0;padding:0}
:is(.ws,.lp,.sheet) .doc-adj li{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--ws-line);font-size:14.5px}
:is(.ws,.lp,.sheet) .doc-adj small{display:block;color:var(--muted);font-size:12px}
:is(.ws,.lp,.sheet) .doc-bal{margin:0;display:grid;gap:0;max-width:560px;margin-left:auto}
:is(.ws,.lp,.sheet) .doc-bal div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--ws-line);font-size:14.5px}
:is(.ws,.lp,.sheet) .doc-bal dd{margin:0;white-space:nowrap;font-weight:700}
:is(.ws,.lp,.sheet) .doc-total{border-bottom:0!important;border-top:2px solid var(--text);margin-top:4px;padding-top:12px!important}
:is(.ws,.lp,.sheet) .doc-total dt,:is(.ws,.lp,.sheet) .doc-total dd{font:800 20px/1.1 var(--display)!important}
:is(.ws,.lp,.sheet) .doc-paid{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:12px;font-weight:700;color:var(--ok-fg);font-size:14px}
:is(.ws,.lp,.sheet) .doc-paid svg{width:18px;height:18px}

/* ---------- profile ---------- */
:is(.ws,.lp,.sheet) .pf .panel h2{margin-bottom:6px}
:is(.ws,.lp,.sheet) .pf-photo{display:flex;align-items:center;gap:18px;margin:14px 0 6px}
:is(.ws,.lp,.sheet) .pf-img{width:88px;height:88px;border-radius:50%;object-fit:cover;flex:none;box-shadow:0 0 0 4px var(--ws-soft)}
:is(.ws,.lp,.sheet) .pf-ini{display:grid;place-items:center;background:var(--sun);color:var(--ink);font:800 30px/1 var(--display)}
:is(.ws,.lp,.sheet) .pchips{display:flex;flex-wrap:wrap;gap:8px}
:is(.ws,.lp,.sheet) .pchip{position:relative;cursor:pointer}
:is(.ws,.lp,.sheet) .pchip input{position:absolute;opacity:0;pointer-events:none}
:is(.ws,.lp,.sheet) .pchip span{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;box-shadow:inset 0 0 0 1.5px var(--ws-line);font-weight:700;font-size:14px;transition:background-color .2s}
:is(.ws,.lp,.sheet) .pchip input:checked+span{background:var(--text);color:var(--bg);box-shadow:none}
:is(.ws,.lp,.sheet) .pchip input:focus-visible+span{outline:3px solid var(--sun);outline-offset:2px}
:is(.ws,.lp,.sheet) .pf-save{position:sticky;bottom:12px;z-index:5;justify-content:flex-end}
:is(.ws,.lp,.sheet) .pf-save .btn{box-shadow:var(--shadow)}
body.has-player .pf-save{bottom:150px}
.ws .field-row,.ws-form .field-row{grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){.ws .field-row,.ws-form .field-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.ws .field-row .field{margin:14px 0}

/* ---------- landing (not an author yet) ---------- */
.lp{background:var(--ws-bg);padding:clamp(28px,5vw,64px) 0 clamp(56px,8vw,96px)}
.lp-hero{position:relative;overflow:hidden;isolation:isolate;background:var(--indigo);color:var(--paper);border-radius:36px;padding:clamp(28px,5vw,64px);display:grid;gap:32px}
:root[data-theme="dark"] .lp-hero{background:#141C5C}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .lp-hero{background:#141C5C}}
.lp-hero::before{content:"";position:absolute;right:-140px;top:-140px;width:420px;height:420px;border-radius:50%;background:url(../images/pattern-tile.webp) 0 0/200px;opacity:.22;z-index:-1}
.lp-hero::after{content:"";position:absolute;right:-70px;top:-70px;width:280px;height:280px;border-radius:50%;border:36px solid rgba(255,201,60,.12);z-index:-1}
.lp-copy .eyebrow{color:var(--sun)}
.lp h1{font-size:clamp(46px,7.4vw,96px);line-height:.9;letter-spacing:-.045em;margin:16px 0;text-wrap:balance;max-width:9em}
.lp .lede{color:rgba(255,248,238,.86)}
.lp .actions{margin-top:26px}
.lp .btn-ghost{color:var(--paper)}
.lp .notice{background:rgba(255,248,238,.1);color:var(--paper);margin-top:22px}
.lp .notice svg{color:var(--sun)}
.lp-sent{display:inline-flex;align-items:center;gap:10px;min-height:56px;padding:0 20px;border-radius:999px;background:var(--leaf);color:var(--ink);font-weight:700}
.lp-sent svg{width:20px;height:20px}
.lp-vals{list-style:none;margin:0;padding:0;display:grid;gap:12px;align-content:center}
.lp-vals li{display:flex;gap:14px;align-items:flex-start;background:rgba(255,248,238,.08);border-radius:22px;padding:16px 18px}
.lp-vals b{display:block;font:800 22px/1.1 var(--display);letter-spacing:-.02em}
.lp-vals p{font-size:14.5px;color:rgba(255,248,238,.8);margin-top:4px}
.lp-ic{width:44px;height:44px;border-radius:14px;background:var(--orange);color:var(--ink);display:grid;place-items:center;flex:none}
.lp-ic svg{width:22px;height:22px}
.lp-ic-sun{background:var(--sun)}.lp-ic-leaf{background:var(--leaf)}
@media (min-width:980px){.lp-hero{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center;gap:48px}}
.lp-h2{font-size:clamp(32px,4vw,48px);margin:clamp(40px,6vw,72px) 0 20px;letter-spacing:-.035em}
.lp-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.lp-steps li{background:var(--ws-card);border-radius:24px;padding:20px;box-shadow:0 0 0 1px var(--ws-line)}
.lp-n{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--text);color:var(--bg);font:800 17px/1 var(--display);margin-bottom:14px}
.lp-steps li:first-child .lp-n{background:var(--orange);color:var(--ink)}
.lp-steps b{display:block;font:800 22px/1.1 var(--display);letter-spacing:-.02em;margin-bottom:6px}
.lp-steps p{color:var(--muted);font-size:15px}
.ws-done{display:grid;justify-items:center;text-align:center;gap:10px;padding:12px 0}
.ws-done h3{font-size:32px;letter-spacing:-.03em}
.ws-done p{color:var(--muted);max-width:28em}
.ws-done-ic{width:64px;height:64px;border-radius:50%;background:var(--leaf);color:var(--ink);display:grid;place-items:center}
.ws-done-ic svg{width:30px;height:30px}

/* ---------- admin: overview ---------- */
:is(.ws,.lp,.sheet) .todo{list-style:none;margin:0;padding:0;display:grid;gap:6px}
:is(.ws,.lp,.sheet) .todo a{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 12px;border-radius:16px;background:var(--ws-soft);text-decoration:none;font-weight:500;font-size:14.5px;transition:background-color .2s}
:is(.ws,.lp,.sheet) .todo a:hover{background:var(--buy-bg)}
:is(.ws,.lp,.sheet) .todo a>svg:first-child{width:20px;height:20px;color:var(--orange);flex:none}
:is(.ws,.lp,.sheet) .todo span{flex:1;min-width:0}
:is(.ws,.lp,.sheet) .todo em{font-style:normal;font:800 18px/1 var(--display);font-variant-numeric:tabular-nums}
:is(.ws,.lp,.sheet) .todo a>svg:last-child{width:16px;height:16px;opacity:.6}
:is(.ws,.lp,.sheet) .pop{list-style:none;margin:0;padding:0;display:grid;gap:4px}
:is(.ws,.lp,.sheet) .pop li{display:grid;grid-template-columns:24px 44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 4px;border-bottom:1px solid var(--ws-line)}
:is(.ws,.lp,.sheet) .pop li:last-child{border-bottom:0}
:is(.ws,.lp,.sheet) .pop-n{font:800 16px/1 var(--display);color:var(--muted);text-align:center}
:is(.ws,.lp,.sheet) .pop img{width:44px;height:44px;border-radius:10px;object-fit:cover;object-position:50% 40%}
:is(.ws,.lp,.sheet) .pop-m p{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline;font-size:14.5px}
:is(.ws,.lp,.sheet) .pop-m small{color:var(--muted);font-size:12.5px}
:is(.ws,.lp,.sheet) .pop-bar{height:6px;border-radius:999px;background:var(--ws-soft);margin-top:6px;overflow:hidden}
:is(.ws,.lp,.sheet) .pop-bar i{display:block;height:100%;border-radius:999px;background:var(--ch-a)}
:is(.ws,.lp,.sheet) .pop-v{text-align:right}
:is(.ws,.lp,.sheet) .pop-v b{display:block;font-size:15px}
:is(.ws,.lp,.sheet) .pop-v small{font-size:12px;color:var(--muted);white-space:nowrap}
@media (max-width:520px){:is(.ws,.lp,.sheet) .pop li{grid-template-columns:20px 40px minmax(0,1fr)}:is(.ws,.lp,.sheet) .pop-v{grid-column:3;text-align:left}:is(.ws,.lp,.sheet) .pop-v b{display:inline;margin-right:8px}}

/* ---------- admin: review ---------- */
:is(.ws,.lp,.sheet) .rvw{display:grid;grid-template-columns:minmax(0,1fr);gap:0 20px}
@media (min-width:1100px){:is(.ws,.lp,.sheet) .rvw{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr)}:is(.ws,.lp,.sheet) .rvw-side{position:sticky;top:100px;align-self:start}}
:is(.ws,.lp,.sheet) .rvw-meta{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
@media (min-width:700px){:is(.ws,.lp,.sheet) .rvw-meta{grid-template-columns:150px minmax(0,1fr)}}
:is(.ws,.lp,.sheet) .rvw-cover{width:150px;height:auto;aspect-ratio:2/3;object-fit:cover;border-radius:14px;box-shadow:var(--shadow)}
:is(.ws,.lp,.sheet) .rvw-meta h2{margin-bottom:12px}
:is(.ws,.lp,.sheet) .panel-decide{box-shadow:0 0 0 2px var(--orange)}
:is(.ws,.lp,.sheet) .decide{display:grid;gap:8px;margin-top:6px}
:is(.ws,.lp,.sheet) .decide .btn{min-height:50px}
:is(.ws,.lp,.sheet) .checks{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:14px}
:is(.ws,.lp,.sheet) .checks li{display:flex;gap:9px;align-items:center}
:is(.ws,.lp,.sheet) .checks svg{width:18px;height:18px;flex:none;padding:2px;border-radius:50%}
:is(.ws,.lp,.sheet) .checks .ok svg{background:var(--leaf);color:var(--ink)}
:is(.ws,.lp,.sheet) .checks .warn{color:var(--st-amber);font-weight:700}
:is(.ws,.lp,.sheet) .checks .warn svg{background:var(--sun);color:var(--ink)}
:is(.ws,.lp,.sheet) .pv-cover{width:min(320px,100%);height:auto;border-radius:16px;margin:0 auto 12px;box-shadow:var(--shadow)}
:is(.ws,.lp,.sheet) .pv-page{background:#FFFDF8;color:#1B1B1B;border-radius:12px;padding:32px 30px;font:400 17px/1.65 Georgia,serif;box-shadow:0 0 0 1px var(--ws-line);margin-bottom:12px}
:is(.ws,.lp,.sheet) .pv-k{font:700 12px/1 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:#8a6a3a}
:is(.ws,.lp,.sheet) .pv-ch{font:700 26px/1.2 Georgia,serif;margin:16px 0 14px!important}
:is(.ws,.lp,.sheet) .pv-meta{margin-top:18px!important;font:500 13px/1.4 var(--ui);color:#5c5c5c;border-top:1px solid #e8e0d0;padding-top:12px}
:is(.ws,.lp,.sheet) .pv-audio{display:flex;gap:14px;align-items:center;background:var(--ws-soft);border-radius:16px;padding:18px;margin-bottom:12px}
:is(.ws,.lp,.sheet) .pv-audio svg{width:40px;height:40px;color:var(--orange);flex:none}
:is(.ws,.lp,.sheet) .apps{list-style:none;margin:0;padding:0;display:grid;gap:10px}
:is(.ws,.lp,.sheet) .apps li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:14px;border-radius:16px;background:var(--ws-soft)}
:is(.ws,.lp,.sheet) .apps li>div:first-child{min-width:0;flex:1 1 320px}
:is(.ws,.lp,.sheet) .apps-p{font-size:14px;margin-top:6px}
:is(.ws,.lp,.sheet) .toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:14px}
:is(.ws,.lp,.sheet) .toolbar-r{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
:is(.ws,.lp,.sheet) .input-search{min-height:50px;flex:1 1 280px;max-width:480px;background:var(--ws-card)}
:is(.ws,.lp,.sheet) .input-search input{height:46px}

/* ---------- admin: rules ---------- */
:is(.ws,.lp,.sheet) .rules-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0 16px}
@media (min-width:640px){:is(.ws,.lp,.sheet) .rules-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
:is(.ws,.lp,.sheet) .rules-grid .field{margin:8px 0}
:is(.ws,.lp,.sheet) .rules-grid .help{font-size:12.5px}
:is(.ws,.lp,.sheet) .impact h2{color:var(--paper);margin-bottom:14px}
:is(.ws,.lp,.sheet) .imps{margin:0;display:grid;gap:10px}
:is(.ws,.lp,.sheet) .imp{background:rgba(255,248,238,.07);border-radius:16px;padding:12px 14px}
:is(.ws,.lp,.sheet) .imp dt{font-size:12.5px;font-weight:700;color:rgba(255,248,238,.72)}
:is(.ws,.lp,.sheet) .imp dd{margin:4px 0 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:15px}
:is(.ws,.lp,.sheet) .imp dd b{font:800 20px/1.1 var(--display);color:var(--sun)}
:is(.ws,.lp,.sheet) .imp-arrow{opacity:.6}
:is(.ws,.lp,.sheet) .imp em{font-style:normal;font-weight:700;font-size:13px;padding:2px 8px;border-radius:999px}
:is(.ws,.lp,.sheet) .imp em.up{background:rgba(31,157,107,.3);color:#9FF0C9}:is(.ws,.lp,.sheet) .imp em.down{background:rgba(255,106,43,.25);color:#FFB592}
:is(.ws,.lp,.sheet) .imp-authors{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:6px;font-size:13.5px}
:is(.ws,.lp,.sheet) .imp-authors li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px dashed rgba(255,248,238,.16);padding-bottom:6px}
:is(.ws,.lp,.sheet) .impact .muted{margin-top:12px;font-size:14px}
:is(.ws,.lp,.sheet) .conf-list{margin:8px 0 0;padding-left:20px;display:grid;gap:4px;font-size:15px}
:is(.ws,.lp,.sheet) .conf-list s{opacity:.6}
:is(.ws,.lp,.sheet) .audit{list-style:none;margin:0;padding:0;display:grid;gap:0}
:is(.ws,.lp,.sheet) .audit li{display:grid;grid-template-columns:116px minmax(0,1fr);gap:14px;padding:10px 0;border-bottom:1px solid var(--ws-line);font-size:14px}
:is(.ws,.lp,.sheet) .audit li:last-child{border-bottom:0}
:is(.ws,.lp,.sheet) .audit-k{justify-self:start;font:700 12px/1 var(--ui);padding:6px 9px;border-radius:999px;background:var(--ws-soft);letter-spacing:.02em}
:is(.ws,.lp,.sheet) .audit small{color:var(--muted);font-size:12.5px}
@media (max-width:520px){:is(.ws,.lp,.sheet) .audit li{grid-template-columns:minmax(0,1fr);gap:6px}}
:is(.ws,.lp,.sheet) .adj-form h2{margin-bottom:4px}
:is(.ws,.lp,.sheet) .adj-form .muted{font-size:14px}

/* ---------- motion, print ---------- */
@media (prefers-reduced-motion: reduce){:is(.ws,.lp,.sheet) .thr-bar i,:is(.ws,.lp,.sheet) .frow-bar i{transition:none}:is(.ws,.lp,.sheet) .tcard.focus{animation:none}}
@media print{
  .hdr,.foot,.mini,.ws-rail,.ws-actions,.ws-back,.toasts,#ew-sheets{display:none!important}
  body,.ws,.ws-main{background:#fff!important;color:#000!important;padding:0!important;min-height:0}
  .ws{display:block}.ws-head{margin:0 0 12px}.ws-head h1{font-size:30px}
  .doc{box-shadow:none;border-radius:0;padding:0;max-width:none}
  .tbl tr>*{background:none!important}
  .st{border:1px solid #888}
}
:is(.ws) .excl{display:flex;align-items:center;gap:6px;margin-top:6px}
:is(.ws) .excl svg{width:16px;height:16px;flex:none;color:var(--leaf)}
@media (min-width:1180px){.ws .how-steps{grid-template-columns:minmax(0,1fr)}}
/* numbers: DM Sans tabular (Bricolage has no narrow no-break space glyph) */
:is(.ws,.lp,.sheet) .ch-tip[hidden]{display:none}
.ws .wk-v,.ws .how-total em,.ws .pool-chip b,.ws .imp dd b,.ws .doc-total dt,.ws .doc-total dd,.ws .todo em{font-family:var(--ui)!important;font-weight:700!important;letter-spacing:-.02em}

.ws-who .avatar{box-shadow:0 0 0 2px rgba(255,248,238,.55)}
