/* WHV workspace and responsive controls; inherits Swing Tracker theme tokens. */
#whvView{color:var(--text,#1c2420);overflow-wrap:anywhere}
#whvView #stWhvModernDashboard{background:transparent}
#whvView [hidden]{display:none!important}
#whvView .whv-page-nav{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:16px;margin:0 0 24px}
#whvView .whv-page-nav>label{display:grid;gap:8px;width:min(100%,320px);font-size:.875rem;font-weight:600}
#whvPageSelect{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--border,#cad5ce);border-radius:10px;background:var(--surface,#fff);color:inherit;font:inherit}
#whvView .whv-page-heading{margin:0 0 24px}
#whvView .whv-page-heading h1{margin:6px 0 8px;font-size:clamp(1.5rem,3vw,2rem);line-height:1.2}
#whvView .whv-page-heading p{margin:0;color:var(--muted,#65726b);line-height:1.5}
#whvView .whv-home-summary{display:grid;gap:8px;padding:20px;border:1px solid var(--border,#cad5ce);border-radius:14px;background:var(--surface-2,var(--surface,#fff));line-height:1.5}
#whvView .whv-home-summary strong{font-size:1.125rem}
#whvView .whv-home-summary span{color:var(--muted,#65726b);font-size:.875rem}
#whvView .whv-page-actions{display:flex;flex-wrap:wrap;align-items:stretch;gap:12px;margin:16px 0 20px}
#whvView .whv-page-actions>.btn{margin:0;flex:0 1 auto}
#whvView .whv-feature-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
#whvView .whv-feature{appearance:none;display:grid;grid-template-columns:40px minmax(0,1fr) 12px;align-items:center;gap:14px;min-width:0;width:100%;min-height:112px;padding:20px;border:1px solid var(--border,#cad5ce);border-radius:14px;background:var(--surface,#fff);color:var(--text,#1c2420);font:inherit;text-align:left;cursor:pointer;white-space:normal;line-height:1.45}
#whvView .whv-feature:hover{background:var(--surface-2,#edf4f0);border-color:var(--primary,#167d6b)}
#whvView .whv-feature:focus-visible{outline:3px solid var(--primary,#167d6b);outline-offset:3px}
#whvView .whv-feature-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--surface-2,#edf4f0);color:var(--primary,#167d6b);font-size:1.4rem}
#whvView .whv-feature strong,#whvView .whv-feature small{display:block}
#whvView .whv-feature strong{font-size:1rem}
#whvView .whv-feature small{margin-top:6px;color:var(--muted,#65726b);font-size:.8125rem;font-weight:400}
#whvView .whv-feature>span:last-child{font-size:1.4rem;color:var(--muted,#65726b)}
#whvView .whv-swing-card{padding:18px;border:1px solid var(--border,#cad5ce);border-radius:14px;background:var(--surface,#fff);line-height:1.5}
#whvView .whv-swing-card-heading{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:12px}
.whv-swing-card-title,.whv-swing-heading{display:grid;gap:5px;min-width:0}
.whv-swing-card-title strong,.whv-swing-heading strong{font-size:1rem}
.whv-swing-card-title span,.whv-swing-card-title small,.whv-swing-heading span,.whv-swing-heading small{color:var(--muted,#65726b)}
#whvView .whv-swing-card p{margin:12px 0;font-size:.875rem}
#whvView .whv-swing-work-confirmation{padding-block:4px}
#whvView .whv-swing-work-confirmation small{display:block;margin-top:6px;color:var(--muted,#65726b)}
#whvView .whv-swing-confirmed-badge{display:inline-flex;align-items:center;gap:6px;color:var(--success,#16806c);font-size:.75rem;font-weight:700}
[data-theme=dark] #whvView .whv-swing-confirmed-badge{color:#71d4b3}
#whvView .whv-swing-confirmed-badge svg{flex:none}
#whvView .whv-swing-card .st-whv-review-actions{padding-top:4px;justify-content:flex-start;gap:12px}
#whvView .whv-list-pagination{flex-wrap:wrap;gap:12px}
#whvView .whv-list-pagination>span{font-size:.875rem;text-align:center}
#whvView .whv-empty-state>.st-whv-info-box{margin-top:0}
#whvView .whv-empty-state{margin-top:20px}
#whvView .whv-report-actions{flex-wrap:wrap;align-items:center}
#whvView .whv-report-actions .st-whv-report-ready{flex-basis:100%;color:var(--muted,#65726b);font-size:.8125rem;line-height:1.5;text-align:center}
/* Keep the confirmation actions visible while only the details scroll. */
#stWhvEngineModal .whv-swing-modal{display:flex;flex-direction:column;overflow:hidden;max-height:calc(100dvh - 24px)}
#stWhvEngineModal .whv-swing-modal>.st-whv-modal-head{flex:none;padding-bottom:16px}
#whvSwingReviewForm{display:flex;flex-direction:column;min-height:0;overflow:hidden}
#whvSwingReviewForm .whv-swing-body{min-height:0;overflow:auto;overscroll-behavior:contain;scroll-padding:16px;padding:4px 4px 16px;line-height:1.5}
#whvSwingReviewForm .whv-check-row{display:flex;align-items:flex-start;gap:12px;padding:14px;border:1px solid var(--border,#cad5ce);border-radius:10px;cursor:pointer}
#whvSwingReviewForm .whv-check-row input{width:20px;height:20px;flex:none;margin:2px 0 0}
#whvSwingReviewForm .whv-swing-footer{flex:none;padding-top:12px;border-top:1px solid var(--border,#cad5ce);background:var(--surface,#fff)}
#whvSwingReviewForm .whv-swing-footer>p{margin:0;color:var(--muted,#65726b);font-size:.8125rem;line-height:1.45}
#whvSwingReviewForm .st-whv-form-actions{position:static;display:flex;flex-wrap:wrap;gap:12px;margin:12px 0 0;padding:0;border:0;justify-content:flex-end}
#whvSwingReviewForm .st-whv-form-actions .btn{flex:1 1 130px}
@media(min-width:680px){#whvView .whv-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1200px){#whvView .whv-feature-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){
  #whvView .whv-page-nav>label{width:100%}
  #whvView .whv-page-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  #whvView .whv-page-actions>.btn:only-child{grid-column:1/-1}
  #whvView .whv-feature{padding:16px;gap:12px}
  #whvView .whv-swing-card{padding:16px}
  #whvView .st-whv-chart-grid,#whvView .st-whv-two-col,#whvView .st-whv-forecast{grid-template-columns:minmax(0,1fr)}
  #whvView .st-whv-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #stWhvEngineModal .st-whv-form-grid{grid-template-columns:minmax(0,1fr)}
}
#stWhvModernDashboard,.st-whv-modal{color:var(--text,#1c2420);overflow-wrap:anywhere}
#stWhvModernDashboard *, .st-whv-modal *{box-sizing:border-box;min-width:0}
.whv-subnav{display:flex;flex-wrap:wrap;gap:8px;padding:12px 0;margin-bottom:12px}
.whv-subnav .btn{flex:1 1 115px;min-height:44px;text-align:center}
.st-whv-modern a,.st-whv-modal a{color:var(--text,#1c2420);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}
.st-whv-modal input,.st-whv-modal select,.st-whv-modal textarea{max-width:100%;color:var(--text,#1c2420);background:var(--surface,#fff)}
.st-whv-form-grid input[type=checkbox]{width:20px;height:20px;vertical-align:middle;flex:none}
.st-whv-form-grid fieldset{grid-column:1/-1;border:1px solid var(--border,#cad5ce);border-radius:10px;padding:12px}
.st-whv-form-grid fieldset label{margin-top:8px}.st-whv-form-grid fieldset small{font-weight:400}
.st-whv-form-actions{justify-content:center;position:sticky;bottom:-16px;background:var(--surface,#fff);padding:12px 0;border-top:1px solid var(--border,#cad5ce)}
.st-whv-form-actions .btn{min-height:44px;max-width:100%}
.st-whv-modal{overscroll-behavior:contain}.st-whv-modal button:focus-visible,.st-whv-modern button:focus-visible{outline:3px solid #648dd5;outline-offset:2px}
.whv-months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:12px}
.whv-month h4{margin:0 0 8px;font-size:.8rem}.whv-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center;font-size:.65rem}
.whv-days .st-whv-day{min-height:28px;aspect-ratio:1;font-size:.7rem}
.whv-days .outside{opacity:.38;background:repeating-linear-gradient(45deg,transparent,transparent 3px,#aaa 4px,#aaa 5px)}
.whv-days .future{background:var(--surface-2,#eaf0fc);border:1px dashed #6389d7;color:var(--text,#26334a)}
.whv-collapse{margin-top:12px;border:1px solid var(--border,#cad5ce);border-radius:12px;padding:12px}
.whv-collapse>summary{font-weight:700;cursor:pointer;min-height:28px}
.whv-collapse>.st-whv-panel-card{border:0;padding:0;margin-top:12px}
.st-whv-review-list{max-height:650px;overflow:auto}.st-whv-detail-list strong{max-width:70%;text-align:right}
.st-whv-segmented-progress i{flex-shrink:0}.st-whv-progress-label{flex-wrap:wrap}
.st-whv-line-chart text{fill:var(--muted,#65726b)}
[data-theme=dark] .st-whv-warnings,[data-theme=dark] .st-whv-condition-row.attention{background:#342c1c;color:#ffdd97}
[data-theme=dark] .st-whv-alert.danger{background:#382326;color:#ffc8cc}
[data-theme=dark] .st-whv-success,[data-theme=dark] .st-whv-card-score,[data-theme=dark] .st-whv-kicker{color:#71d4b3}
@media(max-width:900px){.whv-months{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.whv-months{grid-template-columns:1fr}.whv-days .st-whv-day{min-height:38px}.st-whv-modal .st-whv-date-list{grid-template-columns:repeat(2,minmax(0,1fr))}.st-whv-date-list label{white-space:normal;min-height:44px}.st-whv-card-head{flex-wrap:wrap}.st-whv-form-grid{grid-template-columns:1fr}.st-whv-form-actions{bottom:-12px}.st-whv-action-row .btn{min-height:44px}.st-whv-detail-list div{flex-wrap:wrap}.st-whv-detail-list strong{max-width:100%}}

.st-whv-date-list{display:block!important}.whv-pick-month{margin:12px 0}.whv-pick-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin-top:8px}.whv-pick-grid>small{text-align:center;color:var(--muted)}.st-whv-date-list .whv-pick-grid label{display:grid;place-items:center;min-height:40px;margin:0;padding:0;position:relative;cursor:pointer;border-radius:6px;background:var(--surface)}.whv-pick-grid input{position:absolute;opacity:0;width:100%!important;height:100%;margin:0;cursor:pointer}.whv-pick-grid label:has(input:checked){background:#11735e;color:#fff;border-color:#11735e}.whv-pick-grid label:focus-within{outline:2px solid #429e86;outline-offset:1px}.whv-pick-grid label span{pointer-events:none}

/* Swing lists have a bounded page size on every device. */
.whv-swing-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.whv-swing-grid .whv-swing-card{margin:0;display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}
.whv-swing-grid .whv-swing-card>.btn,.whv-swing-grid .st-whv-review-actions{margin-top:auto;align-self:flex-start}
.whv-list-tools{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px;margin:16px 0}
.whv-list-tools label{display:grid;gap:6px;width:min(100%,420px)}
.whv-list-tools input{width:100%;min-height:42px;padding:9px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text)}
.whv-list-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin:16px 0}
.whv-list-pagination button:disabled{opacity:.45;cursor:default}
.whv-swing-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.whv-swing-totals span{padding:12px;border:1px solid var(--border);border-radius:10px}
@media(min-width:900px){.whv-swing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1400px){.whv-swing-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

.whv-job-duties{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
