:root{--bg:#07070a;--bg2:#0b0d12;--bg3:#10131a;--bg4:#151a22;--line:rgba(255,255,255,.075);--line2:rgba(255,255,255,.13);--text:#f3f4f6;--muted:#83899a;--muted2:#515767;--gold:#c9a84c;--gold2:#e8c56a;--green:#38d996;--red:#ff5d6c;--blue:#4c8dff;--purple:#9b72ef;--font-b:'DM Sans',sans-serif;--font-m:'DM Mono',monospace;--font-d:'Bebas Neue',sans-serif;--font-t:'Orbitron',monospace}
*{box-sizing:border-box}html,body{margin:0;background:#050609;color:var(--text);font-family:var(--font-b);overflow:hidden}button,input{font:inherit}.app-shell{height:100vh;display:grid;grid-template-rows:58px 48px minmax(0,1fr) 150px 29px;background:radial-gradient(circle at 78% 3%,rgba(201,168,76,.07),transparent 22%),var(--bg)}
.topbar{display:flex;align-items:center;gap:18px;padding:0 15px;border-bottom:1px solid var(--line);background:rgba(5,6,9,.97);z-index:20}.brand{width:205px;display:flex;align-items:center}.brand img{width:177px;display:block}.main-nav{display:flex;align-items:stretch;height:100%;gap:4px}.main-nav a{display:flex;align-items:center;padding:0 13px;color:#aeb3c0;text-decoration:none;font-size:12px;border-bottom:2px solid transparent;transition:.15s}.main-nav a:hover{color:#fff;background:rgba(255,255,255,.025)}.main-nav a.active{color:var(--gold2);border-bottom-color:var(--gold);background:linear-gradient(180deg,transparent,rgba(201,168,76,.055))}.live-tag{margin-left:6px;background:#d7192d;color:#fff;border-radius:10px;font-size:8px;font-weight:800;padding:2px 6px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:9px}.market-state,.nrc-pill{height:36px;border:1px solid var(--line);border-radius:18px;background:#0c0e13;display:flex;align-items:center;gap:7px;padding:0 12px;font-size:10px;color:var(--muted)}.market-state strong{color:var(--gold2);font-size:9px}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 9px var(--green)}.nrc-pill{border-color:rgba(201,168,76,.28)}.nrc-pill img{width:24px;height:24px;object-fit:contain}.nrc-pill b{font-family:var(--font-t);color:#fff;font-size:13px}.nrc-pill small{color:var(--gold);font-size:8px}.avatar-btn{width:36px;height:36px;border-radius:50%;border:1px solid rgba(201,168,76,.4);background:radial-gradient(circle,#1f2633,#08090d);color:var(--gold2);box-shadow:0 0 14px rgba(201,168,76,.18);cursor:pointer}
.workspace-header{display:flex;align-items:center;border-bottom:1px solid var(--line);background:#090b10;padding:0 10px;gap:13px;position:relative;z-index:15}.symbol-selector{height:37px;display:flex;align-items:center;gap:8px;padding:0 7px;border-right:1px solid var(--line);position:relative;min-width:255px}.symbol-badge{width:30px;height:30px;border-radius:7px;background:linear-gradient(145deg,#15213d,#0b101d);border:1px solid rgba(76,141,255,.32);display:grid;place-items:center;font-weight:800;color:#79a6ff}.symbol-selector strong{font-size:11px;display:block}.symbol-selector span{display:block;font-size:9px;color:var(--muted);margin-top:1px}.icon-btn{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:7px}.symbol-menu{display:none;position:absolute;top:42px;left:0;width:280px;background:#0b0e14;border:1px solid var(--line2);border-radius:10px;box-shadow:0 14px 38px rgba(0,0,0,.55);padding:6px;z-index:50}.symbol-menu.open{display:block}.symbol-menu button{width:100%;display:grid;grid-template-columns:54px 1fr;text-align:left;border:0;background:transparent;color:var(--text);padding:9px 10px;border-radius:7px;cursor:pointer}.symbol-menu button:hover{background:#131823}.symbol-menu b{color:var(--gold2);font-family:var(--font-m)}.symbol-menu span{color:var(--muted);font-size:10px}.ohlc-line{display:flex;gap:7px;font-family:var(--font-m);font-size:9px;color:var(--muted)}.ohlc-line .chg{font-weight:700}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.timeframes{margin-left:auto;display:flex;gap:3px}.timeframes button,.soft-btn{height:29px;min-width:31px;border:1px solid transparent;background:transparent;color:#8e94a3;border-radius:6px;font-size:10px;cursor:pointer}.timeframes button:hover,.soft-btn:hover{background:#11151d;color:#fff}.timeframes button.active{background:rgba(201,168,76,.12);border-color:rgba(201,168,76,.24);color:var(--gold2)}.workspace-actions{display:flex;border-left:1px solid var(--line);padding-left:7px}.soft-btn{padding:0 9px}
.terminal-grid{display:grid;grid-template-columns:46px minmax(0,1fr) 274px;min-height:0}.tool-rail{background:#090b10;border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;padding:6px 0;gap:3px}.tool{width:34px;height:32px;border:1px solid transparent;background:transparent;color:#9299aa;border-radius:6px;font-size:13px;cursor:pointer}.tool:hover,.tool.active{background:#151922;color:#fff;border-color:var(--line)}.tool.nr{font-family:var(--font-m);font-size:8px;color:var(--gold);border-color:rgba(201,168,76,.1)}.tool.nr:hover{border-color:rgba(201,168,76,.3);background:rgba(201,168,76,.08)}.rail-sep{height:1px;width:24px;background:var(--line);margin:3px 0}.rail-spacer{flex:1}.chart-stage{position:relative;min-width:0;min-height:0;background:#080a0f;overflow:hidden}.chart{position:absolute;inset:0}.chart-watermark{position:absolute;z-index:2;left:65px;top:36px;pointer-events:none;opacity:.12}.wm-symbol{font-family:var(--font-d);font-size:72px;line-height:.9;letter-spacing:.04em}.wm-name{font-family:var(--font-t);font-size:10px;letter-spacing:.2em;margin-top:8px;color:var(--gold2)}.chart-badges{position:absolute;left:12px;bottom:9px;z-index:3;display:flex;gap:6px}.feed-badge,.mode-badge{font-family:var(--font-m);font-size:8px;padding:4px 7px;border-radius:5px;background:rgba(8,10,15,.85);border:1px solid var(--line);color:var(--muted)}.feed-badge i{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--green);margin-right:5px}.mode-badge{border-color:rgba(201,168,76,.22);color:var(--gold2)}
.trade-panel{border-left:1px solid var(--line);background:#0a0c11;padding:10px;overflow:auto}.panel-title-row{display:flex;justify-content:space-between;align-items:center;padding:2px 2px 9px}.panel-title-row small{display:block;color:var(--gold);font-size:8px;letter-spacing:.12em}.panel-title-row strong{display:block;font-size:11px;margin-top:2px}.account-card{display:grid;grid-template-columns:1fr 1fr;gap:1px;border:1px solid var(--line);border-radius:9px;background:#11141b;overflow:hidden;margin-bottom:10px}.account-card>div{padding:9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.account-card>div:nth-child(2){border-right:0}.account-card>div:nth-child(3){grid-column:1/-1;border-bottom:0}.account-card small,.field-row label,.risk-card span,.position-row small{display:block;color:var(--muted);font-size:8px}.account-card b{display:block;font-family:var(--font-m);font-size:11px;margin-top:3px}.quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.quote{height:67px;border-radius:9px;background:#0e1117;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center}.quote.sell{border:1px solid rgba(255,93,108,.25)}.quote.buy{border:1px solid rgba(56,217,150,.25)}.quote span{font-size:9px;font-weight:700}.quote.sell span,.quote.sell b{color:#ff7b86}.quote.buy span,.quote.buy b{color:#58e1a5}.quote b{font-family:var(--font-m);font-size:15px;margin:3px 0}.quote small{font-size:8px;color:var(--muted)}.order-tabs{display:flex;margin:11px 0 8px;border-bottom:1px solid var(--line)}.order-tabs button{flex:1;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-size:9px;padding:7px;cursor:pointer}.order-tabs button.active{color:var(--gold2);border-color:var(--gold)}.field-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0}.stepper,.money-input{height:30px;border:1px solid var(--line);border-radius:6px;background:#11141b;display:flex;align-items:center;overflow:hidden}.stepper button{width:28px;height:100%;border:0;background:transparent;color:#aeb4c3;cursor:pointer}.stepper input{width:42px;background:transparent;border:0;color:#fff;text-align:center;outline:none;font-family:var(--font-m)}.money-input{padding:0 8px;color:var(--muted)}.money-input input{width:70px;background:transparent;border:0;outline:none;color:#fff;text-align:right;font-family:var(--font-m)}.risk-card{display:grid;grid-template-columns:1fr 1fr 1fr;border:1px solid var(--line);border-radius:8px;background:#0e1117;margin:8px 0;overflow:hidden}.risk-card>div{padding:8px;border-right:1px solid var(--line);text-align:center}.risk-card>div:last-child{border:0}.risk-card b{display:block;font-family:var(--font-m);font-size:10px;margin-top:3px;color:#fff}.primary-order{width:100%;height:38px;border-radius:7px;border:1px solid rgba(201,168,76,.5);background:linear-gradient(180deg,rgba(201,168,76,.18),rgba(201,168,76,.07));color:var(--gold2);font-size:10px;font-weight:800;letter-spacing:.06em;cursor:pointer}.primary-order:hover{background:linear-gradient(180deg,rgba(201,168,76,.26),rgba(201,168,76,.1))}.secure-note{font-size:8px;line-height:1.45;color:#5e6472;margin:8px 2px 0}
.bottom-dock{background:#090b10;border-top:1px solid var(--line);min-height:0}.dock-tabs{height:34px;display:flex;gap:16px;padding:0 14px;border-bottom:1px solid var(--line)}.dock-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-size:10px;cursor:pointer}.dock-tabs button.active{color:#fff;border-color:var(--gold)}.dock-tabs span{background:#171b24;border-radius:10px;padding:1px 5px;font-size:8px;margin-left:3px}.dock-content{padding:9px 12px}.position-row{height:66px;border:1px solid var(--line);border-radius:8px;background:#0e1117;display:grid;grid-template-columns:145px repeat(5,1fr) 65px;align-items:center;padding:0 12px;gap:10px}.position-row b{font-family:var(--font-m);font-size:10px}.position-symbol b{display:block;font-size:13px;color:var(--gold2)}.position-symbol span{display:block;font-size:8px;color:var(--green);margin-top:2px}.close-btn{height:28px;border:1px solid rgba(255,93,108,.26);background:rgba(255,93,108,.06);color:#ff7c87;border-radius:6px;font-size:9px;cursor:pointer}.statusbar{display:flex;align-items:center;justify-content:space-between;padding:0 10px;background:#07080b;border-top:1px solid var(--line);color:var(--muted);font-family:var(--font-m);font-size:8px}.ticker{display:flex;gap:18px}.ticker b{color:#d9dde7}.toast{position:fixed;right:18px;bottom:42px;z-index:99;transform:translateY(20px);opacity:0;pointer-events:none;padding:10px 13px;border-radius:8px;background:#11151d;border:1px solid rgba(201,168,76,.35);box-shadow:0 14px 34px rgba(0,0,0,.5);color:#fff;font-size:10px;transition:.2s}.toast.show{transform:none;opacity:1}
@media(max-width:1100px){.main-nav a:nth-child(2),.main-nav a:nth-child(3),.market-state{display:none}.brand{width:170px}.terminal-grid{grid-template-columns:42px minmax(0,1fr) 248px}.position-row{grid-template-columns:120px repeat(3,1fr) 60px}.position-row>div:nth-of-type(5),.position-row>div:nth-of-type(6){display:none}.ohlc-line{display:none}}
@media(max-width:760px){html,body{overflow:auto}.app-shell{height:auto;min-height:100vh;grid-template-rows:54px 46px 560px 170px 29px}.main-nav{display:none}.topbar{padding:0 9px}.brand img{width:145px}.brand{width:auto}.nrc-pill{margin-left:auto}.terminal-grid{grid-template-columns:39px minmax(0,1fr)}.trade-panel{position:absolute;right:8px;top:108px;width:260px;z-index:30;box-shadow:0 16px 45px rgba(0,0,0,.7);display:none}.trade-panel.mobile-open{display:block}.workspace-actions .soft-btn:not(:last-child){display:none}.symbol-selector{min-width:210px}.timeframes button:nth-child(2),.timeframes button:nth-child(4),.timeframes button:nth-child(6){display:none}.position-row{grid-template-columns:100px 1fr 1fr 55px}.position-row>div:nth-of-type(4),.position-row>div:nth-of-type(5),.position-row>div:nth-of-type(6){display:none}.ticker{display:none}}

/* V1.1 · temporalidades configurables */
.timeframe-zone{margin-left:auto;display:flex;align-items:center;position:relative;min-width:0}
.timeframe-zone .timeframes{margin-left:0;display:flex;gap:3px;align-items:center;min-width:0}
.tf-manage-btn{height:29px;width:25px;border:1px solid transparent;background:transparent;color:#8e94a3;border-radius:6px;cursor:pointer;font-size:12px}
.tf-manage-btn:hover,.tf-manage-btn.open{background:#11151d;color:#fff;border-color:var(--line2)}
.tf-menu{display:none;position:absolute;right:0;top:35px;width:265px;background:#0b0e14;border:1px solid var(--line2);border-radius:10px;box-shadow:0 18px 45px rgba(0,0,0,.62);padding:8px;z-index:70}
.tf-menu.open{display:block}
.tf-menu-head{display:flex;align-items:center;justify-content:space-between;padding:6px 7px 9px;border-bottom:1px solid var(--line);font-size:11px}
.tf-menu-head strong{color:#fff}.tf-menu-head span{font-size:9px;color:var(--gold2)}
.tf-menu-list{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding-top:7px}
.tf-row{display:flex;align-items:center;justify-content:space-between;border:1px solid transparent;border-radius:7px;background:#0e1118;min-height:34px;padding:0 6px}
.tf-row:hover{border-color:rgba(255,255,255,.07);background:#111620}
.tf-select{flex:1;text-align:left;border:0;background:transparent;color:#d7dbe5;font-size:10px;cursor:pointer;padding:7px 4px}
.tf-star{width:25px;height:25px;border:0;background:transparent;color:#555d6d;cursor:pointer;font-size:14px;border-radius:5px}
.tf-star:hover{background:rgba(201,168,76,.08);color:#bca45d}.tf-star.favorite{color:var(--gold2);text-shadow:0 0 8px rgba(244,194,45,.25)}
.tf-row.current{border-color:rgba(201,168,76,.22);background:rgba(201,168,76,.07)}
.tf-menu-note{padding:9px 7px 3px;color:#626a79;font-size:8px;line-height:1.35}
@media(max-width:760px){.timeframe-zone .timeframes button:nth-child(n){display:none}.timeframe-zone .timeframes button.active,.timeframe-zone .timeframes button:nth-child(-n+4){display:block}.tf-menu{position:fixed;right:8px;top:103px;width:min(300px,calc(100vw - 16px))}}


/* V1.3 · contador de cierre junto a la cotización */
.current-price-stack{position:absolute;right:0;top:50%;z-index:8;width:82px;pointer-events:none;opacity:0;transform:none;transition:opacity .12s ease;font-family:var(--font-m);text-align:center;filter:drop-shadow(0 2px 7px rgba(0,0,0,.35))}
.current-price-stack.visible{opacity:1}
.current-price-label{height:22px;display:flex;align-items:center;justify-content:center;padding:0 5px;background:#c9a84c;color:#080a0f;border:1px solid #e0c66d;border-radius:3px 0 0 3px;font-size:10px;font-weight:800;line-height:1;white-space:nowrap}
.candle-countdown{height:16px;display:flex;align-items:center;justify-content:center;margin-top:1px;padding:0 4px;background:#9f8742;color:#080a0f;border:1px solid #c3a959;border-radius:3px 0 0 3px;font-size:8px;font-weight:800;line-height:1;white-space:nowrap}
.current-price-stack.historical .candle-countdown{background:#7f7043;border-color:#a99050;color:#090a0d}
.tf-menu{max-height:min(620px,calc(100vh - 130px));overflow:hidden}
.tf-menu-list{max-height:min(530px,calc(100vh - 220px));overflow-y:auto;padding-right:2px}
.tf-menu-list::-webkit-scrollbar{width:5px}.tf-menu-list::-webkit-scrollbar-thumb{background:rgba(201,168,76,.25);border-radius:10px}

/* V1.4 · refinamiento visual de la gráfica */
.chart-stage{background:#0a0d12}
.chart-market-legend{position:absolute;left:16px;top:12px;z-index:5;display:flex;align-items:center;gap:5px;pointer-events:none;font-size:11px;color:#b7bdc9;text-shadow:0 1px 2px rgba(0,0,0,.75)}
.chart-market-legend .legend-symbol{font-family:var(--font-m);font-weight:700;color:#f1f3f7}
.chart-market-legend .legend-name{font-weight:600;color:#d7dbe3}
.chart-market-legend .legend-tf,.chart-market-legend .legend-exchange{color:#9ca4b3}
.chart-market-legend .legend-dot{color:#59606d}
.chart-watermark{left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;opacity:.035}
.wm-brand{font-family:var(--font-t);font-size:38px;font-weight:700;letter-spacing:.16em;white-space:nowrap;color:#eef1f5}
.wm-name{font-size:9px;letter-spacing:.48em;margin-top:8px;color:#d1ae4d}
.chart-badges{bottom:10px;left:13px}
.feed-badge,.mode-badge{backdrop-filter:blur(5px);background:rgba(8,11,16,.78)}
.current-price-stack{right:0}
@media(max-width:760px){.chart-market-legend{left:10px;top:9px;font-size:9px}.chart-market-legend .legend-name{display:none}.wm-brand{font-size:26px}}
/* V1.5 · estado de datos reales */
.feed-badge.real-feed{color:#4ce0a7;border-color:rgba(76,224,167,.24);background:rgba(20,82,62,.18)}
.feed-badge.real-feed i{background:#35db9c;box-shadow:0 0 8px rgba(53,219,156,.65)}
.market-state.real{border-color:rgba(76,224,167,.22);background:linear-gradient(180deg,rgba(23,72,56,.20),rgba(8,14,13,.5))}
.market-state.real strong{color:#52e4ae}
.data-range{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#9099a9!important;border-color:rgba(255,255,255,.08)!important}

/* V1.6 · modos de mercado y conexión de broker */
.market-mode-tabs{height:34px;display:flex;align-items:center;gap:3px;padding-right:10px;border-right:1px solid var(--line);flex:0 0 auto}
.market-mode-tabs button{height:29px;border:1px solid transparent;background:transparent;color:#7f8796;border-radius:6px;padding:0 10px;font-size:9px;font-weight:800;letter-spacing:.08em;cursor:pointer}
.market-mode-tabs button:hover{background:#11151d;color:#fff}.market-mode-tabs button.active{color:var(--gold2);border-color:rgba(201,168,76,.28);background:rgba(201,168,76,.09)}
.connect-broker-btn{width:100%;height:35px;margin:0 0 10px;border:1px solid rgba(201,168,76,.42);border-radius:7px;background:rgba(201,168,76,.08);color:var(--gold2);font-size:9px;font-weight:800;letter-spacing:.06em;cursor:pointer}.connect-broker-btn:hover{background:rgba(201,168,76,.14)}
.analysis-only{margin:0 0 10px;padding:10px;border:1px solid rgba(76,141,255,.18);border-radius:8px;background:rgba(76,141,255,.05)}.analysis-only b{display:block;color:#8bb1ff;font-size:9px;letter-spacing:.08em}.analysis-only span{display:block;color:var(--muted);font-size:8px;margin-top:4px;line-height:1.35}
.symbol-menu{max-height:430px;overflow-y:auto}.symbol-menu button{grid-template-columns:64px 1fr}.symbol-menu .symbol-provider{display:block;font-size:8px;color:#596170;margin-top:2px}
.loading-overlay{position:absolute;inset:0;z-index:12;display:grid;place-items:center;background:rgba(7,9,13,.72);backdrop-filter:blur(2px);color:var(--gold2);font-family:var(--font-m);font-size:10px;letter-spacing:.08em}.loading-overlay[hidden]{display:none}
@media(max-width:1100px){.market-mode-tabs button{padding:0 7px}.market-mode-tabs{gap:1px}.symbol-selector{min-width:220px}}
@media(max-width:760px){.market-mode-tabs{position:absolute;left:6px;top:47px;z-index:18;border-right:0}.workspace-header{padding-top:32px;height:78px}.app-shell{grid-template-rows:54px 78px 560px 170px 29px}.symbol-selector{min-width:190px}.market-mode-tabs button{height:26px}}

/* V1.7 · Supabase Market Data + acceso */
.auth-gate{position:fixed;inset:0;z-index:999;background:radial-gradient(circle at 50% 10%,rgba(201,168,76,.10),transparent 28%),rgba(3,4,7,.97);display:grid;place-items:center}.auth-gate[hidden]{display:none}.auth-card{width:min(390px,calc(100vw - 30px));padding:28px;border:1px solid rgba(201,168,76,.28);border-radius:14px;background:#0b0e14;box-shadow:0 30px 80px rgba(0,0,0,.65)}.auth-mark{font-family:var(--font-t);font-size:13px;color:var(--gold2);letter-spacing:.13em}.auth-card h2{margin:5px 0 4px;font-family:var(--font-d);font-size:38px;letter-spacing:.08em}.auth-card p{color:var(--muted);font-size:11px;line-height:1.5;margin:0 0 18px}.auth-card input{width:100%;height:42px;margin:6px 0;border:1px solid var(--line2);border-radius:8px;background:#11151d;color:#fff;padding:0 12px;outline:none}.auth-card input:focus{border-color:rgba(201,168,76,.5)}.auth-card button{width:100%;height:42px;margin-top:10px;border:1px solid rgba(201,168,76,.45);border-radius:8px;background:rgba(201,168,76,.12);color:var(--gold2);font-size:10px;font-weight:800;letter-spacing:.08em;cursor:pointer}.auth-card small{display:block;min-height:18px;margin-top:9px;color:#ff7884;font-size:9px}.trade-panel.analysis-mode .account-card,.trade-panel.analysis-mode .quote-grid,.trade-panel.analysis-mode .order-tabs,.trade-panel.analysis-mode .field-row,.trade-panel.analysis-mode .risk-card,.trade-panel.analysis-mode .primary-order,.trade-panel.analysis-mode .secure-note{opacity:.28;pointer-events:none}
