/** v5.7.1: presentation only. Keep tenant brand tokens and workflow states. */
.ascapp { background-image:none; }
.ascapp .ascapp-main { padding-top:30px; }
.ascapp .ascapp-main h1 { font-size:clamp(24px,3vw,32px); letter-spacing:-.025em; line-height:1.25; }
.ascapp .ascapp-lede,.ascapp .ascapp-phint,.ascapp .ascapp-rhint { color:var(--muted); font-size:14px; line-height:1.6; max-width:75ch; margin-top:8px; margin-bottom:20px; }
.ascapp .ascapp-field > .ascapp-help { display:block; font-size:13px; line-height:1.55; margin-top:7px; }
.ascapp .ascapp-bar { background:var(--card); backdrop-filter:none; }
.ascapp .ascapp-bar-top { gap:12px 18px; padding:12px 24px; }
.ascapp .ascapp-nav { gap:6px; padding-block:7px; }
.ascapp .ascapp-nav a { min-height:44px; display:inline-flex; align-items:center; padding:10px 14px; font-size:14px; }
.ascapp .ascapp-nav a.icon { width:auto; gap:8px; padding:10px 14px; }
.ascapp .ascapp-nav a.active { box-shadow:inset 0 -3px 0 var(--brand); }
.ascapp .ascapp-user { flex-wrap:wrap; gap:7px; }
.ascapp .ascapp-user .ascapp-gear { width:auto; min-width:44px; height:auto; min-height:44px; gap:7px; padding:8px 10px; line-height:1.3; }
.ascapp .ascapp-barlabel { font-size:12px; font-weight:600; }
.ascapp .ascapp-theme-btn { width:44px; height:44px; }
.ascapp .ascapp-user > a { min-height:44px; display:inline-flex; align-items:center; }
.ascapp .ascapp-main.is-dashboard { text-align:left; }
.ascapp .ascapp-main.is-dashboard .ascapp-statgroup > h2 { text-align:left; font-size:16px; text-transform:none; letter-spacing:0; color:var(--ink-2); }
.ascapp .ascapp-main.is-dashboard .ascapp-cards.is-primary { grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); justify-content:start; }
.ascapp .ascapp-main.is-dashboard .ascapp-cards.is-secondary { grid-template-columns:repeat(auto-fit,minmax(145px,1fr)); justify-content:start; }
.ascapp .ascapp-main.is-dashboard .ascapp-search { max-width:940px; }
.ascapp .ascapp-main.is-dashboard .ascapp-quick,.ascapp .ascapp-main.is-dashboard .ascapp-actions,.ascapp .ascapp-main.is-dashboard .ascapp-subnav { justify-content:flex-start; }
.ascapp .ascapp-main.is-dashboard > .ascapp-lede { max-width:940px; }
.ascapp .ascapp-card { text-align:left; box-shadow:var(--sh-1); border-radius:12px; }
.ascapp .ascapp-card::before,.ascapp .ascapp-card::after { display:none; }
.ascapp .ascapp-card:hover { transform:none; box-shadow:var(--sh-2); }
.ascapp .ascapp-cards.is-primary .ascapp-card { padding:22px; }
.ascapp .ascapp-cards.is-primary .ascapp-card .num { font-size:32px; font-variant-numeric:tabular-nums; }
.ascapp .ascapp-card .lbl { font-size:14px; line-height:1.5; }
.ascapp .ascapp-toolbar { gap:14px; padding:18px; box-shadow:none; }
.ascapp .ascapp-toolbar .ascapp-field { flex:1 1 160px; min-width:0; }
.ascapp .ascapp-toolbar .ascapp-field input,.ascapp .ascapp-toolbar .ascapp-field select { width:100%; }
.ascapp .ascapp-btn,.ascapp a.ascapp-pill { min-height:44px; align-items:center; }
.ascapp .ascapp-btn:hover { transform:none; }
.ascapp .ascapp-btn.small { min-height:42px; }
.ascapp .ascapp-field input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.ascapp .ascapp-field select { min-height:44px; }
.ascapp .ascapp-tcards th { font-size:12px; letter-spacing:.02em; text-transform:none; }
.ascapp .ascapp-tcards td { font-size:14px; line-height:1.6; }
.ascapp .ascapp-tcards td.is-lead { font-weight:600; }
.ascapp .ascapp-actions { gap:10px; }
.ascapp .ascapp-notesofar { max-height:140px; font-size:13px; padding:10px 12px; }
.ascapp .ascapp-notice { font-weight:400; line-height:1.6; }
/* v5.20.2: the Settings hub card is compact (asc-app.css "Settings hub"). */
.ascapp .ascapp-hub-card { padding:14px 16px; box-shadow:none; }
.ascapp .ascapp-hub-card .d { line-height:1.4; }
.ascapp :is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid var(--brand); outline-offset:3px; }
.ascapp :is(input,select,textarea) { scroll-margin-top:190px; }
@media(min-width:701px) {
 .ascapp .ascapp-tcards tbody tr:not(.ascapp-actionrow)>td:nth-child(even) { background:transparent; }
 .ascapp .ascapp-tcards tbody tr:hover>td { background:var(--card-2); }
}
@media(max-width:860px) {
 .ascapp .ascapp-bar { position:relative; }
 .ascapp .ascapp-bar-top { padding:12px 16px; }
 .ascapp .ascapp-brand { flex:1 1 160px; min-width:0; white-space:normal; overflow-wrap:anywhere; }
 .ascapp .ascapp-brand-name { white-space:normal; }
 .ascapp .ascapp-modes { order:3; width:100%; min-width:0; display:flex; flex-wrap:wrap; }
 .ascapp .ascapp-mode { flex:1 1 auto; min-height:44px; text-align:center; }
 .ascapp .ascapp-user { margin-left:0; width:100%; justify-content:flex-start; white-space:normal; }
 .ascapp .ascapp-hello { margin-right:auto; }
 .ascapp .ascapp-navtoggle { min-width:44px; min-height:44px; }
 .ascapp .ascapp-bar-nav .ascapp-nav { flex-wrap:wrap; width:100%; overflow:visible; justify-content:flex-start; }
 .ascapp .ascapp-nav a { flex:1 1 calc(50% - 6px); justify-content:flex-start; white-space:normal; }
 .ascapp .ascapp-main { padding:22px 16px 40px; }
 .ascapp .ascapp-field input,.ascapp .ascapp-field select,.ascapp .ascapp-field textarea,.ascapp .ascapp-search input { font-size:16px; }
 .ascapp .ascapp-band { grid-template-columns:minmax(0,1fr); }
 .ascapp .ascapp-actionrow textarea { min-width:0; width:100%; }
 .ascapp :is(input,select,textarea) { scroll-margin-top:24px; }
}
@media(max-width:480px) {
 .ascapp .ascapp-main.is-dashboard .ascapp-cards.is-primary,.ascapp .ascapp-main.is-dashboard .ascapp-cards.is-secondary { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 .ascapp .ascapp-cards.is-primary .ascapp-card { padding:16px 12px; }
 .ascapp .ascapp-card .lbl { font-size:13px; }
 .ascapp .ascapp-toolbar .ascapp-field { flex-basis:100%; }
 .ascapp .ascapp-toolbar > .ascapp-btn { flex:1 1 auto; justify-content:center; }
 .ascapp .ascapp-hub { grid-template-columns:minmax(0,1fr); }
 .ascapp .ascapp-search { gap:6px; }
 .ascapp .ascapp-search .ascapp-btn { padding-inline:12px; }
}
@media(prefers-reduced-motion:reduce) {
 .ascapp *, .ascapp *::before,.ascapp *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}
@media print { .ascapp .ascapp-bar { display:none; } }

/* v5.7.2: a distinct intake action, compact utilities, progressive help. */
.ascapp .ascapp-user .ascapp-gear {
 width:44px; height:44px; padding:0; justify-content:center;
}
/* Hidden until opened by the original hover/click behavior; do not let the
   earlier visible-help rules override the popover disclosure. */
.ascapp .is-infopop { display:none; }
.ascapp .is-infopop.is-open { display:block; }

/* v5.7.3: alternate whole records, never columns. Use existing theme tokens
   mixed with text for a neutral grey that also stays readable in dark mode.
   Two-row jobs keep their action bar on the same background as the job. */
.ascapp .ascapp-tcards { --row-normal:var(--card); --row-grey:var(--border-soft); }
@supports (background:color-mix(in srgb, white 94%, black)) {
 .ascapp .ascapp-tcards { --row-grey:color-mix(in srgb,var(--card) 94%,var(--ink)); }
}
.ascapp .ascapp-tcards tbody tr { --record-bg:var(--row-normal); }
.ascapp .ascapp-tcards tbody tr:nth-child(even):not(.ascapp-jobrow):not(.ascapp-actionrow) { --record-bg:var(--row-grey); }
.ascapp .ascapp-tcards tbody tr.ascapp-jobrow:nth-child(4n+3),
.ascapp .ascapp-tcards tbody tr.ascapp-actionrow:nth-child(4n) { --record-bg:var(--row-grey); }
/* Filtered indexing also handles tables mixing ordinary and two-row jobs. */
@supports selector(tr:nth-child(2 of :not(.ascapp-actionrow))) {
 .ascapp .ascapp-tcards tbody tr:nth-child(odd of :not(.ascapp-actionrow)),
 .ascapp .ascapp-tcards tbody tr:nth-child(odd of :not(.ascapp-actionrow)) + tr.ascapp-actionrow { --record-bg:var(--row-normal); }
 .ascapp .ascapp-tcards tbody tr:nth-child(even of :not(.ascapp-actionrow)),
 .ascapp .ascapp-tcards tbody tr:nth-child(even of :not(.ascapp-actionrow)) + tr.ascapp-actionrow { --record-bg:var(--row-grey); }
}
.ascapp .ascapp-tcards tbody tr,
.ascapp .ascapp-tcards tbody tr > td,
.ascapp .ascapp-tcards tbody tr:not(.ascapp-actionrow) > td:nth-child(even) { background:var(--record-bg); }
.ascapp .ascapp-tcards tbody tr:hover > td { box-shadow:inset 0 1px 0 var(--border),inset 0 -1px 0 var(--border); }
.ascapp .ascapp-tcards thead th:nth-child(even) { background:var(--card-2); }

/* v5.7.5: whole records alternate white/grey; headers have one background. */
.ascapp .ascapp-tcards tbody tr:hover > td:nth-child(n) { background:var(--record-bg); }
.ascapp .ascapp-tcards thead th,
.ascapp .ascapp-tcards thead th:nth-child(even) { background:var(--card-2); }
.asc-customer-fold { padding:16px; }
.asc-customer-fold > summary { cursor:pointer; font-weight:650; min-height:44px; padding:10px 0; overflow-wrap:anywhere; }
.asc-customer-fold > summary:focus-visible { outline:2px solid var(--brand); outline-offset:3px; }
.asc-customer-collapsed-meta { margin-left:20px; font-weight:400; color:var(--muted); }
.asc-customer-fold[open] > summary > .asc-customer-collapsed-meta { display:none; }
@media(max-width:600px) {
 .asc-customer-collapsed-meta { display:block; margin:6px 0 0 20px; }
}

/* Customer identity is a collapsed summary; use the same section UI as notes/payments. */
#asc-sec-customer-details[open] > .ascapp-sec-head > .ascapp-sec-meta { display:none; }

/* Separate the payment flow from the history and supporting sections below. */
.ascapp .ascapp-payment-separator { border:0; border-top:2px solid var(--border); margin:28px 0; width:100%; }
.asc-clean-form { display:block!important; }
.asc-clean-bar { display:flex; align-items:center; gap:10px; width:100%; }
.asc-clean-search { flex:1 1 auto; min-width:0; margin:0!important; }
.asc-clean-searchbox { position:relative; display:flex; align-items:center; width:100%; }
.asc-clean-searchbox input[type="search"] { width:100%!important; max-width:none!important; margin:0!important; padding-right:48px!important; min-height:44px; box-sizing:border-box; }
.asc-clean-icon { position:relative; display:inline-flex; align-items:center; justify-content:center; flex:0 0 44px; width:44px; height:44px; padding:0; border:1px solid var(--border,#d4dbe5); border-radius:10px; color:var(--ink,#263449); background:var(--card,#fff); cursor:pointer; }
.asc-clean-icon:hover,.asc-clean-icon[aria-expanded="true"] { color:var(--brand,#4f46e5); border-color:var(--brand,#4f46e5); }
.asc-clean-icon:focus-visible { outline:2px solid var(--brand,#4f46e5); outline-offset:2px; }
.asc-clean-submit { position:absolute; right:1px; top:50%; transform:translateY(-50%); border:0; background:transparent; }
.asc-clean-toggle.has-active::after { content:""; position:absolute; top:5px; right:5px; width:7px; height:7px; background:var(--brand,#4f46e5); border-radius:50%; }
.asc-clean-filters:not([hidden]) { display:flex; flex-wrap:wrap; align-items:flex-end; gap:12px; margin-top:12px; padding-top:14px; border-top:1px solid var(--border,#d4dbe5); }
.asc-clean-filters[hidden] { display:none!important; }
.asc-clean-filters > .ascapp-field { flex:1 1 150px; }
.asc-clean-filters > .ascapp-rfilter-row { width:100%; }
.asc-clean-filters > .ascapp-chips { flex-basis:100%; margin:0; }
.asc-clean-period { flex:1; font-size:14px; color:var(--muted,#64748b); }
.asc-clean-sr { 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; }
.ascapp-info-anchor { display:inline-block; margin:0 0 8px; }
@media (max-width:600px) { .asc-clean-filters > .ascapp-field { flex-basis:100%; } }
.ascapp .ascapp-login-simple { max-width:420px; padding:36px 30px; border-radius:20px; box-shadow:0 12px 36px rgba(15,23,42,.08); }
.ascapp .ascapp-login-simple .brandlogo { width:56px; height:56px; object-fit:contain; border-radius:12px; border:0; box-shadow:none; margin:0 auto 20px; }
.ascapp .ascapp-login-heading { text-align:center; margin-bottom:28px; }
.ascapp .ascapp-login-heading h1 { font-size:28px; font-weight:750; letter-spacing:-.025em; line-height:1.2; margin:0 0 8px; }
.ascapp .ascapp-login-heading p { color:var(--muted,#64748b); font-size:15px; margin:0; }
.ascapp .ascapp-login-simple .ascapp-field { margin-bottom:18px; }
.ascapp .ascapp-login-options { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:0 12px; margin:0 0 8px; }
.ascapp .ascapp-login-options .ascapp-switch { margin:0; }
.ascapp .ascapp-login-options .ascapp-login-links { margin:0; }
.ascapp .ascapp-login-options a { padding:0; }
@media(max-width:480px) { .ascapp .ascapp-login-wrap { padding:18px; } .ascapp .ascapp-login-simple { padding:28px 22px; } }
