/* UI V2: semantic surfaces and responsive layouts over the retained application. */
html{scroll-padding-top:112px}body{margin:0}button,a,input,select,textarea{touch-action:manipulation}
button{min-height:36px;transition:background .15s,border-color .15s;border:1px solid transparent}
button:disabled{cursor:wait}button.primary{background:var(--sx-brand);color:var(--sx-on-brand);min-height:44px}
button.danger{color:var(--sx-status-danger);background:var(--sx-danger-soft)}
button.ghost:hover{background:var(--sx-brand-soft)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{
 outline:2px solid var(--sx-focus);outline-offset:3px}
[hidden]{display:none!important}
.topbar{padding:12px 28px;gap:20px;flex-wrap:wrap;box-shadow:0 1px 0 var(--line)}
.brand{color:var(--text);text-decoration:none}.brand-domain{display:none!important}
.brand-copy small{color:var(--sub)}nav{min-width:0}nav button{min-height:44px;white-space:nowrap}
.chips{gap:6px}.chips .chip{font-size:12px;background:transparent;padding:3px 5px}
.chips .back-home{display:none}.marketbar{border-bottom:1px solid var(--line);background:var(--panel2);gap:18px;overflow:auto;white-space:nowrap}
.mkt-index{flex:none}.mkt-index small{font-size:12px}.mkt-status{color:var(--sub)}
main{padding:24px 28px 90px}main>section{min-width:0}
.pagehead{align-items:center;flex-wrap:wrap;margin:0 0 16px}.pagehead h2{font-size:24px;letter-spacing:-.5px}
.pagehead .meta{flex:1;min-width:180px;line-height:1.7}.pagehead .actions{flex-wrap:wrap}
.statline{gap:12px}.statline>.stat{flex:1;min-width:150px;padding:16px 18px;box-shadow:var(--sx-shadow)}
.stat .v{font-size:26px}.stat .k,.muted-note,.meta,.small{font-size:13px}
.stat{border-radius:12px;padding:18px}.section-title{font-size:17px}
.tag,.status-pill,.sx-chip{font-size:12px;border-radius:6px;font-weight:500;line-height:1.7}
.tag-held,.tag.potential,.tag.radar,.tag.radar2,.tag.win,[data-theme="light"] .tag-held,[data-theme="light"] .tag.potential,[data-theme="light"] .tag.radar,[data-theme="light"] .tag.radar2,[data-theme="light"] .tag.win{color:var(--sx-brand);background:var(--sx-brand-soft)}
.tag.exit,.tag.sell{color:var(--sx-status-danger);background:var(--sx-danger-soft)}
.tag.pending,.tag.weakening{background:var(--sx-warning-soft);color:var(--sx-status-warning)}
.tag.buy,.tag.new{color:var(--sx-brand);background:var(--sx-brand-soft)}
.tag-hidden,.tag.stale,.tag.invalid,.tag.ok{background:var(--panel2);color:var(--sub)}
.reco-n{color:var(--sx-brand)}.row-hidden{opacity:1}
.strip{background:var(--sx-danger-soft);border-color:var(--sx-status-danger);color:var(--text)}.strip b{color:var(--sx-status-danger)}
.strip.condbar{background:var(--panel);border-color:var(--line)}
.strip.condbar b{color:var(--text)}
.scrollbox,.sx-table-wrap{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:12px}
.sx-table-wrap table{border:0}td.num,th.num{text-align:right}th{font-weight:500}td{line-height:1.65}
.scrollbox tbody tr{height:52px}.scrollbox td{min-width:80px}.scrollbox td:first-child{min-width:150px}
.opp-scroll{max-height:560px}.opp-scroll table{min-width:920px}.opp-footnote{padding:10px 0}
.sx-result-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 18px;padding:14px 18px;border:1px solid var(--line);border-radius:10px;background:var(--panel);margin-bottom:14px}
.sx-status-main{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;min-width:0}.sx-status-main strong{font-size:15px;font-weight:600}
.sx-status-date{font-size:12px;color:var(--sx-brand);font-variant-numeric:tabular-nums}.sx-status-meta{font-size:12px;color:var(--sub);overflow-wrap:anywhere}
.sx-core-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:4px 0 12px}
.sx-core-stats>div{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;padding:10px 16px;background:var(--panel2);border-radius:8px}
.sx-core-stats span,.sx-core-stats small{font-size:12px;color:var(--sub)}.sx-core-stats strong{font-size:24px;font-weight:600;font-variant-numeric:tabular-nums}
.sx-count-help>summary{cursor:pointer;color:var(--sub);padding:8px 0;font-size:12px}.sx-count-help .statline{margin-top:12px}
.sx-feed-heading{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:18px 0 8px}.sx-feed-heading>.section-title{margin:0 auto 0 0}.sx-feed-heading .muted-note{font-weight:400;font-size:12px}
.sx-feed-heading .sx-filter{margin:0;gap:8px}.sx-feed-heading .sx-filter label{font-size:12px}.sx-feed-heading .sx-filter input{width:180px;min-width:120px;max-width:240px}.sx-feed-heading .sx-filter .sub{font-size:12px;max-width:220px}
.sx-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 22px}
.sx-opportunity{padding:22px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--sx-shadow);min-width:0}
.sx-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.sx-rank{font-size:13px;color:var(--sub);letter-spacing:2px}.sx-chip{padding:2px 8px;background:var(--sx-brand-soft);color:var(--sx-brand)}
.sx-opportunity h3{font-size:18px;line-height:1.5}.sx-opportunity h3 small{display:block;font-size:12px;font-weight:400;color:var(--sub)}
.sx-quote{display:flex;align-items:baseline;gap:12px;margin:14px 0}.sx-quote strong{font-size:32px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.8px}
.sx-opportunity p{font-size:13px;line-height:1.7;margin-bottom:12px;color:var(--text)}.sx-opportunity>small{font-size:12px;color:var(--sub)}
.sx-card-actions{display:flex;gap:8px;align-items:center;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.sx-research{border:1px solid var(--line);background:var(--panel);border-radius:12px;margin:18px 0;padding:0 18px}
.sx-research>summary{cursor:pointer;padding:16px 0;color:var(--sub);font-weight:500}.sx-research>div{padding-bottom:16px}
.sx-research .strip{margin:0}.sx-empty{display:flex;gap:16px;padding:30px;border:1px dashed var(--line);border-radius:12px;margin-bottom:20px;background:var(--panel)}
.sx-pipeline{border:1px solid var(--line);border-radius:14px;background:var(--panel);margin:22px 0;overflow:hidden}
.sx-pipeline-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:20px 24px;border-bottom:1px solid var(--line)}
.sx-pipeline-heading h2{font-size:19px;margin:0 0 6px}.sx-pipeline-heading p,.sx-pipeline-meta{font-size:12px;color:var(--sub)}
.sx-pipeline-heading button{flex:none}.sx-pipeline[data-open="false"] .sx-pipeline-heading{border-bottom:0}.sx-pipeline-actions{display:flex;gap:8px;flex:none}.sx-pipeline-alert{color:var(--sx-status-danger)}.sx-pipeline-meta{padding:16px 24px 0}
.sx-pipeline-lane{padding:18px 24px 24px}.sx-lane-heading{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.sx-lane-heading h3{font-size:15px;margin:0}.sx-lane-heading span{font-size:12px}
.sx-pipeline-scroll{overflow:auto}.sx-pipeline-table{width:100%;min-width:560px;table-layout:fixed;border-collapse:collapse}
.sx-pipeline-table th,.sx-pipeline-table td{padding:16px 18px;vertical-align:top;border-bottom:1px solid var(--line);white-space:normal;overflow-wrap:anywhere}
.sx-pipeline-table thead th{background:var(--panel2);color:var(--sub);font-weight:500;text-align:left}
.sx-pipeline-table th:first-child{width:23%}.sx-pipeline-table th:nth-child(2){width:13%;text-align:right}
.sx-pipeline-table th[scope=row]{font-weight:600;text-align:left}.sx-stage-count{text-align:right;font-size:20px;font-weight:600}
.sx-pipeline-table p{margin:6px 0;line-height:1.7;font-size:13px;color:var(--sub)}.sx-stage-time{font-size:13px}
.sx-stage-detail{margin-top:10px}.sx-stage-detail summary{cursor:pointer;color:var(--sx-brand);font-size:12px;padding:8px 0;min-height:36px}
.sx-stage-detail ul{list-style:none;padding:0;margin:8px 0}.sx-stage-detail li{padding:12px;background:var(--panel2);border-radius:6px;margin:8px 0}
@media(max-width:600px){.sx-pipeline-heading{padding:16px}.sx-pipeline-lane{padding:16px}.sx-pipeline-meta{padding:14px 16px 0}.sx-pipeline-table th,.sx-pipeline-table td{padding:12px}.sx-pipeline-heading h2{font-size:17px}}
.sx-empty>span{font-size:28px;color:var(--sx-brand)}.sx-empty p{margin-top:8px;color:var(--sub)}
.sx-error{padding:18px;border:1px solid var(--sx-status-danger);background:var(--sx-danger-soft);border-radius:9px;margin-bottom:14px;line-height:1.8}
.sx-filter{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:16px 0}.sx-filter input{flex:1;min-width:150px;max-width:360px}
.sx-signal-note{padding:12px 16px;border-left:3px solid var(--sx-brand);background:var(--sx-brand-soft);color:var(--sx-brand);margin:12px 0}
.sx-table-actions{display:inline-block;position:relative}.sx-table-actions summary{cursor:pointer;padding:8px;color:var(--sx-brand)}
.sx-table-actions[open]{display:flex;gap:8px;flex-wrap:wrap}
.sx-inline-edit{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.sx-inline-edit input{width:110px}.sx-inline-edit .sx-inline-error{width:100%;color:var(--sx-status-danger)}
.sx-highlight{outline:2px solid var(--sx-focus);outline-offset:-2px;background:var(--sx-brand-soft)!important}
.alert-card{border-color:var(--line);background:var(--panel);border-radius:12px;padding:22px;margin:12px 0}
.alert-card[data-severity="critical"]{border-left:4px solid var(--sx-status-danger)}
.alert-card[data-severity="warn"]{border-left:4px solid var(--sx-status-warning)}
.alert-card[data-severity="info"]{border-left:4px solid var(--sx-muted)}
.alert-card .status-pill{color:var(--sx-status-danger);background:var(--sx-danger-soft)}
.alert-card .status-pill.neutral{color:var(--sub);background:var(--panel2)}
.alert-card .alert-title{font-size:15px}.alert-actions{display:flex;gap:8px;flex-wrap:wrap}
.sx-notification{font-size:12px;color:var(--sub);margin:10px 0}
.sx-settings-groups{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}
.sx-setting-group{padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:9px}
.sx-setting-group>span{display:block;margin-bottom:8px;font-size:12px;color:var(--sub)}
.sx-setting-group button{margin:2px;min-height:40px}.sx-setting-group button.on{background:var(--sx-brand-soft);color:var(--sx-brand);font-weight:600}
.set-pane{position:relative}.set-pane .kv{max-width:100%}.kv dt{color:var(--sub)}.kv dd{min-width:0;overflow-wrap:anywhere}
.cond-editor .cond-check{border-bottom:1px solid var(--line);padding:12px 0}
.sx-contract-note{color:var(--sx-status-warning);background:var(--sx-warning-soft);padding:12px;border-radius:8px;line-height:1.7}
.sx-param-help{font-size:12px;color:var(--sub);padding:0 0 10px}.sx-param-help summary{cursor:pointer;min-height:36px;display:flex;align-items:center;color:var(--sx-brand)}.sx-param-help summary:before{content:"＋";margin-right:8px}.sx-param-help[open] summary:before{content:"−"}
.cond-editor>.section-title{margin:20px 0 8px}.cond-editor .cond-editor-actions{position:sticky;bottom:48px;background:var(--panel);padding:12px;border:1px solid var(--line);z-index:4}
.sx-save-status{position:sticky;top:94px;z-index:5;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:12px;display:flex;justify-content:space-between;gap:10px;align-items:center}
.sx-save-status[data-state="dirty"]{background:var(--sx-warning-soft);color:var(--sx-status-warning)}
.sx-save-status[data-state="error"],.sx-save-status[data-state="conflict"]{background:var(--sx-danger-soft);color:var(--sx-status-danger)}
.sx-health{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}
.sx-health>div{padding:14px;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}
.sx-health small{display:block;color:var(--sub);margin-bottom:6px}.sx-health b{font-size:16px}
.sx-dialog{width:min(480px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow:auto;padding:28px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 80px #0005;margin:auto}
.sx-dialog::backdrop{background:#07141c99;backdrop-filter:blur(3px)}
.sx-dialog h2{font-size:20px;margin:0 0 18px}.sx-dialog-message{display:block;white-space:pre-wrap;line-height:1.7;margin-bottom:14px}
.sx-dialog input{display:block;box-sizing:border-box;width:100%;margin-top:12px}.sx-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}
.sx-dialog button{min-height:44px}.sx-dialog input{font-size:16px}
#sx-toasts{position:fixed;bottom:72px;right:24px;z-index:150;max-width:calc(100vw - 32px)}
.sx-toast{padding:12px 18px;background:var(--panel);border:1px solid var(--sx-brand);border-radius:9px;box-shadow:var(--sx-shadow);color:var(--text);display:flex;gap:12px;align-items:center}
.sx-toast.error{border-color:var(--sx-status-danger)}
.sx-update{position:fixed;bottom:12px;left:50%;transform:translateX(-50%);z-index:100;display:flex;gap:12px;padding:10px 16px;border:1px solid var(--sx-brand);border-radius:9px;background:var(--panel);max-width:calc(100vw - 24px)}
.claw-dock{left:auto!important;right:24px!important;bottom:60px!important;width:420px!important;max-width:calc(100vw - 32px)!important;align-items:stretch}
.claw-dock:not(.open) .claw-panel{display:none}.claw-panel,.claw-bar{width:100%!important;box-sizing:border-box}.claw-toggle{pointer-events:auto}
.claw-dock:not(.open){width:auto!important}.claw-dock:not(.open) .claw-bar{display:none}
.claw-panel{max-height:calc(100dvh - 180px)!important;background:var(--panel)!important}
.claw-msgs{max-height:calc(100dvh - 330px);min-height:120px;overflow:auto}
.claw-bubble{overflow-wrap:anywhere}.claw-bubble pre{white-space:pre-wrap;padding:12px;background:var(--panel2);border-radius:6px}
.claw-bubble blockquote{border-left:2px solid var(--sx-brand);padding-left:10px;margin:8px 0;color:var(--sub)}
.claw-bubble code{font-family:Menlo,monospace;font-size:12px}.claw-time,.claw-note{color:var(--sub);font-size:12px}
.claw-toggle{min-width:44px;min-height:44px;float:right;background:var(--sx-brand);color:var(--sx-on-brand)}
.claw-dock.open .claw-toggle{display:none}.claw-bar{border-top:1px solid var(--line)}
.claw-bar input{font-size:16px;min-width:0}.claw-title{flex-wrap:wrap}.claw-sub{display:none}
.taskbar{background:var(--panel);border-color:var(--line);font-size:12px}
#star-home{--sh-up:var(--sx-market-rise);--sh-down:var(--sx-market-fall);--sh-ice:var(--sx-brand);color:var(--text);color-scheme:inherit;background:radial-gradient(ellipse at 76% 25%,var(--sx-brand-soft),transparent 55%),var(--bg)}
.sh-header{background:var(--panel);border-color:var(--line)}.sh-brand-copy small,.sh-sub,.sh-calendar,.sh-quota,.sh-foot,.sh-card-foot small,.sh-idle-detail,.sh-eyebrow,.sh-strength-line,.sh-orbit-caption{color:var(--sub)}
.sh-brand-domain{display:none}.sh-header .sh-outline{color:var(--text);border-color:var(--line)}.sh-logo{background:var(--sx-brand-soft);color:var(--sx-brand)}
.sh-main{padding:44px 40px 24px}.sh-discovery{margin-top:24px}
.sh-card{background:var(--panel);border-color:var(--line);border-radius:12px;box-shadow:var(--sx-shadow)}
.sh-badge{color:var(--sx-brand);background:var(--sx-brand-soft);border-color:var(--line)}
.sh-card h3{color:var(--text)}.sh-card-top small,.sh-card-price,.sh-poetic-empty strong{color:var(--text)}
.sh-card .sh-btn{background:var(--sx-brand);color:var(--sx-on-brand);margin-top:16px}
.sh-card-foot small{font-size:12px}.sh-strength-line{font-size:12px}
.sh-discovery-idle{color:var(--text);border-color:var(--line)}.sh-luck{background:var(--sx-brand);color:var(--sx-on-brand)!important}
.sh-hero h1 span{background:none;color:var(--sx-brand)}.sh-orb{background:radial-gradient(circle at 32% 28%,var(--panel2),var(--bg) 68%)}
.sh-orb span{color:var(--sx-brand)}.sh-text-btn{color:var(--sx-brand);min-height:44px}
.sh-revealed .sh-hero{min-height:240px}.sh-revealed .sh-hero h1{font-size:30px}.sh-revealed .sh-orbit-scene{min-height:220px}.sh-revealed .sh-orb{width:130px;height:130px}
.sh-track-status{margin-top:10px;font-size:12px;color:var(--sub)}
@media(max-width:1100px){.topbar{gap:12px}.chips{width:100%;margin-left:0}.chips #chip-welcome{margin-right:auto}.sx-cards{gap:12px}.sx-opportunity{padding:18px}.sx-card-actions{flex-wrap:wrap}}
@media(max-width:768px){
 .topbar{padding:8px 16px;display:grid;grid-template-columns:1fr auto;gap:4px 8px;position:relative}
 .topbar .brand-copy small,.chips #chip-coll,.chips #chip-mail,.chips #chip-welcome,.chips .chip.alert{display:none!important}
 .topbar .brand-copy b{font-size:20px}.topbar nav{grid-column:1/-1;grid-row:2;overflow-x:auto;max-width:100%;width:100%;gap:0}
 .topbar .chips{grid-column:2;grid-row:1;margin:0;width:auto;flex-wrap:nowrap}.chips #chip-user{white-space:nowrap}
 nav button{padding:8px 12px;font-size:13px}.marketbar{padding:6px 16px;min-height:32px;margin:0}.mkt-title,.mkt-status,.mkt-index small{display:none}
 main{padding:20px 16px 84px}.pagehead{gap:8px}.pagehead h2{font-size:22px}.pagehead .meta{font-size:12px;min-width:0;flex-basis:100%}
 .pagehead .actions{margin-left:0;width:100%;gap:6px}.pagehead .actions button{font-size:12px}
 .sx-result-summary{padding:12px 14px;gap:6px}.sx-status-main strong{font-size:14px}.sx-status-meta{width:100%}
 .sx-core-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sx-core-stats>div{padding:10px}.sx-feed-heading .sx-filter{width:100%}.sx-feed-heading .sx-filter input{max-width:none}.sx-pipeline-actions{flex-wrap:wrap;justify-content:flex-end}
 .sx-cards{grid-template-columns:1fr}.sx-opportunity{padding:18px}.sx-card-top{margin-bottom:12px}.sx-quote{margin:8px 0}.sx-card-actions{margin-top:12px;padding-top:12px}
 .statline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.statline>.stat{min-width:0;padding:14px}.stat .v{font-size:22px}
 .sx-settings-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sx-setting-group{padding:8px}.sx-setting-group button{font-size:13px}
 .sx-health{grid-template-columns:1fr}.sx-save-status{top:0;flex-wrap:wrap}.sx-save-status button{min-height:44px}
 .checks{flex-wrap:wrap}.checks label{max-width:100%}.cond-editor .cond-check{line-height:2}.kv{grid-template-columns:100px minmax(0,1fr)}
 .cond-num{font-size:16px!important}.sx-research{padding:0 12px}.strip{margin:8px 16px;flex-wrap:wrap}
 .alert-card{padding:16px;min-width:0}.alert-kicker{flex-wrap:wrap}.alert-body{min-width:0}.alert-kicker small{display:block;white-space:normal}
 button,.ghost,a.sh-btn{min-height:44px}.claw-dock{right:12px!important;bottom:50px!important;max-width:calc(100vw - 24px)!important}
 .claw-panel{max-height:calc(100dvh - 150px)!important}.taskbar{font-size:11px;gap:8px}.taskbar>span:last-child{display:none}
 #page-member>.stat{min-width:0}.sh-header{padding:12px 16px}.sh-brand-copy small{font-size:11px}.sh-header-actions{gap:6px}.sh-btn{padding:10px 12px}
 .sh-main{padding:26px 16px 24px}.sh-hero{grid-template-columns:1fr;min-height:0}.sh-orbit-scene{display:none}
 .sh-hero h1{font-size:31px}.sh-revealed .sh-hero h1{font-size:24px}.sh-hero-actions{gap:8px;margin-top:18px}
 .sh-discovery,.sh-discovery[data-count="2"]{grid-template-columns:1fr}.sh-discovery[data-count="1"]{grid-template-columns:1fr}
 .sh-card-price strong{font-size:28px}.sh-foot{margin-top:22px}.sx-dialog{padding:22px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
