.btn{justify-content:center;align-items:center;gap:var(--space-1);min-height:var(--control-h);padding:0 var(--space-2);border-radius:var(--radius-1);color:var(--ink-1);font-weight:var(--fw-medium);font-size:var(--fs-md);letter-spacing:.02em;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #0000;line-height:1;text-decoration:none;display:inline-flex}.btn:hover{text-decoration:none}.btn:active:not(:disabled):not([aria-disabled=true]){transform:translateY(1px)}.btn:disabled{opacity:.45}.btn[aria-busy=true]{cursor:progress;opacity:.7}.btn--sm{min-height:var(--touch);font-size:var(--fs-sm);padding:0 12px}.btn--lg{min-height:56px;padding:0 var(--space-3);font-size:var(--fs-lg)}.btn--block{width:100%;display:flex}.btn__glyph{font-size:.8em;line-height:1}.btn__label{display:inline-block}.btn[aria-busy=true] .btn__label:after{content:"…"}.btn--primary{background:var(--ink-1);border-color:var(--ink-1);color:var(--ink-inverse)}.btn--primary:hover:not(:disabled){background:var(--ink-2);border-color:var(--ink-2)}.btn--secondary{background:var(--paper-1);border-color:var(--ink-1)}.btn--secondary:hover:not(:disabled){background:var(--paper-2)}.btn--ghost{color:var(--ink-2)}.btn--ghost:hover:not(:disabled){background:var(--paper-2);color:var(--ink-1)}.btn--danger{background:var(--paper-1);border-color:var(--danger);color:var(--danger-ink)}.btn--danger:hover:not(:disabled){background:var(--danger-wash)}.btn--buy{background:var(--buy);border-color:var(--buy);color:var(--on-accent)}.btn--buy:hover:not(:disabled){background:var(--buy-ink);border-color:var(--buy-ink)}.btn--sell{background:var(--sell);border-color:var(--sell);color:var(--on-accent)}.btn--sell:hover:not(:disabled){background:var(--sell-ink);border-color:var(--sell-ink)}.seg{border:1px solid var(--ink-1);border-radius:var(--radius-1);background:var(--paper-1);display:inline-flex;overflow:hidden}.seg--block{width:100%;display:flex}.seg__option{min-height:var(--touch);min-width:var(--touch);color:var(--ink-2);font-weight:var(--fw-medium);font-size:var(--fs-sm);white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);background:0 0;border:0;flex:1 1 0;padding:0 12px}.seg__option+.seg__option{border-left:1px solid var(--rule)}.seg__option:hover:not(:disabled):not([aria-checked=true]){background:var(--paper-2);color:var(--ink-1)}.seg__option[aria-checked=true]{background:var(--ink-1);color:var(--ink-inverse)}.seg__option[aria-checked=true][data-tone=buy]{background:var(--buy);color:var(--on-accent)}.seg__option[aria-checked=true][data-tone=sell]{background:var(--sell);color:var(--on-accent)}.seg__option:focus-visible{outline-offset:-3px}.seg__option[aria-checked=true]:focus-visible{outline:2px solid var(--focus);outline-offset:-2px;box-shadow:inset 0 0 0 4px var(--paper-0)}.seg__option:disabled{color:var(--ink-3);opacity:.6}.field{gap:var(--space-half);min-width:0;display:grid}.field__label{justify-content:space-between;align-items:baseline;gap:var(--space-1);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--ink-2);display:flex}.field__optional{font-size:var(--fs-2xs);font-weight:var(--fw-regular);letter-spacing:var(--tracking-label);color:var(--ink-3)}.numfield{border:1px solid var(--ink-3);border-radius:var(--radius-1);background:var(--paper-1);align-items:stretch;display:flex}.numfield:focus-within{outline:2px solid var(--focus);outline-offset:1px}.numfield__input{min-width:0;min-height:var(--control-h);font-size:var(--fs-lg);text-align:right;background:0 0;border:0;flex:auto;padding:0 12px}.numfield__input:focus-visible{outline:none}.numfield__unit{border-left:var(--hairline);background:var(--paper-2);color:var(--ink-3);font-size:var(--fs-xs);white-space:nowrap;align-items:center;padding:0 12px;display:flex}.field--invalid .numfield,.field--invalid .textarea{border-color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger)}.field__hint{font-size:var(--fs-xs);line-height:var(--lh-snug);color:var(--ink-3)}.field__error{align-items:flex-start;gap:var(--space-half);font-size:var(--fs-xs);line-height:var(--lh-snug);font-weight:var(--fw-medium);color:var(--danger-ink);display:flex}.field__error svg{flex:none;margin-top:1px}.textarea{width:100%;min-height:96px;padding:var(--space-1) 12px;border:1px solid var(--ink-3);border-radius:var(--radius-1);background:var(--paper-1);line-height:var(--lh-base);resize:vertical}.banner--neutral{--tone-solid:var(--ink-2);--tone-ink:var(--ink-2);--tone-wash:var(--paper-1)}.banner--info{--tone-solid:var(--info);--tone-ink:var(--info);--tone-wash:var(--info-wash)}.banner--analysis{--tone-solid:var(--analysis);--tone-ink:var(--analysis-ink);--tone-wash:var(--analysis-wash)}.banner--playback{--tone-solid:var(--playback);--tone-ink:var(--playback-ink);--tone-wash:var(--playback-wash)}.banner--danger{--tone-solid:var(--danger);--tone-ink:var(--danger-ink);--tone-wash:var(--danger-wash)}.banner--positive{--tone-solid:var(--positive);--tone-ink:var(--positive);--tone-wash:var(--positive-wash)}.banner{gap:var(--space-1) 12px;padding:12px var(--space-2);border:var(--hairline);border-left:4px solid var(--tone-solid);background:var(--tone-wash);color:var(--ink-1);grid-template-columns:auto minmax(0,1fr) auto;align-items:start;display:grid}.banner__icon{color:var(--tone-ink);margin-top:3px}.banner__body{gap:2px;min-width:0;display:grid}.banner__title{font-weight:var(--fw-bold);line-height:var(--lh-snug)}.banner__text{font-size:var(--fs-sm);line-height:var(--lh-snug);color:var(--ink-2)}.banner__action{align-self:center}@media (max-width:559px){.banner{grid-template-columns:auto minmax(0,1fr)}.banner__action{grid-column:2}}:root{--sheet-handle-h:56px}.sheet{z-index:var(--z-sheet);padding-bottom:env(safe-area-inset-bottom,0);border-top:var(--hairline-strong);background:var(--paper-1);box-shadow:var(--shadow-float);flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0}.sheet__bar{align-items:center;display:flex}.sheet__handle{min-width:0;min-height:var(--sheet-handle-h);padding:0 var(--gutter);text-align:left;background:0 0;border:0;flex:auto;align-items:center;gap:12px;display:flex;position:relative}.sheet__grip{background:var(--rule);border-radius:2px;width:32px;height:4px;margin-left:-16px;position:absolute;top:6px;left:50%}.sheet__summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--fs-sm);flex:auto;overflow:hidden}.sheet__toggle{font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:var(--tracking-label);color:var(--ink-3);flex:none}.sheet__action{padding-right:var(--gutter);flex:none}.sheet__body{max-height:min(62dvh, 560px, calc(100dvh - var(--sheet-top-reserve,0px) - var(--sheet-handle-h) - env(safe-area-inset-bottom,0px)));overscroll-behavior:contain;padding:0 var(--gutter) var(--space-2);overflow-y:auto}.sheet[data-expanded=false] .sheet__body{display:none}@media (min-width:960px){.sheet{border-top:0;border-left:var(--hairline);height:100%;min-height:0;box-shadow:none;padding-bottom:0;position:static}.sheet__bar{display:none}.sheet__body,.sheet[data-expanded=false] .sheet__body{max-height:none;padding:var(--space-2);flex:auto;display:block}}.tabs__list{border-bottom:var(--hairline);scrollbar-width:none;display:flex;overflow-x:auto}.tabs__list::-webkit-scrollbar{display:none}.tabs__tab{justify-content:center;align-items:center;gap:var(--space-1);min-height:var(--touch);padding:0 var(--space-2);color:var(--ink-3);font-size:var(--fs-sm);font-weight:var(--fw-medium);white-space:nowrap;transition:color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard);background:0 0;border:0;border-bottom:2px solid #0000;flex:1 0 auto;margin-bottom:-1px;display:inline-flex}.tabs__tab:hover{color:var(--ink-1)}.tabs__tab[aria-selected=true]{color:var(--ink-1);border-bottom-color:var(--ink-1)}.tabs__tab:focus-visible{outline-offset:-3px}.tabs__badge{border-radius:var(--radius-1);min-width:20px;height:20px;font-size:var(--fs-2xs);border:1px solid;justify-content:center;align-items:center;padding:0 6px;display:inline-flex}.tabs__panel{padding-top:var(--space-2)}.tabs__panel:focus-visible{outline-offset:-2px}.badge--neutral,.stat--neutral,.meter--neutral{--tone:var(--ink-2);--tone-solid:var(--ink-1);--tone-wash:var(--paper-2)}.badge--analysis,.stat--analysis,.meter--analysis{--tone:var(--analysis-ink);--tone-solid:var(--analysis);--tone-wash:var(--analysis-wash)}.badge--playback,.stat--playback,.meter--playback{--tone:var(--playback-ink);--tone-solid:var(--playback);--tone-wash:var(--playback-wash)}.badge--buy,.stat--buy,.meter--buy{--tone:var(--buy-ink);--tone-solid:var(--buy);--tone-wash:var(--buy-wash)}.badge--sell,.stat--sell,.meter--sell{--tone:var(--sell-ink);--tone-solid:var(--sell);--tone-wash:var(--sell-wash)}.badge--danger,.stat--danger,.meter--danger{--tone:var(--danger-ink);--tone-solid:var(--danger);--tone-wash:var(--danger-wash)}.badge--positive,.stat--positive,.meter--positive{--tone:var(--positive);--tone-solid:var(--positive);--tone-wash:var(--positive-wash)}.badge--info,.stat--info,.meter--info{--tone:var(--info);--tone-solid:var(--info);--tone-wash:var(--info-wash)}.badge{align-items:center;gap:var(--space-half);min-height:24px;padding:0 var(--space-1);border:1px solid var(--tone,var(--ink-2));border-radius:var(--radius-1);color:var(--tone,var(--ink-2));font-size:var(--fs-xs);font-weight:var(--fw-medium);white-space:nowrap;line-height:1;display:inline-flex}.badge svg{flex:none}.badge--dashed{border-style:dashed}.badge--dotted{border-style:dotted;border-width:2px;padding:0 7px}.badge--solid{background:var(--tone-solid);border-color:var(--tone-solid);color:var(--on-accent)}.badge--neutral.badge--solid{color:var(--ink-inverse)}.badge--struck{border-color:var(--rule);color:var(--ink-3)}.badge--struck .badge__text{text-decoration:line-through;text-decoration-thickness:1px}.side{font-weight:var(--fw-bold);align-items:baseline;gap:2px;display:inline-flex}.side--buy{color:var(--buy-ink)}.side--sell{color:var(--sell-ink)}.stat-group{gap:var(--space-2) var(--space-3);grid-template-columns:repeat(auto-fit,minmax(128px,1fr));display:grid}.stat{min-width:0;padding-top:var(--space-1);border-top:var(--hairline-strong);align-content:start;gap:2px;display:grid}.stat__label{font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:var(--tracking-label);color:var(--ink-3)}.stat__value{align-items:baseline;gap:var(--space-half);font-size:var(--fs-lg);font-weight:var(--fw-medium);line-height:var(--lh-tight);color:var(--tone,var(--ink-1));flex-wrap:wrap;display:flex}.stat--sm .stat__value{font-size:var(--fs-md)}.stat--lg .stat__value{font-size:var(--fs-2xl)}.stat--xl .stat__value{font-size:var(--fs-display);letter-spacing:-.02em}.stat__unit{font-family:var(--font-ui);font-size:var(--fs-xs);font-weight:var(--fw-regular);color:var(--ink-3)}.stat__hint{font-size:var(--fs-xs);color:var(--ink-3)}.meter{gap:var(--space-half);display:grid}.meter__head{justify-content:space-between;align-items:baseline;gap:var(--space-1);display:flex}.meter__label{font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:var(--tracking-label);color:var(--ink-3)}.meter__value{font-size:var(--fs-xs);color:var(--tone,var(--ink-1))}.meter__track{border:var(--hairline);background:repeating-linear-gradient(to right, transparent 0 calc(25% - 1px), var(--rule) calc(25% - 1px) 25%), var(--paper-2);height:8px;position:relative;overflow:hidden}.meter__fill{transform-origin:0;background:var(--tone-solid,var(--ink-1));transition:transform var(--dur-base) var(--ease-standard);position:absolute;inset:0}.data-status{align-items:center;gap:var(--space-half);max-width:100%;min-height:24px;padding:2px var(--space-1);border:1px solid var(--ink-2);border-radius:var(--radius-1);color:var(--ink-1);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:.02em;line-height:1.3;display:inline-flex}.data-status svg{flex:none}.data-status__short{display:none}@media (max-width:719px),(orientation:landscape) and (max-height:500px) and (max-width:959px){.data-status--compact .data-status__label{display:none}.data-status--compact .data-status__short{display:inline}}.data-status--sample{background:repeating-linear-gradient(135deg, transparent 0 5px, var(--paper-3) 5px 7px);border-style:dashed}
