/*
  FOREZ UX ADAPTATION LAYER
  Loaded AFTER cabal-reference.css.
  This file must not introduce a new visual language. It only resolves layout,
  readability and interaction details required by the real product.
*/

/* ---------- Global robustness ---------- */
.app-body,.console-body{overflow-x:hidden}
.app-body *, .console-body *{min-width:0}
.app-body p,.app-body li,.app-body dd,.app-body td,.app-body th,.app-body .fname,
.console-body p,.console-body li,.console-body td,.console-body th{overflow-wrap:anywhere}
.app-body .row,.app-body .row-between{row-gap:8px}
.app-body .row-between{flex-wrap:wrap}
.app-body .field{min-width:0}
.app-body .field input,.app-body .field select,.app-body .field textarea{
  width:100%;max-width:100%;height:54px;border:1.5px solid var(--line2);border-radius:14px;
  padding:0 16px;font:400 17px var(--f);color:var(--ink);background:#fff
}
.app-body .field textarea{height:auto;min-height:104px;padding:14px 16px;resize:vertical}
.app-body .field input:focus,.app-body .field select:focus,.app-body .field textarea:focus{
  outline:none;border-color:var(--act);box-shadow:0 0 0 4px var(--tint2)
}
.app-body .field label{display:block;margin-bottom:7px;font-size:15px;font-weight:700;color:var(--ink)}
.app-body .field .hint{font-size:14px;color:var(--muted);margin-top:6px}
.app-body .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.app-body .stack{display:grid;gap:16px}.app-body .stack-lg{display:grid;gap:22px}
.app-body .small{font-size:15px}.app-body .xs{font-size:13px}
.app-body .muted{color:var(--muted)}
.app-body .grow{flex:1 1 auto}
.app-body .sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* ---------- Flow: spacing, hierarchy, no collisions ---------- */
.app-body .flow{padding:40px 20px 120px}
.app-body .flow-card{max-width:640px;margin-inline:auto}
.app-body .flow-card.wide{max-width:800px}
.app-body .flow-card> :first-child{margin-top:0}
.app-body .flow-top{margin-bottom:16px}
.app-body .q-title{max-width:22ch;margin-bottom:0}
.app-body .q-help{margin-top:16px}
.app-body .choices{margin-top:28px}
.app-body .choice{font-size:18px;line-height:1.35}
.app-body .choice>span:last-child{min-width:0}
.app-body .sticky-actions{padding:18px 0 max(18px,env(safe-area-inset-bottom));margin-top:30px}
.app-body .sticky-actions .btn{max-width:100%;white-space:normal;text-align:center}

/* ---------- Email/code: deliberately compact ---------- */
.app-body .login{max-width:560px}
.app-body .save-box .login{margin-top:16px}
.app-body .login .inline-form{
  display:grid;grid-template-columns:minmax(240px,360px) max-content;gap:12px;align-items:end;
  justify-content:start;max-width:560px;margin:12px 0 0
}
.app-body .login .inline-form .field{width:100%;margin:0}
.app-body .login .inline-form .btn{min-height:54px;padding-inline:22px}
.app-body .login input[type=email]{max-width:360px}
.app-body .login .code-input{width:190px;max-width:190px;text-align:center;letter-spacing:.26em}
.app-body .login .slide-up{margin-top:14px}
.app-body .save-box{
  max-width:680px;margin:24px 0 0;padding:22px 24px;border-radius:18px;background:var(--soft)
}
.app-body .save-box h2{margin-bottom:6px}
.app-body .save-box>p{max-width:58ch}

/* ---------- Checklist: readable and scannable ---------- */
.app-body .req-list{list-style:none;padding:0;margin:14px 0 24px;display:grid;gap:12px}
.app-body .req-doc{
  display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;align-items:start;
  padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff
}
.app-body .req-icon{
  width:48px;height:48px;border-radius:14px;background:var(--tint);color:var(--act);
  display:grid;place-items:center;flex:none
}
.app-body .req-body .row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.app-body .req-body strong{font-size:17px;color:var(--ink)}
.app-body .req-kv{grid-template-columns:118px minmax(0,1fr);gap:7px 14px;margin-top:12px}
.app-body .group-title{margin:28px 0 0;font-size:19px}
.app-body .trust-note{max-width:70ch}

