/* Documents 1.9.0 — mobile variant 02. Existing desktop rules stay in styles.css. */
.mobile-only{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.mobile-ready[hidden],[data-mobile-panel][hidden],.mobile-quarter[hidden]{display:none!important}
.doc-choice-copy{min-width:0}
.optional-fields{margin:18px 0}.optional-fields summary{cursor:pointer;padding:14px 0;font-weight:650}.optional-fields>div{padding-top:12px}
.passport-number-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.client-address-card{grid-column:1/-1}
.mobile-help{font-size:14px;color:var(--muted);line-height:1.5}
.mobile-field-error{color:#ae3041;font-size:13px;line-height:1.45;display:block;margin:6px 0 0;grid-column:2}
@media(max-width:720px){
 :root{--red:#146953;--red-soft:#e8f2ed;--ink:#182b26;--muted:#65766e;--line:#dce5df;--bg:#f3f7f4;--blue-soft:#eaf3ee;--shadow:none;--mobile-pad:20px;--action-height:92px}
 html{width:100%;height:100%;overflow:hidden;scrollbar-gutter:auto}
 body{width:100%;max-width:100%;height:100dvh;min-height:0;padding:0;position:fixed;inset:0;overflow:hidden;display:flex;flex-direction:column;background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;-webkit-text-size-adjust:100%;color:var(--ink)}
 .mobile-only{display:block!important}
 [hidden]{display:none!important}
 .topbar{height:auto;min-height:64px;flex:0 0 auto;padding:calc(12px + env(safe-area-inset-top)) var(--mobile-pad) 12px;gap:12px;border:0;background:var(--bg);box-shadow:none;position:relative;z-index:25}
 .brand{min-width:0;gap:10px}.brand strong{font-size:21px;line-height:1.2;letter-spacing:-.5px}.brand small{display:none}.brand-icon{flex-shrink:0;width:29px;height:34px;font-size:22px;border:0;background:none;border-radius:0;color:var(--red)}
 .top-actions{min-width:0;flex-shrink:0;gap:12px;align-items:center}.top-actions>a[href="/drafts"]{font-size:12px!important;color:var(--muted);line-height:1.4}.user-avatar{width:34px;height:34px;background:white;color:var(--red);box-shadow:none}.user-menu summary{padding:0}.user-name,.guest-badge{display:none}.guest-exit{min-height:40px;color:var(--muted)}
 .top-actions .install-link{display:none!important}.user-menu-panel{left:16px;right:16px;top:calc(64px + env(safe-area-inset-top));width:auto;max-height:calc(100dvh - 105px);overflow-y:auto;border-color:var(--line);border-radius:18px}.user-menu-panel a{min-height:48px;display:flex;align-items:center}
 .page-shell{flex:1 1 auto;min-height:0;min-width:0;width:100%;max-width:100%;overflow-y:auto;overflow-x:hidden;padding:16px var(--mobile-pad) calc(var(--action-height) + 30px + env(safe-area-inset-bottom));margin:0;overscroll-behavior:contain;scroll-padding-block:22px;scroll-behavior:auto}
 .footer{display:none}.page-shell>*{min-width:0;max-width:100%}
 /* Fix the intrinsic grid width; do not just clip overflowing cards. */
 .selection-layout,.form-layout,.client-layout,.work-layout,.income-layout,.review-layout,.client-cards{display:grid;grid-template-columns:minmax(0,1fr)!important;min-width:0;width:100%;max-width:100%;gap:20px}
 #selectionForm,.main-form,.selection-layout>div,.document-grid,.two-cards,.form-card,.review-card,.side-card,.review-section{min-width:0;max-width:100%}
 .compact-doc-grid{display:grid;grid-template-columns:minmax(0,1fr)!important;gap:14px}
 .document-choice,.document-choice.selected{width:100%;min-width:0;min-height:94px!important;padding:18px 14px!important;grid-template-columns:36px minmax(0,1fr) 22px!important;gap:12px;border:1px solid var(--line)!important;border-radius:16px!important;background:#fff;box-shadow:none;transform:none}
 .document-choice.selected{border-color:var(--red)!important;background:#fff}.document-choice.mandatory{padding-bottom:18px!important}.document-choice h2{font-size:16px!important;line-height:1.3!important;overflow-wrap:anywhere;word-break:normal;font-weight:650;letter-spacing:-.15px}
 .doc-choice-icon{width:34px!important;height:40px!important;background:var(--red-soft);color:var(--red);border-radius:9px!important;font-size:22px!important}.doc-choice-mark{width:22px;height:22px;font-size:13px;border-width:1px;border-radius:6px}.document-choice.selected .doc-choice-mark{background:var(--red);border-color:var(--red);box-shadow:none}
 .doc-choice-description{font-size:12px;line-height:1.45;color:var(--muted);margin-top:9px;overflow-wrap:anywhere}.document-choice:focus-within{outline:3px solid #91bcae;outline-offset:3px}
 .selection-layout .side-card,.next-title,.dynamic-flow,.stepper{display:none!important}
 .selection-next{font-size:13px;line-height:1.5;color:var(--muted);margin:28px 0 0}
 .hero,.hero.compact{margin:25px 0 27px}.hero h1{font-size:29px;line-height:1.18;letter-spacing:-.7px;color:#173e33;margin:0 0 12px;overflow-wrap:anywhere}.hero p{font-size:15px;line-height:1.5;color:var(--muted);max-width:38em}
 .mobile-stage{margin:2px 0 0}.mobile-stage-label{font-size:13px;line-height:1.5;font-weight:650;color:var(--red);margin:0 0 13px}
 .mobile-stage-bars{display:flex;min-width:0;width:100%;list-style:none;padding:0;margin:0;gap:5px}.mobile-stage-bars li{flex:1 1 0;min-width:0;height:4px;background:#dce7e1;border-radius:5px}.mobile-stage-bars .done,.mobile-stage-bars .active{background:var(--red)}
 .form-card,.review-card{padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}.form-card h2,.review-card h2{font-size:25px;line-height:1.2;letter-spacing:-.5px;color:#173e33;margin:0 0 25px;font-weight:650;outline:none}
 .form-card label,.label-block{display:flex;flex-direction:column;align-items:stretch;gap:9px;font-size:13px;font-weight:600;color:var(--muted);line-height:1.4;margin:0 0 22px;min-width:0}.form-card label em{display:inline;font-style:normal;color:var(--muted)}
 .form-card input,.form-card textarea,.form-card select,.auth-form input,.draft-search input{font-family:inherit;font-size:16px;font-weight:400;line-height:1.45;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:16px 14px;min-height:56px;width:100%;max-width:100%;min-width:0;box-shadow:none;transition:border-color .15s}
 .form-card textarea{min-height:110px;resize:vertical}.form-card input:focus,.form-card textarea:focus,.form-card select:focus,.auth-form input:focus{outline:2px solid #83b3a1;outline-offset:1px;border-color:var(--red);box-shadow:none}
 .form-card input[aria-invalid="true"],.form-card textarea[aria-invalid="true"]{border-color:#ae3041;background:#fffafa}.mobile-field-error{color:#ae3041;font-weight:400;margin:0;grid-column:auto}
 .form-card .suggest-field{width:100%;min-width:0}.two-col-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}.passport-number-row{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:14px}
 .optional-fields{margin:8px 0 16px;border:0;border-bottom:1px solid var(--line)}.optional-fields summary{list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:52px;color:var(--red);font-size:15px;font-weight:650;padding:14px 0}.optional-fields summary::-webkit-details-marker{display:none}.optional-fields summary:after{content:'+';font-size:23px;font-weight:400}.optional-fields[open] summary:after{content:'−'}.optional-fields>div{padding:12px 0 0}
 .mobile-help{font-weight:400;font-size:14px;line-height:1.55;margin:14px 0 22px;color:var(--muted)}
 .mobile-client-summary{background:#e8f2ed;border-radius:16px;padding:20px;margin-top:28px;overflow-wrap:anywhere}.mobile-client-summary span{display:block;color:var(--muted);font-size:13px;margin-bottom:9px}.mobile-client-summary strong{font-size:18px;font-weight:600}.mobile-client-summary p{font-size:13px;color:var(--muted);line-height:1.5;margin:14px 0 0}
 .mobile-enhanced .client-hero{display:none}.mobile-enhanced .client-layout{margin-top:26px}.mobile-enhanced .client-layout>.side-card,.mobile-enhanced .work-layout>.side-card,.mobile-enhanced .income-layout>.side-card{display:none}.mobile-enhanced .work-layout>.mobile-substeps{order:-1}.mobile-enhanced .work-layout{margin-top:26px}.mobile-enhanced .work-layout .form-card{order:0}
 .mobile-substeps{display:flex!important;gap:6px;min-width:0;width:100%;margin:0 0 6px}.mobile-substeps button{font:inherit;font-size:12px;min-height:44px;flex:1 1 0;min-width:0;padding:8px 3px;border:0;border-radius:12px;background:transparent;color:var(--muted);line-height:1.3;overflow-wrap:anywhere;cursor:pointer}.mobile-substeps button[aria-current="step"]{background:var(--red-soft);color:var(--red);font-weight:700}.mobile-substeps:empty{display:none!important}
 .btn,.btn.primary,.btn.ghost{font-family:inherit;font-size:16px;line-height:1.35;font-weight:650;border-radius:13px;min-height:52px;box-shadow:none!important;min-width:0;white-space:normal;overflow-wrap:anywhere;transform:none!important}
 .btn.primary,.selection-actions .btn.primary{background:var(--red)!important;border-color:var(--red)!important;color:#fff}.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.full{display:flex;align-items:center;justify-content:center;margin-top:14px;text-align:center}.btn:focus-visible{outline:3px solid #83b3a1;outline-offset:2px}
 .mobile-actions,#selectionForm>.actions,.client-layout>.actions,.work-layout>.actions,.income-layout>.actions{display:flex!important;position:fixed!important;left:0!important;right:0!important;bottom:0!important;width:100%;max-width:100%;z-index:40;margin:0!important;padding:12px var(--mobile-pad) calc(12px + env(safe-area-inset-bottom))!important;background:#fff!important;border-top:1px solid var(--line);box-shadow:none!important;gap:10px;align-items:center;flex-wrap:wrap}
 .mobile-actions .btn.ghost{flex:0 0 auto;min-width:70px;padding:14px 12px}.mobile-actions .btn.primary{flex:1 1 0;min-width:0;padding:15px 12px}.selection-actions>a[href="/drafts"]{display:none}.mobile-release-actions .btn{margin:0}
 .keyboard-open .mobile-actions{display:none!important}.keyboard-open .page-shell{padding-bottom:calc(var(--keyboard-height,0px) + 24px);overscroll-behavior:none}.mobile-keyboard-tools{display:flex!important;align-items:center;justify-content:space-between;gap:4px;position:fixed;left:0;right:0;z-index:42;background:#fff;border-top:1px solid var(--line);padding:0 14px;height:46px}.mobile-keyboard-tools button{font:inherit;font-size:14px;color:var(--red);background:none;border:0;min-height:44px;padding:10px 6px}.mobile-keyboard-tools button:disabled{color:#9ca8a2}
 .radio-row{gap:18px}.radio-row label,.check-row{font-size:15px!important;min-height:44px;font-weight:400!important}.radio-row input,.check-row input{width:22px!important;min-height:22px;height:22px;flex:0 0 auto;accent-color:var(--red)}
 .passport-ocr{border:0;background:var(--red-soft);border-radius:16px;padding:16px;margin:0 0 24px}.passport-ocr-head strong{color:var(--red);font-size:16px}.passport-ocr-head span{font-size:13px;line-height:1.45}.passport-ocr-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.passport-ocr-actions .btn{font-size:14px;min-height:48px;padding:12px 6px}.passport-ocr-status:empty{display:none}.passport-ocr-result{overflow-wrap:anywhere}.ocr-raw pre{font-size:12px}.suggest-menu{max-width:calc(100% - 24px);border-color:var(--line);box-shadow:0 6px 30px #173e3329;z-index:100}.suggest-item{font-size:15px;min-height:52px}
 .mobile-enhanced .income-layout .form-card>h2{font-size:24px}.income-layout .quick-actions{display:flex;gap:8px}.income-layout .quick-actions .btn{flex:1 1 100%;font-size:14px;min-height:48px}.income-layout .quick-actions #pasteIncome{order:-1;background:var(--red-soft);color:var(--red);border:0}.income-layout .quick-actions #clearIncome{flex-basis:30%;color:var(--muted)}.income-layout .quick-actions #sameIncome{flex-basis:60%}.income-layout .meta-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin:20px 0 28px}
 .mobile-quarter-tabs{display:flex!important;gap:8px;margin:8px 0 24px}.mobile-quarter-tabs button{flex:1 1 0;min-width:0;min-height:46px;border:1px solid var(--line);background:white;border-radius:12px;font:inherit;color:var(--muted)}.mobile-quarter-tabs button[aria-current="step"]{background:var(--red);border-color:var(--red);color:#fff;font-weight:650}.mobile-quarter-tabs:empty{display:none!important}
 .mobile-enhanced .month-grid{display:block}.mobile-quarter>label{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);align-items:center;gap:12px;margin-bottom:16px!important;font-size:15px;color:var(--ink)}.mobile-quarter .money-input{min-width:0}.mobile-quarter .money-input input{padding-right:32px!important;text-align:left}.mobile-quarter .money-input span{top:18px}.mobile-income-summary{font-size:14px;line-height:1.65;color:var(--muted);margin:8px 0 4px}.income-random-box{margin:12px 0 24px}.income-random-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .review-layout{gap:24px}.review-section{position:relative;background:white;border:1px solid var(--line);border-radius:16px;padding:20px;margin:0 0 16px}.review-section h3{margin:0 85px 20px 0;font-size:18px;line-height:1.4}.review-section>a{right:15px;top:12px;min-height:44px;display:flex;align-items:center;color:var(--red)}.review-section dl{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;margin:0}.review-section dt{font-size:12px;color:var(--muted);margin-top:13px}.review-section dt:first-child{margin-top:0}.review-section dd{font-size:16px;line-height:1.5;overflow-wrap:anywhere;min-width:0}
 .release-card{background:transparent;border:0;padding:0;box-shadow:none}.release-card h2{font-size:21px;letter-spacing:-.3px;margin:0 0 18px}.release-item{background:var(--red-soft)!important;border:0!important;border-radius:13px;padding:16px;font-size:15px}.release-item span{font-size:12px;color:var(--muted);line-height:1.5;margin-top:7px}.mobile-enhanced .release-card .share-block,.mobile-enhanced .release-card .download-form,.mobile-enhanced .desktop-review-actions{display:none!important}
 .mobile-pdf-status{font-size:13px;line-height:1.5;margin:0;width:100%;color:#ae3041;overflow-wrap:anywhere}.mobile-pdf-status:empty{display:none}.mobile-ready{padding:40px 0 0;text-align:center}.ready-mark{display:grid;place-items:center;width:76px;height:76px;margin:auto auto 25px;background:var(--red-soft);color:var(--red);font-size:32px;border-radius:50%}.mobile-ready h1{font-size:30px;letter-spacing:-.6px;color:#173e33;margin:0 0 14px;outline:none}.ready-name{font-size:16px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere;margin:0 0 32px}.ready-preview{display:block;padding:22px;background:#fff;border:1px solid var(--line);border-radius:16px;text-align:left}.ready-preview strong{display:block;font-size:18px;line-height:1.45}.ready-preview span{display:block;color:var(--muted);font-size:13px;margin:10px 0 23px}.ready-preview b{display:block;padding-top:17px;border-top:1px solid var(--line);color:var(--red);font-size:15px}.ready-preview+.btn{margin-top:26px}.text-button{font:inherit;font-size:14px;line-height:1.5;min-height:48px;color:var(--red);background:transparent;border:0;padding:14px 8px;cursor:pointer}.ready-links{display:grid;gap:5px;margin-top:24px}.ready-links>a{font-size:14px;color:var(--muted);min-height:48px;padding:14px}.mobile-ready #mobileReadyStatus{font-size:13px;line-height:1.5;color:var(--muted)}
 .mobile-pdf-ready .page-shell>.hero,.mobile-pdf-ready .page-shell>.mobile-stage,.mobile-pdf-ready [data-mobile-review],.mobile-pdf-ready .mobile-release-actions{display:none!important}.mobile-pdf-ready .page-shell{padding-bottom:35px}
 .draft-search{font-size:13px;color:var(--muted);margin:0 0 15px}.draft-search input{margin-top:10px}.drafts-table{padding:0;background:transparent;border:0;box-shadow:none}.drafts-table table,.drafts-table tbody{display:block;width:100%;min-width:0}.drafts-table thead{display:none}.drafts-table tr{display:flex;flex-direction:column;gap:9px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:14px;width:100%;min-width:0}.drafts-table td{display:block;border:0!important;padding:0;font-size:13px;line-height:1.5;color:var(--muted);min-width:0;overflow-wrap:anywhere}.drafts-table td.draft-id{display:none}.drafts-table td.draft-client{font-size:18px;font-weight:650;color:var(--ink)}.drafts-table td.draft-open{margin-top:6px}.draft-open .btn{display:inline-flex;align-items:center;min-height:44px;font-size:14px;border:0;color:var(--red);background:var(--red-soft);padding:10px 16px}
 .auth-shell{padding-top:26px;padding-bottom:32px}.auth-card{padding:16px 0;background:transparent;border:0;box-shadow:none;border-radius:0;max-width:100%}.auth-card h1{font-size:29px;color:#173e33;line-height:1.2;letter-spacing:-.7px}.auth-card p{font-size:15px;line-height:1.55}.auth-mark{background:var(--red-soft);color:var(--red);box-shadow:none}.auth-form label{font-size:13px;color:var(--muted);font-weight:600}.pin-form .pin-input{font-size:26px}.auth-note{background:transparent;padding:14px 0;color:var(--muted);font-size:13px;line-height:1.5}.auth-alert{font-size:14px}.admin-login-link a{display:inline-flex;align-items:center;min-height:48px;color:var(--red)}
 .settings-grid,.admin-users-layout{min-width:0;grid-template-columns:minmax(0,1fr)}.settings-stack .form-card{background:#fff;padding:18px;border-radius:16px}.settings-title-row{gap:10px}.install-panel{max-width:100%;border-radius:22px 22px 0 0}.install-panel h2{font-size:23px}.install-panel p{font-size:14px}
}
@media(max-width:360px){:root{--mobile-pad:16px}.brand strong{font-size:19px}.top-actions{gap:8px}.hero h1{font-size:27px}.document-choice,.document-choice.selected{gap:10px;padding:16px 12px!important;grid-template-columns:30px minmax(0,1fr) 22px!important}.doc-choice-icon{width:30px!important}.document-choice h2{font-size:15px!important}.mobile-substeps button{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:720px){
 .form-card label{display:block}
 .form-card label>input,.form-card label>textarea,.form-card label>select,.form-card label>.suggest-field{display:block;margin-top:9px}
 .form-card label>em{display:inline}
 .radio-row label,.form-card label.check-row{display:flex!important;flex-direction:row;align-items:center;gap:9px}
 .radio-row label>input,.form-card label.check-row>input{display:inline-block;margin:0}
 .mobile-quarter>label{display:grid!important}
 .mobile-quarter>label>span{display:block}
 .mobile-quarter .mobile-field-error{grid-column:1/-1}
 .mobile-ready:not([hidden]){display:block}
 .mobile-keyboard-tools[hidden]{display:none!important}
}
@media(min-width:721px){
 .mobile-ready{display:none!important}
 .mobile-quarter{display:contents}
 .mobile-keyboard-tools{display:none!important}
}

/* 1.9.1: suggestions take part in the form flow, including registration address. */
@media(max-width:720px){
 .form-card .suggest-field .suggest-menu{
  position:relative;inset:auto;left:auto;right:auto;top:auto;bottom:auto;
  width:100%;max-width:100%;margin:10px 0 0;
  max-height:clamp(110px,36dvh,220px);
  overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;
  border:1px solid var(--line);border-radius:12px;padding:4px;
  box-shadow:none;z-index:auto;
 }
 .form-card .suggest-item{padding:11px 10px;min-height:48px;white-space:normal;overflow-wrap:anywhere}
 .form-card .suggest-item strong{font-size:14px;line-height:1.4;font-weight:500}
 .form-card .suggest-item span{font-size:12px;line-height:1.4}
 .form-card .suggest-message{font-size:12px;padding:10px;line-height:1.4}
 .form-card [data-suggest]{scroll-margin-top:18px}
 .mobile-keyboard-tools{display:none!important}
 .keyboard-open .page-shell{padding-bottom:calc(var(--keyboard-height,0px) + 24px)}
}


/* 1.9.3: suggestions stay in the form flow on iPhone. The JS scrolls the
   form just enough to keep the compact list above the software keyboard. */
@media(max-width:720px){
 .form-card .suggest-field{position:relative!important;overflow:visible!important}
 .form-card .suggest-field .suggest-menu,
 .suggest-menu.mobile-floating{
  position:relative!important;
  inset:auto!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
  display:none;
  width:100%!important;max-width:100%!important;
  margin:8px 0 2px!important;
  max-height:var(--suggest-max-height,148px)!important;
  overflow-y:auto!important;overflow-x:hidden!important;
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  box-sizing:border-box;background:#fff;
  border:1px solid var(--line)!important;border-radius:12px!important;
  padding:4px!important;box-shadow:0 8px 24px rgba(23,62,51,.13)!important;
  z-index:1!important;
 }
 .form-card .suggest-field .suggest-menu.open,
 .suggest-menu.mobile-floating.open{display:block!important}
 .form-card .suggest-item,
 .suggest-menu.mobile-floating .suggest-item{
  display:block;width:100%;text-align:left;padding:9px 9px;min-height:44px;border-radius:8px;
 }
 .form-card .suggest-item strong,.suggest-menu.mobile-floating .suggest-item strong{font-size:13px;line-height:1.32;font-weight:600}
 .form-card .suggest-item span,.suggest-menu.mobile-floating .suggest-item span{font-size:11px;line-height:1.3;margin-top:2px}
 .form-card .suggest-message,.suggest-menu.mobile-floating .suggest-message{padding:8px 9px;font-size:11px;line-height:1.35}
 .keyboard-open .page-shell{scroll-padding-bottom:calc(var(--keyboard-height,0px) + var(--suggest-max-height,148px) + 18px)}
}

/* 1.9.4: lock the application shell while iOS shows the software keyboard. */
@media(max-width:720px){
 body.keyboard-open{height:100dvh!important;top:0!important;transform:none!important}
 .keyboard-open .topbar{flex:0 0 auto}
 .keyboard-open .page-shell{min-height:0;scroll-behavior:auto;-webkit-overflow-scrolling:touch}
 .keyboard-open .form-card [data-suggest]{scroll-margin-top:12px;scroll-margin-bottom:calc(var(--suggest-max-height,148px) + 16px)}
}
