@import url("https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap");:root{color-scheme:dark;--bg:#0b1118;--panel:#111b25;--panel-soft:#16222e;--line:#233342;--text:#edf4f6;--muted:#7f929f;--cyan:#5eead4;--cyan-soft:#153c3b;--orange:#f7b267;--red:#f68080}html[data-theme=light]{color-scheme:light;--bg:#f4f8f9;--panel:#ffffff;--panel-soft:#e8f2f3;--line:#d6e2e5;--text:#1d2b31;--muted:#6f818b;--cyan:#0b8f83;--cyan-soft:#d7f3ef;--orange:#af6819;--red:#ca4d55}html[data-theme=light] body{background:radial-gradient(circle at 86% 0,#d9efed 0,transparent 30%),var(--bg)}html[data-theme=light] .sidebar{background:rgba(255,255,255,.72)}html[data-theme=light] .metric,html[data-theme=light] .panel{background:rgba(255,255,255,.92)}html[data-theme=light] th{color:#6f8089}html[data-theme=light] .auth-input,html[data-theme=light] .backup-actions select,html[data-theme=light] .field input,html[data-theme=light] .field select,html[data-theme=light] .field textarea{background:#fbfdfd}html[data-theme=light] .status-pill.on{border-color:#a6d9d2;background:#e4f6f3}html[data-theme=light] .status.closed{color:#53656d}html[data-theme=light] .direction.sell{color:var(--red);background:#ffe4e6}html[data-theme=light] .exception-level.error{background:#ffe4e6}html[data-theme=light] .exception-level.warning{background:#fff0d9}html[data-theme=light] .toast{background:#e4f6f3;border-color:#a6d9d2}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-width:320px;background:radial-gradient(circle at 86% 0,#15343b 0,transparent 30%),var(--bg);color:var(--text);font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{min-height:100vh;overflow:hidden}.shell,.sidebar{display:flex;height:100vh}.sidebar{width:250px;border-right:1px solid var(--line);background:rgba(11,17,24,.75);padding:28px 18px;flex-direction:column;flex-shrink:0;overflow-y:auto}.brand{padding:0 12px 38px}.brand-mark{color:var(--cyan);font:500 13px DM Mono,monospace;letter-spacing:.1em}.brand h1{font-size:24px;letter-spacing:-.05em;margin:9px 0 0}.brand p{color:var(--muted);font-size:12px;margin:6px 0 0}.brand-heading{display:block}.mobile-brand-actions{display:none}.nav{display:grid;grid-gap:7px;gap:7px}.nav a{border:0;background:transparent;border-radius:8px;color:var(--muted);text-align:left;padding:12px;font-weight:600;font-size:13px;display:flex;align-items:center;gap:10px;text-decoration:none}.nav a.active,.nav a:hover{color:var(--text);background:var(--panel-soft)}.nav .icon{width:18px;text-align:center;color:var(--cyan);font-size:16px}.side-status{margin-top:auto;border-top:1px solid var(--line);padding:22px 12px 0}.side-status-label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.14em}.side-status-value{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:13px;font-weight:700}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan)}.dot.off{background:var(--red);box-shadow:0 0 12px var(--red)}.main{max-width:1320px;width:100%;min-width:0;height:100vh;overflow-y:auto;padding:30px 42px 52px;margin:0 auto}.app-footer{margin-top:22px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);text-align:right;font-size:11px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:28px}.eyebrow{color:var(--cyan);font:500 11px DM Mono,monospace;text-transform:uppercase;letter-spacing:.15em}.topbar h2{margin:8px 0 0;font-size:clamp(26px,3vw,38px);line-height:1.1;letter-spacing:-.06em}.topbar p{margin:9px 0 0;color:var(--muted);font-size:13px}.top-actions{display:flex;gap:10px;align-items:center}.button{border:1px solid var(--line);border-radius:7px;padding:10px 14px;color:var(--text);background:var(--panel);font-size:12px;font-weight:700}.button:hover{border-color:#3a596b;background:var(--panel-soft)}.button.primary{background:var(--cyan);border-color:var(--cyan);color:#071517}.button.primary:hover{background:#8affea}.status-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:99px;padding:8px 12px;color:var(--muted);font-size:12px}.tracking-control{cursor:pointer}.status-pill.on{color:var(--cyan);border-color:#245653;background:rgba(25,74,70,.35)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin-bottom:12px}.trade-metrics{grid-template-columns:repeat(4,1fr)}.system-metrics{grid-template-columns:repeat(3,1fr)}.metric{display:flex;flex-direction:column;background:rgba(17,27,37,.9);border:1px solid var(--line);border-radius:10px;padding:14px 16px;min-height:96px}.metric-label{color:var(--muted);font-size:12px;display:flex;justify-content:space-between}.metric-label span{color:var(--cyan);font:11px DM Mono,monospace}.metric-value{font-size:26px;letter-spacing:-.06em;margin-top:10px;font-weight:700}.metric-footer{margin-top:auto;padding-top:8px;color:var(--muted);font-size:11px}.metric-value.positive{color:var(--cyan)}.metric-value.negative{color:var(--red)}.metric-value.warning{color:var(--orange)}.grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,.8fr);grid-gap:12px;gap:12px}.dashboard-primary,.dashboard-secondary{min-width:0;display:grid;grid-gap:12px;gap:12px;align-content:start}.panel{border:1px solid var(--line);background:rgba(17,27,37,.9);border-radius:10px;overflow:hidden}.live-positions-panel .position-empty,.live-positions-panel .table-wrap{min-height:280px}.live-panel-heading{display:grid;grid-gap:5px;gap:5px;min-width:0}.panel-head.live-panel-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}.live-title-row{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;min-width:0}.live-title-row h3{flex:0 0 auto;white-space:nowrap}.live-statuses{display:flex;align-items:center;gap:10px;flex:1 1 auto;flex-wrap:nowrap;min-width:0;white-space:nowrap;overflow:hidden}.live-records{color:var(--muted);font-size:11px}.monthly-details{min-height:300px;display:flex;flex-direction:column}.monthly-details-list{flex:1 1;min-height:0;max-height:330px;overflow-y:auto;scrollbar-color:var(--line) transparent}.monthly-details-row{display:grid;grid-template-columns:64px 84px minmax(0,1fr);grid-gap:6px;gap:6px;align-items:center;padding:13px 19px;border-bottom:1px solid rgba(35,51,66,.72);font-size:12px}.monthly-details-row:last-child{border-bottom:0}.monthly-details-profit{font-weight:700}.monthly-details-meta{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-head{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:17px 19px;border-bottom:1px solid var(--line)}.exception-actions,.recent-panel-actions{display:flex;align-items:center;gap:8px}.panel-head h3{margin:0;font-size:14px;letter-spacing:-.02em}.panel-head span{color:var(--muted);font-size:11px}.live-status{font:11px DM Mono,monospace;letter-spacing:0}.live-status.connected{color:var(--cyan)}.live-status.connecting{color:var(--orange)}.live-status.disconnected,.live-status.stale{color:var(--red)}.refresh-button{padding:7px 11px;display:inline-flex;align-items:center;gap:5px}.refresh-button:disabled{cursor:wait;opacity:.72}.refresh-icon{display:inline-block;font-size:15px;line-height:1}.refresh-button.is-refreshing .refresh-icon{animation:refresh-spin .8s linear infinite}.panel-head .mqtt-status{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.panel-head .mqtt-status.connected{color:var(--cyan)}.panel-head .mqtt-status.pending{color:var(--orange)}.panel-head .mqtt-status.disconnected{color:var(--red)}.panel-head .mqtt-status.disabled{color:var(--muted)}@keyframes refresh-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:650px}th{color:#70818e;font:500 10px DM Mono,monospace;text-transform:uppercase;letter-spacing:.08em;text-align:left;padding:12px 19px}td,th{white-space:nowrap}td{border-top:1px solid rgba(35,51,66,.72);padding:14px 19px;font-size:12px}tbody tr:hover{background:rgba(94,234,212,.035)}.mono{font-family:DM Mono,monospace;font-size:11px}.muted{color:var(--muted)}.instrument{font-weight:800}.exceptions-table td,.position-table td{font-size:13px}.exceptions-table td.mono,.position-table td.mono{font-size:12px}.profit-positive{color:#61d99a;font-weight:700}.profit-negative{color:var(--red);font-weight:700}.price-mobile{display:none}.mobile-price-stack{display:inline-flex;flex-direction:column;gap:3px;line-height:1.25}.direction{display:inline-flex;padding:4px 7px;border-radius:4px;font:500 10px DM Mono,monospace;text-transform:uppercase}.direction.buy{color:var(--cyan);background:var(--cyan-soft)}.direction.sell{color:var(--red);background:#45272d}.status{color:var(--muted);font-size:11px}.status.open{color:var(--cyan)}.status.closed{color:#b6c2c8}.status.unmatched{color:var(--red)}.exception-level{display:inline-flex;padding:4px 7px;border-radius:4px;font:500 10px DM Mono,monospace}.exception-level.error{color:var(--red);background:#45272d}.exception-level.warning{color:var(--orange);background:#49351f}.exception-message{display:inline-block;min-width:260px;max-width:460px;white-space:normal;line-height:1.5}.resolve-button{padding:7px 10px;font-size:11px}.pagination{display:flex;align-items:center;justify-content:center;gap:14px;padding:15px 19px 17px;border-top:1px solid var(--line);color:var(--muted);font:11px DM Mono,monospace}.pagination .button{padding:7px 10px;font-size:11px}.pagination .button:disabled{cursor:not-allowed;opacity:.4}.empty{padding:46px 20px;text-align:center;color:var(--muted);font-size:13px}.position-empty{min-height:190px;display:flex;align-items:center;justify-content:center}.feed{padding:4px 19px 12px}.feed-item{display:grid;grid-template-columns:10px 1fr;grid-gap:12px;gap:12px;padding:15px 0;border-bottom:1px solid rgba(35,51,66,.72)}.feed-item:last-child{border:0}.feed-bullet{width:7px;height:7px;border-radius:50%;background:var(--cyan);margin-top:5px}.feed-bullet.warning{background:var(--orange)}.feed-bullet.error{background:var(--red)}.feed-message{font-size:12px;line-height:1.45}.feed-time{margin-top:5px;color:var(--muted);font:10px DM Mono,monospace}.settings{display:grid;grid-gap:12px;gap:12px;max-width:900px}.settings .panel{padding:20px}.settings .panel-head{padding:0 0 18px;margin-bottom:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.field.full{grid-column:1/-1}.field label{display:block;color:#a8b7be;font-size:11px;font-weight:700;margin-bottom:7px}.field input,.field select,.field textarea{width:100%;color:var(--text);background:#0c151e;border:1px solid var(--line);border-radius:6px;padding:10px 11px;outline:0;font-size:12px}.field textarea{min-height:92px;resize:vertical;font:11px DM Mono,monospace}.field input:focus,.field textarea:focus{border-color:var(--cyan)}.webhook-input-row{display:flex;gap:8px}.webhook-input-row input{flex:1 1;min-width:0}.webhook-input-row .button{flex-shrink:0}.test-message{color:var(--cyan);font-size:11px;margin-top:8px}.backup-actions{display:flex;gap:8px;align-items:center}.backup-actions select{flex:1 1;min-width:0;color:var(--text);background:#0c151e;border:1px solid var(--line);border-radius:6px;padding:10px 11px;font-size:12px}.backup-actions .button{flex-shrink:0}.checks{display:flex;flex-wrap:wrap;gap:10px 22px}.check{display:flex;gap:8px;align-items:center;color:#a8b7be;font-size:12px}.check input{accent-color:var(--cyan)}.check.disabled{color:#53636d}.check input:disabled{cursor:not-allowed}.notification-tree{display:grid;grid-gap:10px;gap:10px}.notification-children{display:flex;flex-wrap:wrap;gap:10px 22px;margin-left:25px;padding:10px 0 2px 17px;border-left:1px solid #31505a}.notification-children.disabled{opacity:.48}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:8px}.save-msg{color:var(--cyan);font-size:12px}.subtle{color:var(--muted);line-height:1.6;font-size:12px;margin:5px 0 0}.toggle{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:7px;padding:10px 14px;font-size:12px;font-weight:700}.toggle.on{color:#071517;background:var(--cyan);border-color:var(--cyan)}.toast{position:fixed;right:22px;bottom:22px;background:#173536;color:var(--cyan);border:1px solid #2b6461;border-radius:7px;padding:12px 16px;font-size:12px}.theme-toggle{white-space:nowrap}.auth-theme-toggle{position:fixed;top:20px;right:20px}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{width:min(420px,100%);border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:32px;box-shadow:0 24px 80px rgba(0,0,0,.28)}.auth-card h1{margin:14px 0 8px;font-size:28px;letter-spacing:-.06em}.auth-card p{margin:0 0 24px;color:var(--muted);font-size:12px;line-height:1.7}.auth-label{display:block;color:var(--muted);font-size:11px;font-weight:700;margin-bottom:7px}.auth-input{width:100%;color:var(--text);background:#0c151e;border:1px solid var(--line);border-radius:6px;padding:11px;outline:0;font:12px DM Mono,monospace}.auth-input:focus{border-color:var(--cyan)}.auth-submit{width:100%;margin-top:16px}.auth-error{color:var(--red);font-size:12px;margin-top:12px}html[data-theme=light] .auth-card{box-shadow:0 24px 80px rgba(55,89,96,.16)}html[data-theme=light] .auth-submit,html[data-theme=light] .button.primary,html[data-theme=light] .toggle.on{color:#fff}html[data-theme=light] .auth-submit:hover,html[data-theme=light] .button.primary:hover,html[data-theme=light] .toggle.on:hover{background:#08766e;border-color:#08766e;color:#fff}@media (max-width:1100px){.grid{grid-template-columns:minmax(0,1.45fr) minmax(280px,.9fr)}.monthly-details-row{grid-template-columns:64px 84px minmax(0,1fr)}}@media (max-width:950px){.sidebar{width:215px}.main{padding:26px 24px 42px}.metrics,.system-metrics,.trade-metrics{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}}@media (max-width:680px){.position-table .price-desktop{display:none}.position-table .price-mobile{display:table-cell}body,html{overflow-x:hidden}.shell{display:block;min-height:100vh}.shell,.sidebar{height:auto;overflow:visible}.sidebar{width:100%;padding:14px 12px 10px;border-right:0;border-bottom:1px solid var(--line)}.brand{padding:2px 5px 14px}.brand-heading{display:flex;align-items:flex-start;gap:8px}.brand-heading h1{min-width:0;flex:1 1}.brand h1{font-size:21px}.mobile-brand-actions{display:flex;flex-wrap:nowrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:4px;max-width:none;margin-left:auto}.mobile-brand-actions .button,.mobile-brand-actions .status-pill{padding:7px 6px;border-radius:6px;font-size:10px;white-space:nowrap}.mobile-brand-actions .status-pill{gap:5px;padding:6px 7px;font-size:10px}.mobile-brand-actions .dot{width:6px;height:6px}.desktop-top-actions{display:none}.nav{display:flex;gap:4px;overflow-x:auto;margin:0 -4px;padding:0 4px 4px;scrollbar-width:none}}@media (max-width:680px){.nav::-webkit-scrollbar{display:none}.nav a{flex:0 0 auto;white-space:nowrap;padding:9px 10px;font-size:12px}.side-status{display:none}.main{width:100%;max-width:none;height:auto;overflow:visible;padding:22px 12px 34px}.topbar{display:block;margin-bottom:20px}.topbar h2{font-size:30px}.topbar p{line-height:1.6}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.metric{min-height:96px;padding:14px}.metric.mobile-hide{display:none}.metric-label{gap:8px;line-height:1.4}.metric-label span{flex-shrink:0}.metric-value{font-size:24px;margin-top:12px}.metric-footer{padding-top:9px;font-size:11px}.monthly-details{min-height:220px}.monthly-details-list{max-height:240px}.monthly-details-row{grid-template-columns:minmax(62px,.8fr) minmax(88px,1fr) minmax(106px,1.2fr);gap:5px;padding:12px 14px;font-size:11px}.grid{gap:8px}.panel-head{align-items:stretch;padding:14px}.panel-head.live-panel-head{grid-template-columns:1fr;gap:5px}.panel-head h3{line-height:1.5}.live-title-row{align-items:center}.live-statuses{display:flex;flex-wrap:nowrap;gap:6px;white-space:nowrap}.live-statuses .live-status{flex:0 0 auto;font-size:10px}.panel-head>.button,.panel-head>span{align-self:flex-start}.exception-actions{flex-direction:column;align-items:stretch}.exception-actions .button{width:100%}.table-wrap{-webkit-overflow-scrolling:touch}.live-positions-panel .table-wrap{min-height:220px}.position-empty{min-height:150px}.exceptions-table td,.exceptions-table th,.position-table td,.position-table th{padding-left:12px;padding-right:12px}.feed,.pagination{padding-left:14px;padding-right:14px}.pagination{flex-wrap:wrap;gap:8px}.pagination span{width:100%;order:-1;text-align:center}.settings .panel{padding:16px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.form-actions{align-items:stretch;flex-direction:column}.form-actions .button{width:100%}.backup-actions,.webhook-input-row{flex-direction:column;align-items:stretch}.backup-actions .button,.webhook-input-row .button{align-self:stretch}.auth-card{padding:24px 20px}.auth-theme-toggle{top:14px;right:14px}}