/* ---------- Upload: documents are the centre of the first valuation ---------- */
.app-body .upload-intro{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;
  margin:8px 0 20px
}
.app-body .upload-intro h2{font-size:30px;line-height:1.15;margin-bottom:8px}
.app-body .upload-progress{min-width:82px}
.app-body .upload-list{gap:18px}
.app-body .upload-item{
  border:1px solid var(--line);border-radius:22px;background:#fff;padding:0;overflow:hidden;box-shadow:none
}
.app-body .upload-item.done{border-color:#B8DCCD}
.app-body .upload-item.optional{background:#FCFDFD}
.app-body .upload-head{padding:20px 22px 0;gap:14px}
.app-body .upload-head .grow>.row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.app-body .upload-head .badge{flex:none}
.app-body .where{margin:12px 22px 0 84px}
.app-body .where p{margin-top:8px}
.app-body .uploads-live{margin:14px 22px 0 84px}
.app-body .upload-open{margin:16px 22px 20px 84px}
.app-body .dropzone{
  margin:18px 22px 22px 84px;min-height:168px;padding:26px 22px;
  border:1.5px dashed var(--line2);border-radius:18px;background:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center
}
.app-body .dropzone:hover,.app-body .dropzone:focus,.app-body .dropzone.over{
  border-color:var(--act);background:var(--tint);outline:none
}
.app-body .dropzone>.icon{width:34px;height:34px;color:var(--act)}
.app-body .dropzone p{margin:0;max-width:48ch}
.app-body .drop-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.app-body .drop-actions .btn{min-height:44px;font-size:16px;padding-inline:20px}
.app-body .files{margin:14px 22px 0 84px}
.app-body .file-row{padding:14px 0;gap:12px}
.app-body .file-row>.grow{flex:1 1 220px}
.app-body .file-row .fname{white-space:normal;line-height:1.35}
.app-body .row-actions{margin-left:auto}
.app-body .upload-ai-note{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:start;
  margin:0 0 22px;padding:18px 20px;border-radius:18px;background:var(--tint)
}
.app-body .upload-ai-note .ic-tile{width:48px;height:48px}
.app-body .upload-ai-note h3{font-size:18px;margin:0 0 5px}
.app-body .upload-ai-note p{margin:0;font-size:15px}
.app-body .analysis-mini{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.app-body .analysis-mini span{
  display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;
  background:#fff;color:var(--ink);font-size:13px;font-weight:600;border:1px solid var(--line)
}

/* ---------- Analysis transition: reassuring, not a blank spinner ---------- */
.app-body .analyzing{max-width:620px;margin-inline:auto;text-align:center;display:grid;justify-items:center;gap:14px}
.app-body .analyzing h1{margin:0}
.app-body .analysis-steps{width:100%;margin-top:12px;text-align:left;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff}
.app-body .analysis-steps li{
  list-style:none;display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;align-items:center;
  padding:14px 16px;border-top:1px solid var(--line)
}
.app-body .analysis-steps li:first-child{border-top:0}
.app-body .analysis-steps .rd-i{background:var(--act)}

/* ---------- Results: prevent crowding ---------- */
.app-body .prelim-head{max-width:820px}
.app-body .prelim-head .lead{max-width:760px}
.app-body .verdict{max-width:100%;line-height:1.45}
.app-body .prelim-grid{grid-template-columns:minmax(0,1fr) minmax(280px,330px);gap:24px}
.app-body .money-hero{gap:0;padding:0;overflow:hidden}
.app-body .money-hero .stat{padding:22px;min-height:116px}
.app-body .money-hero .stat+.stat{border-left:1px solid rgba(255,255,255,.14)}
.app-body .money-hero .stat span{display:block;font-size:13px;line-height:1.35;margin-bottom:8px}
.app-body .money-hero .stat strong{display:block;line-height:1.05}
.app-body .finding-group li{line-height:1.48}
.app-body .read-card summary{padding-right:8px}
.app-body .kv{grid-template-columns:minmax(120px,.7fr) minmax(0,1.3fr)}
.app-body .property-card dd{overflow-wrap:anywhere}
.app-body .convert-card .btn{min-height:52px}

/* ---------- Portal/tables ---------- */
.app-body .tabs{overflow-x:auto;scrollbar-width:thin;padding-bottom:2px}
.app-body .tabs a{white-space:nowrap}
.app-body .table-wrap{max-width:100%;overflow:auto}
.app-body .table{min-width:620px}
.app-body .portal-grid{grid-template-columns:minmax(0,1fr) minmax(260px,320px)}
.app-body .status-card h2{font-size:26px}
.app-body .mini-card{align-items:center}

/* ---------- Small screens ---------- */
@media(max-width:860px){
  .app-body .prelim-grid,.app-body .portal-grid{grid-template-columns:1fr}
  .app-body .prelim-grid>aside{position:static}
  .app-body .money-hero{grid-template-columns:1fr}
  .app-body .money-hero .stat+.stat{border-left:0;border-top:1px solid rgba(255,255,255,.14)}
}
@media(max-width:640px){
  .app-body .flow{padding:24px 16px 100px}
  .app-body .flow-card,.app-body .flow-card.wide{width:100%}
  .app-body .form-grid{grid-template-columns:1fr}
  .app-body .login .inline-form{grid-template-columns:1fr;max-width:100%}
  .app-body .login input[type=email],.app-body .login .code-input{max-width:100%;width:100%}
  .app-body .login .inline-form .btn{width:100%}
  .app-body .req-doc{grid-template-columns:42px minmax(0,1fr);padding:16px}
  .app-body .req-icon{width:42px;height:42px;border-radius:12px}
  .app-body .req-kv{grid-template-columns:1fr;gap:2px}
  .app-body .req-kv dt{margin-top:8px}
  .app-body .upload-intro{grid-template-columns:1fr}
  .app-body .upload-progress{align-items:flex-start}
  .app-body .where,.app-body .uploads-live,.app-body .upload-open,.app-body .dropzone,.app-body .files{margin-left:16px;margin-right:16px}
  .app-body .dropzone{min-height:178px;padding:22px 16px}
  .app-body .row-actions{width:100%;margin-left:60px}
  .app-body .row-actions .btn{flex:1}
  .app-body .sticky-actions .btn{width:100%}
  .app-body .table{min-width:560px}
}

/* ---------- Console: prevent clipped text and collisions ---------- */
.console-body .console-main{min-width:0}
.console-body .card,.console-body .panel,.console-body .integration-card{overflow:hidden}
.console-body .table-wrap{max-width:100%;overflow:auto}
.console-body .row-between{flex-wrap:wrap}
.console-body button,.console-body .btn{max-width:100%;white-space:normal}
.console-body .launch-item,.console-body .decision,.console-body .ops-quick{min-width:0}
.console-body code,.console-body .hash{overflow-wrap:anywhere;word-break:break-word}


/* ---------- Exact flow-mode mapping to CABAL reference ---------- */
.app-body.client-flow .app-header{
  position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:#fff;border-bottom:1px solid var(--line)
}
.app-body.client-flow .app-header-in{
  display:grid;grid-template-columns:48px 1fr 48px;align-items:center;height:64px;
  max-width:1200px;margin-inline:auto;padding-inline:12px
}
.app-body.client-flow .app-header .logo{justify-self:center;font-size:22px}
.app-body.client-flow .app-header-actions{
  justify-self:end;width:44px;height:44px;overflow:visible
}
.app-body.client-flow .app-header-actions .hdr-link{
  width:44px;height:44px;border-radius:50%;padding:0;display:grid;place-items:center
}
.app-body.client-flow .app-header-actions .hdr-link span{display:none}
.app-body.client-flow .app-header-actions .hdr-link:not(:last-child){display:none}
.app-body.client-flow .flow{
  padding:40px 20px 120px
}
.app-body.client-flow .flow-card{
  max-width:640px;margin-inline:auto;background:transparent;border:0;border-radius:0;
  padding:0;box-shadow:none
}
.app-body.client-flow .flow-card.wide{max-width:800px}
.app-body.client-flow .app-stepper{margin-bottom:30px}
.app-body.client-flow .q-help.q-h{
  display:block;background:transparent;padding:0;border-radius:0;color:var(--text);
  font-size:18px;line-height:1.55;margin-top:12px
}
.app-body.client-flow .opts{display:grid;gap:12px;margin-top:30px}
.app-body.client-flow .opt{
  display:flex;align-items:center;gap:14px;width:100%;min-height:68px;padding:12px 18px 12px 14px;
  border:1.5px solid var(--line2);border-radius:16px;background:#fff;
  font:600 18px/1.3 var(--f);color:var(--ink);text-align:left;box-shadow:none
}
.app-body.client-flow .opt:hover{border-color:var(--act);background:#fff}
.app-body.client-flow .opt[aria-pressed=true],
.app-body.client-flow .opt.selected,
.app-body.client-flow .opt.check:has(input:checked){
  border-color:var(--act);background:var(--tint);box-shadow:inset 0 0 0 1px var(--act)
}
.app-body.client-flow .opt .oi{
  width:42px;height:42px;border-radius:12px;background:var(--soft);display:grid;place-items:center;
  color:var(--act);flex:none
}
.app-body.client-flow .opt[aria-pressed=true] .oi,
.app-body.client-flow .opt.selected .oi{background:#fff}
.app-body.client-flow .opt .ar{margin-left:auto;color:var(--muted)}
.app-body.client-flow .opt .choice-dot{display:none}
.app-body.client-flow .pchip{margin-bottom:26px}
.app-body.client-flow .q-t{margin:0}
.app-body.client-flow .progress{display:none}

/* Document collection reuses the exact reference upload tile grammar. */
.app-body.client-flow .upload-item{
  padding:20px 22px;border:1px solid var(--line);border-radius:22px;background:#fff;overflow:visible
}
.app-body.client-flow .upload-head{padding:0}
.app-body.client-flow .where{margin-left:62px}
.app-body.client-flow .uploads-live{margin-left:62px;margin-right:0}
.app-body.client-flow .files{margin-left:62px;margin-right:0}
.app-body.client-flow .upload-open{margin-left:62px}
.app-body.client-flow .dropzone.up-tiles{
  margin:18px 0 0 62px;padding:0;border:0;background:transparent;
  display:grid;grid-template-columns:1fr 1fr;gap:12px;min-height:0;text-align:left
}
.app-body.client-flow .dropzone.up-tiles:hover,
.app-body.client-flow .dropzone.up-tiles:focus{background:transparent;border:0;outline:none}
.app-body.client-flow .upload-choice{
  min-height:146px;margin:0;display:grid;gap:4px;justify-items:start;align-content:center;
  border:1.5px dashed var(--line2);border-radius:18px;padding:20px;background:#fff
}
.app-body.client-flow .upload-choice:hover,
.app-body.client-flow .upload-choice:focus-within,
.app-body.client-flow .upload-choice.over{border-color:var(--act);background:var(--tint);outline:none}
.app-body.client-flow .upload-choice .ic-tile{width:48px;height:48px;background:var(--soft);color:var(--act)}
.app-body.client-flow .upload-choice b{font-size:18px;color:var(--ink);margin-top:8px}
.app-body.client-flow .upload-choice small{font-size:15px;color:var(--text)}
.app-body.client-flow .upload-choice input{
  position:absolute!important;inset:0!important;opacity:0!important;cursor:pointer!important;width:100%!important;height:100%!important
}
.app-body.client-flow .upload-ai-note{
  border:1px solid var(--line);background:var(--soft);border-radius:20px;padding:20px
}
.app-body.client-flow .upload-ai-note .ic-tile{background:#fff}

/* Compact identity capture: never becomes a giant empty box. */
.app-body.client-flow .save-box{max-width:560px;padding:20px 22px}
.app-body.client-flow .login{max-width:540px}
.app-body.client-flow .login .inline-form{grid-template-columns:minmax(220px,340px) max-content;max-width:540px}
.app-body.client-flow .login .inline-form input{
  height:56px;border:1.5px solid var(--line2);border-radius:999px;padding:0 20px;
  font:400 17px var(--f);background:#fff
}
.app-body.client-flow .login input[type=email]{width:340px;max-width:100%}
.app-body.client-flow .login .code-input{width:190px;max-width:100%;border-radius:999px}
/* ---------- Portal mode: reference portal proportions ---------- */
.app-body.client-portal{background:var(--soft)}
.app-body.client-portal .app-header{background:#fff;border-bottom:1px solid var(--line)}
.app-body.client-portal .app-page.wide{max-width:1180px;padding:28px 40px 100px}
.app-body.client-portal .portal-grid{gap:20px}
.app-body.client-portal .status-card,
.app-body.client-portal .card{border-radius:22px}
.app-body.client-portal .tabs{
  display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:18px
}
.app-body.client-portal .tabs a{
  border:0;background:none;padding:10px 12px;font:700 14px var(--f);
  color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;text-decoration:none
}
.app-body.client-portal .tabs a[aria-current=page]{color:var(--ink);border-bottom-color:var(--act)}

/* ---------- Hard collision safeguards ---------- */
.app-body .badge{max-width:100%;white-space:normal;text-align:left;line-height:1.2}
.app-body .upload-head .row{min-width:0}
.app-body .upload-head .row strong{overflow-wrap:anywhere}
.app-body .actions-row>.btn{max-width:100%}
.app-body .card{min-width:0}
.app-body .legal-box{max-height:420px;overflow:auto}
.app-body .activity li,.app-body .messages li{min-width:0}

@media(max-width:640px){
  .app-body.client-flow .app-header-in{grid-template-columns:44px 1fr 44px}
  .app-body.client-flow .flow{padding:28px 16px 100px}
  .app-body.client-flow .dropzone.up-tiles{
    margin:16px 0 0;grid-template-columns:1fr;gap:10px
  }
  .app-body.client-flow .upload-choice{min-height:132px;padding:18px}
  .app-body.client-flow .login .inline-form{grid-template-columns:1fr;max-width:100%}
  .app-body.client-flow .login input[type=email],.app-body.client-flow .login .code-input{width:100%;max-width:100%}
  .app-body.client-flow .where,
  .app-body.client-flow .uploads-live,
  .app-body.client-flow .files,
  .app-body.client-flow .upload-open{margin-left:0;margin-right:0}
  .app-body.client-portal .app-page.wide{padding:18px 16px 90px}
}


/* First verdict follows the reference's single 800px reading column: no competing sticky sidebar. */
.app-body.client-flow .prelim-grid{grid-template-columns:1fr;gap:22px}
.app-body.client-flow .prelim-grid>aside{position:static;display:grid;grid-template-columns:1fr 1fr;gap:18px}
.app-body.client-flow .prelim-grid>aside>.btn{align-self:start}
.app-body.client-flow .result-kpis{margin-top:0}
.app-body.client-flow .result-kpis .kpi{min-width:0}
.app-body.client-flow .result-kpis .big,.app-body.client-flow .result-kpis .mid{white-space:normal;overflow-wrap:anywhere}
@media(max-width:760px){
  .app-body.client-flow .prelim-grid>aside{grid-template-columns:1fr}
}


/* ---------- Visual QA pass 2: document flow ---------- */
.app-body.client-flow .sticky-actions{
  position:static!important;bottom:auto!important;z-index:auto!important;
  background:transparent!important;border-top:0!important;box-shadow:none!important;
  padding:10px 0 0!important;margin-top:26px!important
}
.app-body.client-flow .sticky-actions .btn{min-width:250px}
.app-body.client-flow .upload-head{
  display:grid;grid-template-columns:44px minmax(0,1fr) max-content;gap:14px;align-items:start
}
.app-body.client-flow .upload-head>.grow{min-width:0}
.app-body.client-flow .upload-head .row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.app-body.client-flow .upload-head>.badge{margin:0;align-self:start;max-width:180px;justify-self:end}
.app-body.client-flow .upload-head strong{overflow-wrap:anywhere}
.app-body.client-flow .file-row.up-done{
  margin-top:12px;padding:14px 14px;border-top:0;border:1.5px solid var(--act)
}
.app-body.client-flow .file-row.up-done .badge{flex:0 0 auto}
.app-body.client-flow .file-row.up-done .row-actions{margin-left:auto}
.app-body.client-flow .upload-item.optional .dropzone.up-tiles{opacity:1}
@media(max-width:640px){
  .app-body.client-flow .upload-head{grid-template-columns:44px minmax(0,1fr)}
  .app-body.client-flow .upload-head>.badge{grid-column:2;justify-self:start;margin-top:2px}
  .app-body.client-flow .sticky-actions .btn{width:100%;min-width:0}
  .app-body.client-flow .file-row.up-done{align-items:flex-start}
  .app-body.client-flow .file-row.up-done>.badge{margin-left:60px}
  .app-body.client-flow .file-row.up-done .row-actions{width:100%;margin:2px 0 0 60px}
}

/* ---------- Launch Center: actionable, scannable, non-overlapping ---------- */
.console-body .launch-hero{
  background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px 26px;
  margin-bottom:18px;display:grid;gap:18px
}
.console-body .launch-hero h1{font-size:30px!important;letter-spacing:-.025em;margin:2px 0 6px}
.console-body .launch-hero .lead{max-width:68ch;margin:0;color:var(--text)}
.console-body .launch-hero .ring{width:72px;height:72px}
.console-body .launch-hero .ring span{width:54px;height:54px;font-size:15px}
.console-body .launch-stats{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px
}
.console-body .launch-stats>span{
  min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;
  background:var(--sand);color:var(--text);font-size:13px;line-height:1.35
}
.console-body .launch-stats strong{display:block;font-size:21px;color:var(--ink);margin-bottom:2px}
.console-body .launch-filters{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 22px}
.console-body .launch-filters .chip{
  min-height:38px;border:1px solid var(--line-2);border-radius:999px;background:#fff;
  color:var(--ink);padding:7px 12px;font:700 13px var(--sans);cursor:pointer;
  display:inline-flex;align-items:center;gap:7px
}
.console-body .launch-filters .chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.console-body .launch-filters .chip .n{
  min-width:21px;height:21px;padding:0 6px;border-radius:999px;background:var(--sand);
  display:grid;place-items:center;font-size:11px;color:inherit
}
.console-body .launch-filters .chip[aria-pressed=true] .n{background:rgba(255,255,255,.16)}
.console-body .launch-group{margin:0 0 26px}
.console-body .launch-group-head{
  display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:10px
}
.console-body .launch-group-head h2{font-size:22px;letter-spacing:-.02em;margin:0}
.console-body .launch-list{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px
}
.console-body .launch-item{
  width:100%;min-width:0;display:grid;grid-template-columns:40px minmax(0,1fr) auto 18px;
  gap:12px;align-items:center;text-align:left;padding:15px 16px;border:1px solid var(--line);
  border-radius:16px;background:#fff;color:var(--ink);cursor:pointer;font:inherit;
  transition:border-color .15s,box-shadow .15s,transform .15s
}
.console-body .launch-item:hover{
  border-color:#AFCAC2;box-shadow:0 6px 18px rgba(4,42,55,.07);transform:translateY(-1px)
}
.console-body .launch-item.critical{border-left:4px solid #C97945;padding-left:13px}
.console-body .launch-item.done{background:#F8FCFA;border-color:#CBE0D7}
.console-body .launch-icon{
  width:40px;height:40px;border-radius:12px;background:var(--sand);color:var(--muted);
  display:grid;place-items:center
}
.console-body .launch-item.critical .launch-icon{background:#FFF4EA;color:#A75B2D}
.console-body .launch-item.done .launch-icon{background:var(--ok-soft);color:var(--ok)}
.console-body .launch-copy{display:grid;gap:4px;min-width:0}
.console-body .launch-copy strong{
  display:block;font:700 14.5px/1.35 var(--sans);color:var(--ink);overflow-wrap:anywhere
}
.console-body .launch-copy small{
  display:block;font-size:12.5px;line-height:1.4;color:var(--muted);overflow-wrap:anywhere
}
.console-body .launch-item>.badge{justify-self:end;max-width:150px;white-space:normal;text-align:center}
.console-body .launch-item>.icon:last-child{color:var(--muted);width:18px;height:18px}
.console-body .launch-detail-status{margin-bottom:4px}
.console-body .explain-block{
  border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fff
}
.console-body .explain-block h3{font-size:14px;margin:0 0 5px}
.console-body .explain-block p{margin:0;font-size:14px;line-height:1.5}
.console-body .current-evidence{
  display:grid;gap:4px;border-radius:14px;background:var(--sand);padding:13px 15px
}
.console-body input[type=file]{
  width:100%;font:500 13px var(--sans);color:var(--muted);padding:6px;
  border:1px solid var(--line);border-radius:12px;background:#fff
}
.console-body input[type=file]::file-selector-button{
  min-height:34px;margin-right:10px;padding:0 12px;border:0;border-radius:9px;
  background:var(--brand-soft);color:var(--brand);font:700 12.5px var(--sans);cursor:pointer
}
.console-body input[type=file]::file-selector-button:hover{background:#DDF1EB}
@media(max-width:1050px){
  .console-body .launch-list{grid-template-columns:1fr}
  .console-body .launch-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .console-body .launch-hero{padding:18px}
  .console-body .launch-stats{grid-template-columns:1fr 1fr}
  .console-body .launch-item{grid-template-columns:40px minmax(0,1fr) 18px}
  .console-body .launch-item>.badge{grid-column:2;justify-self:start}
  .console-body .launch-item>.icon:last-child{grid-column:3;grid-row:1/3}
}


/* ---------- Visual QA pass 3: exact shell, diagnosis, mobile console ---------- */
.app-body.client-flow .app-header-in{
  display:grid!important;grid-template-columns:48px minmax(0,1fr) 48px!important;
  align-items:center!important
}
.app-body.client-flow .app-header-in>.flow-back{grid-column:1;grid-row:1;justify-self:start}
.app-body.client-flow .app-header-in>.logo{grid-column:2;grid-row:1;justify-self:center}
.app-body.client-flow .app-header-actions{grid-column:3;grid-row:1;justify-self:end}
.app-body.client-flow .app-header-actions .flow-exit{display:grid!important}
.app-body.client-flow .app-header-actions .hdr-link{display:none!important}

/* Result header badges may contain a sentence: never force them into a one-line pill. */
.app-body.client-flow .prelim-head .res-meta{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px
}
.app-body.client-flow .prelim-head .state{
  white-space:normal!important;max-width:100%;line-height:1.25;text-align:left
}

/* Property summary: readable definition list instead of compressed dt/dd columns. */
.app-body.client-flow .prelim-grid>aside{
  position:static!important;display:grid!important;grid-template-columns:1fr!important;gap:18px!important
}
.app-body.client-flow .property-card .kv{
  display:grid;grid-template-columns:minmax(130px,180px) minmax(0,1fr);gap:0;margin:12px 0 0
}
.app-body.client-flow .property-card .kv dt,
.app-body.client-flow .property-card .kv dd{
  margin:0;padding:10px 0;border-top:1px solid var(--line);line-height:1.4;min-width:0
}
.app-body.client-flow .property-card .kv dt{color:var(--muted);font-weight:700;padding-right:14px}
.app-body.client-flow .property-card .kv dd{color:var(--ink);font-weight:600;overflow-wrap:anywhere}

/* Mobile result table becomes a vertical year card: no hidden "Diferencia" column. */
@media(max-width:640px){
  .app-body.client-flow .prelim-grid .table-wrap{overflow:visible;border:0;border-radius:0}
  .app-body.client-flow .prelim-grid table.table,
  .app-body.client-flow .prelim-grid table.table tbody,
  .app-body.client-flow .prelim-grid table.table tr,
  .app-body.client-flow .prelim-grid table.table td{display:block;width:100%}
  .app-body.client-flow .prelim-grid table.table thead{display:none}
  .app-body.client-flow .prelim-grid table.table tr{
    border:1px solid var(--line);border-radius:14px;background:#fff;margin:10px 0;padding:10px 14px
  }
  .app-body.client-flow .prelim-grid table.table td{
    border:0!important;padding:7px 0!important;display:grid!important;
    grid-template-columns:minmax(105px,.9fr) minmax(0,1.1fr);gap:12px;text-align:right!important
  }
  .app-body.client-flow .prelim-grid table.table td::before{
    text-align:left;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase
  }
  .app-body.client-flow .prelim-grid table.table td:nth-child(1)::before{content:"Año"}
  .app-body.client-flow .prelim-grid table.table td:nth-child(2)::before{content:"Le cobraron"}
  .app-body.client-flow .prelim-grid table.table td:nth-child(3)::before{content:"Debería ser"}
  .app-body.client-flow .prelim-grid table.table td:nth-child(4)::before{content:"Diferencia"}
  .app-body.client-flow .property-card .kv{grid-template-columns:1fr}
  .app-body.client-flow .property-card .kv dt{padding-bottom:2px;border-top:1px solid var(--line)}
  .app-body.client-flow .property-card .kv dd{padding-top:0;border-top:0;padding-bottom:10px}
  .app-body.client-flow .file-row .row-actions .btn-sm{min-height:44px}
  .app-body.client-portal .segmented button{min-height:44px;padding:9px 14px}
}

/* Console mobile: the late visual-lock rules must not resurrect the desktop 240px rail. */
@media(max-width:900px){
  .console-body .console{grid-template-columns:minmax(0,1fr)!important;width:100%!important}
  .console-body .console-main{
    width:100%!important;min-width:0!important;padding:18px 16px 96px!important
  }
  .console-body .console-side{
    position:fixed!important;inset:0 24% 0 0!important;z-index:60!important;height:100vh!important;
    transform:translateX(-105%)!important;visibility:hidden!important;pointer-events:none!important;
    transition:transform .2s,visibility 0s linear .2s!important
  }
  .console-body .console-side.open{
    transform:none!important;visibility:visible!important;pointer-events:auto!important;
    transition:transform .2s!important;box-shadow:0 24px 60px rgba(0,0,0,.28)!important
  }
  .console-body .console-top{
    display:grid!important;grid-template-columns:44px minmax(0,1fr) auto!important;
    align-items:center!important;gap:10px!important;padding:8px 14px!important
  }
  .console-body .console-top>strong{
    min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap
  }
  .console-body .console-top button,
  .console-body .console-top .console-search{
    min-width:44px!important;min-height:44px!important;padding:8px 10px!important
  }
  .console-body .console-top .console-search span{display:none}
  .console-body .console-top .console-search kbd{display:none}
  .console-body .page-title{min-width:0}
  .console-body .page-title h1{overflow-wrap:anywhere}
  .console-body .btn-sm{min-height:44px}
  .console-body .link-btn{min-height:44px;display:inline-flex;align-items:center}
  .console-body .launch-list{grid-template-columns:1fr!important}
  .console-body .launch-hero{width:100%!important;max-width:none!important}
  .console-body .launch-filters .chip{min-height:44px!important}
  .console-body .member-row{
    grid-template-columns:52px minmax(0,1fr)!important;align-items:start!important
  }
  .console-body .member-row>:last-child{
    grid-column:2;justify-self:start;max-width:100%;min-width:0
  }
  .console-body .member-row select{max-width:100%;min-width:0}
}
@media(max-width:520px){
  .console-body .launch-stats{grid-template-columns:1fr 1fr}
  .console-body .launch-item{
    grid-template-columns:40px minmax(0,1fr) 18px!important;
    padding:14px!important
  }
  .console-body .launch-item>.badge{grid-column:2;justify-self:start}
  .console-body .launch-item>.icon:last-child{grid-column:3;grid-row:1/3}
}


/* ---------- Visual QA pass 4: badges and mobile operational tables ---------- */
.app-body .badge{
  height:auto!important;min-height:22px!important;display:inline-flex!important;
  align-items:center!important;justify-content:center!important;padding:5px 9px!important;
  overflow:visible!important
}
.app-body.client-flow .property-card>.badge{
  justify-self:start!important;margin-top:12px!important;max-width:100%!important
}

@media(max-width:640px){
  .console-body .table-wrap{border:0!important;background:transparent!important;overflow:visible!important}
  .console-body table.console-table,
  .console-body table.console-table tbody{
    display:block!important;width:100%!important
  }
  .console-body table.console-table thead{display:none!important}
  .console-body table.console-table tr{
    display:block!important;width:100%!important;margin:0 0 12px!important;padding:12px 14px!important;
    border:1px solid var(--line)!important;border-radius:14px!important;background:#fff!important
  }
  .console-body table.console-table td{
    display:grid!important;grid-template-columns:minmax(92px,.8fr) minmax(0,1.2fr)!important;
    gap:10px!important;width:100%!important;max-width:100%!important;min-width:0!important;
    padding:8px 0!important;border:0!important;border-bottom:1px solid var(--line)!important;
    white-space:normal!important;overflow:visible!important;overflow-wrap:anywhere!important
  }
  .console-body table.console-table td:last-child{border-bottom:0!important}
  .console-body table.console-table td::before{
    content:attr(data-label);display:block;min-width:0;
    font:800 10px/1.25 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);
    overflow-wrap:anywhere
  }
  .console-body table.console-table td>*{min-width:0;max-width:100%}
  .console-body table.console-table td .row-actions{
    display:flex!important;flex-wrap:wrap!important;gap:6px!important;width:100%!important;max-width:100%!important
  }
  .console-body table.console-table td .row-actions select{
    flex:1 1 100%!important;width:100%!important;max-width:100%!important;min-height:44px!important
  }
  .console-body table.console-table td .row-actions .link-btn{
    min-height:44px!important;max-width:100%!important;white-space:normal!important;text-align:left!important
  }
  .console-body table.console-table td select{
    width:100%!important;max-width:100%!important;min-height:44px!important
  }
}


/* ---------- Visual QA pass 5: remove inherited whitespace + finish flow consistency ---------- */
.app-body.client-flow .save-box .login{
  margin:10px 0 0!important;padding:0!important;display:block!important;max-width:100%!important
}
.app-body.client-flow .save-box .login>.inline-form{margin-top:14px!important}
.app-body.client-flow .save-box .login .slide-up{margin-top:12px!important}
.app-body.client-flow .save-box{
  align-content:start!important;height:auto!important;min-height:0!important
}
.app-body.client-flow .engagement-stepper{
  margin-bottom:30px
}
.app-body.client-flow .engagement-stepper .st em{
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}

/* Required/recommended uploads remain fully visible; purely optional evidence is compact. */
.app-body.client-flow .upload-item.optional .upload-open{
  margin-top:14px
}
.app-body.client-flow .upload-item.optional .dropzone[hidden]{
  display:none!important
}

@media(max-width:640px){
  .app-body.client-flow .save-box{padding:20px!important}
  .app-body.client-flow .save-box .login>.inline-form{margin-top:12px!important}
  .app-body.client-flow .engagement-stepper{
    gap:4px;margin-left:-4px;margin-right:-4px
  }
  .app-body.client-flow .engagement-stepper .st em{
    font-size:10px;letter-spacing:0
  }
}


/* ---------- Visual QA pass 6: portal tabs + completed document geometry ---------- */
.app-body.client-portal .case-context{
  margin:0 0 14px!important
}
.app-body.client-portal .case-context .propsel{
  text-decoration:none;color:var(--ink);max-width:560px
}
.app-body.client-portal .tabs{
  min-width:0
}
.app-body.client-portal .file-row.up-done{
  display:grid!important;grid-template-columns:48px minmax(0,1fr) auto auto!important;
  align-items:center!important;gap:12px!important;padding:14px!important;
  border:1.5px solid var(--act)!important;border-radius:18px!important;background:var(--tint)!important
}
.app-body.client-portal .file-row.up-done .thumb{grid-column:1}
.app-body.client-portal .file-row.up-done .grow{grid-column:2;min-width:0}
.app-body.client-portal .file-row.up-done>.badge{grid-column:3;justify-self:end}
.app-body.client-portal .file-row.up-done .row-actions{grid-column:4;justify-self:end;margin:0!important}

@media(max-width:640px){
  .app-body.client-portal .app-page.wide{padding-top:16px!important}
  .app-body.client-portal .case-context .propsel{
    width:100%;max-width:none;padding:10px 12px 10px 10px
  }
  .app-body.client-portal .tabs{
    display:flex!important;flex-wrap:nowrap!important;gap:8px!important;overflow-x:auto!important;
    margin:0 -16px 18px!important;padding:0 16px 12px!important;border-bottom:0!important;
    scrollbar-width:none!important
  }
  .app-body.client-portal .tabs::-webkit-scrollbar{display:none}
  .app-body.client-portal .tabs a{
    flex:none!important;white-space:nowrap!important;min-height:40px!important;
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    padding:9px 15px!important;border:0!important;border-radius:999px!important;
    background:#fff!important;box-shadow:inset 0 0 0 1px var(--line2)!important;
    color:var(--text)!important;font:600 14px/1 var(--f)!important;margin:0!important
  }
  .app-body.client-portal .tabs a[aria-current=page]{
    background:var(--ink)!important;color:#fff!important;box-shadow:none!important
  }
  .app-body.client-portal .file-row.up-done{
    grid-template-columns:48px minmax(0,1fr)!important;gap:10px 12px!important
  }
  .app-body.client-portal .file-row.up-done>.badge{
    grid-column:2!important;justify-self:start!important;margin:0!important
  }
  .app-body.client-portal .file-row.up-done .row-actions{
    grid-column:2!important;justify-self:start!important;width:auto!important;margin:0!important
  }
  .app-body.client-portal .file-row.up-done .row-actions .btn-sm{min-height:44px!important}
}


/* ---------- Visual QA pass 7: CMS navigation and console sub-tabs ---------- */
.console-body .content-nav{
  display:grid;gap:14px;margin:0 0 18px;padding:16px 18px;
  background:#fff;border:1px solid var(--line);border-radius:16px
}
.console-body .content-nav-group{
  display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;align-items:start;min-width:0
}
.console-body .content-nav-group>span{
  padding-top:10px;font:800 11px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)
}
.console-body .content-nav-group .tabs{
  margin:0!important;min-width:0;display:flex;gap:6px;flex-wrap:wrap;border:0!important;overflow:visible
}
.console-body .content-nav-group .tabs a{
  min-height:36px;padding:8px 11px;border:1px solid var(--line);border-radius:999px;
  background:#fff;color:var(--text);font:700 12.5px/1 var(--sans);text-decoration:none
}
.console-body .content-nav-group .tabs a:hover{border-color:#AFCAC2;color:var(--ink)}
.console-body .content-nav-group .tabs a[aria-current=page]{
  background:var(--ink);border-color:var(--ink);color:#fff
}

@media(max-width:640px){
  .console-body .content-nav{padding:14px 0;background:transparent;border:0;border-radius:0;gap:14px}
  .console-body .content-nav-group{grid-template-columns:1fr;gap:7px}
  .console-body .content-nav-group>span{padding:0 2px}
  .console-body .content-nav-group .tabs{
    flex-wrap:nowrap!important;overflow-x:auto!important;margin:0 -16px!important;padding:0 16px 4px!important;
    scrollbar-width:none!important
  }
  .console-body .content-nav-group .tabs::-webkit-scrollbar{display:none}
  .console-body .content-nav-group .tabs a{flex:none;min-height:40px;padding:9px 13px}

  /* Other console tab bars (case file, legal sections) should also scroll cleanly rather than crush labels. */
  .console-body .console-main>.tabs,
  .console-body .console-main .page-title + .tabs,
  .console-body .console-main .tabs:not(.finance-tabs):not(.content-nav .tabs){
    flex-wrap:nowrap!important;overflow-x:auto!important;gap:6px!important;scrollbar-width:none!important
  }
  .console-body .console-main .tabs:not(.finance-tabs):not(.content-nav .tabs)::-webkit-scrollbar{display:none}
  .console-body .console-main .tabs:not(.finance-tabs):not(.content-nav .tabs) a,
  .console-body .console-main .tabs:not(.finance-tabs):not(.content-nav .tabs) button{
    flex:none!important;white-space:nowrap!important;min-height:40px!important
  }
}


/* ---------- Visual QA pass 8: compact save-review capture ---------- */
.app-body.client-flow .save-box{
  gap:8px!important;padding:18px 20px!important
}
.app-body.client-flow .save-box h2{margin:0 0 2px!important}
.app-body.client-flow .save-box>p{margin:0!important;line-height:1.45}
.app-body.client-flow .save-box .login>.inline-form{margin-top:10px!important}
.app-body.client-flow .save-box .login .field label{margin-bottom:5px!important}
.app-body.client-flow .save-box .login .inline-form .btn{min-height:52px!important}
@media(max-width:640px){
  .app-body.client-flow .save-box{padding:16px!important}
}


/* ---------- Visual QA pass 8: compact save review + admin config cards ---------- */
.app-body.client-flow .save-box{
  gap:8px!important;padding:18px 20px!important
}
.app-body.client-flow .save-box h2{margin:0 0 2px!important}
.app-body.client-flow .save-box>p{margin:0!important;line-height:1.45}
.app-body.client-flow .save-box .login>.inline-form{margin-top:10px!important}
.app-body.client-flow .save-box .login .field label{margin-bottom:5px!important}
.app-body.client-flow .save-box .login .inline-form .btn{min-height:52px!important}
@media(max-width:640px){
  .app-body.client-flow .save-box{padding:16px!important}
}

/* Configuration lists should read like editable product objects, not raw text streams. */
.console-body .config-list{display:grid;gap:10px}
.console-body .config-row{
  display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:start;
  padding:14px 15px;border:1px solid var(--line);border-radius:14px;background:#fff
}
.console-body .config-row .config-order,
.console-body .config-row .req-icon,
.console-body .config-row .config-icon{
  width:40px;height:40px;border-radius:11px;background:var(--sand);color:var(--brand);
  display:grid;place-items:center;font:800 14px/1 var(--sans)
}
.console-body .config-row>.grow{min-width:0}
.console-body .config-row>.grow>.row{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.console-body .config-row strong{font-size:14.5px;line-height:1.35;overflow-wrap:anywhere}
.console-body .config-row p{margin:5px 0 0!important;line-height:1.45}
.console-body .config-row>.btn{align-self:center;min-height:40px}
@media(max-width:640px){
  .console-body .config-row{grid-template-columns:40px minmax(0,1fr);padding:13px}
  .console-body .config-row>.btn{grid-column:2;justify-self:start}
  .console-body .config-row .badge{white-space:normal;line-height:1.15;text-align:center}
}


/* ---------- Visual QA pass 9: business cockpit + status badges ---------- */
/* These are new product surfaces, but they use only the CABAL visual grammar:
   white cards, 16–22 px radii, ink/green/soft tints, compact operational density. */
.console-body .cockpit-hero{
  display:flex;align-items:flex-end;justify-content:space-between;gap:20px;
  margin:0 0 18px;padding:24px 26px;border:1px solid var(--line);border-radius:22px;background:#fff
}
.console-body .cockpit-hero h1{
  margin:2px 0 5px!important;font-size:30px!important;line-height:1.08!important;letter-spacing:-.025em!important
}
.console-body .cockpit-hero .lead{margin:0!important;font-size:15px!important;color:var(--muted)!important}
.console-body .cockpit-hero .console-search{flex:none;min-height:44px}

/* Attention is a real set of cards; never a concatenated inline text stream. */
.console-body .attention-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:0 0 18px
}
.console-body .attention-card{
  min-width:0;min-height:108px;display:grid;grid-template-columns:minmax(0,1fr) 18px;
  grid-template-rows:auto 1fr;gap:5px 10px;align-items:end;
  padding:16px 17px;border:1px solid var(--line);border-radius:16px;background:#fff;
  color:var(--ink);text-decoration:none
}
.console-body .attention-card strong{
  grid-column:1;font:800 31px/1 var(--sans);letter-spacing:-.035em;color:var(--ink)
}
.console-body .attention-card span{
  grid-column:1;font:700 13px/1.3 var(--sans);color:var(--muted);overflow-wrap:anywhere
}
.console-body .attention-card>.icon{grid-column:2;grid-row:1/3;align-self:center;color:var(--muted)}
.console-body .attention-card.risk{border-left:4px solid var(--risk);padding-left:14px;background:#FFFDFC}
.console-body .attention-card.warn{border-left:4px solid #C97945;padding-left:14px;background:#FFFDFC}
.console-body .attention-card.brand{border-left:4px solid var(--brand);padding-left:14px;background:#FBFEFD}
.console-body .attention-card:hover{border-color:#AFCAC2;box-shadow:0 5px 16px rgba(4,42,55,.06)}

/* Setup wizard: each step is one legible action row. */
.console-body .setup-card{
  display:grid;gap:18px;margin:0 0 18px;padding:22px 24px;border:1px solid var(--line);
  border-radius:22px;background:#fff
}
.console-body .setup-card>.row-between{align-items:center!important}
.console-body .setup-card h2{font-size:22px!important;margin:2px 0 5px!important}
.console-body .setup-card p{margin-bottom:0}
.console-body .setup-card .ring{flex:none;width:68px;height:68px}
.console-body .setup-card .ring span{width:50px;height:50px;font-size:14px}
.console-body .setup-steps{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px
}
.console-body .setup-step{
  min-width:0;display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;align-items:center;
  min-height:72px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--sand);
  color:var(--ink);text-decoration:none
}
.console-body .setup-step:hover{border-color:#AFCAC2;background:#fff}
.console-body .setup-step.done{background:#F7FCFA;border-color:#CBE0D7}
.console-body .setup-mark{
  width:38px;height:38px;border-radius:11px;background:#fff;color:var(--brand);
  display:grid;place-items:center
}
.console-body .setup-step strong{
  display:block;font:750 14px/1.25 var(--sans);color:var(--ink);overflow-wrap:anywhere
}
.console-body .setup-step small{
  display:block;margin-top:3px;font-size:12px;line-height:1.35;color:var(--muted);overflow-wrap:anywhere
}

/* Business and acquisition panels. */
.console-body .cockpit-grid{
  display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:14px;margin:0 0 18px
}
.console-body .cockpit-grid>.card{margin:0!important}
.console-body .section-headline{margin-bottom:14px}
.console-body .section-headline .eyebrow{margin-bottom:5px}
.console-body .section-headline h2{font-size:20px!important;margin:0!important}
.console-body .metric-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px
}
.console-body .metric-grid.compact{grid-template-columns:1fr}
.console-body .metric{
  min-width:0;display:block;padding:13px 14px;border:1px solid var(--line);border-radius:13px;
  background:var(--sand);color:var(--ink);text-decoration:none
}
.console-body a.metric:hover{border-color:#AFCAC2;background:#fff}
.console-body .metric span{
  display:block;font:700 11.5px/1.3 var(--sans);color:var(--muted);overflow-wrap:anywhere
}
.console-body .metric strong{
  display:block;margin-top:5px;font:800 clamp(20px,2vw,27px)/1.1 var(--sans);
  letter-spacing:-.025em;color:var(--ink);overflow-wrap:anywhere
}
.console-body .metric small{display:block;margin-top:6px;font-size:11.5px;color:var(--brand);font-weight:700}

/* Launch summary is a card, not unstructured inline text. */
.console-body .launch-summary{
  display:grid;gap:14px;margin:0 0 18px;padding:20px 22px;border:1px solid var(--line);
  border-radius:18px;background:#fff;color:var(--ink);text-decoration:none
}
.console-body .launch-summary:hover{border-color:#AFCAC2;box-shadow:0 5px 16px rgba(4,42,55,.06)}
.console-body .launch-summary h2{font-size:20px!important;margin:2px 0 5px!important}
.console-body .launch-summary p{margin-bottom:0}
.console-body .launch-summary .ring{flex:none;width:62px;height:62px}
.console-body .launch-summary .ring span{width:46px;height:46px;font-size:13px}

/* Long status badges are allowed to wrap and remain inside their parent cards. */
.console-body .badge{
  width:auto!important;height:auto!important;min-height:22px!important;max-width:100%!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  padding:5px 9px!important;white-space:normal!important;line-height:1.15!important;
  text-align:center!important;overflow:visible!important;overflow-wrap:anywhere!important
}

/* AI status and other title/status cards remain readable on a phone. */
.console-body .ai-status{
  min-width:0
}
.console-body .ai-status>div{min-width:0}
.console-body .ai-status h2,.console-body .ai-status p{overflow-wrap:anywhere}
.console-body .ai-status>.badge{flex:none;align-self:start}

/* Registry facts: long verified-state label sits on its own line. */
.console-body .card>p:first-child>.badge{
  vertical-align:middle;margin:0 4px 6px 0
}

@media(max-width:900px){
  .console-body .cockpit-grid{grid-template-columns:1fr}
  .console-body .setup-steps{grid-template-columns:1fr}
  .console-body .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .console-body .cockpit-hero{
    display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;
    padding:18px;margin-bottom:14px
  }
  .console-body .cockpit-hero h1{font-size:26px!important}
  .console-body .cockpit-hero .console-search{
    width:44px;height:44px;padding:0!important;overflow:hidden;gap:0;color:transparent
  }
  .console-body .cockpit-hero .console-search .icon{color:var(--ink);margin:0}
  .console-body .attention-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
  .console-body .attention-card{min-height:96px;padding:14px}
  .console-body .attention-card strong{font-size:27px}
  .console-body .setup-card{padding:17px;margin-bottom:14px}
  .console-body .setup-card>.row-between{
    display:grid!important;grid-template-columns:minmax(0,1fr) 62px!important;gap:12px!important
  }
  .console-body .setup-card .ring{width:60px;height:60px}
  .console-body .setup-card .ring span{width:44px;height:44px;font-size:12px}
  .console-body .setup-step{min-height:68px;padding:11px 12px}
  .console-body .cockpit-grid{gap:12px;margin-bottom:14px}
  .console-body .metric-grid{grid-template-columns:1fr 1fr;gap:8px}
  .console-body .metric strong{font-size:20px}
  .console-body .launch-summary{padding:17px}
  .console-body .launch-summary>.row-between{
    display:grid!important;grid-template-columns:minmax(0,1fr) 58px!important;gap:10px!important
  }
  .console-body .launch-summary .ring{width:56px;height:56px}
  .console-body .launch-summary .ring span{width:42px;height:42px;font-size:11px}
  .console-body .ai-status{
    display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important;padding:17px!important
  }
  .console-body .ai-status>.badge{justify-self:start!important}
}
@media(max-width:430px){
  .console-body .attention-grid{grid-template-columns:1fr}
  .console-body .metric-grid{grid-template-columns:1fr}
}


/* ---------- Visual QA pass 10: formerly unstyled product surfaces ---------- */
/* Static audit found these classes were rendered by the product with no dedicated visual rules.
   They now reuse the CABAL palette, spacing, radii and operational density. */

.console-body .config-intro,
.console-body .page-intro{
  margin:0 0 18px;padding:16px 18px;border-radius:16px;background:var(--sand);border:1px solid var(--line)
}
.console-body .config-intro h2,
.console-body .page-intro h2{margin:2px 0 6px!important;font-size:21px!important}
.console-body .config-intro p:last-child,
.console-body .page-intro p:last-child{margin-bottom:0}

/* Media library */
.console-body .media-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px
}
.console-body .media-tile{
  min-width:0;display:grid;gap:9px;padding:10px;border:1px solid var(--line);border-radius:14px;
  background:#fff;color:var(--ink);text-align:left;cursor:pointer
}
.console-body .media-tile:hover{border-color:#AFCAC2;box-shadow:0 5px 14px rgba(4,42,55,.06)}
.console-body .media-tile img{
  display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;background:var(--sand)
}
.console-body .media-tile span{min-width:0}
.console-body .media-tile strong,
.console-body .media-tile small{display:block;overflow-wrap:anywhere}
.console-body .media-tile strong{font-size:13.5px}
.console-body .media-tile small{margin-top:3px;color:var(--muted);font-size:11.5px;line-height:1.35}
.console-body .page-media{margin-top:14px}

/* Conditions / protected editor semantics */
.console-body .condition-summary{
  margin:14px 0;padding:13px 14px;border-radius:13px;background:var(--sand);border:1px solid var(--line)
}
.console-body .condition-summary h3{font-size:14px;margin:0 0 6px}
.console-body .condition-summary p{margin:4px 0!important}
.console-body .option-edit{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;
  padding:10px 0;border-bottom:1px solid var(--line)
}
.console-body .option-edit:last-child{border-bottom:0}

/* Command palette */
.console-body .command-box{display:grid;gap:12px;min-width:0}
.console-body .command-input{
  width:100%;min-height:52px;border:1.5px solid var(--line-2);border-radius:14px;
  padding:0 15px;font:500 16px var(--sans);color:var(--ink);background:#fff
}
.console-body .command-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
.console-body .command-results{display:grid;gap:7px;max-height:min(58vh,520px);overflow:auto}
.console-body .command-result{
  width:100%;min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) 18px;
  gap:10px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:12px;
  background:#fff;color:var(--ink);text-align:left;cursor:pointer
}
.console-body .command-result:hover{background:var(--sand);border-color:#AFCAC2}
.console-body .command-kind{
  padding:4px 7px;border-radius:999px;background:var(--brand-soft);color:var(--brand);
  font:800 10px/1 var(--sans);letter-spacing:.04em;text-transform:uppercase
}
.console-body .command-result strong,.console-body .command-result small{display:block;overflow-wrap:anywhere}
.console-body .command-result small{margin-top:2px;color:var(--muted);font-size:12px}

/* Staff case header and next action */
.console-body .case-head{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,360px);gap:18px;align-items:start
}
.console-body .case-head h1{font-size:25px!important;margin:2px 0 7px!important;overflow-wrap:anywhere}
.console-body .next-box{
  min-width:0;padding:14px 15px;border-radius:14px;background:var(--sand);border:1px solid var(--line)
}
.console-body .next-box.mine{border-color:#E9BF96;background:#FFF7EF}
.console-body .next-box p{margin:0 0 5px!important}
.console-body .next-box strong{display:block;font-size:14.5px;line-height:1.4;overflow-wrap:anywhere}
.console-body .case-head + .kpis{grid-column:1/-1}

/* AI assistant on the internal case */
.console-body .ai-staff-card{border-color:#CFE2DA}
.console-body .ai-staff-body{display:grid;gap:10px}
.console-body .ai-staff-body>p{margin:0}
.console-body .ai-staff-body .ai-group{
  padding:11px 13px;border-radius:12px;background:var(--sand)
}
.console-body .ai-staff-body .ai-group h4{font-size:13px;margin:0 0 5px}
.console-body .ai-staff-body .ai-group ul{margin:0;padding-left:18px}

/* CMS live preview and publish controls */
.console-body .preview-card,
.console-body .publish-card,
.console-body .history-card{overflow:visible!important}
.console-body .preview-switch{display:flex;gap:5px}
.console-body .preview-switch .icon-btn{
  width:38px;height:38px;border:1px solid var(--line);background:#fff
}
.console-body .preview-device{
  margin-top:12px;width:100%;height:560px;border:1px solid var(--line);border-radius:14px;
  overflow:hidden;background:#fff;transition:max-width .18s
}
.console-body .preview-device.tablet{max-width:720px;margin-inline:auto}
.console-body .preview-device.mobile{max-width:390px;margin-inline:auto}
.console-body .live-preview{display:block;width:100%;height:100%;border:0;background:#fff}
.console-body .publish-card .actions-row{display:flex;flex-wrap:wrap;gap:8px}
.console-body .history-card .rows{max-height:300px;overflow:auto}

/* Diagnostic preview completion and document chips */
.console-body .diag-sim-done{
  display:grid;gap:8px;padding:13px;border-radius:13px;background:var(--ok-soft);color:var(--ink)
}
.console-body .diag-sim-done>.icon{color:var(--ok)}
.console-body .sim-doc{
  display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:#fff;border:1px solid var(--line)
}
.console-body .sim-doc .icon{color:var(--brand)}

/* Portal/result IA explanation */
.app-body .ai-explain{display:grid;gap:12px}
.app-body .ai-explain>.row-between{align-items:flex-start}
.app-body .ai-explain .ai-group{
  padding:12px 14px;border-radius:13px;background:var(--soft);border:1px solid var(--line)
}
.app-body .ai-explain .ai-group h3{font-size:15px;margin:0 0 6px}
.app-body .ai-explain .ai-group ul{margin:0;padding-left:20px}

/* Secondary operational disclosure stays quiet. */
.console-body .ops-secondary{background:#fff}
.console-body .tab-body{min-width:0}

@media(max-width:900px){
  .console-body .case-head{grid-template-columns:1fr}
}
@media(max-width:640px){
  .console-body .config-intro,.console-body .page-intro{padding:14px}
  .console-body .media-grid{grid-template-columns:1fr 1fr;gap:9px}
  .console-body .option-edit{grid-template-columns:1fr}
  .console-body .preview-device{height:520px}
  .console-body .case-head{gap:12px}
  .console-body .next-box{padding:13px}
  .console-body .command-result{grid-template-columns:minmax(0,1fr) 18px}
  .console-body .command-kind{grid-column:1;justify-self:start}
  .console-body .command-result>.grow{grid-column:1}
  .console-body .command-result>.icon{grid-column:2;grid-row:1/3}
}
@media(max-width:420px){
  .console-body .media-grid{grid-template-columns:1fr}
}


/* ---------- Visual QA pass 11: close remaining style gaps ---------- */
.console-body .mobile-menu{
  min-width:44px;min-height:44px;display:grid;place-items:center
}
.console-body .cockpit-money{min-width:0}
.console-body .alert-list{display:grid;gap:9px}
.console-body .alert-list .alert{margin:0;min-width:0}
.console-body .editor-grid-live{min-width:0}
.console-body .editor-main{min-width:0;overflow:visible!important}
.console-body .copy-group{
  margin:0 0 12px;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden
}
.console-body .copy-group>summary{
  min-height:48px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;
  gap:10px;cursor:pointer;font:750 14px/1.3 var(--sans);color:var(--ink)
}
.console-body .copy-group>summary:hover{background:var(--sand)}
.console-body .copy-group-body{
  display:grid;gap:12px;padding:14px;border-top:1px solid var(--line);background:#fff
}
.app-body.client-flow .upload-photo,
.app-body.client-flow .upload-file{position:relative}
.app-body.client-flow .choices.multi{align-items:stretch}


/* ---------- Visual QA pass 5: compact save-by-email block ---------- */
.app-body.client-flow .save-box{
  width:min(100%,560px)!important;max-width:560px!important;margin:22px 0 0!important;
  padding:18px 20px!important;border-radius:18px!important
}
.app-body.client-flow .save-box h2{
  margin:0 0 4px!important;font-size:22px!important;line-height:1.2!important
}
.app-body.client-flow .save-box>p{
  margin:0!important;max-width:52ch!important;font-size:15px!important;line-height:1.48!important
}
.app-body.client-flow .save-box .login{
  max-width:520px!important;margin:12px 0 0!important;padding:0!important;gap:10px!important
}
.app-body.client-flow .save-box .login .inline-form{
  margin:0!important;display:grid!important;grid-template-columns:minmax(220px,330px) max-content!important;
  gap:10px!important;align-items:end!important;max-width:520px!important
}
.app-body.client-flow .save-box .login .field{margin:0!important}
.app-body.client-flow .save-box .login .field label{
  margin-bottom:6px!important;font-size:13.5px!important
}
.app-body.client-flow .save-box .login input[type=email]{
  width:330px!important;max-width:100%!important;height:50px!important;border-radius:12px!important;
  padding:0 14px!important;font-size:15px!important
}
.app-body.client-flow .save-box .login .inline-form .btn{
  min-height:50px!important;height:50px!important;padding:0 18px!important;font-size:15px!important
}
.app-body.client-flow .save-box .login .slide-up{margin-top:10px!important}
.app-body.client-flow .save-box+.back-link{margin-top:14px}
@media(max-width:640px){
  .app-body.client-flow .save-box{width:100%!important;padding:13px 16px!important;margin-top:16px!important}
  .app-body.client-flow .save-box h2{font-size:21px!important;margin-bottom:2px!important}
  .app-body.client-flow .save-box>p{font-size:14.5px!important;line-height:1.4!important}
  .app-body.client-flow .save-box .login{width:100%!important;margin-top:9px!important;gap:7px!important}
  .app-body.client-flow .save-box .login .inline-form{
    grid-template-columns:1fr!important;gap:6px!important;width:100%!important
  }
  .app-body.client-flow .save-box .login .field label{margin-bottom:4px!important}
  .app-body.client-flow .save-box .login input[type=email]{
    width:100%!important;height:48px!important
  }
  .app-body.client-flow .save-box .login .inline-form .btn{
    width:100%!important;height:48px!important;min-height:48px!important
  }
}


/* Shared small section heading used by payment/engagement. */
.app-body .h-sm,.console-body .h-sm{
  margin:18px 0 10px;font:800 17px/1.25 var(--sans);letter-spacing:-.015em;color:var(--ink)
}


/* ---------- Visual QA pass 12: concise AI evidence disclosure ---------- */
.app-body .ai-explain{
  display:block!important;padding:0!important;overflow:hidden!important
}
.app-body .ai-explain>summary{
  min-height:58px;padding:16px 18px;display:flex;align-items:center;gap:9px;
  cursor:pointer;color:var(--ink);list-style:none
}
.app-body .ai-explain>summary::-webkit-details-marker{display:none}
.app-body .ai-explain>summary::after{
  content:"›";margin-left:auto;color:var(--muted);font-size:24px;line-height:1;
  transform:rotate(90deg);transition:transform .15s
}
.app-body .ai-explain[open]>summary::after{transform:rotate(-90deg)}
.app-body .ai-explain .summary-badge{
  margin-left:auto;margin-right:8px;display:inline-flex;align-items:center;min-height:24px;
  padding:4px 8px;border-radius:999px;background:var(--tint);color:var(--act);
  font:800 10.5px/1 var(--f);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap
}
.app-body .ai-explain-body{
  display:grid;gap:12px;padding:0 18px 18px;border-top:1px solid var(--line)
}
.app-body .ai-explain-body>p:first-child{margin:14px 0 0}
.app-body .ai-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.app-body .ai-explain .ai-group{
  min-width:0;padding:12px 13px;border-radius:13px;background:var(--soft);border:1px solid var(--line)
}
.app-body .ai-explain .ai-group h3{margin:0 0 5px;font-size:14px}
.app-body .ai-explain .ai-group ul{margin:0;padding-left:18px}
.app-body .ai-explain .ai-group li{font-size:14px;line-height:1.45}
.app-body .ai-next{padding:12px 13px;border-radius:12px;background:var(--tint)}
.app-body .ai-next p{margin:3px 0 0}
.app-body .ai-limits,.app-body .ai-tech{border-top:1px solid var(--line);padding-top:10px}
.app-body .ai-limits>summary,.app-body .ai-tech>summary{
  cursor:pointer;font-size:13.5px;font-weight:700;color:var(--text)
}
.app-body .ai-tech p{margin:8px 0 0}
@media(max-width:640px){
  .app-body .ai-explain>summary{padding:14px 15px;align-items:flex-start}
  .app-body .ai-explain .summary-badge{display:none}
  .app-body .ai-explain-body{padding:0 15px 15px}
  .app-body .ai-groups{grid-template-columns:1fr}
}


.app-body.client-flow .followup-text{margin-top:24px}
.app-body.client-flow .followup-text .btn{justify-self:start}
@media(max-width:640px){.app-body.client-flow .followup-text .btn{width:100%}}


/* ---------- Visual QA pass 13: compact CMS list editing ---------- */
.console-body .structured-list{display:grid;gap:9px}
.console-body .config-item{
  min-width:0;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden
}
.console-body .config-item>summary{
  min-height:54px;display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;
  align-items:center;padding:10px 12px;cursor:pointer;list-style:none
}
.console-body .config-item>summary::-webkit-details-marker{display:none}
.console-body .config-item>summary:hover{background:var(--sand)}
.console-body .config-item[open]>summary{background:var(--sand);border-bottom:1px solid var(--line)}
.console-body .config-index{
  width:30px;height:30px;border-radius:9px;background:var(--brand-soft);color:var(--brand);
  display:grid;place-items:center;font:800 12px/1 var(--sans)
}
.console-body .config-summary-copy{min-width:0}
.console-body .config-summary-copy strong{
  display:block;font:750 14px/1.3 var(--sans);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.console-body .config-summary-copy small{
  display:block;margin-top:2px;font-size:11.5px;line-height:1.25;color:var(--muted);text-transform:capitalize
}
.console-body .config-item-actions{display:flex;align-items:center;gap:3px}
.console-body .config-mini-action{
  width:34px;height:34px;border:0;border-radius:9px;background:transparent;color:var(--muted);
  font:800 16px/1 var(--sans);cursor:pointer
}
.console-body .config-mini-action:hover{background:#fff;color:var(--ink)}
.console-body .config-mini-action.danger:hover{background:var(--risk-soft);color:var(--risk)}
.console-body .config-item-body{display:grid;gap:12px;padding:14px}
.console-body .config-item-body>.field:first-child{margin-top:0}
.console-body .config-add{justify-self:start;margin-top:2px}
@media(max-width:640px){
  .console-body .config-item>summary{
    grid-template-columns:30px minmax(0,1fr);padding:10px
  }
  .console-body .config-item-actions{
    grid-column:2;justify-self:start;margin-top:3px
  }
  .console-body .config-summary-copy strong{white-space:normal;overflow:visible;text-overflow:clip}
  .console-body .config-item-body{padding:12px}
}


/* ---------- Visual QA pass 5: result card precision ---------- */
.app-body.client-flow .property-card-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap
}
.app-body.client-flow .property-card-head .h-card{margin:0}
.app-body.client-flow .property-card-head .badge{margin:0!important;justify-self:auto!important}
@media(max-width:640px){
  .app-body.client-flow .prelim-grid table.table{
    min-width:0!important;width:100%!important;max-width:100%!important
  }
  .app-body.client-flow .prelim-grid table.table tbody,
  .app-body.client-flow .prelim-grid table.table tr{min-width:0!important;max-width:100%!important}
  .app-body.client-flow .prelim-grid table.table td{min-width:0!important;max-width:100%!important}
  .app-body.client-flow .property-card-head{align-items:flex-start}
  .app-body.client-flow .property-card-head .badge{max-width:100%!important;white-space:normal!important}
}


/* ---------- Visual QA pass 14: engagement and payments ---------- */
.app-body.client-flow .engagement-stepper{
  display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:8px!important;width:100%!important;margin-bottom:28px!important
}
.app-body.client-flow .engagement-progress-copy{
  display:none;margin:0 0 8px;color:var(--muted);font:700 13px/1.3 var(--sans)
}
.app-body.client-portal .fee-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap
}
.app-body.client-portal .fee-head .h-card{margin:0}
.app-body.client-portal .fee-head .badge{
  margin:0!important;max-width:min(100%,190px)!important;white-space:normal!important;
  text-align:center!important;line-height:1.2!important
}
.app-body.client-portal .pay-box .segmented{
  display:inline-grid;grid-auto-flow:column;grid-auto-columns:minmax(72px,1fr);
  max-width:100%;border-radius:999px;overflow:hidden;background:var(--line)
}
.app-body.client-portal .pay-box .segmented button{
  min-height:44px!important;padding:9px 14px!important;border:0!important;
  background:transparent;color:var(--muted);font:700 14px/1 var(--sans)
}
.app-body.client-portal .pay-box .segmented button[aria-pressed=true]{
  background:#fff;color:var(--ink);box-shadow:0 0 0 1px var(--line2)
}
@media(max-width:640px){
  .app-body.client-flow .engagement-progress-copy{display:block}
  .app-body.client-flow .engagement-stepper{gap:5px!important;margin-bottom:26px!important}
  .app-body.client-flow .engagement-stepper .st em{display:none!important}
  .app-body.client-portal .fee-head{align-items:flex-start}
  .app-body.client-portal .fee-head .badge{max-width:100%!important}
  .app-body.client-portal .pay-box{padding:16px!important}
  .app-body.client-portal .pay-box .segmented{width:100%;grid-auto-columns:1fr}
  .app-body.client-portal .pay-box .segmented button{padding:10px 8px!important}
}


/* ---------- Visual QA pass 14: verdict + six-step engagement ---------- */
.app-body.client-flow .engagement-progress-copy{
  margin:0 0 12px;color:var(--muted);font-size:14px;font-weight:700
}
.app-body.client-flow .engagement-stepper{
  display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:8px!important;width:100%!important;margin-bottom:34px!important
}
.app-body.client-flow .engagement-stepper .st{min-width:0!important}
.app-body.client-flow .engagement-stepper .st em{
  display:block!important;margin-top:7px!important;font-size:11.5px!important;line-height:1.2!important;
  white-space:normal!important;overflow:visible!important;text-overflow:clip!important
}
.app-body.client-flow .property-card{
  overflow:visible!important;padding-bottom:24px!important
}
.app-body.client-flow .property-card-head{
  position:static!important;display:flex!important;align-items:center!important;
  justify-content:space-between!important;gap:10px!important;flex-wrap:wrap!important
}
.app-body.client-flow .property-card-head>.badge{
  position:static!important;transform:none!important;margin:0!important;max-width:100%!important
}
.app-body.client-flow .prelim-grid .table-wrap{
  width:100%!important;max-width:100%!important;min-width:0!important
}
.app-body.client-flow .prelim-grid table.table{
  width:100%!important;max-width:100%!important;min-width:0!important
}
@media(max-width:640px){
  .app-body.client-flow .engagement-progress-copy{
    text-align:left;margin:0 0 8px;font-size:13.5px
  }
  .app-body.client-flow .engagement-stepper{
    grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:5px!important;margin-bottom:28px!important
  }
  .app-body.client-flow .engagement-stepper .st em{display:none!important}
  .app-body.client-flow .engagement-stepper .st i{height:4px!important;margin:0!important}
  .app-body.client-flow .prelim-grid .card{overflow:visible!important}
  .app-body.client-flow .prelim-grid .table-wrap{overflow:visible!important}
  .app-body.client-flow .prelim-grid table.table tr{
    width:100%!important;max-width:100%!important;margin:9px 0!important
  }
}


/* ---------- Visual QA pass 15: mobile admin readability ---------- */
@media(max-width:640px){
  .console-body .config-mini-action{
    width:44px!important;height:44px!important;border-radius:11px!important;font-size:18px!important
  }
  .console-body .config-item-actions{gap:4px!important}
  .console-body .preview-switch .icon-btn{
    width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important
  }
  .console-body .launch-hero{
    padding:18px!important;gap:16px!important
  }
  .console-body .launch-hero h1{
    font-size:25px!important;line-height:1.08!important
  }
  .console-body .launch-hero .lead{
    font-size:14.5px!important;line-height:1.5!important
  }
  .console-body .launch-stats{
    grid-template-columns:1fr 1fr!important;gap:8px!important
  }
  .console-body .launch-stats>span{
    padding:11px!important;font-size:12.5px!important;line-height:1.35!important
  }
  .console-body .launch-stats strong{font-size:20px!important}
  .console-body .launch-filters{
    gap:7px!important;margin-bottom:22px!important
  }
  .console-body .launch-filters .chip{
    min-height:44px!important;padding:9px 12px!important;font-size:13px!important
  }
  .console-body .launch-group{margin-bottom:26px!important}
  .console-body .launch-group-head{
    align-items:center!important;margin-bottom:10px!important
  }
  .console-body .launch-group-head h2{
    font-size:18px!important;line-height:1.25!important
  }
  .console-body .launch-item{
    min-height:88px!important;padding:15px!important;
    grid-template-columns:42px minmax(0,1fr) 18px!important;
    gap:12px!important;align-items:start!important
  }
  .console-body .launch-icon{
    width:42px!important;height:42px!important;border-radius:12px!important
  }
  .console-body .launch-copy strong{
    font-size:14.5px!important;line-height:1.35!important
  }
  .console-body .launch-copy small{
    margin-top:4px!important;font-size:12.5px!important;line-height:1.45!important
  }
  .console-body .launch-item>.badge{
    grid-column:2!important;justify-self:start!important;
    min-height:25px!important;padding:5px 9px!important;font-size:11px!important
  }
  .console-body .launch-item>.icon:last-child{
    grid-column:3!important;grid-row:1/3!important;align-self:center!important
  }

  dialog.drawer{
    width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;
    margin:0!important;border-radius:0!important
  }
  dialog.drawer .drawer-head{
    padding:16px!important;min-height:72px!important
  }
  dialog.drawer .drawer-head h2{
    font-size:21px!important;line-height:1.2!important;overflow-wrap:anywhere!important
  }
  dialog.drawer .drawer-body{
    padding:16px 16px 96px!important
  }
  dialog.drawer .drawer-foot{
    padding:12px 16px max(12px,env(safe-area-inset-bottom))!important;
    display:grid!important;grid-template-columns:1fr!important
  }
  dialog.drawer .drawer-foot .btn{
    width:100%!important;min-height:48px!important;white-space:normal!important
  }
}


/* ---------- Visual QA pass 16: mandatory-AI waiting and error states ---------- */
.app-body.client-flow .verdict-loading{
  max-width:620px;margin:0 auto;text-align:left;justify-items:start;gap:12px
}
.app-body.client-flow .verdict-loading>.spinner{
  justify-self:center;margin-bottom:4px
}
.app-body.client-flow .verdict-loading>.pchip{
  margin:0
}
.app-body.client-flow .verdict-loading>h1{
  margin:2px 0 0;max-width:19ch;font-size:clamp(30px,4vw,40px);line-height:1.1
}
.app-body.client-flow .verdict-loading>.muted{
  margin:0;max-width:58ch;font-size:17px;line-height:1.55
}
.app-body.client-flow .verdict-loading .analysis-steps{
  margin-top:8px
}
.app-body.client-flow .analysis-wait-note{
  display:flex;align-items:flex-start;gap:7px;margin:2px 0 0;max-width:62ch
}
.app-body.client-flow .analysis-wait-note .icon{flex:none;margin-top:2px}
.app-body.client-flow .verdict-hold{
  margin:18px 0 22px;padding:18px 20px;border:1px solid var(--line);border-radius:16px
}
.app-body.client-flow .verdict-hold strong{display:block;margin-bottom:4px}
.app-body.client-flow .verdict-hold p{margin:0}
@media(max-width:640px){
  .app-body.client-flow .verdict-loading>h1{font-size:30px;max-width:none}
  .app-body.client-flow .verdict-loading>.muted{font-size:16px}
  .app-body.client-flow .verdict-hold{padding:16px}
}


/* ---------- Visual QA pass 17: restore semantic badge hierarchy after reference CSS ---------- */
.app-body .badge,.console-body .badge{
  margin-left:0!important;background:var(--line-2)!important;color:var(--ink-2)!important;
  border:0!important;box-shadow:none!important
}
.app-body .badge-brand,.console-body .badge-brand{
  background:var(--brand-soft)!important;color:var(--brand)!important
}
.app-body .badge-ok,.console-body .badge-ok{
  background:var(--ok-soft)!important;color:var(--ok)!important
}
.app-body .badge-warn,.console-body .badge-warn{
  background:var(--warn-soft)!important;color:var(--warn)!important
}
.app-body .badge-risk,.console-body .badge-risk{
  background:var(--risk-soft)!important;color:var(--risk)!important
}
.app-body .badge-info,.console-body .badge-info{
  background:var(--info-soft)!important;color:var(--info)!important
}
.app-body .badge-dot::before,.console-body .badge-dot::before{
  width:7px!important;height:7px!important;flex:none!important
}
/* Document importance should read immediately: required = green, recommended = amber, optional = neutral. */
.app-body.client-flow .upload-item .upload-head .badge-brand{
  background:var(--brand)!important;color:#fff!important
}
.app-body.client-flow .upload-item.recommended .upload-head .badge:not(.badge-ok):not(.badge-brand){
  background:var(--warn-soft)!important;color:var(--warn)!important
}
.app-body.client-flow .upload-item.optional .upload-head .badge:not(.badge-ok):not(.badge-brand){
  background:var(--line-2)!important;color:var(--muted)!important
}


/* ---------- Visual QA pass 18: compact, actionable integrations ---------- */
.console-body .integration-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px
}
.console-body details.integration-card{
  padding:0!important;overflow:hidden!important;display:block!important
}
.console-body details.integration-card>summary{
  min-height:112px;display:grid;grid-template-columns:44px minmax(0,1fr) auto 18px;
  gap:12px;align-items:center;padding:16px;cursor:pointer;list-style:none;background:#fff
}
.console-body details.integration-card>summary::-webkit-details-marker{display:none}
.console-body details.integration-card>summary:hover{background:var(--sand)}
.console-body details.integration-card[open]>summary{
  border-bottom:1px solid var(--line);background:var(--sand)
}
.console-body .integration-icon{
  width:44px;height:44px;border-radius:13px;background:var(--brand-soft);color:var(--brand);
  display:grid;place-items:center
}
.console-body .integration-summary{display:grid;gap:3px}
.console-body .integration-summary .eyebrow{margin:0;font-size:10px}
.console-body .integration-summary strong{
  font:800 16px/1.2 var(--sans);color:var(--ink)
}
.console-body .integration-summary small{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  font-size:12.5px;line-height:1.4;color:var(--muted)
}
.console-body .integration-detail>summary>.badge{
  justify-self:end;max-width:135px;text-align:center
}
.console-body .integration-chevron{color:var(--muted);transition:transform .15s}
.console-body .integration-detail[open] .integration-chevron{transform:rotate(90deg)}
.console-body .integration-body{
  display:grid;gap:12px;padding:16px;background:#fff
}
.console-body .integration-body>.btn{justify-self:start}
.console-body .integration-events{
  border-top:1px solid var(--line);padding-top:10px
}
.console-body .integration-events>summary{
  min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:700;color:var(--ink)
}
@media(max-width:900px){
  .console-body .integration-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .console-body details.integration-card>summary{
    min-height:100px;grid-template-columns:42px minmax(0,1fr) 18px;padding:14px;gap:10px
  }
  .console-body .integration-icon{width:42px;height:42px}
  .console-body .integration-detail>summary>.badge{
    grid-column:2;justify-self:start;margin-top:3px
  }
  .console-body .integration-chevron{grid-column:3;grid-row:1/3;align-self:center}
  .console-body .integration-body{padding:14px}
  .console-body .integration-body>.btn{width:100%;min-height:46px}
}


/* Missing evidence must look unmistakably blocked, not like an active CTA. */
.app-body.client-flow .sticky-actions .btn-primary:disabled{
  opacity:1!important;background:#DDE8E4!important;color:#657B74!important;
  box-shadow:none!important;cursor:not-allowed!important
}


/* ---------- Visual QA pass 19: team/access density ---------- */
.console-body .team-table{overflow-x:auto!important}
.console-body .team-table table{min-width:1080px}
.console-body .team-table th:nth-child(1),.console-body .team-table td:nth-child(1){min-width:150px}
.console-body .team-table th:nth-child(2),.console-body .team-table td:nth-child(2){min-width:190px}
.console-body .team-table th:nth-child(3),.console-body .team-table td:nth-child(3){min-width:120px}
.console-body .team-table th:nth-child(6),.console-body .team-table td:nth-child(6){min-width:135px}
.console-body .team-table th:last-child,.console-body .team-table td:last-child{min-width:330px}
.console-body .team-table .row-actions{
  display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:310px
}
.console-body .team-table .row-actions select{
  flex:1 0 145px;max-width:175px;min-height:38px;border:1px solid var(--line-2);
  border-radius:9px;background:#fff;padding:6px 8px;font:600 13px var(--sans)
}
.console-body .team-table .row-actions .link-btn{
  min-height:38px;padding:7px 9px;border:1px solid var(--line);border-radius:9px;
  background:#fff;text-decoration:none;font-size:12.5px;line-height:1.15
}
.console-body .team-table .row-actions .link-btn:hover{background:var(--sand)}
.console-body .team-table .row-actions .link-btn.danger{
  border-color:#F0CDC7;background:#FFFDFC;color:var(--risk)
}
.console-body .invite-table table{min-width:720px}
@media(max-width:640px){
  .console-body .team-table table,.console-body .invite-table table{min-width:0!important}
  .console-body .team-table .row-actions{min-width:0!important;width:100%!important}
  .console-body .team-table .row-actions select{
    flex:1 1 100%!important;max-width:none!important;min-height:44px!important
  }
  .console-body .team-table .row-actions .link-btn{
    min-height:44px!important;flex:1 1 calc(50% - 6px)!important;
    display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important
  }
}


/* ---------- Visual QA pass 20: professional-decision readability ---------- */
.console-body .decision-facts{margin-bottom:10px}
.console-body .technical-details{
  margin:10px 0 14px;border:1px solid var(--line);border-radius:12px;background:var(--sand);overflow:hidden
}
.console-body .technical-details>summary{
  min-height:44px;display:flex;align-items:center;padding:9px 12px;cursor:pointer;
  font:700 13px/1.3 var(--sans);color:var(--muted)
}
.console-body .technical-details[open]>summary{border-bottom:1px solid var(--line)}
.console-body .technical-details>.facts{margin:0;border:0;border-radius:0;background:#fff}
.console-body .technical-details code{
  display:inline-block;max-width:100%;font-size:11.5px;overflow-wrap:anywhere;white-space:normal
}
.console-body .checklist-gate li{
  align-items:flex-start;gap:10px;line-height:1.5
}
.console-body .checklist-gate li>.st{flex:none}
@media(max-width:640px){
  .console-body .decision-facts{
    grid-template-columns:1fr!important
  }
  .console-body .decision-facts dt{padding-bottom:2px!important}
  .console-body .decision-facts dd{padding-top:0!important}
}


/* ---------- Visual QA pass 21: engagement OTP + drawer close target ---------- */
.app-body.client-flow .code-input{
  width:220px!important;max-width:220px!important;min-width:0!important;
  height:54px!important;border-radius:14px!important;
}
@media(max-width:640px){
  .app-body.client-flow .code-input{
    width:min(220px,calc(100vw - 32px))!important;
    max-width:calc(100vw - 32px)!important
  }
  dialog.drawer .drawer-head>.icon-btn{
    width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;
    flex:0 0 48px!important;border-radius:12px!important
  }
}


/* Mobile staff access actions: preserve whole words and stable tap targets. */
@media(max-width:640px){
  .console-body table.console-table td .row-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .console-body table.console-table td .row-actions select{
    grid-column:1/-1!important;
    width:100%!important;
  }
  .console-body table.console-table td .row-actions .link-btn{
    width:100%!important;
    min-width:0!important;
    min-height:46px!important;
    padding:8px 10px!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    hyphens:none!important;
    white-space:normal!important;
    line-height:1.2!important;
    text-align:center!important;
  }
  .console-body table.console-table td .row-actions .link-btn:last-child:nth-child(odd){
    grid-column:1/-1!important;
  }
}


/* Public mobile menu: real overlay, never translucent over the hero. */
@media(max-width:820px){
  .site-header:has(.mobile-nav[open]){
    background:#fff!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .mobile-nav[open] .mobile-nav-panel{
    position:fixed!important;
    top:64px!important;left:0!important;right:0!important;bottom:0!important;
    z-index:90!important;
    width:100%!important;max-width:none!important;
    height:auto!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    background:#fff!important;
    opacity:1!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    box-shadow:0 18px 40px rgba(11,43,58,.14)!important;
    padding:8px 20px max(28px,env(safe-area-inset-bottom))!important;
  }
  .mobile-nav[open] .mobile-nav-panel a:not(.btn){
    background:#fff!important;
  }
}


/* FOREZ COHESION PASS: TRIAGE + UPLOAD */
.app-body .badge-dot,.console-body .badge-dot{
  display:inline-flex!important;align-items:center!important;gap:7px!important;
  vertical-align:middle!important;position:relative!important
}
.app-body .badge-dot::before,.console-body .badge-dot::before{
  display:block!important;position:static!important;inset:auto!important;top:auto!important;left:auto!important;
  transform:none!important;margin:0!important;align-self:center!important;flex:0 0 7px!important
}
.app-body.client-flow .upload-choice{
  position:relative!important;overflow:hidden!important;cursor:pointer!important;isolation:isolate
}
.app-body.client-flow .upload-choice input[type=file]{
  position:absolute!important;inset:0!important;z-index:3!important;display:block!important;
  opacity:0!important;cursor:pointer!important;width:100%!important;height:100%!important;
  clip:auto!important;clip-path:none!important;margin:0!important;padding:0!important
}
.app-body.client-flow .upload-choice>*:not(input){position:relative;z-index:1;pointer-events:none}
.app-body.client-flow .upload-list{align-items:stretch}
.app-body.client-flow .upload-item{width:100%;box-sizing:border-box}
.app-body.client-flow .upload-head{align-items:flex-start}
.app-body.client-flow .upload-head>.req-icon{margin-top:1px}
.app-body.client-flow .upload-head>.badge{align-self:flex-start;margin-top:1px!important}
.app-body.client-flow .analysis-mini.triage-hypotheses span{
  max-width:100%;white-space:normal;line-height:1.35;align-items:flex-start
}
.app-body.client-flow .triage-gate{display:grid;gap:10px;margin:28px 0 26px;max-width:760px}
.app-body.client-flow .triage-step{
  display:grid;grid-template-columns:38px minmax(0,1fr);gap:14px;align-items:start;
  padding:17px 18px;border:1px solid var(--line);border-radius:18px;background:#fff
}
.app-body.client-flow .triage-n{
  width:38px;height:38px;border-radius:12px;display:grid;place-items:center;
  background:var(--soft);color:var(--act);font:800 15px/1 var(--f)
}
.app-body.client-flow .triage-step strong{display:block;font-size:17px;color:var(--ink);margin:1px 0 4px}
.app-body.client-flow .triage-step p{margin:0;color:var(--text);font-size:15px;line-height:1.5}
.app-body.client-flow .app-stepper .st{position:relative!important}
.app-body.client-flow .app-stepper .st i{
  position:relative!important;display:block!important;overflow:hidden!important;z-index:0!important
}
.app-body.client-flow .app-stepper .st i b{position:relative!important;z-index:0!important}
@media(max-width:640px){
  .app-body.client-flow .triage-step{padding:15px;grid-template-columns:34px minmax(0,1fr);gap:12px}
  .app-body.client-flow .triage-n{width:34px;height:34px;border-radius:10px}
}


/* FOREZ INLINE STATUS COHESION */
.app-body .state,.console-body .state{
  display:inline-flex!important;align-items:center!important;gap:6px!important;
  line-height:1.2!important;vertical-align:middle!important;position:relative!important
}
.app-body .state::before,.console-body .state::before{
  display:block!important;position:static!important;inset:auto!important;
  width:7px!important;height:7px!important;flex:0 0 7px!important;
  margin:0!important;transform:none!important;align-self:center!important
}
.app-body .dot,.console-body .dot{vertical-align:middle!important}


/* ---------- FOREZ FINAL COHESION: status geometry + evidence cards ---------- */
/* Status dots must always belong to their text row. No inherited absolute
   positioning or stacking is allowed to make a green point float over content. */
.app-body .badge-dot,
.console-body .badge-dot,
.app-body .state,
.console-body .state{
  position:static!important;
  isolation:isolate!important;
  overflow:visible!important;
}
.app-body .badge-dot::before,
.console-body .badge-dot::before,
.app-body .state::before,
.console-body .state::before{
  content:""!important;
  position:static!important;
  inset:auto!important;
  top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;
  transform:none!important;
  translate:none!important;
  z-index:auto!important;
  float:none!important;
  display:inline-block!important;
  width:7px!important;height:7px!important;
  min-width:7px!important;min-height:7px!important;
  flex:0 0 7px!important;
  margin:0!important;
  vertical-align:middle!important;
  align-self:center!important;
  border-radius:50%!important;
}
.app-body .dot,
.console-body .dot{
  position:static!important;
  inset:auto!important;
  transform:none!important;
  translate:none!important;
  z-index:auto!important;
  float:none!important;
  flex:none!important;
  margin:0!important;
}

/* The four review steps are a single restrained rail, never a set of floating marks. */
.app-body.client-flow .app-stepper{
  position:relative!important;
  isolation:isolate!important;
  overflow:visible!important;
}
.app-body.client-flow .app-stepper .st{
  position:relative!important;
  z-index:auto!important;
  min-width:0!important;
  overflow:visible!important;
}
.app-body.client-flow .app-stepper .st i{
  position:relative!important;
  z-index:0!important;
  isolation:isolate!important;
  overflow:hidden!important;
}
.app-body.client-flow .app-stepper .st i b{
  position:static!important;
  display:block!important;
  transform:none!important;
  z-index:auto!important;
}

/* Evidence cards share one geometry regardless of required/recommended/optional state. */
.app-body.client-flow .upload-item{
  overflow:hidden!important;
}
.app-body.client-flow .upload-head{
  position:relative!important;
  display:grid!important;
  grid-template-columns:44px minmax(0,1fr) max-content!important;
  column-gap:14px!important;
  row-gap:8px!important;
  align-items:start!important;
}
.app-body.client-flow .upload-head>.req-icon{
  grid-column:1!important;
  grid-row:1!important;
  position:static!important;
  align-self:start!important;
}
.app-body.client-flow .upload-head>.grow{
  grid-column:2!important;
  grid-row:1!important;
  min-width:0!important;
}
.app-body.client-flow .upload-head>.badge{
  grid-column:3!important;
  grid-row:1!important;
  position:static!important;
  justify-self:end!important;
  align-self:start!important;
  max-width:170px!important;
  white-space:normal!important;
  text-align:center!important;
  line-height:1.15!important;
}
.app-body.client-flow .upload-head .grow>.badge{
  position:static!important;
}
.app-body.client-flow .upload-item.done{
  border-color:#B9D8CD!important;
  background:#FCFEFD!important;
}
.app-body.client-flow .upload-item.done .req-icon{
  background:var(--brand)!important;
  color:#fff!important;
}
@media(max-width:640px){
  .app-body.client-flow .upload-head{
    grid-template-columns:42px minmax(0,1fr)!important;
  }
  .app-body.client-flow .upload-head>.badge{
    grid-column:2!important;
    grid-row:2!important;
    justify-self:start!important;
    max-width:100%!important;
  }
}


/* ---------- FOREZ FINAL COHESION: public process markers ---------- */
/* site.css historically rendered .step-n as a 34px green circle, while the
   current public design treats it as an inline "Paso N" eyebrow. Reset the
   old geometry so the marker never appears as a floating green blob. */
body:not(.app-body):not(.console-body) .steps .step-n{
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--act)!important;
  display:block!important;
  place-items:initial!important;
  padding:0!important;
  margin:8px 0 0!important;
  position:static!important;
  transform:none!important;
  font-size:14px!important;
  font-weight:800!important;
  line-height:1.2!important;
  letter-spacing:.07em!important;
  text-transform:uppercase!important;
}

/* ---------- Verdict (VERDICT.md): sober, legible, evidence first ---------- */
.app-body .vd-head{margin:6px 0 20px}
.app-body .vd-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.app-body .vd-title{font-size:clamp(24px,3.2vw,34px);line-height:1.15;margin:0 0 10px;color:var(--ink);font-weight:750;letter-spacing:-.01em;max-width:28ch}
.app-body .vd-lede{font-size:16px;line-height:1.55;color:var(--text);max-width:70ch;margin:0 0 12px}
.app-body .vd-cert{display:flex;gap:8px;align-items:flex-start;font-size:14px;line-height:1.45;padding:10px 12px;border-radius:12px;margin:0;max-width:70ch}
.app-body .vd-cert .icon{margin-top:2px;flex:0 0 auto}
.app-body .vd-cert-high{background:var(--okbg);color:var(--ok)}
.app-body .vd-cert-medium{background:var(--revbg);color:var(--rev)}
.app-body .vd-cert-low{background:var(--confbg);color:var(--conf)}
.app-body .vd-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;max-width:820px}
.app-body .vd-side{position:static;display:grid;grid-template-columns:1.2fr 1fr;gap:18px;align-items:start}
.app-body .vd-side>.btn{grid-column:1/-1;justify-self:start;width:auto}
.app-body .vd-money{display:grid;grid-template-columns:1.3fr 1fr 1fr;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--bg)}
.app-body .vd-money-potential{grid-template-columns:1fr}
.app-body .vd-m{padding:18px 20px;display:flex;flex-direction:column;gap:6px;min-width:0}
.app-body .vd-m+.vd-m{border-left:1px solid var(--line)}
.app-body .vd-m span{font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.app-body .vd-m strong{font-size:clamp(20px,2.4vw,26px);font-weight:800;color:var(--ink);white-space:nowrap}
.app-body .vd-m small{font-size:13px;line-height:1.4;color:var(--text)}
.app-body .vd-m.main{background:var(--ink);color:#fff}
.app-body .vd-m.main span{color:#9FC3CF}.app-body .vd-m.main strong{color:#fff;font-size:clamp(24px,3vw,32px)}.app-body .vd-m.main small{color:#C9DDE3}
.app-body .vd-money-potential .vd-m.main{background:var(--confbg);color:var(--conf)}
.app-body .vd-money-potential .vd-m.main span,.app-body .vd-money-potential .vd-m.main small{color:var(--text)}.app-body .vd-money-potential .vd-m.main strong{color:var(--ink)}
.app-body .vd-m.ok strong{color:var(--ok)}
.app-body .vd-note{display:flex;gap:8px;align-items:flex-start;font-size:14px;color:var(--text);margin:-8px 0 0}
.app-body .vd-group{font-size:12.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px}
.app-body .vd-group:first-child{margin-top:4px}
.app-body .vd-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.app-body .vd-item,.app-body .vd-route{border:1px solid var(--line);border-left:3px solid var(--line2);border-radius:12px;padding:12px 14px;background:var(--bg)}
.app-body .vd-ok{border-left-color:var(--ok)}.app-body .vd-info{border-left-color:var(--act)}.app-body .vd-warn{border-left-color:#D9A441}.app-body .vd-neutral{border-left-color:var(--line2)}
.app-body .vd-route.urgent{border-left-color:var(--risk)}
.app-body .vd-item-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.app-body .vd-item-head strong{font-size:15px;color:var(--ink)}
.app-body .vd-dot{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--soft);color:var(--ink2);flex:0 0 auto}
.app-body .vd-ok .vd-dot{background:var(--okbg);color:var(--ok)}.app-body .vd-warn .vd-dot{background:var(--revbg);color:var(--rev)}.app-body .vd-info .vd-dot{background:var(--tint);color:var(--act)}
.app-body .vd-amount{margin-left:auto;font-weight:800;color:var(--ink);white-space:nowrap}
.app-body .vd-why{margin:6px 0 0 34px;font-size:14.5px;line-height:1.55;color:var(--text)}
.app-body .vd-basis{margin:6px 0 0 34px;font-size:13.5px}
.app-body .vd-basis summary,.app-body .vd-more>summary{cursor:pointer;color:var(--act);font-weight:650}
.app-body .vd-basis ul{margin:6px 0 0;padding-left:18px;color:var(--text)}
.app-body .vd-more{margin-top:14px}
.app-body .vd-more>.vd-list,.app-body .vd-more>.vd-kvs{margin-top:10px}
.app-body .vd-history .table{font-size:14px}
.app-body .vd-history tr.vd-jump td{background:#FFF8EC}
.app-body .vd-calc{margin-top:14px}
.app-body .vd-calc caption{caption-side:top;text-align:left;font-size:12.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding:6px 0}
.app-body .vd-kvs{display:grid;gap:0;margin:8px 0 0}
.app-body .vd-kv{display:grid;grid-template-columns:minmax(120px,40%) minmax(0,1fr);gap:12px;padding:8px 0;border-top:1px solid var(--line)}
.app-body .vd-kv:first-child{border-top:0}
.app-body .vd-kv dt{color:var(--muted);font-size:13.5px}
.app-body .vd-kv dd{margin:0;font-weight:600;color:var(--ink);display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}
.app-body .vd-kv dd small{flex-basis:100%;font-weight:400;font-size:12px;color:var(--muted)}
.app-body .vd-read .read-doc h4{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.app-body .vd-next h2{margin-bottom:8px}
.app-body .vd-next p{font-size:14.5px;line-height:1.5;color:var(--text)}
.app-body .vd-next .btn{margin-top:10px}
.app-body .vd-next-engage{border-color:var(--act);box-shadow:0 0 0 3px var(--tint)}
.app-body .vd-disclaimer{display:flex;gap:6px;align-items:flex-start}
.app-body .case-draft{border-style:dashed}
@media (max-width:960px){
  .app-body .vd-side{grid-template-columns:1fr}
}
@media (max-width:640px){
  .app-body .vd-money{grid-template-columns:1fr}
  .app-body .vd-m+.vd-m{border-left:0;border-top:1px solid var(--line)}
  .app-body .vd-why,.app-body .vd-basis{margin-left:0}
  .app-body .vd-amount{margin-left:0;flex-basis:100%}
  .app-body .vd-kv{grid-template-columns:1fr;gap:2px}
}
@media (max-width:640px){
  /* Stacked tables on phones: every row becomes a card; no minimum width can push values off screen. */
  .app-body .table-wrap:has(.table.stack-mobile){overflow:visible;border:0;background:transparent}
  .app-body .table.stack-mobile,.app-body .table.stack-mobile tbody{display:block;width:100%;min-width:0!important;max-width:100%}
  .app-body .table.stack-mobile thead{display:none}
  .app-body .table.stack-mobile tr{display:block;width:100%;max-width:100%;border:1px solid var(--line);border-radius:12px;padding:8px 12px;margin:0 0 10px;background:var(--bg)}
  .app-body .table.stack-mobile td{display:flex;justify-content:space-between;align-items:baseline;gap:12px;width:auto;padding:6px 0;border:0;border-top:1px solid var(--line);text-align:right;white-space:normal}
  .app-body .table.stack-mobile td:first-child{border-top:0;font-weight:800;color:var(--ink)}
  .app-body .table.stack-mobile td::before{content:attr(data-label);flex:0 0 auto;text-align:left;font-size:12.5px;font-weight:600;color:var(--muted)}
  .app-body .vd-history .table.stack-mobile td:first-child::before{content:none}
  .app-body .vd-history caption{display:block}
}


/* Business conversion moment + fair self-service path */
.vd-moment {
  padding: clamp(20px, 3vw, 30px);
  border-color: rgba(10,124,102,.22);
  background: linear-gradient(135deg, rgba(10,124,102,.055), rgba(255,255,255,.98));
}
.vd-moment .eyebrow { margin-bottom: 8px; }
.vd-moment h2 { margin: 0; font-size: clamp(1.35rem, 3vw, 2rem); line-height: 1.14; letter-spacing: -.025em; }
.vd-moment p:last-child { margin-bottom: 0; max-width: 72ch; }
.vd-self-guide { border-color: rgba(10,124,102,.28); }
.vd-self-guide ol { display: grid; gap: 10px; padding-left: 1.35rem; }
.vd-self-guide .alert { margin: 14px 0; }


/* Public national predial-cap calculator */
.cap-calc-layout { align-items: start; }
.cap-calc { display: grid; gap: 16px; }
.cap-calc .row-2 { gap: 14px; }
.cap-result { display: none; margin-top: 4px; padding: 18px; border-radius: 14px; border: 1px solid var(--line, #d8e0e3); background: #f7faf9; }
.cap-result.show { display: block; }
.cap-result h3 { margin: 0 0 8px; font-size: 1.08rem; }
.cap-result p { margin: 0 0 12px; }
.cap-result-grid { display: grid; gap: 0; margin: 14px 0; }
.cap-result-grid div { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; border-top: 1px solid rgba(11,43,58,.10); }
.cap-result-grid dt { color: var(--muted, #5c6f76); }
.cap-result-grid dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; }
.cap-result.cap-signal { border-color: rgba(183,121,43,.38); background: rgba(255,241,220,.58); }
.cap-result.cap-ok { border-color: rgba(10,124,102,.30); background: rgba(234,246,242,.72); }
.cap-result.cap-warn { border-color: rgba(143,78,0,.28); background: rgba(255,247,237,.78); }
.page-cap-calculator .list-check li { align-items: flex-start; }
@media (max-width: 720px) {
  .cap-calc .row-2 { grid-template-columns: 1fr; }
  .cap-result-grid div { align-items: baseline; }
}

/* ---------- Result: premium diagnosis (headline, split, charts, timeline, classification, projection, CTA) ---------- */
.vd-hero{position:relative;border-radius:18px;padding:28px 28px 24px;background:linear-gradient(180deg,#0B2B3A 0%,#123646 100%);color:#F3F7F6;box-shadow:0 18px 40px -24px rgba(11,43,58,.55)}
.vd-hero-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin-bottom:10px}
.vd-kind{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.1);color:#CFE9E1}
.vd-hero.is-confirmed .vd-kind{background:#138C73;color:#fff}
.vd-span{font-size:.8rem;color:#A9BDC5}
.vd-hero-title{font-size:clamp(1.6rem,3.6vw,2.35rem);line-height:1.15;margin:.1em 0 .6em;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.vd-statements{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px}
.vd-statements li{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:baseline;font-size:.95rem;color:#E4ECEF;line-height:1.45}
.vd-tag{font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:6px;white-space:nowrap;border:1px solid rgba(255,255,255,.18)}
.vd-tag-fact{background:rgba(255,255,255,.08);color:#fff}.vd-tag-calc{background:rgba(19,140,115,.35);color:#E4F3EB}.vd-tag-cond{background:rgba(217,138,95,.28);color:#FFE4D2}.vd-tag-proj{background:rgba(59,111,196,.35);color:#E1EAFA}.vd-tag-miss{background:rgba(255,255,255,.04);color:#C9D6DB}
.vd-hero-note{display:flex;gap:8px;margin:14px 0 0;font-size:.82rem;color:#A9BDC5}
.vd-hero-cta{margin-top:20px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);display:grid;gap:10px}
.vd-hero-cta .small.muted{color:#A9BDC5}
.vd-fee{margin:0;font-size:.95rem;color:#fff}
.vd-cta{justify-self:start;min-height:48px;gap:8px}
.vd-requested{display:flex;gap:10px;align-items:flex-start;margin:0;padding:12px 14px;border-radius:12px;background:rgba(19,140,115,.18);color:#E4F3EB}
.card .vd-requested{background:var(--ok-soft);color:var(--ink)}
.vd-split{margin:6px 0 4px}
.vd-split-bar{display:flex;gap:2px;height:12px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.08)}
.vd-split-bar span{display:block;min-width:8px}
.vd-split-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 18px;margin:12px 0 0}
.vd-split-legend dt{display:flex;align-items:center;gap:8px;font-size:.8rem;color:#A9BDC5}
.vd-split-legend dd{margin:2px 0 0}
.vd-split-legend dd strong{font-size:1.2rem;color:#fff;display:block}
.vd-split-legend dd small{color:#91A6AF;font-size:.74rem}
.sw{display:inline-block;width:10px;height:10px;border-radius:3px;flex:none}
.vd-charts .vd-fig{margin:0 0 18px}
.vd-fig figcaption{font-size:.9rem;margin-bottom:6px;color:var(--ink)}
.vd-chart{width:100%;overflow:hidden}
.vd-chart-svg{width:100%;height:auto;display:block}
.vd-chart-svg .grid{stroke:#E1E8EB;stroke-width:1}
.vd-chart-svg .ax{font-size:11px;fill:#768A93;font-variant-numeric:tabular-nums}
.vd-chart-svg .lbl{font-size:12px;fill:#0B2B3A;font-weight:700}
.vd-chart-svg .bar:hover{opacity:.85}
.vd-legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 16px;padding:0;margin:6px 0 0;font-size:.8rem;color:#4A5F69}
.vd-legend li{display:flex;align-items:center;gap:6px}
.vd-tl{list-style:none;margin:0;padding:0 0 0 4px;border-left:2px solid var(--line,#E1E8EB)}
.vd-tl li{position:relative;display:grid;grid-template-columns:52px 1fr;gap:10px;padding:8px 0 8px 16px;font-size:.93rem}
.vd-tl li::before{content:"";position:absolute;left:-7px;top:13px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid #91A0A7}
.vd-tl-jump::before{border-color:#C0663A!important;background:#FBE7DC!important}
.vd-tl-diff::before{border-color:#138C73!important;background:#E4F3EB!important}
.vd-tl-ok::before{border-color:#3B6FC4!important}
.vd-tl-said{color:#4A5F69;font-style:italic}
.vd-tl-year{font-weight:700;color:var(--ink)}
.vd-tx+.vd-tx{margin-top:14px;padding-top:14px;border-top:1px solid var(--line,#E1E8EB)}
.vd-econ .d-block{display:block}
.vd-proj-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.vd-proj-grid>div{border:1px solid var(--line,#E1E8EB);border-radius:12px;padding:12px 14px;display:grid;gap:2px}
.vd-proj-grid>div.ok{background:var(--ok-soft,#E4F3EB);border-color:transparent}
.vd-proj-grid span{font-size:.78rem;color:#4A5F69}.vd-proj-grid strong{font-size:1.15rem}.vd-proj-grid small{font-size:.72rem;color:#768A93}
.vd-value{border:1px solid rgba(10,124,102,.25);background:linear-gradient(180deg,#fff,#F3F9F7)}
.vd-value-list{list-style:none;padding:0;margin:0 0 12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px 18px}
.vd-value-list li{display:flex;gap:8px;align-items:flex-start;font-size:.93rem}
.vd-value-list .icon-sm{color:#138C73;flex:none;margin-top:3px}
.vd-sticky{display:none}
@media (max-width:720px){
  .vd-hero{padding:22px 18px 20px;border-radius:14px}
  .vd-statements li{grid-template-columns:1fr;gap:4px}
  .vd-tag{justify-self:start}
  .vd-cta{justify-self:stretch;justify-content:center}
  .vd-sticky{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;gap:12px;align-items:center;justify-content:space-between;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #E1E8EB;box-shadow:0 -8px 24px -16px rgba(11,43,58,.4)}
  .vd-sticky small{display:block;font-size:.7rem;color:#768A93}.vd-sticky strong{font-size:1.05rem}
  .vd-sticky .vd-cta{justify-self:auto;min-height:44px;padding-inline:14px;font-size:.9rem}
  .vd-grid{padding-bottom:84px}
}
.s-liq{background:#C0663A}.s-own{background:#138C73}.s-fav{background:#3B6FC4}
.vd-split-bar span{flex:1 1 0}
.vd-econ td.num,.vd-econ th.num,.vd-econ td:first-child{white-space:nowrap}
.vd-econ td.vd-nature{min-width:180px}
.vd-econ .vd-more summary{font-size:.75rem;cursor:pointer;color:#0A7C66}
.vd-cell{display:inline-flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}
.vd-econ td.vd-nature .vd-cell{align-items:flex-start;text-align:left}
@media (max-width:720px){.vd-econ td.vd-nature .vd-cell{align-items:flex-end;text-align:right}.vd-econ td.vd-nature{min-width:0}}


/* Predialia authentication — premium passwordless client entry */
.auth-login{max-width:460px;margin:0 auto;width:100%}
.auth-brand-pill{display:inline-flex;align-items:center;padding:7px 12px;border:1px solid var(--line,#dfe5e3);border-radius:999px;font-weight:750;letter-spacing:.01em;background:#fff}
.auth-title{margin-top:18px}
.auth-lead{max-width:520px}
.auth-social{margin:24px 0 18px}
.auth-google{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:50px;background:#fff!important;color:#1f1f1f!important;border:1px solid #747775!important;border-radius:12px!important;box-shadow:0 1px 2px rgba(60,64,67,.08)!important;font:600 15px/1.2 Arial,sans-serif!important;letter-spacing:.01em}
.auth-google:hover{background:#f8faff!important;border-color:#6f7275!important;box-shadow:0 1px 3px rgba(60,64,67,.18)!important}
.auth-google:focus-visible{outline:3px solid rgba(66,133,244,.22)!important;outline-offset:2px}
.google-mark{display:grid;place-items:center;width:20px;height:20px;flex:0 0 20px}.google-g{display:block;width:20px;height:20px}
.auth-divider{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin:18px 0}
.auth-divider span{height:1px;background:#e3e8e6}.auth-divider em{font-style:normal;font-size:.82rem;color:#7a8581}
.auth-email-form .field{margin-bottom:12px}.auth-email{min-height:50px}
.auth-code-stage{text-align:center;padding-top:8px}.auth-mail-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;margin:0 auto 14px;background:rgba(10,124,102,.08)}
.auth-code-form{text-align:left}.auth-code{font-size:1.4rem;letter-spacing:.38em;text-align:center;font-variant-numeric:tabular-nums}
.auth-sent{color:var(--text,#17211e);line-height:1.55}.auth-code-actions{display:flex;justify-content:center;gap:10px;align-items:center;margin:14px 0}
.auth-spam{max-width:390px;margin:12px auto 0}.auth-trust{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:18px;font-size:.87rem;color:#60706a}
.auth-legal{text-align:center;margin-top:8px}.email-trust-note{margin-bottom:18px}
@media(max-width:640px){.auth-login{max-width:none}.auth-title{font-size:2rem}.auth-google,.auth-email-btn{width:100%}}


/* Compact diagnostic save/login block after passwordless auth redesign */
.app-body.client-flow .save-box .auth-login{max-width:520px!important;margin:10px 0 0!important}
.app-body.client-flow .save-box .auth-email-form{
  display:grid!important;grid-template-columns:minmax(220px,330px) max-content!important;
  gap:10px!important;align-items:end!important;margin:0!important
}
.app-body.client-flow .save-box .auth-email-form .field{margin:0!important}
.app-body.client-flow .save-box .auth-email-form .hint{display:none!important}
.app-body.client-flow .save-box .auth-email-form .auth-email{height:48px!important;min-height:48px!important}
.app-body.client-flow .save-box .auth-email-form .auth-email-btn{height:48px!important;min-height:48px!important;padding-inline:18px!important}
@media(max-width:640px){
  .app-body.client-flow .save-box .auth-email-form{grid-template-columns:1fr!important;gap:7px!important}
  .app-body.client-flow .save-box .auth-email-form .auth-email-btn{width:100%!important}
}
/* ---------- Result hierarchy: confirmed vs conditional, stage, sticky CTA (desktop and mobile) ---------- */
.vd-stage{margin:0 0 14px;padding:8px 12px;border-radius:10px;font-size:.85rem;line-height:1.4;background:rgba(255,255,255,.07);color:#DCE7EA;border:1px solid rgba(255,255,255,.12)}
.vd-stage-partial strong{color:#FFD9C2}.vd-stage-final strong{color:#BFE8DA}
.vd-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:18px 0 0}
.vd-tier{border-radius:14px;padding:14px 16px;display:grid;gap:3px}
.vd-tier strong{font-size:1.35rem;color:#fff;font-variant-numeric:tabular-nums;line-height:1.2}
.vd-tier small{font-size:.76rem;color:#A9BDC5}
.vd-tier-k{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700}
.vd-tier-a{background:rgba(19,140,115,.22);border:1px solid rgba(19,140,115,.55)}.vd-tier-a .vd-tier-k{color:#BFE8DA}
.vd-tier-b{background:rgba(217,138,95,.12);border:1px dashed rgba(217,138,95,.6)}.vd-tier-b .vd-tier-k{color:#FFD9C2}
.vd-tier-cond{grid-column:1/-1;font-size:.88rem;color:#DCE7EA;line-height:1.5}
.vd-tier-cond p{margin:0 0 8px}.vd-tier-cond strong{color:#fff}
.vd-tier-cond .small.muted{color:#A9BDC5}
.vd-tier-cond .vd-more summary{cursor:pointer;color:#BFE8DA;font-size:.85rem}
.vd-tier-cond .vd-more ul{margin:8px 0 0;padding-left:18px;display:grid;gap:6px}
.vd-sticky.is-hidden{transform:translateY(120%);opacity:0;pointer-events:none}
@media (min-width:721px){
  .vd-sticky{display:flex;position:fixed;right:24px;bottom:24px;left:auto;z-index:40;gap:14px;align-items:center;padding:10px 12px 10px 18px;border-radius:14px;background:#0B2B3A;color:#fff;box-shadow:0 18px 40px -18px rgba(11,43,58,.7);max-width:440px;transition:transform .25s ease,opacity .25s ease}
  .vd-sticky small{display:block;font-size:.7rem;color:#A9BDC5}.vd-sticky strong{font-size:1.05rem;color:#fff}
  .vd-sticky .vd-cta{min-height:40px;padding-inline:14px;font-size:.88rem}
}
@media (max-width:720px){ .vd-sticky{transition:transform .25s ease,opacity .25s ease} }
@media (prefers-reduced-motion:reduce){ .vd-sticky{transition:none} }
/* Economic layers: confirmed today (even $0) and the potential under analysis with its condition next to the figure */
.vd-tier-zero{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.18)}.vd-tier-zero .vd-tier-k{color:#DCE7EA}
.vd-tier-b strong{font-size:1.55rem}
.vd-tier small.vd-tier-subject{font-size:.82rem;color:#FFE6D6;line-height:1.45;margin-top:4px}
.vd-cta-lead{margin:0 0 8px;color:#fff;font-size:.98rem}
/* Predialia: results, service explanation, signing and signed-case welcome. */
.app-body.client-flow .result-flow,.app-body.client-flow .service-flow,.app-body.client-flow .welcome-flow,.app-body.client-flow .engagement-flow{--case-ink:#172F43;--case-muted:#69767E;--case-line:#E3E4DF;--case-paper:#F8F8F4;color:var(--case-ink);padding:34px 28px 64px}
.app-body.client-flow .result-flow .flow-card.wide{max-width:1240px}
.app-body.client-flow .service-flow .flow-card.wide,.app-body.client-flow .welcome-flow .flow-card.wide{max-width:1120px}
.app-body.client-flow .engagement-flow .flow-card.wide{max-width:900px}
.result-flow .vd-grid{display:grid!important;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start;max-width:none;padding-bottom:0}
.result-flow .vd-main{display:grid;gap:22px;min-width:0}
.result-flow .vd-main>*{margin:0}
.result-flow .vd-side{display:grid;gap:14px;grid-template-columns:1fr;grid-column:2;grid-row:1;position:sticky;top:24px;min-width:0;margin:0}
.result-flow .card{background:#fff;border:1px solid var(--case-line);border-radius:16px;box-shadow:0 4px 18px -14px #172F4326;padding:24px}
.result-flow .vd-head{margin:0 0 28px}
.result-flow .vd-head h1{font:500 clamp(2rem,3.2vw,2.8rem)/1.12 'Newsreader',Georgia,serif;letter-spacing:-.03em;max-width:900px}
.result-flow .vd-head .lead{font-size:16px;color:var(--case-muted);max-width:78ch}
.result-flow .vd-hero{background:#fff;color:var(--case-ink);border:1px solid var(--case-line);border-radius:16px;padding:28px;box-shadow:none}
.result-flow .vd-stage{background:var(--case-paper);border-color:var(--case-line);color:var(--case-muted);font-size:12px;padding:10px 12px}
.result-flow .vd-stage strong,.result-flow .vd-tier-cond strong{color:var(--case-ink)}
.result-flow .vd-kind,.result-flow .vd-hero.is-confirmed .vd-kind{background:#EFF3F6;color:#294A64;font-size:10px;border-radius:5px;padding:5px 9px}
.result-flow .vd-span{color:var(--case-muted);font-size:12px}
.result-flow .vd-hero-title{font:500 clamp(1.7rem,2.6vw,2.25rem)/1.16 'Newsreader',Georgia,serif;color:var(--case-ink);letter-spacing:-.025em;margin:18px 0}
.result-flow .vd-tiers{gap:10px}
.result-flow .vd-tier{background:var(--case-paper);border:1px solid var(--case-line);padding:16px;border-radius:10px}
.result-flow .vd-tier-b{background:#F0F3F6;border-color:#DCE4EB}
.result-flow .vd-tier strong{color:var(--case-ink);font-size:1.5rem}
.result-flow .vd-tier .vd-tier-k{color:#536673;font-size:10px}
.result-flow .vd-tier small,.result-flow .vd-tier small.vd-tier-subject,.result-flow .vd-tier-cond,.result-flow .vd-tier-cond .small.muted{color:var(--case-muted)}
.result-flow .vd-tier-cond{font-size:13px}
.result-flow .vd-tier-cond .vd-more summary{color:#294A64}
.result-flow .vd-statements{gap:9px;margin-top:20px}
.result-flow .vd-statements li{font-size:13px;color:#4D606E;line-height:1.5}
.result-flow .vd-tag{border:1px solid #E3E8ED;background:#F4F6F8;color:#526A7B;font-size:9px;border-radius:4px}
.result-flow .vd-hero-note{color:var(--case-muted);font-size:12px}
.result-flow .vd-split-legend dt,.result-flow .vd-split-legend dd small{color:var(--case-muted)}
.result-flow .vd-split-legend dd strong{color:var(--case-ink);font-size:17px}
.result-flow .vd-split-bar{height:7px;margin-top:20px}
.result-flow .vd-value{background:#fff;padding:28px;display:flex;flex-direction:column;gap:0;min-height:0;box-shadow:0 14px 34px -28px #172F434D;border:1px solid #D6DFE5;border-top:3px solid var(--case-ink);border-radius:16px}
.vd-service-mark{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:700;letter-spacing:.14em;color:#557084;margin-bottom:22px}
.result-flow .vd-value h2{font:500 32px/1.08 'Newsreader',Georgia,serif;letter-spacing:-.025em;color:var(--case-ink);margin:0 0 14px;text-transform:none}
.vd-value-intro{font-size:14px;color:var(--case-muted);line-height:1.6;margin:0}
.vd-value-price{display:flex;align-items:center;gap:15px;border-block:1px solid var(--case-line);padding:18px 0;margin:22px 0}
.vd-value-price>strong{font:500 44px/1 'Newsreader',Georgia,serif;letter-spacing:-.04em;color:var(--case-ink)}
.vd-value-price>span{font-size:14px;font-weight:600;line-height:1.5}
.vd-value-price small{display:block;font-size:11px;font-weight:400;color:var(--case-muted)}
.result-flow .vd-value-list{grid-template-columns:1fr;gap:13px;margin:0 0 20px}
.result-flow .vd-value-list li{font-size:13px;line-height:1.45;gap:10px}
.result-flow .vd-value-list .icon-sm{color:#557084;width:15px;height:15px}
.vd-value-fee{font-size:12px;line-height:1.6;color:var(--case-muted);margin:0 0 20px}
.vd-value-fee strong{color:var(--case-ink)}
.vd-value-estimate{display:grid;gap:6px;margin:0 0 20px;font-size:11px;color:var(--case-muted)}
.vd-value-estimate>div{display:flex;gap:10px;justify-content:space-between}
.vd-value-estimate dd{margin:0;font-weight:600;color:var(--case-ink);font-variant-numeric:tabular-nums}
.app-body .result-flow .vd-value .vd-cta,.service-flow .btn-primary,.welcome-flow .btn-primary,.engagement-flow .btn-primary,.engagement-flow .btn-accent{background:var(--case-ink);color:#fff;border-radius:9px;box-shadow:none;min-height:52px;font-size:14px;white-space:normal;line-height:1.35}
.app-body .result-flow .vd-value .vd-cta{width:100%;padding:14px 10px;justify-content:center;margin:0}
.result-flow .vd-value .vd-cta:hover,.service-flow .btn-primary:hover,.welcome-flow .btn-primary:hover,.engagement-flow .btn-primary:hover{background:#294A64;transform:translateY(-1px)}
.vd-value-foot{display:flex;gap:6px;align-items:flex-start;text-align:center;font-size:10px;color:#7B8890;line-height:1.5;margin:12px 0 0}
.vd-value-foot .icon-sm{width:12px;height:12px;flex:none;margin-top:2px}
.vd-value-scope{border-top:1px solid var(--case-line);padding-top:15px;margin:18px 0 0;font-size:11px!important;line-height:1.6}
.result-flow .vd-next{padding:18px 22px;background:#F4F5F1;box-shadow:none;font-size:12px}
.result-flow .vd-next .h-card,.result-flow .property-card .h-card{font-size:13px;letter-spacing:0;text-transform:none}
.result-flow .property-card{font-size:12px;padding:20px 22px}
.result-flow .vd-side>.btn-ghost{font-size:12px;min-height:40px}
.result-flow .vd-kv{font-size:12px}
.result-flow .h-card{font-size:18px;letter-spacing:-.02em;text-transform:none}
.result-flow .vd-main .card{font-size:14px}
.result-flow .vd-next-engage{display:none}
.result-mobile-action{display:none}
.service-progress{display:flex;align-items:center;gap:22px;margin:0 0 46px;font-size:11px}
.service-progress>div{display:flex;align-items:center;gap:9px;color:#8A959D}
.service-progress>div>span{display:grid;place-items:center;width:25px;height:25px;border:1px solid #D6DEE3;border-radius:50%;font-size:10px}
.service-progress b{font-weight:500}
.service-progress .done>span{background:#E9EEF1;border-color:transparent;color:#4C687C}
.service-progress .current{color:var(--case-ink)}
.service-progress .current>span{background:var(--case-ink);border-color:var(--case-ink);color:#fff}
.service-progress .current b{font-weight:700}
.service-flow .eyebrow,.welcome-flow .eyebrow,.engagement-flow .eyebrow{font-size:10px;letter-spacing:.15em;color:#597084}
.service-intro{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:70px;align-items:start;margin-bottom:36px}
.service-flow .conv-hero{text-align:left;margin:14px 0 0;max-width:none}
.service-flow .conv-hero h1{font:500 clamp(2.8rem,5vw,4.2rem)/1.03 'Newsreader',Georgia,serif;letter-spacing:-.035em;color:var(--case-ink);max-width:600px;margin:18px 0 22px}
.service-flow .conv-hero .lead{font-size:17px;line-height:1.65;color:var(--case-muted);max-width:520px;margin:0}
.service-assurance{display:flex;flex-wrap:wrap;gap:12px 20px;font-size:11px;color:#4D687A;margin:27px 0}
.service-assurance span{display:flex;align-items:center;gap:6px}
.service-property{display:flex;gap:10px;align-items:flex-start;font-size:12px;color:#536777;line-height:1.5;padding-top:20px;border-top:1px solid var(--case-line)}
.service-property .icon-sm{flex:none;margin-top:2px}
.service-property small{display:block;font-size:10px;color:var(--case-muted);margin-top:4px}
.service-fee-card{background:#fff;border:1px solid var(--case-line);border-radius:18px;padding:30px;box-shadow:0 16px 40px -30px #172F4333}
.service-zero{font:500 72px/1 'Newsreader',Georgia,serif;letter-spacing:-.05em;padding:18px 0 26px}
.service-zero>span{display:block;font:400 13px/1.5 var(--sans);letter-spacing:0;color:var(--case-muted);margin-top:4px}
.service-fee-rate{border-top:1px solid var(--case-line);padding-top:22px}
.service-fee-rate strong{font-size:24px;letter-spacing:-.035em}
.service-fee-rate p{font-size:13px;line-height:1.6;margin:8px 0 16px;color:var(--case-muted)}
.service-no-result{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:600}
.service-fee-card .small{font-size:11px;margin-bottom:0}
.service-scope{display:flex;gap:14px;background:#EFF2F4;border:1px solid #E0E6EA;border-radius:12px;padding:20px 24px;font-size:13px;line-height:1.6;margin-bottom:44px}
.service-scope>.icon-sm{flex:none;margin-top:3px}
.service-scope p{margin:5px 0 0;color:var(--case-muted)}
.service-process{padding-top:12px;margin-bottom:42px}
.service-section-title h2,.service-terms h2,.service-flow .conv-cta h2{font:500 30px/1.15 'Newsreader',Georgia,serif;letter-spacing:-.025em;color:var(--case-ink);margin-bottom:24px}
.service-flow .conv-grid{gap:18px}
.service-flow .conv-col{background:transparent;border:1px solid var(--case-line);border-radius:12px;padding:24px;box-shadow:none}
.service-number{font:400 27px/1 'Newsreader',Georgia,serif;color:#8A9BA6;display:block;margin-bottom:28px}
.service-flow .conv-col h3{font:600 15px/1.35 var(--sans);text-transform:none;letter-spacing:-.015em;color:var(--case-ink);display:block;margin-bottom:10px}
.service-flow .conv-col p{font-size:13px;line-height:1.65;color:var(--case-muted);margin:0}
.service-terms{display:grid;grid-template-columns:1fr 1.6fr;gap:50px;border-block:1px solid var(--case-line);padding:34px 0}
.service-terms h2{margin-bottom:12px}
.service-terms p{font-size:13px;color:var(--case-muted);line-height:1.6}
.service-term-list{list-style:none;display:grid;gap:15px;padding:0;margin:0;font-size:13px;line-height:1.6;color:#536777}
.service-term-list li{display:flex;gap:12px}
.service-term-list .icon-sm{flex:none;color:#6F889A;margin-top:3px}
.service-estimate{margin-top:30px}
.service-flow .conv-money{margin-top:15px;box-shadow:none;border:1px solid var(--case-line);border-radius:12px;padding:22px;background:#fff}
.service-flow .conv-money .stat span{font-size:12px}
.service-flow .conv-money .stat strong{font-size:23px;color:var(--case-ink)}
.service-flow .conv-cta{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:30px;text-align:left;padding:28px 32px;border-radius:14px;background:#EEF1F2;margin-top:36px}
.service-flow .conv-cta h2{font-size:26px;margin-bottom:10px}
.service-flow .conv-cta p{font-size:12px;margin:0;max-width:49ch;line-height:1.6}
.service-cta-actions{display:grid;gap:7px;flex:none}
.service-flow .btn-quiet,.welcome-flow .btn-quiet{font-size:12px;min-height:34px;padding:6px 12px;color:#597084;background:transparent;white-space:normal}
.welcome-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:64px;align-items:start}
.welcome-context{padding-top:18px}
.welcome-context h1{font:500 48px/1.08 'Newsreader',Georgia,serif;letter-spacing:-.03em;color:var(--case-ink);margin:20px 0}
.welcome-context>p:not(.eyebrow){font-size:15px;color:var(--case-muted);line-height:1.7;max-width:34ch}
.welcome-orbit{width:190px;height:190px;border:1px solid #DCE4EA;border-radius:50%;display:grid;place-items:center;margin:32px auto;position:relative}
.welcome-orbit::before{content:'';position:absolute;inset:20px;border:1px solid #E5EAED;border-radius:50%}
.welcome-orbit-inner{width:100px;height:100px;display:grid;place-items:center;background:#E9EEF2;border-radius:50%;color:#37576E}
.welcome-orbit-inner .icon{width:34px;height:34px;stroke-width:1.25}
.welcome-mini-progress{display:grid;gap:11px;font-size:11px;margin-top:25px;color:#8C989F}
.welcome-mini-progress span{display:flex;gap:9px;align-items:center}
.welcome-mini-progress .done{color:#3F5D72}
.welcome-stage{background:#fff;border:1px solid var(--case-line);border-radius:20px;padding:36px 38px;box-shadow:0 20px 44px -34px #172F4340;min-width:0;animation:case-enter .38s cubic-bezier(.2,.7,.2,1) both}
.welcome-stage h2{font:500 38px/1.1 'Newsreader',Georgia,serif;letter-spacing:-.025em;color:var(--case-ink);margin:15px 0}
.welcome-stage h2:focus{outline:none}
.welcome-lead{font-size:14px;line-height:1.7;color:var(--case-muted);margin-bottom:25px}
.welcome-seal{width:48px;height:48px;background:#EDF2F5;color:#3F637D;border:1px solid #DCE7EE;border-radius:50%;display:grid;place-items:center;margin-bottom:24px;animation:case-seal .5s ease both}
.welcome-receipt{display:grid;border-block:1px solid var(--case-line);padding:6px 0;margin:24px 0}
.welcome-receipt>div{display:flex;gap:12px;padding:12px 0;align-items:center}
.welcome-receipt .icon-sm{color:#6C8291;flex:none}
.welcome-receipt span{display:flex;justify-content:space-between;gap:12px;flex:1;font-size:12px;color:var(--case-muted)}
.welcome-receipt strong{color:var(--case-ink);font-weight:600}
.welcome-attorney{font-size:12px;display:flex;gap:6px;align-items:center;flex-wrap:wrap;color:var(--case-muted);margin-bottom:24px}
.welcome-stage .btn-primary{width:100%;padding:14px 20px}
.welcome-stage .small{font-size:11px;line-height:1.6}
.welcome-channels{padding:0;border:0;margin:25px 0;display:grid;gap:12px}
.welcome-channel{position:relative;display:flex;align-items:center;gap:14px;padding:18px;border:1px solid #DEE4E8;border-radius:12px;cursor:pointer;transition:background .2s,border-color .2s,box-shadow .2s}
.welcome-channel input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.welcome-channel:has(input:focus-visible){outline:3px solid #AEC5D7;outline-offset:3px}
.welcome-channel:hover{background:#F7F9FA;border-color:#B7C9D6}
.welcome-channel.selected{background:#F0F4F7;border-color:#4D708C;box-shadow:0 0 0 1px #4D708C}
.welcome-channel-icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:10px;background:#F3F5F6;color:#5B778C}
.welcome-channel strong{font-size:14px;display:block;margin-bottom:3px}
.welcome-channel small{font-size:11px;line-height:1.5;color:var(--case-muted);display:block}
.welcome-radio{margin-left:auto;flex:none;width:17px;height:17px;border:1px solid #BCCAD3;border-radius:50%}
.welcome-channel.selected .welcome-radio{border:5px solid #345D7B;background:#fff}
.welcome-security-note{display:flex;align-items:flex-start;gap:7px;margin:16px 0 0}
.welcome-security-note .icon-sm{width:13px;height:13px;flex:none;margin-top:2px}
.welcome-method-tag{display:inline-flex;gap:7px;align-items:center;font-size:11px;color:#54738A;background:#EFF3F6;border-radius:6px;padding:7px 10px;margin-bottom:22px}
.welcome-stage .field label{font-size:13px;color:var(--case-ink)}
.welcome-stage .field input{border:1px solid #CFDBE3;border-radius:9px;font-size:17px;min-height:54px;padding:14px}
.welcome-consent{padding:16px 0;font-size:12px;line-height:1.7;align-items:flex-start;margin-bottom:16px;color:#536777}
.welcome-consent input{flex:none;margin-top:4px;accent-color:#294A64}
.welcome-actions{display:grid;gap:10px}
.welcome-contact-confirmed{display:flex;gap:14px;align-items:center;padding:20px;background:#F1F5F7;border:1px solid #DEE7ED;border-radius:12px;margin:25px 0}
.welcome-contact-confirmed .icon{color:#54738A;flex:none}
.welcome-contact-confirmed small{display:block;font-size:10px;color:var(--case-muted);margin-bottom:5px}
.welcome-contact-confirmed strong{font-size:16px;overflow-wrap:anywhere;display:block}
.welcome-next{list-style:none;display:grid;gap:18px;padding:0;margin:25px 0 30px}
.welcome-next li{display:flex;gap:14px;align-items:baseline}
.welcome-next li>span{font-size:10px;color:#7A92A3;flex:none}
.welcome-next strong{font-size:12px}
.welcome-next p{font-size:11px;color:var(--case-muted);margin:4px 0 0;line-height:1.6}
.welcome-links{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:17px;font-size:11px}
.welcome-links>a{display:flex;gap:6px;align-items:center;color:#597084;text-decoration:none}
.engagement-frame{background:#fff;border:1px solid var(--case-line);border-radius:18px;padding:36px 44px;box-shadow:0 16px 34px -30px #172F4333}
.engagement-flow .engagement-progress-copy{color:var(--case-muted);font-size:12px}
.engagement-flow h1{font:500 36px/1.12 'Newsreader',Georgia,serif;color:var(--case-ink);letter-spacing:-.025em;margin-bottom:18px}
.engagement-flow .engagement-stepper .st i{background:#E7EDF1}
.engagement-flow .engagement-stepper .st i b{background:#345D7B}
.engagement-flow .legal-box{background:#F8F9F8;border:1px solid var(--case-line);border-radius:10px;font-size:13px;line-height:1.7}
.engagement-flow .check{font-size:13px;line-height:1.6}
.engagement-flow .slide-up>div>p{font-size:14px;line-height:1.7;color:var(--case-muted)}
.engagement-back{display:block;text-align:center;color:#6B8191;font-size:12px;text-decoration:none;margin-top:22px}
@keyframes case-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes case-seal{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
@media(max-width:960px){
  .result-flow .vd-grid{grid-template-columns:minmax(0,1fr)}
  .result-flow .vd-side{grid-column:auto;grid-row:auto;position:static}
  .result-mobile-action{display:flex;margin-bottom:24px}
  .result-mobile-action .vd-cta{width:100%;background:#172F43;color:#fff;border-radius:9px;font-size:14px}
  .service-intro{gap:32px}
  .welcome-layout{gap:30px;grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr)}
  .welcome-context h1{font-size:38px}
  .welcome-stage{padding:30px}
}
@media(max-width:720px){
  .app-body.client-flow .result-flow,.app-body.client-flow .service-flow,.app-body.client-flow .welcome-flow,.app-body.client-flow .engagement-flow{padding:20px 16px 40px}
  .result-flow .vd-head h1{font-size:32px}
  .result-flow .vd-hero,.result-flow .card{padding:22px 18px}
  .result-flow .vd-statements li{grid-template-columns:1fr;gap:5px}
  .service-progress{gap:0;justify-content:space-between;margin-bottom:30px;font-size:9px}
  .service-progress>div{flex-direction:column;gap:7px}
  .service-progress>div>span{width:23px;height:23px}
  .service-intro{grid-template-columns:1fr;gap:24px}
  .service-flow .conv-hero{margin-top:0}
  .service-flow .conv-hero h1{font-size:44px}
  .service-flow .conv-hero .lead{font-size:15px}
  .service-fee-card{padding:25px}
  .service-zero{font-size:60px;padding:12px 0 20px}
  .service-flow .conv-grid,.service-terms{grid-template-columns:1fr;gap:16px}
  .service-number{margin-bottom:15px;font-size:23px}
  .service-flow .conv-col{padding:22px}
  .service-scope{padding:18px;gap:10px;margin-bottom:30px}
  .service-terms{padding:26px 0}
  .service-section-title h2,.service-terms h2{font-size:28px}
  .service-flow .conv-cta{flex-direction:column;align-items:stretch;padding:24px;gap:20px}
  .service-cta-actions .btn{width:100%}
  .welcome-layout{grid-template-columns:1fr;gap:22px}
  .welcome-context{padding:0}
  .welcome-context h1{font-size:32px;margin:12px 0}
  .welcome-context>p:not(.eyebrow),.welcome-orbit,.welcome-mini-progress{display:none}
  .welcome-context .service-property{padding-top:14px}
  .welcome-stage{padding:26px 22px;border-radius:16px}
  .welcome-stage h2{font-size:32px}
  .welcome-receipt span{flex-direction:column;gap:3px}
  .welcome-channel{padding:15px 13px;gap:10px}
  .welcome-channel-icon{width:34px;height:34px}
  .welcome-links{justify-content:center}
  .engagement-frame{padding:24px 20px}
  .engagement-flow h1{font-size:30px}
}
@media(prefers-reduced-motion:reduce){
  .welcome-stage,.welcome-seal{animation:none}
  .welcome-channel,.service-flow .btn,.welcome-flow .btn,.engagement-flow .btn{transition:none}
}

/* ---- Continuity states (session, missing case, offline, server) ---- */
.state-screen{max-width:560px;margin:clamp(24px,8vh,72px) auto;padding:clamp(24px,4vw,40px);background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);text-align:center;display:grid;gap:12px;justify-items:center}
.state-screen h1{font-family:var(--serif);font-size:var(--fs-2xl);line-height:1.15;margin:4px 0 0;color:var(--ink)}
.state-screen .lead{color:var(--ink-2);max-width:46ch;margin:0}
.state-screen .row{justify-content:center;flex-wrap:wrap;gap:10px;margin-top:8px}
.state-ic{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand)}
.state-ic svg{width:26px;height:26px}
.state-screen[role=alert] .state-ic{background:var(--warn-soft);color:var(--warn)}
/* ---- Known identity (do not re-ask name / phone) ---- */
.known-id{display:flex;align-items:center;gap:12px;padding:12px 14px;margin:8px 0 14px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm)}
.known-id>div{display:grid;gap:2px;min-width:0;flex:1}
.known-id>div span{overflow-wrap:anywhere}
.known-id-ic{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);flex:0 0 auto}
/* ---- Header: way back to the public site ---- */
.hdr-site{color:var(--ink-2)}
/* ---- Upload rows ---- */
.file-live{align-items:flex-start}
.file-live .grow{min-width:0;flex:1}
.file-msg{margin:6px 0 0;color:var(--ink-2)}
.file-live .row{gap:8px;margin-top:6px}
.file-live .row:has(> :not([hidden])){display:flex}
.state-error{background:var(--risk-soft);color:var(--risk)}
.file-state{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:var(--fs-xs);font-weight:600;padding:4px 10px;border-radius:var(--r-pill)}
.spinner.sm{width:12px;height:12px;border-width:2px}
@media (max-width:520px){.file-live .row-between{flex-wrap:wrap;gap:6px}}
.app-body .vd-rules{background:var(--paper);color:var(--ink-2);border:1px dashed var(--line);margin-top:8px}
/* Proposal right after the economic summary on phones (the side panel holds it on desktop). */
.vd-mobile-offer{display:none}
@media(max-width:960px){
  .vd-mobile-offer{display:grid;gap:10px;padding:20px;background:#fff;border:1px solid #D6DFE5;border-top:3px solid var(--case-ink,#172F43);border-radius:16px}
  .vd-mobile-offer-price{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
  .vd-mobile-offer-price strong{font:500 36px/1 'Newsreader',Georgia,serif;color:var(--case-ink,#172F43)}
  .vd-mobile-offer .vd-cta{width:100%;justify-content:center}
  .vd-mobile-offer p{margin:0}
  .result-flow .vd-side .vd-value .vd-cta{display:none}
}
/* Console case inbox: views and pager */
.console-body .chip-row{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 10px}
.console-body .chip.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.console-body .pager{justify-content:flex-end;gap:8px;margin-top:12px}
/* Sidebar «Salir» stayed white-on-white after the console redesign */
.console-body .console-side .me .btn{background:transparent!important;color:#fff!important;border:1px solid rgba(255,255,255,.35)!important;min-width:84px}
.console-body .console-side .me .btn:hover{background:rgba(255,255,255,.1)!important}
/* Home illustration («pueblito») on phones: a taller centred crop of the same drawing (houses, building, palm), visible above
   the trust card instead of a thin 90 px strip. The container clips, so the page never scrolls sideways. */
@media (max-width:767px){
  .hero-land{overflow:hidden;margin-top:4px;height:210px;position:relative}
  .hero-land svg{position:absolute;bottom:0;left:50%;width:auto!important;height:210px!important;max-width:none;margin-left:0!important;transform:translateX(-46%)}
  .hero-c .trust-card{margin-top:-28px}
}
@media (max-width:380px){
  .hero-land,.hero-land svg{height:180px!important}
  .hero-micro{font-size:14px}
}
@media (max-width:380px){.trust-card{padding:16px}.trust-card .trust-i{white-space:normal;font-size:17px;text-align:center}}
/* ---- Retention: temporary diagnostic documents ---- */
.retention-note{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--r-sm);background:var(--paper);border:1px solid var(--line);margin:10px 0 14px}
.retention-note>.icon{margin-top:2px;flex:0 0 auto;color:var(--ink-2)}
.retention-note p{margin:4px 0 0;color:var(--ink-2)}
.retention-note.kept{background:var(--ok-soft);border-color:transparent}
.retention-note.kept>.icon{color:var(--ok)}
.temp-chip{display:inline-flex;align-items:center;gap:4px;margin-top:4px;color:var(--ink-2)}
.state-waiting{background:var(--line-2);color:var(--ink-2)}
.annual-note{padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);margin:0 0 14px}
.annual-note ul{margin:8px 0 0;padding-left:18px;display:grid;gap:6px}
.annual-note li.review{color:var(--warn)}
.annual-note small{display:inline}
/* ---- Service page: what is kept ---- */
.service-keep{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;padding:28px;border:1px solid #D6DFE5;border-radius:16px;background:#fff;margin:24px 0}
.service-keep h2{font:500 28px/1.12 'Newsreader',Georgia,serif;margin:6px 0 10px;color:var(--case-ink,#172F43)}
.keep-list{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px}
.keep-list li{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;background:var(--paper);border-radius:10px}
.keep-list li span{display:grid;gap:2px;min-width:0}
.keep-list li small{overflow-wrap:anywhere}
.keep-consent{align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:10px}
@media(max-width:760px){.service-keep{grid-template-columns:1fr;padding:20px;gap:16px}}
.app-body .vd-rules.confirmed{background:var(--ok-soft);color:var(--ok);border-style:solid;border-color:transparent}
.app-body .vd-rules.confirmed a{color:inherit;text-decoration:underline}
/* ---- Public: direct WhatsApp with a lawyer; NIT never broken ---- */
.hero-c .btn-wa{display:inline-flex;align-items:center;gap:10px;margin-top:4px;background:#fff;color:var(--brand);border:1.5px solid var(--brand);border-radius:var(--r-pill);padding:12px 22px;font-weight:700;text-decoration:none;min-height:48px}
.hero-c .btn-wa:hover{background:var(--brand-soft)}
.hero-c .btn-wa .i{width:20px;height:20px}
.nit{white-space:nowrap;overflow-wrap:normal;word-break:keep-all}
.facts dd{min-width:0;overflow-wrap:anywhere}
.facts dd.nit{overflow-wrap:normal}
.hero-c .btn-wa{max-width:100%;box-sizing:border-box;white-space:normal;text-align:center;justify-content:center}
@media(max-width:520px){.hero-c .btn-wa{width:100%;padding:12px 16px;font-size:15px}}
/* ---- Guides ---- */
.guide-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.guide-list a{display:grid;gap:4px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);text-decoration:none;color:var(--ink)}
.guide-list a:hover{border-color:var(--brand)}
.guide-list span{color:var(--ink-2);font-size:15px}
.guide h2{margin-top:28px}
.guide p{line-height:1.7;color:var(--ink-2);max-width:70ch}
.guide-cta{margin-top:20px}
.guide-cta .row{gap:14px;align-items:center;flex-wrap:wrap}
.guide-cta .btn-wa{display:inline-flex;align-items:center;gap:8px;margin-top:12px;color:var(--brand);font-weight:700}
/* ---- Console: KPIs, filters, grouped view, contact actions ---- */
.console-body .kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:0 0 14px}
.console-body .kpi-tile{display:grid;gap:2px;text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);cursor:pointer;font:inherit;color:var(--ink)}
.console-body .kpi-tile strong{font-size:24px;line-height:1.1}
.console-body .kpi-tile span{font-size:13px;color:var(--ink-2)}
.console-body .kpi-tile.on{border-color:var(--brand);background:var(--brand-soft)}
.console-body .filters-2{flex-wrap:wrap;gap:10px;align-items:flex-end}
.console-body .user-groups{display:grid;gap:12px}
.console-body .user-group{padding:14px}
.console-body .case-contact-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.console-body .btn.danger{color:var(--risk)}

/* ---------- Several receipts / installments of one year (presentation only) ---------- */
.annual-note{padding:18px 20px;border-radius:20px}
.annual-note .h-card{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:1.05rem}
.annual-note ul.year-chips{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.year-chip{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:14px;background:var(--brand-soft);border:1px solid transparent}
.year-chip .grow{min-width:0;flex:1}
.year-chip strong{display:block;font-weight:650;line-height:1.35}
.year-chip p{margin:4px 0 0;line-height:1.45}
.year-chip-dot{width:10px;height:10px;border-radius:50%;margin-top:6px;flex:0 0 auto;background:var(--ok)}
.year-chip.partial{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 25%,transparent)}
.year-chip.partial .year-chip-dot{background:var(--warn)}
.year-chip.review{background:var(--risk-soft);border-color:color-mix(in srgb,var(--risk) 22%,transparent)}
.year-chip.review .year-chip-dot{background:var(--risk)}
.year-chip-go{display:inline-flex;align-items:center;gap:4px;font-weight:600;font-size:.88rem;white-space:nowrap;color:var(--brand);text-decoration:none;align-self:center}
.year-chip-go:hover{text-decoration:underline}
.upload-item{scroll-margin-top:84px}
.upload-item.year-partial{border-color:color-mix(in srgb,var(--warn) 45%,var(--line))}
.upload-item.year-review{border-color:color-mix(in srgb,var(--risk) 40%,var(--line))}
.year-more{margin:12px 0 0 62px;display:grid;gap:10px}
.year-status{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:12px;font-size:.92rem;line-height:1.45}
.year-status.partial{background:var(--warn-soft);color:var(--ink)}
.year-status.partial .icon-sm{color:var(--warn)}
.year-status.review{background:var(--risk-soft)}
.year-status.review .icon-sm{color:var(--risk)}
.year-status.complete{background:var(--ok-soft)}
.year-status.complete .icon-sm{color:var(--ok)}
.year-hint{display:flex;align-items:flex-start;gap:6px;margin:0;line-height:1.45}
.year-more-actions{display:flex;flex-wrap:wrap;gap:8px}
.year-add.btn-quiet{padding-left:0;color:var(--brand);font-weight:600}
.dropzone.compact{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:0}
.dropzone.compact .up-tile{flex-direction:row;align-items:center;gap:12px;padding:12px 14px;min-height:0;text-align:left}
.dropzone.compact .up-tile .ic-tile{width:36px;height:36px;margin:0}
.dropzone.compact .up-tile b{font-size:.95rem;margin:0}
.dropzone.compact .up-tile small{display:none}
@media (max-width:640px){
  .year-more{margin-left:0}
  .year-chip{flex-wrap:wrap}
  .year-chip-go{margin-left:22px}
  .dropzone.compact{grid-template-columns:1fr}
}
/* Files of one requirement as a single calm group (several receipts of a year read as one set). */
.app-body.client-flow .upload-item .files{border:1.5px solid var(--act);border-radius:16px;background:var(--tint);overflow:hidden;padding:0}
.app-body.client-flow .upload-item .files .file-row.up-done{margin:0;border:0;border-radius:0;background:transparent;padding:12px 16px;gap:10px 14px}
.app-body.client-flow .upload-item .files .file-row.up-done+.file-row.up-done{border-top:1px solid color-mix(in srgb,var(--act) 35%,transparent)}
.app-body.client-flow .upload-item .files .row-actions .btn-sm{min-height:32px;padding:6px 8px;font-size:.9rem}
.app-body.client-flow .upload-item .files .thumb{width:40px;height:40px}
@media(max-width:640px){
  .app-body.client-flow .upload-item .files{margin-left:0;margin-right:0}
  .app-body.client-flow .upload-item .files .file-row.up-done{padding:12px}
  .app-body.client-flow .upload-item .files .file-row.up-done>.grow{flex:1 1 calc(100% - 60px)}
  .app-body.client-flow .upload-item .files .file-row.up-done .xs{white-space:normal;overflow:visible}
  .app-body.client-flow .upload-item .files .file-row.up-done>.badge{margin-left:54px}
  .app-body.client-flow .upload-item .files .file-row.up-done .row-actions{width:100%;margin:4px 0 0;justify-content:flex-end;gap:4px}
  .app-body.client-flow .upload-item .files .row-actions .btn-sm{padding:6px 10px}
}

/* =================== Documents step: refined layout (presentation only) =================== */
/* Hero: what to do + progress meter (one segment per necessary document). */
.app-body.client-flow .upload-intro.docs-hero{
  display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:28px;align-items:center;
  padding:26px 28px;margin:0 0 14px;border:0;border-radius:24px;
  background:linear-gradient(135deg,#0B6E5B 0%,#0A7C66 55%,#139477 100%);color:#fff;
  box-shadow:0 18px 40px -24px rgba(7,98,79,.55)
}
.docs-hero .eyebrow{color:rgba(255,255,255,.75);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:700;margin:0 0 6px}
.app-body.client-flow .docs-hero h2{color:#fff;margin:0 0 6px;font-size:clamp(1.5rem,2.4vw,1.9rem);letter-spacing:-.02em}
.app-body.client-flow .docs-hero .muted{color:rgba(255,255,255,.82)!important;margin:0}
.docs-hero-progress{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:18px;padding:14px 16px;display:grid;gap:6px;backdrop-filter:blur(2px)}
.docs-hero-count{display:flex;align-items:baseline;gap:2px;line-height:1}
.docs-hero-count strong{font-size:2.1rem;font-weight:700;letter-spacing:-.03em}
.docs-hero-count span{font-size:1.1rem;opacity:.8}
.app-body.client-flow .docs-hero-progress .muted{color:rgba(255,255,255,.85)!important}
.docs-meter{display:flex;gap:5px;margin-top:4px}
.docs-meter .seg{flex:1;height:7px;border-radius:99px;background:rgba(255,255,255,.25);transition:background .3s}
.docs-meter .seg.on{background:#fff}

/* Temporary-documents note: quiet strip under the hero. */
.app-body.client-flow .retention-note{border-radius:16px;background:#F6FAF8;border:1px solid #DCEBE4;padding:12px 16px}

/* Vigencias: every tax year asked for, with its state. */
.years-strip{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px;padding:10px 14px;border:1px solid var(--line);border-radius:16px;background:#fff}
.years-strip-label{text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.years-strip ol{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.year-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 12px 7px 10px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink);text-decoration:none;font-size:.88rem;transition:border-color .2s,transform .2s}
.year-pill:hover{border-color:var(--brand);transform:translateY(-1px)}
.year-pill b{font-weight:700;letter-spacing:-.01em}
.year-pill span:last-child{color:var(--muted)}
.year-pill-dot{width:9px;height:9px;border-radius:50%;background:#C5D0CC}
.year-pill.complete .year-pill-dot,.year-pill.received .year-pill-dot{background:var(--ok)}
.year-pill.partial .year-pill-dot{background:var(--warn)}
.year-pill.review .year-pill-dot{background:var(--risk)}
.year-pill.partial{border-color:color-mix(in srgb,var(--warn) 40%,var(--line));background:var(--warn-soft)}

/* «Why we ask»: folded by default; the person opens it if curious. */
.app-body.client-flow details.upload-ai-note{padding:0;border-radius:18px;overflow:hidden}
.app-body.client-flow details.upload-ai-note>summary{list-style:none;display:flex;align-items:center;gap:12px;padding:14px 18px;cursor:pointer}
.app-body.client-flow details.upload-ai-note>summary::-webkit-details-marker{display:none}
.app-body.client-flow details.upload-ai-note>summary .ic-tile{width:36px;height:36px}
.app-body.client-flow details.upload-ai-note>summary>.icon-sm{transition:transform .2s;color:var(--muted)}
.app-body.client-flow details.upload-ai-note[open]>summary>.icon-sm{transform:rotate(180deg)}
.app-body.client-flow .upload-ai-body{padding:0 18px 18px 66px}

/* Groups. */
.docs-group-title{margin:26px 0 12px;font-size:1.05rem;letter-spacing:-.01em;display:flex;align-items:baseline;gap:4px;flex-wrap:wrap}
.docs-group-title.optional{margin-top:34px;color:var(--ink-2)}

/* Requirement card: year tile, title, state pill. */
.app-body.client-flow .upload-item{border-radius:22px;padding:22px 24px;transition:border-color .2s,box-shadow .2s}
.app-body.client-flow .upload-item:hover{box-shadow:0 10px 30px -22px rgba(16,40,32,.35)}
.app-body.client-flow .upload-head{grid-template-columns:60px minmax(0,1fr) max-content}
.app-body .req-icon.year-tile{width:60px;height:60px;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;position:relative;background:#F1F5F3;color:var(--ink);border:1px solid #E1E9E5}
.req-icon.year-tile small{font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700;line-height:1.2}
.req-icon.year-tile b{font-size:1.05rem;font-weight:750;letter-spacing:-.02em;line-height:1.1}
.app-body .req-icon.year-tile.done{background:var(--tint);border-color:#BFE3D6}
.app-body .req-icon.year-tile.partial{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 35%,transparent)}
.app-body .req-icon.year-tile.review{background:var(--risk-soft)}
.year-tile-check{position:absolute;right:-6px;top:-6px;width:22px;height:22px;border-radius:50%;background:var(--act);color:#fff;display:grid;place-items:center;box-shadow:0 0 0 3px #fff}
.year-tile-check .icon-sm{width:13px;height:13px}
.year-tile.partial .year-tile-check{background:var(--warn)}
.status-pill{align-self:start;justify-self:end;font-size:.78rem;font-weight:650;padding:5px 11px;border-radius:999px;background:#F1F5F3;color:var(--ink-2);white-space:nowrap}
.status-pill.complete,.status-pill.received{background:var(--ok-soft);color:var(--ok)}
.status-pill.partial{background:var(--warn-soft);color:color-mix(in srgb,var(--warn) 80%,#000)}
.status-pill.review{background:var(--risk-soft);color:var(--risk)}
.status-pill.missing{background:#FFF;border:1px solid var(--line);color:var(--ink)}
.app-body.client-flow .upload-files-ind{margin-left:74px}
.app-body.client-flow .files{margin-left:74px}
.app-body.client-flow .year-more,.app-body.client-flow .uploads-live,.app-body.client-flow .upload-open,.app-body.client-flow .where{margin-left:74px}

/* Upload surface: one calm panel holding both options. */
.app-body.client-flow .upload-item .dropzone.up-tiles:not(.compact){margin:16px 0 0 74px;padding:14px;border:1.5px dashed #CFE1DA;border-radius:18px;background:#FBFDFC;grid-template-columns:1fr 1fr;gap:12px}
.app-body.client-flow .upload-item .dropzone.up-tiles .up-tile{background:#fff;border:1px solid #E3ECE8;border-radius:14px;transition:border-color .2s,box-shadow .2s,transform .2s}
.app-body.client-flow .upload-item .dropzone.up-tiles .up-tile:hover,.app-body.client-flow .upload-item .dropzone.up-tiles .up-tile.over{border-color:var(--act);box-shadow:0 8px 22px -16px rgba(10,124,102,.6);transform:translateY(-1px)}
.drop-hint{grid-column:1/-1;margin:2px 2px 0;display:flex;align-items:center;gap:6px}
.dropzone.compact .drop-hint{display:none}
@media(max-width:720px){
  .app-body.client-flow .upload-intro.docs-hero{grid-template-columns:1fr;padding:22px 20px;gap:16px}
  .app-body.client-flow .upload-head{grid-template-columns:52px minmax(0,1fr)}
  .app-body .req-icon.year-tile{width:52px;height:52px}
  .status-pill{grid-column:2;justify-self:start}
  .app-body.client-flow .upload-item{padding:18px 16px}
  .app-body.client-flow .files,.app-body.client-flow .year-more,.app-body.client-flow .uploads-live,.app-body.client-flow .upload-open,.app-body.client-flow .where{margin-left:0}
  .app-body.client-flow .upload-item .dropzone.up-tiles:not(.compact){margin-left:0;grid-template-columns:1fr}
  .app-body.client-flow .upload-ai-body{padding:0 16px 16px}
}
/* Year tile + state pill win over the older !important layout rules of the requirement header. */
.app-body.client-flow .upload-head{grid-template-columns:60px minmax(0,1fr) max-content!important}
.app-body.client-flow .upload-head>.req-icon.year-tile{position:relative!important;width:60px;height:60px}
.app-body.client-flow .upload-item.done .req-icon.year-tile{background:var(--tint)!important;color:var(--ink)!important;border-color:#BFE3D6}
.app-body.client-flow .upload-item.done .req-icon.year-tile.partial{background:var(--warn-soft)!important}
.app-body.client-flow .upload-item.done .req-icon.year-tile.review{background:var(--risk-soft)!important}
.app-body.client-flow .upload-head>.status-pill{grid-column:3!important;grid-row:1!important}
@media(max-width:720px){
  .app-body.client-flow .upload-head{grid-template-columns:52px minmax(0,1fr)!important}
  .app-body.client-flow .upload-head>.req-icon.year-tile{width:52px;height:52px}
  .app-body.client-flow .upload-head>.status-pill{grid-column:2!important;grid-row:2!important;justify-self:start!important}
}
.year-status-hint{display:block;margin-top:4px;font-size:.84rem;color:var(--ink-2);line-height:1.45}

/* ============ Documents step — editorial layout (scoped to .docs-page; presentation only) ============ */
.docs-flow .flow-card.wide,.app-body .docs-flow .flow-card.wide{max-width:1160px}
.docs-page{--d-line:#E6E9ED;--d-line-2:#EEF0F3;--d-soft:#F7F8FA;--d-muted:#667085;--d-ink:#101828;--d-ink-2:#344054;color:var(--d-ink)}
.docs-page .stepper{margin-bottom:28px}
/* Header: typography only. */
.app-body.client-flow .docs-page .upload-intro.docs-header{display:block;margin:0 0 28px;padding:0;background:none;border:0;box-shadow:none}
.docs-kicker{margin:0 0 8px;font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--brand)}
.app-body.client-flow .docs-page .docs-header h2{font-size:clamp(1.75rem,3vw,2.25rem)!important;font-weight:700;letter-spacing:-.025em;line-height:1.15;margin:0 0 10px;color:var(--d-ink)}
.docs-lede{margin:0;max-width:60ch;font-size:1.02rem;line-height:1.6;color:var(--d-muted)}
/* Two columns: documents + sticky summary. */
.docs-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px;align-items:start}
.docs-main{min-width:0;display:grid;gap:16px}
.docs-main>*{margin-top:0!important;margin-bottom:0!important}
.docs-aside{position:sticky;top:92px}
.docs-summary{background:#fff;border:1px solid var(--d-line);border-radius:16px;padding:22px;box-shadow:0 1px 2px rgba(16,24,40,.04),0 12px 32px -24px rgba(16,24,40,.18);display:grid;gap:14px}
.docs-summary-label{margin:0;font-size:.72rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--d-muted)}
.docs-summary-count{display:flex;align-items:baseline;gap:6px;margin-top:-6px}
.docs-summary-count strong{font-size:2rem;font-weight:700;letter-spacing:-.03em;color:var(--d-ink)}
.docs-summary-count span{color:var(--d-muted);font-size:.95rem}
.docs-progress{height:6px;border-radius:99px;background:var(--d-line-2);overflow:hidden}
.docs-progress span{display:block;height:100%;border-radius:99px;background:var(--brand);transition:width .4s ease}
.docs-summary .years-strip{display:grid;gap:6px;margin:4px 0 0;padding:14px 0 0;border:0;border-top:1px solid var(--d-line-2);border-radius:0;background:none}
.docs-summary .years-strip ol{display:grid;gap:2px;list-style:none;margin:0;padding:0}
.docs-summary .year-pill{display:grid;grid-template-columns:10px auto 1fr 14px;align-items:center;gap:10px;padding:9px 10px;margin:0 -10px;border:0;border-radius:10px;background:none;color:var(--d-ink);text-decoration:none;font-size:.92rem;transform:none}
.docs-summary .year-pill:hover{background:var(--d-soft);transform:none}
.docs-summary .year-pill b{font-weight:600}
.docs-summary .year-pill .year-pill-state{color:var(--d-muted);text-align:right}
.docs-summary .year-pill .icon-sm{color:#98A2B3;width:14px;height:14px}
.docs-summary .year-pill.partial{background:none;border:0}
.docs-summary .year-pill.partial .year-pill-state{color:#B54708}
.docs-summary .year-pill.review .year-pill-state{color:var(--risk)}
.docs-summary .year-pill.complete .year-pill-state,.docs-summary .year-pill.received .year-pill-state{color:#067647}
.docs-summary .year-pill-dot{width:8px;height:8px;border-radius:50%;background:#D0D5DD}
.docs-summary .year-pill.complete .year-pill-dot,.docs-summary .year-pill.received .year-pill-dot{background:#17B26A}
.docs-summary .year-pill.partial .year-pill-dot{background:#F79009}
.docs-summary .year-pill.review .year-pill-dot{background:var(--risk)}
.app-body.client-flow .docs-summary .sticky-actions{position:static!important;margin:0!important;padding:14px 0 0!important;border-top:1px solid var(--d-line-2);background:none;box-shadow:none;display:grid;gap:10px}
.app-body.client-flow .docs-summary .sticky-actions .btn{width:100%;min-width:0;justify-content:center;border-radius:12px}
.docs-summary .sticky-actions p{margin:0;font-size:.8rem;line-height:1.5;color:var(--d-muted);display:flex;gap:6px;align-items:flex-start}
/* Notes: quiet, no boxes competing with the documents. */
.app-body.client-flow .docs-page .retention-note{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:0;border-radius:12px;background:var(--d-soft)}
.app-body.client-flow .docs-page .retention-note strong{font-weight:600;color:var(--d-ink)}
.app-body.client-flow .docs-page .retention-note p{color:var(--d-muted);margin:4px 0 0}
.app-body.client-flow .docs-page details.upload-ai-note{background:#fff;border:1px solid var(--d-line);border-radius:14px}
.app-body.client-flow .docs-page details.upload-ai-note>summary .ic-tile{background:var(--d-soft);border-radius:10px}
.docs-page .annual-note{background:#fff;border:1px solid var(--d-line);border-radius:14px;padding:16px 18px}
.docs-page .annual-note .h-card{font-size:.95rem;font-weight:600}
.docs-page .year-chip,.docs-page .year-chip.partial,.docs-page .year-chip.review{background:var(--d-soft);border:0;border-radius:10px}
/* Section titles. */
.docs-page .docs-group-title{margin:12px 0 -4px!important;font-size:.78rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--d-muted)}
.docs-page .docs-group-title .muted{text-transform:none;letter-spacing:0;font-weight:500}
.docs-page .upload-list{gap:12px}
/* Requirement card. */
.app-body.client-flow .docs-page .upload-item,.app-body.client-flow .docs-page .upload-item.done{background:#fff!important;border:1px solid var(--d-line)!important;border-radius:16px;padding:20px 22px;box-shadow:none;transition:border-color .2s,box-shadow .2s}
.app-body.client-flow .docs-page .upload-item:hover{border-color:#D0D5DD!important;box-shadow:0 8px 24px -20px rgba(16,24,40,.35)}
.app-body.client-flow .docs-page .upload-item.year-partial{border-color:#FEDF89!important}
.app-body.client-flow .docs-page .upload-head{grid-template-columns:48px minmax(0,1fr) max-content!important;column-gap:16px!important}
.app-body.client-flow .docs-page .upload-head>.req-icon,.app-body.client-flow .docs-page .upload-item.done .upload-head>.req-icon{width:48px;height:48px;border-radius:12px;background:var(--d-soft)!important;color:var(--d-ink-2)!important;border:1px solid var(--d-line-2)}
.app-body.client-flow .docs-page .upload-head>.req-icon.year-tile{position:relative!important}
.docs-page .req-icon.year-tile small{font-size:.55rem;color:var(--d-muted)}
.docs-page .req-icon.year-tile b{font-size:.95rem;color:var(--d-ink)}
.docs-page .year-tile-check{width:18px;height:18px;right:-5px;top:-5px;background:#17B26A;box-shadow:0 0 0 2px #fff}
.docs-page .year-tile.partial .year-tile-check{background:#F79009}
.docs-page .upload-head strong{font-size:1rem;font-weight:600;color:var(--d-ink)}
.docs-page .upload-head .grow>p{color:var(--d-muted)!important}
.docs-page .upload-head .serves{color:var(--d-muted)!important;opacity:.9}
.docs-page .upload-head .serves .icon-sm{color:#98A2B3}
.docs-page .upload-head .row .badge{background:transparent!important;color:var(--d-muted)!important;border:1px solid var(--d-line);font-weight:600;font-size:.7rem;letter-spacing:.02em}
.docs-page .status-pill{display:inline-flex;align-items:center;gap:6px;background:transparent!important;border:1px solid var(--d-line)!important;color:var(--d-ink-2)!important;font-weight:600;font-size:.78rem;padding:4px 10px}
.docs-page .status-pill::before{content:'';width:7px;height:7px;border-radius:50%;background:#D0D5DD}
.docs-page .status-pill.complete::before,.docs-page .status-pill.received::before{background:#17B26A}
.docs-page .status-pill.partial::before{background:#F79009}
.docs-page .status-pill.review::before{background:var(--risk)}
.docs-page .where summary{color:var(--brand);font-weight:500}
/* Files: a clean list, not a coloured box. */
.app-body.client-flow .docs-page .upload-item .files{border:1px solid var(--d-line-2)!important;background:#fff!important;border-radius:12px}
.app-body.client-flow .docs-page .upload-item .files .file-row.up-done+.file-row.up-done{border-top:1px solid var(--d-line-2)!important}
.docs-page .file-row .thumb{background:var(--d-soft);border:1px solid var(--d-line-2)}
.docs-page .file-row .fname{font-weight:600;color:var(--d-ink)}
.docs-page .file-row .badge{background:#ECFDF3!important;color:#067647!important}
.docs-page .temp-chip{color:var(--d-muted)!important;font-weight:500}
.docs-page .row-actions .btn{color:var(--d-ink-2)}
.docs-page .row-actions .btn.danger{color:#B42318}
/* Year status: hairline callout. */
.docs-page .year-status{border-radius:10px;font-size:.9rem}
.docs-page .year-status.partial{background:#FFFAEB}
.docs-page .year-status.complete{background:#F6FEF9}
.docs-page .year-add.btn-primary{border-radius:10px}
/* Upload surface. */
.app-body.client-flow .docs-page .upload-item .dropzone.up-tiles:not(.compact){border:1.5px dashed #D0D5DD;background:var(--d-soft);border-radius:14px;padding:12px}
.app-body.client-flow .docs-page .upload-item .dropzone.up-tiles .up-tile{border:1px solid var(--d-line);border-radius:12px;box-shadow:0 1px 2px rgba(16,24,40,.05)}
.app-body.client-flow .docs-page .upload-item .dropzone.up-tiles .up-tile .ic-tile{background:var(--d-soft);color:var(--d-ink-2);border-radius:10px}
.app-body.client-flow .docs-page .upload-item .dropzone.up-tiles .up-tile:hover{border-color:var(--brand)}
.docs-page .drop-hint{color:var(--d-muted)!important}
.docs-page .upload-open{border-radius:10px}
.docs-page .other-years .upload-item{background:var(--d-soft)!important;border-style:dashed!important}
/* Small screens: one column; summary first; the action stays reachable at the bottom. */
@media(max-width:960px){
  .docs-layout{grid-template-columns:1fr;gap:20px}
  .docs-aside{position:static;order:-1}
  .app-body.client-flow .docs-summary .sticky-actions{position:fixed!important;left:0;right:0;bottom:0;z-index:30;padding:12px 16px calc(12px + env(safe-area-inset-bottom))!important;background:rgba(255,255,255,.96)!important;backdrop-filter:blur(8px);border-top:1px solid var(--d-line)!important;box-shadow:0 -8px 24px -18px rgba(16,24,40,.35)}
  .app-body.client-flow .docs-summary .sticky-actions p{display:none}
  .docs-page{padding-bottom:96px}
}
@media(max-width:720px){
  .app-body.client-flow .docs-page .upload-item,.app-body.client-flow .docs-page .upload-item.done{padding:16px}
  .app-body.client-flow .docs-page .upload-head{grid-template-columns:44px minmax(0,1fr)!important}
  .app-body.client-flow .docs-page .upload-head>.req-icon{width:44px;height:44px}
  /* Phone only: keep the missing-documents action inside the summary instead of floating over the page. */
  .app-body.client-flow .docs-summary .sticky-actions{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;z-index:auto;padding:14px 0 0!important;background:none!important;backdrop-filter:none;border-top:1px solid var(--d-line-2)!important;box-shadow:none}
  .docs-page{padding-bottom:0}
}
/* Importance labels: hairline tags (they win over the older filled-badge rules). */
.app-body.client-flow .docs-page .upload-item .upload-head .badge,.app-body.client-flow .docs-page .upload-item .upload-head .badge-brand{background:transparent!important;color:var(--d-muted)!important;border:1px solid var(--d-line)!important;font-weight:600;font-size:.7rem;letter-spacing:.02em;padding:2px 8px}
.app-body.client-flow .docs-page .upload-item.required .upload-head .badge-brand{color:var(--brand)!important;border-color:color-mix(in srgb,var(--brand) 30%,transparent)!important}
.app-body.client-flow .docs-summary .sticky-actions .btn{font-size:.95rem;white-space:nowrap;padding-left:14px;padding-right:14px}
.app-body.client-flow .docs-page .upload-item.optional .upload-head .badge:not(.badge-ok):not(.badge-brand),.app-body.client-flow .docs-page .upload-item.recommended .upload-head .badge:not(.badge-ok):not(.badge-brand){background:transparent!important;color:var(--d-muted)!important;border:1px solid var(--d-line)!important}

/* Potencial máximo de reducción (result header): the ceiling, its cause and its condition — editorial, hairline, no fill. */
.vd-peak{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);margin:22px 0 18px;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);max-width:900px}
.vd-peak-fig,.vd-peak-cause{padding:20px 0 22px}
.vd-peak-fig{padding-right:28px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:6px}
.vd-peak-cause{padding-left:28px}
.vd-peak-k{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.vd-peak-num{font:500 clamp(2rem,3.5vw,2.9rem)/1.04 'Newsreader',Georgia,serif;letter-spacing:-.035em;color:var(--brand-2);margin:6px 0 2px;overflow-wrap:anywhere}
.vd-peak-num small{font:500 .42em/1 'Newsreader',Georgia,serif;letter-spacing:0;color:var(--ink);margin-right:.25em;vertical-align:.55em}
.vd-peak-sub{font-size:14px;line-height:1.45;color:var(--ink-2)}
.vd-peak-state{margin-top:6px;font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:7px}
.vd-peak-state::before{content:"";width:7px;height:7px;border-radius:50%;border:1.5px solid var(--accent);flex:0 0 auto}
.vd-peak.is-confirmed .vd-peak-state::before{border-color:var(--ok);background:var(--ok)}
.vd-peak-title{font:500 1.35rem/1.25 'Newsreader',Georgia,serif;letter-spacing:-.015em;color:var(--ink);margin:8px 0 6px}
.vd-peak-text{font-size:14.5px;line-height:1.55;color:var(--ink-2);margin:0 0 10px}
.vd-peak-cond{font-size:13.5px;line-height:1.5;color:var(--ink-2);margin:0 0 8px;padding-left:12px;border-left:2px solid var(--accent)}
.vd-peak-cond strong{color:var(--ink);font-weight:650}
.vd-peak-basis{font-size:12px;color:var(--muted);margin:0;letter-spacing:.01em}
@media (max-width:760px){
  .vd-peak{grid-template-columns:1fr}
  .vd-peak-fig{padding-right:0;border-right:0;border-bottom:1px solid var(--line);padding-bottom:18px}
  .vd-peak-cause{padding-left:0;padding-top:16px}
}

/* «No lo tengo» on a requested document, and the options when there is nothing to analyse. */
.docs-page .miss-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0 2px}
.docs-page .miss-row p{margin:0;flex:1 1 280px;color:var(--ink-2);display:flex;gap:6px;align-items:flex-start}
.docs-page .miss-row.is-missing{padding:10px 12px;border-left:2px solid var(--line-2);background:var(--sand)}
.docs-page .miss-toggle{background:none;border:0;padding:0;color:var(--brand-2);font:inherit;font-size:13.5px;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.docs-page .miss-toggle:hover{color:var(--ink)}
.docs-page .upload-item .status-pill.declared{color:var(--muted);border-color:var(--line)}
.docs-page .no-docs-options{border-top:1px solid var(--ink);padding:14px 0 4px;margin-bottom:12px;font-size:14px;line-height:1.5}
.docs-page .no-docs-options ol{padding-left:18px;margin:10px 0 0;display:grid;gap:12px}
.vd-stuck .vd-stuck-options{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:14px}
.vd-stuck .vd-stuck-options>div{border-top:1px solid var(--line);padding-top:12px}
.vd-stuck .vd-stuck-options .btn{margin-top:8px}
@media (max-width:640px){.vd-stuck .vd-stuck-options{grid-template-columns:1fr}}

/* =====================================================================================================================
   Editorial pass for the registered-user interface and the questions — the same language as the result page:
   Newsreader serif for titles, hairlines instead of fills and shadows, an ink rule to open what matters, quiet small-caps
   labels, outlined status pills and ink primary actions. Scoped to body.client-portal / body.client-flow only.
   ===================================================================================================================== */
body.client-portal,body.client-flow{background:#fff}
body.client-portal .app-page,body.client-flow .flow{background:transparent}

/* Titles */
body.client-portal .app-page h1,body.client-portal .case-title,body.client-flow .q-title,body.client-flow .flow-card>h1,body.client-flow .flow-card .slide-up>h1{font-family:'Newsreader',Georgia,serif!important;font-weight:500!important;letter-spacing:-.03em!important;color:var(--ink)}
body.client-portal .app-page h1,body.client-portal .case-title{font-size:clamp(2rem,3.4vw,2.75rem)!important;line-height:1.08!important}
body.client-flow .q-title{font-size:clamp(1.85rem,3.1vw,2.45rem)!important;line-height:1.1!important;margin:10px 0 12px!important;max-width:22ch}
body.client-portal .h-card,body.client-portal .card h2,body.client-portal .card>h3,body.client-flow .flow-card h2{font-family:'Newsreader',Georgia,serif!important;font-weight:500!important;letter-spacing:-.015em!important;color:var(--ink)}
body.client-portal .h-card,body.client-portal .card h2{font-size:1.4rem!important}
body.client-portal .case-card h3{font-family:'Newsreader',Georgia,serif;font-weight:500;font-size:1.45rem;letter-spacing:-.015em;line-height:1.2;margin:18px 0 8px}

/* Quiet labels */
body.client-portal .eyebrow,body.client-flow .eyebrow,body.client-flow .docs-kicker{color:var(--muted)!important;font-size:11px!important;font-weight:700!important;letter-spacing:.14em!important;text-transform:uppercase}
body.client-flow .pchip{background:none!important;border:0!important;padding:0!important;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;gap:6px}
body.client-flow .pchip .icon{display:none}

/* Cards: hairline, no fill, no shadow */
body.client-portal .card{box-shadow:none!important;border:1px solid var(--line)!important;background:#fff!important;border-radius:14px!important}
body.client-portal .card-link{transition:border-color .15s ease}
body.client-portal .card-link:hover{border-color:var(--ink)!important;transform:none!important;box-shadow:none!important}
body.client-portal .case-ico,body.client-portal .mini-icon,body.client-portal .status-icon{background:none!important;border:1px solid var(--line);color:var(--ink-2)!important}
body.client-portal .case-card .next{color:var(--ink)!important;font-weight:600;border-top:1px solid var(--line);padding-top:12px;margin-top:14px}

/* Case home: an open, left-aligned head with an ink rule (no tinted panel) */
body.client-portal .case-top{background:none!important;text-align:left!important;padding:4px 0 22px!important;margin:0 0 26px!important;border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important}
body.client-portal .case-top p{text-align:left!important}
body.client-portal .status-card{border-top:1px solid var(--ink)!important;border-top-left-radius:0!important;border-top-right-radius:0!important}
body.client-portal .status-card::before{display:none!important}
body.client-portal .status-card h2,body.client-portal .status-card h3{font-family:'Newsreader',Georgia,serif!important;font-weight:500!important;letter-spacing:-.02em!important;font-size:1.6rem!important}
body.client-portal .calm-note{background:none!important;border:0!important;border-left:2px solid var(--line-2)!important;border-radius:0!important;padding:8px 12px!important}
body.client-portal .mini-card{padding:18px 20px!important}
body.client-portal .mini-card strong{font-family:'Newsreader',Georgia,serif;font-weight:500;font-size:1.15rem;letter-spacing:-.01em}
body.client-portal .timeline .tl-mark{box-shadow:none!important}

/* Notices: a quiet rule instead of a coloured box */
body.client-portal .alert,body.client-portal .alert-box{background:none!important;border:0!important;border-left:2px solid var(--line-2)!important;border-radius:0!important;box-shadow:none!important;padding:8px 14px!important}
body.client-portal .alert.alert-warn,body.client-portal .alert-box.warn{border-left-color:var(--accent)!important}

/* Status pills: outlined */
body.client-portal .badge:not(.badge-solid){background:transparent!important;border:1px solid var(--line-2)!important;color:var(--ink-2)!important;font-weight:600}
body.client-portal .badge.badge-ok{border-color:#9cc9b8!important;color:var(--ok)!important}
body.client-portal .badge.badge-warn{border-color:#e7c39a!important;color:var(--warn)!important}

/* Primary actions in ink (the result page's main action) */
body.client-portal .btn-primary,body.client-flow .btn-primary{background:var(--ink)!important;border-color:var(--ink)!important;color:#fff!important;box-shadow:none!important}
body.client-portal .btn-primary:hover,body.client-flow .btn-primary:hover{background:var(--ink-2)!important;border-color:var(--ink-2)!important}
body.client-portal .btn-secondary,body.client-portal .btn-ghost{box-shadow:none!important}

/* Tabs of a case: text with an ink underline */
body.client-portal .tabs{border-bottom:1px solid var(--line);gap:22px;background:none!important}
body.client-portal .tabs a{background:none!important;border:0!important;border-radius:0!important;padding:10px 0!important;color:var(--muted);font-weight:600;border-bottom:2px solid transparent!important}
body.client-portal .tabs a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--ink)!important}

/* Questions: answers as an editorial list (hairline rows, an ink rule above), progress as a thin rule */
body.client-flow .flow-top{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:6px}
body.client-flow .flow-top .muted{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
body.client-flow .progress{height:2px!important;background:var(--line)!important;border-radius:0!important;margin:0 0 26px!important}
body.client-flow .progress>span{background:var(--ink)!important;border-radius:0!important}
body.client-flow .q-help{color:var(--ink-2)!important;font-size:15.5px!important;line-height:1.6!important;max-width:58ch}
body.client-flow .choices{gap:0!important;border-top:1px solid var(--ink);margin-top:22px}
body.client-flow .choice.opt{border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;background:none!important;box-shadow:none!important;padding:18px 6px!important;min-height:0!important;transition:padding .15s ease,background .15s ease}
body.client-flow .choice.opt>span:nth-child(2){font-size:17px;font-weight:500;color:var(--ink)}
body.client-flow .choice.opt .oi{background:none!important;border:1px solid var(--line-2);border-radius:50%!important;width:22px!important;height:22px!important;min-width:22px}
body.client-flow .choice.opt .oi svg{opacity:0}
body.client-flow .choice.opt:hover{background:var(--sand)!important;padding-left:14px!important}
body.client-flow .choice.opt[aria-checked="true"]{background:var(--sand)!important}
body.client-flow .choice.opt[aria-checked="true"] .oi{border-color:var(--ink);background:var(--ink)!important}
body.client-flow .choice.opt[aria-checked="true"] .oi svg{opacity:1;color:#fff}
body.client-flow .choice.opt .ar{color:var(--muted)}
body.client-flow .saved-indicator{color:var(--muted)!important;font-size:12px}
@media (max-width:640px){body.client-flow .choice.opt{padding:16px 2px!important}body.client-flow .choice.opt:hover{padding-left:6px!important}}
html body.client-portal,html body.client-flow{background:#fff!important}
body.client-portal .case-top>*{text-align:left!important;margin-left:0!important;margin-right:0!important}
body.client-portal .status-card{border-radius:14px!important}
body.client-portal .btn-ghost,body.client-portal .btn-secondary{border:1px solid var(--line-2)!important;background:#fff!important}
body.client-portal .btn-ghost:hover,body.client-portal .btn-secondary:hover{border-color:var(--ink)!important}
/* The reference stylesheet makes .case-top a centred grid tile; on the client portal it is a left-aligned editorial header. */
body.client-portal .case-top{display:block!important;height:auto!important;place-items:initial!important}
body.client-portal .tabs{display:flex!important;flex-wrap:nowrap;gap:24px!important;overflow-x:auto}
body.client-portal .tabs a{flex:none!important;white-space:nowrap}
/* Documents step and messages, in the same editorial language: hairlines, no fills, no shadows. */
html body.client-flow .retention-note:not(.kept),html body.client-portal .retention-note:not(.kept){background:none!important;border:0!important;border-left:2px solid var(--ink)!important;border-radius:0!important;padding:4px 0 4px 16px!important}
html body.client-flow .dropzone.up-tiles,html body.client-portal .dropzone.up-tiles{background:none!important;border:0!important;padding:0!important}
html body.client-flow .up-tile.upload-choice,html body.client-portal .up-tile.upload-choice{box-shadow:none!important;border:1px solid var(--line)!important;border-radius:14px!important;background:#fff!important}
html body.client-flow .up-tile.upload-choice:hover,html body.client-flow .up-tile.upload-choice:focus-within,html body.client-flow .up-tile.upload-choice.over{border-color:var(--ink)!important}
html body.client-flow .up-tile.upload-choice .ic-tile{background:none!important;border:1px solid var(--line)!important;color:var(--ink)!important}
html body.client-flow .upload-open,html body.client-flow .deferred-evidence,html body.client-flow .docs-summary,html body.client-portal .upload-open,html body.client-portal .deferred-evidence{box-shadow:none!important}
html body.client-flow .docs-summary{border:1px solid var(--line)!important;border-top:2px solid var(--ink)!important;border-radius:14px!important}
html body.client-flow .docs-progress{height:2px!important;background:var(--line)!important}
html body.client-flow .docs-progress>*{background:var(--ink)!important}
html body.client-portal textarea,html body.client-flow textarea{font-family:inherit!important;font-size:15px;border:1px solid var(--line-2)!important;border-radius:12px!important;padding:12px 14px!important}
html body.client-flow .btn-secondary.upload-open{border:1px solid var(--line-2)!important;background:#fff!important}
html body.client-flow .btn-secondary.upload-open:hover{border-color:var(--ink)!important}


/* ---------- Visual QA: mobile tap targets on documents, conversion and case views ---------- */
@media(max-width:640px){
  .app-body .miss-toggle{
    min-height:44px;display:inline-flex;align-items:center;padding:10px 2px
  }
  .app-body.client-portal .file-row .row-actions .btn-sm,
  .app-body.client-portal .file-row .row-actions label.btn-sm{
    min-height:44px;display:inline-flex;align-items:center
  }
  .app-body .service-cta-actions .btn{
    min-height:44px;display:inline-flex;align-items:center;justify-content:center
  }
  .console-body .chip-row .chip{
    min-height:44px;padding:10px 13px
  }
}


/* ---------- Visual QA closure: keep the hire sidebar following the verdict on desktop; 44px file actions ---------- */
html body.client-flow .result-flow .vd-side{
  position:sticky!important;top:24px!important
}
@media(max-width:960px){
  html body.client-flow .result-flow .vd-side{
    position:static!important;top:auto!important
  }
}
@media(max-width:640px){
  html body .file-row.up-done .row-actions .btn-sm,
  html body .file-row.up-done .row-actions label.btn-sm{
    min-height:44px!important;height:auto!important;box-sizing:border-box!important;
    padding-top:10px!important;padding-bottom:10px!important;
    display:inline-flex!important;align-items:center!important;justify-content:center!important
  }
}
