:root{--bg:#f6f7f9;--panel:#fff;--border:#e2e8f0;--text:#111827;--text-muted:#6b7280;--accent:#2962ff;--ok:#16a34a;--warn:#d97706;--danger:#dc2626;--radius:10px;--shadow:0 1px 2px #0f172a0f, 0 4px 12px #0f172a0a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#0b0f16;--panel:#131924;--border:#253044;--text:#e5e7eb;--text-muted:#94a3b8;--shadow:none}}:root[data-theme=dark]{--bg:#0b0f16;--panel:#131924;--border:#253044;--text:#e5e7eb;--text-muted:#94a3b8;--shadow:none}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}h1{margin:0;font-size:1.15rem;font-weight:650}h2{margin:0 0 12px;font-size:1rem;font-weight:600}.muted{color:var(--text-muted)}.small{font-size:.82rem}.tone-ok{color:var(--ok)}.tone-warn{color:var(--warn)}.tone-danger{color:var(--danger)}.tone-muted{color:var(--text-muted)}.app{flex-direction:column;min-height:100vh;display:flex}.app__header{background:var(--panel);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.app__header-actions{align-items:center;gap:10px;display:flex}.app__body{flex:1;grid-template-columns:minmax(320px,400px) 1fr;align-items:start;gap:16px;padding:16px;display:grid}@media (width<=900px){.app__body{grid-template-columns:1fr;padding:16px}}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}button{font:inherit;border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;border-radius:7px;padding:6px 11px;transition:background .12s,border-color .12s}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.55;cursor:not-allowed}.button-primary{background:var(--accent);border-color:var(--accent);color:#fff}.button-danger{color:var(--danger)}.button-danger:hover:not(:disabled){border-color:var(--danger)}.link-button{color:var(--accent);text-align:left;background:0 0;border:none;padding:4px 0}.button-group{flex-wrap:wrap;gap:4px;display:flex}.badge{border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-block}.badge--danger{color:var(--danger);background:#dc26261f}.position-list{flex-direction:column;gap:9px;margin:0 0 14px;padding:0;list-style:none;display:flex;container-type:inline-size}.position-card{--card-accent:var(--accent);border:1px solid var(--border);cursor:pointer;border-left-width:4px;border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;transition:border-color .12s,box-shadow .12s;display:flex;position:relative}.position-card.is-alarm{--card-accent:var(--danger);background:color-mix(in srgb, var(--danger) 5%, transparent)}.position-card.is-warn{--card-accent:var(--warn);background:color-mix(in srgb, var(--warn) 6%, transparent)}.position-card.is-alarm,.position-card.is-warn{border-left-color:var(--card-accent)}.position-card:hover{border-color:color-mix(in srgb, var(--card-accent) 50%, var(--border));border-left-color:var(--card-accent)}.position-card.is-selected{border-color:var(--card-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--card-accent) 22%, transparent), 0 0 14px 2px color-mix(in srgb, var(--card-accent) 30%, transparent)}.position-card__close{width:19px;height:19px;color:var(--text-muted);opacity:0;background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;padding:0;font-size:15px;line-height:1;transition:opacity .12s;display:grid;position:absolute;top:6px;right:6px}.position-card:hover .position-card__close,.position-card__close:focus-visible{opacity:1}.position-card__close:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 12%, transparent);border-color:var(--danger);color:var(--danger)}.position-card__head{justify-content:space-between;align-items:baseline;gap:10px;min-width:0;padding-left:17px;padding-right:20px;display:flex}.position-card__symbol{letter-spacing:-.01em;white-space:nowrap;font-size:.95rem;font-weight:650}.position-card__holding{color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.77rem}.position-card__price-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.position-card__price{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.55rem;font-weight:620;line-height:1.05}.position-card__change{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.86rem;font-weight:560}.position-card__change-percent{opacity:.78;margin-left:5px;font-weight:500}.position-card__grip{width:16px;height:18px;color:var(--text-muted);opacity:.45;cursor:grab;-webkit-user-select:none;user-select:none;background:0 0;border:none;place-items:center;padding:0;transition:opacity .12s;display:grid;position:absolute;top:8px;left:7px}.position-card:hover .position-card__grip{opacity:.85}.position-card__grip:hover,.position-card__grip:focus-visible{opacity:1;color:var(--text)}.position-card__grip:active{cursor:grabbing}.position-card.is-dragging{opacity:.4}.position-card.is-drop-before:before,.position-card.is-drop-after:after{content:"";background:var(--accent);border-radius:2px;height:3px;position:absolute;left:-1px;right:-1px}.position-card.is-drop-before:before{top:-6px}.position-card.is-drop-after:after{bottom:-6px}.sparkline{width:100%;height:54px;display:block}.position-card__stop{align-items:baseline;gap:7px;margin-top:-2px;font-size:.82rem;display:flex}.position-card__stop-label{color:var(--text-muted)}.position-card__stop-price{font-variant-numeric:tabular-nums;font-weight:600}.position-card__cushion{color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto}.price-axis{background:color-mix(in srgb, var(--text-muted) 16%, transparent);border-radius:5px;height:9px;position:relative}.price-axis__bar{opacity:.6;border-radius:5px;position:absolute;top:0;bottom:0}.price-axis--profit .price-axis__bar{background:var(--ok)}.price-axis--loss .price-axis__bar{background:var(--danger)}.price-axis__stop{border-left:2px dashed var(--danger);width:0;position:absolute;top:-3px;bottom:-3px;transform:translate(-1px)}.price-axis__now{background:var(--text);border-radius:2px;width:3px;position:absolute;top:-4px;bottom:-4px;transform:translate(-1.5px)}.position-card__facts{grid-template-columns:1fr 1fr;gap:2px 14px;margin:0;display:grid}.fact{justify-content:space-between;align-items:baseline;gap:8px;min-width:0;display:flex}.fact dt{color:var(--text-muted);white-space:nowrap;font-size:.79rem}.fact dd{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-size:.85rem;font-weight:540}.position-card__booking{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:7px;padding-top:7px;font-size:.79rem;display:flex}.position-card__state{color:var(--text-muted);font-variant-numeric:tabular-nums;align-items:center;gap:6px;display:inline-flex}.position-card__dot{background:var(--ok);border-radius:50%;flex-shrink:0;width:6px;height:6px}.position-card__booking-detail{font-variant-numeric:tabular-nums}.position-card__booking button{white-space:nowrap;padding:3px 9px;font-size:.8rem}.position-card__actions{flex-shrink:0;gap:5px;margin-left:auto;display:flex}.position-card__revert,.position-card__history{color:var(--text-muted)}.position-card__revert:hover:not(:disabled),.position-card__history:hover:not(:disabled){color:var(--text);border-color:var(--card-accent)}.booking-badge{white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:.76rem;font-weight:600;display:inline-block}.booking-badge--diverged{background:color-mix(in srgb, var(--warn) 16%, transparent);color:var(--warn)}.booking-badge--not_booked,.booking-badge--expired{background:color-mix(in srgb, var(--danger) 14%, transparent);color:var(--danger)}.booking-badge--active{background:color-mix(in srgb, var(--ok) 14%, transparent);color:var(--ok)}@container (width<=290px){.position-card__facts{grid-template-columns:1fr}.position-card__actions{width:100%;margin-left:0}}.login{place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.login__card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:420px;box-shadow:var(--shadow);flex-direction:column;gap:14px;padding:28px;display:flex}.login__title{letter-spacing:-.01em;margin:0;font-size:1.3rem;font-weight:660}.login__lead{color:var(--text-muted);margin:0;font-size:.92rem}.login__reason{margin:0}.login__action{place-items:center;padding:9px 14px;font-weight:560;text-decoration:none;display:inline-grid}.login__note{margin:0}.session{color:var(--text-muted);align-items:center;gap:7px;font-size:.84rem;display:inline-flex}.session__avatar{border-radius:50%;flex-shrink:0}.session__who{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:22ch;font-weight:540;overflow:hidden}.session__logout{white-space:nowrap;padding:3px 9px;font-size:.8rem}.session--local{border:1px dashed var(--border);font-variant-numeric:tabular-nums;border-radius:999px;gap:6px;padding:2px 9px}.session__dot{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:6px;height:6px}.app__loading{padding:24px 16px}.error-boundary{border:1px solid var(--border);border-left:4px solid var(--warn);background:color-mix(in srgb, var(--warn) 5%, transparent);border-radius:9px;flex-direction:column;align-items:flex-start;gap:7px;padding:14px;display:flex}.error-boundary p{overflow-wrap:anywhere;margin:0}.modal{border:1px solid var(--border);background:var(--panel);max-width:min(440px,100vw - 32px);color:var(--text);border-radius:12px;padding:0;box-shadow:0 12px 40px #0f172a38}.modal::backdrop{background:#0f172a61}.modal__body{flex-direction:column;gap:14px;padding:18px;display:flex}.modal__title{margin:0;font-size:1.03rem;font-weight:650}.modal__content{flex-direction:column;gap:12px;display:flex}.modal__content p{margin:0}.modal__actions{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.button-danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.booking-dialog__intro{color:var(--text-muted);font-size:.9rem}.booking-dialog__price{background:color-mix(in srgb, var(--accent) 7%, transparent);border-radius:8px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.booking-dialog__price strong{font-variant-numeric:tabular-nums;font-size:1.28rem}.booking-dialog__presets{margin-top:-4px}.booking-dialog__presets button{padding:4px 9px;font-size:.82rem}.field{flex-direction:column;gap:4px;display:flex}.field--grow{flex:1}.field--narrow{width:110px}.field__label{color:var(--text-muted);font-size:.78rem}input,select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:7px;width:100%;padding:6px 9px}input:focus,select:focus{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:1px;border-color:var(--accent)}.checkbox{white-space:nowrap;align-items:center;gap:5px;display:flex}.checkbox input{width:auto}.stop-loss-editor{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.add-position{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding-top:14px;display:flex}.add-position__row{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.add-position__row button{white-space:nowrap}.add-position__row--submit{justify-content:flex-end}.hint{border-radius:7px;margin:8px 0 0;padding:8px 10px;font-size:.85rem}.hint--error{color:var(--danger);background:#dc26261a}.hint--warn{color:var(--warn);background:#d977061f}.chart-panel{flex-direction:column;gap:10px;display:flex}.chart-panel--empty{place-items:center;min-height:300px;display:grid}.chart-panel__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.chart-panel__tools{flex-wrap:wrap;gap:10px;display:flex}.chart-panel__canvas{border:1px solid var(--border);border-radius:8px;width:100%;height:min(60vh,560px);min-height:340px;overflow:hidden}.chart-panel__hint{margin:0}.drawing-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.drawing-list__empty{margin:0}.drawing-list__item{border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:7px 10px;display:flex}.drawing-list__item.is-selected{border-color:var(--accent)}.drawing-list__swatch{border-radius:3px;flex-shrink:0;width:12px;height:12px}.drawing-list__main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.drawing-list__label{padding:3px 6px;font-size:.9rem}.drawing-list__color{width:auto;padding:4px 6px;font-size:.78rem}.drawing-list__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}@media (width<=640px){.drawing-list__item{flex-wrap:wrap}}.app__banner{margin:12px 16px 0}.app__banner code{background:#0f172a14;border-radius:4px;padding:1px 4px;font-size:.85em}.drawing-list__opacity{align-items:center;gap:5px;display:flex}.drawing-list__opacity input[type=range]{width:68px;accent-color:var(--accent);cursor:pointer;padding:0}.drawing-list__opacity-value{text-align:right;font-variant-numeric:tabular-nums;min-width:34px}.history{flex-direction:column;gap:2px;max-height:46vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.history__row{border-radius:6px;grid-template-columns:auto 1fr auto;grid-template-areas:"time what price""time context price";align-items:center;gap:0 10px;padding:6px 8px;display:grid}.history__row:nth-child(odd){background:color-mix(in srgb, var(--text) 4%, transparent)}.history__time{font-variant-numeric:tabular-nums;white-space:nowrap;grid-area:time}.history__what{grid-area:what}.history__context{grid-area:context}.history__price{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;grid-area:price}.history__badge{white-space:nowrap;border-radius:999px;padding:1px 7px;font-size:.74rem;font-weight:600}.history__badge--adjusted{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent)}.history__badge--booked{background:color-mix(in srgb, var(--ok) 15%, transparent);color:var(--ok)}.history__badge--unbooked{background:color-mix(in srgb, var(--warn) 16%, transparent);color:var(--warn)}
