.layout{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.layout__sidebar{background-color:var(--tj-surface);border-right:1px solid var(--tj-border);padding:var(--tj-space-5) var(--tj-space-4);position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.layout__bottom{margin-top:auto;display:flex;flex-direction:column;gap:var(--tj-space-3)}.layout__footer{padding-top:var(--tj-space-3);border-top:1px solid var(--tj-border);display:flex;flex-direction:column;gap:var(--tj-space-2)}.layout__version{font-size:.72rem;color:var(--tj-text-muted);font-family:var(--tj-font-mono);padding:0 var(--tj-space-2)}.layout__user{font-size:.8rem;color:var(--tj-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 var(--tj-space-2)}.layout__signout{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font:inherit;font-size:.9rem;font-weight:500;display:flex;align-items:center;gap:var(--tj-space-2);color:var(--tj-text-muted);background:none;border:1px solid var(--tj-border);border-radius:var(--tj-radius-sm);padding:var(--tj-space-2) var(--tj-space-3);transition:color .15s ease,border-color .15s ease}.layout__signout:hover{color:var(--tj-negative);border-color:color-mix(in srgb,var(--tj-negative) 50%,transparent)}.layout__brand{display:flex;align-items:center;gap:var(--tj-space-2);margin-bottom:var(--tj-space-6);padding:0 var(--tj-space-2)}.layout__brand-icon{color:var(--tj-accent)}.layout__brand-name{font-weight:700;font-size:1.05rem}.layout__nav{display:flex;flex-direction:column;gap:var(--tj-space-1)}.layout__nav-link{display:flex;align-items:center;gap:var(--tj-space-3);padding:var(--tj-space-3) var(--tj-space-3);border-radius:var(--tj-radius-sm);color:var(--tj-text-muted);text-decoration:none;font-weight:500;font-size:.92rem;transition:background-color .15s ease,color .15s ease}.layout__nav-link:hover{background-color:var(--tj-surface-2);color:var(--tj-text)}.layout__nav-link--active{background-color:color-mix(in srgb,var(--tj-accent) 16%,transparent);color:var(--tj-text)}.layout__nav-icon{display:inline-flex}.layout__main{padding:var(--tj-space-6);max-width:1200px;width:100%}@media(max-width:720px){.layout{grid-template-columns:1fr}.layout__sidebar{position:static;height:auto;display:flex;align-items:center;justify-content:space-between}.layout__brand{margin-bottom:0}.layout__nav{flex-direction:row}.layout__main{padding:var(--tj-space-4)}}.stat-card{display:flex;flex-direction:column;gap:var(--tj-space-2);background-color:var(--tj-surface);border:1px solid var(--tj-border);border-radius:var(--tj-radius);padding:var(--tj-space-4) var(--tj-space-5)}.stat-card__label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--tj-text-muted)}.stat-card__value{font-size:1.7rem;font-weight:700;font-variant-numeric:tabular-nums;font-family:var(--tj-font-mono)}.stat-card__value--positive{color:var(--tj-positive)}.stat-card__value--negative{color:var(--tj-negative)}.stat-card__value--muted{color:var(--tj-text-muted)}.stat-card__hint{font-size:.8rem;color:var(--tj-text-muted)}.trades-table{background-color:var(--tj-surface);border:1px solid var(--tj-border);border-radius:var(--tj-radius);overflow-x:auto}.trades-table__table{width:100%;border-collapse:collapse;font-size:.9rem}.trades-table__th{text-align:left;padding:var(--tj-space-3) var(--tj-space-4);font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--tj-text-muted);border-bottom:1px solid var(--tj-border);white-space:nowrap}.trades-table__th--num{text-align:right}.trades-table__th--actions{width:1%}.trades-table__row{transition:background-color .12s ease}.trades-table__row:hover{background-color:var(--tj-surface-2)}.trades-table__td{padding:var(--tj-space-3) var(--tj-space-4);border-bottom:1px solid var(--tj-border);white-space:nowrap}.trades-table__row:last-child .trades-table__td{border-bottom:none}.trades-table__td--num{text-align:right;font-variant-numeric:tabular-nums}.trades-table__td--actions{text-align:right}.trades-table__instrument-line{display:flex;align-items:center;gap:var(--tj-space-2)}.trades-table__instrument{font-weight:600}.trades-table__note-icon{color:var(--tj-accent);font-size:1rem;cursor:help}.trades-table__strategy{display:block;font-size:.78rem;color:var(--tj-text-muted);margin-top:2px}.pnl-calendar{margin-top:var(--tj-space-6);background-color:var(--tj-surface);border:1px solid var(--tj-border);border-radius:var(--tj-radius);padding:var(--tj-space-5)}.pnl-calendar__header{display:flex;align-items:center;justify-content:space-between;gap:var(--tj-space-4);margin-bottom:var(--tj-space-4);flex-wrap:wrap}.pnl-calendar__heading{display:flex;align-items:center;gap:var(--tj-space-1)}.pnl-calendar__copy{border-radius:4px!important;padding:3px!important}.pnl-calendar__copy svg{font-size:15px}.pnl-calendar__title{margin:0;font-size:1.1rem;font-weight:700}.pnl-calendar__nav{display:flex;align-items:center;gap:var(--tj-space-3)}.pnl-calendar__month{min-width:140px;text-align:center;font-weight:600}.pnl-calendar__total{font-weight:700;font-size:1.05rem;margin-left:var(--tj-space-3)}.pnl-calendar__loading{display:flex;justify-content:center;padding:var(--tj-space-6)}.pnl-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr) .8fr;gap:var(--tj-space-2)}.pnl-calendar__weekday{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--tj-text-muted);text-align:center;padding-bottom:var(--tj-space-1)}.pnl-calendar__weekday--week{color:var(--tj-text)}.pnl-calendar__row{display:grid;grid-template-columns:repeat(7,1fr) .8fr;gap:var(--tj-space-2);grid-column:1 / -1}.pnl-calendar__day{min-height:64px;border:1px solid var(--tj-border);border-radius:var(--tj-radius-sm);padding:var(--tj-space-2);display:flex;flex-direction:column;gap:2px;background-color:var(--tj-surface-2)}.pnl-calendar__day--empty{background-color:transparent;border-color:transparent}.pnl-calendar__day--clickable{cursor:pointer;transition:filter .12s ease,border-color .12s ease}.pnl-calendar__day--clickable:hover{filter:brightness(1.25);border-color:var(--tj-text-muted)}.pnl-calendar__day--clickable:focus-visible{outline:2px solid var(--tj-accent);outline-offset:1px}.pnl-calendar__day--positive{background-color:color-mix(in srgb,var(--tj-positive) 16%,var(--tj-surface-2));border-color:color-mix(in srgb,var(--tj-positive) 45%,transparent)}.pnl-calendar__day--negative{background-color:color-mix(in srgb,var(--tj-negative) 16%,var(--tj-surface-2));border-color:color-mix(in srgb,var(--tj-negative) 45%,transparent)}.pnl-calendar__day-num{font-size:.74rem;color:var(--tj-text-muted);font-weight:600}.pnl-calendar__day-pnl{font-family:var(--tj-font-mono);font-variant-numeric:tabular-nums;font-weight:700;font-size:.85rem;margin-top:auto}.pnl-calendar__day-count{font-size:.68rem;color:var(--tj-text-muted)}.pnl-calendar__week-total{display:flex;align-items:center;justify-content:flex-end;font-weight:700;font-size:.85rem;padding:var(--tj-space-2);border-left:2px solid var(--tj-border)}.pnl-calendar__dialog-title{display:flex;align-items:center;justify-content:space-between;gap:var(--tj-space-4);font-size:1.1rem}.pnl-calendar__dialog-loading{display:flex;justify-content:center;padding:var(--tj-space-5)}.pnl-calendar__dialog-empty{color:var(--tj-text-muted);padding:var(--tj-space-4) 0}@media(max-width:720px){.pnl-calendar__day{min-height:52px}.pnl-calendar__day-pnl{font-size:.72rem}}.range-selector{display:flex;flex-direction:column;gap:var(--tj-space-3)}.range-selector__presets{display:flex;flex-wrap:wrap;gap:var(--tj-space-2)}.range-selector__btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font:inherit;font-size:.85rem;font-weight:500;color:var(--tj-text-muted);background-color:var(--tj-surface);border:1px solid var(--tj-border);border-radius:999px;padding:var(--tj-space-2) var(--tj-space-4);transition:background-color .15s ease,color .15s ease,border-color .15s ease}.range-selector__btn:hover{color:var(--tj-text);border-color:var(--tj-text-muted)}.range-selector__btn--active{color:#fff;background-color:var(--tj-accent-strong);border-color:var(--tj-accent-strong)}.range-selector__custom{display:flex;gap:var(--tj-space-3)}.dashboard__header{margin-bottom:var(--tj-space-5)}.dashboard__title{margin:0;font-size:1.6rem;font-weight:700}.dashboard__subtitle{margin:var(--tj-space-1) 0 0;color:var(--tj-text-muted);font-size:.92rem}.dashboard__range{margin-bottom:var(--tj-space-5)}.dashboard__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--tj-space-4)}.dashboard__state{display:flex;justify-content:center;padding:var(--tj-space-6)}.trade-form{display:flex;flex-direction:column;gap:var(--tj-space-4);padding-top:var(--tj-space-2)}.trade-form__row{display:flex;gap:var(--tj-space-3)}.trade-form__field{flex:1}.trade-form__alert{margin-bottom:var(--tj-space-3)}@media(max-width:560px){.trade-form__row{flex-direction:column}}.trades__header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--tj-space-4);margin-bottom:var(--tj-space-5)}.trades__title{margin:0;font-size:1.6rem;font-weight:700}.trades__subtitle{margin:var(--tj-space-1) 0 0;color:var(--tj-text-muted);font-size:.92rem}.trades__actions{display:flex;gap:var(--tj-space-3);align-items:center}.trades__alert{margin-bottom:var(--tj-space-4)}.trades__state{display:flex;justify-content:center;padding:var(--tj-space-6)}.trades__empty{display:flex;flex-direction:column;align-items:center;gap:var(--tj-space-4);padding:var(--tj-space-6);background-color:var(--tj-surface);border:1px dashed var(--tj-border);border-radius:var(--tj-radius)}.trades__empty-text{margin:0;color:var(--tj-text-muted)}.broker-card{background-color:var(--tj-surface);border:1px solid var(--tj-border);border-radius:var(--tj-radius);padding:var(--tj-space-5);display:flex;flex-direction:column;gap:var(--tj-space-4);max-width:560px}.broker-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--tj-space-3)}.broker-card__identity{display:flex;align-items:center;gap:var(--tj-space-3)}.broker-card__name{font-size:1.1rem;font-weight:700}.broker-card__status{text-transform:capitalize}.broker-card__body{display:flex;flex-direction:column;gap:var(--tj-space-3);align-items:flex-start}.broker-card__alert{margin:0}.broker-card__hint{margin:0;color:var(--tj-text-muted);font-size:.9rem}.broker-card__verify{display:flex;flex-direction:column;gap:var(--tj-space-3);width:100%}.broker-card__verify-row{display:flex;gap:var(--tj-space-3);align-items:flex-start;width:100%}.broker-card__accounts{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:var(--tj-space-2)}.broker-card__account{display:flex;align-items:center;justify-content:space-between;gap:var(--tj-space-3);padding:var(--tj-space-3);background-color:var(--tj-surface-2);border:1px solid var(--tj-border);border-radius:var(--tj-radius-sm)}.broker-card__account-info{display:flex;flex-direction:column;gap:2px}.broker-card__actions{display:flex;gap:var(--tj-space-3);flex-wrap:wrap}.broker-card__account-desc{font-weight:600}.broker-card__account-meta{color:var(--tj-text-muted);font-size:.85rem}.invite-users{display:flex;flex-direction:column;gap:var(--tj-space-4);max-width:560px}.invite-users__form{display:flex;gap:var(--tj-space-3);align-items:center}.invite-users__email{flex:1}.invite-users__alert{margin:0}.invite-users__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--tj-space-2)}.invite-users__item{display:flex;align-items:center;justify-content:space-between;gap:var(--tj-space-3);padding:var(--tj-space-3);background-color:var(--tj-surface-2);border:1px solid var(--tj-border);border-radius:var(--tj-radius-sm)}.invite-users__info{display:flex;align-items:center;gap:var(--tj-space-3)}.invite-users__email-text{font-weight:600}.invite-users__status{text-transform:capitalize}.invite-users__status--pending{color:var(--tj-accent);border-color:color-mix(in srgb,var(--tj-accent) 50%,transparent)}.invite-users__status--accepted{color:var(--tj-positive);border-color:color-mix(in srgb,var(--tj-positive) 50%,transparent)}.invite-users__status--expired{color:var(--tj-text-muted)}.invite-users__actions{display:flex;gap:var(--tj-space-1)}.manage-users{display:flex;flex-direction:column;gap:var(--tj-space-3);max-width:640px}.manage-users__alert{margin:0}.manage-users__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--tj-space-2)}.manage-users__item{display:flex;align-items:center;justify-content:space-between;gap:var(--tj-space-3);padding:var(--tj-space-3);background-color:var(--tj-surface-2);border:1px solid var(--tj-border);border-radius:var(--tj-radius-sm)}.manage-users__info{display:flex;align-items:center;gap:var(--tj-space-3);flex-wrap:wrap}.manage-users__email{font-weight:600}.manage-users__you{color:var(--tj-text-muted);font-weight:400}.manage-users__badges,.manage-users__actions{display:flex;gap:var(--tj-space-2)}.settings__header{margin-bottom:var(--tj-space-6)}.settings__title{margin:0;font-size:1.6rem;font-weight:700}.settings__subtitle{margin:var(--tj-space-1) 0 0;color:var(--tj-text-muted);font-size:.92rem}.settings__section{margin-bottom:var(--tj-space-6)}.settings__section-title{margin:0;font-size:1.1rem;font-weight:700}.settings__section-desc{margin:var(--tj-space-1) 0 var(--tj-space-4);color:var(--tj-text-muted);font-size:.9rem}.settings__brokers{display:flex;flex-direction:column;gap:var(--tj-space-4)}.settings__state{display:flex;padding:var(--tj-space-5)}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--tj-space-4)}.login__card{width:100%;max-width:380px;background-color:var(--tj-surface);border:1px solid var(--tj-border);border-radius:var(--tj-radius);padding:var(--tj-space-6);display:flex;flex-direction:column;gap:var(--tj-space-4)}.login__brand{display:flex;align-items:center;gap:var(--tj-space-2);justify-content:center}.login__brand-icon{color:var(--tj-accent)}.login__brand-name{font-weight:700;font-size:1.1rem}.login__title{margin:0;font-size:1.3rem;font-weight:700;text-align:center}.login__alert{margin:0}.login__form{display:flex;flex-direction:column;gap:var(--tj-space-4)}.login__divider{color:var(--tj-text-muted);font-size:.85rem}.login__toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;cursor:pointer;color:var(--tj-accent);font:inherit;font-size:.9rem;text-align:center;padding:var(--tj-space-2)}.login__toggle:hover{text-decoration:underline}:root{--tj-bg: #0d1117;--tj-surface: #161b22;--tj-surface-2: #1c2230;--tj-border: #2a3140;--tj-text: #e6edf3;--tj-text-muted: #8b949e;--tj-accent: #3b82f6;--tj-accent-strong: #2563eb;--tj-positive: #2ea043;--tj-negative: #f85149;--tj-warning: #d29922;--tj-radius: 10px;--tj-radius-sm: 6px;--tj-space-1: 4px;--tj-space-2: 8px;--tj-space-3: 12px;--tj-space-4: 16px;--tj-space-5: 24px;--tj-space-6: 32px;--tj-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--tj-font-mono: "SF Mono", ui-monospace, "JetBrains Mono", monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background-color:var(--tj-bg);color:var(--tj-text);font-family:var(--tj-font);-webkit-font-smoothing:antialiased}.card{background-color:var(--tj-surface);border:1px solid var(--tj-border);border-radius:var(--tj-radius);padding:var(--tj-space-5)}.card__title{margin:0 0 var(--tj-space-4);font-size:1rem;font-weight:600}.value{font-family:var(--tj-font-mono);font-variant-numeric:tabular-nums}.value--positive{color:var(--tj-positive)}.value--negative{color:var(--tj-negative)}.value--muted{color:var(--tj-text-muted)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--tj-border);color:var(--tj-text-muted)}.badge--open{color:var(--tj-accent);border-color:color-mix(in srgb,var(--tj-accent) 50%,transparent)}.badge--closed{color:var(--tj-text-muted)}.badge--long{color:var(--tj-positive);border-color:color-mix(in srgb,var(--tj-positive) 50%,transparent)}.badge--short{color:var(--tj-negative);border-color:color-mix(in srgb,var(--tj-negative) 50%,transparent)}.badge--bullish{color:var(--tj-positive);border-color:color-mix(in srgb,var(--tj-positive) 50%,transparent)}.badge--bearish{color:var(--tj-negative);border-color:color-mix(in srgb,var(--tj-negative) 50%,transparent)}
