:root{font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:#24363b;background:#e9f0f1;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,input{font:inherit}button{cursor:pointer}.shell{display:flex;min-height:100vh}.sidebar{width:224px;flex:none;background:#f7faf9;border-right:1px solid #cddcde;display:flex;flex-direction:column;padding:18px 14px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:3px 6px 22px;border-bottom:1px solid #d7e2e3}.logo{height:36px;width:36px;border-radius:10px;background:#087e6b;color:#fff;display:grid;place-items:center;font-weight:800}.brand strong{display:block;font-size:16px}.brand small{display:block;color:#81969a;font-size:11px;margin-top:2px}.nav-caption{color:#8ba0a4;font-size:12px;margin:24px 8px 10px}.nav{display:grid;gap:5px}.nav a{text-decoration:none;color:#607b82;font-weight:650;font-size:14px;padding:13px 12px;border-radius:9px}.nav a span{display:inline-block;width:23px;color:#668991}.nav a:hover{background:#e7f1ef}.nav a.active{background:#d9f3e9;color:#087d69}.nav a.active span{color:#087d69}.sidebar-bottom{margin-top:auto;border-top:1px solid #d7e2e3;padding:18px 6px;color:#7d9297;font-size:11px;line-height:1.55}.sidebar-bottom strong{font-size:12px;color:#506970}.sidebar-bottom p{margin:6px 0 0}.workspace{min-width:0;flex:1}.topbar{height:58px;background:#fff;border-bottom:1px solid #d2e0e2;display:flex;align-items:center;justify-content:space-between;padding:0 24px;font-size:13px}.top-status{color:#71878d;font-size:12px}.green-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#19b18c;margin-right:7px}.notice{background:#fff0ce;color:#91672b;border-bottom:1px solid #f2dfb8;padding:10px 24px;font-size:12px}.main{max-width:1680px;padding:24px;margin:0 auto;width:100%}.page-title{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.page-title h1{font-size:27px;margin:5px 0 5px;letter-spacing:-.02em}.page-title p{color:#80959a;font-size:13px;margin:0}.eyebrow{text-transform:uppercase;font-size:11px;font-weight:700;letter-spacing:.08em;color:#0c987c}.page-chip,.source-chip{background:#ddf5ec;color:#07876c;border-radius:7px;padding:6px 9px;font-size:11px;font-weight:650;white-space:nowrap}.source-chip.amber{background:#fff1d5;color:#a27427}.view-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:15px}.main[data-view="market"] .view-layout,.main[data-view="analysis"] .view-layout{grid-template-columns:minmax(0,1fr)}.view-main,.view-side{display:grid;align-content:start;gap:15px;min-width:0}.view-block{display:none!important}.main[data-view="market"] .view-block[data-views~="market"],.main[data-view="analysis"] .view-block[data-views~="analysis"],.main[data-view="position"] .view-block[data-views~="position"],.main[data-view="paper"] .view-block[data-views~="paper"],.main[data-view="history"] .view-block[data-views~="history"],.main[data-view="settings"] .view-block[data-views~="settings"]{display:block!important}.main[data-view="market"] .page-title.view-block[data-views~="market"],.main[data-view="paper"] .page-title.view-block[data-views~="paper"]{display:flex!important}.main[data-view="market"] .view-side.view-block[data-views~="market"]{display:block!important;width:100%}.panel{background:#fff;border:1px solid #d0dfe1;border-radius:13px;box-shadow:0 1px 2px #38595f09;padding:18px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-head h2,.panel h2{font-size:16px;margin:4px 0 0}.section-head .eyebrow{margin-bottom:2px}.price-cells{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:20px 0 16px}.price-cells>div{background:#f1f6f5;border-radius:8px;padding:14px}.price-cells span,.level small{display:block;color:#8da1a5;font-size:11px;margin-bottom:6px}.price-cells strong{font-size:22px;letter-spacing:-.02em}.price-cells .market-quality{font-size:16px;color:#0a9a7c}.chart-toolbar,.chart-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.chart-toolbar{font-size:12px;margin-bottom:8px}.periods{display:flex;gap:4px;flex-wrap:wrap}.period{background:#fff;color:#7b9196;border:1px solid #d6e2e3;padding:5px 9px;border-radius:6px;font-size:11px}.period.active{background:#def5ec;border-color:#94d9c4;color:#07866d;font-weight:700}.chart-wrap{position:relative;height:250px;background:#f3f8f7;border-radius:9px;overflow:hidden;cursor:crosshair;touch-action:none}
.chart-wrap svg{width:100%;height:100%;display:block}
.chart-crosshair{position:absolute;inset:0;pointer-events:none;z-index:2}
.chart-crosshair .chart-x,.chart-crosshair .chart-y{position:absolute;background:rgba(36,54,59,.28)}
.chart-crosshair .chart-x{left:0;right:0;height:1px;transform:translateY(-0.5px)}
.chart-crosshair .chart-y{top:0;bottom:0;width:1px;transform:translateX(-0.5px)}
.chart-tooltip{position:absolute;z-index:3;min-width:148px;padding:8px 10px;border-radius:6px;background:rgba(30,35,41,.92);color:#eaecef;font-size:11px;line-height:1.55;pointer-events:none;box-shadow:0 6px 18px rgba(0,0,0,.35);border:1px solid rgba(234,236,239,.12)}
.chart-tooltip strong{display:block;font-size:12px;margin-bottom:4px;color:#f0b90b}
.chart-tooltip .up{color:#0ecb81}.chart-tooltip .down{color:#f6465d}
.chart-tooltip .row{display:flex;justify-content:space-between;gap:12px}
.chart-tooltip .row span:last-child{font-variant-numeric:tabular-nums}.chart-foot{font-size:11px;color:#8ba0a4;margin-top:8px;line-height:1.5}.analysis-panel .empty,.position-panel .empty{background:#f3f7f7;border-radius:8px;color:#7a9197;padding:18px;line-height:1.65;margin:16px 0}.analysis-actions{display:flex;align-items:center;gap:13px;margin-top:14px}.analysis-actions p{font-size:11px;color:#8ba0a4;margin:0}.primary,.add-form button{border:0;background:#087f6a;color:white;padding:10px 15px;border-radius:7px;font-weight:700;white-space:nowrap}.primary:hover,.add-form button:hover{background:#0b9a7e}.primary:disabled{opacity:.6;cursor:wait}
.secondary{border:1px solid #94d9c4;background:#edf8f4;color:#087d69;padding:10px 15px;border-radius:7px;font-weight:700;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease}
.secondary:hover{background:#ddf5ec;border-color:#0b9a7e;color:#066a58}
.secondary:active{background:#d0efe4}
.secondary:disabled{opacity:.55;cursor:wait}
.auto-analysis-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:4px}
.auto-analysis-actions .primary,.auto-analysis-actions .secondary{min-height:40px;padding:10px 16px;border-radius:8px;font-size:13px;letter-spacing:.01em}
.decision-card{margin:14px 0}.action{display:inline-block;padding:6px 11px;border-radius:8px;background:#fff1d6;color:#ab791f;font-size:16px;font-weight:800}.action-OPEN_LONG{background:#def7eb;color:#078a69}.action-OPEN_SHORT{background:#fde9e6;color:#bf5d55}.levels{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:13px 0}.level{background:#f2f7f6;border-radius:8px;padding:12px}.level strong{font-size:17px}.analysis-line{font-size:13px;line-height:1.6;margin:11px 0}.analysis-line strong{color:#4a656a}.muted{color:#82989d}.small{font-size:11px;line-height:1.55}.add-form{display:flex;gap:6px;margin:16px 0 12px}.add-form input{min-width:0;width:100%;border:1px solid #d3e0e1;border-radius:7px;padding:10px;color:#2a4448;background:#fff}.add-form button{padding:10px 12px}.watchlist{display:grid;gap:5px}.symbol-row{display:flex;border-radius:8px;border:1px solid #e0e9ea;align-items:center}.symbol-row.selected{background:#e1f4ed;border-color:#a6dbca}.symbol-button{background:none;border:none;text-align:left;flex:1;padding:11px;color:#557179;font-weight:700}.symbol-row.selected .symbol-button{color:#087c68}.remove{background:none;border:none;color:#9baeb1;font-size:21px;padding:0 11px}.remove:hover{color:#c76363}.watchlist-panel p{margin:16px 0 0}.position-panel h3{font-size:13px;margin:18px 0 7px}.position-panel p{font-size:12px;line-height:1.65}.lock{background:#e9eeee;border-radius:7px;padding:11px;color:#81979b;text-align:center;font-size:12px}.lock-live{background:#ddf5ec;color:#07876c;border:1px solid #a6dbca}.guidance-panel ol{padding-left:20px;margin:14px 0 0;color:#677e84;font-size:12px;line-height:2}.history.history-scroll{max-height:min(70vh,640px);overflow-y:auto;overscroll-behavior:contain;padding-right:4px;border:1px solid #e2eaeb;border-radius:12px;padding:4px 12px 8px;background:#fbfcfc}
.history-scroll-hint{position:sticky;bottom:0;margin:8px 0 0;padding:8px 0 2px;background:linear-gradient(180deg,rgba(251,252,252,0),#fbfcfc 35%);text-align:center}
.history-item{border-top:1px solid #e2eaeb;padding:12px 0}.history-item:first-child{margin-top:10px}.history-item strong{font-size:12px}.history-item p{font-size:12px;margin:5px 0 0}.history>p{font-size:12px}#toast{position:fixed;right:22px;bottom:22px;background:#27464c;color:#fff;padding:12px 16px;border-radius:8px;box-shadow:0 12px 24px #0003;max-width:360px;opacity:0;pointer-events:none;transition:opacity .2s}#toast.visible{opacity:1}@media(max-width:1120px){.main[data-view="market"] .view-layout,.main[data-view="analysis"] .view-layout{grid-template-columns:minmax(0,1fr)!important}.view-side{grid-template-columns:1fr 1fr}.main[data-view="analysis"] .view-side{grid-template-columns:1fr}.guidance-panel{grid-column:1/-1}}@media(max-width:820px){.shell{display:block}.sidebar{position:static;height:auto;width:auto;padding:10px 15px}.brand{padding-bottom:10px}.nav-caption,.sidebar-bottom{display:none}.nav{display:flex;overflow:auto;margin-top:8px}.nav a{white-space:nowrap;padding:8px 10px;font-size:12px}.topbar{padding:0 16px}.notice{padding:9px 16px}.main{padding:16px}.view-side{grid-template-columns:1fr 1fr}}@media(max-width:600px){.top-status{max-width:48%;text-align:right;font-size:10px}.page-title{align-items:flex-start}.page-title h1{font-size:22px}.page-chip{display:none}.view-side{grid-template-columns:1fr}.price-cells{gap:5px}.price-cells>div{padding:9px}.price-cells strong{font-size:15px}.chart-wrap{height:210px}.chart-foot{display:block}.chart-foot span{display:block}.analysis-actions{display:block}.analysis-actions p{margin-top:9px}.levels{gap:5px}.level{padding:8px}.level strong{font-size:14px}}

@media(max-width:600px){
  body{padding-bottom:calc(82px + env(safe-area-inset-bottom))}
  .nav{
    position:fixed;left:0;right:0;bottom:0;z-index:30;
    display:grid;grid-template-columns:repeat(var(--nav-cols,5),minmax(0,1fr));
    gap:2px;height:calc(68px + env(safe-area-inset-bottom));
    padding:5px 8px calc(5px + env(safe-area-inset-bottom));margin:0;
    background:#f8fbfa;border-top:1px solid #cddcde;box-shadow:0 -4px 16px #23494a12;
    overflow:hidden;
  }
  .nav.nav-scroll{
    display:flex;flex-wrap:nowrap;align-items:stretch;
    overflow-x:auto;overflow-y:hidden;
    -webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;
    scrollbar-width:none;scroll-snap-type:x proximity;
  }
  .nav.nav-scroll::-webkit-scrollbar{display:none}
  .nav a{
    min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:3px;padding:3px 1px;border-radius:8px;font-size:10px;text-align:center;
    line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .nav a span{width:auto;font-size:18px;line-height:1.1}
  .nav.nav-scroll a{
    flex:0 0 20%;width:20%;max-width:20%;
    scroll-snap-align:start;box-sizing:border-box;
  }
  #toast{bottom:calc(82px + env(safe-area-inset-bottom));left:12px;right:12px;max-width:none}
}

.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.settings-card,.settings-auth form{border:1px solid #d7e3e4;border-radius:10px;padding:17px;background:#fbfdfc}.settings-card h3,.settings-auth h3{margin:0 0 10px;font-size:15px}.settings-card label,.settings-auth label{display:grid;gap:6px;margin:13px 0;color:#526d72;font-size:12px;font-weight:650}.settings-card input,.settings-card select,.settings-auth input{width:100%;min-width:0;border:1px solid #ccdcde;border-radius:7px;padding:10px 11px;background:#fff;color:#24363b}.settings-auth form{max-width:480px;margin-top:16px}.settings-actions{display:flex;gap:12px;align-items:center;margin-top:13px}.settings-actions button,.settings-logout{border:1px solid #cfdddf;background:#fff;color:#3c666b;padding:8px 12px;border-radius:7px}.settings-actions .danger-text{color:#b65454}.settings-logout{margin-top:15px}.settings-panel code{overflow-wrap:anywhere}
[hidden]{display:none!important}
@media(max-width:820px){.settings-grid{grid-template-columns:1fr}}
@media(max-width:600px){.settings-card{padding:14px}}

.settings-list{margin:0 0 .8rem;padding-left:1.1rem}
.settings-list li{margin:.2rem 0}

.settings-card-wide{grid-column:1/-1}
.roles-table{display:grid;gap:8px;margin:12px 0}
.role-row{display:grid;grid-template-columns:140px minmax(0,1.1fr) minmax(0,1.2fr);gap:8px;align-items:center;padding:8px;border:1px solid #dce7e8;border-radius:8px;background:#fff}
.role-row .role-name{font-size:12px;font-weight:700;color:#35565c}
.role-row .role-name small{display:block;font-weight:500;color:#8aa0a5;margin-top:2px;line-height:1.35;white-space:normal}
.role-row select{width:100%;border:1px solid #ccdcde;border-radius:7px;padding:8px 10px;background:#fff;color:#24363b;font-size:12px}
.council-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin:14px 0}
.role-card{border:1px solid #d7e3e4;border-radius:9px;padding:11px;background:#f8fbfa}
.role-card strong{display:block;font-size:13px;margin-bottom:4px}
.role-card .stance{display:inline-block;font-size:11px;font-weight:750;padding:3px 7px;border-radius:6px;background:#e8f0f1;color:#4a666c;margin:4px 0}
.stance-BULLISH{background:#def7eb;color:#078a69}
.stance-BEARISH{background:#fde9e6;color:#bf5d55}
.stance-BLOCK{background:#fde9e6;color:#a94444}
.stance-NEUTRAL{background:#eef2f3;color:#667f85}
.role-card p{font-size:11px;line-height:1.5;margin:6px 0 0;color:#5d767c}
.role-card.invalid{opacity:.75;border-color:#e4c8c8;background:#fff8f7}
.council-meta{font-size:11px;color:#80959a;margin:8px 0}
.add-levels{display:grid;gap:6px;margin:10px 0}
.add-levels div{background:#f2f7f6;border-radius:7px;padding:8px 10px;font-size:12px}
@media(max-width:700px){.role-row{grid-template-columns:1fr}}

.dual-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.dual-tabs{display:none}
.dual-tab{appearance:none;-webkit-appearance:none;border:0;background:transparent;color:#6a8389;font:inherit;font-weight:700;font-size:12px;padding:10px 8px;border-radius:8px;cursor:pointer;line-height:1.25}
.dual-col{border:1px solid #d7e3e4;border-radius:10px;padding:12px;background:#fbfdfc;min-width:0}
.dual-col h3{margin:0 0 10px;font-size:14px;color:#2f4f55}
.unified-strip{margin-top:12px;padding:14px;border-radius:12px;background:linear-gradient(135deg,#f3faf7 0%,#eef5f6 100%);border:1px solid #d2e6e1;color:#3d5c62;display:grid;gap:10px}
.unified-strip.conflict{background:linear-gradient(135deg,#fff6f2 0%,#ffeee8 100%);border-color:#f0d2c6}
.unified-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.unified-title{font-size:16px;font-weight:800;color:#24363b;letter-spacing:-.01em}
.unified-strip.conflict .unified-title{color:#8a4b3a}
.unified-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:750;background:#ddf5ec;color:#07876c}
.unified-badge.warn{background:#fff1d5;color:#a27427}
.unified-badge.ok{background:#ddf5ec;color:#07876c}
.unified-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;font-size:11px;color:#8ba0a4}
.unified-lead{margin:0;font-size:13px;line-height:1.55;color:#35565c}
.unified-metrics{display:flex;flex-wrap:wrap;gap:8px}
.unified-metric{min-width:92px;padding:8px 10px;border-radius:8px;background:#ffffffcc;border:1px solid #d7e6e3}
.unified-metric span{display:block;font-size:10px;color:#8da1a5;margin-bottom:3px}
.unified-metric strong{display:block;font-size:13px;color:#24363b}
.unified-metric strong.warn-text{color:#bf5d55}
.unified-risk,.unified-ok-line{margin:0;font-size:12px;color:#6f888e;line-height:1.5}
.unified-alerts{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.unified-alerts li{font-size:12px;padding:6px 8px;border-radius:7px;background:#fff4ef;border:1px solid #f0d2c6;color:#8a4b3a}
.thesis-contrast{margin-top:10px;padding:14px;border-radius:12px;background:#f7faf9;border:1px solid #dce7e8;color:#4a656b}
.contrast-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.contrast-head strong{font-size:13px;color:#2f4f55}
.contrast-grid{display:grid;gap:8px}
.contrast-row{padding:10px 12px;border-radius:9px;background:#fff;border:1px solid #e1ecea}
.contrast-label{display:block;font-size:11px;font-weight:700;color:#7a9197;margin-bottom:4px}
.contrast-value{margin:0;font-size:12px;line-height:1.55;color:#35565c;white-space:pre-wrap}
.session-tag{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:999px;font-size:10px;font-weight:750;background:#e8f2f0;color:#3d5c62}
.session-tag.auto{background:#e7f3ff;color:#1f6ea8}
.session-tag.manual{background:#e8f2f0;color:#3d5c62}
.session-time{font-size:11px;color:#8ba0a4;white-space:nowrap}
.chat-session-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}
.chat-session-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto}
.action-HOLD{background:#e7f3ff;color:#1f6ea8}
.action-ADD{background:#def7eb;color:#078a69}
.action-REDUCE{background:#fff1d6;color:#ab791f}
.action-EXIT{background:#fde9e6;color:#bf5d55}
@media(max-width:820px){
  .dual-grid{
    display:flex;flex-direction:column;gap:0;
    border:1px solid #d7e3e4;border-radius:12px;background:#fbfdfc;overflow:hidden;
  }
  .dual-tabs{
    display:grid;grid-template-columns:1fr 1fr;gap:0;
    border-bottom:1px solid #d7e3e4;background:#f3f7f7;padding:0;border-radius:0;
  }
  .dual-tab{
    width:100%;padding:12px 10px;border-radius:0;font-size:13px;color:#6a8389;
    border-bottom:2px solid transparent;background:transparent;
  }
  .dual-tab.active{
    color:#087d69;background:#fff;box-shadow:none;
    border-bottom-color:#087d69;font-weight:800;
  }
  .dual-grid .dual-col{
    display:none;border:0;border-radius:0;background:transparent;padding:12px;
  }
  .dual-grid[data-dual-tab="opportunity"] .dual-col[data-dual-panel="opportunity"],
  .dual-grid[data-dual-tab="manage"] .dual-col[data-dual-panel="manage"]{display:block}
  .dual-grid .dual-col h3{display:none}
}

.chat-session{margin:0}
.chat-session-top{margin-bottom:10px}
.chat-thread{display:flex;flex-direction:column;gap:12px;max-height:min(62vh,720px);overflow:auto;padding:10px 8px;margin:0 -4px;background:linear-gradient(180deg,#eef4f4 0%,#f7fafa 100%);border:1px solid #d7e3e4;border-radius:12px}
.chat-day{align-self:center;font-size:11px;color:#7d9297;background:#fff;border:1px solid #dce7e8;border-radius:999px;padding:3px 10px}
.chat-msg{display:grid;grid-template-columns:36px minmax(0,1fr);gap:8px;align-items:start}
.chat-avatar{width:36px;height:36px;border-radius:50%;background:#087f6a;color:#fff;display:grid;place-items:center;font-size:13px;font-weight:800}
.chat-msg-cio .chat-avatar{background:#1f6ea8}
.chat-msg-invalid .chat-avatar{background:#b65454}
.chat-body{min-width:0}
.chat-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px}
.chat-name{font-size:13px;color:#2f4f55}
.chat-score{font-size:11px;color:#7a9197}
.chat-meta{font-size:10px;color:#8ba0a4;margin-bottom:4px}
.chat-bubble{background:#fff;border:1px solid #d7e3e4;border-radius:4px 14px 14px 14px;padding:10px 12px;box-shadow:0 1px 2px #23494a0a}
.chat-msg-cio .chat-bubble{border-color:#bdd7ea;background:#f3f8fc}
.chat-msg-invalid .chat-bubble{border-color:#e8c4c4;background:#fff8f7}
.chat-main{margin:0 0 6px;font-size:13px;line-height:1.55;color:#2a4448;white-space:pre-wrap}
.chat-line{margin:4px 0 0;font-size:12px;line-height:1.5;color:#5d767c}
.chat-line strong{color:#3f5c62;margin-right:4px}
.dual-col .empty{margin:0}

.chat-pane{min-height:280px}
.dual-col h3 small{font-weight:500;margin-left:6px}
.main[data-view="analysis"] .view-layout{grid-template-columns:minmax(0,1fr) !important}
.main[data-view="analysis"] .view-side{display:none !important}
@media(min-width:821px){.dual-grid{grid-template-columns:1.2fr 0.8fr}.dual-tabs{display:none!important}.dual-grid .dual-col{display:block!important}.dual-grid .dual-col h3{display:block}}
.chat-thread{min-height:320px}

.equity-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0 12px}
/* portfolio-lite: 8 metric cells */
.equity-grid .equity-foot{grid-column:1/-1;margin:2px 0 0}
.equity-cell{background:#f2f7f6;border-radius:8px;padding:12px}
.equity-cell span{display:block;color:#8da1a5;font-size:11px;margin-bottom:6px}
.equity-cell strong{font-size:18px}
.equity-foot{grid-column:1/-1;margin:0}
.table-wrap{overflow:auto;margin-top:8px}
.data-table{width:100%;border-collapse:collapse;font-size:12px}
.data-table th,.data-table td{padding:8px 8px;border-bottom:1px solid #e2eaeb;text-align:left;white-space:nowrap}
.data-table th{color:#7a9197;font-weight:650}
.pnl-up{color:#078a69 !important}
.pnl-down{color:#bf5d55 !important}
.side-long{color:#078a69;font-weight:700}
.side-short{color:#bf5d55;font-weight:700}
@media(max-width:820px){.equity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.patrol-bar{display:flex;gap:14px;align-items:center;margin:0 0 16px;padding:12px 12px 12px 14px;border-radius:12px;background:linear-gradient(135deg,#f3faf7 0%,#eef5f6 100%);border:1px solid #d2e6e1}
.patrol-strip{flex:1;min-width:0;display:grid;gap:8px;padding:2px 0;color:#3d5c62}
.patrol-bar:has(.patrol-strip.warn){background:linear-gradient(135deg,#fff9ee 0%,#fff6e4 100%);border-color:#edd9a5}
.patrol-bar:has(.patrol-strip.alert){background:linear-gradient(135deg,#fff6f2 0%,#ffeee8 100%);border-color:#f0d2c6}
.patrol-head{display:flex;align-items:center;gap:8px;min-width:0}
.patrol-title{font-size:14px;font-weight:750;color:#2a4448;letter-spacing:-.01em}
.patrol-strip.warn .patrol-title{color:#7a5a16}
.patrol-strip.alert .patrol-title{color:#8a4b3a}
.patrol-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:750;background:#ddf5ec;color:#07876c}
.patrol-badge.warn{background:#fff1d5;color:#a27427}
.patrol-badge.alert{background:#fde9e6;color:#bf5d55}
.patrol-badge.ok{background:#ddf5ec;color:#07876c}
.patrol-metrics{display:flex;flex-wrap:wrap;gap:8px}
.patrol-metric{min-width:88px;padding:7px 10px;border-radius:8px;background:#ffffffcc;border:1px solid #d7e6e3}
.patrol-metric span{display:block;font-size:10px;color:#8da1a5;margin-bottom:3px}
.patrol-metric strong{display:block;font-size:14px;color:#24363b;letter-spacing:-.01em}
.patrol-ok-line{margin:0;font-size:12px;color:#6f888e}
.patrol-error{margin:0;font-size:12px;color:#8a4b3a}
.patrol-alerts{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.patrol-alerts li{font-size:12px;line-height:1.45;padding:6px 8px;border-radius:7px;background:#fff;border:1px solid #e0ebe8;color:#4a656b}
.patrol-alerts li.warn{background:#fff8e8;border-color:#edd9a5;color:#7a5a16}
.patrol-alerts li.alert{background:#fff4ef;border-color:#f0d2c6;color:#8a4b3a}
.patrol-meta{display:flex;flex-wrap:wrap;align-items:center;gap:0;font-size:11px;color:#8ba0a4}
.patrol-meta span{display:inline-flex;align-items:center}
.patrol-meta span:not(:last-child)::after{content:"";width:3px;height:3px;margin:0 8px;border-radius:50%;background:#b7c7ca}
.patrol-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:none;border:0;border-radius:10px;padding:11px 16px;background:linear-gradient(180deg,#0b9a7e 0%,#087f6a 100%);color:#fff;font-size:13px;font-weight:750;letter-spacing:.02em;box-shadow:0 1px 0 #ffffff33 inset,0 6px 14px #087f6a33;transition:transform .15s ease,box-shadow .15s ease,background .15s ease,opacity .15s ease}
.patrol-btn:hover{background:linear-gradient(180deg,#10ad8e 0%,#0a8f77 100%);box-shadow:0 1px 0 #ffffff44 inset,0 8px 18px #087f6a40;transform:translateY(-1px)}
.patrol-btn:active{transform:translateY(0);box-shadow:0 1px 0 #ffffff22 inset,0 3px 8px #087f6a2e}
.patrol-btn:disabled{opacity:.65;cursor:wait;transform:none;box-shadow:none}
.patrol-btn-icon{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#ffffff22}
.patrol-btn-icon svg{display:block}
.patrol-btn.is-loading .patrol-btn-icon{animation:patrol-spin 0.9s linear infinite}
@keyframes patrol-spin{to{transform:rotate(360deg)}}
@media(max-width:600px){
  .patrol-bar{flex-direction:column;align-items:stretch}
  .patrol-btn{width:100%}
}
.history-item .meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.history-tag{display:inline-block;padding:2px 7px;border-radius:999px;background:#e8f2f0;color:#3d5c62;font-size:12px}
.history-tag.conflict{background:#ffe8e0;color:#8a4b3a}
.history-tag.warn{background:#fff1d6;color:#7a5a16}

.auto-analysis-form{margin-top:10px}
.auto-analysis-form .check-row{display:flex;align-items:center;gap:8px;font-size:13px;color:#35565c;font-weight:650;margin:10px 0}
.auto-analysis-form .check-row input{width:auto}
.auto-analysis-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0 14px}
@media(max-width:600px){.auto-analysis-grid{grid-template-columns:1fr}}

.unified-badge.exec,.history-tag.exec{background:#e7f3ff;color:#1f6ea8}
.history-tag.exec{display:inline-block;padding:2px 7px;border-radius:999px;font-size:12px}

.suggest-card{margin-top:10px;padding:14px;border-radius:12px;border:1px solid #bdd7ea;background:#f3f8fc}
.suggest-card h3{margin:0 0 8px;font-size:14px;color:#1f6ea8}
.suggest-card .levels{margin:8px 0}
.suggest-card ol{margin:8px 0 0;padding-left:18px;color:#4a656b;font-size:12px;line-height:1.7}
.thesis-timeline{margin-top:10px;padding:12px;border-radius:12px;border:1px solid #dce7e8;background:#fbfdfc}
.thesis-timeline h3{margin:0 0 8px;font-size:13px}
.thesis-item{padding:8px 0;border-top:1px solid #e7eeee;font-size:12px;color:#4a656b}
.thesis-item:first-of-type{border-top:0}
.paper-stats{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.paper-stats .unified-metric{min-width:88px}

.paper-panel h3{font-size:13px;margin:18px 0 7px}
.paper-panel .empty{background:#f3f7f7;border-radius:8px;color:#7a9197;padding:18px;line-height:1.65;margin:10px 0}
.paper-review-list{display:grid;gap:8px}
.paper-review-item{border:1px solid #e0e9ea;border-radius:10px;padding:12px;background:#fbfdfc}
.paper-review-item.win{border-color:#b9e4d2;background:#f3fbf7}
.paper-review-item.loss{border-color:#f0cfc9;background:#fff8f6}
.paper-review-item .row{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:12px}
.paper-review-item p{margin:6px 0 0;font-size:12px;color:#5a7278;line-height:1.55}
.paper-suggest-list{display:grid;gap:8px;margin:8px 0 4px}
.paper-suggest-list .suggest-card{margin:0}

.live-trading-card{border-color:#e2c08a;background:linear-gradient(180deg,#fffaf0,#fff)}
.live-trading-card h3{color:#9a6a1f}
.danger-row{color:#9a4b2f;font-weight:700}
.live-trading-card select,.live-trading-card input[type="text"]{width:100%;border:1px solid #d3e0e1;border-radius:7px;padding:10px;background:#fff;color:#2a4448}
#live-trading-kill{background:#f3e2dc;color:#9a3f2c;border:1px solid #e5c2b6;border-radius:7px;padding:10px 14px;font-weight:700}
#live-trading-kill:hover{background:#edd2c8}

@media(max-width:900px){.price-cells{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.price-cells{grid-template-columns:repeat(2,minmax(0,1fr))}}

.symbol-bar{display:none!important;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 16px;padding:12px 14px;background:#fff;border:1px solid #d0dfe1;border-radius:13px;box-shadow:0 1px 2px #38595f09}
.main[data-view="market"] .symbol-bar.view-block[data-views~="market"],
.main[data-view="analysis"] .symbol-bar.view-block[data-views~="analysis"]{display:flex!important}
.symbol-bar-main{display:flex;align-items:center;gap:8px;min-width:0}
.symbol-bar-label{font-size:12px;font-weight:700;color:#5f7a80;white-space:nowrap}
.symbol-select{appearance:none;-webkit-appearance:none;min-width:160px;max-width:240px;border:1px solid #c9dbdd;border-radius:8px;padding:10px 34px 10px 12px;background:#f7fbfa url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236a858c' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 12px center;color:#204048;font-weight:700;font-size:14px}
.symbol-select:focus{outline:2px solid #9ad7c6;outline-offset:1px}
.symbol-remove{border:1px solid #e0e9ea;background:#fff;color:#7a9197;border-radius:8px;padding:9px 12px;font-size:12px;font-weight:650}
.symbol-remove:hover{color:#c76363;border-color:#e5c2b6;background:#fff8f6}
.symbol-add-form{display:flex;align-items:center;gap:8px;margin-left:auto;min-width:0;flex:1 1 280px;max-width:420px}
.symbol-add-form input{flex:1;min-width:0;border:1px solid #d3e0e1;border-radius:8px;padding:10px 12px;color:#2a4448;background:#fff}
.symbol-add-form button{padding:10px 14px}
.symbol-bar-count{white-space:nowrap}
@media(max-width:720px){
  .symbol-bar{align-items:stretch}
  .symbol-bar-main{width:100%}
  .symbol-select{flex:1;max-width:none}
  .symbol-add-form{margin-left:0;max-width:none;flex-basis:100%}
}

.main[data-view="market"] .view-main,
.main[data-view="analysis"] .view-main{width:100%;max-width:none}
.main[data-view="market"] .market-panel,
.main[data-view="analysis"] .analysis-panel{width:100%}
.main[data-view="market"] .view-layout{align-items:stretch}
.main[data-view="market"] .guidance-panel{margin-top:0}
.main[data-view="market"] .guidance-panel ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 16px;padding-left:20px}
@media(max-width:900px){.main[data-view="market"] .guidance-panel ol{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.main[data-view="market"] .guidance-panel ol{grid-template-columns:1fr}}

.main[data-view="market"] .chart-wrap{height:320px}
@media(max-width:600px){.main[data-view="market"] .chart-wrap{height:220px}}

.progress-pane{padding:4px 0}
.progress-head{font-size:13px;font-weight:750;color:#2a4a50;margin-bottom:6px}
.progress-roles{display:grid;gap:6px;margin-top:10px}
.progress-role{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 10px;padding:10px 12px;border-radius:10px;border:1px solid #e0e9ea;background:#f8fbfb}
.progress-role-main{display:flex;align-items:center;gap:10px}
.progress-status{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:#e7eeee;color:#5f787e}
.progress-role.status-running{border-color:#9ad7c6;background:#eefaf5}
.progress-role.status-running .progress-status{background:#d7f3e8;color:#087d69}
.progress-role.status-done{border-color:#cfe6db;background:#f3fbf7}
.progress-role.status-done .progress-status{background:#dff5ea;color:#0a7d66}
.progress-role.status-error{border-color:#f0cfc9;background:#fff8f6}
.progress-role.status-error .progress-status{background:#fde7e2;color:#b3544a}
.progress-role.status-skipped .progress-status{background:#fff1d5;color:#a27427}

.trades-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:18px 0 7px}
.trades-head h3{margin:0;font-size:13px}
.trades-symbol-select{appearance:none;-webkit-appearance:none;min-width:140px;border:1px solid #c9dbdd;border-radius:8px;padding:7px 28px 7px 10px;background:#f7fbfa url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236a858c' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 10px center;color:#204048;font-weight:700;font-size:12px}

.learn-card { border: 1px solid rgba(255,255,255,.08); border-radius: 10px; padding: 10px 12px; margin: 8px 0; line-height: 1.45; }
.learn-card-head { font-weight: 600; margin-bottom: 6px; }
.learn-symbol-scores { margin-top: 8px; display: grid; gap: 4px; }

.main[data-view="live"] .view-block[data-views~="live"]{display:block!important}
.main[data-view="live"] .page-title.view-block[data-views~="live"]{display:flex!important}
.live-exec-card{border:1px solid #d6e2e3;border-left:4px solid #19b18c;border-radius:10px;padding:12px 14px;margin:10px 0;background:#fff}
.live-exec-card.fail{border-left-color:#d9534f}
.live-exec-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:10px}
.live-status{font-size:11px;font-weight:700;border-radius:6px;padding:3px 8px}
.live-status.ok{background:#ddf5ec;color:#07876c}
.live-status.fail{background:#fde4e2;color:#b2362f}
.live-kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:6px}
.live-kv-item{background:#f1f6f5;border-radius:7px;padding:7px 9px;min-width:0}
.live-kv-item span{display:block;color:#8da1a5;font-size:11px;margin-bottom:3px}
.live-kv-item strong{font-size:13px;word-break:break-all}
.live-exec-prot,.live-exec-err{margin-top:8px;font-size:12px;line-height:1.6}
.live-exec-card details{margin-top:8px;font-size:12px}
.live-exec-raw{font-size:11px;background:#f4f8f8;border-radius:7px;padding:8px;overflow:auto;max-height:280px;white-space:pre}

.live-exec-card.done{border-left-color:#9fb3b7}
.live-status.done{background:#eef2f3;color:#6b8288}
