/* DocHuntr workflow components (v0.7 M5): dashboard, row lists, client detail, review workspace, email preview.
   Uses the tokens from dochuntr.css. System fonts only. */
.dash-hero{display:flex;flex-wrap:wrap;gap:var(--sp-4);align-items:flex-start;justify-content:space-between;margin-bottom:var(--sp-5)}
.dash-hero h1{font-size:2rem;margin:0}
.page-lead{color:var(--dc-ink-2);margin:var(--sp-1) 0 0;max-width:46rem}
.date-chip{display:inline-flex;align-items:center;gap:var(--sp-2);padding:.5rem .875rem;border:1px solid var(--dc-line);border-radius:var(--r-ctl);background:#fff;font-size:var(--fs-meta);color:var(--dc-ink-2);box-shadow:var(--sh-card)}
.date-chip .icon{width:1rem;height:1rem}
.badge-demo{display:inline-block;padding:.0625rem .5rem;border-radius:999px;background:#fff1d6;color:#6b4000;border:1px solid #f0d49a;font-size:.75rem;font-weight:750;letter-spacing:.06em;vertical-align:.1em}
.priority-body{display:flex;flex-wrap:wrap;gap:var(--sp-4);align-items:center;justify-content:space-between}
.priority-body h2{margin:0 0 var(--sp-1);font-size:.8125rem;text-transform:uppercase;letter-spacing:.08em;color:var(--dc-ink-2)}
.priority .big-text{font-size:1.375rem;font-weight:700;margin:0}
.stat-grid{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-4);grid-template-columns:repeat(4,minmax(0,1fr))}
.stat-grid .stat-card .big{margin:var(--sp-3) 0 var(--sp-1)}
.stat-grid .big a{color:var(--dc-ink);text-decoration:none}
.stat-grid .big a:hover{color:#2563EB}
.stat-sub{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;margin:0;font-size:var(--fs-meta);color:var(--dc-ink-2)}
.stat-info .stat-icon{background:#dde9fd;color:#0b3a8a}
.dash-cols{display:grid;gap:var(--sp-5);grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);margin-bottom:var(--sp-5);align-items:start}
.dash-cols>.dash-section,.dash-cols>section{margin-bottom:0}
.section-head{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:baseline;justify-content:space-between;margin-bottom:var(--sp-3)}
.section-head h2{margin:0;display:flex;align-items:center;gap:var(--sp-2)}
.row-list{list-style:none;margin:0;padding:0}
.row-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid #e8eef8;min-height:3.5rem}
.row-item:last-child{border-bottom:0}
.row-icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:.625rem;background:#e1ecfb;color:#2563EB}
.row-icon .icon{width:1.125rem;height:1.125rem}
.row-error{background:#fde6e7;color:#a4141b}.row-success{background:#e6fbf8;color:#14B8A6}.row-warning{background:#fff1d6;color:#7a4b00}
.row-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.row-sub{color:var(--dc-ink-2);font-size:.9375rem}
.row-meta{color:var(--dc-ink-2);font-size:var(--fs-meta)}
.row-action{flex:none;min-height:2.5rem;padding:0 var(--sp-4);font-size:.9375rem}
.dc-empty{text-align:center}
.dc-empty p{margin:0 auto var(--sp-3);max-width:28rem}
.cycles summary{cursor:pointer;list-style:revert}.inline-h{display:inline;margin:0}
.avatar{flex:none;display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:50%;background:var(--dc-grad);color:#fff;font-weight:750;font-size:1.25rem}
.client-head{display:flex;flex-wrap:wrap;gap:var(--sp-4);align-items:center;justify-content:space-between;margin-bottom:var(--sp-5)}
.client-id{display:flex;gap:var(--sp-4);align-items:center}.client-id h1{margin:0}.client-id p{margin:var(--sp-1) 0 0}
.client-head .actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}
.page-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-4)}
/* review workspace */
.review-head{display:flex;flex-wrap:wrap;gap:var(--sp-4);align-items:flex-start;justify-content:space-between;margin-bottom:var(--sp-5)}
.review-head h1{margin:0}
.eyebrow{margin:0 0 var(--sp-1);font-size:.8125rem;text-transform:uppercase;letter-spacing:.08em;color:#2563EB}
.review-nav{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center}
.review-grid{display:grid;gap:var(--sp-5);grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start}
.review-left>section>*+*,.review-right>*+*{margin-top:var(--sp-4)}
.review-right{position:sticky;top:var(--sp-4)}
.file-head{display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap;margin-bottom:var(--sp-3)}
.file-head>div{flex:1 1 12rem;min-width:0}.file-head h3{margin:0;overflow-wrap:anywhere}.file-head p{margin:0}
.review-preview{display:block;width:100%;height:32rem;max-height:70vh;object-fit:contain;border:1px solid var(--dc-line);border-radius:var(--r-ctl);background:#f6f9ff}
.review-file .actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-3)}
.decision-card{border-top:4px solid var(--dc-blue)}
.decision-box textarea{width:100%}
.decision-box .actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:var(--sp-3) 0}
.steps-mini{list-style:none;margin:0 0 var(--sp-3);padding:0;display:grid;gap:var(--sp-2);font-size:.9375rem}
.steps-mini li{display:flex;gap:var(--sp-2);align-items:center;color:var(--dc-ink-2)}
.steps-mini span{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;background:#dde9fd;color:#0b3a8a;font-weight:700;font-size:.8125rem}
.steps-mini .is-done span{background:#14B8A6;color:#fff}.steps-mini .is-done{color:#14B8A6;font-weight:650}
.recommend{margin:var(--sp-3) 0 0}
/* email preview */
.preview-grid{display:grid;gap:var(--sp-5);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start}
.preview-frame{display:block;width:100%;max-width:40rem;height:44rem;border:1px solid var(--dc-line);border-radius:var(--r-card);background:#eef2f6;box-shadow:var(--sh-card)}
.preview-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:.9375rem;line-height:1.6}
@media (max-width:64rem){.dash-cols,.review-grid,.preview-grid{grid-template-columns:minmax(0,1fr)}.review-right{position:static}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* v0.7 repair 4: semantic decision buttons (Approve green, Reject red outline, Waive neutral); one filled primary per view */
.btn.btn-approve{background:#2563EB;border-color:#2563EB;color:#fff;box-shadow:0 1px 2px rgba(11,31,68,.2)}
.btn.btn-approve:hover{background:#2563EB;border-color:#2563EB;filter:none}
.btn.btn-approve[disabled]{background:#eef1f7!important;color:#2f3a52!important;border:1px dashed #6b7896!important;box-shadow:none!important}
.decision-row .btn-danger-outline{border-width:2px;font-weight:700}
.decision-row .btn-secondary{border-color:#6b7896}
.decision-row>.btn{min-height:3rem}
.row-menu>summary{border:1px solid #b4c0d6;background:#fff;color:var(--dc-ink);padding:0 var(--sp-3)}
.row-menu>summary:hover{background:#f1f5fc;text-decoration:none}
.row-menu .caret{margin-left:.25rem;font-size:.75rem}
@media (max-width:30rem){
.row-action{width:100%}
.dash-hero h1{font-size:1.5rem}
.review-preview{height:22rem}.preview-frame{height:40rem}
.client-head .actions>*{width:100%}
}
.decision-row>.btn{white-space:nowrap;padding:0 var(--sp-2)}
@media (max-width:30rem){.review-file .actions>form,.review-file .actions>form>.btn{width:100%}.decision-row{gap:var(--sp-2)}}

p.dc-check{margin:1rem 0 .75rem}
.dc-decision-why{margin:var(--sp-2) 0 var(--sp-2)}
.dash-cols .row-item>.dc-row-actions{grid-column:2;justify-content:flex-start}
@media (min-width:48.0625rem){.dash-cols .row-item>.dc-row-actions{grid-column:auto}}

/* v0.8 M5: focused review decision workspace */
.review-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.review-file{display:flex;flex-direction:column;gap:var(--sp-3)}
.review-file .review-preview{height:min(38rem,70vh);width:100%}
.review-step{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:var(--sp-2);min-height:14rem;padding:var(--sp-5);border:2px dashed #004ffc;border-radius:14px;background:#f3f7ff}
.review-step h4{margin:0;font-size:1.125rem;color:#01133a}
.review-step p{margin:0;overflow-wrap:anywhere}
.review-step__mark{display:inline-flex;width:2.5rem;height:2.5rem;align-items:center;justify-content:center;border-radius:50%;background:#e1ecff;color:#004ffc}
.review-note{margin:0 0 var(--sp-3);font-size:.9375rem;overflow-wrap:anywhere}
.review-right .decision-box>*+*{margin-top:var(--sp-3)}
.review-reason__box{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--dc-line);border-radius:var(--r-ctl);background:#fff}
.review-reason__box textarea{width:100%;box-sizing:border-box;min-height:5rem}
.review-reason__box .dc-act{align-self:flex-start}
.review-reason:empty{display:none}
.review-how summary{cursor:pointer;font-weight:600;min-height:2.75rem;display:flex;align-items:center}
.review-how summary:focus-visible,.review-reason__box textarea:focus-visible,.dc-decision .dc-act:focus-visible{outline:3px solid #004ffc;outline-offset:2px}
.dc-decision .dc-act[aria-pressed="true"]{box-shadow:0 0 0 2px currentColor}
@media (max-width:30rem){.review-step{padding:var(--sp-4);min-height:0}.dc-decision{grid-template-columns:minmax(0,1fr)}.review-reason__box .dc-act{align-self:stretch}}
.review-right .decision-box{border:0;padding:0;background:none;box-shadow:none}
.review-right .dc-card{min-width:0}
.review-note .dc-chip{margin-top:var(--sp-2);max-width:100%}
.review-how ul{padding-left:var(--sp-4)}
@media (max-width:64rem){.review-grid{grid-template-columns:minmax(0,1fr)}.review-right{position:static}}
