.banner{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-size-sm);font-weight:var(--font-weight-bold)}.banner-ok{background:var(--color-ok-bg);color:var(--color-ok)}.banner-warn{background:var(--color-warn-bg);color:var(--color-warn)}.banner-bad{background:var(--color-bad-bg);color:var(--color-bad)}.banner-info{background:var(--color-info-bg);color:var(--color-info)}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-min);padding:0 var(--space-6);border:var(--border-width) solid transparent;border-radius:var(--radius-md);font-size:var(--text-size-base);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out);text-decoration:none;display:inline-flex}.btn-block{width:100%;display:flex}.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-pressed)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-line-strong)}.btn-secondary:hover:not(:disabled){background:var(--color-neutral-bg)}.btn-ghost{color:var(--color-primary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-selected-bg)}.btn-danger{background:var(--color-danger);color:var(--color-on-danger)}.btn:disabled{background:var(--color-disabled-bg);color:var(--color-disabled);cursor:not-allowed;border-color:#0000}.card{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.checkbox{align-items:center;gap:var(--space-3);min-height:var(--tap-min);font-weight:var(--font-weight-semibold);cursor:pointer;display:flex}.checkbox-input{width:var(--space-6);height:var(--space-6);accent-color:var(--color-primary);flex:none;margin:0}.chip{align-items:center;gap:var(--space-1);min-height:var(--space-8);padding:0 var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-size-sm);font-weight:var(--font-weight-bold);white-space:nowrap;display:inline-flex}.chip-ok{background:var(--color-ok-bg);color:var(--color-ok)}.chip-warn{background:var(--color-warn-bg);color:var(--color-warn)}.chip-bad{background:var(--color-bad-bg);color:var(--color-bad)}.chip-info{background:var(--color-info-bg);color:var(--color-info)}.chip-neutral{background:var(--color-neutral-bg);color:var(--color-neutral)}.leaf{flex:none}.leaf-sm{width:var(--space-8);height:var(--space-8)}.leaf-md{width:calc(var(--space-12) + var(--space-8));height:calc(var(--space-12) + var(--space-8))}.leaf-body{fill:var(--color-primary)}.leaf-cross{fill:var(--color-on-primary)}.leaf-stem{fill:none;stroke:var(--color-accent);stroke-width:5.5px;stroke-linecap:round}.field{gap:var(--space-1);flex-direction:column;display:flex}.field-label{font-size:var(--text-size-sm);font-weight:var(--font-weight-semibold)}.input{width:100%;min-height:var(--tap-min);padding:0 var(--space-3);border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--text-size-base)}.input:focus-visible{border-color:var(--color-primary);outline:var(--focus-width) solid var(--color-selected-bg);outline-offset:0}.input[aria-invalid=true]{border-color:var(--color-danger)}.field-hint{color:var(--color-text-muted);font-size:var(--text-size-sm);margin:0}.field-error{color:var(--color-bad);font-size:var(--text-size-sm);font-weight:var(--font-weight-semibold);margin:0}.listrow{align-items:center;gap:var(--space-3);width:100%;min-height:var(--tap-min);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);text-align:left;text-decoration:none;display:flex}a.listrow:hover,button.listrow:hover{background:var(--color-neutral-bg);color:var(--color-text)}.listrow-avatar{width:var(--tap-min);height:var(--tap-min);border-radius:var(--radius-pill);background:var(--color-selected-bg);color:var(--color-primary-pressed);font-weight:var(--font-weight-heavy);flex:none;place-items:center;display:grid}.listrow-text{flex-direction:column;flex:1;min-width:0;display:flex}.listrow-title{font-weight:var(--font-weight-bold)}.listrow-details{color:var(--color-text-muted);font-size:var(--text-size-sm)}.quickpick{gap:var(--space-2);flex-wrap:wrap;display:flex}.quickpick-option{min-height:var(--tap-min);padding:0 var(--space-4);border:var(--border-width) solid var(--color-line-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--text-size-base);font-weight:var(--font-weight-bold);cursor:pointer}.quickpick-option[aria-pressed=true]{border-color:var(--color-primary);background:var(--color-selected-bg)}.segmented{gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-md);background:var(--color-neutral-bg);border:0;grid-auto-columns:1fr;grid-auto-flow:column;margin:0;display:grid}.segmented-option{min-height:var(--tap-min);cursor:pointer;display:flex}.segmented-label{border-radius:var(--radius-sm);color:var(--color-text-muted);font-weight:var(--font-weight-bold);flex:1;justify-content:center;align-items:center;display:flex}.segmented-option input:checked+.segmented-label{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-card)}.segmented-option input:focus-visible+.segmented-label{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-offset)}.sheet-backdrop{background:var(--color-backdrop);position:fixed;inset:0}.sheet{border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--color-surface);max-height:90dvh;box-shadow:var(--shadow-sheet);flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0}.sheet:focus{outline:none}.sheet-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);display:flex}.sheet-title{font-size:var(--text-size-lg)}.sheet-close{min-width:var(--tap-min);min-height:var(--tap-min);border-radius:var(--radius-pill);font-size:var(--text-size-xl);cursor:pointer;background:0 0;border:0}.sheet-body{padding:0 var(--space-4) var(--space-4);flex:1;overflow-y:auto}.sheet-footer{padding:var(--space-3) var(--space-4) var(--space-4);border-top:1px solid var(--color-border)}@media (width>=768px){.sheet{width:min(32rem, 100% - var(--space-8));border-radius:var(--radius-lg);inset:50% auto auto 50%;transform:translate(-50%,-50%)}}.stattile{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-paper-bg);flex-direction:column;display:flex}.stattile-label{color:var(--color-text-muted);font-size:var(--text-size-sm);font-weight:var(--font-weight-bold)}.stattile-value{font-size:var(--text-size-display);font-weight:var(--font-weight-heavy);line-height:var(--line-height-tight)}.stepbar{gap:var(--space-1);margin:0;padding:0;list-style:none;display:flex}.stepbar-step{gap:var(--space-1);font-size:var(--text-size-sm);font-weight:var(--font-weight-bold);flex-direction:column;flex:1;display:flex}.stepbar-line{height:var(--space-2);border-radius:var(--radius-pill);background:var(--color-line)}.stepbar-done .stepbar-line{background:var(--color-primary)}.stepbar-now .stepbar-line{background:var(--color-ink)}.stepbar-done .stepbar-name{color:var(--color-primary-pressed)}.stepbar-next .stepbar-name{color:var(--color-text-muted)}.stepper{border:var(--border-width) solid var(--color-line-strong);border-radius:var(--radius-md);background:var(--color-surface);align-items:center;display:inline-flex}.stepper-button{min-width:var(--tap-min);min-height:var(--tap-min);border-radius:var(--radius-md);color:var(--color-primary);font-size:var(--text-size-xl);font-weight:var(--font-weight-bold);cursor:pointer;background:0 0;border:0}.stepper-button:disabled{color:var(--color-disabled);cursor:not-allowed}.stepper-input{width:var(--space-12);min-height:var(--tap-min);font-size:var(--text-size-xl);font-weight:var(--font-weight-heavy);text-align:center;background:0 0;border:0}.switch-row{align-items:center;gap:var(--space-3);min-height:var(--tap-min);display:flex}.switch-row-compact{justify-content:flex-start}.switch-text{flex-direction:column;flex:1;display:flex}.switch-label{font-weight:var(--font-weight-bold)}.switch-description{color:var(--color-text-muted);font-size:var(--text-size-sm)}.switch-state{color:var(--color-text-muted);font-size:var(--text-size-sm);font-weight:var(--font-weight-bold)}.switch{min-width:var(--tap-min);min-height:var(--tap-min);border-radius:var(--radius-pill);cursor:pointer;background:0 0;border:0;flex:none;position:relative}.switch:before{content:"";border-radius:var(--radius-pill);background:var(--color-border-strong);transition:background-color var(--duration-fast) var(--ease-out);position:absolute;inset:12px 0}.switch:after{content:"";border-radius:var(--radius-pill);background:var(--color-surface);width:20px;height:20px;transition:transform var(--duration-fast) var(--ease-out);position:absolute;top:14px;left:2px}.switch:disabled{cursor:not-allowed;opacity:.5}.switch[aria-checked=true]:before{background:var(--color-primary)}.switch[aria-checked=true]:after{transform:translate(24px)}.state-card{align-items:flex-start;gap:var(--space-3);padding:var(--space-6);flex-direction:column;display:flex}.state-icon{background:var(--color-selected-bg);width:64px;height:64px;color:var(--color-teal-700);border-radius:20px;place-items:center;display:grid}.state-icon-bad{background:var(--color-bad-bg);color:var(--color-bad)}.state-icon .icon{width:30px;height:30px}.state-title{font-size:var(--text-size-lg);font-weight:var(--font-weight-heavy);margin:0}.state-hint{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:var(--text-size-base)}.state-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.state-loading{gap:var(--space-2);flex-direction:column;display:flex}.state-skeleton{border-radius:var(--radius-lg);background:var(--color-neutral-bg);min-height:64px}@media (prefers-reduced-motion:no-preference){.state-skeleton{animation:1.4s ease-in-out infinite state-pulse}}@keyframes state-pulse{50%{opacity:.55}}
