:root{--bg:#0f1115;--card:#171a21;--card2:#1f2430;--line:#262b36;--fg:#e8eaf0;--muted:#8b93a3;--accent:#39b7a6;--up:#ff5a5f;--down:#4d8dff;--warn:#f5b942;--radius:16px;--safe-top:env(safe-area-inset-top,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans KR","Malgun Gothic",sans-serif;font-size:15px;-webkit-text-size-adjust:100%}
body{padding-bottom:calc(66px + env(safe-area-inset-bottom))}
button{font-family:inherit}
/* Include the status-bar inset in the measured header, so all sticky tabs follow it. */
.top{--top-pad-y:12px;--top-pad-x:16px;position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:calc(var(--top-pad-y) + var(--safe-top)) max(var(--top-pad-x),var(--safe-right)) var(--top-pad-y) max(var(--top-pad-x),var(--safe-left));background:rgba(15,17,21,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.brand{display:inline-flex;align-items:center;gap:8px;font-weight:800;letter-spacing:.3px;white-space:nowrap}.brand-icon{width:22px;height:22px;flex:none;color:var(--down)}
.top-actions{display:flex;align-items:center;gap:9px;min-width:0}.release-btn{background:none;border:1px solid var(--line);border-radius:8px;color:var(--accent);padding:5px 8px;font-size:11px;white-space:nowrap;cursor:pointer}
.release-notes h3{font-size:16px;margin:8px 0}.release-notes time{color:var(--muted);font-size:11px}.release-notes section+section{margin-top:24px;padding-top:14px;border-top:1px solid var(--line)}.release-notes ul{padding-left:20px;font-size:13px;color:var(--muted);line-height:1.65}.release-notes li{margin-bottom:10px}
.page-help{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:none;color:var(--muted);cursor:pointer}.page-help span{display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;border:1px solid currentColor;border-radius:50%;font-size:12px;font-weight:700}.page-help:hover,.page-help[aria-expanded="true"]{color:var(--accent)}.page-help:focus-visible,.page-guide button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.page-guide{margin-bottom:16px;padding:18px 18px 14px;border:1px solid #2b4c49;border-radius:var(--radius);background:linear-gradient(135deg,#152b29,var(--card) 80%);scroll-margin-top:calc(var(--toph,60px) + 12px)}.page-guide-label{font-size:11px;font-weight:600;color:var(--accent)}.page-guide h1{font-size:18px;line-height:1.4;letter-spacing:-.3px;margin:7px 0 14px}.page-guide ol{margin:0;padding-left:20px;display:grid;gap:10px}.page-guide li{padding-left:4px;font-size:13px;line-height:1.65;color:#c4ccd6;word-break:keep-all;overflow-wrap:anywhere}.page-guide li::marker{color:var(--accent);font-size:11px;font-weight:700}.page-guide-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}.page-guide-footer>span{font-size:11px;line-height:1.5;color:var(--muted)}.page-guide-footer .btn{flex:0 0 auto;min-height:36px;border:1px solid #37524f;background:#203c37;color:#d8f5ee;padding:7px 13px}
@media(max-width:420px){.top{--top-pad-y:11px;--top-pad-x:12px;gap:8px}.top-actions{gap:6px}.top-actions #topInfo{font-size:10px}.top .brand{font-size:14px}.release-btn{padding:5px 6px;font-size:10px}}
main{padding:12px 12px 0;max-width:720px;margin:0 auto}
.preparation-notice{margin-bottom:12px;padding:13px 14px;border:1px solid #2b4c49;border-radius:12px;background:#142522}.preparation-main{display:flex;align-items:flex-start;gap:10px}.preparation-copy{flex:1;min-width:0}.preparation-copy b{font-size:13px}.preparation-copy p{font-size:12px;line-height:1.6;color:var(--muted);margin:4px 0 0;overflow-wrap:anywhere}.preparation-copy .preparation-slow{font-size:11px;margin-top:7px}.preparation-icon{display:flex;align-items:center;justify-content:center;flex:0 0 17px;width:17px;height:17px;margin-top:2px;color:var(--accent);font-size:14px}.preparation-icon.spinning{border:2px solid #2b4c49;border-top-color:var(--accent);border-radius:50%;animation:preparation-spin 1s linear infinite}.preparation-steps{display:flex;gap:4px;margin:12px 0 0 27px}.preparation-steps span{flex:1;height:3px;border-radius:3px;background:#283d39}.preparation-steps .on{background:var(--accent)}.preparation-info,.preparation-close{border:0;background:none;color:var(--muted);cursor:pointer;flex:0 0 28px;width:28px;height:28px;padding:0;margin-top:-4px}.preparation-info{font:italic 13px Georgia,serif}.preparation-close{font-size:21px}.preparation-info:focus-visible,.preparation-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.preparation-detail{margin:10px 0 0 27px;font-size:12px;line-height:1.6;color:var(--muted);overflow-wrap:anywhere}.preparation-notice.attention{border-color:#5a4825;background:#272114}.preparation-notice.attention .preparation-icon{color:var(--warn)}
@keyframes preparation-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.preparation-icon.spinning{animation:none}}
.card{background:var(--card);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}
.card.open{background:#15262a;border:1px solid #1f4a46}
.card.click{cursor:pointer}
.card-title{font-weight:700;margin-bottom:8px}
.title{font-size:18px;font-weight:700}
.accent{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:12px}.b{font-weight:700}
.center{text-align:center}.pad{padding:18px 0}.pad-h{padding:0 4px 8px}.mt{margin-top:10px}.r{text-align:right}
.hidden{display:none!important}
.setup-mode{padding-bottom:0}.setup-mode .tabs{display:none}
.setup-mode main{max-width:490px;padding:32px 16px}
.setup-card{padding:24px;border:1px solid var(--line)}
.setup-card h1{font-size:23px;letter-spacing:-.5px;margin:22px 0 9px}
.setup-card p{font-size:14px;line-height:1.65;margin:8px 0 20px}
.setup-card .field{margin:18px 0;gap:8px}.setup-card .field>span{font-size:13px}
.setup-card input{min-height:46px}.setup-card .btnrow{margin-top:24px}
.setup-steps{display:flex;gap:5px;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px}
.setup-steps span{display:flex;gap:5px;align-items:center;white-space:nowrap}
.setup-steps b{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;background:var(--card2);border-radius:50%;font-size:11px}
.setup-steps .on{color:var(--accent)}.setup-steps .on b{background:#173e38}
.setup-note{font-size:12px;color:var(--muted);line-height:1.7;margin-top:14px}
.setup-note summary{cursor:pointer}.setup-note a{color:var(--accent)}
.meritz-apply details{margin:10px 0}.meritz-apply ol{padding-left:20px}.meritz-apply li{margin:10px 0}
.key-save-note{margin:12px 0 4px;padding:12px;border:1px solid var(--line);border-radius:10px;line-height:1.7}
.key-save-note b{color:var(--fg);font-size:12px}
.setup-api-heading{font-size:13px}.setup-api-heading .info{width:20px;height:20px;flex:0 0 20px;font-size:11px}
.telegram-api-help ol{padding-left:20px}.telegram-api-help li{margin-bottom:12px;line-height:1.65}
.telegram-api-help h4{margin:20px 0 8px}.telegram-api-help a{color:var(--accent)}
.setup-status{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:13px}
.setup-status b{font-weight:600}.setup-error{font-size:13px;line-height:1.55;color:var(--up);margin-top:12px}
.auth-link{background:none;border:0;color:var(--muted);font-size:12px;padding:15px 0 2px;cursor:pointer}
#recovery{z-index:25}#recoveryBody p{font-size:13px;line-height:1.65;color:var(--muted)}
.up{color:var(--up)}.down{color:var(--down)}.ok{color:var(--accent)}
.row{display:flex;align-items:center}.between{justify-content:space-between}.gap{gap:8px}
.big{font-size:30px;font-weight:800;margin:6px 0 10px;letter-spacing:-.5px}
.unit{font-size:14px;font-weight:500;color:var(--muted);margin-left:6px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:2px 16px}
.cell{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:7px 0;border-bottom:1px solid var(--line)}
.cell{min-width:0;overflow:hidden}.cell .muted{font-size:11px;white-space:nowrap;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.cell b{font-size:14.5px;text-align:right;white-space:nowrap;min-width:0;overflow:hidden;flex:0 0 auto;max-width:100%}
.hrow{display:flex;align-items:center;gap:6px;padding:10px 0;border-bottom:1px solid var(--line)}
.hrow.head{padding:4px 0;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line)}
.hrow>div{display:flex;flex-direction:column;min-width:0}
.hrow span,.hrow b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hrow.click{cursor:pointer}.hrow.click:active{background:var(--card2)}
.c06{flex:.6}.c07{flex:.7}.c08{flex:.8}.c10{flex:1}.c11{flex:1.1}.c13{flex:1.3}.c14{flex:1.4}
.eye{background:transparent;border:1px solid var(--line);border-radius:999px;width:28px;height:28px;margin-left:6px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);cursor:pointer;flex:0 0 auto;padding:0}
.eye svg{width:14px;height:14px}
.eye.on{background:#2b3140;border-color:#2b3140;color:#9aa3b5}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;flex:0 0 auto}
.seg button{background:transparent;color:var(--muted);border:0;padding:6px 12px;font-size:13px;cursor:pointer}
.seg button.on{background:var(--card2);color:var(--fg);font-weight:700}
.btn{background:var(--card2);color:var(--fg);border:1px solid var(--line);border-radius:12px;padding:11px 12px;font-size:14px;font-weight:600;cursor:pointer;flex:1;white-space:nowrap}
.btn.primary{background:var(--accent);color:#06211e;border-color:transparent}
.btn.danger{color:var(--up);border-color:#4a2a2d}
.btn.sm{padding:6px 10px;font-size:12px;flex:0 0 auto}
.community-card p{margin:6px 0 16px}.community-link{display:flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none}.community-link span{font-size:17px}
.community-card>.community-link{width:100%}
.community-board-row{width:100%;background:none;color:inherit;text-align:left;border:0;cursor:pointer;font:inherit;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}.community-board-row:last-child{border:0;padding-bottom:0}.community-board-row b{font-weight:600}.community-board-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.community-board-row>span:last-child{font-size:23px;color:var(--muted)}.community-board-row small{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.community-post-card{cursor:pointer}.community-post-open{display:block;width:100%;border:0;padding:0;background:none;color:inherit;text-align:left;font:inherit;cursor:pointer}.community-post-open:focus-visible,.community-image:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.community-images{display:flex;gap:8px;margin-top:12px;min-width:0;max-width:100%}.community-image{display:block;flex:none;min-width:0;border:0;padding:0;border-radius:10px;background:var(--card2);color:inherit;overflow:hidden;cursor:zoom-in}.community-images img{display:block;width:100%;height:auto;max-width:100%}.community-images-single .community-image{width:100%}.community-images-multiple{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin;padding-bottom:4px}.community-images-multiple .community-image{flex:0 0 clamp(9rem,30%,14rem);aspect-ratio:1;scroll-snap-align:start}.community-images-multiple img{height:100%;object-fit:cover;object-position:top}.community-image-dialog{position:fixed;inset:max(.5rem,env(safe-area-inset-top,0px)) .5rem max(.5rem,env(safe-area-inset-bottom,0px));width:auto;max-width:none;height:auto;max-height:none;margin:0;border:1px solid var(--line);border-radius:16px;padding:0;background:#101217;color:var(--fg)}.community-image-dialog[open]{display:flex;flex-direction:column}.community-image-dialog::backdrop{background:#000c}.community-image-position{flex:1;color:var(--muted);font-size:12px}.community-image-stage{display:flex;align-items:center;justify-content:center;flex:1;min-height:0;overflow:auto;padding:8px}.community-image-stage img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.community-image-navigation{display:flex;justify-content:space-between;padding:8px 12px}.community-image-navigation[hidden]{display:none}
.community-dialog{position:fixed;inset:0;width:min(680px,calc(100% - 2rem));max-width:none;height:auto;max-height:none;margin:max(1rem,env(safe-area-inset-top,0px)) auto max(1rem,env(safe-area-inset-bottom,0px));padding:0;border:1px solid var(--line);border-radius:18px;background:var(--card);color:var(--fg);box-shadow:0 18px 70px #0008}
.community-dialog[open]{display:flex;flex-direction:column}.community-dialog::backdrop{background:#000a}
.community-reader-header{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);flex:none}.community-reader-title{font-size:16px;line-height:1.5;margin:0;flex:1}
.community-icon{display:flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;padding:0;border:0;border-radius:9px;background:none;color:var(--fg);font:inherit;font-size:23px;cursor:pointer}.community-icon[hidden]{display:none}.community-icon:disabled{opacity:.4}
.community-icon:focus-visible,.community-post-button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.community-reader-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 16px}.community-reader-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:1;background:var(--card);padding:10px 0;border-bottom:1px solid var(--line)}
.community-post{display:block;padding:16px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.65}.community-post-button{width:100%;color:inherit;background:none;text-align:left;border-top:0;border-left:0;border-right:0;cursor:pointer;font:inherit}.community-author{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px;line-height:1.5;margin-bottom:8px}.community-author b{font-size:12px;font-weight:600;overflow-wrap:anywhere;min-width:0}.community-author time{font-size:10px;flex:none}.community-post h3{margin:6px 0;font-size:15px;line-height:1.5;overflow-wrap:anywhere}.community-post-text{white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;font-size:14px;line-height:1.65}.community-excerpt{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.community-post-meta{display:flex;flex-wrap:wrap;gap:12px;color:var(--muted);font-size:11px;margin-top:10px}.community-original{display:inline-block;margin-top:12px;font-size:11px;color:var(--accent);text-decoration:none}.community-replies-heading{font-size:13px;margin:18px 0 0}.community-reply .community-post-text{font-size:13px}.community-reader-source{padding:10px 16px;border-top:1px solid var(--line);color:var(--muted);font-size:10px;flex:none}.community-reader-loading{padding:24px 0;text-align:center;color:var(--muted);font-size:12px}.community-reader-error{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:12px;margin:12px 0;border-radius:10px;background:#2a230f;color:var(--warn);font-size:12px;line-height:1.6}.community-more{display:block;width:100%;margin:14px 0}
@media(max-width:520px){.community-dialog{width:calc(100% - 1rem);margin-top:max(.5rem,env(safe-area-inset-top,0px));margin-bottom:max(.5rem,env(safe-area-inset-bottom,0px));border-radius:16px}.community-reader-content{padding:0 12px}.community-reader-source{padding:10px 12px}}
.community-pull-hint{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px 0 0;color:var(--muted);font-size:11px;min-height:42px}.community-pull-hint>span:first-child{display:inline-block;transition:transform .15s;font-size:16px}.community-pull-hint[data-state=ready]{color:var(--accent)}.community-pull-hint[data-state=ready]>span:first-child{transform:rotate(180deg)}.community-pulling{user-select:none;-webkit-user-select:none}.community-end{padding:20px 0;color:var(--muted);text-align:center;font-size:11px}
.btn:disabled{opacity:.5}
.btnrow{display:flex;gap:8px;margin-top:8px}
#cfgBtns[hidden]{display:none}
.push-device-status.push-on{color:var(--accent)}
.warn{background:#2a230f;color:var(--warn);border-radius:10px;padding:8px 10px;font-size:13px;margin-top:10px;line-height:1.5}
.pre{white-space:pre-wrap;word-break:break-all;font-family:ui-monospace,Consolas,monospace;font-size:13px;line-height:1.45;margin:0;max-height:55vh;overflow:auto}
.pre.small{font-size:11.5px}
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{color:var(--muted);font-weight:500;font-size:11px;text-align:left;padding:6px 4px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:7px 4px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl.kv td{padding:8px 4px}
.sub{margin-top:12px}
.tabs{position:fixed;bottom:0;left:0;right:0;display:flex;flex-wrap:nowrap;background:rgba(23,26,33,.97);border-top:1px solid var(--line);padding:0 var(--safe-right) env(safe-area-inset-bottom,0px) var(--safe-left);z-index:5}
.tabs button{flex:1 0 auto;min-width:max-content;min-height:52px;background:transparent;border:0;color:var(--muted);padding:13px 14px 11px;font-size:12px;line-height:1.25;white-space:nowrap;cursor:pointer}
.tabs button.on{color:var(--accent);font-weight:700}
.indicator-heading{display:flex;align-items:baseline;justify-content:space-between;padding:4px 3px 12px}.indicator-heading h1{font-size:18px;margin:0}
.market-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:14px}.market-overview>div{min-width:0}.market-nasdaq{border-left:1px solid var(--line);padding-left:12px}.market-overview .indicator-card-head{gap:5px;align-items:flex-start}.market-overview .indicator-card-head h2{font-size:12px;line-height:1.5}.market-overview .indicator-card-head h2 span{display:block;margin:0;font-size:9px}.market-overview .sentiment-body{gap:8px;min-height:76px;margin-top:8px}.market-overview .sentiment-ring{width:60px}.market-overview .sentiment-ring b{font-size:24px}.market-overview .sentiment-summary{gap:4px}.market-overview .sentiment-summary strong{font-size:12px}.market-overview .indicator-change{font-size:10px}.market-overview .sentiment-range{display:none}.market-overview .indicator-source{font-size:9px;line-height:1.5;margin-top:8px;padding-top:8px;border:0}.market-overview .quote-reading{margin-top:16px;gap:3px}.market-overview .quote-reading b{font-size:25px}.market-overview .quote-reading>span{font-size:11px}.market-overview .quote-change{font-size:11px}.market-overview .quote-source{font-size:9px;margin-top:12px}@media(max-width:360px){.market-overview{padding:12px;gap:10px}.market-nasdaq{padding-left:10px}.market-overview .sentiment-body{flex-direction:column;align-items:flex-start;gap:6px}.market-overview .sentiment-ring{width:54px}.market-overview .quote-reading b{font-size:21px}}
.indicator-card{padding:14px}.indicator-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.indicator-card-head h2{font-size:15px;margin:0}.indicator-card-head h2 span{font-size:10px;font-weight:500;color:var(--muted);margin-left:6px}.info.indicator-info{width:20px;height:20px;font-size:11px;flex:0 0 20px}
.quote-body{display:flex;align-items:center;justify-content:space-between;gap:8px}.quote-numbers{min-width:0}.quote-trend{flex:0 1 34%;min-width:44px;max-width:140px;margin:6px 0 0;color:var(--muted)}.quote-trend svg{display:block;width:100%;height:auto;overflow:visible}.quote-trend polyline{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.quote-trend circle{fill:currentColor}.quote-trend-base{fill:none;stroke:var(--muted);stroke-opacity:.25;stroke-width:1;stroke-dasharray:3 4}.quote-trend-pending{font-size:9px;white-space:nowrap}.market-nasdaq .quote-reading b{font-size:clamp(17px,2.3vw,25px)}@media(max-width:400px){.quote-body{gap:5px}.quote-body .quote-reading b{font-size:20px}.market-nasdaq .quote-reading b{font-size:17px}.quote-reading>span{font-size:11px}}
.indicator-change{display:block;font-size:11px;min-height:17px}.indicator-source{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;font-size:10px;color:var(--muted);border-top:1px solid var(--line);padding-top:8px;margin-top:10px}.indicator-stale{color:var(--warn)}
.sentiment-body{display:flex;align-items:center;gap:16px;margin-top:8px}.sentiment-ring{position:relative;width:96px;aspect-ratio:1;flex:none}.sentiment-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.sentiment-ring circle{fill:none;stroke-width:10}.ring-track{stroke:var(--line)}.ring-value{stroke:var(--sentiment);stroke-linecap:round}.sentiment-ring>div{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.sentiment-ring b{font-size:32px;font-variant-numeric:tabular-nums;line-height:1}.sentiment-summary{display:flex;flex-direction:column;gap:7px;min-width:0}.sentiment-summary strong{font-size:16px;line-height:1.4}.sentiment-range{font-size:10px;color:var(--muted)}.indicator-help a{color:var(--accent)}
.indicator-group-title{font-size:13px;margin:18px 3px 10px}.quote-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quote-card{margin:0;padding:12px;min-width:0}.quote-card .indicator-card-head{gap:6px}.quote-card .indicator-card-head h2{font-size:13px;line-height:1.5}.quote-card .indicator-card-head h2 span{font-size:10px;margin-left:5px}.quote-rate{grid-column:1/-1}.quote-reading{display:flex;align-items:baseline;gap:4px;margin:8px 0 5px;white-space:nowrap}.quote-reading b{font-size:25px;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.quote-reading>span{font-size:15px;color:var(--muted)}.quote-rate .quote-reading b{font-size:28px}.quote-change{font-size:11px;line-height:1.5;min-height:17px}.quote-change>span{display:block}.quote-source{margin-top:8px;font-size:10px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}@media(max-width:360px){.quote-reading b{font-size:22px}.quote-card{padding:10px}.quote-card .indicator-card-head h2 span{display:block;margin:0}.sentiment-body{gap:12px}}
.switch{position:relative;display:inline-block;width:46px;height:26px;flex:0 0 auto}
.switch input{opacity:0;width:0;height:0}
.switch span{position:absolute;inset:0;background:#3a4150;border-radius:999px;transition:.2s;cursor:pointer}
.switch span:before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}
.switch input:checked+span{background:var(--accent)}
.switch input:checked+span:before{transform:translateX(20px)}
.field{display:flex;flex-direction:column;gap:4px;margin:8px 0}
.field>span{font-size:12px;color:var(--muted)}
.passkey-login{width:100%}#passkeyLoginHint:empty{display:none}#passkeyLoginHint:not(:empty){margin-bottom:14px;text-align:center}
.passkey-list:empty{display:none}.passkey-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.passkey-item .small{margin-top:4px}
.field input[type=text],.field input[type=number],.field input[type=password],.field input[type=tel]{background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:15px;width:100%}
.field.row{flex-direction:row;align-items:center;justify-content:space-between}
.field.row>span{font-size:14px;color:var(--fg)}
.kv2{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:14px;margin-bottom:6px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:20;padding:16px}
.modal-box{background:var(--card);border-radius:18px;padding:18px;width:100%;max-width:440px;max-height:85vh;display:flex;flex-direction:column}
.modal-title{font-weight:700;font-size:17px;margin-bottom:10px}
.modal-body{overflow:auto;flex:1}
.modal-actions{display:flex;gap:8px;margin-top:14px}
.toast{position:fixed;left:50%;bottom:86px;transform:translateX(-50%);background:#2b3140;color:#fff;padding:10px 16px;border-radius:999px;font-size:13px;z-index:30;max-width:90vw;box-shadow:0 4px 16px rgba(0,0,0,.4)}
.bar{position:relative;height:8px;background:linear-gradient(90deg,var(--accent),#3a4150 50%,var(--up));border-radius:999px;margin:8px 0}
.bar .mid{position:absolute;left:50%;top:-4px;width:2px;height:16px;background:#fff8}
.bar .dot{position:absolute;top:-5px;width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid var(--bg);transform:translateX(-50%)}
.loading{color:var(--muted);text-align:center;padding:30px 0}
.trio{display:grid;grid-template-columns:1fr 1fr 1fr;text-align:center;margin:8px 0 2px}.trio>div{border-left:1px solid var(--line)}.trio>div:first-child{border-left:0}.trio .muted{font-size:12px}.trio b{display:block;font-size:22px;margin-top:4px;letter-spacing:-.3px}
.gauge{padding:14px 0 10px;border-bottom:1px solid var(--line)}.gauge:last-of-type{border-bottom:0}
.gauge-label{font-weight:700;font-size:15px;margin-bottom:6px}
.gauge-row{display:flex;align-items:center;gap:14px}.gauge-body{flex:1;min-width:0;padding-top:26px}
.badge{width:44px;height:44px;flex:0 0 44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:18px}
.badge.o{border:5px solid #7ac943;color:transparent}.badge.x{color:var(--up);font-size:40px;font-weight:400}
.gauge-bar{position:relative;height:8px;background:#2a3140;border-radius:999px;margin:0 10px}
.gauge-mid{position:absolute;left:50%;top:-4px;width:16px;height:16px;border-radius:50%;background:#6b7280;transform:translateX(-50%)}
.gauge-cur{position:absolute;top:-4px;width:16px;height:16px;border-radius:50%;background:#7ac943;transform:translateX(-50%);z-index:1}.gauge-cur.down{background:var(--up)}
.gauge-val{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);font-weight:700;font-size:16px;white-space:nowrap;color:#7ac943}.gauge-cur.down .gauge-val{color:var(--up)}
.gauge-ticks{display:grid;grid-template-columns:1fr 1fr 1fr;font-size:12.5px;color:var(--muted);margin-top:10px;line-height:1.35}.gauge-ticks span:nth-child(2){text-align:center}.gauge-ticks i{font-style:normal;font-size:11px}
.sel{background:var(--card2);color:var(--fg);border:1px solid var(--line);border-radius:10px;padding:6px 28px 6px 10px;font-size:13px;font-weight:600;appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 14px) 55%,calc(100% - 9px) 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;max-width:60vw}
details summary{cursor:pointer;margin-top:8px}
p{margin:0 0 8px}

.chartwrap{position:relative;margin-top:8px}.fxchart{width:100%;height:auto;display:block}#fxWrap{touch-action:pan-y;cursor:grab;user-select:none}#fxWrap:active{cursor:grabbing}.fxchart .ax{fill:var(--muted);font-size:11px}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted)}.legend i,.tip i{display:inline-block;width:10px;height:3px;border-radius:2px;margin-right:5px;vertical-align:middle}
.tip{position:absolute;top:4px;background:#232937;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:12px;line-height:1.5;pointer-events:none;white-space:nowrap;z-index:2}

.big{white-space:nowrap;overflow:hidden}.trio>div{min-width:0}.trio b{white-space:nowrap;overflow:hidden}.card-title{white-space:nowrap;overflow:hidden}
#fxRange{display:flex;width:100%}#fxRange button{flex:1}
#fxPeriod{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}

.lot{background:var(--card2);border-radius:12px;padding:10px 12px;margin-top:10px}.lot.manual{border:1px dashed #3a4150}
.lot-nums{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin:6px 0 2px}.lot-nums .muted{display:block}.lot-nums b{font-size:17px}
.lotbar{position:relative;height:14px;margin:8px 2px 4px}
.lot-track{position:absolute;top:5px;height:4px;background:#3a4150;border-radius:2px}
.lot-move{position:absolute;top:4px;height:6px;border-radius:3px;opacity:.85}.upbg{background:var(--up)}.downbg{background:var(--down)}
.lot-tick{position:absolute;top:1px;width:2px;height:12px;background:var(--muted);transform:translateX(-1px)}.lot-tick.tgt{background:var(--accent)}
.lot-now{position:absolute;top:0;width:14px;height:14px;border-radius:50%;background:var(--fg);border:2px solid var(--card2);transform:translateX(-7px)}
.mini{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted)}
.lot-foot{font-size:12.5px;line-height:1.5;min-width:0}.lot-foot>div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.flag{flex:0 0 auto;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;background:#2b3140;color:var(--muted);white-space:nowrap}.flag.on{background:#173b36;color:var(--accent)}
.lotspark{width:100%;height:auto;display:block;margin:6px 0 2px}.lotspark line{stroke-width:1.5;stroke-dasharray:4 3}
.lotspark .sp-buy{stroke:var(--muted);fill:var(--muted)}.lotspark .sp-tgt{stroke:var(--accent);fill:var(--accent)}.lotspark .sp-l{font-size:15px;fill:var(--muted);stroke:none}

.subtabs{display:flex;gap:6px;overflow-x:auto;padding:2px 2px 10px;scrollbar-width:none}.subtabs::-webkit-scrollbar{display:none}
.subtabs button{flex:0 0 auto;background:var(--card);color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:13px;cursor:pointer;white-space:nowrap}
.subtabs button.on{background:var(--card2);color:var(--fg);font-weight:700;border-color:#3a4150}
.flag.est{background:#3a2f12;color:var(--warn)}

.gridchart .g-line{stroke:var(--line);stroke-width:1}.gridchart .g-band{fill:#d95926;opacity:.14}
.gridchart .g-chip{fill:#d95926}.gridchart .g-empty{fill:none;stroke:var(--line)}.gridchart .g-chip-t{fill:#fff;font-size:10px;font-weight:700}
.gridchart .g-ref{stroke:var(--muted);stroke-width:1;stroke-dasharray:2 3;fill:var(--muted)}.gridchart .g-mid{stroke:#c98500;stroke-width:1.5;stroke-dasharray:6 4;fill:#c98500}
.gridchart .g-l{font-size:12px;stroke:none}.gridchart .g-next{stroke:var(--fg);stroke-width:1.5;stroke-dasharray:6 4}.gridchart .g-now{fill:#3987e5;font-size:13px;font-weight:700}
.legend i.sq{width:10px;height:10px;background:#d95926;border-radius:2px}.legend i.dash{width:14px;height:0;border-top:2px dashed var(--fg);background:none}
.gsum{display:flex;justify-content:space-between;gap:10px;font-size:13px;flex-wrap:wrap}.gsum b{font-weight:700}

#gWrap{margin-top:14px}.gridchart .g-nextchip{fill:var(--accent)}.gridchart .g-next-t{fill:#06211e;font-size:10px;font-weight:800}
.gridchart .g-cross{stroke:var(--muted);stroke-width:1}.legend i.sq2{width:10px;height:10px;border-radius:2px;background:var(--accent)}
@keyframes gblink{0%,100%{opacity:1}50%{opacity:.2}}.g-blink{animation:gblink 1.1s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.g-blink{animation:none}}
.info{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--muted);background:none;color:var(--muted);font-weight:700;font-style:italic;font-family:Georgia,serif;font-size:13px;line-height:1;cursor:pointer;padding:0}.ginfo p{margin:0 0 12px;line-height:1.55;font-size:14px}
.modal-box{max-height:88vh}.modal-body .tbl{font-size:12.5px}

.big2{font-size:22px}.pick{display:flex;flex-direction:column;gap:4px}
.pickrow{display:flex;align-items:center;gap:8px;background:var(--card2);border:1px solid var(--line);border-radius:8px;padding:6px 8px;color:var(--fg);font-size:12.5px;cursor:pointer;text-align:left}
.pickrow.on{border-color:var(--accent);background:#173b36}.pickrow:disabled{opacity:.35;cursor:not-allowed}
.pk-l{flex:0 0 112px;white-space:nowrap}.pk-bar{flex:1;height:8px;background:#2a3140;border-radius:4px;overflow:hidden}.pk-bar i{display:block;height:100%;background:#3987e5}.pickrow.on .pk-bar i{background:var(--accent)}
.pk-r{flex:0 0 64px;text-align:right;color:var(--muted);white-space:nowrap}.pickrow.on .pk-r{color:var(--accent);font-weight:700}
.modal-actions button:disabled{opacity:.4}

.sl-val{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:17px}
.sl-wrap{position:relative;padding:18px 0 6px}.sl-marks{position:absolute;left:10px;right:10px;top:6px;height:8px}
.sl-mk{position:absolute;width:8px;height:8px;border-radius:2px;transform:translateX(-4px)}.sl-mk.b{background:#d95926}.sl-mk.w{background:var(--warn)}
#bandSlider{width:100%;accent-color:var(--accent);height:28px}
.legend i.sq3{width:10px;height:10px;border-radius:2px;background:var(--warn)}

.money{display:grid;grid-template-columns:1fr 1fr;gap:8px}.money>div{background:var(--card2);border-radius:10px;padding:8px 10px;min-width:0}.money b{display:block;font-size:17px;margin:2px 0;white-space:nowrap}
.strip{position:relative;margin:40px 0 30px;height:26px;touch-action:none;cursor:pointer}
.strip .segs{display:flex;gap:3px;height:26px}.strip .sc{flex:1 1 0;min-width:0;background:#2a3140;border-radius:3px}
.strip .sc.b{background:#d95926}.strip .sc.w{background:var(--warn)}.strip .sc.now{outline:2px solid #3987e5;outline-offset:1px}.strip .sc.pk{background:var(--accent)}
.strip .thumb{position:absolute;top:-30px;transform:translateX(-50%);background:var(--accent);color:#06211e;font-weight:800;font-size:13px;padding:3px 9px;border-radius:999px;white-space:nowrap;pointer-events:none}
.strip .thumb:after{content:"";position:absolute;left:50%;bottom:-5px;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--accent);border-bottom:0}
.strip .tick{position:absolute;top:31px;transform:translateX(-50%);font-size:10.5px;color:var(--muted);white-space:nowrap;pointer-events:none}.strip .tick.now{color:#3987e5;font-weight:700}
.sel2{background:#173b36;border:1px solid var(--accent);border-radius:10px;padding:8px 10px;display:flex;justify-content:space-between;align-items:center;gap:8px}.sel2 b{font-size:18px}
.legend i.nowbox{width:10px;height:10px;border:2px solid #3987e5;border-radius:2px;background:none}
.strip,.strip *{user-select:none;-webkit-user-select:none}.strip .tick.l{transform:none}.strip .tick.rr{transform:translateX(-100%)}

#modal.wide .modal-box{max-width:760px;width:100%;padding:24px 28px;max-height:94vh}#modal.wide .modal-body{overflow-x:hidden;padding:0 2px}#modal.wide .modal-title{font-size:19px;margin-bottom:14px}
#modal.wide .strip{height:44px;margin:46px 0 34px}#modal.wide .strip .segs{height:44px;gap:2px}
#modal.wide .strip .thumb{top:-34px;font-size:14px}#modal.wide .strip .tick{top:50px;font-size:11px}
.lot.resv{border:1px solid #4a3f1c}.flag.rsv{background:#3a2f12;color:var(--warn)}
.segtabs{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--card);margin-bottom:10px}
.segtabs button{flex:1;background:none;border:0;border-left:1px solid var(--line);color:var(--muted);padding:9px 4px;font-size:13px;cursor:pointer;white-space:nowrap}
.segtabs button:first-child{border-left:0}.segtabs button.on{background:var(--card2);color:var(--fg);font-weight:700;box-shadow:inset 0 -2px 0 var(--accent)}
.modal.over{z-index:1000}
.sel2 b{white-space:nowrap}
.strip .thumb{transform:translateX(var(--tx,-50%))}.strip .thumb:after{left:var(--ax,50%)}
#modal.wide{padding:24px}
*{scrollbar-width:thin;scrollbar-color:#3a4150 transparent}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#3a4150;border-radius:8px;border:2px solid var(--card)}::-webkit-scrollbar-thumb:hover{background:#4c5466}
::-webkit-scrollbar-button{display:none;height:0;width:0}::-webkit-scrollbar-corner{background:transparent}
.modal-body{scrollbar-gutter:stable;padding-right:6px;margin-right:-10px}
.tbl th.r{text-align:right}.modal-body .tbl thead th{position:sticky;top:0;background:var(--card);z-index:1}
::-webkit-scrollbar-thumb{background:#4a5263}*{scrollbar-color:#4a5263 transparent}
.modal-body .tbl thead th{box-shadow:0 1px 0 var(--line);padding-bottom:6px}
.segtabs{overflow-x:auto;scrollbar-width:none}.segtabs::-webkit-scrollbar{display:none}.segtabs button{flex:1 0 auto;padding:9px 12px}
.segtabs.stick{position:sticky;top:var(--toph,47px);z-index:4;box-shadow:0 6px 10px -4px rgba(0,0,0,.6)}
.segtabs button{padding:9px 7px;font-size:12.5px}
.segtabs.stick{box-shadow:0 -10px 0 var(--bg),0 6px 10px -4px rgba(0,0,0,.6)}
.g-chip-t{fill:#fff;font-size:10px;font-weight:700;pointer-events:none}
.segtabs button.on{font-weight:inherit;text-shadow:.35px 0 0 currentColor,-.35px 0 0 currentColor}
.g-chip.est{opacity:.4}
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0 4px}.pgrid>div{min-width:0}.pgrid b{display:block;font-size:16px;white-space:nowrap}
.lot.pmain{border:1px solid var(--accent)}
.pcompare{font-size:12px}.pcompare th.r,.pcompare td.r{text-align:right;white-space:nowrap}.pcompare tr[data-live-book]{cursor:pointer}.pcompare tr.pselected td{background:#15262a}
.allocation{display:flex;align-items:center;gap:16px}.allocation svg{width:145px;min-width:100px;flex:0 1 145px}.donut-label{fill:var(--fg);font-size:10px;font-weight:700}.donut-count{fill:var(--muted);font-size:8px}.allocation-legend{flex:1;min-width:0}.allocation-item{display:flex;align-items:center;gap:7px;padding:7px 0;font-size:12px}.allocation-item>span:not(.dot){flex:1}.allocation-item small{display:block;margin-top:3px;font-size:10px}.dot{width:9px;height:9px;border-radius:50%;flex:0 0 9px}.account-asset{padding:12px 0;border-bottom:1px solid var(--line)}.account-asset .between{gap:8px}.account-asset .between span{white-space:nowrap;font-size:13px}.asset-bar{height:7px;border-radius:4px;background:var(--card2);margin:9px 0 5px;overflow:hidden}.asset-bar i{height:100%;display:block;border-radius:4px}
.ptbl{font-size:12px}.ptbl th,.ptbl td{white-space:nowrap;padding-left:3px;padding-right:3px}
.pcond{display:flex;align-items:center;gap:8px}.pcond select{flex:1;min-width:0;background:var(--card2);color:var(--fg);border:1px solid var(--line);border-radius:8px;padding:9px 10px;font-size:13.5px}
.ptbl tr.pnew td{background:#2a2412}.ptbl sup{font-size:9px;margin-left:2px}
.field select{width:100%;box-sizing:border-box;background:var(--card2);color:var(--fg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px}

/* FX mobile panels: keep headings, controls and content inside the viewport. */
#view[data-tab="fx"]{overflow-anchor:none}
#view[data-tab="fx"] .card>.row.between{flex-wrap:wrap;gap:8px}
#view[data-tab="fx"] .card-title{white-space:normal;min-width:0;overflow:visible;word-break:keep-all}
#fxTabs{display:flex;width:100%;isolation:isolate;overflow-x:auto}
#fxTabs button{flex:1 0 56px}
#fxTabs button{min-width:0;padding:11px 2px;font-size:12px}
.fx-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.fx-actions .btn{flex:0 1 auto;min-height:44px}
.fx-heading>.row{flex-wrap:wrap;gap:8px}
.gridchart .g-reserved{fill:var(--warn)}
.gridchart .g-reserved+.g-chip-t{fill:#29200a}
@media(max-width:480px){
  #view[data-tab="fx"] .grid2{grid-template-columns:minmax(0,1fr)}
  #view[data-tab="fx"] .trio b{font-size:19px}
  #view[data-tab="fx"] .trio .muted{font-size:11px}
  #view[data-tab="fx"] .gauge-row{gap:8px}
  #view[data-tab="fx"] .gauge-ticks{font-size:11px}
  #view[data-tab="fx"] .gauge-val{font-size:15px}
  #modal.wide{padding:12px}
  #modal.wide .modal-box{padding:16px;max-height:calc(100dvh - 24px)}
  #modal.wide .modal-body{margin-right:0;padding-right:0;scrollbar-gutter:auto}
  #modal.wide .money b{font-size:15px}
  #modal.wide .row.between{flex-wrap:wrap;gap:8px}
  #modal.wide .strip .tick{font-size:10px}
  #modal.wide .strip .tick:not(.now):nth-last-child(even){display:none}
  #modal.wide .sel2{flex-wrap:wrap}
  #modal.wide .sel2 .r{text-align:left}
}

/* Purchase/current/target bars stay readable on a phone. */
.lot-labels{display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:4px;margin-bottom:8px;font-size:11px}
.lot-labels>span:nth-child(2){text-align:center}.lot-labels>span:last-child{text-align:right}
.table-scroll{overflow-x:auto;max-width:100%}.compare-table td,.compare-table th{padding:10px 5px}
@media(max-width:400px){.compare-table{font-size:11px}#fxTabs button{font-size:11px}}

.target-table{font-size:12px}.target-table td:first-child{white-space:normal;min-width:54px}
@media(max-width:480px){.target-table{font-size:10px}.target-table td,.target-table th{padding:9px 3px}}

.privacy-auto-head{gap:16px}.privacy-auto-head>div{min-width:0}.privacy-auto-head .switch{flex:none}
/* Privacy automation: schedule/status first; manual controls live in a dialog. */
.privacy-auto-card{padding:20px;line-height:1.6}
.privacy-auto-card .title{margin-top:3px;font-size:20px}
.privacy-schedule{margin-top:8px;color:var(--muted);font-size:13px;word-break:keep-all}
.privacy-auto-body{display:flex;flex-direction:column;gap:20px;margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}
.privacy-auto-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.privacy-detail-btn{display:inline-flex;align-items:center;gap:5px;min-height:40px;padding:6px 0;border:0;background:transparent;color:var(--muted);font-size:12px;cursor:pointer}
.privacy-detail-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}
.privacy-detail-btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.privacy-status-strip{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:10px;margin-top:18px}
.privacy-status{display:flex;align-items:center;gap:9px;min-width:0;min-height:74px;padding:12px 10px;border:1px solid var(--line);border-radius:12px;background:var(--card2);color:var(--fg);text-align:left;cursor:pointer;font:inherit}
.privacy-status-icon{display:flex;align-items:center;justify-content:center;width:28px;height:32px;flex:0 0 28px;color:var(--muted)}
.privacy-status-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.privacy-status-text{min-width:0;flex:1}.privacy-status-text>span{display:block;font-size:11px;line-height:1.5;color:var(--muted);word-break:keep-all}
.privacy-status-text strong{display:block;margin-top:4px;font-size:14px;line-height:1.5;word-break:keep-all}
.privacy-status-text .privacy-reservation-counts{display:flex;flex-wrap:wrap;column-gap:8px;row-gap:2px;font-size:13px}.privacy-reservation-counts>span{white-space:nowrap}
.privacy-status.good .privacy-status-icon,.privacy-status.good strong{color:var(--accent)}
.privacy-status.attention .privacy-status-icon,.privacy-status.attention strong{color:var(--warn)}
.privacy-status-help{flex:none;color:var(--muted);font-family:Georgia,serif;font-style:italic;font-size:12px;opacity:.65}
.privacy-status:active{border-color:var(--muted)}.privacy-detail-btn:focus-visible,.privacy-status:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.privacy-status-explanation{font-size:14px;line-height:1.75;word-break:keep-all}.privacy-status-explanation>strong{display:block;font-size:18px;margin:4px 0 14px}.privacy-status-explanation>p{margin:0 0 16px}
.privacy-label{display:block;color:var(--muted);font-size:12px;line-height:1.5;margin-bottom:6px}
.privacy-today strong{display:block;font-size:16px;line-height:1.55;word-break:keep-all}
.privacy-caption{display:block;margin-top:7px;color:var(--muted);font-size:12px;line-height:1.65}
.privacy-rule-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}
.privacy-rule-pair>div{min-width:0}.privacy-rule-pair strong{display:block;font-size:15px;line-height:1.6;word-break:keep-all}
.privacy-cash-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--line);border-radius:12px}
.privacy-cash-row>div{min-width:0}.privacy-cash-row strong{display:block;font-size:15px;word-break:keep-all}
.privacy-auto-card .info{width:32px;height:32px;flex:0 0 32px;font-size:16px}
.privacy-query-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.privacy-auto-card .btn{min-height:44px;white-space:normal;line-height:1.5}
.privacy-manual-footer{display:flex;flex-wrap:wrap;gap:12px;padding-top:16px;border-top:1px solid var(--line)}
.privacy-manual-footer .btn{font-weight:500;color:var(--muted)}
.privacy-cash-alert{margin-top:20px;padding:16px;background:#2a230f;border:1px solid #55431d;border-radius:12px;color:var(--warn)}
.privacy-cash-alert strong{display:block;font-size:16px;line-height:1.6}.privacy-cash-alert p{margin:8px 0 14px;font-size:13px;line-height:1.7;word-break:keep-all}
.privacy-manual{font-size:14px;line-height:1.7}.privacy-manual p{margin:0 0 18px;word-break:keep-all}
.privacy-manual-facts{margin:0 0 22px}.privacy-manual-facts>div{padding:13px 0;border-bottom:1px solid var(--line)}
.privacy-manual-facts dt{font-size:12px;color:var(--muted);margin-bottom:5px}.privacy-manual-facts dd{margin:0;font-weight:600;word-break:keep-all}
.privacy-manual-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.privacy-manual-actions .btn{white-space:normal;line-height:1.5;min-height:44px}
.privacy-funding-grid{gap:14px 20px;margin-top:16px}.privacy-funding-grid .cell{display:block;padding:0 0 12px;overflow:visible}
.privacy-funding-grid .cell .muted{display:block;white-space:normal;font-size:12px;line-height:1.5;margin-bottom:6px}.privacy-funding-grid .cell b{display:block;text-align:left;font-size:16px;white-space:normal}
#runExtra:empty{display:none}
.fx-rule-summary,.fx-night-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px}
.fx-rule-summary>div{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px;line-height:1.6;word-break:keep-all}
.fx-rule-summary .info,.fx-night-heading .info{width:32px;height:32px;flex:0 0 32px;font-size:16px}
.fx-night-heading{margin-top:0;margin-bottom:18px;line-height:1.65}.fx-night-heading>div{min-width:0}.fx-night-heading .card-title{margin-bottom:4px;font-size:15px}
.btn.is-blocked{background:var(--card2);color:var(--muted);cursor:help}
@media(max-width:480px){.privacy-auto-card{padding:18px 16px}.privacy-auto-head{align-items:flex-start}.privacy-auto-head .switch{margin-top:8px}.privacy-auto-body{gap:20px}.privacy-schedule{font-size:12.5px}.privacy-rule-pair{gap:16px}}

/* 환전 보유: 공통 환율은 한 번, 개별 가격·상태는 짧게 */
.fx-holdings-sticky{position:sticky;top:calc(var(--toph,47px) + var(--fxtabh,37px));z-index:3;background:var(--card);margin:-14px -16px 0;padding:14px 16px 6px;box-shadow:0 -1px 0 var(--card),0 6px 10px -8px #000}
.fx-holdings-sticky #lotFilter{margin-bottom:0}
.fx-holdings-head,.fx-holdings-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}
.fx-holdings-head>b{font-size:14px;min-width:0}
.fx-holdings-head .flag{font-size:10px;padding:3px 7px;white-space:nowrap}
.fx-holdings-meta{margin-top:9px;font-size:10.5px;color:var(--muted);flex-wrap:wrap;gap:5px 12px;font-variant-numeric:tabular-nums}
.fx-shared-quote{display:inline-flex;align-items:center;gap:5px}.fx-shared-quote b{font-size:12px;color:var(--fg)}
.fx-shared-quote i{width:6px;height:6px;background:var(--fg);border-radius:50%;flex:none}
.fpane .info{position:relative;width:20px;height:20px;flex:0 0 20px;font-size:11px;font-weight:500;border-color:#69718077;margin:0}
.fpane .info:after{content:"";position:absolute;inset:-8px;border-radius:50%}
.fx-lot-compact{padding:11px 12px;overflow:hidden;margin-top:8px}
.fx-lot-heading,.fx-lot-heading>div{display:flex;align-items:center;gap:7px;min-width:0}
.fx-lot-heading{justify-content:space-between;margin-bottom:10px;font-size:12px}
.fx-lot-heading .small{font-size:10px}.fx-lot-heading .info{flex:none}
.fx-lot-amount{font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}
.fx-unassigned-cash{margin:12px 0;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--card2)}.fx-unassigned-cash>b{font-size:14px}.fx-unassigned-cash p{margin:8px 0;font-size:12px;line-height:1.65;color:var(--muted)}
.fx-lot-basis{color:var(--warn);font-size:9px;border:1px solid #655129;border-radius:4px;padding:0 3px}
.fx-lot-rates{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0}
.fx-lot-rates>span:first-child,.fx-lot-rates>span:last-child{display:inline-flex;align-items:baseline;gap:4px;min-width:0}
.fx-lot-rates small{color:var(--muted);font-size:10px;white-space:nowrap}
.fx-lot-rates b{font-size:16px;font-variant-numeric:tabular-nums;white-space:nowrap}
.fx-lot-rates .fx-lot-shares{font-size:11px;color:var(--muted);text-align:right}
.fx-lot-scale{padding:0 4px;margin-top:13px}
.fx-lot-rail{position:relative;height:5px;background:#3a4150;border-radius:999px}
.fx-lot-path{position:absolute;top:0;height:5px;border-radius:999px}
.fx-lot-mark{position:absolute;top:-2px;height:9px;width:2px;background:var(--fg);transform:translateX(-1px)}
.fx-lot-mark.goal{background:var(--accent)}
.fx-lot-spot{position:absolute;top:50%;z-index:1}
.fx-lot-pointer{position:absolute;left:-14px;top:-14px;width:28px;height:28px;padding:0;border:0;background:none;cursor:pointer}
.fx-lot-pointer:before{content:"";position:absolute;left:9px;top:9px;width:10px;height:10px;border:1.5px solid var(--card2);border-radius:50%;background:var(--fg);box-sizing:border-box}
.fx-lot-pointer:focus-visible{outline:1px solid var(--accent);border-radius:50%}
.fx-lot-tooltip{position:absolute;left:0;top:11px;transform:translateX(-50%);white-space:nowrap;font-size:9px;line-height:1.2;font-variant-numeric:tabular-nums;background:var(--bg);color:var(--fg);padding:3px 5px;border-radius:4px;box-shadow:0 0 0 1px var(--line);pointer-events:none}
.fx-lot-tooltip:after{content:"";position:absolute;left:50%;top:-8px;width:1px;height:8px;background:var(--muted)}
.fx-lot-spot.start .fx-lot-tooltip{transform:translateX(-5px)}.fx-lot-spot.end .fx-lot-tooltip{transform:translateX(calc(-100% + 5px))}
.fx-lot-spot.start .fx-lot-tooltip:after{left:5px}.fx-lot-spot.end .fx-lot-tooltip:after{left:auto;right:5px}
.fx-lot-axis{display:flex;justify-content:space-between;align-items:center;gap:4px;font-size:9px;color:var(--muted);margin:7px -3px 0;font-variant-numeric:tabular-nums}
.fx-lot-scale.show-quote .fx-lot-axis{visibility:hidden}
.fx-lot-distance{font-size:9px}.fx-lot-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px;font-size:10px;color:var(--muted)}
.fx-lot-footer>div{display:flex;align-items:center;flex-wrap:wrap;gap:5px 9px;min-width:0;line-height:1.6}
.fx-lot-state{font-size:9px;padding:1px 5px;background:#ffffff06;border-radius:4px}
.fx-lot-footer .btn{font-size:10px;padding:4px 7px;border-radius:7px}
.fx-stock-group{font-size:10px;color:var(--muted);margin:14px 0 0}
@media(max-width:350px){.fx-holdings-card{padding:12px}.fx-holdings-sticky{margin:-12px -12px 0;padding:12px 12px 6px}.fx-holdings-head>b{font-size:12px}.fx-holdings-head .row{gap:5px}.fx-lot-compact{padding:10px}.fx-lot-heading>div{gap:5px}.fx-lot-amount{font-size:14px}.fx-lot-rates{gap:5px}.fx-lot-rates b{font-size:14px}.fx-lot-rates small{font-size:9px}}
.account-view-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;min-width:0}
.account-view-heading select{min-width:0;max-width:55%;background:var(--card2);color:var(--fg);border:1px solid var(--line);border-radius:9px;padding:8px;font:inherit}
.account-cash{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:10px 0 16px}
.account-cash>div{min-width:0}.account-cash small{display:block;color:var(--muted);font-size:11px;margin-bottom:7px}
.account-cash b{font-size:19px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.banking-chart{width:100%;display:block;margin-top:14px;overflow:visible}.banking-chart text{fill:var(--muted);font-size:14px}
.banking-legend{display:flex;gap:8px 16px;margin-top:14px;flex-wrap:wrap}
.banking-series-toggle{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:4px 0;border:0;background:none;color:var(--muted);font-size:11px;cursor:pointer}
.banking-series-toggle i{width:12px;height:12px;border:1.5px solid var(--series-color);border-radius:50%;position:relative;flex:none}
.banking-series-toggle.on{color:var(--fg)}.banking-series-toggle.on i{background:var(--series-color)}
.banking-series-toggle:not(.on) b{color:var(--muted)}
.banking-series-toggle:focus-visible{outline:1px solid var(--series-color);outline-offset:4px;border-radius:3px}
.banking-series-toggle span{text-align:left;white-space:nowrap}.banking-series-toggle b{display:block;font-size:12px;font-weight:600;margin-top:5px;color:var(--fg);font-variant-numeric:tabular-nums}
.banking-series-toggle em,.banking-estimate{font-style:normal;font-size:9px;font-weight:400;color:var(--muted)}
.banking-income-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%}.banking-income-legend .banking-series-toggle{align-items:flex-start;gap:6px;min-width:0}.banking-income-legend i{margin-top:1px}.banking-income-legend b{font-size:11px}
.banking-opening{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:0 0 12px;border:0;background:none;color:var(--muted);text-align:left;font-size:10px;cursor:pointer}.banking-opening span{white-space:nowrap}
.banking-chart-note{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px;margin-top:6px}
.banking-chart-note .info{width:18px;height:18px;flex:0 0 18px;font-size:10px;margin:0}
.banking-yield-info{width:18px;height:18px;flex:0 0 18px;font-size:10px;margin:0}
.banking-chart-empty{min-height:135px;display:flex;align-items:center;justify-content:center;font-size:12px;line-height:1.6}
.banking-updated{font-size:10px}.banking-summary .account-view-heading select{font-size:12px;max-width:48%;flex:1}
.banking-summary .account-cash b{white-space:nowrap}
.banking-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;background:none;color:var(--fg);border:0;border-bottom:1px solid var(--line);padding:13px 0;font-size:13px;text-align:left}.banking-entry[data-bank-entry]{cursor:pointer}.banking-entry>div,.banking-entry>span{min-width:0}.banking-entry small{display:block;font-size:10px;color:var(--muted);margin-top:5px;line-height:1.5}.banking-entry-amount{text-align:right;flex:none;white-space:nowrap}
.tabs{overflow:hidden}.tab-strip{display:flex;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.tab-strip::-webkit-scrollbar{display:none;width:0;height:0}
@media(hover:hover){.tab-strip.is-scrollable{cursor:grab;user-select:none}.tab-strip.is-scrollable button{cursor:inherit}.tab-strip.is-dragging,.tab-strip.is-dragging button{cursor:grabbing}}
@media(max-width:360px){.account-cash b{font-size:16px}.account-view-heading{gap:6px}}
@media(max-width:350px){.banking-summary .account-cash b{font-size:14px;letter-spacing:-.3px}}
.daytrade-nav{margin-bottom:12px}.daytrade-position{display:flex;flex-direction:column;gap:8px;margin:20px 0 16px}.daytrade-position>span{font-size:12px;color:var(--muted)}
@media(max-width:350px){.account-view-heading .row{gap:4px}.account-view-heading .seg button{padding:6px 8px}.account-view-heading>.row{flex-shrink:0}.account-view-heading>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* 잔고: 자산 요약만 접고, 종목의 핵심 수치는 항상 두 줄 표로 표시 */
.balance-account .account-view-heading{margin-bottom:12px}
.balance-summary-top{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.balance-summary-top>div>small{color:var(--muted);font-size:12px}
.balance-total{font-size:25px;font-weight:800;letter-spacing:-.5px;margin-top:7px;font-variant-numeric:tabular-nums;white-space:nowrap}
.balance-summary-tools{display:flex;align-items:center;gap:7px;margin-left:auto;flex-shrink:0}
.balance-summary-tools .seg button{padding:5px 8px;font-size:12px}
.balance-detail-toggle{background:none;color:var(--muted);border:0;font:inherit;font-size:12px;padding:8px 0 8px 4px;min-height:36px;cursor:pointer}
.balance-detail-toggle span{margin-left:3px}
.balance-metrics{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 16px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.balance-metrics>div{display:flex;flex-direction:column;gap:5px;min-width:0}
.balance-metrics small{font-size:11px;color:var(--muted)}
.balance-metrics b{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.balance-extra{margin-top:14px}
.balance-holdings{padding:14px 12px}
.balance-holdings-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 3px 14px}
.balance-holdings-title select{background:var(--card2);color:var(--fg);border:1px solid var(--line);border-radius:8px;padding:6px;font:inherit;font-size:12px}
.balance-table{width:100%;table-layout:fixed;border-collapse:collapse;font-variant-numeric:tabular-nums}
.balance-name-col{width:26%}.balance-qty-col{width:18%}.balance-price-col{width:27%}.balance-pl-col{width:29%}
.balance-table th{text-align:left;font-size:10px;font-weight:500;color:var(--muted);padding:4px 3px 10px;border-bottom:1px solid #697180}
.balance-table th.r,.balance-table td.r{text-align:right}
.balance-table th small{display:block;margin-top:6px;font-size:10px;font-weight:400}
.balance-table td{padding:13px 3px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}
.balance-table td>b{display:block;font-size:13px;font-weight:600;line-height:1.5}
.balance-table td>small{display:block;font-size:12px;margin-top:6px;color:var(--fg);line-height:1.5}
.balance-table td>small.up{color:var(--up)}.balance-table td>small.down{color:var(--down)}
.balance-security{display:block;background:none;border:0;color:var(--fg);padding:0;width:100%;text-align:left;cursor:pointer;min-height:44px;font:inherit}
.balance-security b,.balance-security small{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;line-height:1.5}
.balance-security b{font-size:13px;font-weight:600}.balance-security small{font-size:10px;color:var(--muted);margin-top:6px}
.balance-updated{font-size:10px;margin:12px 3px 0}
@media(max-width:360px){.balance-total{font-size:22px}.balance-summary-tools{gap:3px}.balance-summary-tools .seg button{padding:5px 6px}.balance-metrics{gap:13px 10px}.balance-metrics b{font-size:13px}.balance-holdings{padding:12px 9px}.balance-table th{font-size:9px;padding-left:2px;padding-right:2px}.balance-table th small{font-size:9px}.balance-table td{padding-left:2px;padding-right:2px}.balance-table td>b,.balance-security b{font-size:11.5px}.balance-table td>small{font-size:10.5px}.balance-security small{font-size:9px}}

#cfgBtns{flex-wrap:wrap}#cfgBtns #historySync{margin-left:auto}
.community-body-link{color:var(--accent);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere;word-break:break-word}.community-body-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.observation-dialog .community-reader-content{padding:0 16px 16px}

.observation-caption-tools{margin-left:auto;flex:none}.observation-caption-tools .header-actions{display:flex;align-items:center;gap:7px}.observation-caption-tools .observation-state{font-size:10px;color:var(--accent);white-space:nowrap}.observation-caption-tools .observation-state:before{content:"";display:inline-block;width:4px;height:4px;background:currentColor;border-radius:50%;margin-right:4px}.observation-caption-tools .observation-help{border:0;background:none;color:var(--muted);padding:3px;font-size:19px;cursor:pointer}.observation-dialog .community-reader-title{flex:0 1 auto}@media(max-width:360px){.observation-caption-tools .observation-state{font-size:9px}.observation-dialog .community-reader-title{font-size:14px}}

/* Compact, private inbox; header remains usable at phone widths. */
.notification-bell{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;width:34px;height:34px;border:0;background:none;color:var(--fg);cursor:pointer;border-radius:50%}.notification-bell:hover{background:var(--line)}.notification-bell [data-inbox-badge]{position:absolute;top:0;right:-3px;min-width:14px;height:14px;padding:0 3px;border-radius:8px;background:var(--accent);color:var(--bg);font-size:9px;line-height:14px;font-weight:700}.notification-bell [hidden]{display:none}.notification-inbox{position:fixed;inset:0;z-index:25;background:#0008;display:flex;justify-content:flex-end;align-items:flex-start;padding:calc(var(--toph,60px) + 8px) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom));}.inbox-open{overflow:hidden}.inbox-box{display:flex;flex-direction:column;width:min(100%,420px);max-height:calc(100dvh - var(--toph,60px) - 24px);background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 14px 50px #0007;overflow:hidden}.inbox-heading{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 8px}.inbox-heading h2{margin:0;font-size:17px}.inbox-heading h2 span{margin-left:5px;color:var(--accent);font-size:12px}.inbox-close{padding:4px 8px;border:0;background:none;color:var(--muted);font-size:25px;cursor:pointer}.inbox-toolbar{display:flex;align-items:center;justify-content:space-between;padding:0 16px 10px;border-bottom:1px solid var(--line)}.inbox-filters{display:flex;gap:4px}.inbox-filters button,.inbox-read-all{border:0;background:none;color:var(--muted);font-size:12px;padding:7px 8px;cursor:pointer}.inbox-filters button[aria-pressed=true]{background:var(--line);color:var(--fg);border-radius:7px}.inbox-read-all:disabled{opacity:.4;cursor:default}.inbox-list{overflow:auto;overscroll-behavior:contain;min-height:160px}.inbox-item{width:100%;display:grid;grid-template-columns:6px minmax(0,1fr);column-gap:10px;row-gap:6px;text-align:left;padding:16px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--fg);cursor:pointer}.inbox-dot{width:5px;height:5px;background:var(--accent);border-radius:50%;margin-top:7px}.inbox-item.is-read .inbox-dot{background:transparent}.inbox-item.is-read{color:var(--muted)}.inbox-message{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55;font-size:13px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.inbox-item.expanded .inbox-message{display:block}.inbox-item time{grid-column:2;color:var(--muted);font-size:10px}.inbox-empty{padding:36px 16px;text-align:center;font-size:13px;color:var(--muted);line-height:1.7}.inbox-empty button{display:block;margin:12px auto 0}.inbox-more{display:block;margin:12px auto}.connection-retry{text-align:center;font-size:13px;color:var(--muted)}
@media(max-width:420px){.top{gap:5px}.top-actions{gap:3px}.brand{font-size:13px;gap:5px}.brand-icon{width:18px;height:18px}.top-actions #topInfo{font-size:10px}.release-btn{font-size:10px;padding:5px}.page-help{width:27px}.notification-bell{width:30px}}

.release-btn{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border:0;padding:0;color:var(--muted);border-radius:50%}.release-btn:hover{background:var(--line);color:var(--accent)}

.release-btn{width:auto;gap:5px;padding:5px 7px;border:1px solid var(--line);border-radius:8px;font-size:11px}.release-btn [data-release-version]{color:var(--accent);white-space:nowrap}.release-btn svg{flex:none}

/* All screens remain available from a compact bottom-left menu. */
/* Bottom menu follows the measured navigation height and available viewport. */
.tabs .main-menu-toggle{flex:0 0 44px;min-width:44px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--card);z-index:1;box-shadow:4px 0 10px #0002}
.tabs .main-menu-toggle[aria-expanded=true]{color:var(--accent)}
.main-menu-open{overflow:hidden}
.main-menu{position:fixed;inset:0 0 var(--navh,64px);z-index:16;display:flex;align-items:flex-end;padding:calc(12px + var(--safe-top)) max(12px,var(--safe-right)) 12px max(12px,var(--safe-left));background:#0007}
.main-menu-box{display:flex;flex-direction:column;width:min(550px,100%);max-height:calc(100dvh - var(--navh,64px) - var(--safe-top) - 24px);overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 40px #0006}
.main-menu-heading{display:flex;align-items:center;gap:8px;padding:12px 12px 8px}
.main-menu-heading>b{font-size:13px;font-weight:600;margin-right:auto;white-space:nowrap}
.main-menu-caption-actions{display:flex;align-items:center;gap:6px}
.main-menu-heading [data-menu-close]{padding:2px 5px;border:0;background:none;color:var(--muted);font-size:24px;cursor:pointer}
.main-menu-search{display:flex;align-items:center;gap:8px;margin:0 12px 8px;padding:8px 10px;background:var(--bg);border:1px solid var(--line);border-radius:8px;color:var(--muted)}
.main-menu-search input{min-width:0;width:100%;padding:0;background:none;border:0;color:var(--fg);font-size:13px}
.main-menu-content{display:grid;grid-template-columns:minmax(88px,28%) 1fr;overflow:hidden;min-height:0}
.main-menu-categories,.main-menu-shortcuts{display:flex;flex-direction:column;min-height:0;overflow:auto;overscroll-behavior:contain;padding:4px 6px 10px}
.main-menu-categories{background:var(--bg);border-right:1px solid var(--line)}
.main-menu-box nav button{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;border:0;border-radius:6px;background:none;color:var(--fg);padding:10px;cursor:pointer;font-size:13px;min-height:38px}
.main-menu-box nav button[aria-pressed=true]{color:var(--accent);background:#39b7a612}
.main-menu-box nav button:hover{background:var(--card2)}
.main-menu-shortcuts button>span+span{color:var(--muted)}
.main-menu-shortcuts .main-menu-guide{font-size:12px;color:var(--muted);border-top:1px solid var(--line);border-radius:0;margin-top:8px}
.main-menu-group{color:var(--accent);padding:12px 10px 2px;font-size:11px}
.main-menu-box button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.broker-hours ul{margin:8px 0;padding-left:18px;line-height:1.6}.broker-hours li+li{margin-top:4px}
.fx-pending-card{border:1px solid #5a4825;background:#272114}.fx-pending-card .card-title{color:var(--warn)}.fx-pending-card .privacy-manual-facts{margin:8px 0 12px}.fx-pending-card .privacy-manual-facts>div{padding:8px 0}
.fx-pending-result{margin-top:4px;font-size:13px}.fx-pending-result p{margin:6px 0 10px;line-height:1.6;color:var(--muted);word-break:keep-all}.fx-pending-result.executed b,.fx-pending-result.not_executed b{color:var(--accent)}.fx-pending-result .tbl{display:block;overflow-x:auto;white-space:nowrap}
/* 홈 '오늘' 카드: 확인할 일이 없으면 칩 한 줄, 있으면 줄마다 상태 · 확인할 줄은 경고색 배경 */
.today-card{padding:14px 15px}.today-card.attention{border:1px solid #5a4825}
.today-head{display:flex;align-items:flex-start;gap:9px;min-width:0}.today-heading{flex:1;min-width:0}.today-heading b{display:block;font-size:15px;line-height:1.45;word-break:keep-all}.today-heading small{display:block;margin-top:1px;font-size:12px;line-height:1.5;color:var(--muted);word-break:keep-all}.today-head time{flex:none;margin-top:2px;font-size:11.5px;color:var(--muted)}
.today-dot{flex:none;width:8px;height:8px;margin-top:7px;border-radius:50%;background:var(--accent)}.today-card.attention .today-dot{background:var(--warn)}.today-card.holiday .today-dot{background:#7e8aa0}
.today-icon{flex:none;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;color:var(--muted)}
.today-chips{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;margin-top:11px}
.today-chip{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:40px;padding:7px 4px;border:1px solid var(--line);border-radius:999px;background:var(--card2);color:var(--muted);font:inherit;font-size:13px;cursor:pointer}
.today-chip .today-icon{width:16px;height:16px}
.today-chip b{min-width:0;overflow:hidden;text-overflow:ellipsis;font-weight:600;color:var(--fg);white-space:nowrap}.today-chip.ok b,.today-chip.ok .today-icon{color:var(--accent)}.today-chip.muted b{color:#aab3c2;font-weight:500}.today-chip.waiting b,.today-chip.waiting .today-icon{color:#e9d39c}
.today-rows{display:grid;gap:7px;margin-top:11px}
.today-row{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:var(--card2);color:var(--fg);font:inherit;text-align:left;cursor:pointer}
.today-row .today-icon{width:17px;height:17px}
.today-title{flex:0 0 78px;font-size:12.5px;line-height:1.4;color:var(--muted);word-break:keep-all}
.today-state{flex:1;min-width:0}.today-state b{display:block;font-size:14px;line-height:1.45;word-break:keep-all}.today-state small{display:block;margin-top:1px;font-size:11.5px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere;word-break:keep-all}
.today-go{flex:none;color:var(--muted);font-size:18px;line-height:1}
.today-row.ok b,.today-row.ok .today-icon{color:var(--accent)}.today-row.muted b{color:var(--muted);font-weight:500}.today-row.waiting b{color:#e9d39c}
.today-row.attention,.today-row.unknown{border-color:#5a4825;background:#272114}.today-row.attention b,.today-row.unknown b,.today-row.attention .today-icon,.today-row.unknown .today-icon{color:var(--warn)}.today-row.attention .today-title,.today-row.unknown .today-title{color:#d9c59a}
.today-row:disabled,.today-chip:disabled{cursor:default}.today-row:active:not(:disabled),.today-chip:active:not(:disabled){border-color:var(--muted)}
.today-row:focus-visible,.today-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.privacy-holiday{display:inline-block;margin-left:4px;padding:1px 8px;border-radius:999px;background:#262c37;color:#aab3c2;font-size:11.5px;line-height:1.7;white-space:nowrap;vertical-align:1px}
