/* Office app finish, 2 October 2026.
   This file is deliberately linked only by app/index.html. Client consent,
   signature ink, PDF geometry and stored outputs keep their existing styles.
   Keep row lists flat; depth belongs to the panel that holds the work. */

#main a.btn,#sheet a.btn,#main a.doc,#main a.dealcard,
#main .backlink,#sheet .backlink{text-decoration:none}
#main .btn,#sheet .btn{border-radius:var(--radius-btn);
  text-align:center;max-width:100%;min-height:var(--tap);
  transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s}
#main .btn.sm,#sheet .btn.sm{min-height:var(--tap)}
#main .btn:not(.ghost):not(.danger):not(.is-armed):not(:disabled):not([aria-disabled="true"]),
#sheet .btn:not(.ghost):not(.danger):not(.is-armed):not(:disabled):not([aria-disabled="true"]){
  box-shadow:0 2px 4px rgba(37,44,41,.10)}
#main .btn.ghost:not(.is-armed),#sheet .btn.ghost:not(.is-armed){box-shadow:none}
#main .btn:disabled,#sheet .btn:disabled{box-shadow:none}
:where(#main,#sheet) :where(a,button,summary,[role=button]):focus-visible{
  outline:2px solid var(--copper);outline-offset:2px}
/* Copper is not readable against forest. The inverse card keeps the same
   light focus signal as the primary navigation. */
#main .initial-offer-card :focus-visible{outline-color:var(--copper-light)}
#main .grid2{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:14px}
#main .grid2>.field,#sheet .grid2>.field{margin-bottom:0;min-width:0}
#sheet .grid2{row-gap:14px}
#main .pagehead,#main .top{gap:12px 20px}
#main h1{line-height:1.15;overflow-wrap:anywhere}
#main .fieldset>h3:not(.eyebrow){font:400 21px/1.25 var(--serif);
  text-transform:none;letter-spacing:-.01em;color:var(--charcoal);margin:0 0 16px}
#main .documents-heading h2,#main .next-step-primary h2,#main .next-step-support h2,
#main .contacts-workspace h2,#main .document-work h2{
  font-family:var(--serif);font-weight:400;letter-spacing:-.01em}

/* Consistent raised surfaces. Nested document rows and existing inset plates
   do not gain a second shadow. The execution edge keeps its original meaning. */
#main .dealcard,#main .contacts-card,#main .document-work-main,#main .trr-card,
#main .prepare-native-card,#main .next-step-primary,#main .documents-filed .document-group,
#main .documents-add__body{border-radius:var(--radius-lg);box-shadow:var(--shadow-panel)}
#main .dealcard .price{font-family:var(--sans);font-size:16px;white-space:nowrap}
#main .dealcard .addr{font-weight:400;line-height:1.25;overflow-wrap:anywhere}
#main .metaline{gap:6px 12px;line-height:1.5}
#main .pathway-card,#main .next-step-support,#main .next-step-summary .designated,
#main .next-step-history{background:var(--white)}
#main .document-list-details>.doccard:not([data-doc-highlight]){box-shadow:none}
#main .next-step-primary{border-top:1px solid var(--border)}
#main .next-step-primary--complete{border-left:3px solid var(--good)}

/* The header has a layout boundary instead of making every file tab repeat
   a tall stack of panels. Both folds keep their actual details elements. */
#main .file-header{position:relative;min-width:0;margin-bottom:14px}
#main .file-header>.backlink{margin-bottom:12px;max-width:calc(100% - 152px)}
#main .file-header>.property-switcher{max-width:none;margin:0;background:transparent;border:0}
#main .file-header>.property-switcher>summary{position:absolute;right:0;top:0;
  display:flex;align-items:center;gap:8px;padding:8px 12px;min-height:var(--tap);
  border:1px solid var(--border);border-radius:var(--radius-btn);
  background:var(--white);color:var(--mid);font-size:12px;font-weight:500;list-style:none}
#main .file-header>.property-switcher>summary::-webkit-details-marker{display:none}
#main .file-header>.property-switcher>summary::after{content:'+';font-size:16px}
#main .file-header>.property-switcher[open]>summary::after{content:'−'}
#main .file-header .property-switcher__body{padding:16px;margin:0 0 16px;
  border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--white)}
