:root{--dark:#0a1014;--dark2:#13211d;--paper:#edf0e9;--ink:#e9eee9;--text:#14231d;--muted:#718078;--line:rgba(230,240,232,.14);--accent:#c7f24b;--green:#85d88e;--yellow:#efd36b;--red:#ec7777;--serif:Manrope,Arial,sans-serif;--sans:Manrope,Arial,sans-serif;--mono:'DM Mono',monospace}*{box-sizing:border-box}body{margin:0;background:var(--dark);font-family:var(--sans);font-variant-numeric:tabular-nums}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.landing{color:var(--ink);min-height:100vh;padding:0 clamp(24px,5vw,80px);display:flex;flex-direction:column;background:radial-gradient(circle at 82% 23%,rgba(116,155,87,.16),transparent 24rem),linear-gradient(135deg,#0a1014,#0c1515 70%,#111d18)}.landing-nav{height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font:700 14px var(--sans);letter-spacing:.15em}.brand i{color:var(--accent);font-style:normal}.brand-mark{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--accent);border-radius:50%;color:var(--accent);font:500 16px var(--serif)}.nav-note{color:#91a099;font:12px var(--mono)}.button{border:0;padding:14px 21px;font-weight:700;transition:.2s transform}.button:hover{transform:translateY(-2px)}.button span{margin-left:17px}.ghost{color:var(--ink);background:transparent;border:1px solid var(--line);font-size:12px}.primary{background:var(--accent);color:#0a1014}.hero{flex:1;display:flex;flex-direction:column;justify-content:center;max-width:850px;padding:11vh 0 6vh;position:relative}.hero:after{content:'H';position:absolute;right:-30vw;top:-12vh;color:rgba(199,242,75,.035);font:700 min(56vw,670px) var(--serif);line-height:.75;pointer-events:none}.eyebrow{margin:0;color:var(--accent);font:11px var(--mono);letter-spacing:.14em}.pulse{display:inline-block;width:7px;height:7px;margin:0 11px 1px 4px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px rgba(199,242,75,.12)}.hero h1{margin:27px 0;font:600 clamp(48px,8vw,108px)/.98 var(--serif);letter-spacing:-.055em}.hero em{color:var(--accent)}.hero>p{max-width:570px;margin:0;color:#b4c0b7;font-size:clamp(16px,1.5vw,19px);line-height:1.7}.hero-actions{display:flex;align-items:center;gap:24px;margin-top:39px}.hero-actions small{color:#91a099}.landing-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.landing-grid article{min-height:154px;margin-right:28px;padding:23px 28px 20px 0;border-right:1px solid var(--line)}.landing-grid article:last-child{border:0}.landing-grid b{color:var(--accent);font:11px var(--mono)}.landing-grid h2{margin:23px 0 7px;font-size:16px}.landing-grid p{max-width:260px;margin:0;color:#91a099;font-size:13px;line-height:1.55}.landing footer{display:flex;justify-content:space-between;padding:16px 0 20px;border-top:1px solid var(--line);color:#68756f;font:10px var(--mono);letter-spacing:.09em}
.app{display:flex;min-height:100vh;background:var(--paper);color:var(--text)}.sidebar{position:fixed;inset:0 auto 0 0;z-index:2;display:flex;flex-direction:column;width:250px;min-height:100vh;padding:30px 20px;background:var(--dark);color:var(--ink)}.nav-label{margin:55px 0 15px 7px;color:#788781;font:10px var(--mono);letter-spacing:.14em}.sidebar nav{display:grid;gap:4px}.nav{display:flex;align-items:center;gap:11px;padding:12px 10px;border:0;border-left:2px solid transparent;background:transparent;color:#a9b5ae;text-align:left;font-size:13px}.nav:hover{color:var(--ink);background:#131d1e}.nav.active{border-left-color:var(--accent);background:linear-gradient(90deg,rgba(199,242,75,.1),transparent);color:var(--accent)}.nav>b{margin-left:auto;padding:3px 5px;background:rgba(199,242,75,.16);font:9px var(--mono)}.sidebar-bottom{display:grid;gap:18px;margin-top:auto;padding:10px 6px}.sidebar-bottom small,.schedule small{display:flex;gap:8px;align-items:center;color:#8b9992;font-size:11px}.back,.link{padding:0;border:0;background:transparent;color:#547c5b;font-size:12px;font-weight:700;text-align:left}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}.neutral{background:#718079}.green{background:var(--green)}.yellow{background:var(--yellow)}.red{background:var(--red)}.app-main{width:calc(100% - 250px);min-width:0;margin-left:250px;padding:0 clamp(25px,5vw,80px) 70px}.app header{display:flex;align-items:center;justify-content:space-between;min-height:123px;border-bottom:1px solid #ccd3ca}.app header h1{margin:7px 0 0;font:600 31px var(--serif);letter-spacing:-.04em}.header-right{display:flex;align-items:center;gap:16px;color:#718078;font:11px var(--mono)}.notice,.menu{width:36px;height:36px;border:1px solid #cbd3ca;background:transparent;color:#294036}.menu{display:none}.page{display:none;padding-top:42px}.page.active{display:block;animation:appear .3s ease}@keyframes appear{from{opacity:.35;transform:translateY(5px)}}.welcome,.title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:25px}.welcome{padding:clamp(28px,4vw,52px);margin-bottom:22px;background:#16231f;color:var(--ink)}.welcome h2,.title-row h2{margin:9px 0;font:600 clamp(30px,4vw,45px) var(--serif);letter-spacing:-.045em}.welcome>div>p:not(.eyebrow),.title-row p{max-width:535px;color:#9eaca4;font-size:14px;line-height:1.65}.scan{display:flex;gap:10px;min-width:216px;padding:6px 0 6px 26px;border-left:1px solid rgba(224,238,225,.2)}.scan small,.scan span{display:block;color:#8d9e95;font-size:11px}.scan small{font:10px var(--mono);letter-spacing:.1em}.scan strong{display:block;margin:6px 0;font-size:13px}.grid{display:grid;gap:22px}.home-grid{grid-template-columns:1.4fr 1fr}.surface{padding:27px;border:1px solid #d1d8d0;background:#f5f6f1}.surface h3{margin:8px 0 20px;font:600 21px var(--serif);letter-spacing:-.025em}.radar-card{grid-row:span 2;background:#eef1e9}.surface-top{display:flex;justify-content:space-between}.orbit{position:relative;display:grid;place-items:center;height:145px;margin:10px 0;overflow:hidden;color:#719760;font:32px var(--serif)}.orbit:before,.orbit:after{position:absolute;content:'';border:1px solid rgba(89,124,79,.32);border-radius:50%}.orbit:before{width:78px;height:78px}.orbit:after{width:220px;height:138px;transform:rotate(-20deg)}.orbit{isolation:isolate}.orbit::selection{background:transparent}.radar-card .orbit{z-index:0}.radar-card .orbit{font-size:32px}.radar-card .orbit{position:relative}.radar-card .orbit{color:#719760}.radar-card>p{max-width:400px;color:#708078;font-size:13px;line-height:1.6}.surface ol,.connections{padding:0;margin:15px 0 0;list-style:none}.surface ol li,.connections li{padding:14px 0;border-top:1px solid #d9dfd7;font-size:13px}.surface ol b{margin-right:14px;color:#618458;font:11px var(--mono)}.connections i,.brokers i{display:block;margin-top:3px;color:#7d8d84;font:11px var(--mono);font-style:normal}
.title-row{margin-bottom:30px}.muted{background:#d9ded7;color:#7b8981;cursor:not-allowed}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:13px}.search{display:flex;align-items:center;gap:8px;min-width:min(100%,275px);height:41px;padding:0 12px;border:1px solid #cbd4ca;background:#fff}.search input,.analysis-search input{width:100%;border:0;outline:0;background:transparent;color:#1a2923;font-size:13px}.filters{display:flex;gap:5px}.filter{display:flex;align-items:center;gap:6px;padding:9px 10px;border:1px solid #cbd4ca;background:transparent;color:#617169;font-size:12px}.filter.active{border-color:#18251f;background:#18251f;color:#dcebdc}.sort{margin-left:auto;color:#6d7b74;font-size:12px}.sort select{margin-left:6px;padding:8px;border:1px solid #cbd4ca;background:#f7f9f4;color:#26372e}.table{min-height:350px;border:1px solid #ccd5cc;background:#f8f9f5}.table-head{display:grid;grid-template-columns:2fr 1fr 1.2fr 1.25fr .8fr;gap:14px;padding:14px 18px;border-bottom:1px solid #d5ddd4;color:#6b7971;font:10px var(--mono);letter-spacing:.07em}.empty{max-width:520px;margin:auto;padding:57px 20px;text-align:center}.empty>div,.portfolio-empty>div{color:#79a066;font:42px var(--serif)}.empty h3{margin:13px 0 7px;font:600 24px var(--serif)}.empty p{color:#738078;font-size:13px;line-height:1.7}.note{display:block;margin-top:12px;color:#7e8a83;font-size:11px}.chip{padding:8px 10px;border:1px solid #b8cbb4;color:#5c765d;font:10px var(--mono);letter-spacing:.08em}.portfolio-empty{margin-top:30px;padding:55px 25px;text-align:center}.portfolio-empty h3{font-size:27px}.portfolio-empty p{max-width:440px;margin:auto;color:#718079;font-size:13px;line-height:1.7}.brokers{display:flex;justify-content:center;gap:13px;margin-top:30px}.brokers span{min-width:145px;padding:12px;border:1px solid #d1d9d0;color:#3e5146;text-align:left;font-size:12px}.analysis-search{min-width:270px;padding:7px 0;border-bottom:1px solid #9eada3;color:#8a9890;font-size:18px}.analysis-grid{grid-template-columns:1fr 1fr;margin-top:32px}.judgment{display:flex;gap:14px;padding:17px 0;border-top:1px solid #d6ddd4}.judgment>b{color:#629558;font:20px var(--serif)}.judgment strong{font-size:13px}.judgment p{margin:4px 0 0;color:#6f7e75;font-size:12px;line-height:1.5}.tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:28px}.tags span{padding:8px 10px;border:1px solid #cbd6c9;color:#52645a;font-size:12px}.calendar>div{display:flex;align-items:center;justify-content:space-between}.calendar button{border:0;background:transparent;color:#42634a;font-size:18px}.calendar>p{display:grid;place-items:center;height:200px;margin-top:19px;background:linear-gradient(90deg,transparent 24%,#dce2da 25%,transparent 26%,transparent 49%,#dce2da 50%,transparent 51%,transparent 74%,#dce2da 75%,transparent 76%),linear-gradient(#dce2da 1px,transparent 1px);background-size:100% 50px;color:#7d8d84;text-align:center;font:12px/1.7 var(--mono)}.schedule>strong{display:block;margin-top:35px;font:600 55px var(--serif);letter-spacing:-.06em}.schedule>strong small{display:inline;color:inherit;font:14px var(--mono);letter-spacing:0}.schedule>p{margin:0;color:#66786d;font-size:13px}.schedule hr{margin:29px 0 16px;border:0;border-top:1px solid #d6ddd4}
@media(max-width:800px){.landing{padding:0 24px}.nav-note{display:none}.hero{padding:13vh 0 7vh}.landing-grid article{margin-right:13px;padding-right:13px}.sidebar{transform:translateX(-100%);transition:.25s transform;box-shadow:5px 0 25px rgba(0,0,0,.25)}.sidebar.open{transform:translateX(0)}.app-main{width:100%;margin:0;padding:0 22px 45px}.menu{display:block;margin-right:14px}.app header{justify-content:flex-start}.header-right{margin-left:auto}.welcome,.title-row{flex-direction:column}.scan{width:100%;padding:20px 0 0;border-top:1px solid rgba(224,238,225,.2);border-left:0}.home-grid,.analysis-grid{grid-template-columns:1fr}.radar-card{grid-row:auto}.analysis-search{width:100%;min-width:0}.table-head{display:none}}@media(max-width:520px){.landing-nav{height:74px}.landing-nav .ghost{padding:9px;font-size:0}.landing-nav .ghost span{margin:0;font-size:15px}.hero h1{font-size:53px}.hero-actions{flex-direction:column;align-items:flex-start;gap:14px}.landing-grid{grid-template-columns:1fr}.landing-grid article{min-height:auto;margin:0;padding:19px 0;border-right:0;border-bottom:1px solid var(--line)}.landing footer span:nth-child(2),.notice{display:none}.app header h1{font-size:27px}.page{padding-top:28px}.welcome{padding:28px 22px}.toolbar{align-items:stretch}.search{width:100%}.filters{width:100%;overflow:auto;padding-bottom:4px}.filter{white-space:nowrap}.sort{margin-left:0}.table{min-height:330px}.brokers{flex-direction:column;align-items:center}.brokers span{width:100%;max-width:250px}}
.watchlist-rows{display:grid}.watchlist-row{display:grid;grid-template-columns:2fr 1fr 1.2fr 1.25fr .8fr;gap:14px;align-items:center;padding:16px 18px;border-bottom:1px solid #dfe5de;color:#45574d;font-size:13px}.watchlist-row:last-child{border-bottom:0}.watchlist-row strong{display:block;color:#1d3026;font:600 13px var(--mono)}.watchlist-row small{display:block;margin-top:4px;color:#819087;font-size:11px}.pending{color:#78847d;font-size:12px}.row-actions{display:flex;align-items:center;justify-content:space-between;gap:9px}.row-actions time{color:#7a8880;font:10px var(--mono)}.delete-stock{width:25px;height:25px;border:1px solid #d6ddd5;background:transparent;color:#7a8880;font-size:18px;line-height:1}.delete-stock:hover{border-color:#b76b6b;color:#af5555}
.add-stock-form{display:flex;align-items:end;gap:10px;margin:-10px 0 20px;padding:14px;border:1px solid #d1d8d0;background:#f5f6f1}.add-stock-form label{display:grid;gap:6px;color:#62736a;font:10px var(--mono);letter-spacing:.07em}.add-stock-form input{width:170px;padding:9px 10px;border:1px solid #cbd4ca;background:#fff;color:#1a2923;outline:none;font:13px var(--mono)}.add-stock-form .button{padding:10px 14px}.add-stock-form .link{padding:11px 4px}
/* Functional notification panel; reuse the established surface styling. */
#alertsDialog{width:min(620px,calc(100% - 32px));max-height:80vh;overflow:auto;color:var(--text)}
#alertsDialog::backdrop{background:rgba(0,0,0,.45)}
@media(max-width:520px){.notice{display:block}}

/* Final Hong Stock design direction: soft modern purple finance. These are
   presentation overrides only; routes, market data and scoring remain intact. */
:root{--purple:#6547d8;--purple-dark:#4530ad;--purple-soft:#eeeaff;--paper:#f7f6fb;--text:#24223a;--muted:#74718b;--accent:var(--purple);--dark:#211d3c;--dark2:#30275d;--ink:#fbfaff;--line:rgba(255,255,255,.14);--green:#78c99a;--yellow:#f1c866;--red:#9f263b}
body{background:#f7f6fb;color:var(--text)}
.landing{background:radial-gradient(circle at 82% 18%,rgba(152,123,255,.28),transparent 26rem),linear-gradient(135deg,#201d3e,#35285d 74%,#44337d)}
.brand i,.brand-mark,.eyebrow,.hero em,.pulse{color:#bcaaff}.brand-mark{border-color:#bcaaff}.pulse{background:#bcaaff;box-shadow:0 0 0 5px rgba(188,170,255,.16)}
.primary,.button:not(.muted){background:linear-gradient(135deg,var(--purple),#7a5ee6);color:#fff;border-radius:12px;box-shadow:0 7px 16px rgba(76,53,173,.2)}
.ghost{border-color:rgba(255,255,255,.42);border-radius:12px}.landing-grid{border-color:rgba(255,255,255,.18)}
.app{background:linear-gradient(135deg,#f8f7fd,#f3f0fb);color:var(--text)}
.sidebar{top:18px;bottom:18px;left:18px;inset-block:auto;width:232px;min-height:calc(100vh - 36px);padding:25px 16px;border-radius:22px;background:linear-gradient(165deg,#292248,#1e1b35);box-shadow:0 18px 44px rgba(44,32,95,.24)}
.nav-label{margin:44px 0 13px 8px;color:#bcb4de}.sidebar nav{gap:7px}.nav{border:0;border-radius:11px;color:#c5bfde;padding:12px}.nav:hover{background:rgba(255,255,255,.1);color:#fff}.nav.active{background:linear-gradient(135deg,rgba(132,103,237,.82),rgba(107,79,214,.82));color:#fff}.nav>b{background:rgba(255,255,255,.18);color:#fff}.sidebar-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:18px}.sidebar-bottom small,.schedule small{color:#c5bfde}.back,.link{color:var(--purple-dark)}
.app-main{width:calc(100% - 268px);margin-left:268px}.app header{border-color:#e4e0f0}.app header h1{color:#28233e}.header-right{color:#77728d}.notice,.menu{border-color:#ddd8ec;border-radius:10px;color:var(--purple-dark);background:#fff}
.welcome{border-radius:22px;background:linear-gradient(135deg,#32285d,#4d3d8c);box-shadow:0 15px 35px rgba(57,43,121,.18)}.welcome>div>p:not(.eyebrow),.title-row p{color:#76728a}.welcome>div>p:not(.eyebrow){color:#ddd9f1}.scan{border-color:rgba(255,255,255,.2)}.scan small,.scan span{color:#d7d2eb}.scan .link{color:#d7caff}
.surface,.table{border:1px solid #e7e2f1;background:rgba(255,255,255,.92);border-radius:18px;box-shadow:0 8px 22px rgba(55,39,109,.07)}.radar-card{background:linear-gradient(150deg,#f3f0ff,#fff)}.surface h3,.watchlist-row strong{color:#28233e}.surface ol li,.connections li,.watchlist-row{border-color:#eeeaf5}.orbit{color:var(--purple)}.orbit:before,.orbit:after{border-color:rgba(101,71,216,.32)}
.search,.sort select,.add-stock-form input{border-color:#ded8ed;border-radius:10px;background:#fff;color:#2a2540}.filter{border-color:#ddd7ec;border-radius:10px;color:#615c77;background:#fff}.filter.active{border-color:var(--purple);background:var(--purple);color:#fff}.table-head{border-color:#eeeaf5;color:#756e89}.chip{border-color:#d8cfef;color:var(--purple-dark);border-radius:999px;background:#f6f3ff}.add-stock-form{border-color:#e5e0f1;border-radius:14px;background:#fbfaff}.muted{background:#eae6f4;color:#655f77;cursor:pointer;border-radius:12px}.delete-stock,.open-analysis{border-color:#ddd7eb;border-radius:8px;background:#fff;color:#625b79}.open-analysis{width:27px;height:27px;font-size:15px}.delete-stock:hover{border-color:#9f263b;color:#9f263b}
#addStockButton,.add-stock-form .button{background:linear-gradient(135deg,var(--purple),#7a5ee6);color:#fff;border:0;font-weight:800;box-shadow:0 7px 16px rgba(76,53,173,.2)}
.watchlist-row{grid-template-columns:minmax(150px,1.4fr) .6fr .78fr minmax(300px,2.2fr) minmax(110px,.85fr);background:transparent}.signal-bar{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.signal-cell{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:5px;align-items:center;min-width:0;padding:6px 8px;border:1px solid transparent;border-radius:9px;font:10px/1.2 var(--sans);text-align:left}.signal-cell b{font:700 10px var(--mono);letter-spacing:.04em}.signal-cell span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.signal-cell i{grid-column:1/-1;display:none;margin-top:4px;font-style:normal;font-size:9px}.signal-cell:focus-visible{outline:3px solid rgba(101,71,216,.35);outline-offset:2px}.signal-cell[aria-expanded="true"]{z-index:1;min-width:140px}.signal-cell[aria-expanded="true"] i{display:block}.signal-positive{background:#dff5e7;border-color:#b9e4c7;color:#155b37}.signal-neutral{background:#e5f2ff;border-color:#c5dff6;color:#205478}.signal-negative{background:#7e1930;border-color:#641024;color:#fff}.signal-unavailable{background:#ececf2;border-color:#d7d7e0;color:#59596a}.signal-cell::after{content:attr(aria-label);position:absolute;z-index:3;left:0;bottom:calc(100% + 7px);width:max-content;max-width:220px;padding:7px 9px;border-radius:8px;background:#2c2648;color:#fff;box-shadow:0 8px 18px rgba(29,23,60,.22);font-size:10px;line-height:1.35;opacity:0;pointer-events:none;transform:translateY(2px);transition:.15s}.signal-cell:hover::after,.signal-cell:focus-visible::after{opacity:1;transform:translateY(0)}
.hero h1,.app header h1,.welcome h2,.title-row h2{font-weight:800}.surface h3,.empty h3,.portfolio-empty h3{font-weight:700}.signal-cell b{font-family:var(--sans);font-weight:800;letter-spacing:.025em}.signal-cell span{font-weight:600}
@media(max-width:1000px){.app-main{width:calc(100% - 252px);margin-left:252px;padding-inline:28px}.sidebar{left:10px;top:10px;bottom:10px;width:222px;min-height:calc(100vh - 20px)}.watchlist-row{grid-template-columns:1.25fr .55fr .68fr minmax(230px,1.65fr);gap:10px}.row-actions{grid-column:1/-1;justify-content:flex-end}.table-head{grid-template-columns:1.25fr .55fr .68fr minmax(230px,1.65fr)}.table-head span:last-child{display:none}}
@media(max-width:800px){.sidebar{left:0;top:0;bottom:0;width:270px;min-height:100vh;border-radius:0}.app-main{width:100%;margin-left:0;padding-inline:22px}.welcome{border-radius:18px}.watchlist-row{grid-template-columns:1fr 1fr;gap:13px;padding:17px}.watchlist-row>div:first-child{grid-column:1/-1}.signal-bar{grid-column:1/-1}.row-actions{grid-column:1/-1}.signal-cell{flex:1 1 120px}.table{overflow:hidden}}
@media(max-width:520px){.app-main{padding-inline:15px}.welcome{padding:24px 19px}.title-row h2{font-size:36px}.toolbar{gap:9px}.filters{scrollbar-width:thin}.sort{width:100%;display:flex;align-items:center;justify-content:space-between}.sort select{flex:1;max-width:230px}.watchlist-row{display:grid;grid-template-columns:1fr 1fr;padding:15px}.signal-bar{gap:5px}.signal-cell{flex-basis:calc(50% - 3px);padding:7px}.signal-cell[aria-expanded="true"]{flex-basis:100%}.signal-cell::after{display:none}.signal-cell i{font-size:9px}.row-actions time{margin-right:auto}.landing{padding-inline:20px}.landing-grid{gap:0}.landing-grid article{padding-right:0}.surface{padding:21px;border-radius:15px}}
