:root{--bg-deep: #080c14;--bg-main: #111827;--bg-card: #1a1f2e;--bg-raised: #1e2535;--bg-subtle: #151b29;--text: #f3f4f6;--text-dim: #b8c0cc;--text-muted: #8b95a8;--border: rgba(255, 255, 255, .08);--border-light: rgba(255, 255, 255, .12);--border-hover: rgba(255, 255, 255, .14);--accent: #00d4aa;--accent-soft: rgba(0, 212, 170, .1);--up: #22c55e;--up-bg: rgba(34, 197, 94, .1);--down: #ef4444;--down-bg: rgba(239, 68, 68, .1);--warn: #f59e0b;--warn-bg: rgba(245, 158, 11, .12);--radius: 12px;--radius-sm: 8px;--sidebar-w: 240px;--font-mono: "SF Mono", "JetBrains Mono", "Cascadia Code", "Fira Code", monospace;--font-sans: "SF Pro Display", -apple-system, "PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;--color-primary: #10b981;--color-primary-light: #34d399;--color-primary-dark: #059669}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-weight:400;color:var(--text);background:var(--bg-main);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h2{font-size:22px;font-weight:600;margin-bottom:16px;letter-spacing:.01em}h3{font-size:18px;font-weight:600}strong,b{font-weight:600}p,span,div{color:inherit}.nav-item,input,select,textarea,button{font-size:16px}.watch-tile-title{font-size:17px}.watch-tile-meta{font-size:14px}.watch-tile-body span{font-size:13px}.watch-tile-body strong{font-size:16px}.card-head h3{font-size:18px}.card-head p{font-size:15px}.metrics span,.ma-cell label{font-size:14px}.metrics strong,.ma-cell strong{font-size:17px}.recent-item,.key-holding-row{font-size:16px}.kh-symbol{font-size:17px}#root{min-height:100vh;display:flex}strong,.price,.pnl,.change,.quantity,.cost,.value,.ma-value,.metric-value,.pt-value,.pt-pnl,.kh-price,.kh-pnl,.kh-change{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.app-shell{display:flex;width:100%;min-height:100vh}.sidebar{display:none;position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);background:var(--bg-deep);border-right:1px solid var(--border);flex-direction:column;z-index:100;overflow-y:auto}@media(min-width:768px){.sidebar{display:flex}}.sidebar-brand{padding:24px 20px 20px;border-bottom:1px solid var(--border)}.sidebar-brand h1{font-size:20px;font-weight:700;letter-spacing:-.01em;color:var(--text)}.sidebar-brand span{display:block;font-size:12px;font-weight:500;color:var(--accent);margin-top:4px;letter-spacing:.06em;text-transform:uppercase}.sidebar-nav{flex:1;padding:12px 10px;display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius-sm);font-size:15px;font-weight:500;color:var(--text-dim);background:transparent;border:none;cursor:pointer;transition:all .15s ease;text-align:left;width:100%;position:relative}.nav-item:hover{color:var(--text);background:rgba(255,255,255,.04)}.nav-item.active{color:var(--accent);background:var(--accent-soft)}.nav-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:20px;background:var(--accent);border-radius:0 2px 2px 0}.nav-icon{font-size:18px;width:22px;text-align:center;flex-shrink:0}.sidebar-footer{padding:16px 20px;border-top:1px solid var(--border);font-size:13px;color:var(--text-muted)}.sidebar-footer .user-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.sidebar-footer .sync-dot{width:6px;height:6px;border-radius:50%;background:var(--text-muted);flex-shrink:0}.sidebar-footer .sync-dot.ok{background:var(--accent)}.main-area{flex:1;min-width:0;display:flex;flex-direction:column}@media(min-width:768px){.main-area{margin-left:var(--sidebar-w)}}.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--bg-main);position:sticky;top:0;z-index:50;gap:12px}.topbar-title{font-size:18px;font-weight:600;color:var(--text)}.topbar-status{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-dim)}.topbar-status .error{color:var(--down)}.page-content{flex:1;padding:20px;overflow-y:auto}@media(min-width:768px){.page-content{padding:24px 28px}}.mobile-tabs{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--bg-deep);border-top:1px solid var(--border);z-index:100;padding-bottom:env(safe-area-inset-bottom,0);justify-content:space-around}@media(min-width:768px){.mobile-tabs{display:none}}.mobile-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0 6px;font-size:11px;font-weight:500;color:var(--text-dim);background:transparent;border:none;cursor:pointer;transition:color .15s}.mobile-tab.active{color:var(--accent)}.mobile-tab .tab-icon{font-size:20px}@media(max-width:767px){.page-content{padding-bottom:70px}}.card,.panel,.dashboard-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:0 1px 3px rgba(0,0,0,.06);transition:box-shadow .2s ease,border-color .2s ease}.card:hover,.panel:hover,.dashboard-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.1);border-color:var(--border-hover, var(--border))}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.card-head h3{font-size:16px;font-weight:600}.card-head p{font-size:14px;color:var(--text-dim);margin-top:2px}input,select,textarea{background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;font-size:15px;color:var(--text);font-family:var(--font-sans);transition:border-color .15s}input:focus,select:focus{outline:none;border-color:var(--accent)}input::placeholder{color:var(--text-muted)}select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b95a5' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:32px}button{font-family:var(--font-sans);font-size:14px;font-weight:500;padding:9px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text);cursor:pointer;transition:all .15s ease}button:hover{border-color:var(--border-hover);background:var(--bg-raised)}button:active{transform:scale(.98)}button.primary,.inline-form button{background:var(--accent);border-color:var(--accent);color:#080c14;font-weight:600}button.primary:hover,.inline-form button:hover{background:#00e0b0;border-color:#00e0b0}button.danger,button.small.danger{background:var(--down-bg);border-color:rgba(239,68,68,.2);color:var(--down)}button.danger:hover{background:rgba(239,68,68,.18)}button.small{font-size:13px;padding:5px 12px}.chip-group{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:5px 12px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-dim);font-size:13px;font-weight:500;cursor:pointer;transition:all .12s}.chip:hover{border-color:var(--border-hover);color:var(--text)}.chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.muted{color:var(--text-dim)}.error{color:var(--down)}.up{color:var(--up)}.down{color:var(--down)}.empty-state{border:1px dashed rgba(255,255,255,.08);border-radius:var(--radius);padding:32px 18px;text-align:center;color:var(--text-muted);font-size:15px}h2{font-size:20px;font-weight:600;margin-bottom:14px;color:var(--text)}.inline-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-bottom:14px}.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.metrics span{display:block;font-size:13px;color:var(--text-dim);margin-bottom:3px}.metrics strong{font-size:16px;line-height:1.35}.metrics>div:not(.ma-block){background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px}.ma-block{grid-column:1 / -1}.ma-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:6px}.ma-cell{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 9px}.ma-cell label{display:block;font-size:13px;color:var(--text-muted);margin-bottom:3px}.ma-cell strong{font-size:15px}.position-badge{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;vertical-align:middle}.position-badge.long_term{background:var(--up-bg);color:var(--up)}.position-badge.tactical{background:var(--warn-bg);color:var(--warn)}.position-badge.temporary{background:var(--down-bg);color:var(--down)}.dashboard-grid{display:flex;flex-direction:column;gap:20px}.dashboard-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:0 2px 8px rgba(0,0,0,.08);transition:box-shadow .2s ease}.dashboard-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.12)}.dashboard-card h3{font-size:14px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--border)}.dashboard-card.overview{border-left:4px solid var(--color-primary, #10b981);background:linear-gradient(135deg,var(--bg-card) 0%,rgba(16,185,129,.05) 100%)}.dashboard-card.overview h3{color:var(--color-primary, #10b981);border-bottom-color:rgba(16,185,129,.2)}.metric-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}@media(min-width:768px){.metric-row{grid-template-columns:repeat(4,1fr)}}.metric{display:flex;flex-direction:column;gap:8px;padding:16px;background:var(--bg-subtle);border-radius:var(--radius-sm);border:1px solid var(--border)}.metric-label{font-size:12px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.metric-value{font-size:28px;font-weight:700;line-height:1.1;color:var(--text)}.position-type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media(max-width:480px){.position-type-grid{grid-template-columns:1fr}}.position-type-card{border:1px solid var(--border);border-radius:var(--radius);padding:20px;text-align:center;background:var(--bg-subtle);transition:all .2s ease;box-shadow:0 1px 4px rgba(0,0,0,.06)}.position-type-card:hover{border-color:var(--border-hover);box-shadow:0 4px 12px rgba(0,0,0,.1);transform:translateY(-2px)}.position-type-card.long_term{border-left:4px solid var(--up)}.position-type-card.tactical{border-left:4px solid var(--warn)}.position-type-card.temporary{border-left:4px solid var(--down)}.pt-name{font-size:14px;font-weight:600;color:var(--text);margin-bottom:12px}.pt-count{font-size:12px;color:var(--text-muted);margin-bottom:8px}.pt-value{font-size:20px;font-weight:700;color:var(--text);margin-bottom:4px}.pt-pnl{font-size:14px;font-weight:500}.position-type-card.tactical{border-left:3px solid var(--warn)}.position-type-card.temporary{border-left:3px solid var(--down)}.pt-name{font-size:15px;font-weight:600;color:var(--text-dim);margin-bottom:8px}.pt-count{font-size:14px;color:var(--text-muted);margin-bottom:6px}.pt-value{font-size:20px;font-weight:700;margin-bottom:6px}.pt-pnl{font-size:15px}.recent-list{margin-bottom:16px}.recent-list:last-child{margin-bottom:0}.recent-title{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.recent-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px;transition:background .15s ease}.recent-item:last-child{border-bottom:none}.recent-item:hover{background:rgba(255,255,255,.02);margin:0 -24px;padding-left:24px;padding-right:24px}.recent-time{color:var(--text-muted);font-size:12px;white-space:nowrap;min-width:60px}.recent-command{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-weight:500}.recent-summary{color:var(--text-muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}.recent-delete-btn{background:none;border:none;color:#666;font-size:16px;cursor:pointer;padding:2px 6px;border-radius:3px;line-height:1;transition:all .15s;flex-shrink:0}.recent-delete-btn:hover{color:#e74c3c;background:rgba(231,76,60,.1)}.recent-status{font-size:11px;padding:3px 10px;border-radius:999px;white-space:nowrap;font-weight:600}.recent-status.success{background:var(--up-bg);color:var(--up)}.recent-status.failed{background:var(--down-bg);color:var(--down)}.recent-title-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-weight:500}.key-holdings{display:flex;flex-direction:column;gap:0}.key-holding-row{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--border);transition:background .15s ease}.key-holding-row:last-child{border-bottom:none}.key-holding-row:hover{background:rgba(255,255,255,.02);margin:0 -24px;padding-left:24px;padding-right:24px}.kh-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.kh-symbol{font-size:15px;font-weight:700;color:var(--text);min-width:80px}.kh-position-type{display:inline-block;padding:4px 12px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}.kh-position-type.long_term{background:var(--up-bg);color:var(--up)}.kh-position-type.tactical{background:var(--warn-bg);color:var(--warn)}.kh-position-type.temporary{background:var(--down-bg);color:var(--down)}.kh-price{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:100px}.kh-price strong{font-size:14px;font-weight:600;color:var(--text)}.kh-change{font-size:12px;font-weight:500}.kh-pnl{display:flex;flex-direction:column;align-items:flex-end;min-width:80px}.kh-pnl span{font-size:14px;font-weight:600}@media(max-width:600px){.key-holding-row{flex-wrap:wrap;gap:8px}.kh-price,.kh-pnl{min-width:auto}}.watch-controls{margin-bottom:14px;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-subtle)}.watch-control-row{display:flex;gap:12px;align-items:center;margin-bottom:10px}.watch-control-row:last-child{margin-bottom:0}.watch-control-row>span{width:64px;flex-shrink:0;font-size:14px;color:var(--text-dim)}@media(max-width:480px){.watch-control-row{flex-direction:column;align-items:flex-start;gap:6px}.watch-control-row>span{width:auto}}.watch-group-block{margin-top:14px}.watch-group-title{font-size:14px;font-weight:600;color:var(--text-dim);margin-bottom:10px;letter-spacing:.04em}.watch-tile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}@media(max-width:900px){.watch-tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.watch-tile-grid{grid-template-columns:1fr}}.watch-tile{text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);padding:12px;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.06);transition:all .15s,box-shadow .2s ease,transform .15s ease}.watch-tile:hover{border-color:var(--border-hover);box-shadow:0 2px 8px rgba(0,0,0,.1);transform:translateY(-1px)}.watch-tile.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 2px 8px rgba(0,0,0,.1)}.watch-tile-head{margin-bottom:8px}.watch-tile-title{font-size:15px;font-weight:600}.watch-tile-meta{margin-top:3px;font-size:13px;color:var(--text-dim)}.watch-tile-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.watch-tile-body span{display:block;font-size:12px;color:var(--text-muted);letter-spacing:.02em}.watch-tile-body strong{font-size:14px}.watch-detail-card{margin-top:8px}.watch-inline-detail{grid-column:1 / -1;margin-top:4px}.watch-inline-detail .card-head{flex-wrap:wrap}@media(max-width:900px){.watch-inline-detail .metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.watch-inline-detail .metrics>div:not(.ma-block){min-height:68px}.watch-inline-detail .ma-block{grid-column:1 / -1}.watch-inline-detail .ma-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}}.detail-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.detail-section strong{display:block;margin-bottom:8px;font-size:14px;color:var(--text-dim);letter-spacing:.03em}.attention-list{display:flex;flex-direction:column;gap:6px}.attention-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:15px}.ai-record{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.ai-title{font-weight:600;font-size:15px;margin-bottom:8px}.ai-summary{font-size:15px;line-height:1.6;color:var(--text-dim);margin-bottom:12px}.ai-risk{font-size:15px;margin-bottom:10px}.ai-risk strong{display:block;margin-bottom:4px;font-size:13px;color:var(--text-dim);letter-spacing:.03em}.ai-risk ul{margin:4px 0 0 16px;padding:0}.ai-risk li{margin-bottom:4px;color:var(--text-dim)}.ai-disclaimer{font-size:13px;color:var(--text-muted);border-top:1px solid var(--border);padding-top:10px;margin-top:10px}.summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}@media(min-width:768px){.summary{grid-template-columns:repeat(3,minmax(0,1fr))}}.summary div{background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--color-primary, #10b981);border-radius:var(--radius);padding:14px;box-shadow:0 2px 4px rgba(0,0,0,.08);transition:transform .2s ease,box-shadow .2s ease}.summary div:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.12)}.summary span{font-size:13px;color:var(--text-muted);display:block;letter-spacing:.03em}.summary strong{font-size:20px;display:block;margin-top:4px}.portfolio-manage-panel{margin-bottom:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-subtle);overflow:hidden}.portfolio-manage-panel summary{cursor:pointer;padding:14px;font-weight:600;font-size:15px;background:var(--bg-card)}.portfolio-manage-panel[open] summary{border-bottom:1px solid var(--border)}.portfolio-manage-panel .watch-controls,.portfolio-manage-panel .inline-form,.portfolio-manage-panel .hint,.portfolio-manage-panel .ocr-panel{margin:14px}.portfolio-sections{display:flex;flex-direction:column;gap:14px}.portfolio-market-section{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:0 2px 6px rgba(0,0,0,.08);transition:box-shadow .2s ease}.portfolio-market-head{display:grid;grid-template-columns:.8fr 1fr 1fr;gap:8px;padding:10px 14px;background:var(--bg-subtle);border-bottom:1px solid var(--border);align-items:center}.portfolio-market-head strong{font-size:16px}.portfolio-market-head span{text-align:right;font-size:14px;color:var(--text-dim)}.portfolio-list-head,.portfolio-row{display:grid;grid-template-columns:1.2fr .85fr .85fr .9fr;gap:8px;padding:10px 14px;font-size:14px}.portfolio-list-head{color:var(--text-dim);font-weight:600;font-size:13px;letter-spacing:.03em;background:var(--bg-main);border-bottom:1px solid var(--border)}.portfolio-rows{display:flex;flex-direction:column;gap:8px;padding:12px 14px}.portfolio-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);padding:12px;display:grid;grid-template-columns:1fr;gap:10px}@media(min-width:1100px){.portfolio-rows{display:grid;grid-template-columns:repeat(auto-fill,minmax(480px,1fr));gap:12px}.portfolio-list-head{display:none}.portfolio-row{height:100%}}.portfolio-row-title{display:flex;flex-direction:column;gap:3px}.portfolio-row-title strong{font-size:16px;line-height:1.2}.portfolio-row-title small{margin:0;color:var(--text-dim);font-size:12px}.portfolio-inline-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.portfolio-inline-metrics span{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;display:flex;flex-direction:column;gap:2px;background:var(--bg-subtle)}.portfolio-inline-metrics label{color:var(--text-muted);font-size:13px}.portfolio-inline-metrics strong{font-size:16px;line-height:1.25}.portfolio-cell{display:flex;flex-direction:column;gap:3px}.portfolio-cell strong{font-size:15px;line-height:1.25}.portfolio-cell small{margin:0;font-size:13px;color:var(--text-dim)}.portfolio-edit-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-subtle)}.portfolio-edit-head{grid-column:1 / -1;display:flex;flex-direction:column;gap:2px;margin-bottom:4px}.portfolio-edit-head strong{font-size:15px}.portfolio-edit-head small{font-size:13px;color:var(--text-dim)}.portfolio-edit-field{display:flex;flex-direction:column;gap:5px}.portfolio-edit-field span{font-size:13px;color:var(--text-dim)}.market-summary{grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:768px){.market-summary{grid-template-columns:repeat(4,minmax(0,1fr))}}.market-summary div{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px;box-shadow:0 1px 3px rgba(0,0,0,.06);transition:transform .15s ease}.market-summary div:hover{transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,0,0,.1)}.hint{margin:0 0 10px;font-size:15px;color:var(--text-dim)}.row-actions{display:flex;gap:8px}.alert-recent-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-subtle);padding:12px;margin-bottom:14px;box-shadow:0 1px 4px rgba(0,0,0,.07);transition:box-shadow .2s ease}.alert-recent-panel:hover{box-shadow:0 2px 8px rgba(0,0,0,.1)}.alert-recent-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.alert-recent-head strong{font-size:15px}.alert-recent-head span{font-size:12px;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:2px 8px;font-weight:600}.alert-recent-list{max-height:220px;overflow:auto;display:flex;flex-direction:column;gap:6px}.alert-recent-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);padding:10px 12px;display:flex;flex-direction:column;gap:3px}.alert-recent-title{display:flex;justify-content:space-between;gap:8px;align-items:center}.alert-recent-title strong{font-size:14px}.alert-recent-title span,.alert-recent-item small{font-size:13px;color:var(--text-dim)}.alert-rule-group{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.alert-rule-group summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:var(--bg-subtle)}.alert-rule-group summary::-webkit-details-marker{display:none}.alert-rule-group summary strong{font-size:15px}.alert-rule-group summary span{font-size:13px;color:var(--text-dim)}.alert-rule-group-actions{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px 0}.alert-rule-group-list{display:flex;flex-direction:column;gap:8px;padding:12px 14px}.alert-rule-select{display:flex;align-items:center;gap:8px;font-size:15px}.multi-alert-picker{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-subtle);padding:12px;margin-bottom:12px}.alert-market-filter{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.alert-market-filter button{border-radius:999px;font-size:13px;padding:6px 12px}.multi-alert-group-list{display:flex;flex-direction:column;gap:10px}.multi-alert-group{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);padding:10px}.multi-alert-group h4{font-size:14px;font-weight:600;margin-bottom:8px}.multi-alert-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:160px;overflow:auto}@media(max-width:480px){.multi-alert-list{grid-template-columns:1fr}}.multi-alert-item{display:flex;align-items:center;gap:8px;font-size:15px}.ocr-panel{border:1px dashed rgba(255,255,255,.08);border-radius:var(--radius);padding:14px;margin-bottom:14px;background:var(--bg-subtle)}.ocr-panel h3{font-size:16px;margin-bottom:10px}.ocr-list{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.ocr-item{display:grid;grid-template-columns:1fr .8fr 1fr 1fr 1.3fr;gap:8px;padding:8px 10px;font-size:13px;border-top:1px solid var(--border)}.ocr-item:first-child{border-top:none}.ocr-raw{margin-top:10px}.ocr-raw summary{cursor:pointer;font-size:14px;color:var(--text-dim)}.ocr-raw pre{margin:8px 0 0;max-height:140px;overflow:auto;padding:8px;border-radius:var(--radius-sm);background:var(--bg-deep);color:var(--text-dim);font-size:13px;font-family:var(--font-mono)}.list{display:flex;flex-direction:column;gap:8px}.list-item{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--bg-card)}@media(max-width:480px){.list-item{flex-direction:column;align-items:flex-start}}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media(max-width:480px){.grid{grid-template-columns:1fr}}.table{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.table-head,.table-row{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr 1fr 1fr;gap:6px;padding:10px 12px;font-size:14px}.table-head{background:var(--bg-subtle);color:var(--text-dim);font-weight:600;font-size:13px;letter-spacing:.03em}.table-row{border-top:1px solid var(--border)}@media(max-width:900px){.table-head,.table-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}@media(max-width:768px){.portfolio-market-head{grid-template-columns:1fr;gap:4px}.portfolio-market-head span{text-align:left}.portfolio-list-head{display:none}.portfolio-row{padding:12px}.portfolio-inline-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.portfolio-inline-metrics strong{font-size:14px}.market-summary,.ocr-item{grid-template-columns:repeat(2,minmax(0,1fr))}}.env-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.env-item{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm)}.env-item label{font-size:13px;color:var(--text-dim);font-family:var(--font-mono)}.env-item code{font-size:14px;color:var(--text);font-family:var(--font-mono);word-break:break-all}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-weight:600;font-size:12px;line-height:1.2}.pill-ok{background:var(--up-bg);color:var(--up)}.pill-warn{background:var(--warn-bg);color:var(--warn)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(255,255,255,.08);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.14)}.filter-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;flex-wrap:wrap}.filter-bar-label{font-size:13px;font-weight:600;color:var(--text-muted);flex-shrink:0}.filter-bar .chip-group{display:flex;gap:6px;flex-wrap:wrap}.add-section{margin-bottom:16px}.add-section-toggle{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--accent);background:var(--accent-soft);border:1px solid rgba(0,212,170,.2);border-radius:var(--radius-sm);padding:8px 16px;cursor:pointer;transition:all .15s}.add-section-toggle:hover{background:rgba(0,212,170,.18);border-color:var(--accent)}.add-form-card{margin-top:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.add-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field label{font-size:13px;font-weight:600;color:var(--text-dim)}.form-field input,.form-field select{width:100%}.add-form-actions{display:flex;gap:8px;margin-top:12px}.detail-tabs{display:flex;gap:2px;margin-top:14px;border-bottom:1px solid var(--border);padding-bottom:0}.detail-tab{padding:8px 16px;font-size:14px;font-weight:500;color:var(--text-muted);background:transparent;border:none;border-bottom:2px solid transparent;border-radius:0;cursor:pointer;transition:all .15s}.detail-tab:hover{color:var(--text);background:rgba(255,255,255,.02)}.detail-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.detail-tab-content{padding-top:14px}.settings-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px;box-shadow:0 1px 3px rgba(0,0,0,.06);transition:box-shadow .2s ease}.settings-section:hover{box-shadow:0 2px 8px rgba(0,0,0,.1)}.settings-section h3{font-size:16px;font-weight:600;color:var(--text);margin-bottom:4px}.settings-section>p{font-size:14px;color:var(--text-muted);margin-bottom:16px}.settings-form{display:flex;flex-direction:column;gap:14px}.settings-row{display:flex;flex-direction:column;gap:6px}.settings-row label{font-size:14px;font-weight:500;color:var(--text-dim)}.settings-row input,.settings-row select{width:100%;max-width:400px}.settings-row-inline{display:flex;align-items:center;gap:10px}.settings-row-inline label{font-size:14px;font-weight:500;color:var(--text-dim);min-width:120px;flex-shrink:0}.settings-row-inline input,.settings-row-inline select{flex:1;max-width:320px}.settings-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.settings-status{font-size:14px;color:var(--text-dim);padding:10px 14px;background:var(--bg-subtle);border-radius:var(--radius-sm);border:1px solid var(--border);display:flex;align-items:center;gap:8px}.settings-status .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.settings-status .dot.online{background:var(--accent)}.settings-status .dot.offline{background:var(--text-muted)}.danger-zone{margin-top:24px;padding:16px;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius);background:rgba(239,68,68,.04)}.danger-zone h4{font-size:14px;font-weight:600;color:var(--down);margin-bottom:8px}.danger-zone p{font-size:14px;color:var(--text-muted);margin-bottom:12px}.trade-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;overflow:hidden;box-shadow:0 2px 6px rgba(0,0,0,.08);transition:box-shadow .2s ease}.trade-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.12)}.trade-card-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;cursor:pointer;background:var(--bg-subtle);border-bottom:1px solid var(--border)}.trade-card-head h3{font-size:15px;font-weight:600;color:var(--text)}.trade-card-head .toggle-icon{font-size:12px;color:var(--text-muted);transition:transform .2s}.trade-card-body{padding:18px}.trade-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.trade-actions{display:flex;gap:8px;margin-top:14px}.ocr-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.ocr-upload-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}.holding-card{background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--color-primary-light, #34d399);border-radius:var(--radius-sm);padding:14px 16px;box-shadow:0 1px 4px rgba(0,0,0,.07);transition:border-color .15s,box-shadow .2s ease,transform .15s ease}.holding-card:hover{border-color:var(--border-hover);box-shadow:0 3px 10px rgba(0,0,0,.12);transform:translateY(-1px)}.holding-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.holding-name{font-size:16px;font-weight:700}.holding-meta{font-size:13px;color:var(--text-dim)}.holding-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}@media(max-width:600px){.holding-stats{grid-template-columns:repeat(2,1fr)}}.holding-stat{display:flex;flex-direction:column;gap:2px}.holding-stat label{font-size:12px;color:var(--text-muted)}.holding-stat strong{font-size:15px}.holding-actions{display:flex;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-head h2{margin-bottom:0}@media(max-width:480px){.filter-bar{flex-direction:column;align-items:flex-start;gap:8px}.settings-row-inline{flex-direction:column;align-items:flex-start}.settings-row-inline input,.settings-row-inline select{max-width:100%}}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-main);padding:20px}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:40px;width:100%;max-width:400px;box-shadow:0 4px 20px rgba(0,0,0,.3)}.login-header{text-align:center;margin-bottom:32px}.login-header h1{font-size:28px;font-weight:700;color:var(--text);margin-bottom:8px}.login-header p{font-size:14px;color:var(--text-muted);letter-spacing:.1em}.login-form{display:flex;flex-direction:column;gap:16px}.login-actions{display:flex;flex-direction:column;gap:10px;margin-top:8px}.login-actions button{width:100%}.login-message{font-size:14px;color:var(--text-dim);text-align:center;margin-top:8px}.logout-btn{background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;font-size:13px;color:var(--text-dim);cursor:pointer;width:100%;margin-top:8px;transition:all .15s}.logout-btn:hover{background:var(--down-bg);border-color:var(--down);color:var(--down)}.user-icon{margin-right:6px}.user-name{font-weight:500}.analysis-section{margin-bottom:24px}.analysis-section h3{font-size:16px;font-weight:600;color:var(--text);margin-bottom:4px}.analysis-section>p{font-size:14px;color:var(--text-muted);margin-bottom:16px}.analysis-list{display:flex;flex-direction:column;gap:12px}.analysis-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.analysis-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.analysis-card-head strong{font-size:15px;display:block;margin-bottom:4px}.analysis-meta{font-size:12px;color:var(--text-muted)}.analysis-symbols{font-size:13px;color:var(--accent);font-weight:500;white-space:nowrap}.analysis-summary{margin-bottom:12px}.analysis-summary p{font-size:14px;color:var(--text-dim);line-height:1.6}.analysis-risks,.analysis-followup{margin-bottom:12px}.analysis-risks strong,.analysis-followup strong{font-size:13px;color:var(--text-muted);display:block;margin-bottom:6px}.analysis-risks ul,.analysis-followup ul{list-style:none;padding:0}.analysis-risks li,.analysis-followup li{font-size:13px;color:var(--text-dim);padding:4px 0 4px 16px;position:relative}.analysis-risks li:before{content:"⚠";position:absolute;left:0;color:var(--warn)}.analysis-followup li:before{content:"→";position:absolute;left:0;color:var(--accent)}.analysis-disclaimer{font-size:11px;color:var(--text-muted);font-style:italic;padding-top:8px;border-top:1px solid var(--border)}.analysis-actions-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.analysis-action-card{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.analysis-action-card strong{font-size:14px;display:block;margin-bottom:6px}.analysis-action-card p{font-size:13px;color:var(--text-dim);margin-bottom:10px}.analysis-action-card code{font-size:12px;color:var(--accent);background:var(--bg-card);padding:2px 6px;border-radius:4px;display:inline-block;margin-bottom:8px}.analysis-action-card pre{font-size:11px;background:var(--bg-card);border-radius:6px;padding:10px;overflow-x:auto;color:var(--text-dim)}.analysis-disclaimer-block{background:var(--warn-bg);border:1px solid rgba(245,158,11,.3);border-radius:var(--radius);padding:16px;margin-top:24px}.analysis-disclaimer-block p{font-size:13px;color:var(--text);text-align:center}.agent-config-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.agent-config-item{display:flex;align-items:baseline;gap:12px;padding:10px 14px;background:var(--bg-subtle);border-radius:var(--radius-sm)}.agent-config-item code:first-child{font-size:13px;font-weight:600;color:var(--accent);white-space:nowrap;min-width:160px}.agent-config-item span{font-size:13px;color:var(--text-dim)}.agent-config-item span code{font-size:12px;color:var(--text-muted);background:var(--bg-card);padding:1px 4px;border-radius:3px}.agent-api-endpoints{margin-bottom:16px}.agent-api-endpoints h4{font-size:14px;font-weight:600;color:var(--text);margin-bottom:10px}.endpoint-list{display:flex;flex-direction:column;gap:8px}.endpoint-item{display:flex;align-items:baseline;gap:12px;padding:8px 12px;background:var(--bg-subtle);border-radius:var(--radius-sm)}.endpoint-item code{font-size:12px;font-weight:600;color:var(--up);white-space:nowrap}.endpoint-item span{font-size:13px;color:var(--text-dim)}.agent-security-note{background:var(--bg-subtle);border-radius:var(--radius);padding:16px}.agent-security-note strong{font-size:14px;display:block;margin-bottom:8px;color:var(--text)}.agent-security-note ul{list-style:none;padding:0}.agent-security-note li{font-size:13px;color:var(--text-dim);padding:4px 0 4px 20px;position:relative}.agent-security-note li:before{content:"•";position:absolute;left:4px;color:var(--accent)}.agent-security-note li code{font-size:12px;color:var(--accent);background:var(--bg-card);padding:1px 4px;border-radius:3px}.audit-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}.audit-item{background:var(--bg-subtle);border-radius:var(--radius-sm);padding:10px 12px}.audit-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.audit-type{font-size:13px;font-weight:500;color:var(--text)}.audit-time{font-size:11px;color:var(--text-muted)}.audit-result{display:flex;align-items:center;gap:8px}.audit-success{font-size:12px;color:var(--up);font-weight:500}.audit-fail{font-size:12px;color:var(--down);font-weight:500}.audit-notes{font-size:12px;color:var(--text-dim)}.filter-tabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.filter-tab{flex:1;min-width:120px}.filter-tab-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .15s ease;font-size:14px;color:var(--text)}.filter-tab-header:hover{border-color:var(--border-hover);background:var(--bg-subtle)}.filter-tab-header.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}.filter-tab-header.has-value{border-color:var(--accent);background:rgba(0,212,170,.05)}.filter-tab-label{font-weight:600;font-size:13px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.filter-tab-value{flex:1;text-align:center;font-weight:500;color:var(--text)}.filter-tab-arrow{font-size:10px;color:var(--text-muted);margin-left:8px}.filter-tab-content{margin-top:8px;padding:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 12px rgba(0,0,0,.15);animation:slideDown .15s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.watch-group-block{margin-bottom:12px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--bg-card);transition:box-shadow .2s ease}.watch-group-block:hover{box-shadow:0 2px 8px rgba(0,0,0,.08)}.watch-group-header{display:flex;align-items:center;width:100%;padding:16px 20px;background:var(--bg-subtle);border:none;cursor:pointer;transition:background .15s ease;text-align:left}.watch-group-header:hover{background:rgba(255,255,255,.04)}.watch-group-title{display:flex;align-items:center;gap:12px;font-size:15px;color:var(--text)}.watch-group-title strong{font-weight:600}.group-expand-icon{font-size:10px;color:var(--text-muted);width:16px;text-align:center;transition:transform .2s ease}.group-count{font-size:13px;color:var(--text-muted);font-weight:400;margin-left:auto}.watch-tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;padding:16px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(max-width:600px){.watch-tile-grid{grid-template-columns:1fr;padding:12px}.filter-tabs{flex-direction:column}.filter-tab{min-width:100%}}.portfolio-section-header{display:flex;align-items:center;width:100%;padding:16px 20px;background:var(--bg-subtle);border:none;cursor:pointer;transition:background .15s ease;text-align:left}.portfolio-section-header:hover{background:rgba(255,255,255,.04)}.portfolio-section-title{display:flex;align-items:center;gap:12px;font-size:15px;color:var(--text);width:100%}.portfolio-section-title strong{font-weight:600;min-width:80px}.portfolio-section-stats{margin-left:auto;font-size:14px;color:var(--text-dim);display:flex;gap:8px;align-items:center}.portfolio-section-stats .up{color:var(--up)}.portfolio-section-stats .down{color:var(--down)}.portfolio-market-section{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:0 2px 6px rgba(0,0,0,.08);transition:box-shadow .2s ease;margin-bottom:12px}.portfolio-market-section:hover{box-shadow:0 4px 12px rgba(0,0,0,.12)}.portfolio-rows{animation:fadeIn .2s ease}.auto-sync-info{background:var(--bg-subtle);border-radius:var(--radius);padding:16px;margin-top:12px}.sync-status{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:14px;font-weight:600;color:var(--text)}.sync-status .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0}.sync-rules{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px}.sync-rules li{font-size:13px;color:var(--text-dim);padding-left:20px;position:relative}.sync-rules li:before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:600}.review-form-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-top:12px;box-shadow:0 2px 8px rgba(0,0,0,.08)}.review-mode-toggle{display:flex;gap:8px;margin-bottom:16px}.review-form-field{margin-bottom:16px}.review-form-field label{display:block;font-size:13px;font-weight:600;color:var(--text-muted);margin-bottom:8px}.review-form-field select,.review-form-field input{width:100%}.review-symbol-grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.review-form-actions{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid var(--border)}.review-form-actions .hint{margin:0}.review-form-actions .hint code{font-size:12px;color:var(--accent);background:var(--bg-subtle);padding:2px 6px;border-radius:4px}.review-form-actions button{min-width:120px}.analysis-card.earnings{border-left:4px solid var(--warn)}.analysis-card.simulated{border-left:4px solid #999;opacity:.85;background:rgba(153,153,153,.06)}.analysis-badge.simulated{display:inline-block;margin-left:8px;padding:2px 8px;font-size:11px;font-weight:600;color:#fff;background:#999;border-radius:4px;letter-spacing:.5px}.analysis-watch{margin-top:10px}.analysis-watch strong{color:var(--accent);font-size:13px;display:block;margin-bottom:4px}.analysis-watch ul{margin:0;padding-left:20px}.analysis-watch li{font-size:13px;line-height:1.6;color:var(--text)}.hint.error{color:var(--down)}.review-market-chips{display:flex;flex-wrap:wrap;gap:8px}.review-market-chips .chip{font-size:13px;padding:6px 12px}.history-tabs{display:flex;gap:8px;margin-bottom:20px}.history-market-group{margin-bottom:20px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.history-market-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg-subtle);border-bottom:1px solid var(--border)}.history-market-header strong{font-size:15px}.history-market-header span{font-size:14px;font-weight:600}.history-holding-list{display:flex;flex-direction:column}.history-holding-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.history-holding-row:last-child{border-bottom:none}.hh-info{display:flex;align-items:center;gap:12px;min-width:200px}.hh-symbol{font-size:14px;font-weight:700;min-width:80px}.hh-name{font-size:13px;color:var(--text-dim)}.hh-stats{display:flex;gap:24px;align-items:center}.hh-stat{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:80px}.hh-stat label{font-size:11px;color:var(--text-muted);text-transform:uppercase}.hh-stat strong{font-size:14px}.trade-list{display:flex;flex-direction:column}.trade-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);font-size:14px}.trade-row:last-child{border-bottom:none}.trade-delete-btn{background:none;border:none;color:#999;font-size:16px;cursor:pointer;padding:2px 8px;border-radius:4px;line-height:1;transition:all .15s}.trade-delete-btn:hover{color:#e74c3c;background:rgba(231,76,60,.1)}.trade-info{display:flex;align-items:center;gap:10px;min-width:200px}.trade-side{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600;min-width:40px;text-align:center}.trade-side.buy{background:var(--up-bg);color:var(--up)}.trade-side.sell{background:var(--down-bg);color:var(--down)}.trade-symbol{font-weight:600;min-width:80px}.trade-name{font-size:13px;color:var(--text-dim)}.trade-details{display:flex;gap:16px;align-items:center}.trade-qty,.trade-price,.trade-amount{font-size:13px;min-width:80px;text-align:right}.trade-date{font-size:12px;color:var(--text-muted);min-width:100px;text-align:right}.selected-holding-filter{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--accent-soft);border-radius:var(--radius);margin-bottom:12px}.selected-holding-filter span{font-size:14px;font-weight:600}.selected-holding-filter button{font-size:13px}@media(max-width:600px){.history-holding-row{flex-direction:column;align-items:flex-start;gap:12px}.hh-stats{width:100%;justify-content:space-between}.trade-row{flex-direction:column;align-items:flex-start;gap:8px}.trade-details{width:100%;justify-content:space-between}}.history-search{margin-bottom:16px}.history-search input{width:100%;padding:10px 14px;font-size:14px}.history-market-header{display:flex;justify-content:space-between;align-items:center;width:100%;padding:14px 16px;background:var(--bg-subtle);border:none;cursor:pointer;transition:background .15s ease;text-align:left}.history-market-header:hover{background:rgba(255,255,255,.04)}.hmh-left{display:flex;align-items:center;gap:12px}.hmh-left strong{font-size:15px}.hmh-left .group-count{font-size:13px;color:var(--text-muted)}.hmh-left .group-expand-icon{font-size:10px;color:var(--text-muted);width:16px}.history-market-header>span:last-child{font-size:14px;font-weight:600}.trade-month-list{display:flex;flex-direction:column;gap:8px}.trade-month-group{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.trade-month-header{display:flex;justify-content:space-between;align-items:center;width:100%;padding:14px 16px;background:var(--bg-subtle);border:none;cursor:pointer;transition:background .15s ease;text-align:left}.trade-month-header:hover{background:rgba(255,255,255,.04)}.tmh-left{display:flex;align-items:center;gap:12px}.tmh-left strong{font-size:15px}.tmh-left .group-count{font-size:13px;color:var(--text-muted)}.tmh-left .group-expand-icon{font-size:10px;color:var(--text-muted);width:16px}.tmh-amount{font-size:13px;color:var(--text-dim)}.trade-month-group .trade-list{border-top:1px solid var(--border)}.card-head-actions{display:flex;align-items:center;gap:10px}.position-type-select{padding:6px 10px;font-size:13px;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;min-width:80px}.position-type-select option[value=long_term]{background:var(--up-bg);color:var(--up)}.position-type-select option[value=tactical]{background:var(--warn-bg);color:var(--warn)}.position-type-select option[value=temporary]{background:var(--down-bg);color:var(--down)}.analysis-type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:16px}.analysis-type-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:14px 16px;border-radius:10px;border:1px solid var(--border);background:var(--card);cursor:pointer;transition:all .2s;text-align:left}.analysis-type-card:hover{border-color:var(--accent);background:var(--card-hover)}.analysis-type-card.active{border-color:var(--accent);background:var(--accent-bg);box-shadow:0 0 0 1px var(--accent)}.analysis-type-icon{font-size:1.5rem;margin-bottom:2px}.analysis-type-card strong{font-size:.95rem;color:var(--text)}.analysis-type-card small{font-size:.78rem;color:var(--text-muted);line-height:1.3}.strategy-dashboard{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.strategy-stat-card{display:flex;flex-direction:column;align-items:center;padding:16px 12px;border-radius:10px;background:var(--card);border:1px solid var(--border)}.strategy-stat-card.waiting{border-color:#f0ad4e}.strategy-stat-card.triggered{border-color:#5cb85c}.strategy-stat-card.disabled{border-color:#ccc}.strategy-stat-value{font-size:1.8rem;font-weight:700;color:var(--text);line-height:1}.strategy-stat-card.waiting .strategy-stat-value{color:#f0ad4e}.strategy-stat-card.triggered .strategy-stat-value{color:#5cb85c}.strategy-stat-card.disabled .strategy-stat-value{color:#999}.strategy-stat-label{font-size:.78rem;color:var(--text-muted);margin-top:6px}.strategy-distance-list{display:flex;flex-direction:column;gap:8px}.strategy-distance-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:8px;background:var(--card);border:1px solid var(--border);flex-wrap:wrap}.strategy-distance-info{flex:1;min-width:120px}.strategy-distance-info strong{display:block;font-size:.9rem;color:var(--text)}.strategy-distance-info small{font-size:.75rem;color:var(--text-muted)}.strategy-distance-value{font-size:1.1rem;font-weight:700;min-width:80px;text-align:right}.strategy-distance-status{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-muted);min-width:70px}.strategy-status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.strategy-suggestion{width:100%;font-size:.78rem;color:var(--warn);padding:4px 0;border-top:1px dashed var(--border);margin-top:4px}@media(max-width:768px){.analysis-type-grid,.strategy-dashboard{grid-template-columns:repeat(2,1fr)}.strategy-distance-item{flex-wrap:wrap}}.analysis-type-group{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;background:var(--bg-card);overflow:hidden}.analysis-type-summary{display:flex;align-items:center;gap:10px;padding:14px 18px;cursor:pointer;user-select:none;transition:background .15s;list-style:none}.analysis-type-summary::-webkit-details-marker{display:none}.analysis-type-summary:hover{background:rgba(255,255,255,.03)}.analysis-type-summary-icon{font-size:1.2rem;flex-shrink:0}.analysis-type-summary strong{flex:1;font-size:1rem;color:var(--text)}.analysis-type-count{font-size:.8rem;color:var(--text-muted);background:var(--bg-subtle);padding:2px 10px;border-radius:99px}.analysis-type-group .analysis-list{padding:0 18px 14px}.analysis-type-group[open] .analysis-type-summary{border-bottom:1px solid var(--border)}:root{color:#0f172a;background-color:#f8fafc}