#main .file-header>.pagehead{margin-bottom:14px}
#main .file-header h1{margin:0 0 8px}
#main .file-header .filepeople{max-width:none;background:transparent;border:0;
  border-top:1px solid var(--border);border-bottom:1px solid var(--border);border-radius:0}
#main .file-header .filepeople>summary{padding:6px 0;border-radius:0}
#main .file-header .filepeople__body{padding:4px 0 14px}
#main .file-header .filepeople__people>.filepeople__row{background:var(--white)}
#main .file-header .stagerail{margin:12px 0 0}
#main .seg{box-shadow:0 1px 2px rgba(37,44,41,.04)}
#main .seg button{min-height:var(--tap)}

/* Workspace fields must not fall back to native browser chrome. Exclude all
   non-text controls, especially the real file input and the signing map. */
/* Zero-specificity defaults fill gaps in native fields. Deliberate long-answer,
   invalid, disabled and template styles must always win over these defaults. */
:where(#main .document-work-main,#sheet .counterpick)
:where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=button]):not([type=submit]),select,textarea){
  min-height:var(--field);max-width:100%;width:100%;padding:12px 13px;
  border:1px solid var(--field-border);border-radius:var(--radius-field);
  background:var(--cream);color:var(--charcoal);font:400 16px/1.4 var(--sans)}
#main .document-work input[hidden]{display:none}
#main .document-work-main :where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),select){
  min-height:var(--field)}
#sheet .counterpick input:not([type=checkbox]):not([type=radio]){
  height:auto;min-height:var(--field);width:100%;flex:1 1 auto;min-width:0}
:where(#main .document-work-main,#sheet .counterpick)
:where(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea):focus{
  border-color:var(--copper);outline:2px solid var(--copper);outline-offset:0;background:var(--white)}
/* Focus must not erase a named validation problem. The copper keyboard
   outline and the existing red error shadow each keep their own meaning. */
#main .document-work-main .field--problem :is(input,select,textarea),
#main .document-work-main :is(input,select,textarea)[aria-invalid="true"],
#sheet .counterpick .field--problem input{border-color:var(--warn)}
#main .document-work h2{font-size:24px;line-height:1.2}
#main .document-work-selected{border-radius:var(--radius-lg)}
#main .document-work-selected summary{font-size:16px}
#main .document-work-main .document-work-choice{transition:border-color .15s,box-shadow .15s;background:var(--white)}
#main .document-work-choice:hover{border-color:var(--copper)}
#main .document-work-choice:has(input:checked){border-color:var(--forest);
  background:rgba(41,60,52,.04);box-shadow:inset 0 0 0 1px var(--forest)}
#main .document-work-choice:has(input:disabled){opacity:1;background:var(--cream);border-style:dashed}
#main .document-work header{gap:12px;margin-bottom:20px}
#main .document-work-state{font-size:12px;padding:6px 10px;border-radius:99px;background:var(--white)}
#main .document-work-steps{margin-bottom:20px}
#main .document-work-steps li{padding:10px 8px;border-bottom-width:2px}
#main .document-work-upload-start{background:var(--cream);border-radius:var(--radius);padding:20px}
#main .document-work-footer{padding:10px 12px;gap:10px;box-shadow:var(--shadow-bar)}
#main .document-work-footer>div{flex-wrap:wrap}
#main .document-work-footer>.btn{min-height:var(--field)}
#main .document-work-add>summary,#main .document-work-packet-options>summary,
#main .document-work-catalogue-more>details>summary,#main .document-work-earlier>summary,
#main .document-work-selected>details>summary,#main .fieldset summary:not([class]){
  display:flex;align-items:center;gap:10px;list-style:none;min-height:var(--tap);
  padding:12px 0;font-size:15px;font-weight:500;text-transform:none;letter-spacing:normal}
