/* DocHuntr design system (v0.7 M4). Loaded after the v0.4-v0.6 layers and before the tenant theme.
   One shared token set + primitives: type scale, 4/8 spacing, cards, buttons, pills, forms, banners, toasts,
   tables-to-cards, confirm dialog, login. System fonts only, no external assets. Text contrast >= 4.5:1. */
:root{
--dc-ink:#0B1F44;--dc-ink-2:#3a4663;--dc-line:#d9e2f0;--dc-page:#f1f5fc;--dc-card:#fff;
--dc-glow:radial-gradient(60rem 28rem at 85% -10%,rgba(59,130,246,.16),transparent 60%),radial-gradient(40rem 24rem at -5% 0%,rgba(20,184,166,.12),transparent 60%);
--dc-grad:linear-gradient(135deg,#2563EB 0%,#3B82F6 100%);
--fs-title:1.75rem;--fs-section:1.125rem;--fs-body:1rem;--fs-meta:.8125rem;
--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;
--r-ctl:.5rem;--r-card:1rem;
--sh-card:0 1px 2px rgba(11,31,68,.06),0 10px 28px rgba(11,31,68,.08);
--sh-lift:0 2px 4px rgba(11,31,68,.08),0 16px 36px rgba(37,99,235,.16);
--c-muted:#3a4663;--c-border:#d9e2f0;--c-page:#f1f5fc}
body{background:var(--dc-glow),var(--dc-page);background-attachment:fixed;color:var(--dc-ink);font-size:var(--fs-body);line-height:1.55;font-variant-numeric:tabular-nums}
h1,h2,h3{color:var(--dc-ink);letter-spacing:-.01em;line-height:1.25}
h1{font-size:var(--fs-title);font-weight:750;margin:0 0 var(--sp-2)}
h2{font-size:var(--fs-section);font-weight:700}
h3{font-size:1rem;font-weight:700}
small,.hint,.field-hint,.muted{font-size:var(--fs-meta);color:var(--dc-ink-2)}
a{color:#2563EB;text-underline-offset:.15em}

/* focus: one clear ring for every control */
:focus-visible{outline:3px solid var(--dc-blue);outline-offset:2px;box-shadow:0 0 0 5px rgba(20,184,166,.35)}
.app-header :focus-visible,.client-header :focus-visible{outline-color:var(--dc-cyan);box-shadow:none}

/* shell: navy sidebar with glow, soft white top bar */
.app-header{background:radial-gradient(18rem 14rem at 100% 0,rgba(59,130,246,.35),transparent 70%),linear-gradient(180deg,#0A1A3A,#010d2a);box-shadow:0 0 0 1px rgba(255,255,255,.04),6px 0 24px rgba(11,31,68,.18)}
.app-header .nav-list a,.app-header .link-button{border-radius:.625rem;transition:background .15s ease,transform .15s ease}
.app-header .nav-list a[aria-current="page"]{background:var(--dc-grad);box-shadow:0 6px 16px rgba(37,99,235,.45);color:#fff}
.app-header .nav-list a:hover:not([aria-current]){background:rgba(255,255,255,.12)}
.app-header .nav-list a:active{transform:scale(.98)}
.app-header .nav-list .icon{opacity:.9}
.topbar{background:rgba(255,255,255,.85);backdrop-filter:blur(6px);border-bottom:1px solid var(--dc-line);box-shadow:none}
.chip-role{background:#e1ecfb;color:#0b3a8a;border-color:#b9cff3}
.nav-badge{background:#c0182a}

/* cards */
.dc-card,.panel,.stat-card,.dc-steps>li,.auth-card,.alert,.cards li,.exc{background:var(--dc-card);border:1px solid var(--dc-line);border-radius:var(--r-card);box-shadow:var(--sh-card)}
.dc-card,.panel{padding:var(--sp-5)}
.dc-card-link{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.dc-card-link:hover{transform:translateY(-2px);box-shadow:var(--sh-lift);border-color:#8fb2ff}
.dc-card-link h2{display:flex;align-items:center;gap:var(--sp-2)}
.dc-card-link h2 a::before{content:"";display:inline-block;width:.5rem;height:1.25rem;margin-right:var(--sp-2);border-radius:.25rem;background:var(--dc-grad);vertical-align:-.25rem}
.stat-card{padding:var(--sp-5);transition:box-shadow .18s ease}
.stat-card:hover{box-shadow:var(--sh-lift)}
.stat-card .big{font-size:2.25rem;line-height:1.1;font-weight:750}
.stat-icon{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:.625rem;background:#e1ecfb;color:#2563EB}
.stat-error .stat-icon{background:#fde6e7;color:#a4141b}
.stat-warning .stat-icon{background:#fff1d6;color:#7a4b00}
.stat-head{display:flex;align-items:center;gap:var(--sp-3)}.stat-head h3{margin:0;font-size:.9375rem}
.priority{border-left:4px solid var(--dc-blue);background:linear-gradient(120deg,#fff 55%,#eaf2ff)}
.section-head h2{margin-bottom:var(--sp-3)}

/* buttons: primary solid, secondary outline, tertiary text, destructive red; distinct hover/active/disabled/loading */
/* ONE button system. Base = secondary (1px neutral border, navy text). Filled gradient = the single primary
   (.btn-primary, or a bare submit button that is the form's main action). Specificity is kept at zero for the
   base and the bare-submit default so every variant below wins by order alone. */
:where(.btn,.dc-btn,.button-link,button[type="submit"]:not(.link-button):not(.menu-item)){display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:2.75rem;padding:0 var(--sp-5);box-sizing:border-box;border:1px solid #b4c0d6;border-radius:var(--r-ctl);background:#fff;color:var(--dc-ink);font:inherit;font-size:var(--fs-body);font-weight:650;text-decoration:none;cursor:pointer;box-shadow:none;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}
:where(button[type="submit"]:not(.link-button):not(.menu-item):not(.secondary):not(.btn):not(.btn-danger):not(.dc-btn)),.btn-primary,.dc-btn-primary{border-color:transparent;background:var(--dc-grad);color:#fff;box-shadow:0 1px 2px rgba(11,31,68,.2),0 6px 14px rgba(37,99,235,.24)}
.btn-primary:hover,.dc-btn-primary:hover,button[type="submit"]:not(.link-button):not(.menu-item):not(.secondary):not(.btn):not(.btn-danger):not(.dc-btn):hover{filter:brightness(.93)}
.btn-secondary:hover,.dc-btn-secondary:hover,.button-link:hover,button.secondary:hover{background:#f1f5fc;border-color:#8393b3}
.btn-danger,.btn-danger-outline,button.secondary.btn-danger-outline{background:#fff;color:#a4141b;border:1px solid #a4141b;box-shadow:none}
.btn-danger:hover,.btn-danger-outline:hover,button.secondary.btn-danger-outline:hover{background:#fde6e7;border-color:#a4141b;filter:none}
main a.btn-secondary,main a.dc-btn-secondary,main a.button-link{color:var(--dc-ink);text-decoration:none}
main a.btn-primary,main a.dc-btn-primary{color:#fff;text-decoration:none}
.btn:active,.dc-btn:active,button[type="submit"]:active{transform:translateY(1px)}
.btn:focus-visible,.dc-btn:focus-visible,.button-link:focus-visible,button:focus-visible{outline:2px solid var(--dc-blue,#2563EB);outline-offset:2px}
/* disabled: grey with AA text (#3f4a63 on #e4e9f2 is about 7:1), always beats the filled variants */
button[disabled],.btn[disabled],[aria-disabled="true"].btn{background:#e4e9f2 !important;color:#3f4a63 !important;border:1px solid #cdd5e4 !important;box-shadow:none !important;cursor:not-allowed;filter:none}
.decision-row{display:flex;flex-wrap:nowrap;align-items:center;gap:var(--sp-3)}
.decision-row>button{flex:1 1 0;min-width:0;padding:0 var(--sp-3)}
.decision-why{margin:var(--sp-2) 0 0;font-size:var(--fs-meta);color:var(--dc-ink-2)}
/* row actions: quiet text link with chevron, never a bordered button */
.row-link{box-shadow:none;cursor:pointer;font:inherit;font-weight:650;display:inline-flex;align-items:center;min-height:2.75rem;padding:0 var(--sp-2);border:0;background:none;color:#2563EB;font-weight:650;text-decoration:none;white-space:nowrap;border-radius:var(--r-ctl)}
.row-link:hover{text-decoration:underline}
.row-link:focus-visible{outline:2px solid #2563EB;outline-offset:2px;text-decoration:none}
/* overflow menu (native details, no JS) */
.row-menu{display:inline-block;position:relative;vertical-align:middle}
.row-menu>summary{display:inline-flex;align-items:center;min-height:2.75rem;padding:0 var(--sp-2);cursor:pointer;color:var(--dc-ink-2);font-weight:650;list-style:none;border-radius:var(--r-ctl)}
.row-menu>summary::-webkit-details-marker{display:none}
.row-menu>summary:hover{color:var(--dc-ink);text-decoration:underline}
.row-menu>summary:focus-visible{outline:2px solid #2563EB;outline-offset:2px}
.row-menu-list{position:absolute;right:0;z-index:5;min-width:11rem;margin-top:var(--sp-1);padding:var(--sp-1);background:#fff;border:1px solid var(--dc-line);border-radius:var(--r-ctl);box-shadow:var(--sh-card);display:flex;flex-direction:column}
.row-menu-list form{margin:0}
.menu-item,button.menu-item{display:flex;align-items:center;width:100%;min-height:2.5rem;padding:0 var(--sp-3);box-sizing:border-box;border:0;background:none;color:var(--dc-ink);font:inherit;font-weight:600;text-align:left;text-decoration:none;cursor:pointer;border-radius:.375rem;box-shadow:none}
.menu-item:hover{background:#f1f5fc}
.menu-danger,button.menu-danger{color:#a4141b}
.menu-item:focus-visible{outline:2px solid #2563EB;outline-offset:-2px}
.is-loading{position:relative;pointer-events:none;color:transparent!important}
.is-loading::after{content:"";position:absolute;width:1.1rem;height:1.1rem;border-radius:50%;border:3px solid rgba(255,255,255,.5);border-top-color:#fff;animation:dc-spin .7s linear infinite}
.secondary.is-loading::after{border-color:rgba(37,99,235,.3);border-top-color:#2563EB}
@keyframes dc-spin{to{transform:rotate(360deg)}}
.app-header .link-button{box-shadow:none;background:none;color:#fff}

/* pills */
.chip,.dc-chip{padding:.1875rem .75rem;font-size:var(--fs-meta);font-weight:650}
.dc-chip::before{margin-right:.25rem}
.chip-ok,.dc-chip-success{background:#e6fbf8;color:#14B8A6}
.chip-warn,.dc-chip-warning{background:#ffeccb;color:#6b4000}
.chip-bad,.dc-chip-error{background:#fde1e3;color:#9a1219}
.chip-info,.dc-chip-info{background:#dde9fd;color:#0b3a8a}
.badge{background:#0B1F44;color:#fff}.badge-count{background:#c0182a;color:#fff;border-radius:999px}

/* forms: labels above, 44px controls, custom select arrow, checkbox/radio accent */
label{color:var(--dc-ink);font-weight:650;font-size:.9375rem}
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),select,textarea{border:1px solid #8693ad;border-radius:var(--r-ctl);background:#fff;transition:border-color .15s ease,box-shadow .15s ease}
input:not([type="checkbox"]):not([type="radio"]):hover,select:hover,textarea:hover{border-color:#2563EB}
input:focus,select:focus,textarea:focus{border-color:#2563EB;box-shadow:0 0 0 4px rgba(37,99,235,.18);outline:none}
select{appearance:none;-webkit-appearance:none;padding-right:2.5rem;background-image:linear-gradient(45deg,transparent 50%,#0B1F44 50%),linear-gradient(135deg,#0B1F44 50%,transparent 50%);background-size:6px 6px,6px 6px;background-repeat:no-repeat;background-position:calc(100% - 1.25rem) 55%,calc(100% - 1.25rem + 6px) 55%}
input[type="checkbox"],input[type="radio"]{width:1.25rem;height:1.25rem;accent-color:#2563EB;vertical-align:-.2rem;margin-right:var(--sp-2)}
input[type="file"]{border:2px dashed #8693ad;border-radius:var(--r-ctl);background:#f6f9ff;padding:var(--sp-3)}
input[type="file"]::file-selector-button{margin-right:var(--sp-3);min-height:2.25rem;padding:0 var(--sp-4);border:1px solid #b4c0d6;border-radius:var(--r-ctl);background:#fff;color:var(--dc-ink);font:inherit;font-weight:650;cursor:pointer}
fieldset{border:1px solid var(--dc-line);border-radius:var(--r-card);background:#fff;padding:var(--sp-4) var(--sp-5)}
legend{font-weight:700;padding:0 var(--sp-2)}
.field-error,.error{color:#9a1219}
[aria-invalid="true"]{border-color:#9a1219!important}

/* banners (inline) and toasts (flash messages) */
.alert{display:flex;gap:var(--sp-3);align-items:flex-start;border-left-width:5px;padding:var(--sp-3) var(--sp-4);color:var(--dc-ink)}
.alert-success{border-left-color:#14B8A6;background:#f1fbf4;color:#0a4d21}
.alert-info{border-left-color:#2563EB;background:#f2f7ff;color:#0b3a8a}
.alert-warning{border-left-color:#b36b00;background:#fff9ec;color:#6b4000}
.alert-error{border-left-color:#a4141b;background:#fff3f3;color:#8f1019}
.alert a{color:inherit;font-weight:650}
.feedback{display:grid;gap:var(--sp-2)}.feedback:empty{display:none}
.feedback .alert{animation:dc-in .25s ease both}
@keyframes dc-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* tables: tinted header, roomy rows, hover; cards on phones */
.dc-table,.doc-table{background:#fff;border-collapse:separate;border-spacing:0;border:1px solid var(--dc-line);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--sh-card)}
.dc-table th,.doc-table th{background:#eaf0fb;color:#1f2d52;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;border:0;border-bottom:1px solid var(--dc-line);padding:var(--sp-3) var(--sp-4)}
.dc-table td,.doc-table td{border:0;border-bottom:1px solid #e8eef8;padding:var(--sp-3) var(--sp-4);min-height:3.25rem;vertical-align:middle}
.dc-table tbody tr:hover{background:#f5f8ff}
.dc-table tbody tr:last-child td{border-bottom:0}
.dc-table td:first-child{font-weight:650}
.scroll{border-radius:var(--r-card)}
@media (max-width:51.25rem){
.doc-table{display:table;overflow:visible}
.dc-table,.dc-table thead,.dc-table tbody,.dc-table tr,.dc-table td,.dc-table th{display:block;width:auto}
.dc-table{background:transparent;border:0;box-shadow:none}
.dc-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.dc-table tr{background:#fff;border:1px solid var(--dc-line);border-radius:var(--r-card);box-shadow:var(--sh-card);margin-bottom:var(--sp-3);padding:var(--sp-2) 0}
.dc-table td{display:flex;gap:var(--sp-3);justify-content:space-between;align-items:baseline;border:0;padding:var(--sp-2) var(--sp-4);overflow-wrap:anywhere;text-align:right}
.dc-table td::before{content:attr(data-label);flex:none;max-width:45%;text-align:left;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--dc-ink-2)}
.dc-table td:not([data-label])::before{content:none}
.dc-table td:first-child{font-size:1.0625rem}
.scroll{overflow:visible}
}

/* empty states */
.dc-empty,.empty,.empty-state{border:2px dashed #b9cbe8;background:linear-gradient(180deg,#fff,#f5f9ff);border-radius:var(--r-card);padding:var(--sp-6) var(--sp-4);color:var(--dc-ink-2)}
.dc-empty .empty-icon{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;margin-bottom:var(--sp-2);border-radius:50%;background:#e1ecfb;color:#2563EB}
.dc-empty h3,.empty-state h2{color:var(--dc-ink);margin:0 0 var(--sp-2)}

/* confirmation dialog (opened by [data-confirm]) */
dialog.dc-confirm{max-width:min(26rem,calc(100vw - 2rem));padding:var(--sp-5);border:1px solid var(--dc-line);border-radius:var(--r-card);box-shadow:0 24px 64px rgba(11,31,68,.35);color:var(--dc-ink)}
dialog.dc-confirm::backdrop{background:rgba(11,31,68,.55)}
dialog.dc-confirm h2{margin:0 0 var(--sp-2)}
dialog.dc-confirm .actions{margin-top:var(--sp-5);justify-content:flex-end}

/* login */
.auth-body{background:var(--dc-glow),linear-gradient(180deg,#eaf1ff,#f7faff);min-height:100vh}
.auth-body main{max-width:26rem}
.auth-card{border-top:0;position:relative;overflow:hidden;padding:var(--sp-6) var(--sp-5);box-shadow:var(--sh-lift)}
.auth-card::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:linear-gradient(90deg,#14B8A6,#3B82F6,#2563EB)}
.auth-card .icon-head{width:3.25rem;height:3.25rem;margin:0 auto var(--sp-3);align-items:center;border-radius:.875rem;background:#e1ecfb;color:#2563EB}
.auth-lead{text-align:center;color:var(--dc-ink-2);margin:0 0 var(--sp-4)}
.auth-foot{text-align:center;margin:var(--sp-4) 0 0}
.auth-points{list-style:none;margin:var(--sp-5) 0 0;padding:0;display:grid;gap:var(--sp-2);color:var(--dc-ink-2);font-size:.9375rem}
.auth-points li{display:flex;align-items:center;gap:var(--sp-3)}.auth-points .icon{color:#2563EB}
.auth-logo{height:3.5rem}

/* client pages keep the firm brand; only calm surfaces here */
.client-footer{color:var(--dc-ink-2)}

/* page rhythm and phones (320/390: no overflow) */
.dash-section{margin-bottom:var(--sp-5)}
.page-header{margin-bottom:var(--sp-5)}
.page-icon{background:#fff;border:1px solid var(--dc-line);color:#2563EB}
main{overflow-wrap:break-word}
@media (max-width:30rem){h1,.page-header h1{font-size:1.5rem}.dc-card,.panel,.stat-card{padding:var(--sp-4)}.actions>*,.form-actions>*,.section-head>.dc-btn{width:100%}.stat-card .big{font-size:2rem}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.is-loading::after{animation:dc-spin 1.6s linear infinite!important}}

/* M6: responsive coverage + accessibility hardening */
/* pills never wrap or squash; icon and label stay on one line */
.chip,.dc-chip,.badge,.nav-badge,.chip-role{display:inline-flex;align-items:center;gap:.25rem;white-space:nowrap;flex:none;line-height:1.4}
/* filenames wrap at word/punctuation boundaries first, and only break mid-word when a single token is too long */
.filename,td[data-label="File"],.file-head h3,.panel-file strong{overflow-wrap:break-word;word-break:normal;min-width:0;hyphens:none}
.filename{display:inline-block;max-width:100%}
td.filename,td[data-label="File"]{max-width:22rem}
/* row actions read as actions, not bare links */
/* interaction states for the remaining controls */
select:active,input[type="file"]:hover{border-color:#2563EB}
input[type="file"]::file-selector-button:hover{background:#e8f0ff}
input[type="file"]::file-selector-button:active{background:#d3e2ff}
input[type="checkbox"]:hover,input[type="radio"]:hover{box-shadow:0 0 0 4px rgba(37,99,235,.14);border-radius:.25rem}
input:disabled,select:disabled,textarea:disabled{background:#eef1f7;color:#56607a;border-color:#c9d1e0;cursor:not-allowed}
.dc-card-link:active,.stat-card:active{transform:translateY(0);box-shadow:var(--sh-card)}
.skip:focus{position:fixed;top:var(--sp-2);left:var(--sp-2);z-index:100;padding:var(--sp-3) var(--sp-4);background:#fff;color:var(--dc-ink);border-radius:var(--r-ctl);outline:3px solid var(--dc-blue)}
main:focus{outline:none}
/* touch targets >= 44px on tablets and phones */
@media (max-width:51.25rem),(pointer:coarse){
.btn,.button-link,.dc-btn,button,input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="color"]),select{min-height:2.75rem}
.app-header .nav-list a,.app-header .link-button,.nav-toggle,.breadcrumbs a,.pager a{display:inline-flex;align-items:center;min-height:2.75rem}
input[type="checkbox"],input[type="radio"]{width:1.5rem;height:1.5rem}
.dc-table td:last-child a:not(.dc-btn){min-height:2.75rem}
.dc-table td[data-label="File"],.dc-table td.filename{flex-wrap:wrap;max-width:none;text-align:left}
.dc-table td[data-label="File"]::before,.dc-table td.filename::before{flex-basis:100%;max-width:100%}
.dc-table td{overflow-wrap:break-word}
.dc-table td:last-child{justify-content:flex-start;flex-wrap:wrap;text-align:left}
.page-header-text{align-items:flex-start}
.filters>*{flex:1 1 100%}
}
@media (max-width:20rem){.dc-table td{padding-inline:var(--sp-3)}.dc-table td::before{max-width:40%}.page-icon{display:none}.dc-card,.panel,.stat-card{padding:var(--sp-3)}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.dc-card-link:hover,.nav-list a:active,.btn:active{transform:none}}

/* v0.7 repair 1 (QA #214): container + gutter, refined type scale, button variants, calmer density, mobile cards */
:root{--fs-title:1.625rem;--fs-section:1.125rem;--fs-body:.9375rem;--fs-meta:.8125rem;--fs-kpi:1.875rem;--gutter:clamp(1rem,4vw,2rem);--container:72rem}
body{font-size:var(--fs-body);line-height:1.5}
h1{font-size:var(--fs-title);font-weight:700;letter-spacing:-.015em}
h2{font-size:var(--fs-section);font-weight:650}
h3{font-size:var(--fs-body);font-weight:650}
.stat-card .big,.stat-card .stat-value{font-size:var(--fs-kpi);font-weight:700}
/* planned content gutter + centred max-width container */
.app-body main,.app-body .breadcrumbs{max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter);box-sizing:border-box;width:100%}
.app-body main{margin-top:var(--sp-5);margin-bottom:var(--sp-6)}
.topbar{padding-inline:var(--gutter)}
main{box-sizing:border-box}
.app-content{min-width:0}
/* buttons: ONE primary (solid); outline, ghost and destructive are visibly quieter */
/* density: compact banners and KPI tiles, tighter section rhythm */
.alert{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-meta);margin:0 0 var(--sp-2);box-shadow:none}
.stat-card{padding:var(--sp-4)}
.stat-grid{gap:var(--sp-3)}
.dash-section{margin-bottom:var(--sp-4)}
.page-header{margin-bottom:var(--sp-4)}
.dc-card,.panel{padding:var(--sp-4) var(--sp-5)}
/* mobile: every field is a labelled row; nothing is clipped or scrolls sideways */
@media (max-width:51.25rem){
main table.dc-table,main table.doc-table{display:block;width:100%;min-width:0;max-width:100%}
.scroll,.dc-table-wrap{overflow:visible;max-width:100%}
.dc-table tr{max-width:100%;box-sizing:border-box}
.dc-table td{min-width:0;max-width:100%;box-sizing:border-box;flex-wrap:wrap;text-align:right;overflow-wrap:anywhere}
.dc-table td[colspan]{display:block;text-align:left}
.dc-table td:not([data-label]){justify-content:flex-start;text-align:left}
.dc-table td .chip-list{padding:0;margin:0}
.dc-table select,.dc-table input:not([type="checkbox"]){max-width:100%;min-width:0;width:100%}
.dc-table caption{display:block;text-align:left;font-weight:650;margin-bottom:var(--sp-2)}
.app-content{margin-left:0}
}
@media (max-width:30rem){:root{--fs-title:1.375rem;--fs-kpi:1.625rem}.app-body main{margin-top:var(--sp-4)}}

/* v0.7 repair 2 (QA #223): branded type hierarchy, banner containment, semantic decisions, intentional tables/filters/empty states, mobile KPI + rows */
:root{--fs-title:2rem;--fs-kpi:2.25rem;--ok:#14B8A6;--ok-bg:#e6fbf8;--bad:#a4141b;--bad-bg:#fdecee;--hold:#7a4b00;--hold-bg:#fff4dc}
h1{font-size:var(--fs-title);font-weight:800;letter-spacing:-.025em;line-height:1.15;color:var(--dc-ink)}
h1::after{content:"";display:block;width:2.5rem;height:.25rem;margin-top:var(--sp-2);border-radius:999px;background:var(--dc-grad)}
.auth-card h1::after,.client-status h1::after{margin-inline:auto}
h2{font-weight:700;letter-spacing:-.01em}
.page-lead,.dash-hero .page-lead,.app-body main>.page-lead{font-size:1rem;color:var(--dc-ink-2);max-width:56ch;margin:var(--sp-3) 0 var(--sp-4)}
.dash-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-4);margin-bottom:var(--sp-2)}
.date-chip{display:inline-flex;align-items:center;gap:var(--sp-2);padding:.375rem .75rem;border:1px solid var(--dc-line);border-radius:999px;background:#fff;font-size:var(--fs-meta);color:var(--dc-ink-2);white-space:nowrap}
.stat-card .big{font-size:var(--fs-kpi);line-height:1;margin:var(--sp-3) 0 var(--sp-2)}
.stat-card .big a{color:var(--dc-ink);text-decoration:none}
.stat-sub{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin:0}
.stat-note{font-size:var(--fs-meta);color:var(--dc-ink-2)}
.priority .big-text{font-size:1.5rem;font-weight:800;margin:var(--sp-1) 0 0}
.priority h2{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:#2563EB;margin:0}
/* banner containment: sidebar starts below any host-injected sticky banner; banner can never be overlapped */
[data-preview-banner]{max-width:100vw;box-sizing:border-box;white-space:normal;overflow-wrap:anywhere}
@media (min-width:64rem){.app-header{top:var(--banner-h,0px)}}
/* semantic decisions */
/* tables: quiet links, calm rows */
.dc-table td a:not(.dc-btn){text-decoration:none;font-weight:650}
.dc-table td a:not(.dc-btn):hover{text-decoration:underline}
/* document filters: segmented pills, summary strip, filter bar */
.filter-tabs{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:0 0 var(--sp-4)}
.filter-tabs a{display:inline-flex;align-items:center;min-height:2.25rem;padding:0 var(--sp-4);border:1px solid var(--dc-line);border-radius:999px;background:#fff;color:var(--dc-ink);font-size:var(--fs-meta);font-weight:650;text-decoration:none}
.filter-tabs a:hover{border-color:#8fb2ff;background:#f2f7ff}
.filter-tabs a[aria-current="page"]{background:var(--dc-ink);border-color:var(--dc-ink);color:#fff}
.doc-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3);list-style:none;margin:0 0 var(--sp-4);padding:0}
.doc-summary li{background:#fff;border:1px solid var(--dc-line);border-radius:var(--r-card);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-meta);color:var(--dc-ink-2);box-shadow:var(--sh-card)}
.doc-summary strong{display:block;font-size:1.75rem;line-height:1.1;color:var(--dc-ink)}
.doc-summary li:nth-child(2) strong{color:var(--ok)}.doc-summary li:nth-child(3) strong{color:var(--hold)}.doc-summary li:nth-child(4) strong{color:var(--bad)}
.filters{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:flex-end;padding:var(--sp-3) var(--sp-4);background:#fff;border:1px solid var(--dc-line);border-radius:var(--r-card)}
.filters label{font-size:var(--fs-meta);color:var(--dc-ink-2)}
.filters>label,.filters>.filter-field{flex:1 1 12rem;min-width:0}
.filters>.filter-grow{flex:2 1 16rem}
.filter-field label{display:block;margin-bottom:var(--sp-1)}
.filter-field input,.filter-field select{width:100%;box-sizing:border-box}
.filters>button[type="submit"]{flex:0 0 auto}
/* empty states and settings cards */
.dc-empty,.empty{border:1px solid var(--dc-line);background:linear-gradient(180deg,#f8faff,#fff);border-radius:var(--r-card)}
.empty-icon{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:50%;background:#e1ecfb;color:#2563EB}
.dc-empty h3{margin:var(--sp-2) 0 var(--sp-1);color:var(--dc-ink)}
.dc-card-link{min-height:7rem}
.dc-card-link p{color:var(--dc-ink-2);margin:var(--sp-1) 0 0}
.dc-card-link:hover h2 a{color:#2563EB}
/* starter template cards: equal height, outline action pinned to the bottom */
.cards>li{display:flex;flex-direction:column;gap:var(--sp-2)}
.cards>li form.inline{margin-top:auto;padding-top:var(--sp-3)}
/* row actions in tables stay on one line where they fit */
.dc-table td:last-child{white-space:nowrap}
@media (max-width:51.25rem){.dc-table td:last-child{white-space:normal}}
/* email preview: full frame, no clipped footer */
.email-frame.preview-frame{height:46rem}
/* mobile: 2x2 KPI grid, stacked rows with full-width actions */
@media (max-width:40rem){
:root{--fs-title:1.625rem;--fs-kpi:1.75rem}
.dash-hero{flex-direction:column;gap:var(--sp-2)}
.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}
.stat-card{padding:var(--sp-3)}
.stat-head{gap:var(--sp-2)}.stat-head h3{font-size:.8125rem}
.stat-icon{width:1.75rem;height:1.75rem;flex:none}
.stat-note{display:none}
.doc-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
.dash-cols .row-item{display:grid;grid-template-columns:2.25rem minmax(0,1fr);gap:var(--sp-2) var(--sp-3);align-items:start}
.dash-cols .row-item>.dc-chip,.dash-cols .row-item>.row-action{grid-column:2;justify-self:start}
.dash-cols .row-item>.row-action{width:100%}
.dash-cols .row-item>.row-main:first-child{grid-column:1 / -1}
.dash-cols .row-item>a:not(.dc-btn){grid-column:2;white-space:nowrap;min-height:2.75rem;display:inline-flex;align-items:center}
.dash-hero h1{font-size:var(--fs-title)}
.filter-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:var(--sp-1)}
.filter-tabs a{white-space:nowrap}
.email-frame.preview-frame{height:56rem}
}
/* v0.7 repair 3 (QA #223): hero glow, quick actions, settings cards */
.dash-hero{position:relative;padding:var(--sp-5,1.5rem);border-radius:var(--r-card);border:1px solid var(--dc-line);background:radial-gradient(60rem 14rem at 0% 0%,rgba(59,130,246,.18),transparent 60%),radial-gradient(30rem 12rem at 100% 0%,rgba(20,184,166,.16),transparent 70%),#fff;box-shadow:0 12px 36px -18px rgba(37,99,235,.35)}
.dash-hero .page-lead{margin-bottom:0}
.priority{box-shadow:0 14px 40px -20px rgba(37,99,235,.55)}
.qa-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3)}
.qa-tile{display:flex;flex-direction:column;gap:var(--sp-1);min-height:7rem;padding:var(--sp-4);border:1px solid var(--dc-line);border-radius:var(--r-card);background:linear-gradient(180deg,#f8faff,#fff);color:var(--dc-ink-2);font-size:var(--fs-meta);text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s}
.qa-tile strong{color:var(--dc-ink);font-size:1rem}
.qa-tile:hover{transform:translateY(-2px);border-color:#8fb2ff;box-shadow:var(--sh-lift)}
.qa-icon,.set-icon{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;flex:none;border-radius:.75rem;background:#e1ecfb;color:#2563EB}
.qa-warn{background:#fdf0d5;color:#8a4b00}.qa-ok{background:#e6fbf8;color:#14B8A6}
.settings-card{display:flex;gap:var(--sp-4);align-items:flex-start}
.settings-card h2{margin:0}
.settings-card h2 a::before{display:none}
.set-open{display:inline-flex;align-items:center;gap:var(--sp-1);margin-top:var(--sp-2);color:#2563EB;font-weight:650;font-size:var(--fs-meta)}
.set-open .icon{width:1rem;height:1rem}
@media (max-width:64rem){.qa-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:40rem){.dash-hero{padding:var(--sp-4)}.qa-tile{min-height:6rem;padding:var(--sp-3)}}
.btn-approve{background:#2563EB;color:#fff}
