.hw-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.hw-icon{vertical-align:middle;flex-shrink:0;display:inline-block}.hw-num{text-align:right;font-variant-numeric:tabular-nums}.hw-btn{justify-content:center;align-items:center;gap:var(--space-2);-webkit-tap-highlight-color:transparent;border-radius:var(--rounded-md);font-family:var(--font-sans);cursor:pointer;white-space:nowrap;border:0;font-weight:700;transition:background-color .15s cubic-bezier(.4,0,.2,1),color .15s cubic-bezier(.4,0,.2,1),transform .1s;display:inline-flex;position:relative}.hw-btn:active:not(:disabled){transform:scale(.98)}.hw-btn--lg{height:56px;padding:0 32px;font-size:16px;line-height:24px}.hw-btn--md{height:48px;padding:0 24px;font-size:16px;line-height:24px}.hw-btn--sm{height:40px;padding:0 20px;font-size:14px;line-height:20px}.hw-btn--xs{height:36px;padding:0 14px;font-size:14px;line-height:20px}.hw-btn--xs:after{content:"";position:absolute;inset:-4px 0}.hw-btn--block{width:100%;display:flex}.hw-btn--primary{background:var(--action);color:var(--on-action)}.hw-btn--primary:hover{background:var(--action-hover)}.hw-btn--secondary{background:var(--surface);color:var(--primary-strong);box-shadow:inset 0 0 0 1.5px var(--primary-strong)}.hw-btn--secondary:hover{background:var(--surface-tint)}.hw-btn--tertiary{height:auto;color:var(--primary-strong);background:0 0;padding:0 4px}.hw-btn--tertiary:hover{color:var(--primary)}.hw-btn--white{color:#153e5c;background:#fff}.hw-btn--white:hover{color:#0071b0}.hw-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.hw-btn:disabled{cursor:not-allowed;background:var(--disabled-bg);color:var(--disabled-ink);box-shadow:none}.hw-btn--tertiary:disabled{background:0 0}.hw-btn[aria-busy=true] .hw-btn__label,.hw-btn[aria-busy=true] .hw-icon{visibility:hidden}.hw-btn[aria-busy=true].hw-btn--primary{background:var(--action-hover)}.hw-btn__spinner{border-radius:var(--rounded-full);border:2px solid;border-right-color:#0000;width:20px;height:20px;animation:1s linear infinite hw-spin;position:absolute}@keyframes hw-spin{to{transform:rotate(360deg)}}.hw-field{gap:var(--space-2);font-family:var(--font-sans);flex-direction:column;display:flex}.hw-field__label{color:var(--ink);font-size:14px;font-weight:700;line-height:20px}.hw-input{height:56px;padding:0 var(--space-4);align-items:center;gap:var(--space-2);background:var(--surface);border:1px solid var(--border-input);border-radius:var(--rounded-md);transition:border-color .15s;display:flex}.hw-input:hover{border-color:var(--ink-muted)}.hw-input input{min-width:0;font:inherit;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:16px;line-height:24px}.hw-input input::placeholder{color:var(--ink-placeholder)}.hw-input:focus-within{outline:2px solid var(--focus-ring);outline-offset:-2px}.hw-input--invalid{border-color:var(--danger)}.hw-input--disabled{background:var(--disabled-bg);color:var(--disabled-ink)}.hw-input__suffix{color:var(--ink-muted);font-size:16px;font-weight:700}.hw-field__msg{color:var(--ink-muted);align-items:flex-start;gap:6px;margin:0;font-size:14px;line-height:20px;display:flex}.hw-field__msg .hw-icon{margin-top:2px}.hw-field__msg--error{color:var(--danger-text)}.hw-tag{align-items:center;gap:var(--space-1);border-radius:var(--rounded-full);font-family:var(--font-sans);white-space:nowrap;background:var(--tag-bg);height:28px;color:var(--tag-ink);padding:0 10px;font-size:14px;font-weight:700;line-height:20px;display:inline-flex}.hw-tag--sm{height:22px;padding:0 8px;font-size:12px;line-height:16px}.hw-tag--lg{height:32px;padding:0 12px;font-size:16px;line-height:24px}.hw-tag--blue{--tag-bg:var(--primary-tint);--tag-ink:var(--on-primary-tint);--tag-strong:var(--action);--tag-on:var(--on-action)}.hw-tag--green{--tag-bg:var(--success-tint);--tag-ink:var(--success-text);--tag-strong:var(--green-090)}.hw-tag--orange{--tag-bg:var(--warning-tint);--tag-ink:var(--warning-text);--tag-strong:var(--orange-090)}.hw-tag--red{--tag-bg:var(--danger-tint);--tag-ink:var(--danger-text);--tag-strong:var(--red-090)}.hw-tag--gray{--tag-bg:var(--border);--tag-ink:var(--ink-secondary);--tag-strong:var(--gray-110)}.hw-tag--purple{--tag-bg:var(--purple-020);--tag-ink:var(--purple-100);--tag-strong:var(--purple-090)}[data-theme=dark] .hw-tag--purple{--tag-bg:#7d63e73d;--tag-ink:var(--purple-040)}.hw-tag--strong{background:var(--tag-strong);color:var(--tag-on,#fff)}.hw-banner{align-items:flex-start;gap:var(--space-2);padding:var(--space-4);border-radius:var(--rounded-md);background:var(--b-bg);color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:24px;display:flex}.hw-banner--md{padding:var(--space-3) var(--space-4);font-size:14px;line-height:20px}.hw-banner--md .hw-banner__icon{margin-top:3px}.hw-banner--sm{border-radius:var(--rounded);gap:6px;padding:6px 10px;font-size:14px;line-height:20px}.hw-banner--info{--b-bg:var(--primary-tint);--b-ic:var(--primary-strong)}.hw-banner--success{--b-bg:var(--success-tint);--b-ic:var(--success-text)}.hw-banner--warning{--b-bg:var(--warning-tint);--b-ic:var(--warning-text)}.hw-banner--danger{--b-bg:var(--danger-tint);--b-ic:var(--danger-text)}.hw-banner__icon{color:var(--b-ic)}.hw-banner__body{flex:1;min-width:0}.hw-banner__title{margin:0;font-weight:700}.hw-banner__text{color:var(--ink-secondary);margin:0}.hw-banner__action{margin-top:var(--space-2)}.hw-banner__dismiss{border-radius:var(--rounded-full);width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border:0;place-content:center;margin:-10px -10px -10px auto;display:grid}.hw-seg{border-radius:var(--rounded-md);background:var(--surface-subtle);box-shadow:inset 0 0 0 1px var(--border);font-family:var(--font-sans);align-items:stretch;gap:4px;padding:4px;font-size:14px;line-height:20px;display:inline-flex}.hw-seg--block{display:flex}.hw-seg--block .hw-seg__item{flex:1;min-width:0}.hw-seg__item{justify-content:center;align-items:center;gap:var(--space-1);border-radius:calc(var(--rounded-md) - 4px);min-width:64px;min-height:36px;color:var(--ink-secondary);cursor:pointer;text-align:center;padding:8px 14px;font-weight:700;transition:background .15s,color .15s;display:flex;position:relative}.hw-seg__item input{opacity:0;pointer-events:none;position:absolute}.hw-seg__item--active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-xs)}[data-theme=dark] .hw-seg__item--active{background:var(--surface-tint)}.hw-seg__item:has(input:focus-visible){outline:2px solid var(--focus-ring);outline-offset:1px}.hw-seg--sm{padding:3px}.hw-seg--sm .hw-seg__item{min-width:44px;min-height:30px;padding:4px 10px;font-size:14px}.hw-tabs{gap:var(--space-2);font-family:var(--font-sans);scrollbar-width:none;font-size:14px;line-height:21px;display:flex;overflow-x:auto}.hw-tabs__tab{border-radius:var(--rounded-full);min-height:40px;color:var(--ink-secondary);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:8px 16px;font-weight:700;display:inline-flex}.hw-tabs--pill .hw-tabs__tab--active{background:var(--ink);color:var(--surface)}.hw-tabs--pill .hw-tabs__tab--active .hw-tabs__count{background:var(--surface);color:var(--ink)}.hw-tabs--line{border-bottom:1px solid var(--border);gap:0}.hw-tabs--line .hw-tabs__tab{border-radius:0;min-height:48px;padding:12px;box-shadow:inset 0 -3px #0000}.hw-tabs--line .hw-tabs__tab--active{color:var(--ink);box-shadow:inset 0 -3px 0 var(--primary)}.hw-tabs__tab:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.hw-tabs__count{border-radius:var(--rounded-full);background:var(--primary-tint);min-width:24px;height:24px;color:var(--on-primary-tint);place-content:center;padding:0 6px;font-size:12px;display:grid}.hw-switch{align-items:center;gap:var(--space-2);font-family:var(--font-sans);color:var(--ink);cursor:pointer;font-size:16px;display:inline-flex}.hw-switch input{opacity:0;pointer-events:none;position:absolute}.hw-switch{min-height:44px}.hw-switch__track{border-radius:var(--rounded-full);background:var(--border-input);flex-shrink:0;width:52px;height:32px;transition:background .15s;position:relative}.hw-switch__thumb{border-radius:var(--rounded-full);width:26px;height:26px;box-shadow:var(--shadow-xs);background:#fff;transition:transform .15s;position:absolute;top:3px;left:3px}.hw-switch input:checked+.hw-switch__track{background:var(--action)}.hw-switch input:checked+.hw-switch__track .hw-switch__thumb{transform:translate(20px)}.hw-switch input:focus-visible+.hw-switch__track{outline:2px solid var(--focus-ring);outline-offset:2px}.hw-switch--disabled{cursor:not-allowed;color:var(--disabled-ink)}.hw-switch--disabled .hw-switch__track{background:var(--disabled-bg)}.hw-card{background:var(--surface);border-radius:var(--rounded-lg);box-shadow:var(--shadow-card);font-family:var(--font-sans);color:var(--ink)}.hw-card--pad-sm{padding:var(--space-3)}.hw-card--pad-md{padding:var(--space-5)}.hw-card--pad-lg{padding:var(--space-6)}@media (width>=768px){.hw-card--pad-md{padding:var(--space-6)}}.hw-card--interactive{cursor:pointer;transition:box-shadow .15s}.hw-card--interactive:hover{box-shadow:var(--shadow-sm)}.hw-card--interactive:active{transform:scale(.99)}.hw-card__head{justify-content:space-between;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.hw-card__title{letter-spacing:-.01em;margin:0;font-size:18px;font-weight:700;line-height:24px}@media (width>=768px){.hw-card__title{font-size:20px;line-height:26px}}.hw-card__subtitle{color:var(--ink-muted);margin:2px 0 0;font-size:14px;line-height:20px}.hw-stat{gap:var(--space-1);font-family:var(--font-sans);color:var(--ink);flex-direction:column;display:flex}.hw-stat p{margin:0}.hw-stat__label{color:var(--ink-muted);font-size:14px;font-weight:700;line-height:20px}.hw-stat__value{align-items:baseline;gap:var(--space-1);font-variant-numeric:tabular-nums;display:flex}.hw-stat__unit{color:var(--ink-muted);font-size:16px;font-weight:700;line-height:24px}.hw-stat__delta{align-items:center;gap:var(--space-2);color:var(--ink-muted);flex-wrap:wrap;font-size:14px;line-height:20px;display:flex;margin-top:var(--space-1)!important}.hw-stat__chip{border-radius:var(--rounded-full);background:var(--surface-subtle);height:26px;color:var(--ink);align-items:center;gap:2px;padding:0 10px 0 6px;font-weight:700;display:inline-flex}.hw-stat__delta--good .hw-stat__chip{background:var(--success-tint);color:var(--success-text)}.hw-stat__delta--bad .hw-stat__chip{background:var(--danger-tint);color:var(--danger-text)}.hw-stat__caption{color:var(--ink-muted);font-size:12px;line-height:16px}.hw-chart{width:100%;font-family:var(--font-sans);color:var(--ink);min-width:0;margin:0;position:relative}.hw-chart__head{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.hw-chart__title{color:var(--ink);font-size:16px;font-weight:700;line-height:24px}.hw-chart__unit{color:var(--ink-muted);font-weight:400}.hw-chart__view{align-items:center;gap:var(--space-1);border-radius:var(--rounded-full);min-height:36px;color:var(--primary-strong);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.hw-chart__view:hover{background:var(--surface-tint)}.hw-chart__view:focus-visible{outline:2px solid var(--focus-ring)}.hw-chart__plot{position:relative}.hw-chart__plot svg{display:block;overflow:visible}.hw-chart__grid{stroke:var(--chart-grid);stroke-width:1px}.hw-chart__axis{stroke:var(--chart-axis);stroke-width:1px}.hw-chart__ref{stroke:var(--chart-reference);stroke-width:1.5px;stroke-dasharray:4 4}.hw-chart__crosshair{stroke:var(--chart-axis);stroke-width:1px}.hw-chart__tick{fill:var(--ink-muted);font-size:12px;font-family:var(--font-sans);font-variant-numeric:tabular-nums}.hw-chart__bar path,.hw-chart__bar rect{transition:opacity .15s}.hw-chart__bar--dim path,.hw-chart__bar--dim rect:not([fill=transparent]){opacity:.35}.hw-chart__tablewrap{max-height:280px;overflow:auto}.hw-chart__missing{fill:var(--surface);stroke:var(--ink-muted);stroke-width:1.5px;transition:opacity .15s}.hw-chart__bar--dim .hw-chart__missing{opacity:.35}.hw-chart__divider{stroke:var(--chart-axis);stroke-width:1px}.hw-chart__group{fill:var(--ink-secondary);font-size:12px;font-weight:700;font-family:var(--font-sans);font-variant-numeric:tabular-nums}.hw-legend{gap:var(--space-1) var(--space-4);margin:var(--space-2) 0 0;color:var(--ink-secondary);flex-wrap:wrap;padding:0;font-size:14px;line-height:20px;list-style:none;display:flex}.hw-legend li{align-items:center;gap:6px;display:inline-flex}.hw-legend__key{background:var(--key);border-radius:2px;flex-shrink:0;width:10px;height:10px;display:inline-block}.hw-legend__key--line{border-radius:1px;width:14px;height:2px}.hw-legend__key--dashed{background:repeating-linear-gradient(90deg,var(--key) 0 4px,transparent 4px 7px)}.hw-legend__key--hatched{background:repeating-linear-gradient(45deg,var(--key) 0 2px,var(--surface-tint) 2px 4px)}.hw-legend__key--ring{box-sizing:border-box;border:1.5px solid var(--ink-muted);border-radius:var(--rounded-full);background:var(--surface)}.hw-readout{min-height:76px;margin-bottom:var(--space-3);flex-direction:column;gap:2px;display:flex}.hw-readout__label{color:var(--ink-muted);font-size:14px;font-weight:700;line-height:20px}.hw-readout__value{letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;align-items:baseline;gap:6px;font-size:32px;font-weight:900;line-height:36px;display:flex}.hw-readout__value--missing{letter-spacing:0;color:var(--ink-muted);font-size:20px;font-weight:700}.hw-readout__value small{letter-spacing:0;color:var(--ink-muted);font-size:16px;font-weight:700;line-height:24px}.hw-readout__detail{color:var(--ink-secondary);flex-wrap:wrap;gap:4px 12px;font-size:14px;line-height:20px;display:flex}.hw-readout__detail span{align-items:center;gap:6px;display:inline-flex}.hw-readout__detail i{display:inline-block}.hw-tooltip{pointer-events:none;border-radius:var(--rounded-md);background:var(--surface-inverse);min-width:120px;color:var(--on-inverse);box-shadow:var(--shadow-md);z-index:2;padding:8px 12px;font-size:12px;line-height:16px;position:absolute;transform:translate(-50%,-100%)}.hw-tooltip p{white-space:nowrap;align-items:center;gap:6px;margin:0;display:flex}.hw-tooltip p+p{margin-top:2px}.hw-tooltip strong{font-variant-numeric:tabular-nums;margin-left:auto;padding-left:8px;font-size:14px;line-height:21px}.hw-tooltip__title{font-weight:700;margin-bottom:4px!important}.hw-tooltip__total{opacity:.95;border-top:1px solid;padding-top:2px}.hw-tooltip__key{background:var(--key);width:8px;height:8px;box-shadow:0 0 0 1px var(--on-inverse);border-radius:2px}.hw-breakdown{font-family:var(--font-sans);color:var(--ink);margin:0}.hw-breakdown__bar{height:14px;margin:var(--space-3) 0 var(--space-2);gap:3px;display:flex}.hw-breakdown__bar span:first-child{border-radius:var(--rounded-full) 0 0 var(--rounded-full)}.hw-breakdown__bar span:last-child{border-radius:0 var(--rounded-full) var(--rounded-full) 0}.hw-breakdown__bar span{min-width:2px}.hw-breakdown__list{margin:0;padding:0;font-size:16px;line-height:24px;list-style:none;display:grid}.hw-breakdown__list li{align-items:center;gap:var(--space-3);border-bottom:1px solid var(--border);grid-template-columns:12px 1fr auto 48px;min-height:48px;display:grid}.hw-breakdown__list li:last-child{border-bottom:0}.hw-breakdown__list .hw-legend__key{border-radius:var(--rounded-full);width:12px;height:12px}.hw-breakdown__label{color:var(--ink-secondary)}.hw-breakdown__val{font-variant-numeric:tabular-nums;font-weight:700}.hw-breakdown__pct{text-align:right;color:var(--ink-muted);font-variant-numeric:tabular-nums}.hw-tablewrap{border:1px solid var(--border);border-radius:var(--rounded-md);background:var(--surface);width:100%;overflow-x:auto}.hw-table{border-collapse:collapse;width:100%;font-family:var(--font-sans);color:var(--ink);font-size:14px;line-height:20px}.hw-table th,.hw-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;height:52px;padding:0 16px}.hw-table thead th{background:var(--surface-subtle);height:44px;color:var(--ink-muted);font-size:13px;font-weight:700;line-height:16px;position:sticky;top:0}.hw-table tbody th{font-weight:400}.hw-table tbody tr:last-child td,.hw-table tbody tr:last-child th{border-bottom:0}.hw-table th.hw-num,.hw-table td.hw-num{text-align:right}.hw-table--compact th,.hw-table--compact td{height:40px;padding:0 12px}.hw-table__row--click{cursor:pointer}.hw-table__row--click:hover{background:var(--surface-tint)}.hw-table__sort{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.hw-table__sort span{color:var(--ink-muted);font-size:10px}