#main .document-work-add>summary::-webkit-details-marker,
#main .document-work-packet-options>summary::-webkit-details-marker,
#main .document-work-catalogue-more>details>summary::-webkit-details-marker,
#main .document-work-earlier>summary::-webkit-details-marker,
#main .document-work-selected>details>summary::-webkit-details-marker,
#main .fieldset summary:not([class])::-webkit-details-marker{display:none}
#main .document-work-add>summary::after,#main .document-work-packet-options>summary::after,
#main .document-work-catalogue-more>details>summary::after,#main .document-work-earlier>summary::after,
#main .document-work-selected>details>summary::after,#main .fieldset summary:not([class])::after{
  content:'+';margin-left:auto;font-size:20px;font-weight:400}
#main .document-work-add[open]>summary::after,#main .document-work-packet-options[open]>summary::after,
#main .document-work-catalogue-more>details[open]>summary::after,#main .document-work-earlier[open]>summary::after,
#main .document-work-selected>details[open]>summary::after,#main .fieldset details[open]>summary:not([class])::after{
  content:'−'}
#main details.fieldset[open]>summary:not([class])::after{content:'−'}
#main .offerquestions__section>summary::before{display:none}
#main .offerquestions__section>summary::after{content:'+';font-size:20px;font-weight:400}
#main .offerquestions__section[open]>summary::after{content:'−'}
#main .offerquestions__section>summary{font-size:16px;gap:12px}

/* CTO estimate rows stay intact. Only the surrounding cards adopt the same
   finish as the other workspaces; no amount, payer or PDF layout changes. */
#sheet .buyer-estimate-card,#sheet .seller-calc-result-card{
  border-radius:var(--radius-lg);box-shadow:var(--shadow-panel)}
#sheet .buyer-estimate-cards{grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr))}
#sheet>.close{box-shadow:var(--shadow-float)}

@media(max-width:860px){
  .tabbar{box-shadow:0 2px 6px rgba(37,44,41,.12)}
  .mobile-menu-toggle{border-color:rgba(250,248,243,.5)}
  .mobile-nav-links{box-shadow:var(--shadow-panel)}
  #main .file-header{margin-bottom:10px}
  #main .file-header>.pagehead{margin-bottom:10px}
  #main .file-header .stagerail__step{min-width:0}
  #main .file-header .stagerail__link,#main .file-header .stagerail__inert{min-width:var(--tap)}
  /* Every dot keeps a visible name as well as its full accessible label.
     Wrapping happens within each equal column, never across the page. */
  #main .file-header .stagerail__label{position:static;max-width:100%;overflow-wrap:normal}
  /* The current name stays outside every rung's tap target. Never lay this
     label over a different stage just to shorten the header. */
  #main .file-header .stagerail__now{margin:2px 0 0;font-size:12px}
  #main .file-header .stagerail{margin:10px 0 0}
  #main .document-work-main,#main .contacts-card,#main .trr-card{padding:18px}
}
@media(max-width:560px){
  #main .grid2{grid-template-columns:minmax(0,1fr)}
  #main .document-work h1{font-size:36px;line-height:1.1}
  #main .dealcard .row1{gap:6px 12px}
  #main .dealcard .addr{font-size:23px}
  #main .document-work-footer{gap:8px;align-items:stretch}
  #main .document-work-footer>div{flex:1 1 120px;align-items:stretch}
  #main .document-work-footer>div>.btn{flex:1 1 auto}
  #main .document-work-footer>.btn{flex:1 1 180px}
}
@media(max-width:420px){
  #main .file-header>.backlink{max-width:calc(100% - 140px);font-size:11px;letter-spacing:.03em}
  #main .file-header>.property-switcher>summary{padding:8px 10px}
  #main .file-header .metaline{font-size:12px;gap:5px 10px}
  #main .file-header .filepeople__title{font-size:13px}
  #main .documents-heading h2{font-size:28px}
  #main .documents-filed .document-group{padding:16px 12px}
  #main .document-work-main,#main .contacts-card,#main .trr-card{padding:16px}
  #main .document-work-steps li{padding:8px 4px}
  #main .document-work-footer{padding:10px}
  #main .document-work-footer>div.document-work-footer-secondary--multiple{
    flex-basis:100%;flex-wrap:nowrap}
  #main .document-work-footer>div.document-work-footer-secondary--multiple>.btn{
    min-width:0;padding:8px;font-size:13px;white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){
  #main .btn,#sheet .btn,#main .dealcard,#main .document-work-choice{transition:none}
  #main .dealcard:hover{transform:none}
}
