/* Shared usability layer. Page-specific layout belongs in pages/, homepage in home.css.
   Loaded after the legacy theme; preserve semantic success/error and payment colors. */
:root{--ui-radius:12px;--ui-focus:#168cb1}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:88px}
body{line-height:1.5}
input,select,textarea,button{font:inherit}
input,select,textarea{max-width:100%}
a,button,input,select,textarea,summary,[tabindex]{-webkit-tap-highlight-color:transparent}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--ui-focus)!important;outline-offset:3px}
.btn{white-space:normal;text-align:center;line-height:1.35;box-shadow:none!important;text-shadow:none!important;clip-path:none!important;border-radius:8px!important}
.btn::before,.btn::after{pointer-events:none}
:where(.card,.list-item,.ro-section,.customer-estimate,.customer-ro,.panel,.admin-main,.portal-main){min-width:0}
:where(.card,.ro-section,.customer-estimate,.customer-ro) :where(p,small,.meta){overflow-wrap:anywhere}
:where(.card,.ro-section,.customer-estimate,.customer-ro) :where(h2,h3){line-height:1.25}
.admin-saas .card,.admin-saas .ro-section,.admin-saas .ro-hero,.admin-saas .ro-workspace,.portal-app-shell .card{box-shadow:none!important;border-radius:var(--ui-radius)!important}
.admin-saas .eyebrow,.portal-app-shell .eyebrow{letter-spacing:.06em!important;text-shadow:none!important}
.admin-side-nav .tab,.portal-side-nav .tab{min-height:44px!important;text-transform:none!important;letter-spacing:normal!important}
.portal-side-nav .tab strong{font-size:1rem!important}
.portal-side-nav .tab small{font-size:.8125rem!important;line-height:1.4!important}
.portal-app-shell .document-flow{gap:0;border:1px solid var(--nr-line);border-radius:10px;overflow:hidden}
.portal-app-shell .document-step{border:0!important;border-radius:0!important;box-shadow:none!important}
.portal-app-shell .document-step+.document-step{border-left:1px solid var(--nr-line)!important}
.policy-section,.policy-card{scroll-margin-top:90px}
.policy-section p,.policy-card p,.policy-list li{font-size:1rem!important;line-height:1.7!important}
.policy-card{max-width:100%}
.policy-jump{gap:8px!important}
.policy-jump a{min-height:44px;display:inline-flex;align-items:center;font-size:.875rem!important}
.skip-link{position:fixed;top:8px;left:16px;z-index:9999;background:#fff;color:#101820;padding:12px 18px;border-radius:8px;transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}
@media(max-width:700px){
  input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important;min-height:44px}
  .btn{min-height:44px}
  .form-row{min-width:0}
  .form-row>*{min-width:0}
  .policy-section,.policy-card{padding:20px!important}
  .policy-section h2,.policy-card h2{font-size:1.4rem!important}
  .policy-jump{display:flex!important;flex-wrap:wrap!important}
  .policy-jump a{white-space:normal}
  .fee-row{gap:14px!important}
  .fee-row>div:first-child{min-width:0}
  .fee-price{flex-shrink:0}
  .portal-app-shell .document-step{padding:12px!important}
  .portal-app-shell .document-step strong{font-size:.875rem!important}
  .portal-app-shell .document-step small{font-size:.8125rem!important}
  .portal-app-shell .document-step:nth-child(3){border-left:0!important}
  .portal-app-shell .document-step:nth-child(n+3){border-top:1px solid var(--nr-line)!important}
  .ro-financial-summary,.ro-price-summary{width:100%;min-width:0}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

.portal-app-shell .document-step span{font-size:.8125rem!important;line-height:1.5!important}
