:root{font-family:Inter,Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic",sans-serif;color:#202d3d;background:#f4f6f8;font-size:16px;--line:#e4e9ee;--green:#087c70;--red:#c83d38;--blue:#247ac4}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,select{cursor:pointer}button:disabled{opacity:.4;cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,.table-scroll:focus-visible{outline:3px solid #69bfb5;outline-offset:2px}[hidden]{display:none!important}.app-header{height:70px;padding:0 32px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{font-weight:650;white-space:nowrap}.brand span{color:#c4cbd3;margin:0 15px}.brand strong{font-weight:500;color:#677586}.header-actions{display:flex;gap:16px;align-items:center}.connection{font-size:.875rem;color:#738091}.connection.verified{color:var(--green)}main{padding:30px 32px 20px;max-width:2200px;margin:auto}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.12em;color:#7b8795;margin:0 0 7px}h1{font-size:1.7rem;letter-spacing:-.04em;margin:0;font-weight:750}.title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.button{padding:9px 14px;border:1px solid #dbe2e8;border-radius:7px;background:#fff;color:#465569;font-size:.875rem;font-weight:600;white-space:nowrap}.button:hover:not(:disabled){background:#f0f5f6;border-color:#bcced0}.primary{background:var(--green);border-color:var(--green);color:white}.primary:hover:not(:disabled){background:#06695f;border-color:#06695f}.view-tabs{display:flex;gap:24px;align-items:stretch;height:48px;overflow-x:auto;scrollbar-width:thin;white-space:nowrap}.view-tabs>button,.stock-tab{flex-shrink:0}.stock-tab{display:flex;align-items:stretch;gap:6px}.stock-tab .close-stock-tab{align-self:center;border:0;background:none;color:#8a96a3;padding:3px 6px;border-radius:4px;font-size:1rem}.stock-tab .close-stock-tab:hover{background:#e3e9ee;color:#34495e}.view-tabs [role=tab]{height:100%;background:none;border:0;border-bottom:3px solid transparent;padding:0 2px;color:#7f8b9a;font-weight:650;font-size:.9375rem}.view-tabs [role=tab][aria-selected=true]{color:var(--green);border-bottom-color:var(--green)}.workspace{background:#fff;border:1px solid var(--line);border-radius:0 10px 10px 10px;overflow:hidden;box-shadow:0 4px 18px #21354603}.toolbar{padding:18px 20px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.search{display:flex;align-items:center;gap:8px;width:235px;border:1px solid #dbe2e8;border-radius:7px;padding:9px 11px}.search svg{width:18px;height:18px;fill:none;stroke:#8996a5;stroke-width:1.8;flex-shrink:0}.search input{width:100%;padding:0;border:0;outline:0;font-size:.875rem;min-width:0}input,select{border:1px solid #dbe2e8;background:#fff;border-radius:7px;color:#3e4e61;padding:9px 11px;font-size:.875rem}select{min-height:37px}.separator{height:23px;border-left:1px solid var(--line);margin:0 4px}.segments{display:inline-flex;padding:3px;border-radius:7px;background:#f0f3f6;gap:2px;flex-shrink:0}.segments button{border:0;background:none;padding:7px 12px;border-radius:5px;color:#778493;font-size:.875rem;white-space:nowrap}.segments button.active{background:#fff;color:#23364a;font-weight:650;box-shadow:0 1px 3px #23364a14}.toolbar-end{margin-left:auto;display:flex;gap:8px}#filterCount{background:#edf4f2;color:var(--green);border-radius:4px;padding:1px 5px;margin-left:4px}.small{font-size:.8125rem}.muted{color:#7e8b99}.table-meta{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 20px;border-top:1px solid #edf0f3}.table-meta>div{display:flex;align-items:center;gap:14px}.table-meta strong{font-size:.9375rem}.table-meta .muted{font-size:.8125rem}.metric-controls{flex-shrink:0}.metric-controls .segments button{padding:6px 10px}.metric-controls select{min-height:33px;padding:6px 9px}.table-scroll{overflow:auto;max-height:calc(100vh - 370px);min-height:48px;scrollbar-width:thin;scrollbar-color:#cbd5dd #f4f6f8}table{width:100%;border-collapse:separate;border-spacing:0;white-space:nowrap;font-size:.875rem;font-variant-numeric:tabular-nums}th,td{padding:13px 16px;text-align:right;border-bottom:1px solid #edf0f4;min-width:118px}thead th{position:sticky;top:0;background:#f7f9fb;z-index:3;color:#7c8796;font-weight:500;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:0 14px;height:45px}th button{border:0;padding:12px 0;background:none;color:inherit;display:inline-flex;align-items:center;gap:7px;font-size:.8125rem;font-weight:600}th[aria-sort=descending] button,th[aria-sort=ascending] button{color:#213d50}.sort-mark{font-size:.625rem;color:#afbac5}.active-sort .sort-mark{color:var(--green)}th:first-child,td:first-child{position:sticky;left:0;text-align:left;min-width:215px;max-width:270px;border-right:1px solid #edf0f4}th:first-child{z-index:5}td:first-child{z-index:2;background:white}tr:hover td{background:#f7fafc}.positive{color:var(--red)}.negative{color:var(--blue)}.zero{color:#a5aeb9}.missing{color:#a5aeb9}.stock-link{background:none;border:0;padding:0;display:flex;align-items:center;gap:10px;color:#293e54;text-align:left;max-width:260px}.stock-name{display:block;font-size:.9375rem;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}.stock-code{display:block;font-size:.75rem;color:#8f9ba9;margin-top:3px}.market-tag{font-size:.6875rem;border:1px solid #e0e7ed;color:#8191a0;border-radius:4px;padding:2px 4px}.date-cell{font-weight:550;color:#41566b}.table-footer{padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line)}.pagination{display:flex;align-items:center;gap:10px;font-size:.8125rem}.pagination select{padding:6px 8px;min-height:30px}.pagination button{padding:6px 11px}.empty-state{padding:65px 20px 75px;text-align:center;min-height:330px}.empty-symbol{color:#8db5ac;font-size:2.5rem;margin-bottom:17px}.empty-state h2{font-size:1.125rem;font-weight:650;margin:0 0 12px}.empty-state p{color:#8a96a3;line-height:1.8;font-size:.9375rem;margin:0 0 22px}.notes{padding:12px 3px;font-size:.8125rem;color:#8c98a5;line-height:1.7}.notes p{margin:4px 0}.notes strong{color:#648479}.date-row{display:flex;align-items:center;gap:12px;padding:0 20px 16px;font-size:.875rem}.date-row label{display:flex;gap:8px;align-items:center}.filter-panel,.columns-panel{margin:0 20px 15px;padding:16px;background:#f7faf9;border:1px solid #dfeae5;border-radius:8px;font-size:.875rem}.panel-top{display:flex;justify-content:space-between;margin-bottom:13px}.text-button{border:0;background:none;color:var(--green);font-size:.8125rem}.filter-row{display:flex;gap:8px;align-items:center;margin:8px 0}.filter-row input{width:160px}.filter-remove{background:none;border:0;font-size:1.2rem;color:#8996a4}.filter-panel p{margin-bottom:0}.columns-panel>div{display:flex;flex-wrap:wrap;gap:16px;margin-top:14px}.columns-panel label{display:flex;align-items:center;gap:5px}.columns-panel input{accent-color:var(--green)}.job-status{padding:11px 20px;background:#f0f8f5;color:#27796d;font-size:.875rem;border-top:1px solid #dfede6}.job-status.error{background:#fff5f0;color:#a6533c}.job-status progress{height:5px;width:140px;accent-color:var(--green);margin-left:12px;vertical-align:middle}dialog{border:1px solid #dde5eb;border-radius:14px;padding:27px;width:420px;max-width:calc(100vw - 32px);box-shadow:0 25px 80px #172b4930;color:#2a3a4a}dialog::backdrop{background:#172b4966;backdrop-filter:blur(3px)}dialog h2{font-size:1.2rem;margin:0}dialog p{line-height:1.7;font-size:.875rem}dialog label{display:grid;gap:8px;margin-top:17px;font-size:.875rem;font-weight:600}dialog input{padding:12px}.dialog-title{display:flex;justify-content:space-between;align-items:center}.close-dialog{border:0;background:none;font-size:1.6rem;color:#7b8794}.full{width:100%;padding:12px;margin-top:8px}.error-text{color:var(--red);min-height:20px}.back-link{display:block;text-align:center;margin-top:18px;font-size:.875rem;color:#7a8c9c}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);z-index:20;background:#24394d;color:#fff;padding:13px 22px;border-radius:9px;box-shadow:0 4px 20px #21334630;font-size:.875rem;max-width:90vw}@media(min-width:1650px){.toolbar{gap:16px}}@media(max-width:1000px){main{padding:22px 18px}.app-header{padding:0 20px}.toolbar-end{margin-left:0}.table-meta{flex-wrap:wrap}.table-scroll{max-height:60vh}.table-footer{flex-wrap:wrap}.separator{display:none}}@media(max-width:600px){.app-header{height:auto;min-height:65px;padding:13px 16px;gap:9px;flex-wrap:wrap}.brand{font-size:.875rem}.brand span{margin:0 8px}.brand strong{font-size:.875rem}.connection{display:none}.header-actions .button{font-size:.8125rem;padding:7px 9px}main{padding:21px 12px}.title-row{margin-bottom:17px}h1{font-size:1.5rem}.toolbar{padding:14px 12px;gap:9px}.search{flex:1;min-width:175px;width:auto}.toolbar>.segments{order:3}.toolbar>.small{order:4}.toolbar-end{order:5;width:100%}.segments button{padding:7px 10px}.table-meta{padding:12px;gap:12px}.table-meta>div{gap:8px;flex-wrap:wrap}.table-meta #rangeLabel{font-size:.75rem}.table-scroll{max-height:62vh}th,td{padding:12px;min-width:108px}th:first-child,td:first-child{min-width:158px;max-width:170px}.stock-name{max-width:122px;font-size:.875rem}.stock-link{gap:4px}.market-tag{display:none}.table-footer{padding:12px}.pagination{width:100%;justify-content:flex-end}.notes{font-size:.75rem}.date-row{flex-wrap:wrap;padding:0 12px 12px;gap:8px}.date-row input{max-width:145px}.filter-panel,.columns-panel{margin:0 12px 12px}.filter-row{flex-wrap:wrap}.filter-row select{max-width:145px}.filter-row input{width:100px}.empty-state{padding:50px 12px}.empty-state h2{font-size:1rem}.job-status progress{display:block;margin:8px 0 0}.view-tabs{gap:22px}}@media(prefers-reduced-motion:no-preference){button{transition:background .12s,border-color .12s}}
@media(max-width:600px){th:first-child,td:first-child{min-width:132px;max-width:142px}.stock-name{max-width:108px}th:nth-child(2),td:nth-child(2){min-width:90px;padding-left:9px;padding-right:9px}table[data-mode="stock"] th:first-child,table[data-mode="stock"] td:first-child{min-width:108px;max-width:118px}}

/* Compact flow tables and daily anomaly analysis. */
.analysis-date{display:flex;align-items:center;gap:9px;font-size:.8125rem;color:#6b7684}
.date-trigger{background:transparent;border:0;border-radius:5px;padding:8px 9px;color:#333d4b;font-size:.875rem;font-variant-numeric:tabular-nums}
.date-trigger:hover,.date-trigger[aria-expanded=true]{background:#f0f2f4}
.flow-calendar{position:fixed;inset:auto;margin:0;width:284px;max-width:calc(100vw - 16px);padding:14px;border:1px solid #e5e8eb;border-radius:9px;background:#fff;color:#333d4b;box-shadow:0 5px 20px #172b491f;font-size:.8125rem;max-height:calc(100dvh - 16px);overflow:auto}
.calendar-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-left:5px}
.calendar-heading strong{font-weight:600}.calendar-heading>div{display:flex;gap:4px}
.flow-calendar button{border:0;background:transparent;border-radius:5px;color:inherit}
.calendar-heading button{width:29px;height:29px;font-size:1.4rem;color:#6b7684}
.flow-calendar button:hover:not(:disabled){background:#f2f4f6}
.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;gap:2px}
.calendar-week{color:#8b95a1;margin-bottom:5px}.calendar-week span{padding:6px 0;font-size:.75rem}
.calendar-days button{height:32px;font-size:.8125rem;font-variant-numeric:tabular-nums;padding:0}
.calendar-days button:disabled{color:#c7cdd4;opacity:1}.calendar-days .outside-month{color:#9aa3af}
.calendar-days button[aria-current=date]{text-decoration:underline;text-underline-offset:4px}
.calendar-days button[aria-pressed=true],.calendar-days button[aria-pressed=true]:hover{background:#087c70;color:#fff;font-weight:650}
.calendar-latest{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;margin-top:12px;padding:11px 5px 2px!important;border-top:1px solid #eef0f2!important;border-radius:0!important;font-size:.8125rem;color:#087c70!important}
.calendar-latest span{font-size:.75rem;color:#8b95a1}
.stock-detail{border:0;border-radius:0;box-shadow:none;background:#fff}
.stock-detail .toolbar{padding:16px 0}.stock-detail .signal-controls{background:#fff;padding:14px 0}
.signal-brief{display:block;padding:24px 0 28px;border-top:1px solid #e5e8eb;color:#6b7684;font-size:.875rem}
.brief-heading{display:flex;align-items:center;margin-bottom:18px}.brief-heading h2{margin:0;color:#333d4b;font-size:1.125rem;letter-spacing:-.025em;font-weight:650}.brief-heading h2 span{margin-left:8px;font-size:.875rem;color:#8b95a1;font-weight:400}
.brief-scroll{overflow-x:auto;scrollbar-width:thin}.brief-scroll:focus-visible{outline:2px solid #69bfb5;outline-offset:2px}
.brief-table{table-layout:fixed;min-width:600px;color:#4e5968}
.brief-table th,.brief-table td{position:static;min-width:0;max-width:none;padding:16px 18px;border:0;border-bottom:1px solid #eef0f2;background:#fff;white-space:nowrap;text-align:right;font-weight:400}
.brief-table thead th{height:auto;font-size:.8125rem;color:#8b95a1;padding-top:10px;padding-bottom:13px}
.brief-table th:first-child{position:sticky;left:0;text-align:left;width:20%;background:#fff;z-index:1;padding-left:0}
.brief-table tbody th{font-weight:600;color:#333d4b}.brief-table tbody td{font-size:1rem;font-variant-numeric:tabular-nums}
.brief-table tbody .brief-scale{font-size:.875rem;color:#8b95a1}.brief-table td:last-child,.brief-table th:last-child{padding-right:0}
.brief-table tr:hover td{background:#fff}.brief-table .brief-missing td{font-size:.75rem;color:#8b95a1;white-space:normal;text-align:left;padding:8px 0}
.brief-highlights{margin-top:18px;display:flex;flex-wrap:wrap;gap:10px 28px}.brief-highlights p{display:flex;gap:10px;margin:0;font-size:.8125rem;line-height:1.6;color:#8b95a1}.brief-investor{color:#4e5968;white-space:nowrap}
.stock-detail .table-meta{padding:18px 0}.stock-detail .table-footer{padding:14px 0}
@media(max-width:600px){.brief-table{min-width:570px}.brief-table th,.brief-table td{padding:14px 12px}.brief-table th:first-child{width:100px;min-width:100px;max-width:100px}.brief-table tbody td{font-size:.875rem}.signal-brief{padding:20px 0}.brief-highlights{display:block}.brief-highlights p+p{margin-top:10px}.brief-heading h2{font-size:1rem}}
/* Flat investor lists: spacing and horizontal rules, without card frames. */
body:has(.rankings-view){background:#fff}
.rankings-view{max-width:none;width:100%}
.signal-list{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible}
.signal-list .toolbar{background:transparent;border:0;border-radius:0;padding:16px 0}
.signal-list .signal-controls{background:transparent;border:0;border-top:1px solid #eef0f2;border-radius:0;padding:14px 0}
.signal-list .table-meta{border:0;padding:12px 0 4px}
.signal-list .table-footer{border:0;padding:16px 0}
.signal-rankings{padding:0}
.ranking-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:8px 0 26px}
.ranking-title{font-size:1rem;font-weight:700;margin-right:auto}
.ranking-toolbar label{display:flex;align-items:center;gap:7px;font-size:.8125rem;color:#687b8e}
.ranking-toolbar select{border-color:transparent;border-radius:6px;background:#f5f6f8}
.ranking-boards{display:grid;grid-template-columns:repeat(var(--board-count,3),minmax(0,1fr));gap:36px;align-items:start;justify-content:center}
.ranking-board{min-width:0;background:transparent;border:0;border-radius:0;box-shadow:none}
.ranking-board header{display:flex;align-items:center;justify-content:space-between;padding:0 0 17px;border-bottom:1px solid #e5e8eb}
.ranking-board h2{font-size:1.125rem;font-weight:700;letter-spacing:-.025em;margin:0;color:#333d4b}
.ranking-board header>span{font-size:.75rem;color:#8b95a1}
.ranking-columns{display:flex;justify-content:space-between;padding:12px 0;background:transparent;font-size:.75rem;color:#8b95a1;border-bottom:1px solid #d8dce1}
.ranking-board ol{list-style:none;margin:0;padding:0}
.ranking-board li{border-bottom:1px solid #e9ecef}
.ranking-stock{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:5px 10px;width:100%;align-items:center;text-align:left;border:0;background:transparent;padding:15px 0;color:#333d4b;font-variant-numeric:tabular-nums}
.ranking-stock:hover{background:#f8fafb}
.ranking-stock:focus-visible{outline-offset:-3px}
.ranking-position{grid-row:1/4;align-self:center;font-size:.9375rem;color:#8b95a1;font-weight:600;text-align:center}
.ranking-name{grid-column:2;display:block;min-width:0;font-size:1rem;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ranking-amount{grid-column:3;font-size:1rem;font-weight:650;color:#333d4b;white-space:nowrap}
.ranking-amount.ranking-scale{font-weight:400;color:#8b95a1}
#rankingMinNet{width:76px;padding:8px;border-color:#e5e8eb}
.ranking-reason{grid-column:2/-1;display:block;color:#8b95a1;font-size:.8125rem;font-weight:500;line-height:1.5;word-break:keep-all;overflow-wrap:anywhere}
.ranking-facts{grid-column:2/-1;display:flex;flex-wrap:wrap;gap:3px 12px;color:#8b95a1;font-size:.75rem;line-height:1.5}
.ranking-facts>span{white-space:nowrap}
.ranking-accent{color:#087c70}
.ranking-number{color:#087c70;font-weight:700}
.ranking-focus{color:#4e5968;font-weight:600}
.ranking-empty{padding:35px 16px;text-align:center;color:#8593a1;font-size:.8125rem;line-height:1.7}
.ranking-board footer{font-size:.75rem;color:#8b95a1;padding:14px 0;text-align:right}
.ranking-tabs{display:none}
@media(max-width:900px){
  .ranking-boards{display:block}.ranking-board[data-active=false]{display:none}
  .ranking-tabs{display:flex;gap:22px;overflow-x:auto;margin-bottom:24px;padding:0;border-bottom:1px solid #e5e8eb}
  .ranking-tabs button{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;color:#8b95a1;padding:11px 1px;font-size:.875rem;white-space:nowrap}
  .ranking-tabs button[aria-pressed=true]{color:#333d4b;border-bottom-color:#333d4b;font-weight:700}
  .ranking-toolbar{padding-bottom:16px}
}
@media(max-width:600px){
  .signal-list .toolbar,.signal-list .signal-controls{padding:14px 0}
  .ranking-toolbar{gap:10px}.ranking-title{width:100%}.ranking-toolbar select{padding:8px;font-size:.8125rem}
  .ranking-name{font-size:.9375rem}.ranking-board header{padding:0 0 16px}
  .ranking-stock{padding:15px 0}
}
th,td{min-width:96px;padding:12px 10px;border-bottom:1px solid #d8e0e7}
thead th{padding:0 10px;border-bottom-color:#cbd5df}
th:first-child,td:first-child{min-width:180px;max-width:230px}.stock-name{max-width:170px}
th.close-col{background:#e7edf3}td.close-col{background:#f0f4f8}tr:hover td.close-col{background:#e5edf5}
.button[aria-pressed=true]{background:#e7f4f1;color:#076e63;border-color:#9bc8bf}
.signal-list .metric-controls{display:none}
.signal-controls{padding:14px 20px;border-top:1px solid var(--line);background:#f8fafb}
.signal-options,.signal-investors,.signal-thresholds{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.signal-options label,.signal-investors label{display:flex;align-items:center;gap:7px;font-size:.8125rem;color:#536477}
#signalConditionsButton{margin-left:auto}
.signal-summary{margin:12px 0 0;font-size:.8125rem;line-height:1.6;color:#6b7684;word-break:keep-all}
.signal-summary[data-active=true]{color:#087c70}
.signal-list .toolbar-end:has(>button[hidden]){display:none}
.signal-investors input{accent-color:var(--green)}.signal-thresholds{margin-top:14px;gap:12px;align-items:flex-end}
.signal-thresholds>label{display:grid;gap:6px;font-size:.75rem;color:#6a7a8b}.signal-thresholds>label>span{display:flex;align-items:center;gap:6px;white-space:nowrap}
.signal-thresholds input{width:76px;padding:7px 8px}.signal-investor{text-align:center;color:#516579}
.signal-badge{display:inline-block;background:#eaf4f1;color:#167264;padding:3px 8px;border-radius:5px;font-weight:650}
@media(max-width:600px){th,td{min-width:94px;padding:11px 8px}th:first-child,td:first-child{min-width:142px;max-width:156px}.stock-name{max-width:123px}.signal-controls{padding:12px}.signal-options{gap:12px}.signal-investors{gap:12px}.signal-thresholds{gap:10px}.signal-thresholds input{width:66px}.toolbar-end{flex-wrap:wrap}}
/* Period accumulation: comparable figures and a shared, date-aligned chart. */
.trend-controls{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:18px 0;border-top:1px solid #e5e8eb}
.trend-controls label{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:.8125rem;color:#536477}
.trend-controls input{width:70px;padding:8px}.trend-controls select{max-width:100%}
.brief-heading{justify-content:space-between;flex-wrap:wrap;gap:10px}
.trend-summary{font-size:.9375rem;line-height:1.7;color:#087c70;margin:0 0 16px}
.trend-table{min-width:920px;table-layout:auto}.trend-table th:first-child{width:auto;min-width:105px;max-width:none}
.trend-table th,.trend-table td{padding:16px 12px}.trend-table tbody td{font-size:.9375rem}
.trend-investor{border:0;background:transparent;color:#4e5968;padding:8px 0;font-weight:650;white-space:nowrap}
.trend-investor[aria-pressed=true]{color:#087c70;text-decoration:underline;text-underline-offset:6px}
.trend-selected td{background:#f6faf9}.brief-table .trend-selected:hover td{background:#f6faf9}
.trend-note{font-size:.75rem;line-height:1.7;color:#6b7684;margin:12px 0 28px;word-break:keep-all}
.trend-daily-details{font-size:.8125rem;color:#6b7684;margin:0 0 24px;line-height:1.8}.trend-daily-details summary{cursor:pointer}.trend-daily-details ul{padding-left:20px}.trend-daily-details p{font-size:.75rem}
.trend-chart-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.trend-chart-heading h3{font-size:.9375rem;color:#333d4b;margin:0}
.trend-chart-heading label{display:flex;align-items:center;gap:8px;font-size:.8125rem}
.trend-chart{max-width:1100px;margin:14px auto 0;min-width:0}.trend-chart svg{display:block;width:100%;height:auto;overflow:visible}
.chart-grid{stroke:#e5e8eb;stroke-width:1}.chart-axis{fill:#6b7684;font-size:12px}.chart-label{fill:#4e5968;font-size:12px}
.chart-cumulative{fill:none;stroke:#087c70;stroke-width:2.5;stroke-linejoin:round}.chart-point{fill:#087c70}
.chart-selection{stroke:#b0b8c1;stroke-width:1;stroke-dasharray:3 3}.chart-bar.buy{fill:#e95656}.chart-bar.sell{fill:#3787d8}
.trend-readout{text-align:center;font-size:.8125rem;line-height:1.7;color:#4e5968;min-height:1.7em}
@media(max-width:600px){.trend-controls{gap:12px}.trend-controls>label:first-child{width:100%}.trend-chart-heading label{width:100%}.trend-note{margin-bottom:20px}.trend-table tbody td{font-size:.875rem}}
/* Glance view: amounts and daily continuity first, supporting analysis on demand. */
.rankings-view{max-width:1480px;margin-inline:auto}
.stock-detail .toolbar .search,.stock-detail .toolbar #market,.stock-detail .toolbar>.separator{display:none}
.signal-controls .signal-options{align-items:flex-start;gap:12px 22px}
.investor-options,.trend-options,.ranking-options{font-size:.8125rem;color:#536477}
.investor-options summary,.trend-options summary,.ranking-options summary{cursor:pointer;padding:8px 0}
.investor-options .signal-investors{padding-top:10px}.trend-options[open]{display:flex;gap:10px;flex-wrap:wrap}
.trend-options label{margin:8px 0}.ranking-settings{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding-top:8px}
.signal-summary{font-size:.75rem}.trend-controls{padding:12px 0;gap:20px}
.glance-headline{font-size:clamp(18px,2vw,24px);line-height:1.6;white-space:pre-line;color:#087c70;font-weight:700;letter-spacing:-.03em;margin:0 0 22px}
.glance-cards{display:grid;grid-template-columns:repeat(var(--investor-count,3),minmax(0,1fr));gap:16px}
.glance-card{border:1px solid #e5e8eb;border-radius:12px;background:#fff;padding:22px;min-width:0;color:#333d4b}
.glance-card h3{font-size:1.0625rem;font-weight:700;letter-spacing:-.02em;margin:0 0 3px}
.glance-state,.glance-caption{font-size:.75rem;color:#6b7684;line-height:1.5}
.glance-amount{font-size:clamp(24px,2.5vw,34px);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.045em;line-height:1.4;margin:18px 0 1px;overflow-wrap:anywhere}
.glance-amount.buy,.comparison-cell .buy,.glance-legend .buy{color:#ce444b}
.glance-amount.sell,.comparison-cell .sell,.glance-legend .sell{color:#3476bc}
.glance-amount.unknown,.comparison-cell .unknown,.glance-amount.flat,.comparison-cell .flat{color:#8b95a1}
.glance-track{height:5px;border-radius:3px;background:#f0f3f6;margin:12px 0 20px;overflow:hidden}
.glance-track i{height:100%;display:block;border-radius:3px}.glance-track i.buy{background:#ce444b}.glance-track i.sell{background:#3476bc}
.glance-days{display:grid;grid-template-columns:repeat(var(--day-count,20),minmax(0,1fr));gap:3px;margin:12px 0 10px;min-height:23px}
.glance-day{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;height:23px;border-radius:2px;background:#e5e8eb;color:#4e5968;overflow:hidden}
.glance-day.buy{background:#ce444b;color:#fff}.glance-day.sell{background:#3476bc;color:#fff}.glance-day.unknown{background:#edf0f3;color:#6b7684}
.glance-frequency{font-size:.875rem;font-weight:500;margin:0;line-height:1.6}.glance-frequency strong{font-weight:700}
.glance-streak{font-size:.8125rem;color:#6b7684;margin:4px 0 0;line-height:1.5}
.glance-legend{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;font-size:.6875rem;line-height:1.6;color:#6b7684;margin:13px 0}
.glance-legend b{font-weight:600;margin-right:8px}.glance-note{font-size:.75rem;line-height:1.7;color:#6b7684;margin:12px 0;word-break:keep-all}
.glance-evidence{border-top:1px solid #e5e8eb;margin-top:20px;padding-top:16px}
.glance-evidence>summary,.raw-toggle{font-size:.875rem;color:#4e5968;cursor:pointer;font-weight:600;text-align:left}
.glance-evidence>summary span,.raw-toggle span{font-size:.75rem;color:#8b95a1;font-weight:400;margin-left:8px}
.glance-evidence[open]>summary{margin-bottom:20px}
.raw-toggle{display:block;width:100%;border:0;border-top:1px solid #e5e8eb;background:transparent;padding:18px 0}
.raw-toggle::before{content:'▸';display:inline-block;width:17px}.raw-toggle[aria-expanded=true]::before{content:'▾'}
.comparison-view .ranking-boards{display:block}.comparison-view .ranking-toolbar{padding:4px 0 10px;align-items:flex-start}
.comparison-view .ranking-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border:0;margin:16px 0;padding:0;overflow:visible}
.comparison-view .ranking-tabs button{padding:7px 14px;border:0;background:#f2f5f7;color:#6b7684;border-radius:6px;font-size:.8125rem}
.comparison-view .ranking-tabs button[aria-pressed=true]{background:#087c70;color:#fff;font-weight:600}
.comparison-sort-label{font-size:.75rem;color:#6b7684;margin-right:5px}
.comparison-header,.comparison-row{display:grid;grid-template-columns:minmax(170px,1.15fr) repeat(var(--compare-count,3),minmax(0,1fr));align-items:center;gap:10px 20px;border-bottom:1px solid #e5e8eb}
.comparison-header{padding:12px 0;color:#6b7684;font-size:.8125rem}.comparison-header .comparison-active{color:#087c70;font-weight:700}
.comparison-name,.comparison-cell{border:0;background:transparent;text-align:left;color:#333d4b;padding:20px 0;min-width:0;width:100%}
.comparison-name{display:flex;gap:12px;align-items:center;font-size:1rem;font-weight:650;overflow-wrap:anywhere}
.comparison-name small{display:block;font-size:.75rem;color:#8b95a1;font-weight:400;margin-top:4px}
.comparison-position{color:#8b95a1;font-size:.875rem;min-width:22px}.comparison-cell strong{display:block;font-size:1.1875rem;font-weight:700;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.comparison-frequency,.comparison-extra{display:block;font-size:.8125rem;color:#6b7684;margin-top:5px}.comparison-extra{font-size:.75rem}
.comparison-cell:hover,.comparison-name:hover{background:#f7faf9}.comparison-mobile-label{display:none}
@media(max-width:1000px){.glance-card{padding:18px 14px}.glance-cards{gap:10px}.glance-cards:has(>article:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}.comparison-header,.comparison-row{gap:10px 14px;grid-template-columns:minmax(145px,1fr) repeat(var(--compare-count,3),minmax(0,1fr))}}
@media(max-width:600px){
  .glance-cards,.glance-cards:has(>article:nth-child(4)){grid-template-columns:1fr;gap:10px}
  .glance-card{padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
  .glance-card h3{font-size:.9375rem}.glance-amount-wrap{text-align:right}.glance-amount{font-size:26px;margin:0;line-height:1.35}
  .glance-track,.glance-days{grid-column:1/-1}.glance-track{margin:9px 0 0}.glance-days{margin:10px 0 8px;gap:3px;min-height:17px}.glance-day{height:18px}
  .glance-frequency{font-size:.8125rem}.glance-streak{font-size:.75rem;text-align:right;margin:0}
  .glance-headline{font-size:18px;margin-bottom:16px}.glance-legend{font-size:11px}.glance-note{font-size:11px}
  .glance-evidence>summary span,.raw-toggle span{display:block;margin-left:0;margin-top:5px}
  .comparison-header{display:none}.comparison-row{grid-template-columns:repeat(var(--compare-count,3),minmax(0,1fr));gap:0 10px;padding:12px 0}
  .comparison-name{grid-column:1/-1;padding:4px 0 10px;font-size:.9375rem}.comparison-name small{display:inline;margin-left:8px}
  .comparison-cell{padding:8px 0}.comparison-mobile-label{display:block;color:#6b7684;font-size:11px;margin-bottom:5px}
  .comparison-cell strong{font-size:16px;letter-spacing:-.03em}.comparison-frequency{font-size:11px}.comparison-extra{font-size:11px}
  .comparison-view .ranking-toolbar{gap:8px}.comparison-view .ranking-title{width:auto}.ranking-options{margin-left:auto}
}
/* Keep the comparison itself within the first desktop screen. */
body:has(.rankings-view) .app-header{height:54px;min-height:54px}
main.rankings-view{padding-top:16px}.rankings-view .title-row{margin-bottom:12px}
.rankings-view .eyebrow{display:none}.rankings-view h1{font-size:1.5rem}
.rankings-view .view-tabs{height:42px}.stock-detail .toolbar{padding:10px 0}
.stock-detail .signal-controls{padding:8px 0}.stock-detail .signal-brief{padding:16px 0}
.stock-detail .brief-heading{margin-bottom:12px}.glance-headline{font-size:20px;line-height:1.5;margin-bottom:16px}
@media(min-width:601px){.glance-card{padding:18px}.glance-amount{margin-top:12px}.glance-track{margin:10px 0 12px}}
@media(max-width:600px){.glance-headline{font-size:17px;line-height:1.5}.rankings-view .title-row .button{font-size:12px;padding:8px}.stock-detail .brief-heading{gap:5px}.stock-detail .brief-heading .small{font-size:11px}}
/* One investor per row: compare amount, frequency and latest flow on the same line. */
.stock-detail .glance-headline{color:#333d4b;font-size:18px;line-height:1.6;margin:14px 0 18px}
.flow-overview{color:#333d4b}
.flow-overview-head,.flow-overview-row{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(0,1.4fr) minmax(0,1.2fr) minmax(0,1fr);gap:16px 24px;align-items:center;border-bottom:1px solid #e5e8eb}
.flow-overview-head{padding:10px 0;font-size:13px;color:#617084}
.flow-overview-row{padding:18px 0;min-width:0}.flow-overview-row>div{min-width:0}
.flow-overview-row h3{margin:0;font-size:17px;font-weight:700}
.flow-overview-row strong{display:block;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.flow-overview-amount strong{font-size:28px;font-weight:750;letter-spacing:-.04em;line-height:1.3}
.flow-overview-days strong{font-size:25px;font-weight:700;line-height:1.3}.flow-overview-days small{font-size:14px;font-weight:400}
.flow-overview-caption{display:block;font-size:12px;line-height:1.6;color:#617084;margin-top:4px}
.flow-overview .buy{color:#ce444b}.flow-overview .sell{color:#3476bc}.flow-overview .unknown,.flow-overview .flat{color:#617084}
.flow-overview-recent strong{font-size:18px;font-weight:700;line-height:1.4}
.flow-buy-ratio{height:6px;background:#edf1f5;border-radius:3px;margin-top:8px;max-width:240px;overflow:hidden}
.flow-buy-ratio i{display:block;height:100%;background:#087c70}
.flow-overview-mobile{display:none}
.flow-day-history{margin-top:28px;border-top:1px solid #e5e8eb;padding-top:20px}
.flow-day-history h3{font-size:15px;margin:0;color:#333d4b}
.flow-day-row{display:grid;grid-template-columns:90px minmax(0,1fr);gap:16px;align-items:center}
.flow-day-row>strong{font-size:13px;color:#4e5968}.flow-day-row .glance-days{grid-column:auto;margin:8px 0}
@media(max-width:600px){
  .flow-overview-head{display:none}.flow-overview-row{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr);gap:12px 10px;padding:16px 0}
  .flow-overview-row h3{grid-column:1/-1;font-size:16px}.flow-overview-mobile{display:block;font-size:11px;color:#617084;margin-bottom:6px}
  .flow-overview-amount strong{font-size:22px}.flow-overview-days strong{font-size:22px}.flow-overview-days small{font-size:12px}
  .flow-overview-recent strong{font-size:16px}.flow-overview-caption{font-size:11px}.flow-buy-ratio{margin-top:6px}
  .flow-day-row{grid-template-columns:65px minmax(0,1fr);gap:8px}.flow-day-row .glance-days{gap:2px}
}

/* K-Stock public identity */
.kstock-brand{display:flex;align-items:center;gap:10px;font-size:1.3rem;font-weight:800;letter-spacing:-.04em}.kstock-brand .brand-symbol{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--green);color:white;margin:0;font-size:1.1rem}.kstock-brand strong{font-size:.8rem;letter-spacing:0;margin-left:8px}.site-intro{margin:10px 0 0;color:#667788;font-size:.9rem;line-height:1.7}.data-badge{font-size:.8rem;padding:8px 12px;background:#e8f3ef;border-radius:20px;color:#28796c;white-space:nowrap}.site-footer{display:flex;flex-wrap:wrap;align-items:center;gap:5px 16px;padding:18px 2px;color:#667788;font-size:.75rem;line-height:1.7}.site-footer p{margin:0}.site-footer a{margin-left:auto}.admin-main{max-width:780px}.admin-card{padding:24px;margin:20px 0;background:white;border:1px solid var(--line);border-radius:12px}.admin-card h2{font-size:1.1rem;margin-top:0}.admin-card label{display:grid;gap:8px;margin:16px 0;font-size:.875rem}.admin-card pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.8}.admin-actions{display:flex;gap:10px;flex-wrap:wrap}.admin-message{line-height:1.7;min-height:24px}.admin-title{display:flex;justify-content:space-between;align-items:center;gap:12px}@media(max-width:600px){.kstock-brand strong{display:none}.title-row{gap:12px;align-items:flex-start;flex-direction:column}h1{font-size:1.4rem}.data-badge{padding:5px 10px}.site-footer{display:block}.site-footer a{display:inline-block;margin-top:12px}.admin-card{padding:18px}}
