/* Control Room app layout — premium, photographic, same tokens as the site. */
.crapp{display:grid;grid-template-columns:268px minmax(0,1fr);min-height:calc(100vh - 104px);background:var(--paper)}
.rail{position:sticky;top:0;align-self:start;height:100vh;max-height:calc(100vh - 0px);overflow:auto;background:
  linear-gradient(180deg,rgba(18,26,22,.9),rgba(18,26,22,.97)),url(/img/cr/v2/railLeather.webp) center/cover;color:var(--cream);display:flex;flex-direction:column;padding:22px 16px 16px;border-right:1px solid rgba(201,164,86,.25)}
.rail__brand .eyebrow{margin-bottom:10px;font-size:.66rem}
.rail__biz{display:flex;gap:6px}
.rail__biz select{flex:1;min-width:0;background:rgba(255,255,255,.08);color:#FBF7EE;border:1px solid rgba(201,164,86,.4);border-radius:10px;padding:.55em .6em;font:600 .92rem var(--font)}
.rail__biz select option{color:#15202B}
.rail__add{width:38px;border-radius:10px;border:1px solid rgba(201,164,86,.4);background:transparent;color:var(--gold-1);font-size:1.3rem;cursor:pointer}
.rail__plan{font-size:.78rem;color:#C9C2B3;margin:10px 2px 0}
.rail__plan b{color:var(--gold-1)}
.rail__nav{display:flex;flex-direction:column;gap:2px;margin:18px 0}
.rail__nav a{display:flex;align-items:center;gap:12px;padding:.62em .8em;border-radius:10px;color:#E6DFCF;font-weight:600;font-size:.95rem;text-decoration:none!important;position:relative}
.rail__nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.rail__nav a[aria-current=page]{background:linear-gradient(90deg,rgba(201,164,86,.22),rgba(201,164,86,.04));color:#fff}
.rail__nav a[aria-current=page]::before{content:"";position:absolute;left:-16px;top:8px;bottom:8px;width:3px;border-radius:2px;background:var(--gold-1)}
.rail__nav a svg{color:var(--gold-1);flex:none}
.rail__nav a .lock{margin-left:auto;font-size:.7rem;color:#C9A456;opacity:.8}
.rail__foot{margin-top:auto;display:flex;flex-direction:column;gap:4px;font-size:.75rem;color:#A9A291}
.stage{min-width:0;padding:0 0 60px;outline:none}
.stage__loading{padding:60px;color:var(--muted)}
.band{position:relative;isolation:isolate;overflow:hidden;padding:34px clamp(20px,3vw,40px) 30px;border-bottom:1px solid var(--line)}
.band__bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center}
.band::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(250,247,242,.97) 0%,rgba(250,247,242,.9) 45%,rgba(250,247,242,.5) 100%)}
.band h1{font-size:clamp(1.9rem,3vw,2.6rem);margin:0 0 6px}
.band p{margin:0;color:#3a4550;max-width:62ch}
.band__actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.body{padding:26px clamp(20px,3vw,40px)}
.stack{display:flex;flex-direction:column;gap:22px}
.cols{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:22px}
@media(max-width:1180px){.cols{grid-template-columns:1fr}}
.tgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media(max-width:1180px){.tgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.tgrid{grid-template-columns:1fr}}
.trow{display:flex;flex-direction:column;gap:10px;background:#FAF6EE;border-radius:16px;padding:16px 18px;box-shadow:var(--edge),var(--shadow-1);cursor:pointer;border:1px solid transparent;transition:border-color .2s,box-shadow .2s,transform .2s;text-align:left;font:inherit;color:inherit}
.trow:hover{border-color:var(--hair);box-shadow:var(--edge),var(--shadow);transform:translateY(-1px)}
.trow__h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.trow__n{font:600 .75rem var(--font);letter-spacing:.14em;color:var(--gold-2)}
.trow h3{margin:2px 0 0;font-size:1.02rem}
.trow p{margin:0;font-size:.9rem;color:#3a4550;line-height:1.45}
.trow--locked{background:linear-gradient(180deg,#FAF6EE,#F1E9DA)}
.trow--locked p{filter:blur(3px);user-select:none}
.detail{background:#FAF6EE;border-radius:18px;box-shadow:var(--edge),var(--shadow);overflow:hidden}
.detail__head{position:relative;isolation:isolate;padding:22px 24px;color:var(--cream)}
.detail__head::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--img) center/cover}
.detail__head::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(18,26,22,.94),rgba(18,26,22,.72))}
.detail__head h2{color:#fff;margin:6px 0 8px;font-size:clamp(1.5rem,2.4vw,2rem)}
.detail__head p{margin:0;color:#E9E1CF;font-size:1.05rem;max-width:70ch}
.detail__body{padding:22px 24px;display:flex;flex-direction:column;gap:20px}
.acts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.acts li{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:var(--cream);border:1px solid var(--sand)}
.acts .pri{font:700 .66rem/1 var(--font);letter-spacing:.14em;text-transform:uppercase;padding:6px 8px;border-radius:6px;flex:none;margin-top:2px}
.pri--NOW{background:#8C1D12;color:#fff}.pri--NEXT{background:#A87A26;color:#fff}.pri--MONITOR{background:#1F4A3D;color:#fff}
.meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media(max-width:900px){.meta{grid-template-columns:1fr}}
.meta h4{margin:0 0 8px}.meta ul{margin:0;padding-left:1.1em;font-size:.86rem;color:#3a4550}.meta li{margin:.3em 0}
.formula-list{display:flex;flex-direction:column;gap:6px}.formula-list .formula{font-size:.82rem}
.editor{display:grid;grid-template-columns:220px minmax(0,1fr);gap:22px;align-items:start}
@media(max-width:1000px){.editor{grid-template-columns:1fr}}
.steps-nav{position:sticky;top:12px;display:flex;flex-direction:column;gap:4px;background:#FAF6EE;border-radius:16px;padding:10px;box-shadow:var(--edge),var(--shadow-1)}
.steps-nav button{all:unset;cursor:pointer;display:flex;align-items:center;gap:10px;padding:.6em .7em;border-radius:10px;font-weight:600;font-size:.92rem}
.steps-nav button[aria-current=step]{background:var(--cream);color:var(--gold-3)}
.steps-nav i{font-style:normal;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.72rem;background:var(--cream-2);color:var(--muted)}
.steps-nav button.done i{background:var(--pass);color:#fff}
.steps-nav button.err i{background:var(--fail);color:#fff}
.lines{display:flex;flex-direction:column;gap:10px}
.line{display:grid;gap:10px;align-items:end;grid-template-columns:repeat(var(--n,4),minmax(0,1fr)) 40px;background:var(--cream);border:1px solid var(--sand);border-radius:12px;padding:10px 12px}
@media(max-width:900px){.line{grid-template-columns:1fr 1fr}}
.line .field span{font-size:.78rem}
.line .field input,.line .field select{min-height:40px;padding:.5em .6em;font-size:.95rem}
.xbtn{width:36px;height:40px;border:1px solid var(--line-2);border-radius:10px;background:#fff;cursor:pointer;color:var(--fail);font-size:1.1rem}
.addbtn{align-self:flex-start;border:1.5px dashed var(--gold-2);color:var(--gold-3);background:transparent;border-radius:999px;padding:.5em 1em;font:700 .9rem var(--font);cursor:pointer}
.issues{background:var(--fail-bg);border:1px solid #E6B7AE;color:#5b150d;border-radius:12px;padding:10px 14px;font-size:.9rem}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--night);color:#fff;padding:12px 18px;border-radius:12px;box-shadow:var(--shadow-lg);z-index:200;font-weight:600}
.empty{padding:34px;text-align:center;background:#FAF6EE;border-radius:18px;box-shadow:var(--edge),var(--shadow-1)}
.empty h2{margin-bottom:8px}
.welcome{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px}
@media(max-width:900px){.welcome{grid-template-columns:1fr}}
.welcome button,.welcome a{all:unset;cursor:pointer;background:#FAF6EE;border-radius:16px;padding:20px;box-shadow:var(--edge),var(--shadow);display:flex;flex-direction:column;gap:6px;border:1px solid transparent}
.welcome button:hover,.welcome a:hover{border-color:var(--hair)}
.welcome b{font:600 1.2rem var(--display)}
.drop{border:2px dashed var(--gold-2);border-radius:18px;padding:34px;text-align:center;background:rgba(255,255,255,.7);cursor:pointer}
.drop.over{background:var(--cream)}
.staging-bar{position:fixed;right:12px;bottom:12px;z-index:300;background:#15202B;color:#fff;font:600 .78rem var(--font);padding:8px 12px;border-radius:10px;box-shadow:var(--shadow-lg)}
.staging-bar button{background:var(--gold-2);color:#fff;border:0;border-radius:6px;padding:4px 8px;cursor:pointer;font:inherit}
.segment{display:inline-flex;background:var(--cream-2);border-radius:999px;padding:3px}
.segment button{all:unset;cursor:pointer;padding:.4em .9em;border-radius:999px;font-weight:600;font-size:.88rem}
.segment button[aria-pressed=true]{background:#fff;box-shadow:var(--shadow-1)}
.modcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media(max-width:1100px){.modcards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.modcards{grid-template-columns:1fr}}
@media(max-width:900px){
  .crapp{grid-template-columns:1fr}
  .rail{position:static;height:auto;max-height:none;padding:14px}
  .rail__nav{flex-direction:row;overflow-x:auto;gap:4px;margin:12px -14px 0;padding:0 14px 4px;scrollbar-width:none}
  .rail__nav a{flex:none;padding:.5em .75em;font-size:.88rem}
  .rail__nav a[aria-current=page]::before{display:none}
  .rail__foot{display:none}
}
@media print{.rail,.site-header,.announce,footer,.staging-bar,.band__actions{display:none!important}.crapp{display:block}}
.crapp .panel h2,.crapp .panel__h h2{font-size:1.35rem;line-height:1.2;letter-spacing:-.01em}
.crapp .panel h3{font-size:1.02rem}
.crapp .kpi__v{font-size:1.3rem}
.rail__plan a{color:var(--gold-1)}
.crapp .body>h2,.crapp .body .stack>div>h2{font-size:1.6rem}
.detail__body h3{font-size:1rem;margin:4px 0 0}
.rail{position:relative;height:auto;max-height:none;align-self:stretch;overflow:visible}
.rail__nav{position:sticky;top:12px}
@media(max-width:900px){.line{grid-template-columns:1fr 1fr!important}}
.staging-bar{left:12px;right:auto;bottom:12px;opacity:.92;font-size:.72rem}
@media(max-width:900px){.crapp{grid-template-columns:minmax(0,1fr)}.rail,.stage{min-width:0;max-width:100vw}.band h1{font-size:1.7rem}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}.acts li{font-size:.92rem}}
/* List rows: long labels (RU/DE) wrap instead of running into the next column. */
.line .field{min-width:0}
.line .field>span{display:flex;align-items:flex-start;gap:5px;min-height:2.5em;line-height:1.2;white-space:normal;overflow-wrap:anywhere;font-size:.84rem}
.line .field>span .tipbtn{margin-top:1px}
.line .field input,.line .field select{min-width:0;width:100%}
.custauto{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:#F4EDE0;border:1px solid #E3D6BE;border-left:3px solid var(--gold-2,#A87A26);border-radius:12px;padding:12px 14px;margin:10px 0}
.custauto p{margin:0;font-size:.9rem}
.cust-tbl td.num{text-align:right;font-variant-numeric:tabular-nums}
/* ── Repair / Decide / Track (rx) — premium tiles on cream, soft shadows, 150–250 ms motion ── */
.subnav{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 20px;padding:5px;background:var(--cream-2);border-radius:14px;width:max-content;max-width:100%;overflow-x:auto;scrollbar-width:none}
.subnav a{padding:.5em .95em;border-radius:10px;font-weight:600;font-size:.9rem;color:#3a4550;text-decoration:none!important;white-space:nowrap;transition:background .18s,color .18s,box-shadow .18s}
.subnav a:hover{background:rgba(255,255,255,.6);color:var(--ink)}
.subnav a[aria-current=page]{background:#FFFDF8;color:var(--gold-3);box-shadow:var(--shadow-1)}
.tiles{display:grid;gap:14px}
.tiles--3{grid-template-columns:repeat(3,minmax(0,1fr))}.tiles--4{grid-template-columns:repeat(4,minmax(0,1fr))}.tiles--5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1180px){.tiles--5{grid-template-columns:repeat(3,minmax(0,1fr))}.tiles--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.tiles--3,.tiles--4,.tiles--5{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:380px){.tiles--3,.tiles--4,.tiles--5{grid-template-columns:1fr}}
.tile{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:6px;min-height:118px;padding:18px 18px 16px;background:linear-gradient(180deg,#FFFDF8,#FAF6EE);border-radius:18px;box-shadow:var(--edge),var(--shadow-1);border:1px solid rgba(168,122,38,.14);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;position:relative;color:var(--ink)}
.tile:hover{transform:translateY(-2px);box-shadow:var(--edge),var(--shadow);border-color:var(--hair)}
.tile:focus-visible{outline:3px solid var(--gold-1);outline-offset:2px}
.tile__ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--cream-2);color:var(--gold-3);margin-bottom:4px}
.tile__t{font:600 1.04rem/1.25 var(--display);color:var(--ink)}
.tile__p{font-size:.86rem;color:#4b5560;line-height:1.4}
.tile__tag{position:absolute;top:12px;right:12px;font:700 .64rem/1 var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-3)}
.tile--on{border-color:var(--gold-2);background:linear-gradient(180deg,#FFF8E8,#F6ECD5);box-shadow:0 0 0 2px rgba(168,122,38,.25),var(--shadow-1)}
.spill{display:inline-flex;align-items:center;gap:6px;font:700 .68rem/1 var(--font);letter-spacing:.1em;text-transform:uppercase;padding:6px 10px;border-radius:999px;white-space:nowrap;vertical-align:middle}
.spill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.spill--ON_TRACK,.spill--COMPLETED{color:var(--pass);background:var(--pass-bg)}.spill--DIFFERENT{color:var(--tight);background:var(--tight-bg)}.spill--NEEDS_RECHECK,.spill--MISSING{color:var(--fail);background:var(--fail-bg)}.spill--INCOMPLETE,.spill--NOT_STARTED{color:var(--inc);background:var(--inc-bg)}
.prov{display:inline-block;font:700 .62rem/1 var(--font);letter-spacing:.1em;text-transform:uppercase;padding:5px 7px;border-radius:6px;vertical-align:middle;white-space:nowrap}
.prov--VERIFIED{background:var(--pass-bg);color:var(--pass)}.prov--IMPORTED{background:#E3EAF3;color:#2B4A6B}.prov--CALCULATED{background:#EFE7D8;color:var(--gold-3)}.prov--ASSUMED{background:var(--tight-bg);color:var(--tight)}.prov--MISSING{background:var(--fail-bg);color:var(--fail)}
.provsum{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0}
.provlegend{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.provlegend p{margin:0}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.facts--sm{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.facts,.facts--sm{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fact{background:var(--cream);border:1px solid var(--sand);border-radius:14px;padding:12px 14px;min-width:0}
.fact__l{margin:0;font-size:.78rem;color:#56606a;font-weight:600}
.fact__v{margin:4px 0 0;font:600 1.22rem/1.2 var(--display);color:var(--ink);overflow-wrap:anywhere}
.fact--text .fact__v{font:500 .98rem/1.45 var(--font);overflow-wrap:break-word}
@media(max-width:900px){.fact--text{grid-column:1/-1}}
.fact__s{margin:3px 0 0;font-size:.78rem;color:#6b7580}
.route{display:flex;flex-wrap:wrap;gap:0;list-style:none;margin:0;padding:0;counter-reset:r}
.route li{position:relative;padding:.55em 1.2em .55em 1.6em;background:var(--cream-2);color:#6b7580;font:700 .72rem/1 var(--font);letter-spacing:.12em;text-transform:uppercase;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%,10px 50%);margin-right:-4px}
.route li:first-child{clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%);padding-left:1em}
.route li.on{background:var(--night);color:var(--gold-1)}
.ticks,.crosses{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.ticks li,.crosses li{position:relative;padding-left:26px;font-size:.95rem;line-height:1.45}
.ticks li::before{content:"";position:absolute;left:3px;top:.4em;width:11px;height:6px;border-left:2px solid var(--pass);border-bottom:2px solid var(--pass);transform:rotate(-45deg)}
.crosses li::before{content:"×";position:absolute;left:4px;top:-.05em;color:var(--fail);font-weight:700;font-size:1.1rem}
.band--alert::after{background:linear-gradient(90deg,rgba(247,227,223,.97) 0%,rgba(250,240,236,.92) 50%,rgba(250,247,242,.55) 100%)}
.band--alert h1{color:#6d160d}
.wizard{display:grid;grid-template-columns:220px minmax(0,1fr);gap:22px;align-items:start}
@media(max-width:1000px){.wizard{grid-template-columns:1fr}}
.wsteps{list-style:none;margin:0;padding:12px;display:flex;flex-direction:column;gap:4px;background:#FAF6EE;border-radius:16px;box-shadow:var(--edge),var(--shadow-1);position:sticky;top:12px}
@media(max-width:1000px){.wsteps{flex-direction:row;overflow-x:auto;position:static}.wsteps li span{display:none}}
.wsteps li{display:flex;align-items:center;gap:10px;font-weight:600;font-size:.92rem;color:#56606a}
.wsteps li button{all:unset;cursor:pointer;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--cream-2);font-size:.8rem;flex:none;transition:background .18s,color .18s}
.wsteps li.on{color:var(--ink)}.wsteps li.on button{background:var(--gold-grad);color:#fff}
.wsteps li.done button{background:var(--pass);color:#fff}
.wpanel h2{font-size:1.45rem;margin:0 0 6px}
.affix--big input{font-size:1.4rem!important;min-height:58px!important}
.affix--sm input{min-height:36px!important;padding:.35em .5em!important;font-size:.9rem!important}
.idk{all:unset;cursor:pointer;display:inline-block;margin-top:10px;padding:.45em .9em;border-radius:999px;border:1.5px dashed var(--line-2);font:600 .86rem var(--font);color:#56606a;transition:all .18s}
.idk:hover{border-color:var(--gold-2);color:var(--gold-3)}.idk.on{background:var(--fail-bg);border:1.5px solid #E6B7AE;color:var(--fail)}
.commits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media(max-width:700px){.commits{grid-template-columns:1fr}}
.commit .tile{min-height:auto;width:100%}
.commit__f{display:grid;grid-template-columns:1fr 110px auto;gap:10px;align-items:end;padding:10px 4px 2px}
.checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.check--tile{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:#FFFDF8;border:1px solid var(--sand);cursor:pointer;transition:border-color .18s}
.check--tile:hover{border-color:var(--hair)}.check--tile input{margin-top:4px;accent-color:var(--gold-2)}
.run{background:var(--night);color:var(--cream);border-radius:18px;padding:22px 24px;box-shadow:var(--shadow)}
.run__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.run__list li{display:grid;grid-template-columns:18px 1fr auto;gap:12px;align-items:center;opacity:.55;transition:opacity .2s}
.run__list li[data-state=on],.run__list li[data-state=done]{opacity:1}
.run__dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--gold-1)}
.run__list li[data-state=on] .run__dot{background:var(--gold-1);animation:rxpulse 1.1s ease-in-out infinite}
.run__list li[data-state=done] .run__dot{background:var(--gold-1)}
.run__n{font-variant-numeric:tabular-nums;color:var(--gold-1);font-size:.85rem}
.run__sims{margin:14px 0 0;font-size:.82rem;color:#C9C2B3!important}
@keyframes rxpulse{50%{transform:scale(.7)}}
@media(prefers-reduced-motion:reduce){.run__list li[data-state=on] .run__dot{animation:none}.tile,.tile:hover{transition:none;transform:none}}
.legend{display:flex;flex-wrap:wrap;gap:16px;font-size:.8rem;color:#56606a;margin-top:6px}
.lg{display:inline-block;width:18px;height:10px;border-radius:3px;margin-right:6px;vertical-align:middle}
.lg--before{border-top:2px dashed #8C1D12}.lg--after{background:#1F4A3D;height:3px}.lg--res{border-top:2px dashed #A87A26}
.options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media(max-width:1180px){.options{grid-template-columns:1fr}}
.option{background:#FFFDF8;border-radius:18px;padding:18px 20px;box-shadow:var(--edge),var(--shadow);border:1px solid rgba(168,122,38,.18);display:flex;flex-direction:column;gap:12px}
.option__h{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.option__l{font:600 1.15rem var(--display);margin-right:6px}
.option__acts{margin:0;padding-left:1.2em;display:flex;flex-direction:column;gap:10px}
.option__acts li{line-height:1.45}
.option--locked .option__acts{filter:blur(4px);user-select:none}
.tag{font:700 .64rem/1 var(--font);letter-spacing:.1em;text-transform:uppercase;padding:5px 8px;border-radius:6px;background:var(--cream-2);color:var(--gold-3)}
.tag--alt{background:var(--night);color:var(--gold-1)}
.why summary{cursor:pointer;font-size:.84rem;color:var(--gold-3);font-weight:600;margin-top:4px}
.why ul{margin:6px 0 0;padding-left:1.1em;font-size:.86rem;color:#3a4550}
.limits{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px 16px;margin-top:10px}
.limit{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:#FFFDF8;border:1px solid var(--sand)}
.limit .affix{max-width:120px}.limit .muted{font-size:.78rem;text-align:right}
.timeline{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--sand);display:flex;flex-direction:column;gap:10px}
.timeline li{position:relative;display:grid;grid-template-columns:130px 1fr;gap:10px;font-size:.92rem}
.timeline li::before{content:"";position:absolute;left:-20px;top:.35em;width:10px;height:10px;border-radius:50%;background:var(--gold-1)}
.timeline time{color:#56606a;font-weight:600;font-size:.84rem}
@media(max-width:640px){.timeline li{grid-template-columns:1fr}}
.recs{display:flex;flex-direction:column;gap:10px}
.rec{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;padding:14px 18px;border-radius:16px;background:#FFFDF8;box-shadow:var(--edge),var(--shadow-1);text-decoration:none!important;color:var(--ink);transition:box-shadow .2s,transform .2s}
.rec:hover{box-shadow:var(--edge),var(--shadow);transform:translateY(-1px)}
.rec__t{font:600 1.02rem var(--display)}
@media(max-width:640px){.rec{grid-template-columns:1fr}}
.tbl--track td{vertical-align:top}
.act{display:flex;align-items:center;gap:6px;margin:0 0 6px;font-size:.8rem;white-space:nowrap}.act>span:first-child{min-width:74px;color:#56606a}
.act .affix{max-width:150px}
.rcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media(max-width:900px){.rcards{grid-template-columns:1fr 1fr}}@media(max-width:520px){.rcards{grid-template-columns:1fr}}
.rcard{background:linear-gradient(180deg,#FFFDF8,#FAF6EE);border-radius:18px;padding:18px;box-shadow:var(--edge),var(--shadow-1);border:1px solid rgba(168,122,38,.14)}
.rcard__k{margin:0;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-3)}
.rcard__v{margin:8px 0 4px;font:600 1.6rem/1.1 var(--display);color:var(--ink)}
.rcard__s{margin:0;font-size:.84rem;color:#56606a}
.rmap{border-collapse:separate;border-spacing:4px;width:100%;min-width:520px}
.rmap th{font-size:.78rem;color:#56606a;font-weight:600;padding:4px}
.rm{border-radius:8px;padding:10px 6px;text-align:center;font-size:.8rem;font-weight:600;font-variant-numeric:tabular-nums}
.rm--SAFE{background:var(--pass-bg);color:var(--pass)}.rm--BELOW_RESERVE{background:var(--tight-bg);color:var(--tight)}.rm--BELOW_ZERO{background:var(--fail-bg);color:var(--fail)}
.legend .lg.rm--SAFE,.legend .lg.rm--BELOW_RESERVE,.legend .lg.rm--BELOW_ZERO{padding:0;border-radius:3px}
.plain{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.neg{color:var(--fail)!important}.posv{color:var(--pass)!important}
.verdict--PASS{border-left:4px solid var(--pass)}.verdict--TIGHT{border-left:4px solid var(--tight)}.verdict--FAIL{border-left:4px solid var(--fail)}
.segment--rail{margin:0 0 14px;background:rgba(255,255,255,.08)}
.segment--rail button{color:#E6DFCF;font-size:.8rem}
.segment--rail button[aria-pressed=true]{background:var(--gold-grad);color:#fff;box-shadow:none}
html[data-crmode=simple] .ctl{display:none!important}
.slider output{float:right;font-weight:700;color:var(--gold-3);font-variant-numeric:tabular-nums}
.slider input[type=range]{accent-color:var(--gold-2);width:100%;min-height:30px}
.passport{max-width:860px;margin:0 auto;background:#FFFDF8;border-radius:18px;padding:clamp(20px,4vw,44px);box-shadow:var(--edge),var(--shadow)}
.passport h1{font-size:clamp(1.6rem,3vw,2.2rem);margin:0 0 6px}.passport section{margin-top:22px}.passport h2{font-size:1.15rem}
@media print{.no-print,.subnav{display:none!important}.passport{box-shadow:none}}
@media(max-width:900px){.segment--rail{margin:10px 0 0}}
/* ── rx v2: premium decision-instrument components (same tokens as the site) ─────────────── */
.band .eyebrow{margin:0 0 8px}
.btn--rx{min-height:50px;padding:.85em 1.6em;font-size:1rem;letter-spacing:.01em}
.btn--rx.btn--sm{min-height:40px;padding:.55em 1.1em;font-size:.9rem}
.btn--dark.btn--rx{background:var(--night);color:#FBF7EE}.btn--dark.btn--rx:hover{background:#000}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none!important}
.linkbtn{all:unset;cursor:pointer;color:var(--ink);font-weight:600;border-bottom:1.5px solid var(--hair);padding-bottom:1px;transition:border-color .18s,color .18s}
.linkbtn:hover{color:var(--gold-3);border-color:var(--gold-2)}.linkbtn:focus-visible{outline:3px solid var(--gold-1);outline-offset:3px}
.rx-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:18px}
.rx-actions--split{justify-content:space-between}
.rx-cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.crumb{display:inline-block;margin:0 0 14px;font-weight:600;color:#56606a;text-decoration:none!important}.crumb:hover{color:var(--ink)}
.rsec{display:flex;flex-direction:column;gap:14px}
.rsec__h h2{margin:0;font-size:clamp(1.3rem,2vw,1.6rem)}.rsec__h p{margin:4px 0 0;color:#56606a;max-width:70ch}
/* Tiles: selected = dark, high contrast. */
.tile--on{background:var(--night)!important;border-color:var(--night)!important;box-shadow:0 12px 30px -12px rgba(18,26,22,.55)!important}
.tile--on .tile__t{color:#FBF7EE}.tile--on .tile__p{color:#D8D1C2}.tile--on .tile__ico{background:rgba(255,255,255,.1);color:var(--gold-1)}
.tile__arr{margin-top:auto;align-self:flex-end;color:var(--gold-3);font-weight:700;transition:transform .2s}
.tile:hover .tile__arr{transform:translateX(3px)}
.tile--attn{border-left:4px solid var(--fail)!important}
.tile:active{transform:scale(.99)}
/* Status badges: label + mark, never colour alone. */
.sbadge{display:inline-flex;align-items:center;gap:7px;font:700 .7rem/1 var(--font);letter-spacing:.1em;text-transform:uppercase;padding:6px 11px 6px 7px;border-radius:999px;white-space:nowrap;vertical-align:middle;border:1px solid transparent}
.sbadge i{font-style:normal;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:.72rem;background:currentColor}
.sbadge i{color:inherit}.sbadge i{background:transparent;border:1.5px solid currentColor}
.sbadge--PASS,.sbadge--ON_TRACK,.sbadge--VERIFIED,.sbadge--COMPLETED{color:var(--pass);background:var(--pass-bg)}
.sbadge--FAIL,.sbadge--NOT_VERIFIED{color:#7a2a18;background:#F5E6DF}
.sbadge--TIGHT{color:var(--tight);background:var(--tight-bg)}
.sbadge--NEEDS_RECHECK,.sbadge--DIFFERENT{color:var(--tight);background:var(--tight-bg)}
.sbadge--INCOMPLETE,.sbadge--NOT_STARTED,.sbadge--INSUFFICIENT_DATA,.sbadge--CANNOT_VERIFY,.sbadge--NOT_APPLICABLE,.sbadge--NOT_RUN{color:#3f4c58;background:#E8EAEC}
.sbadge--DRAFT,.sbadge--SUPERSEDED{color:#6b5a48;background:var(--cream-2);border-color:var(--sand)}
/* Hero result */
.hero-r{display:flex;flex-direction:column;gap:6px}
.hero-r__e{margin:0;font:700 .72rem/1 var(--font);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-3)}
.hero-r__m{margin:6px 0 0;font-size:clamp(1.5rem,2.8vw,2.2rem);line-height:1.15;max-width:32ch}
.hero-r__big{margin:4px 0 0;font:600 clamp(2.2rem,5vw,3.4rem)/1.05 var(--display);color:var(--ink);letter-spacing:-.02em}
.hero-r__t{margin:4px 0 0;color:#3a4550;max-width:66ch;font-size:1.02rem}
.hero-r--NOT_VERIFIED .hero-r__big{color:#7a2a18}
/* Before → after */
.cmpv{display:grid;grid-template-columns:1fr auto 1fr auto;gap:14px;align-items:center;margin:16px 0;padding:18px;border-radius:16px;background:var(--cream);border:1px solid var(--sand)}
.cmpv__c p,.cmpv__d p{margin:0;font-size:.78rem;color:#56606a;font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.cmpv__c b,.cmpv__d b{display:block;margin-top:4px;font:600 1.5rem/1.1 var(--display);font-variant-numeric:tabular-nums}
.cmpv__c--b b{color:var(--ink)}.cmpv__arr{font-size:1.4rem;color:var(--gold-2)}
.cmpv__d{padding-left:14px;border-left:1px solid var(--sand)}
@media(max-width:640px){.cmpv{grid-template-columns:1fr auto 1fr}.cmpv__d{grid-column:1/-1;border-left:0;padding-left:0;border-top:1px solid var(--sand);padding-top:10px}}
/* Calculation disclosure */
.calc{margin-top:14px;border-top:1px solid var(--sand);padding-top:10px}
.calc summary{cursor:pointer;font-weight:700;font-size:.9rem;color:var(--gold-3);list-style:none}.calc summary::before{content:"＋ "}.calc[open] summary::before{content:"－ "}
.calc__b{padding:10px 0 0}.calc__b h4{margin:10px 0 4px;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:#56606a}
.calc__b ul{list-style:none;margin:0;padding:0}.calc__b li{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px dashed var(--sand)}
/* Empty / insufficient */
.rx-empty{padding:clamp(28px,5vw,56px)}
.rx-insuff{background:#FFFDF8;border:1px solid var(--sand);border-radius:18px;padding:clamp(20px,4vw,34px);box-shadow:var(--edge),var(--shadow-1);display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.rx-insuff h2{margin:0}.rx-insuff ul{margin:0 0 8px;padding-left:1.2em}
/* Vertical timeline & cause chain */
.vtl,.chain{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column}
.vtl li,.chain li{position:relative;padding:0 0 18px 30px}
.vtl li::before,.chain li::before{content:"";position:absolute;left:7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--sand);border:2px solid #FFFDF8;box-shadow:0 0 0 1px var(--sand)}
.vtl li::after,.chain li::after{content:"";position:absolute;left:13px;top:22px;bottom:2px;width:1px;background:var(--sand)}
.vtl li:last-child::after,.chain li:last-child::after{display:none}
.vtl li.on::before{background:var(--gold-2)}
.chain li::before{background:var(--gold-1)}.chain li:last-child::before{background:#7a2a18}
.vtl b,.chain b{display:block}.vtl span,.chain span{display:block;font-size:.86rem;color:#56606a}
.vtl a{text-decoration:none!important;color:inherit}
/* Inputs: large, labels above */
.rgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.rin{display:flex;flex-direction:column;gap:6px;min-width:0}
.rin__l{font-weight:600;font-size:.9rem;color:#2d3740}
.rin__box{display:flex;align-items:center;background:#FFFDF8;border:1.5px solid var(--line-2);border-radius:14px;min-height:56px;padding:0 14px;transition:border-color .18s,box-shadow .18s}
.rin__box:focus-within{border-color:var(--gold-2);box-shadow:0 0 0 4px rgba(201,164,86,.18)}
.rin__box b{color:#6b7580;font-weight:600;font-size:.95rem}.rin__box--r{flex-direction:row}
.rin__box input{all:unset;flex:1;min-width:0;font:600 1.2rem var(--font);color:var(--ink);padding:0 8px;font-variant-numeric:tabular-nums}
.rin__box input[type=date]{font-size:1.05rem}
.rin__box--sm{min-height:38px;border-radius:10px;padding:0 8px}.rin__box--sm input{font-size:.95rem}
.stepper{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.stepper__row{display:flex;align-items:center;gap:8px}
.stepper__row button{width:44px;height:44px;border-radius:12px;border:1.5px solid var(--line-2);background:#FFFDF8;font-size:1.3rem;cursor:pointer;transition:background .18s}
.stepper__row button:hover{background:var(--cream-2)}
.stepper__row input{width:130px;min-height:44px;border-radius:12px;border:1.5px solid var(--line-2);background:#FFFDF8;text-align:center;font:600 1.05rem var(--font);font-variant-numeric:tabular-nums}
.rrange{display:flex;flex-direction:column;gap:8px}.rrange output{float:right;font-weight:700;color:var(--gold-3)}
.rrange input{accent-color:var(--gold-2);width:100%;min-height:32px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* Dialog */
.rdialog{border:0;border-radius:20px;padding:clamp(20px,4vw,32px);max-width:560px;width:calc(100% - 32px);background:#FFFDF8;box-shadow:0 30px 80px -20px rgba(18,26,22,.45)}
.rdialog::backdrop{background:rgba(18,26,22,.45)}
.rdialog h2{margin:0 0 14px}.rdialog li{padding:6px 0;border-bottom:1px dashed var(--sand)}
/* Home */
.glance{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
@media(max-width:900px){.glance{grid-template-columns:repeat(2,minmax(0,1fr))}}
.glance .fact{background:#FFFDF8;box-shadow:var(--edge),var(--shadow-1);padding:18px}
.glance .fact__v{font-size:clamp(1.3rem,2.4vw,1.8rem)}
.attn{border-left:4px solid var(--tight)}
.decrows{list-style:none;margin:8px 0 12px;padding:0;display:flex;flex-direction:column}
.decrows li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--sand)}
.decrows a{font-weight:600;color:var(--ink);text-decoration:none!important}
/* Decide */
.lcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media(max-width:900px){.lcards{grid-template-columns:1fr}}
.lcard{background:#FFFDF8;border-radius:18px;padding:18px;box-shadow:var(--edge),var(--shadow-1);border-top:4px solid var(--sand);display:flex;flex-direction:column;gap:8px}
.lcard--PASS{border-top-color:var(--pass)}.lcard--FAIL{border-top-color:#9c4a36}
.lcard__k{margin:0;font:700 .74rem/1 var(--font);letter-spacing:.14em;text-transform:uppercase;color:#56606a}
.lcard__big{margin:4px 0 0;font:600 1.8rem/1.1 var(--display);font-variant-numeric:tabular-nums}
.lcard__l li{display:flex;justify-content:space-between;gap:10px;font-size:.88rem;padding:4px 0;border-bottom:1px dashed var(--sand)}.lcard__l span{color:#56606a}
.sumcard dl{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.sumcard dl div{background:var(--cream);border-radius:14px;padding:14px 16px;border:1px solid var(--sand)}
.sumcard dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:#56606a;font-weight:700}.sumcard dd{margin:6px 0 0;font:600 1.15rem var(--display)}
.draftbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 20px}
/* Options */
.option{text-decoration:none!important;color:var(--ink);transition:transform .2s,box-shadow .2s}
a.option:hover{transform:translateY(-2px);box-shadow:var(--edge),0 18px 45px rgba(50,42,30,.14)}
.option__n{font:600 1.6rem/1 var(--display);color:var(--gold-2)}
.option__lead{font:700 .74rem/1 var(--font);letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.option__k{margin:4px 0 0;font:700 .7rem/1 var(--font);letter-spacing:.14em;text-transform:uppercase;color:#56606a}
.option__r{margin:0;font-weight:600}
.option__go{margin-top:auto;font-weight:700;color:var(--gold-3)}
.option__acts--big>li{margin-bottom:12px}
/* Protect tiles */
.ptiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media(max-width:900px){.ptiles{grid-template-columns:1fr}}
.ptile .tile{width:100%;min-height:96px}
.ptile--open{grid-column:1/-1}
.ptile__ctl{background:#FFFDF8;border:1px solid var(--sand);border-radius:0 0 18px 18px;margin-top:-10px;padding:18px 18px 10px}
/* Simulate */
.simws{display:grid;grid-template-columns:1fr 2fr;gap:14px}
@media(max-width:900px){.simws{grid-template-columns:1fr}}
.facts--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.schips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.schip{display:inline-flex;align-items:center;gap:6px;padding:8px 10px 8px 14px;border-radius:999px;background:var(--night);color:#FBF7EE;font:700 .78rem var(--font);letter-spacing:.06em;text-transform:uppercase}
.schip__x{all:unset;cursor:pointer;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.14);font-size:1rem}
.schip__x:focus-visible{outline:2px solid var(--gold-1)}
.simctl{margin-top:12px}
.rmapc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media(max-width:900px){.rmapc{grid-template-columns:1fr}}
.rsector{background:#FFFDF8;border-radius:18px;box-shadow:var(--edge),var(--shadow-1);padding:16px 18px;border-top:4px solid var(--sand)}
.rsector--PASS{border-top-color:var(--pass)}.rsector--TIGHT{border-top-color:var(--tight)}.rsector--FAIL{border-top-color:#9c4a36}
.rsector summary{cursor:pointer;list-style:none;display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center}
.rsector__k{font:700 .74rem/1 var(--font);letter-spacing:.14em;text-transform:uppercase}
.rsector__v{grid-column:1;font:600 1.5rem/1.1 var(--display)}.rsector .muted{grid-column:1/-1;font-size:.84rem}
.rm i{font-style:normal;margin-right:4px}
.pfrows{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column}
.pfrows li{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--sand)}
.pfrows li b{font-variant-numeric:tabular-nums}.pfrows__sum{background:var(--cream);padding-left:10px!important;padding-right:10px!important;border-radius:10px}
@media(max-width:640px){.pfrows li{grid-template-columns:1fr auto}.pfrows li b{grid-column:1/-1}}
.seqline{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;position:relative}
/* Check */
.radar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
@media(max-width:1180px){.radar{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:640px){.radar{grid-template-columns:repeat(2,minmax(0,1fr))}}
.radar__s{display:flex;flex-direction:column;gap:8px;padding:16px 14px;border-radius:18px;background:#FFFDF8;box-shadow:var(--edge),var(--shadow-1);text-decoration:none!important;color:var(--ink);border-top:4px solid var(--sand);transition:transform .2s,box-shadow .2s}
.radar__s:hover{transform:translateY(-2px);box-shadow:var(--edge),var(--shadow)}
.radar__s--NOT_APPLICABLE{opacity:.78}.radar__s--PASS{border-top-color:var(--pass)}.radar__s--TIGHT{border-top-color:var(--tight)}.radar__s--FAIL{border-top-color:#9c4a36}
.radar__i{color:var(--gold-3)}.radar__k{font:700 .74rem/1 var(--font);letter-spacing:.14em;text-transform:uppercase}.radar__d{font-size:.8rem;color:#56606a}
.tcards2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media(max-width:1100px){.tcards2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.tcards2{grid-template-columns:1fr}}
.tcard2{position:relative;display:flex;flex-direction:column;gap:8px;padding:20px;border-radius:18px;background:linear-gradient(180deg,#FFFDF8,#FAF6EE);box-shadow:var(--edge),var(--shadow-1);text-decoration:none!important;color:var(--ink);border:1px solid rgba(168,122,38,.12);transition:transform .2s,box-shadow .2s}
.tcard2:hover{transform:translateY(-2px);box-shadow:var(--edge),var(--shadow)}
.tcard2__n{font:600 .76rem/1 var(--font);letter-spacing:.16em;color:var(--gold-2)}.tcard2__t{font:600 1.12rem/1.2 var(--display)}.tcard2__p{font-size:.88rem;color:#4b5560}
.tcard2__m{font-weight:700;font-variant-numeric:tabular-nums}.tcard2__go{position:absolute;right:18px;top:18px;color:var(--gold-3);font-weight:700}
.tcard2__lock{font-size:.8rem;color:#6b7580;font-weight:600}.tcard2--locked{opacity:.8}
/* Track */
.trbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.trbar__q{flex:1;min-width:220px;max-width:420px}
.filters{display:inline-flex;flex-wrap:wrap;gap:4px;background:var(--cream-2);border-radius:999px;padding:4px}
.filters button{all:unset;cursor:pointer;padding:.45em .9em;border-radius:999px;font-weight:600;font-size:.84rem;transition:background .18s}
.filters button[aria-pressed=true]{background:var(--night);color:#FBF7EE}.filters button:focus-visible{outline:2px solid var(--gold-1)}
.rec{grid-template-columns:auto 1.6fr 1.2fr auto 1fr!important;padding:18px 20px!important}
.rec__code{font:600 .8rem var(--font);color:var(--gold-3);letter-spacing:.1em}
.rec small{display:block;font:500 .78rem var(--font);color:#6b7580;margin-top:3px}
.rec__e,.rec__n{font-weight:600;font-variant-numeric:tabular-nums}
@media(max-width:900px){.rec{grid-template-columns:1fr!important}}
.matches{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.matches li{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px;border-radius:14px;background:var(--cream);border:1px solid var(--sand)}
.matches .rx-actions{margin-top:0}
/* Reports */
.docs{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.doc{display:flex;flex-direction:column;gap:8px;min-height:170px;padding:22px;border-radius:18px;background:linear-gradient(180deg,#FFFDF8,#F6F0E4);box-shadow:var(--edge),var(--shadow-1);border:1px solid rgba(168,122,38,.14);text-decoration:none!important;color:var(--ink);transition:transform .2s,box-shadow .2s;position:relative}
.doc:hover{transform:translateY(-2px);box-shadow:var(--edge),var(--shadow)}
.doc__i{color:var(--gold-3)}.doc__t{font:600 1.15rem/1.2 var(--display)}.doc__m{font-size:.86rem;color:#56606a}.doc__go{margin-top:auto;color:var(--gold-3);font-weight:700}
.lcards--pp{grid-template-columns:repeat(3,minmax(0,1fr))}
/* Mobile: sticky primary action */
@media(max-width:700px){.rx-cta--sticky{position:sticky;bottom:0;z-index:20;background:linear-gradient(180deg,rgba(250,247,242,0),var(--paper) 30%);padding:18px 0 12px;margin:0 -4px}.rx-cta--sticky .btn{flex:1}.btn--rx{width:100%}.rx-actions .btn--rx{flex:1 1 100%}}
@media(prefers-reduced-motion:reduce){.tcard2,.radar__s,.doc,a.option{transition:none}}

.radar__s .rb,.tcard2 .rb,.radar__s>.badge,.tcard2>.badge,.radar__s>[class*="badge"],.tcard2>[class*="badge"]{align-self:flex-start}
.radar__s>.sbadge,.tcard2>.sbadge,.lcard>.sbadge{align-self:flex-start}
/* Radar tiles are narrow: a long state ("Not applicable", "Included in the full X-Ray") wraps inside the tile instead of running past its edge. */
.radar__s>.sbadge{white-space:normal;max-width:100%;line-height:1.2;text-align:left}
@media (max-width:640px){.band>p{max-width:100%;padding-right:4px;overflow-wrap:anywhere}}
.skel{display:inline-block;height:.8em;width:min(100%,15em);border-radius:6px;background:linear-gradient(90deg,var(--cream-2,#EFE6D6),#F7F1E6);vertical-align:middle}
.option--locked .option__acts{filter:none}
/* ── Account mode: workspace switcher, sheet, lock, working-in ─────────────────── */
.wsswitch{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:14px;background:rgba(255,255,255,.06);border:1px solid rgba(201,164,86,.35);color:#FBF7EE;transition:background .15s}
.wsswitch:hover{background:rgba(255,255,255,.1)}.wsswitch:focus-visible{outline:2px solid var(--gold-1);outline-offset:2px}
.wsswitch__mark{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font:600 1.05rem/1 var(--display);background:var(--gold-grad);color:#fff}
.wsswitch__txt{display:flex;flex-direction:column;min-width:0;flex:1}.wsswitch__txt small{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-1)}.wsswitch__txt b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.98rem}
.wssheet{border:0;padding:0;border-radius:22px;background:var(--paper,#FAF7F2);box-shadow:0 30px 80px -30px rgba(18,26,22,.6);width:min(560px,calc(100vw - 32px));max-height:min(80vh,720px)}
.wssheet::backdrop{background:rgba(18,26,22,.45)}
.wssheet__in{padding:22px}.wssheet__list{display:grid;gap:10px}
@media (max-width:760px){.wssheet{margin:auto 0 0;width:100vw;max-width:100vw;border-radius:22px 22px 0 0;max-height:85vh}.wssheet__in{padding:18px 16px calc(18px + env(safe-area-inset-bottom))}}
.wsrows{display:grid;gap:10px}
.wsrow{display:grid;grid-template-columns:44px 1fr auto;gap:14px;align-items:center;padding:14px 16px;border-radius:18px;background:#FFFDF8;border:1px solid rgba(168,122,38,.16);box-shadow:var(--edge),var(--shadow-1)}
.wsrow .wscard__mark{grid-row:auto}.wsrow__main{display:flex;flex-direction:column;min-width:0}.wsrow__main b{font-size:1.02rem}
.wsrow__acts{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.wsrow--archived{opacity:.8}
@media (max-width:760px){.wsrow{grid-template-columns:44px 1fr}.wsrow__acts{grid-column:1/-1;justify-content:flex-start}}
.btn--sm{min-height:36px;padding:0 12px;font-size:.86rem}
.btn--danger{background:#8C1D12;color:#fff;border:0}.btn--danger:hover{background:#6e150d}.btn--danger[disabled]{opacity:.45;cursor:not-allowed}
.btn--line.btn--sm{border-width:1px}
.wsin{display:flex;align-items:center;gap:10px;margin:0;padding:10px clamp(20px,3vw,40px);background:#FBF3E2;border-bottom:1px solid var(--sand);font-size:.9rem;color:#3a4550}
.wsin__dot{width:8px;height:8px;border-radius:50%;background:var(--gold-2)}
.lockp{display:flex;flex-direction:column;gap:12px;max-width:720px}.lockp__k{margin:0;font-weight:700;color:var(--gold-3)}
.rail__signout{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:10px 0 0}.rail__signout .linkbtn{color:#D8D1C2;font-size:.84rem}.linkbtn--muted{opacity:.75}
.rail__plan a{color:var(--gold-1)}
.cdlg{border:0;border-radius:20px;padding:24px;max-width:min(520px,calc(100vw - 32px));background:var(--paper,#FAF7F2);box-shadow:0 30px 80px -30px rgba(18,26,22,.6)}.cdlg::backdrop{background:rgba(18,26,22,.45)}
.cdlg input{min-height:46px;border-radius:12px;border:1.5px solid var(--sand);padding:0 12px;width:100%;box-sizing:border-box}

@media (max-width:760px){.crapp--acct .rail__signout{display:none}}
/* Desktop rail: the WHOLE rail (nav, mode switch, account menu) stays together under the sticky
   site header and scrolls inside itself when taller than the screen — nothing slides under anything.
   The dark column continues below it to the end of the page. */
@media(min-width:901px){
  .cr.crapp{background:linear-gradient(90deg,#141c18 0,#141c18 268px,#F3EDE2 268px)!important}
  .rail{position:sticky;top:var(--hdr,80px);align-self:start;height:auto;max-height:calc(100vh - var(--hdr,80px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
  .rail__nav{position:static}
  .rail__foot{margin-top:18px}
}
/* Quick setup → commitments: the amount gets the room (six figures stay visible), the day-of-month is short. */
.commit__f{grid-template-columns:minmax(170px,1.7fr) minmax(84px,.6fr) auto}
.commit__f .field{min-width:0}
.commit__f .affix{display:flex;width:100%}
.commit__f .affix input{flex:1 1 auto;min-width:0;width:100%;text-align:left}
.commit__f input[data-cdom]{width:100%;min-width:0}
@media(max-width:420px){.commit__f{grid-template-columns:1fr 84px}.commit__f>.btn{grid-column:1/-1;justify-self:start}}
/* Option tiles (payment terms, reserve, business type): text centred, not stuck to one side. */
.wpanel .tiles .tile{justify-content:center;align-items:center;text-align:center}
.wpanel .tiles .tile .tile__t,.wpanel .tiles .tile .tile__p{text-align:center;width:100%}
/* Choice tiles in the setup/decision wizards: centred, balanced type, a quiet gold-rimmed icon medallion. */
.wpanel .tiles .tile{padding:20px 14px 18px;gap:10px}
.wpanel .tiles .tile .tile__t{font-size:1.02rem;line-height:1.25;text-wrap:balance;hyphens:manual}
.wpanel .tiles .tile .tile__p{text-wrap:balance}
.wpanel .tiles .tile__ico{width:54px;height:54px;border-radius:50%;margin:0 auto 2px;background:radial-gradient(circle at 35% 30%,#FFFDF8,#F1E7D4);box-shadow:inset 0 0 0 1.5px rgba(168,122,38,.45),0 6px 14px -8px rgba(120,90,30,.45);color:#8C6D31}
.wpanel .tiles .tile__ico svg{width:24px;height:24px;stroke-width:1.6}
.wpanel .tiles .tile--on .tile__ico{background:radial-gradient(circle at 35% 30%,#3a3526,#1f1c14);box-shadow:inset 0 0 0 1.5px rgba(227,199,126,.7);color:#E3C77E}
.wpanel .tiles .tile--on{background:linear-gradient(160deg,#2b2a22,#15130e)}
/* Settings → account: facts on their own lines; the two sign-out choices are separate, full buttons. */
.acctp__facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 18px;margin:6px 0 16px}
.acctp__facts dt{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.acctp__facts dd{margin:2px 0 0;font-size:1rem}
.acctp__mail{overflow-wrap:anywhere}
.acctp__out{margin-top:22px;padding-top:18px;border-top:1px solid rgba(168,122,38,.18);display:grid;gap:14px}
.acctp__out h3{margin:0;font-size:1.02rem}
.acctp__opt{display:grid;grid-template-columns:minmax(220px,max-content) 1fr;gap:6px 16px;align-items:center}
.acctp__opt p{margin:0;font-size:.9rem}
@media(max-width:640px){.acctp__opt{grid-template-columns:1fr}.acctp__opt .btn{width:100%}}
/* Rail: sign-out choices as two clearly separate buttons. */
.rail__signout{gap:8px!important}
#signout-form .linkbtn{display:block;width:100%;box-sizing:border-box;white-space:normal;text-align:left;padding:.55em .8em;border:1px solid rgba(201,164,86,.35);border-radius:10px;text-decoration:none;line-height:1.3}
#signout-form .linkbtn:hover{background:rgba(255,255,255,.06)}
#signout-form .linkbtn--muted{opacity:.85;font-size:.8rem}
/* Level of detail: explained under the switch; in Full control the extra blocks are visibly marked. */
.rail__modehint{margin:-6px 2px 12px;font-size:.76rem;line-height:1.4;color:#BFB7A6}
html[data-crmode=control] .ctl{position:relative;box-shadow:inset 3px 0 0 #C9A456,var(--shadow-1,0 1px 2px rgba(0,0,0,.06))}
html[data-crmode=control] .ctl::before{content:var(--ctl-tag,"Full control");position:absolute;top:10px;right:12px;font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8C6D31;background:#F6EEDC;border:1px solid rgba(168,122,38,.35);border-radius:999px;padding:2px 8px}
@media(max-width:900px){.rail__modehint{margin:6px 2px 0}}
/* Profile lists: each row is a roomy card. The name spans the row; every other field gets a width that
   fits real values (six-figure amounts, full select labels, dates) and wraps to the next line instead of
   squeezing. Labels never break inside a word. */
.lines{display:grid;gap:14px}
.lcard{background:#F6F0E3;border:1px solid #E3D6BE;border-radius:16px;padding:14px 16px 16px}
.lcard__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.lcard__n{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#2f3a24;color:#F4ECDD;font-size:.8rem;font-weight:700}
.lcard__del{all:unset;cursor:pointer;font-size:.86rem;font-weight:600;color:#7a3b2e;padding:6px 12px;border-radius:999px;border:1px solid rgba(122,59,46,.3)}
.lcard__del:hover{background:rgba(122,59,46,.07)}.lcard__del:focus-visible{outline:2px solid #8C6D31;outline-offset:2px}
.lcard__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px 14px;align-items:start}
.lcard__grid .lf--wide{grid-column:1/-1}
.lcard__grid .lf--int{min-width:0}
.lcard__grid .field{min-width:0}
.lcard__grid .field>span{display:flex;align-items:flex-start;gap:5px;font-size:.86rem;line-height:1.3;white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:manual;margin-bottom:5px}
.lcard__grid .field input,.lcard__grid .field select{width:100%;min-width:0;min-height:46px;font-size:1rem;padding:.55em .7em;box-sizing:border-box}
.lcard__grid .affix{display:flex;width:100%}.lcard__grid .affix input{flex:1 1 auto;min-width:0}
.lcard__grid .affix b{flex:none}
@media(max-width:560px){.lcard__grid{grid-template-columns:1fr 1fr}.lcard__grid .lf--money,.lcard__grid .lf--select,.lcard__grid .lf--date,.lcard__grid .lf--month{grid-column:1/-1}}
/* Single fields: same comfortable size. */
.fgrid .field input,.fgrid .field select{min-height:46px;font-size:1rem}
/* Step lists stay below the sticky site header on desktop; on phones they are not sticky (never cover the form). */
.steps-nav,.wsteps{top:calc(var(--hdr,80px) + 12px)}
@media(max-width:1000px){.steps-nav{position:static}.wsteps{position:static}}
/* Wizard/review never wider than the screen. */
@media(max-width:1000px){.wizard,.editor{grid-template-columns:minmax(0,1fr)!important}.wpanel,#pform{min-width:0}.wpanel .tbl-wrap{overflow-x:auto}}
html:has(#crapp){scroll-behavior:auto}
.rx-insuff__list{list-style:none;padding:0;margin:10px 0 16px;display:grid;gap:8px}
.rx-insuff__list a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;background:#FFFDF8;border:1px solid rgba(168,122,38,.3);color:#1f2d24;font-weight:600;text-decoration:none}
.rx-insuff__list a:hover{border-color:#A87A26}
.rin__box select{flex:1;min-width:0;border:0;background:transparent;font:600 1.2rem var(--font);color:var(--ink);padding:0 8px;cursor:pointer}
/* Commitments: each choice is one card holding its own fields; Remove sits on its own line. */
.commits{align-items:start}
.commit{border-radius:18px}
.commit--on{background:#F6F0E3;border:1px solid #E3D6BE;padding:8px 8px 12px}
.commit .tile{justify-content:center;align-items:center;text-align:center;min-height:92px}
.commit .tile .tile__t,.commit .tile .tile__p{text-align:center;width:100%;text-wrap:balance}
.commit__f{grid-template-columns:minmax(0,1.6fr) minmax(84px,.7fr)!important;padding:12px 6px 0}
.commit__f>.btn{grid-column:1/-1;justify-self:end;margin-top:2px}
.commit__f .field>span{white-space:nowrap}
@media(max-width:1360px) and (min-width:701px){.commits{grid-template-columns:1fr 1fr}}
/* Phone tables: readable columns with a sideways scroll and a visible "more →" shade, instead of clipping. */
@media(max-width:600px){
  .crapp .tbl-wrap{position:relative;overflow-x:auto;background:linear-gradient(90deg,#FAF6EE 30%,rgba(250,246,238,0)),linear-gradient(90deg,rgba(250,246,238,0),#FAF6EE 70%) 100% 0,radial-gradient(farthest-side at 0 50%,rgba(40,35,25,.18),transparent),radial-gradient(farthest-side at 100% 50%,rgba(40,35,25,.18),transparent) 100% 0;background-repeat:no-repeat;background-size:40px 100%,40px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll}
  .crapp .tbl-wrap .tbl{min-width:520px}
  .crapp .tbl td,.crapp .tbl th{padding:8px 10px;white-space:nowrap}
  .crapp .tbl td:first-child,.crapp .tbl th:first-child{white-space:normal;min-width:130px}
}
.wsquota{margin:14px 0 0;font-size:.95rem;color:#3a4550}.wssheet .wsquota{color:#3a4550}
.rail__addws{display:inline-block;margin-top:6px;color:#E3C77E!important;font-weight:600;font-size:.78rem;line-height:1.35;text-decoration:underline;text-underline-offset:2px}
/* Inline "Full control" blocks (tables, formulas, calculation disclosures): gold rule on the left, small tag. */
html[data-crmode=control] .ctl--flat{box-shadow:inset 3px 0 0 #C9A456;padding-left:12px;padding-top:26px;border-radius:6px}
html[data-crmode=control] .ctl--flat::before{top:4px;right:auto;left:12px}
#signout-form{width:100%;box-sizing:border-box;padding-right:2px}
/* Field errors: always red, readable, and the box itself turns red (profile and quick setup alike) */
.crapp .field__err{color:var(--fail,#A33A2B)!important;font-weight:500!important;font-size:.84rem!important;letter-spacing:0;text-transform:none;display:block;margin-top:4px}
.crapp .field--err input:not(.rin__box input),.crapp .field--err select,.crapp .field--err .rin__box{border-color:var(--fail,#A33A2B)!important;box-shadow:0 0 0 1px var(--fail,#A33A2B) inset}
.crapp .field--err .rin__box input{border-color:transparent!important;box-shadow:none!important}
/* Scenario compare: 4 fields on desktop, 2 on phone; table rows become cards on phone (every value labelled, Remove reachable) */
.fgrid--cmp{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media(max-width:640px){
  .fgrid--cmp{grid-template-columns:1fr 1fr}.fgrid--cmp .field:first-child{grid-column:1/-1}
  .tbl--stack thead{display:none}.tbl--stack,.tbl--stack tbody,.tbl--stack tr,.tbl--stack td{display:block;width:100%;min-width:0!important;max-width:100%}.tbl-wrap:has(.tbl--stack){overflow:visible;-webkit-mask-image:none;mask-image:none;background:none}
  .tbl--stack tr{padding:12px 0;border-bottom:1px solid rgba(168,122,38,.2)}
  .tbl--stack td{display:flex;justify-content:space-between;gap:12px;padding:3px 0!important;border:0!important;text-align:right}
  .tbl--stack td[data-l]::before{content:attr(data-l);color:var(--muted,#6b665b);font-size:.84rem;text-align:left}
  .tbl--stack td.tbl__name{font-weight:700;text-align:left}.tbl--stack td.tbl__act{justify-content:flex-end}.tbl--stack td:empty{display:none}
}
/* B8-5: the scenario-compare table (5 columns, long headers like "BALANCE IN 12 MONTHS") does not fit a 768–1100 px
   card and was cut mid-word with no scroll cue. There each scenario becomes a labelled card: the name on its own
   line, then the four figures side by side, each under its own label. Phones keep the one-column stack above. */
@media(min-width:641px) and (max-width:1100px){
  .tbl--cmp thead{display:none}.tbl-wrap:has(.tbl--cmp){overflow:visible;-webkit-mask-image:none;mask-image:none;background:none}
  .tbl--cmp,.tbl--cmp tbody{display:block;width:100%;min-width:0!important}
  .tbl--cmp tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 16px;padding:14px 0;border-bottom:1px solid rgba(168,122,38,.2)}
  .tbl--cmp td{display:flex;flex-direction:column;justify-content:space-between;gap:2px;padding:0!important;border:0!important;text-align:left!important;white-space:normal!important;min-width:0!important}
  .tbl--cmp td[data-l]::before{content:attr(data-l);color:var(--muted,#6b665b);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;line-height:1.3}
  .tbl--cmp td.tbl__name{grid-column:1/-1;font-weight:700;margin-bottom:6px}.tbl--cmp td.tbl__act{grid-column:1/-1;flex-direction:row;justify-content:flex-end}.tbl--cmp td:empty{display:none}
}
/* B9-1: the Track "Expected vs actual" table (month, 3 figures, status, ACTUAL inputs) is over 1000 px wide,
   so below 1100 px each month becomes a labelled card: the month on its own line, the figures and the status
   side by side under their labels, and the ACTUAL entry fields on a full-width line below — the same pattern
   as .tbl--cmp (B8-5). Every cell's label comes from its data-l attribute (v-track.js). */
@media(max-width:1100px){
  .tbl--track thead{display:none}.tbl-wrap:has(.tbl--track){overflow:visible;-webkit-mask-image:none;mask-image:none;background:none}
  .tbl--track,.tbl--track tbody{display:block;width:100%;min-width:0!important}
  .tbl--track tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 16px;padding:14px 0;border-bottom:1px solid rgba(168,122,38,.2)}
  .tbl--track td{display:flex;flex-direction:column;gap:2px;padding:0!important;border:0!important;text-align:left!important;white-space:normal!important;min-width:0!important;max-width:100%}
  .tbl--track td[data-l]::before{content:attr(data-l);color:var(--muted,#6b665b);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;line-height:1.3}
  .tbl--track td.tbl__name{grid-column:1/-1;font-weight:700;margin-bottom:2px}
  .tbl--track td.tbl__acts{grid-column:1/-1;margin-top:6px}
  .tbl--track td.tbl__acts .act{white-space:normal;width:100%;max-width:100%}
  .tbl--track td.tbl__acts .act .rin__box{flex:1 1 auto;min-width:0;max-width:240px}
  .tbl--track td:empty{display:none}
}
@media(max-width:640px){.tbl--track tr{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* B9-4: the Recheck "Then and now" table (label + THEN + NOW) is 520 px wide in a 312 px card at 390:
   at phone width each row becomes a labelled pair — the field name on its own line, THEN and NOW side by
   side under their headers (from data-l, v-track.js). */
@media(max-width:640px){
  .tbl--tn thead{display:none}.tbl-wrap:has(.tbl--tn){overflow:visible;-webkit-mask-image:none;mask-image:none;background:none}
  .tbl--tn,.tbl--tn tbody{display:block;width:100%;min-width:0!important}
  .tbl--tn tr{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;padding:12px 0;border-bottom:1px solid rgba(168,122,38,.2)}
  .tbl--tn td{display:flex;flex-direction:column;gap:2px;padding:0!important;border:0!important;text-align:left!important;white-space:normal!important;min-width:0!important;max-width:100%}
  .tbl--tn td[data-l]::before{content:attr(data-l);color:var(--muted,#6b665b);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;line-height:1.3}
  .tbl--tn td.tbl__name{grid-column:1/-1;font-weight:700;margin-bottom:2px}
}
/* Toasts: readable width on phone, never stacked (the app replaces the previous one) */
.crapp ~ .toast,body .toast{max-width:min(560px,calc(100vw - 32px));width:max-content;text-align:center;line-height:1.4;border-radius:14px}
@media(max-width:640px){body .toast{width:calc(100vw - 32px);bottom:16px;font-size:.9rem;padding:12px 14px}}
/* Every section of the app sits on its own premium desk photograph (from the site's series) under a warm
   cream veil; panels and cards stay solid so every number reads cleanly. */
#stage[data-tab] > .body{position:relative;isolation:isolate;min-height:70vh}
#stage[data-tab] > .body::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--sec-img,url(/img/cr/v2/advisor.webp)) center 35%/cover no-repeat}
#stage[data-tab] > .body::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(243,237,226,.80) 0%,rgba(243,237,226,.66) 40%,rgba(243,237,226,.76) 100%)}
#stage[data-tab=home]{--sec-img:url(/img/cr/v2/advisor.webp)}
#stage[data-tab=check] > .body::before,#stage[data-tab=check] > .body::after,#stage[data-tab=xray] > .body::before,#stage[data-tab=xray] > .body::after{display:none}
#stage[data-tab=decide]{--sec-img:url(/img/cr/v2/packs.webp)}
#stage[data-tab=fix]{--sec-img:url(/img/cr/v2/foundation.webp)}
#stage[data-tab=simulate]{--sec-img:url(/img/cr/v2/developers.webp)}
#stage[data-tab=track]{--sec-img:url(/img/cr/v2/lender.webp)}
#stage[data-tab=reports]{--sec-img:url(/img/cr/v2/reportCover.webp)}
#stage[data-tab=business],#stage[data-tab=profile]{--sec-img:url(/img/cr/v2/revenueShock.webp)}
#stage[data-tab=settings],#stage[data-tab=workspaces]{--sec-img:url(/img/cr/v2/ownerPay.webp)}
#stage[data-tab] > .body .panel,#stage[data-tab] > .body .tile,#stage[data-tab] > .body .fact{background-color:rgba(255,253,248,.96)}
.crapp .wizard #wform,.crapp .editor #pform{background:rgba(255,253,248,.97);box-shadow:0 22px 50px -30px rgba(37,36,32,.6)}
.crapp .wizard .wsteps,.crapp .editor .steps-nav{background:rgba(255,253,248,.92);border-radius:16px}

/* Home: ONE next step with its button, and the path it belongs to */
.nstep{border-radius:22px;padding:20px 24px 22px;background:rgba(255,253,248,.97);box-shadow:0 0 0 1.5px #C9A456,0 24px 50px -32px rgba(37,36,32,.7)}
.nstep--alert{box-shadow:0 0 0 1.5px rgba(140,29,18,.55),0 24px 50px -32px rgba(140,29,18,.45)}
.nstep__top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px;margin-bottom:14px}
.nstep__top .hero-r__e{margin:0}
.jpath{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;counter-reset:none}
.jpath__s a{display:inline-flex;align-items:center;gap:6px;padding:5px 11px 5px 5px;border-radius:999px;border:1px solid rgba(168,122,38,.28);background:#FFFDF8;color:#4a463d;text-decoration:none;font-size:.84rem;font-weight:600}
.jpath__s i{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#EFE7D6;font-style:normal;font-size:.75rem;color:#6E5320}
.jpath__s + .jpath__s::before{content:"→";color:#B89A5B;margin:0 2px 0 0;align-self:center}
.jpath__s{display:inline-flex;align-items:center;gap:6px}
.jpath__s--done i{background:#2F4A22;color:#fff}
.jpath__s--now a{background:linear-gradient(180deg,#C9A456,#8C6D31);color:#fff;border-color:transparent}
.jpath__s--now i{background:rgba(255,255,255,.25);color:#fff}
.nstep__body{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px 20px;align-items:center}
.nstep__ico{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:#F3EAD7;color:#8C6D31}
.nstep--alert .nstep__ico{background:#F6E1DC;color:#8C1D12}
.nstep__txt h2{margin:0 0 6px;font:600 1.35rem/1.25 var(--display)}
.nstep__txt p{margin:0 0 4px}
.nstep__why{font-size:.9rem}
.nstep__act .btn{white-space:normal;text-align:center}
@media(max-width:760px){.nstep{padding:16px}.nstep__body{grid-template-columns:1fr}.nstep__ico{display:none}.nstep__act .btn{width:100%;justify-content:center}.jpath__s span{font-size:.8rem}}
/* Cards that lead somewhere say so: a visible "Open →" button, not just a faint arrow */
.tile__go{display:inline-flex;align-items:center;gap:6px;margin-top:10px;align-self:flex-start;padding:7px 14px;border-radius:999px;background:#1f2a1c;color:#fff;font-weight:700;font-size:.84rem}
.tile:hover .tile__go{background:#8C6D31}

@media(max-width:760px){.jpath__s + .jpath__s::before{display:none}.jpath{gap:6px}}
/* Path bar at the top of every main section, next-step card at the bottom */
.jpath-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin:0 0 18px;padding:10px 12px;border-radius:16px;background:rgba(255,253,248,.94);box-shadow:0 10px 26px -22px rgba(37,36,32,.6)}
.jpath-bar__here{font-size:.84rem;color:#6b665b}
.nstep--flow{margin-top:26px}
.nstep--flow .nstep__ico{font-size:1.6rem;font-weight:700}
@media(max-width:760px){.jpath-bar__here{display:none}}
/* Home: map of everything in the system */
.smap{border-radius:22px;padding:22px 24px;background:rgba(255,253,248,.96);box-shadow:0 18px 40px -30px rgba(37,36,32,.55)}
.smap h2{margin:0 0 4px;font:600 1.35rem/1.25 var(--display)}
.smap__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin-top:14px}
.smap__sec{border:1px solid rgba(168,122,38,.2);border-radius:16px;padding:12px 14px;background:#FFFDF8}
.smap__sec h3{margin:0 0 8px;font-size:1rem}.smap__sec h3 a{display:inline-flex;align-items:center;gap:8px;color:#1f2a1c;text-decoration:none}
.smap__sec h3 i{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#EFE7D6;font-style:normal;font-size:.75rem;color:#6E5320}
.smap__sec ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.smap__sec li a{display:block;padding:7px 8px;border-radius:10px;color:inherit;text-decoration:none}
.smap__sec li a:hover{background:#F6EEDC}
.smap__sec li b{display:block;font-size:.9rem;color:#1f2a1c}.smap__sec li span{display:block;font-size:.8rem;color:#6b665b;line-height:1.35}
@media(max-width:760px){.jpath-bar .jpath{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.jpath-bar .jpath__s a{white-space:nowrap}}
/* S3 profile inputs: yes/no fields, "I pay suppliers before I sell", a project's milestones inside its card */
.field input[type=checkbox],.lcard__grid .field input[type=checkbox]{width:22px;height:22px;min-height:0;padding:0;margin:6px 0 0;accent-color:var(--gold-2,#8C6D31)}
.field .check{display:flex;gap:8px;align-items:center;font-size:.9rem}
.sublist{margin-top:14px;padding-top:12px;border-top:1px dashed #D9C9A8;display:flex;flex-direction:column;gap:10px}
.sublist h4{margin:0;font:700 .78rem/1.2 var(--font);letter-spacing:.12em;text-transform:uppercase;color:#56606a}
.lcard--sub{background:#FCF8F1;border-color:#EADFC9;padding:10px 12px 12px}
.lcard--sub .lcard__n{width:auto;min-width:26px;padding:0 6px;border-radius:13px}
/* ── S4 business models: selection, per-model wizard windows, KPI strip, business charts ── */
.mbody .wpanel h2{font-size:1.5rem}
.crapp .mbody .wizard #wform,.crapp .mbody .bsel{background:rgba(255,253,248,.965)}
/* Step A — categories */
.bsel .tsearch{margin:14px 0 18px}
.tsearch .rin__box svg{color:var(--gold-3);flex:none}
.tsearch input[type=search]::-webkit-search-cancel-button{cursor:pointer}
.tsearch__n{margin:8px 2px 0;font-size:.86rem;min-height:1.2em}
.tsearch__res{margin-top:10px}
.bcats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
@media(max-width:1280px){.bcats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.bcats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}
.bcat{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;gap:8px;padding:20px 14px 18px;min-height:100%;border-radius:18px;background:linear-gradient(180deg,#FFFDF8,#FAF6EE);border:1px solid rgba(168,122,38,.16);box-shadow:var(--edge),var(--shadow-1);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;color:var(--ink)}
.bcat:hover{transform:translateY(-2px);border-color:var(--hair);box-shadow:var(--edge),var(--shadow)}
.bcat:focus-visible{outline:3px solid var(--gold-1);outline-offset:2px}
.bcat__ico{width:60px;height:60px;flex:none;display:block;padding:10px;box-sizing:content-box;border-radius:50%;background:radial-gradient(circle at 35% 30%,#FFFDF8,#F1E7D4);box-shadow:inset 0 0 0 1.5px rgba(168,122,38,.4),0 8px 18px -10px rgba(120,90,30,.5)}
.bcat__t{font:600 1.06rem/1.25 var(--display);text-wrap:balance;width:100%}
.bcat__p{font-size:.84rem;line-height:1.4;color:#4b5560;text-wrap:balance;width:100%}
.bcat--on{border-color:var(--gold-2);background:linear-gradient(180deg,#FFF8E8,#F6ECD5);box-shadow:0 0 0 2px rgba(168,122,38,.25),var(--shadow-1)}
@media(max-width:760px){.bcat{padding:16px 10px 14px}.bcat__ico{width:52px;height:52px;padding:8px}.bcat__t{font-size:.98rem}.bcat__p{font-size:.8rem}}
/* Step B — types */
.bhead{display:flex;gap:16px;align-items:center;margin:10px 0 4px}.bhead h2{margin:0}.bhead p{margin:4px 0 0}
.bhead .bcat__ico{width:56px;height:56px}
.btypes{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
@media(max-width:560px){.btypes{grid-template-columns:1fr}}
.btype{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:14px 16px;border-radius:14px;background:#FFFDF8;border:1px solid rgba(168,122,38,.2);box-shadow:var(--shadow-1);transition:border-color .18s,box-shadow .18s,transform .18s;color:var(--ink);min-width:0}
.btype:hover{border-color:var(--gold-2);transform:translateY(-1px);box-shadow:var(--shadow)}
.btype:focus-visible{outline:3px solid var(--gold-1);outline-offset:2px}
.btype__t{font:600 1rem/1.3 var(--display);overflow-wrap:anywhere}
.btype__c{font:700 .66rem/1.2 var(--font);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-3)}
.btype__p{font-size:.84rem;line-height:1.4;color:#56606a}
.btype__tag{margin-top:auto;display:inline-flex;align-items:center;font:700 .64rem/1 var(--font);letter-spacing:.1em;text-transform:uppercase;padding:5px 8px;border-radius:999px}
.btype__tag--a{background:var(--pass-bg);color:var(--pass)}.btype__tag--b{background:#EFE7D8;color:var(--gold-3)}
.btype__tag--soon{background:#ECE8E0;color:#5d6770}.btype__tag--x{background:var(--fail-bg);color:var(--fail)}
.btype--soon{cursor:not-allowed;background:#F7F3EC;border-style:dashed;box-shadow:none}.btype--soon:hover{transform:none;border-color:rgba(168,122,38,.2);box-shadow:none}
.btype--soon .btype__t{color:#4b5560}
.btype--gen{background:linear-gradient(180deg,#FBF6EA,#F3EAD6);border-color:rgba(168,122,38,.35)}
.btype--x{cursor:default;background:#FAF5F2;border-color:#EAD3CC;box-shadow:none}.btype--x:hover{transform:none;border-color:#EAD3CC;box-shadow:none}
.bexcl{margin-top:18px;border-top:1px solid var(--sand);padding-top:12px}
.bexcl summary{cursor:pointer;font-weight:600;color:#56606a;padding:6px 0}.bexcl summary:hover{color:var(--gold-3)}
.bexcl .btypes{margin-top:10px}
/* The chosen type, on every window */
.mtype{display:flex;align-items:center;gap:14px;padding:0 0 14px;margin:0 0 12px;border-bottom:1px solid var(--sand)}
.mtype .bcat__ico{width:48px;height:48px;padding:8px}
.mtype__t{min-width:0;flex:1}.mtype__t p{margin:0}
.mtype__e{font:700 .68rem/1.2 var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-3)}
.mtype__n{font:600 1.12rem/1.25 var(--display);color:var(--ink);overflow-wrap:anywhere}
.mtype__p{font-size:.84rem;color:#56606a}
.mtype__ch{flex:none;white-space:nowrap}
@media(max-width:560px){.mtype{flex-wrap:wrap}.mtype__ch{width:100%;text-align:left}}
.mwin__n{margin:0 0 4px;font:700 .7rem/1 var(--font);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-3)}
/* Inputs */
.mfields{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px 20px;align-items:start}
@media(max-width:560px){.mfields{grid-template-columns:1fr}}
.mfield{min-width:0;display:flex;flex-direction:column;gap:6px}
.mfield--wide{grid-column:1/-1}
.mfield .rin__l{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;line-height:1.3}
.mreq,.mopt{font:700 .62rem/1 var(--font);letter-spacing:.1em;text-transform:uppercase}
.mreq{color:var(--gold-3)}.mopt{color:#7a8088}
.munit{flex-basis:100%;font:500 .8rem/1.3 var(--font);color:#5d6770}
.mfield__h{margin:0;font-size:.84rem;line-height:1.45;color:#56606a}
.mlist{margin-top:22px}.mlist h3{margin:0 0 4px;font-size:1.12rem}
.mlist .lines{display:flex;flex-direction:column;gap:12px;margin-top:10px}
.msug{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:9px 12px;border-radius:10px;background:#F6F0E3;border-left:3px solid var(--gold-2);font-size:.86rem;line-height:1.4}
.msug__k{font:700 .64rem/1 var(--font);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-3)}
.msug b{font-variant-numeric:tabular-nums}
.msug__src{flex-basis:100%;order:3;color:#5d6770;font-size:.8rem}
.msug__btn{margin-left:auto;order:2}
.msug__acc{margin-left:auto;order:2;font-size:.8rem;color:#5d6770}
.msug--on{background:#FBF6EA;border-left-color:#C9A456}
.msug--typed{opacity:.6}
.msug--own{background:none;border:0;padding:0;font-size:.82rem;color:#5d6770}
.mseg{display:flex;flex-wrap:wrap;gap:8px}
.mseg__b{all:unset;box-sizing:border-box;cursor:pointer;min-height:44px;padding:10px 16px;border-radius:12px;border:1.5px solid var(--line-2);background:#FFFDF8;font:600 .95rem/1.2 var(--font);color:var(--ink);text-align:center;display:inline-flex;align-items:center;justify-content:center;transition:border-color .18s,background .18s,color .18s}
.mseg__b:hover{border-color:var(--gold-2)}.mseg__b:focus-visible{outline:3px solid var(--gold-1);outline-offset:2px}
.mseg__b[aria-pressed=true]{background:var(--night);border-color:var(--night);color:#F4E6C0}
.mseg--yn .mseg__b{min-width:92px}
.mmonths{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
@media(max-width:760px){.mmonths{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:420px){.mmonths{grid-template-columns:repeat(3,minmax(0,1fr))}}
.mmonths input.mm--need{border-color:var(--fail,#A33A2B)!important;box-shadow:0 0 0 1px var(--fail,#A33A2B) inset}
.mfield--need>.btn{border-color:var(--fail,#A33A2B)!important;box-shadow:0 0 0 1px var(--fail,#A33A2B) inset}
.mmonths .field>span{font-size:.8rem;font-weight:600;color:#56606a;text-transform:capitalize}
.mmonths input{min-height:42px!important;text-align:center}
.mopts{border:1px solid var(--sand);border-radius:14px;padding:10px 14px;background:#FCF8F1}
.mopts summary{cursor:pointer;font-weight:600;color:var(--gold-3);padding:4px 0}
.mopts[open] summary{margin-bottom:12px}
.mheld{display:flex;flex-direction:column;gap:12px}
.mheld__q{padding:14px 16px;border-radius:14px;background:#FFFDF8;border:1px solid var(--sand);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;align-items:center}
.mheld__q--yes{border-color:rgba(168,122,38,.45);background:#FBF6EA}
.mheld__t{margin:0;font-weight:600;line-height:1.4}
.mheld__f,.mheld__q>.mfield__h{grid-column:1/-1}
@media(max-width:560px){.mheld__q{grid-template-columns:1fr}.mheld__q .mseg{width:100%}.mheld__q .mseg__b{flex:1}}
.mheld__foot{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-top:12px}.mheld__foot p{margin:0}
.mpend{margin-top:14px}.mpend ul{margin:8px 0 12px}
.msum td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.mna li{margin:4px 0;line-height:1.45}
/* KPI strip */
.mkpis{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
@media(max-width:420px){.mkpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}
.mkpi{background:#FFFDF8;border:1px solid var(--sand);border-top:3px solid var(--gold-1);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:4px;min-width:0}
.mkpi__l{font-size:.8rem;font-weight:600;color:#56606a;line-height:1.3}
.mkpi__v{font:600 1.35rem/1.15 var(--display);color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.mkpi__b{font-size:.78rem;color:#4b5560}.mkpi__b b{color:var(--gold-3)}
.mkpi__s{font-size:.7rem;color:#6b7580;line-height:1.3;overflow-wrap:anywhere}
/* Business charts */
.mglance__h{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.mglance__h>div{flex:1;min-width:0}.mglance__h h2{margin:2px 0 0}
.mglance__h .bcat__ico{width:48px;height:48px;padding:8px}
.mcharts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
@media(max-width:1100px){.mcharts{grid-template-columns:1fr}}
.mchart{margin:0;background:#FAF6EE;border:1px solid var(--sand);border-radius:16px;padding:16px 18px;min-width:0}
.mchart figcaption{font:600 1.02rem/1.3 var(--display);color:var(--ink);margin:0 0 12px}
.mdonut{display:grid;grid-template-columns:170px minmax(0,1fr);gap:18px;align-items:center}
@media(max-width:560px){.mdonut{grid-template-columns:1fr;justify-items:center}}
.mdonut__svg{max-width:170px;margin:0 auto}
.mdonut__leg{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;width:100%;min-width:0}
.mdonut__leg li{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:3px 9px;align-items:baseline;font-size:.86rem;line-height:1.3}
.mdonut__leg i{width:12px;height:12px;border-radius:3px;align-self:center}
.mdonut__n{min-width:0;overflow-wrap:anywhere;color:#2d3740}
.mdonut__leg b{font-variant-numeric:tabular-nums;color:var(--ink)}
.mdonut__leg small{grid-column:2/-1;color:#6b7580;font-size:.78rem;font-variant-numeric:tabular-nums}
.mdonut__leg--row{flex-direction:row;flex-wrap:wrap;gap:8px 18px;margin-top:10px}.mdonut__leg--row li{grid-template-columns:12px auto auto}
.hb{display:flex;flex-direction:column;gap:12px}
.hb__l{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:.88rem;line-height:1.3;margin-bottom:5px}
.hb__l span{min-width:0;overflow-wrap:anywhere;color:#2d3740}.hb__l b{flex:none;font-variant-numeric:tabular-nums;white-space:nowrap}
.hb__row--t .hb__l span{font-weight:700;color:var(--ink)}
.hb__bar{display:block;width:100%;height:12px;border-radius:6px;overflow:hidden}
.hb__bar--stack{height:18px;border-radius:9px}
.mgauge{display:flex;justify-content:center}.mgauge__svg{max-width:260px}
.mtestch{margin-bottom:0}.mtestch h2{font-size:1.2rem}
.mna-call{margin:0 0 14px}.mna-call p{margin:4px 0}
/* Full profile: compiled fields are locked */
.mlockbar{margin-bottom:16px}.mlockbar p{margin:0 0 6px}
.mlock{margin:4px 0 0;font-size:.8rem;color:#5d6770;line-height:1.35}.mlock a{font-weight:600;white-space:nowrap}
.crapp .field--lock input,.crapp .field--lock select{background:#F3EDE2!important;color:#3a4550;cursor:not-allowed}
.mtyperow{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.mtyperow .bcat__ico{width:48px;height:48px;padding:8px}
.mtyperow__t{flex:1;min-width:200px}.mtyperow__t p{margin:0}
.mtyperow .rx-actions{margin:0}
.mpresets .tile{justify-content:flex-start}
/* Model windows: the category photograph shows through a lighter cream scrim (the form itself stays on an opaque card). */
#stage[data-tab] > .body.mbody::after{background:linear-gradient(180deg,rgba(243,237,226,.62) 0%,rgba(243,237,226,.40) 45%,rgba(243,237,226,.62) 100%)}
#stage[data-tab] > .body.mbody::before{background-position:center 40%}
.bcat__t,.btype__t{hyphens:auto;overflow-wrap:break-word}
@media(max-width:760px){.bcat{padding:16px 8px 14px}.bcat__t{font-size:.92rem}}
.mwin .commit__f{grid-template-columns:minmax(0,1fr) minmax(0,120px) auto}
.mwin .commit__f .field>span{white-space:normal;line-height:1.25}
@media(max-width:560px){.mwin .commit__f{grid-template-columns:minmax(0,1fr) minmax(0,110px)}.mwin .commit__f [data-cdel]{grid-column:1/-1;justify-self:end}}
.mglance__h h2{overflow-wrap:break-word;hyphens:auto}
@media(max-width:560px){.mglance__h>.linkbtn{flex-basis:100%}}
.mglance__h{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px 14px}
@media(max-width:560px){.mglance__h{grid-template-columns:auto minmax(0,1fr)}.mglance__h>.linkbtn{grid-column:1/-1;justify-self:start}}
.mkpi__l,.mdonut__n,.hb__l span,figcaption,.mfield .rin__l,.mheld__t,.lcard__grid .field>span{hyphens:auto;overflow-wrap:break-word}
.mglance__t{margin:2px 0 0;font-size:.9rem;color:#56606a}
.mcharts{align-items:start}
.mpresets .tile .tile__go{margin-top:auto}
.panel + .mtestch{margin-top:16px}
/* Long words (DE/RU) in tiles hyphenate instead of running out of the card; wrapped button labels stay centred. */
.tile__t,.tile__p{hyphens:auto;overflow-wrap:break-word}
.crapp .btn{text-align:center}
/* Model list cards: inputs of one row line up even when one label wraps to two lines. */
.mlist .lcard__grid{align-items:end}
.mlist .lcard__grid .lf--bool{align-self:center}
.vx .vx-axl{font-size:13px;fill:#6B6456}
/* ── FIX2 (visual / UX audit) ─────────────────────────────────────────────────────────────── */
/* Tile grids sized to their count: no orphan on the last row (desktop / tablet), 2 columns on phones with a last odd tile spanning both. */
.tiles--c{grid-template-columns:repeat(var(--c,3),minmax(0,1fr))}
@media(max-width:1180px){.tiles--c{grid-template-columns:repeat(var(--cm,3),minmax(0,1fr))}}
@media(max-width:640px){.tiles--c{grid-template-columns:repeat(2,minmax(0,1fr))}.tiles--c>:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:380px){.tiles--c{grid-template-columns:minmax(0,1fr)}}
.sumcard dl{grid-template-columns:repeat(var(--c,3),minmax(0,1fr))}
@media(max-width:1180px){.sumcard dl{grid-template-columns:repeat(var(--cm,3),minmax(0,1fr))}}
@media(max-width:640px){.sumcard dl{grid-template-columns:repeat(2,minmax(0,1fr))}.sumcard dl>:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:400px){.sumcard dl{grid-template-columns:minmax(0,1fr)}}
.cols--even{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1180px){.cols--even{grid-template-columns:minmax(0,1fr)}}
/* Only the last .body of a screen fills the height: no blank gap under a test's headline card. */
#stage[data-tab] > .body:not(:last-child){min-height:0}
/* Decision sizes suggested from the owner's numbers */
.dfield{display:flex;flex-direction:column;gap:8px;min-width:0}
.dsug{margin:0}
.mdonut__short{margin:10px 0 0;font-size:.86rem;font-weight:600;color:var(--fail,#8C1D12)}
.simempty .hero-r__m{max-width:40ch}
/* Choice tiles: the label sits in the middle of the tile (rows of tiles with one- and two-line labels line up). */
.tile{justify-content:center}
.tile>.tile__arr,.tile>.tile__go{margin-top:auto}
.tile:has(.tile__go,.tile__arr){justify-content:flex-start}
/* Disabled buttons stay readable (WCAG contrast) instead of fading to 45 %. */
.crapp .btn[disabled],.crapp .btn[aria-disabled=true]{opacity:1;background:#EDE6D8!important;color:#565e66!important;border-color:#D6CBB6!important;box-shadow:none!important;cursor:not-allowed}
/* KPI strip: benchmarked figures as cards sized to their count; figures without a benchmark in a compact row. */
.mkpis{grid-template-columns:repeat(var(--c,3),minmax(0,1fr))}
@media(max-width:1180px){.mkpis{grid-template-columns:repeat(var(--cm,3),minmax(0,1fr))}}
@media(max-width:640px){.mkpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mkpis>:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:400px){.mkpis{grid-template-columns:minmax(0,1fr)}}
.mkpis--plain .mkpi{border-top-width:1px;padding:10px 14px;flex-direction:row;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px}
.mkpis--plain .mkpi__v{font-size:1.15rem}
.mkpis--b + .mkpis--plain{margin-top:10px}
.mkpi__l,.mkpi__v,.mkpi__b,.mkpi__s{min-width:0;overflow-wrap:break-word;hyphens:auto}
.mkpi__v{font-size:clamp(1.1rem,2.2vw,1.35rem)}
/* Donut legend: name with its amount under it, share on the right. */
.mdonut__leg li{grid-template-columns:12px minmax(0,1fr) auto}
.mdonut__n small{display:block;margin-top:1px;color:#5d6670;font-size:.78rem;font-variant-numeric:tabular-nums}
.mdonut__leg i{align-self:start;margin-top:3px}
/* Charts in a model panel: an odd last chart spans the row (no chart alone at half width). */
.mcharts>:last-child:nth-child(odd){grid-column:1/-1}
.mcharts>.mchart--gauge:last-child:nth-child(odd) .mgauge__svg{max-width:300px}
.mcharts>.mchart:only-child{grid-column:1/-1}
@media(min-width:1101px){.mcharts>.mchart--donut:last-child:nth-child(odd) .mdonut,.mcharts>.mchart--donut:only-child .mdonut{grid-template-columns:200px minmax(0,560px);justify-content:center}}
/* Data sources summary: one line (label · chips · link), wrapping as whole groups. */
.provsum{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.provsum__c{display:inline-flex;flex-wrap:wrap;gap:6px 12px;align-items:center}
.provsum__i{display:inline-flex;gap:5px;align-items:center;white-space:nowrap}
.provsum__h{font-weight:600}
/* Desktop rail on shorter screens: tighter nav rows and no mode hint, so the whole rail (sign-out and "saved" line) fits without cut text. */
@media(min-width:901px) and (max-height:1000px){.rail{padding-top:14px}.rail__nav{margin:10px 0}.rail__nav a{padding:.46em .8em}.rail__modehint{display:none}.segment--rail{margin-bottom:8px}.rail__signout{margin-top:6px}.rail__foot{margin-top:10px}}
.kpis--c{grid-template-columns:repeat(var(--c,4),minmax(0,1fr))}
@media(max-width:1180px){.kpis--c{grid-template-columns:repeat(var(--cm,3),minmax(0,1fr))}}
@media(max-width:900px){.kpis--c{grid-template-columns:repeat(2,minmax(0,1fr))!important}.kpis--c>:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:400px){.kpis--c{grid-template-columns:minmax(0,1fr)!important}}
.kpi{min-width:0}.kpi__l,.kpi__v{overflow-wrap:break-word;hyphens:auto}
#stage[data-tab=check][data-cat] > .body::before,#stage[data-tab=check][data-cat] > .body::after{display:block}
/* ── Phone / tablet navigation: the sections as a wrapped grid of icon chips (no hidden sideways scroll), sign-out lives in Settings ── */
@media(max-width:900px){
  .rail__nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:12px 0 0;padding:0;overflow:visible}
  .rail__nav a{flex-direction:column;justify-content:center;gap:4px;padding:.55em .25em;font-size:.78rem;line-height:1.15;text-align:center;border:1px solid rgba(201,164,86,.22);border-radius:12px;min-width:0;overflow-wrap:anywhere;hyphens:auto}
  .rail__nav a[aria-current=page]{border-color:rgba(201,164,86,.6)}
  .rail__nav a .lock{position:absolute;top:3px;right:5px;margin:0}
  .crapp--acct .rail__signout,#signout-form,#acct-menu{display:none!important}
  .rail__modehint{display:none}
}
@media(max-width:560px){.rail__nav{grid-template-columns:repeat(3,minmax(0,1fr))}.rail__nav a{flex-direction:row;justify-content:flex-start;gap:8px;padding:.6em .7em;text-align:left;font-size:.84rem}}
@media(max-width:340px){.rail__nav{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Path (Business → Check → Fix → Decide → Track) on phones: one row, numbers for every step and the name of the current one. */
@media(max-width:760px){
  .jpath,.jpath-bar .jpath{flex-wrap:nowrap!important;overflow:visible!important;gap:4px;width:100%;justify-content:space-between}
  .jpath__s:not(.jpath__s--now) span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .jpath__s:not(.jpath__s--now) a{padding:5px}
  .jpath__s{flex:none}
}
/* Sub-tabs and wizard steps on narrow screens: one scrollable row with the current item scrolled into view and a fade that says "more". */
@media(max-width:760px){
  .subnav{flex-wrap:nowrap;width:auto;max-width:100%;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
  .subnav.is-end{-webkit-mask-image:none;mask-image:none}
}
@media(max-width:1000px){
  .wsteps{flex-direction:row;overflow-x:auto;gap:6px;padding:8px;scroll-snap-type:x proximity;-webkit-mask-image:linear-gradient(90deg,#000 90%,transparent);mask-image:linear-gradient(90deg,#000 90%,transparent)}
  .wsteps.is-end{-webkit-mask-image:none;mask-image:none}
  .wsteps li{flex:none;scroll-snap-align:center;padding:4px 10px 4px 4px;border-radius:999px;background:rgba(255,253,248,.7)}
  .wsteps li span{display:inline!important;white-space:nowrap;font-size:.84rem}
  .wsteps li.on{background:#FFF8E8;box-shadow:inset 0 0 0 1px rgba(168,122,38,.4)}
}
/* Phones: the primary action comes first (Next above Back). */
@media(max-width:700px){.rx-actions--split{flex-direction:column-reverse;align-items:stretch}.rx-actions--split>span:empty{display:none}}
/* Dark callouts (pending suggestions, locks): every text readable on the dark ground — cream text ≥ .8, gold links, cream outline buttons. */
.crapp .callout:not(.callout--soft):not(.callout--ok) .muted,.crapp .callout:not(.callout--soft):not(.callout--ok) p{color:rgba(246,241,231,.86)}
.crapp .callout:not(.callout--soft):not(.callout--ok) li{color:#F6F1E7}
.crapp .callout:not(.callout--soft):not(.callout--ok) a:not(.btn){color:#E7C57A;text-decoration:underline;text-underline-offset:2px;font-weight:600}
.crapp .callout:not(.callout--soft):not(.callout--ok) a:not(.btn):hover{color:#F3DDA2}
.crapp .callout:not(.callout--soft):not(.callout--ok) .btn--line{color:#F6F1E7;border-color:rgba(231,197,122,.7);background:transparent}
.crapp .callout:not(.callout--soft):not(.callout--ok) .btn--line:hover{background:rgba(231,197,122,.14)}
.crapp .callout:not(.callout--soft):not(.callout--ok) .btn--line:focus-visible{outline:3px solid #E7C57A;outline-offset:2px}
/* Radar tiles: status pill without the mark and with tight tracking, so "Not applicable" fits; when it still wraps it stays a neat pill. */
.radar__s>.sbadge{letter-spacing:.04em;font-size:.64rem;padding:6px 10px;border-radius:10px}
.radar__s>.sbadge i{display:none}
@media(max-width:640px){.radar>:last-child:nth-child(odd){grid-column:1/-1}}
/* Reports: library cards sized to their count with equal heights; file cards with the button at the bottom; a styled restore button. */
.docs{grid-template-columns:repeat(var(--c,3),minmax(0,1fr));grid-auto-rows:1fr}
@media(max-width:1000px){.docs{grid-template-columns:repeat(2,minmax(0,1fr))}.docs>:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:560px){.docs{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto}}
.fcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media(max-width:1000px){.fcards{grid-template-columns:minmax(0,1fr)}}
.fcard{display:flex;flex-direction:column;gap:6px;margin:0}.fcard h3{margin:0}.fcard p{margin:0}
.fcard__a{margin-top:auto;padding-top:12px}
.frestore{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px}.frestore h3{margin:0 0 4px}.frestore p{margin:0}
.fpick{cursor:pointer}.fpick__in{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.fpickw{position:relative}.fpick__in:focus-visible + .fpick{outline:3px solid var(--gold-1);outline-offset:2px}
#stage[data-tab=reports] > .body:last-child:has(.fcards){min-height:0}
/* Profile editor: fields of one row share a baseline (a two-line label never pushes its input down); selects and dates styled like the inputs. */
/* Same-row fields are equally tall; the label grows (text at its bottom), so every input sits on one line. */
.lcard__grid,.fgrid{align-items:stretch}
.lcard__grid .field,.fgrid .field{display:flex;flex-direction:column}
.lcard__grid .field>span:first-child,.fgrid .field>span:first-child{flex:1 0 auto;display:flex;flex-wrap:wrap;align-items:flex-end;align-content:flex-end;gap:5px}
.mlist .lcard__grid{align-items:stretch}
.crapp #pform select,.crapp .wpanel select:not(.rin__box select),.crapp .lcard select{-webkit-appearance:none;appearance:none;background:#FFFDF8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%238C6D31' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center;padding-right:38px!important;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;border:1.5px solid var(--line-2);border-radius:12px;min-height:46px;font:500 1rem var(--font);color:var(--ink);cursor:pointer}
.crapp .rin__box select{-webkit-appearance:none;appearance:none;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%238C6D31' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 4px center;padding-right:26px;text-overflow:ellipsis}
.crapp #pform select:focus-visible,.crapp .lcard select:focus-visible,.crapp #pform input:focus-visible,.crapp .lcard input:focus-visible{outline:none;border-color:var(--gold-2);box-shadow:0 0 0 4px rgba(201,164,86,.22)}
.crapp input[type=date]{font-family:var(--font);font-variant-numeric:tabular-nums;color:var(--ink)}
.crapp input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.7;filter:sepia(1) saturate(2) hue-rotate(5deg)}
.steps-nav i{flex:none;min-width:22px;font-size:.68rem;font-variant-numeric:tabular-nums}
.steps-nav button{line-height:1.25}
/* Keyboard focus is always visible on every custom control (step buttons, tiles, chips, tabs, links). */
.crapp :is(button,a,summary,[role=tab],[role=button],label.btn):focus-visible,.report :is(button,a,select):focus-visible,.cr :is(.btn,.pcard__go,.pcard__buy):focus-visible{outline:3px solid #C9A456!important;outline-offset:2px!important}
.crapp .rail :is(button,a):focus-visible{outline-color:#E7C57A!important}
.wsteps li button:focus-visible,.steps-nav button:focus-visible,.jpath__s a:focus-visible{outline:3px solid #C9A456!important;outline-offset:2px!important}
/* Contrast (WCAG AA): "Next" priority tag and the before → after arrow. */
.pri--NEXT{background:#7E5A17!important}
.cmpv__arr{color:#8C6D31}
/* Business selection: type list sized to its count (no lone "Other / general"); category titles share a two-line slot so descriptions line up. */
.btypes--cat{grid-template-columns:repeat(var(--c,3),minmax(0,1fr))}
@media(max-width:1180px){.btypes--cat{grid-template-columns:repeat(var(--cm,2),minmax(0,1fr))}}
@media(max-width:1180px) and (min-width:561px){.btypes--cat>:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:560px){.btypes--cat{grid-template-columns:minmax(0,1fr)}}
.bcat__t{min-height:2.5em;display:block}
.bcat{min-width:0}.bcat__t,.bcat__p{max-width:100%}
.tsearch input[type=search]{text-overflow:ellipsis}
@media(max-width:560px){.tsearch .rin__box input{font-size:1rem}.tsearch input::placeholder{font-size:.92em}}
/* Very wide screens: the app lines up with the site header (same 1400 px frame): the rail starts under the logo, the last card ends under the cart. */
@media(min-width:1600px){.cr.crapp{max-width:1328px;margin:0 auto;border-left:1px solid rgba(201,164,86,.18);border-right:1px solid rgba(201,164,86,.18);box-shadow:0 30px 80px -60px rgba(24,38,30,.45)}}
/* Donut legend: the share sits right next to its label on wide cards (no long empty run). */
@media(min-width:1101px){.mdonut__leg{max-width:420px}}
/* Status pills wrap inside narrow boxes (German / Russian labels) instead of running off the screen. */
.sbadge{white-space:normal;max-width:100%;line-height:1.25;text-align:left}
.sbadge i{flex:none}
/* Before → after: the three parts and the difference share one row edge (centred inside their own boxes). */
.cmpv{align-items:stretch}.cmpv>*{display:flex;flex-direction:column;justify-content:center;min-width:0}
.cmpv__arr{color:#7E5A17;align-items:center}
/* Legends, data-source key, workspace actions, analysis index: grids that never leave one item alone. */
.provlegend{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:900px){.provlegend{grid-template-columns:repeat(2,minmax(0,1fr))}.provlegend>:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:560px){.provlegend{grid-template-columns:minmax(0,1fr)}}
@media(max-width:640px){.provsum__c{display:grid;grid-template-columns:repeat(2,max-content);gap:6px 14px}}
.vx-leg{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,max-content));gap:6px 18px}
@media(max-width:640px){.vx-leg{grid-template-columns:repeat(2,minmax(0,1fr))}.vx-leg>:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:760px){.wsrow__acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.wsrow__acts>*{width:100%;justify-content:center;text-align:center}.wsrow__acts>:last-child:nth-child(odd){grid-column:1/-1}}
.fgrid--3>:last-child:nth-child(3n+1){grid-column:1/-1}
@media(max-width:900px){.fgrid--3>:last-child:nth-child(3n+1){grid-column:auto}.fgrid--3>:last-child:nth-child(odd){grid-column:1/-1}}
.vx-toc{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.vx-toc a{text-align:center}
@media(max-width:900px){.vx-toc{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.cmpv{grid-template-columns:repeat(2,minmax(0,1fr))}.cmpv__arr{display:none!important}.cmpv__d{grid-column:1/-1}}
.cmpv__c b,.cmpv__d b{overflow-wrap:anywhere}
.vx-leg:has(>:nth-child(5):last-child){grid-template-columns:repeat(3,max-content)}
@media(max-width:640px){.vx-leg:has(>:nth-child(5):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}}
.fcard h3,.frestore h3{font:600 1.15rem/1.25 var(--display)}
/* (the base form rule sets the field colour with !important — the chevron is a separate image layer) */
.crapp #pform select,.crapp .lcard select,.crapp .wpanel .field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%238C6D31' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 14px center!important;-webkit-appearance:none;appearance:none;padding-right:38px!important}
.crapp .field--lock select{background-image:none!important}
/* Settings: one button size; on phones every action and input spans the card. */
#stage[data-tab=settings] .btn{min-height:46px;display:inline-flex;align-items:center;justify-content:center;padding:.6em 1.3em}
@media(max-width:700px){#stage[data-tab=settings] .btn,#stage[data-tab=settings] .panel input:not([type=checkbox]):not([type=radio]){width:100%;box-sizing:border-box}#stage[data-tab=settings] .flex{flex-wrap:wrap;gap:10px}}
/* Form grids sized to their field count (no single field alone on the last row). */
#decfields{grid-template-columns:repeat(var(--c,3),minmax(0,1fr))}
@media(max-width:1180px){#decfields{grid-template-columns:repeat(var(--cm,3),minmax(0,1fr))}}
@media(max-width:700px){#decfields{grid-template-columns:repeat(2,minmax(0,1fr))}#decfields>:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:420px){#decfields{grid-template-columns:minmax(0,1fr)}}
#decfields>:last-child:nth-child(3n+1){grid-column:auto}
@media(min-width:1101px){
.rgrid:has(>:nth-child(4):last-child),.fgrid--cmp:has(>:nth-child(4):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}
.rgrid:has(>:nth-child(5):last-child),.fgrid--cmp:has(>:nth-child(5):last-child),.rgrid:has(>:nth-child(6):last-child),.fgrid--cmp:has(>:nth-child(6):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
.rgrid:has(>:nth-child(7):last-child),.rgrid:has(>:nth-child(8):last-child),.fgrid--cmp:has(>:nth-child(7):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:561px) and (max-width:1100px){.rgrid:has(>:nth-child(4)),.fgrid--cmp:has(>:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}.rgrid:has(>:nth-child(4))>:last-child:nth-child(odd),.fgrid--cmp>:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:560px){.rgrid,.fgrid--cmp{grid-template-columns:minmax(0,1fr)!important}}
/* Map of the system: 7 sections as 4 + 3 (wide), 2 columns with the last spanning (tablet), 1 column (phone). */
.smap__grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1280px){.smap__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.smap__grid>:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:640px){.smap__grid{grid-template-columns:minmax(0,1fr)}}
/* Month tabs of the cash waterfall: 12 as 6 + 6 / 4 × 3 / 3 × 4. */
.vx-tabs:has(>:nth-child(7)){display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}
.vx-tabs:has(>:nth-child(7)) button{text-align:center}
@media(max-width:900px){.vx-tabs:has(>:nth-child(7)){grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:480px){.vx-tabs:has(>:nth-child(7)){grid-template-columns:repeat(2,minmax(0,1fr))}.vx-tabs:has(>:nth-child(7)) button{font-size:.74rem;padding:6px 4px}}
/* B7-8: 13 months (the waterfall runs to the same month next year) never leave one tab alone on its own row:
   7 + 6 on desktop, 5 + 5 + 3 on tablets, one scrolling row on phones (the chosen month is scrolled into view). */
.vx-tabs:has(>:nth-child(13)){grid-template-columns:repeat(7,minmax(0,1fr))}
@media(max-width:900px){.vx-tabs:has(>:nth-child(13)){grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:480px){.vx-tabs:has(>:nth-child(13)){display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding:2px 2px 8px}.vx-tabs:has(>:nth-child(13)) button{flex:none;scroll-snap-align:start;white-space:nowrap;padding:7px 12px}}
.mcharts{align-items:stretch}.mchart{display:flex;flex-direction:column}.mchart>.mdonut,.mchart>.mgauge{flex:1}
a.tile:has(.tile__ico){justify-content:flex-start}
.fcard p,.frestore p{font-size:.9rem;line-height:1.45}
@media(max-width:1180px){.bcats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:761px) and (max-width:1180px){.bcats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.wizard{grid-template-columns:minmax(0,1fr)!important}.wsteps{flex-direction:row;overflow-x:auto;gap:6px;padding:8px;position:static}.wsteps li{flex:none;padding:4px 10px 4px 4px;border-radius:999px;background:rgba(255,253,248,.7)}.wsteps li span{display:inline!important;white-space:nowrap;font-size:.84rem}.wsteps li.on{background:#FFF8E8;box-shadow:inset 0 0 0 1px rgba(168,122,38,.4)}}
.mseg:has(>:nth-child(4):last-child){display:grid;grid-template-columns:repeat(4,minmax(0,max-content))}
@media(max-width:760px){.mseg:has(>:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}}
.mseg:has(>:nth-child(5):last-child){display:grid;grid-template-columns:repeat(3,minmax(0,max-content))}
/* Lines that sit directly on a section photograph (disclaimer, data-source summary) get their own cream ground. */
#stage[data-tab] > .body > .note,#stage[data-tab] > .body > .provsum,#stage[data-tab] > .body.stack > .note,#stage[data-tab] > .body.stack > .provsum{background:rgba(255,253,248,.93);border-radius:14px;padding:12px 16px;color:#3f4953;box-shadow:0 10px 26px -22px rgba(37,36,32,.6)}
.vx-tabs button.is-worst:after{content:none!important}.vx-tabs button.is-worst{box-shadow:inset 0 -3px 0 #C0782B}
/* Path and sub-tabs on tablets: one row (no wrapped last step); compact numbers below 900 px. */
@media(max-width:1180px){.jpath-bar__here{display:none}.jpath,.jpath-bar .jpath{flex-wrap:nowrap}.jpath__s + .jpath__s::before{display:none}.jpath__s a{font-size:.8rem;padding:4px 9px 4px 4px;white-space:nowrap}
  .subnav{flex-wrap:nowrap;width:auto;max-width:100%;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 90%,transparent);mask-image:linear-gradient(90deg,#000 90%,transparent)}.subnav.is-end{-webkit-mask-image:none;mask-image:none}}
@media(max-width:900px){.jpath{justify-content:space-between;width:100%}.jpath__s:not(.jpath__s--now) span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.jpath__s:not(.jpath__s--now) a{padding:5px}}
.doc__t,.doc__m{hyphens:auto;overflow-wrap:break-word;min-width:0}
.fact__l{overflow-wrap:anywhere;hyphens:auto}
.radar__k{letter-spacing:.06em;hyphens:auto;overflow-wrap:break-word;min-width:0;max-width:100%}
.rin__box input:focus-visible,.rin__box select:focus-visible{outline:none;box-shadow:inset 0 -2px 0 rgba(168,122,38,.6)!important}
.bcat__p{hyphens:auto;overflow-wrap:break-word;min-width:0}
/* Phone: text-heavy tiles one per row. */
@media(max-width:640px){.tiles--wide{grid-template-columns:minmax(0,1fr)!important}.tiles--wide>*{grid-column:auto!important}}
/* Phone rail: icon above the name (whole words, hyphenated only where the language allows). */
@media(max-width:560px){.rail__nav a{flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:.5em .2em;font-size:.74rem;text-align:center;overflow-wrap:normal;word-break:normal;hyphens:auto}.rail__nav a span{max-width:100%}}
/* FIX2 r2: an odd last payment tile spans the row instead of sitting alone at half width */
@media(min-width:701px){.commits>:last-child:nth-child(odd){grid-column:1/-1}}
/* FIX2 r3: two-item legends on phones flow as text (a long label takes its own line instead of a narrow column) */
@media(max-width:640px){.vx-leg:not(:has(>:nth-child(3))){display:flex!important;flex-wrap:wrap;gap:6px 16px}}

/* ── Round-2 UI (B2) ─────────────────────────────────────────────────────────────────────────── */
.prov--NOT_APPLICABLE{background:#ECEAE4;color:#5d6770}
.mlock--empty{margin:8px 0 0;padding:10px 12px;border:1px dashed rgba(168,122,38,.35);border-radius:10px;background:rgba(252,248,241,.7)}
.fgrid--wd{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
@media(max-width:640px){.fgrid--wd{grid-template-columns:repeat(4,minmax(0,1fr))}}
.wdays .note{margin:6px 0 0}
/* Saved decisions */
.dsaved{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.dsaved__i{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 0;border-bottom:1px solid var(--sand,#E8DCC4)}
.dsaved__i:first-child{padding-top:4px}.dsaved__i:last-child{border-bottom:0;padding-bottom:4px}
.dsaved__t{min-width:0}.dsaved__t h3{margin:2px 0 8px;font-size:1.15rem}.dsaved__t p.muted{margin:8px 0 0;max-width:62ch}
.dsaved__k{margin:0;font:700 .68rem/1.2 var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-3,#8C6D31)}
.dsaved__a{flex:0 0 auto;margin:0}
@media(max-width:760px){.dsaved__i{flex-direction:column;align-items:stretch}.dsaved__a{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dsaved__a>:first-child{grid-column:1/-1}}
/* Review tables stack on phones: every value labelled, nothing cut off */
@media(max-width:640px){.msum.tbl--stack td.num{white-space:normal}}
/* Fields sharing a row keep their inputs on one line whatever the help text under a neighbour (subgrid rows:
   label · control · help · error). */
@supports (grid-template-rows:subgrid){
  .fgrid>.field,.lcard__grid>.field{display:grid;grid-row:span 5;grid-template-rows:subgrid;row-gap:0;align-content:start}
  .fgrid>.field>span:first-child,.lcard__grid>.field>span:first-child{align-self:end;margin-bottom:6px}
  .fgrid>.field>small,.fgrid>.field>.field__err,.lcard__grid>.field>small,.lcard__grid>.field>.field__err{margin-top:6px;align-self:start}
}
.lcard__grid .lf--auto{grid-column:1/-1}.lcard__grid .lf--auto>small{max-width:70ch}
.tile.tile--na{opacity:.72;cursor:default;box-shadow:none;background:rgba(252,248,241,.75);border-style:dashed}.tile.tile--na .tile__p{color:#5d6770}
/* Fields side by side share one input line (label · box · note), whatever the label or suggestion length. */
@supports (grid-template-rows:subgrid){
  .rgrid>.rin,.rgrid>.dfield{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:0;align-content:start}
  .rgrid>.dfield>.rin{display:contents}
  .rgrid>.rin,.rgrid>.dfield{grid-template-columns:minmax(0,1fr)}.rgrid>.rin>*,.rgrid>.dfield>*,.rgrid>.dfield>.rin>*{min-width:0;max-width:100%}
  .rgrid>.rin>.rin__l,.rgrid>.dfield>.rin>.rin__l{align-self:end;margin-bottom:6px}
  .rgrid>.rin>:nth-child(n+3),.rgrid>.dfield>.rin>:nth-child(n+3),.rgrid>.dfield>.dsug{margin-top:8px;align-self:start}
}
.dsaved__t h3{font-family:var(--display);font-weight:600}
.note--advice{margin-top:18px}
/* Legends of five never run past their box (long scenario names wrap inside their column). */
.vx-leg:has(>:nth-child(5):last-child){grid-template-columns:repeat(3,minmax(0,max-content))}.vx-leg>span{min-width:0}
/* Track filters on phones: two even rows of three instead of 3+2+1 pills. */
@media(max-width:640px){.trbar .filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-radius:18px;width:100%}.trbar .filters button{text-align:center}}
.dsaved__t p.muted{overflow-wrap:anywhere}
/* Round-3 (B3 N21): a list's "None — nothing to list" line keeps clear space from the next question (farm buyers → when sales happen). */
.mlist > .check:last-child{display:flex;margin-bottom:6px}
.mlist + .mfield,.mlist + .mfield--wide,.mlist + .mlist{margin-top:26px}
/* Round-3 (B3 N11): a stress column that breaks before the decision starts says so under the card. */
.lcard__pre{margin:10px 0 0;padding:8px 10px;border-radius:10px;background:var(--tight-bg);color:#5c3d06;font-size:.84rem;line-height:1.4}
/* Round-3: phone Track filters in long languages (ru "Нужна перепроверка") keep their label centred inside the pill. */
@media(max-width:640px){.trbar .filters button{padding:.5em .35em;white-space:normal;line-height:1.2;overflow-wrap:anywhere;display:flex;align-items:center;justify-content:center}}
/* Round-4 (B4-5): the section photo covers the whole stage down to the footer — no flat cream strip under the photo
   next to the dark rail, and no gap under the rail before the footer. */
#stage[data-tab]{padding-bottom:0}
#stage[data-tab] > .body:last-child{padding-bottom:86px}
main:has(> .crapp) + .site-footer{margin-top:0}
.vx .vx-axl.vx-axm{font-size:11px}
/* R5 (B5-9): the note under a row of fields keeps a clear gap from the last field's red error message. */
.crapp .rgrid + p.muted{margin-top:18px}
/* R5 (B5-6): a tile's title and text fill the tile, so they are measured and wrapped against the tile, not their own words. */
.btype__t,.btype__p{align-self:stretch}
/* QuickBooks Online connector (Business → Import): the card and the review step (public/cr/js/qbo.js). */
.qbo-card__h{display:flex;gap:14px;align-items:flex-start;margin-bottom:12px}
.qbo-card__h h2{margin:0 0 4px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.qbo-card__h p{margin:0}
.qbo-logo{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--pass);color:var(--gold-1);font:700 1rem/1 var(--display);letter-spacing:.02em;text-transform:uppercase}
.qbo-state{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.qbo-dot{width:10px;height:10px;border-radius:50%;background:var(--inc);flex:none}
.qbo-dot--on{background:var(--pass);box-shadow:0 0 0 3px var(--pass-bg)}
.qbo-dot--off{background:var(--tight);box-shadow:0 0 0 3px var(--tight-bg)}
.qbo-card .note{margin:12px 0 0}
/* B7-2: an opened "Details" grows only its own tile (align-items:start), and the open-invoice table gets the
   whole row so its due/expected columns are never clipped. */
.qbo-parts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;align-items:start}
.qbo-part--wide{grid-column:1 / -1}
.qbo-more .tbl-wrap{overflow-x:auto}.qbo-more .tbl{width:100%;min-width:0!important}.qbo-more .tbl td.num,.qbo-more .tbl th.num{white-space:nowrap}
.qbo-part{display:flex;flex-direction:column;gap:6px;min-width:0}
.qbo-part .check--tile{height:100%}
.qbo-part__b{display:flex;flex-direction:column;gap:4px;min-width:0}
.qbo-diff{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-variant-numeric:tabular-nums}
.qbo-diff__old{color:#6b7580;text-decoration:line-through;text-decoration-color:rgba(107,117,128,.5)}
.qbo-diff__new{font-weight:700;color:var(--ink)}
.qbo-more{padding:0 14px;font-size:.9rem}
.qbo-more summary{cursor:pointer;color:var(--gold-3);font-weight:600;font-size:.85rem}
.qbo-more ul{margin:6px 0 0;padding-left:1.1em}
.qbo-warn{margin:14px 0 0;padding-left:1.1em}
@media(max-width:760px){.qbo-parts{grid-template-columns:minmax(0,1fr)}.qbo-card__h{gap:10px}.qbo-logo{width:38px;height:38px}}
.qbo-review .qbo-warn + .note,.qbo-review .qbo-parts + .note{margin-top:12px}
/* QuickBooks card: the import-limits "i" (qbo.js bindInfo) — tooltip on hover/focus, popover on tap. */
.qinfo{position:relative;display:inline-flex;vertical-align:middle;--qdx:0px}
.qinfo__b{all:unset;box-sizing:border-box;cursor:pointer;display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1.5px solid #75561c;color:#75561c;font:italic 700 13px/1 Georgia,'Times New Roman',serif;transition:background .15s,color .15s}
.qinfo__b:hover,.qinfo.is-open .qinfo__b{background:#75561c;color:#fff}
.qinfo__b:focus-visible{outline:3px solid #C9A456;outline-offset:2px}
.qinfo__tip{position:absolute;left:50%;top:100%;z-index:40;box-sizing:border-box;width:max-content;max-width:min(320px,calc(100vw - 48px));margin-top:10px;padding:11px 14px;border-radius:12px;background:#18231E;color:#F6F1E7;border:1px solid rgba(201,164,86,.55);box-shadow:0 18px 36px -18px rgba(18,26,22,.75);font:500 .86rem/1.45 'Instrument Sans',system-ui,sans-serif;letter-spacing:0;text-transform:none;white-space:normal;text-align:left;opacity:0;visibility:hidden;transform:translate(calc(-50% + var(--qdx)),-4px);transition:opacity .15s,transform .15s,visibility .15s}
.qinfo__tip::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.qinfo:hover .qinfo__tip,.qinfo__b:focus-visible + .qinfo__tip,.qinfo.is-open .qinfo__tip{opacity:1;visibility:visible;transform:translate(calc(-50% + var(--qdx)),0)}
.qinfo.is-hush .qinfo__tip{opacity:0;visibility:hidden}
@media (hover:none){.qinfo:hover:not(.is-open) .qinfo__tip{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){.qinfo__tip{transition:none}}
/* B8-8: Decide's reserve/minimum box — long uppercase labels ("PROGNOSTIZIERTES …") wrap inside their column instead
   of sticking out, and the two figures sit on one line: label at the top, figure at the bottom of each cell. */
.cmpv__c p,.cmpv__d p{overflow-wrap:break-word;hyphens:auto;-webkit-hyphens:auto;min-width:0}
.cmpv>.cmpv__c{justify-content:space-between}
@media(max-width:420px){.cmpv__c p,.cmpv__d p{letter-spacing:.03em;font-size:.74rem}}
/* A status badge inside a fact tile never breaks mid-word ("UNVOLLST|ÄNDIG" at 390 px): words stay whole, and on a
   phone the badge drops its icon and tightens so the longest single word (de/ru/fr) fits the half-width tile. */
.fact .sbadge{overflow-wrap:normal;word-break:normal;hyphens:manual}
@media(max-width:420px){.fact .sbadge{letter-spacing:.04em;font-size:.64rem;padding:6px 9px}.fact .sbadge i{display:none}}

/* ── Open demo guide (14.10.2026, public/cr/js/demo.js) — cream glass, gold hairline, olive ink ───────────────── */
.dx{background:rgba(255,253,248,.94);border:1px solid var(--hair);border-radius:18px;padding:16px 18px;margin:0 0 18px;box-shadow:0 10px 30px rgba(18,26,22,.08);color:var(--ink);display:grid;gap:12px}
.dx__top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.dx__badge{display:inline-flex;align-items:center;gap:6px;background:var(--gold-grad);color:#fff;font:700 .74rem/1 var(--font);letter-spacing:.16em;text-transform:uppercase;padding:7px 11px;border-radius:999px;text-shadow:0 1px 0 rgba(0,0,0,.18)}
.dx__badge--rail{padding:4px 8px;font-size:.66rem}
.dx__lead{margin:0;flex:1 1 280px;font-size:.95rem;color:var(--ink)}
.dx__k{font:700 .72rem/1 var(--font);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-3);margin:0 6px 0 0}
.dx__ex{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.dxe{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--hair);background:#fff;color:var(--ink);font-weight:600;font-size:.9rem;text-decoration:none}
.dxe:hover{border-color:var(--gold-2)}.dxe.is-on{background:var(--night);color:var(--cream);border-color:var(--night)}
.dx__qa{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}
.dx__qa>div{background:var(--cream);border-radius:12px;padding:10px 12px;border:1px solid rgba(168,122,38,.18)}
.dx__qa dt{font:700 .7rem/1.2 var(--font);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-3);margin:0 0 6px}
.dx__qa dd{margin:0;font-size:.93rem;line-height:1.45}
.dx__qa .dx__res{background:var(--night);border-color:var(--night)}.dx__qa .dx__res dt{color:var(--gold-1)}.dx__qa .dx__res dd{color:var(--cream);font-weight:600}
.dx__story{background:var(--cream);border-radius:12px;padding:10px 14px;border:1px solid rgba(168,122,38,.18)}
.dx__story summary{cursor:pointer;font-family:var(--display);font-size:1.15rem;color:var(--ink)}
.dx__story ol{list-style:none;margin:10px 0 2px;padding:0;display:grid;gap:6px}
.dx__story li{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;font-size:.92rem;color:#5d6660}
.dx__story li b{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;border:1px solid var(--hair);font-size:.8rem;color:var(--gold-3);background:#fff}
.dx__story li.is-on{color:var(--ink)}.dx__story li.is-on b{background:var(--gold-grad);color:#fff;border-color:transparent}
.dx__story a{color:var(--gold-3);font-weight:600;white-space:nowrap}
.dx__acts{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.dxp{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:999px;border:1.5px solid var(--ink);background:#fff;color:var(--ink);font:600 .9rem/1 var(--font);cursor:pointer}
.dxp i{width:12px;height:12px;border-radius:50%;border:1.5px solid currentColor;flex:none}
.dxp.is-on{background:var(--ink);color:var(--cream)}.dxp.is-on i{background:var(--gold-1);border-color:var(--gold-1)}
.dxp--fix{background:var(--gold-grad);color:#fff;border:0;text-shadow:0 1px 0 rgba(0,0,0,.18)}
.dxp--reset{border-style:dashed;border-width:1px}
.dxp:disabled{opacity:.55;cursor:wait}
.dxp:focus-visible,.dxe:focus-visible{outline:3px solid var(--gold-1);outline-offset:2px}
.dx__fixout{flex-basis:100%;margin:0;font-size:.86rem;min-height:1em}
.dx__own{display:flex;flex-wrap:wrap;align-items:center;gap:8px;border-top:1px solid rgba(168,122,38,.25);padding-top:10px}
.dx__own p{margin:0;flex:1 1 320px;font-size:.9rem}
.dx-locknote{margin:0 0 12px}
@media (max-width:760px){.dx{padding:14px}.dx__qa{grid-template-columns:1fr}.dxp{min-height:44px}.dx__own .btn{flex:1 1 auto;justify-content:center}}
@media print{.dx{display:none}}
