:root{--navy:#172c3d;--navy-2:#20394a;--ink:#20313c;--muted:#7b898e;--line:#e7ecea;--paper:#f4f6f5;--white:#fff;--teal:#1c9e88;--teal-dark:#147d6e;--teal-pale:#e8f5f1;--blue:#598bb6;--gold:#c59447;--red:#cc635c;--shadow:0 3px 15px rgba(31,55,65,.035);font-family:Inter,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;color:var(--ink);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);font-size:14px;line-height:1.5}.app-shell{min-height:100vh}.sidebar{width:238px;background:var(--navy);color:#dce7e9;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:30px 18px 18px;z-index:10}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 42px;color:#fff;text-decoration:none}.brand-mark{width:36px;height:36px;border-radius:11px;background:#27aa91;display:grid;place-items:center}.brand-mark svg{width:24px;fill:none;stroke:white;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.brand-name{font-size:18px;font-weight:750;letter-spacing:-.6px;line-height:1}.brand-name>span{color:#53c3ac}.brand-name small{display:block;font-size:8px;letter-spacing:1.5px;color:#9ab0b9;font-weight:650;margin-top:6px}.side-label,.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.45px;color:#8c9fa5}.side-label{padding:0 12px 12px;color:#81949d}.nav-list{display:grid;gap:5px}.nav-item{display:flex;align-items:center;gap:12px;min-height:43px;padding:0 12px;border-radius:7px;color:#b9c8cc;text-decoration:none;font-weight:530;font-size:13px;transition:.15s}.nav-item:hover,.nav-item:focus-visible{background:#ffffff0c;color:#fff}.nav-item.active{background:#2d4a58;color:#fff}.nav-icon{font-size:18px;line-height:1;width:20px;text-align:center;color:#91abb3}.nav-item.active .nav-icon{color:#56c5ad}.nav-count{margin-left:auto;background:#ffffff12;padding:1px 7px;border-radius:99px;font-size:10px}.sidebar-bottom{margin-top:auto}.local-card{background:#203c4b;border:1px solid #34505d;border-radius:8px;padding:13px 11px;display:flex;align-items:flex-start;gap:10px}.local-icon{font-size:18px;color:#62c6b2}.local-card strong,.local-card small{display:block}.local-card strong{font-size:11px;color:#ebf3f3;font-weight:650}.local-card small{font-size:9px;color:#9ab0b7;margin-top:4px}.sidebar-foot{display:flex;align-items:center;gap:7px;padding:17px 4px 0;font-size:9px;letter-spacing:.8px;color:#9eb2b7;font-weight:700}.tiny-dot{width:6px;height:6px;border-radius:50%;background:#42bd9f}.sidebar-version{margin-left:auto;color:#718b94;font-weight:500;letter-spacing:0}.main-area{margin-left:238px;min-height:100vh}.topbar{height:66px;background:#ffffffd9;border-bottom:1px solid #e9eeec;display:flex;align-items:center;justify-content:space-between;padding:0 42px;position:sticky;top:0;z-index:5;backdrop-filter:blur(10px)}.breadcrumb{display:flex;gap:11px;align-items:center;font-size:11px;color:#9aa4a5}.breadcrumb i{font-style:normal;color:#c3ccca}.breadcrumb strong{font-weight:650;color:#48575c}.topbar-right{display:flex;align-items:center;gap:20px}.connection{display:flex;align-items:center;gap:7px;color:#758589;font-size:11px}.connection-dot{width:7px;height:7px;border-radius:50%;background:#d9a64c}.connection.online .connection-dot{background:#35ae8e}.connection.offline .connection-dot{background:#d4746b}.user-avatar{height:31px;width:31px;border-radius:50%;background:#e5f1ed;color:#268571;display:grid;place-items:center;font-size:10px;font-weight:750}.content-wrap{max-width:1440px;margin:auto;padding:34px 42px 30px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:25px}.eyebrow{font-size:9px;color:#93a0a1;letter-spacing:1.2px}.live-clock{margin-left:10px;color:#6c8587;font-variant-numeric:tabular-nums}.page-heading h1{font-size:28px;letter-spacing:-1.1px;line-height:1.2;margin:9px 0 6px;font-weight:700;color:#22343e}.heading-period{color:var(--teal)}.page-heading p,.section-heading p,.panel-heading p,.diagnostics-head p{color:#879395;font-size:12px;margin:0}.heading-actions{display:flex;align-items:center;gap:10px;padding-bottom:3px}.mode-pill{display:flex;align-items:center;gap:7px;border:1px solid #cce8df;background:#eff8f4;color:#358b77;border-radius:99px;padding:7px 11px;font-size:10px;font-weight:700}.mode-pill span,.source-dot{width:6px;height:6px;border-radius:50%;background:#39aa8e}.icon-button{height:33px;width:33px;background:#fff;border:1px solid var(--line);border-radius:7px;color:#738388;font-size:18px;cursor:pointer}.icon-button:hover{color:var(--teal);border-color:#b7ddd3}.run-banner{background:var(--navy);border-radius:10px;padding:20px 23px;display:flex;align-items:center;gap:28px;color:#fff;box-shadow:0 5px 16px #203c4b12}.run-main{display:flex;align-items:center;gap:13px;flex:1;min-width:240px}.run-icon{height:39px;width:39px;border-radius:10px;background:#ffffff13;display:grid;place-items:center;color:#b3c1c3;font-size:17px}.run-icon.running{color:#62ceb4;background:#2c695c}.run-title-row{display:flex;align-items:center;gap:9px}.run-title-row h2{font-size:14px;margin:0;font-weight:650}.run-main p{font-size:10px;color:#a2b6bb;margin:3px 0 0}.status-badge{font-size:9px;color:#c3cdd0;background:#ffffff14;padding:3px 7px;border-radius:99px}.status-badge.running{color:#71d6bd;background:#276554}.status-badge.stopped{color:#c0cbd0}.run-meta{display:flex;gap:25px;padding-right:7px}.run-meta div{display:grid;gap:3px}.run-meta span{font-size:9px;color:#9eb2b7}.run-meta strong{font-size:10px;color:#edf4f4;font-weight:600}.run-controls{display:flex;gap:8px}.button{height:35px;border:1px solid transparent;border-radius:6px;padding:0 13px;font:inherit;font-size:11px;font-weight:650;white-space:nowrap;cursor:pointer;transition:background .15s,border .15s,color .15s,transform .1s}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled{cursor:not-allowed;opacity:.45}.button-start{background:#29a98e;color:#fff}.button-start:hover:not(:disabled),.button-primary:hover:not(:disabled){background:#168b78}.button-stop{border-color:#617580;background:#ffffff0b;color:#cfdbdd}.button-stop:hover:not(:disabled){background:#ffffff18}.notice-bar{display:flex;align-items:center;gap:10px;border:1px solid #f0d1cb;background:#fff6f3;border-radius:7px;padding:9px 12px;margin-top:10px;color:#99534d}.notice-bar[hidden]{display:none}.notice-mark{width:18px;height:18px;border-radius:50%;background:#f6ded9;text-align:center;font-weight:750;font-size:11px}.notice-bar p{margin:0;font-size:11px}.account-section{margin-top:26px}.section-heading,.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.section-heading h2,.panel-heading h2,.diagnostics-head h2{font-size:15px;letter-spacing:-.3px;color:#263943;margin:0 0 3px;font-weight:680}.section-heading p{font-size:10px}.section-heading p strong{color:#556669;font-weight:650}.source-label{display:flex;align-items:center;gap:6px;font-size:10px;color:#78898a}.metrics-grid{display:grid;grid-template-columns:1.45fr 1fr 1fr;gap:12px;margin-top:12px}.metric-card{background:#fff;border:1px solid #ebefed;border-radius:8px;padding:17px 18px 14px;box-shadow:var(--shadow);min-width:0}.metric-top{display:flex;justify-content:space-between;align-items:center;color:#758387;font-size:10px;font-weight:560}.metric-icon{width:24px;height:24px;border-radius:7px;background:#e9f6f1;color:#33a187;display:grid;place-items:center;font-size:13px;font-weight:700}.icon-blue{background:#edf4fa;color:#6996bd}.icon-gold{background:#faf4e9;color:#c3944b}.metric-value{font-size:23px;letter-spacing:-.6px;font-weight:700;color:#253640;margin-top:10px;font-variant-numeric:tabular-nums;white-space:nowrap}.metric-dual{font-size:19px;letter-spacing:-.55px}.metric-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:7px;font-size:9px}.metric-caption{color:#9aa4a4}.metric-caption strong{color:#707f80;font-weight:620}.metric-emphasis{color:#29947e;font-weight:650}.metric-emphasis.negative{color:#cc645e}.metric-emphasis.muted{color:#879697;font-weight:550}.chart-wrap{height:45px;margin-top:7px}.chart-wrap svg{height:100%;width:100%;overflow:visible}.chart-empty{stroke:#ecf1ef;stroke-width:1;stroke-dasharray:3 4}.chart-wrap text{fill:#a5b0af;font-size:9px;font-family:inherit}.chart-area{fill:url(#chartFill)}.chart-line{fill:none;stroke:#37aa91;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.chart-point{fill:#fff;stroke:#37aa91;stroke-width:2}.chart-dash{stroke:#e7eeeb;stroke-width:1;stroke-dasharray:2 4}.mini-progress{height:4px;background:#edf2f0;border-radius:5px;margin-top:16px;overflow:hidden}.mini-progress span{display:block;height:100%;width:0;background:#68baa8;border-radius:5px;transition:width .3s}.market-strip{margin-top:13px;background:#fff;border:1px solid #ebefed;border-radius:8px;padding:12px 17px;display:flex;align-items:center;gap:24px}.market-strip-title{font-size:10px;font-weight:680;color:#54666a;padding-right:7px;border-right:1px solid #edf0ee}.provider-chip{display:flex;align-items:center;gap:9px;min-width:135px}.provider-icon{height:28px;width:28px;border-radius:8px;display:grid;place-items:center;font-weight:750;font-size:12px}.icon-kr{background:#eff4fb;color:#527ead}.icon-coin{background:#fbf4e7;color:#ba914b}.icon-ai{background:#f2effa;color:#8074b0}.provider-chip div{display:grid;gap:1px}.provider-chip small{font-size:9px;color:#99a3a4}.provider-chip strong{font-size:10px;font-weight:650;color:#506164}.provider-chip strong.status-live{color:#258b74}.provider-chip strong.status-demo{color:#ad8545}.text-link,.panel-action{color:#4d8f82;text-decoration:none;font-size:10px;font-weight:620;white-space:nowrap}.text-link{margin-left:auto}.text-link span,.panel-action span,.panel-footer-link span{margin-left:3px}.content-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:13px;margin-top:14px;align-items:stretch}.panel{background:#fff;border:1px solid #e9eeec;border-radius:8px;box-shadow:var(--shadow)}.holdings-panel,.cycle-panel{min-width:0;overflow:hidden}.panel-heading{padding:17px 18px 14px}.panel-heading h2{font-size:13px;margin-bottom:3px}.panel-heading p{font-size:10px}.panel-action{font-size:9px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:630px;text-align:left}thead{background:#f8faf9}th{font-size:9px;color:#8b999a;font-weight:600;padding:9px 10px;white-space:nowrap}th:first-child,td:first-child{padding-left:18px}td{padding:11px 10px;border-top:1px solid #f0f2f1;font-size:10px;color:#526267;white-space:nowrap}td:first-child{font-weight:620;color:#31434a}.align-right{text-align:right;padding-right:18px}.positive{color:#219278!important}.negative{color:#c6605c!important}.asset-name{display:flex;align-items:center;gap:8px}.asset-bubble{height:25px;width:25px;border-radius:50%;display:grid;place-items:center;background:#e9f2ee;color:#377f70;font-weight:700;font-size:9px}.asset-bubble.crypto{background:#fbf1dd;color:#ad833b}.asset-code{font-size:8px;color:#99a3a3;font-weight:500;margin-top:1px}.asset-kind{border-radius:4px;padding:3px 6px;font-size:8px;background:#eef3f7;color:#71889a}.asset-kind.crypto{background:#f9f2e6;color:#a8874d}.empty-row td{text-align:center;white-space:normal;padding:21px 12px 20px}.empty-row td strong,.empty-row td small,.empty-state strong,.empty-state small{display:block}.empty-mark{display:block;font-size:20px;color:#9ccdc0;line-height:1;margin-bottom:6px}.empty-row td strong,.empty-state strong{font-size:10px;color:#647579;font-weight:630}.empty-row td small,.empty-state small{font-size:9px;color:#a0aaaa;margin-top:4px}.subtle-count{font-size:9px;color:#9aa6a6}.decision-list{padding:0 16px;min-height:132px}.empty-state{text-align:center;padding:24px 8px}.empty-state.compact{padding-top:22px}.decision-item{padding:10px 0;border-top:1px solid #f0f2f1}.decision-item:first-child{border-top:0}.decision-head{display:flex;align-items:center;gap:6px}.decision-symbol{font-size:10px;color:#43575c;font-weight:650}.decision-action{font-size:8px;border-radius:4px;padding:2px 5px;font-weight:700}.decision-action.buy{background:#e8f5ef;color:#20856f}.decision-action.sell{background:#f9eeee;color:#c25e59}.decision-action.hold{background:#f2f3f1;color:#82908d}.decision-time{margin-left:auto;font-size:8px;color:#a1aaaa}.decision-item p{margin:5px 0 0;font-size:9px;color:#82908a;line-height:1.5}.panel-footer-link{display:block;border-top:1px solid #f0f2f1;padding:11px 17px;color:#5c9389;text-decoration:none;font-size:9px;font-weight:620}.activity-panel{margin-top:14px;overflow:hidden}.activity-tabs{display:flex;gap:4px;background:#f4f7f5;padding:3px;border-radius:6px}.activity-tab{border:0;background:transparent;color:#899595;font:inherit;font-size:9px;padding:6px 10px;border-radius:4px;cursor:pointer}.activity-tab.active{color:#347f71;background:#fff;box-shadow:0 1px 3px #203b4b15;font-weight:650}.activity-tab span{margin-left:2px;color:#a0aaaa}.activity-content{min-height:85px}.activity-table{min-width:650px}.activity-empty{padding:22px;text-align:center;color:#a0aaaa;font-size:10px}.reason-cell{white-space:normal;min-width:220px;max-width:380px;color:#7a8887}.record-status{border-radius:4px;padding:3px 6px;font-size:8px;background:#edf5f1;color:#418d7d}.record-status.blocked,.record-status.error{background:#fbefed;color:#bd665d}.record-status.pending{background:#f4f2e9;color:#a08342}.settings-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:13px;margin-top:15px;align-items:start}.strategy-market-column{display:grid;gap:13px;min-width:0}.strategy-form-panel{padding-bottom:17px}.form-panel{padding:0 18px 17px;min-width:0}.form-panel>.panel-heading{padding:17px 0 15px}.small-eyebrow{font-size:8px;margin-bottom:4px;color:#9aa8a6}.form-state{font-size:9px;padding:4px 8px;border-radius:99px;background:#f2f4f2;color:#899591}.form-state.saved{background:#eaf6f1;color:#358876}.form-lock{background:#fff7e9;color:#9b7741;border-radius:5px;padding:8px 10px;font-size:10px;margin-bottom:12px}.form-lock[hidden]{display:none}.form-panel form{display:grid;gap:6px}.form-panel label{font-size:10px;font-weight:630;color:#536368;margin-top:4px}.label-hint{font-size:9px;font-weight:450;color:#9ca6a5;margin-left:5px}.form-panel input,.form-panel textarea,.form-panel select{width:100%;font:inherit;font-size:10px;color:#3f5055;background:#fff;border:1px solid #e2e9e6;border-radius:5px;padding:9px 10px;outline:0;transition:border .15s,box-shadow .15s}.form-panel input:focus,.form-panel textarea:focus,.form-panel select:focus{border-color:#74bcae;box-shadow:0 0 0 3px #4daf9818}.form-panel input::placeholder,.form-panel textarea::placeholder{color:#b5bfbd}.form-panel textarea{resize:vertical;min-height:120px;line-height:1.6}.form-panel select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#879796 50%),linear-gradient(135deg,#879796 50%,transparent 50%);background-position:calc(100% - 14px) 14px,calc(100% - 10px) 14px;background-size:4px 4px,4px 4px;background-repeat:no-repeat}.field-explain{font-size:9px;color:#95a09e;padding:0 2px;margin-top:-2px;margin-bottom:4px;line-height:1.5}.file-row{display:flex;align-items:center;gap:8px;margin:1px 0 5px}.button-light{border-color:#e3e9e6;background:#fff;color:#637578;height:29px;padding:0 10px;font-size:9px}.button-light:hover:not(:disabled){border-color:#b7d9d0;color:#398879}.file-button{display:inline-flex;align-items:center;cursor:pointer}.file-hint{font-size:8px;color:#a1aaa9}.button-quiet{background:transparent;border:0;color:#4b9486;padding:0 4px;font-size:9px}.button-quiet:hover{color:#1b7f70}.universe-hint{font-size:8px;color:#9aa4a3;display:flex;align-items:center;gap:5px;flex-wrap:wrap}.hint-chip{background:#eef3f7;border-radius:3px;color:#607d95;padding:2px 5px;font-variant-numeric:tabular-nums}.crypto-hint{background:#f7f1e6;color:#a2834d}.hint-sep{color:#c0c8c5}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;border-top:1px solid #f0f2f1;padding-top:12px}.save-hint{font-size:8px;color:#a0aaa8;line-height:1.4}.button-primary{height:32px;background:#249981;color:#fff;font-size:9px;padding:0 14px}.input-suffix,.input-prefix{position:relative}.input-suffix input{padding-right:32px}.input-prefix input{padding-left:27px}.input-suffix>span,.input-prefix>span{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:#889795;font-size:9px;pointer-events:none}.input-prefix>span{left:10px;right:auto}.risk-heading{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #eff2f0;padding-top:12px;margin-top:6px}.risk-heading span:first-child{font-size:10px;font-weight:680;color:#536368}.risk-heading span:last-child{font-size:8px;color:#9ba5a4}.risk-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px}.risk-grid>div{display:grid;gap:4px}.risk-grid label{font-size:9px!important;margin-top:1px!important}.settings-actions{margin-top:6px}.diagnostics-section{margin-top:24px}.diagnostics-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:12px}.diagnostics-head h2{font-size:14px;margin:0 0 3px}.diagnostics-head p{font-size:10px}.diagnostics-head .button{height:29px}.diagnostics-head .button span{font-size:13px;margin-left:4px}.diagnostics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.diag-card{background:#fff;border:1px solid #e9eeec;border-radius:7px;padding:13px 14px}.diag-title{display:flex;align-items:center;gap:8px}.diag-icon{width:23px;height:23px;border-radius:6px;background:#f1eff8;color:#8175ad;display:grid;place-items:center;font-size:13px}.storage-icon{background:#edf4f8;color:#6d91a7}.net-icon{background:#eaf5f1;color:#4d9b88}.diag-title strong{font-size:10px;font-weight:650;color:#536468}.diag-status{margin-left:auto;color:#9da7a5;font-size:8px}.diag-status.ok{color:#2d947c}.diag-status.warn{color:#ad8647}.diag-status.error{color:#c7635d}.diag-card p{font-size:9px;color:#8d9998;margin:8px 0 0;line-height:1.5}.page-footer{border-top:1px solid #e5ebe8;margin-top:25px;padding-top:14px;display:grid;grid-template-columns:auto 1fr;gap:5px 15px;align-items:center}.page-footer>div{display:flex;align-items:center;gap:5px;font-size:9px;color:#899594}.page-footer>div strong{color:#637477}.footer-mark{width:19px;height:19px;border-radius:5px;background:#deeee8;color:#298873;display:grid;place-items:center;font-size:8px;font-weight:800;margin-right:2px}.page-footer p{font-size:8px;color:#9aa4a2;margin:0}.page-footer p:last-child{grid-column:2}.toast-stack{position:fixed;right:20px;bottom:20px;z-index:30;display:grid;gap:8px;max-width:min(420px,calc(100vw - 32px))}.toast{background:#203943;color:#fff;border-radius:7px;padding:11px 14px;box-shadow:0 8px 25px #16344335;font-size:11px;animation:toast-in .2s ease-out}.toast.error{background:#783e3c}.toast.success{background:#286759}@keyframes toast-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}:focus-visible{outline:3px solid #5cb49f;outline-offset:2px}button:focus:not(:focus-visible),a:focus:not(:focus-visible){outline:none}
@media(max-width:1100px){.content-wrap{padding:29px 27px}.topbar{padding:0 27px}.sidebar{width:215px}.main-area{margin-left:215px}.run-banner{gap:15px;padding:18px}.run-meta{gap:13px}.run-main{min-width:210px}.metrics-grid{grid-template-columns:1.3fr 1fr 1fr}.metric-card{padding:15px}.metric-value{font-size:20px}.metric-dual{font-size:17px}.market-strip{gap:14px}.provider-chip{min-width:115px}}
@media(max-width:850px){.sidebar{width:66px;padding:20px 9px 13px;align-items:center}.brand{padding:0 0 34px}.brand-mark{height:38px;width:38px}.brand-name,.side-label,.nav-item:not(.active)::after,.nav-count,.sidebar-bottom .local-card,.sidebar-foot{display:none}.nav-list{width:100%}.nav-item{justify-content:center;padding:0;gap:0;font-size:0}.nav-icon{font-size:19px}.main-area{margin-left:66px}.nav-item.active{background:#2d4a58}.sidebar-bottom{display:none}.content-grid{grid-template-columns:1fr}.cycle-panel{min-height:205px}.decision-list{min-height:120px}.settings-layout{grid-template-columns:1fr}.form-panel{padding:0 18px 18px}.run-banner{flex-wrap:wrap}.run-main{flex:1}.run-meta{order:3;margin-left:52px}.run-controls{margin-left:auto}.market-strip{flex-wrap:wrap;gap:12px}.market-strip-title{width:100%;border:0;padding:0}.text-link{margin-left:auto}.metrics-grid{grid-template-columns:1.2fr 1fr 1fr}}
@media(max-width:560px){body{font-size:13px}.sidebar{width:54px;padding:14px 6px}.brand{padding-bottom:23px}.brand-mark{width:35px;height:35px}.main-area{margin-left:54px}.topbar{height:54px;padding:0 14px}.content-wrap{padding:22px 13px}.breadcrumb{font-size:10px}.topbar-right{gap:10px}.connection{font-size:9px}.user-avatar{height:28px;width:28px}.page-heading{align-items:flex-start;margin-bottom:17px}.page-heading h1{font-size:23px}.page-heading p{font-size:10px}.eyebrow{font-size:8px}.heading-actions{gap:6px}.mode-pill{font-size:8px;padding:6px 8px}.icon-button{height:30px;width:30px}.run-banner{padding:15px;gap:12px}.run-main{min-width:0;flex-basis:100%}.run-main p{font-size:9px}.run-controls{margin-left:auto}.run-meta{order:0;margin-left:0;flex:1;gap:16px}.run-meta strong{font-size:9px}.button{padding:0 10px}.account-section{margin-top:21px}.metrics-grid{grid-template-columns:1fr 1fr;gap:8px}.equity-card{grid-column:span 2}.metric-card{padding:13px}.metric-value{font-size:19px}.metric-dual{font-size:17px}.metric-foot{font-size:8px;align-items:flex-start;flex-wrap:wrap}.market-strip{padding:12px;gap:11px}.provider-chip{min-width:calc(50% - 8px)}.provider-chip small{font-size:8px}.provider-chip strong{font-size:9px}.content-grid,.activity-panel,.settings-layout{margin-top:10px}.panel-heading{padding:14px 13px 12px}.panel-heading p{font-size:9px}.panel-action{font-size:8px}.table-scroll{margin:0}.activity-tabs{gap:0}.activity-tab{padding:6px 8px;font-size:8px}.form-panel{padding:0 13px 14px}.form-panel>.panel-heading{padding:15px 0 12px}.diagnostics-section{margin-top:20px}.diagnostics-grid{grid-template-columns:1fr;gap:7px}.diag-card{padding:11px 12px}.diag-card p{margin-top:6px}.diagnostics-head .button{font-size:8px;padding:0 8px}.page-footer{grid-template-columns:1fr;gap:7px}.page-footer p:last-child{grid-column:auto}.page-footer p{line-height:1.5}.run-title-row h2{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

.adaptive-status{margin-top:14px;padding:14px 16px;border:1px solid var(--line,#d9d7d1);border-radius:10px;background:rgba(255,255,255,.55);font-size:.9rem;line-height:1.7;color:var(--ink,#292b2a);overflow-wrap:anywhere}.adaptive-grid{margin-top:14px}.toggle-row{display:flex;align-items:center;gap:10px;margin-top:12px}.toggle-row input{width:auto;min-height:auto}.adaptive-status strong{font-weight:700}

/* Laptop dashboard readability and installable phone layout */
body{font-size:14px;overflow-x:hidden}.main-area{min-width:0}.content-wrap{max-width:1700px;margin-inline:auto;padding:34px clamp(24px,3vw,54px)}.topbar{padding-inline:clamp(24px,3vw,54px)}
.page-heading h1{font-size:30px}.page-heading p,.panel-heading p,.field-explain,.diag-card p{font-size:12px}.panel-heading h2,.section-heading h2{font-size:16px}.metric-top,.provider-chip strong{font-size:12px}.metric-value{font-size:27px}.metric-foot{font-size:11px}.nav-item,.button{min-height:42px}.form-panel label{font-size:12px}.form-panel input,.form-panel textarea,.form-panel select{font-size:14px;min-height:44px}.form-panel textarea{min-height:140px}.activity-content{max-width:100%;overflow-x:auto}.activity-table{min-width:660px}
.auth-gate{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:22px;background:#eef2ef}.auth-gate[hidden]{display:none}.auth-gate form{width:min(100%,390px);padding:28px;background:white;border:1px solid #e0e8e4;border-radius:16px;box-shadow:0 18px 60px #1838301c;display:grid;gap:12px}.auth-gate h1{margin:0;font-size:24px}.auth-gate p{margin:0 0 7px;color:#75817e}.auth-gate label{font-weight:650}.auth-gate input{font:inherit;font-size:16px;min-height:48px;padding:10px 12px;border:1px solid #d6e0dc;border-radius:8px}.auth-mark{height:42px;width:42px;border-radius:12px;background:#dff1eb;color:#258c76;display:grid;place-items:center;font-weight:800}.auth-gate #auth-error{min-height:18px;color:#b14e49;font-size:13px}.auth-required .app-shell{visibility:hidden;pointer-events:none}.offline-banner{position:sticky;top:0;z-index:60;background:#783e3c;color:white;padding:10px 16px;text-align:center;font-size:13px}.offline-banner[hidden]{display:none}.offline-mode .app-shell{opacity:.6;pointer-events:none;filter:grayscale(.35)}.mobile-nav,.install-button{display:none}
@media(max-width:700px){
  html{scroll-padding-top:12px}body{font-size:15px}.sidebar{display:none}.main-area{margin-left:0;width:100%;min-height:100vh}.topbar{height:54px;padding:0 14px}.content-wrap{padding:18px 14px calc(94px + env(safe-area-inset-bottom));}.page-heading{gap:8px}.page-heading h1{font-size:25px}.page-heading p{font-size:13px}.eyebrow{font-size:11px}.heading-actions{flex-wrap:wrap;justify-content:flex-end}.mode-pill{font-size:10px}.run-banner{padding:15px;gap:12px}.run-main{min-width:0;flex-basis:100%}.run-main p{font-size:12px}.run-controls{display:flex;gap:8px;margin-left:0;width:100%}.run-controls .button{flex:1;min-height:48px}.run-meta{margin:0;gap:18px}.run-meta span,.run-meta strong{font-size:11px}.metrics-grid{grid-template-columns:1fr 1fr;gap:9px}.equity-card{grid-column:span 2}.metric-card{padding:14px}.metric-value{font-size:21px;white-space:normal;overflow-wrap:anywhere}.metric-dual{font-size:17px}.metric-top,.metric-foot{font-size:11px}.market-strip{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px}.market-strip-title,.text-link{grid-column:1/-1}.market-strip-title{font-size:12px}.provider-chip{min-width:0}.provider-chip small{font-size:10px}.provider-chip strong{font-size:11px}.content-grid,.settings-layout{grid-template-columns:1fr;gap:12px}.panel{border-radius:12px}.panel-heading{padding:16px}.panel-heading h2{font-size:16px}.panel-heading p{font-size:12px;line-height:1.45}.panel-action{font-size:11px}.table-scroll{overflow:visible;padding:0 12px 12px}#positions-body tr:not(.empty-row){display:grid;grid-template-columns:1fr 1fr;gap:0 8px;margin:0 0 9px;padding:12px;background:#f8faf9;border:1px solid #edf1ef;border-radius:10px}#positions-body td{display:block;padding:4px 0;border:0;white-space:normal;font-size:12px}#positions-body td:first-child{grid-column:1/-1;padding:0 0 8px;font-size:14px}#positions-body td:nth-child(2){display:none}#positions-body td:nth-child(3)::before{content:'수량 ';color:#899795}#positions-body td:nth-child(4)::before{content:'평균가 ';color:#899795}#positions-body td:nth-child(5)::before{content:'현재가 ';color:#899795}#positions-body td:nth-child(6)::before{content:'평가 손익 ';color:#899795}.empty-row td{display:table-cell!important}.activity-content{overflow-x:auto}.activity-table{min-width:610px}.activity-panel{overflow:hidden}.activity-tabs{flex-shrink:0}.activity-tab{min-height:42px;padding:8px 12px;font-size:11px}.form-panel{padding:0 15px 17px}.form-panel>.panel-heading{padding:16px 0}.form-panel form{gap:9px}.form-panel label{font-size:13px}.label-hint{display:block;margin:3px 0 0;font-size:11px}.form-panel input,.form-panel textarea,.form-panel select{font-size:16px;min-height:48px;padding:11px 12px;border-radius:8px}.form-panel textarea{min-height:190px}.field-explain{font-size:11px;line-height:1.55}.file-row{flex-wrap:wrap}.button-light,.button-quiet{min-height:44px;font-size:12px}.file-hint{font-size:10px}.form-actions{align-items:stretch;flex-direction:column}.form-actions .button{width:100%;min-height:48px;font-size:13px}.save-hint{font-size:10px}.risk-grid{gap:12px}.risk-grid label{font-size:11px!important}.risk-heading{align-items:flex-start;gap:8px}.risk-heading span:first-child{font-size:12px}.risk-heading span:last-child{font-size:10px;text-align:right}.diagnostics-grid{grid-template-columns:1fr}.diag-card p{font-size:11px}.page-footer{grid-template-columns:1fr;gap:8px}.page-footer p:last-child{grid-column:auto}.page-footer p{font-size:10px;line-height:1.5}.mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(5,1fr);padding:7px 5px calc(7px + env(safe-area-inset-bottom));background:#ffffffed;border-top:1px solid #e2e9e6;backdrop-filter:blur(12px)}.mobile-nav .nav-item{display:grid;justify-items:center;align-content:center;gap:2px;min-height:54px;padding:3px 0;color:#687977;text-decoration:none;font-size:10px;background:transparent;border-radius:8px}.mobile-nav .nav-item span{font-size:19px;line-height:1.1}.mobile-nav .nav-item.active{color:#16866f;background:#e9f5f0}.install-button{display:block;position:fixed;right:14px;bottom:calc(75px + env(safe-area-inset-bottom));z-index:39;border:0;border-radius:99px;background:#218e78;color:#fff;padding:11px 16px;box-shadow:0 4px 18px #214e4338;font:inherit;font-size:12px;min-height:44px}.install-button[hidden]{display:none}.toast-stack{bottom:calc(80px + env(safe-area-inset-bottom));right:12px;left:12px;max-width:none}
}
@media(min-width:701px) and (max-width:1000px){.content-wrap{padding:25px 22px}.topbar{padding:0 22px}.metrics-grid{grid-template-columns:1fr 1fr}.equity-card{grid-column:span 2}.market-strip{flex-wrap:wrap}.content-grid{grid-template-columns:1fr}.settings-layout{grid-template-columns:1fr}}

/* Explicit entry points and compact card rows on phones */
.view-link{display:inline-flex;align-items:center;min-height:38px;padding:0 11px;border:1px solid #dfe9e4;border-radius:7px;color:#397d70;text-decoration:none;font-size:11px;font-weight:650;background:#fff}.view-link:hover{background:#eef7f3}
.logout-button{min-height:38px;border:1px solid #dfe9e4;border-radius:7px;background:#fff;color:#667773;font:inherit;font-size:11px;padding:0 10px}.logout-button[hidden]{display:none}
th{font-size:11px;padding:11px 12px}td{font-size:12px;padding:13px 12px}.decision-symbol{font-size:13px}.decision-item p{font-size:12px}.decision-time,.decision-action{font-size:10px}.run-meta span,.run-meta strong{font-size:11px}
.auth-required .mobile-nav,.auth-required .install-button{visibility:hidden}
.mobile-entry{background:#f2f5f3}.mobile-entry .app-shell{max-width:520px;margin:0 auto;background:#f7f8f6;box-shadow:0 0 45px #203b4b12}.mobile-entry .sidebar{display:none}.mobile-entry .main-area{margin-left:0}.mobile-entry .mobile-nav{position:fixed;left:50%;right:auto;width:min(520px,100%);transform:translateX(-50%);display:grid;grid-template-columns:repeat(5,1fr)}.mobile-entry .content-wrap{padding-bottom:96px}.mobile-entry .metrics-grid{grid-template-columns:1fr 1fr}.mobile-entry .equity-card{grid-column:1/-1}.mobile-entry .content-grid,.mobile-entry .settings-layout{grid-template-columns:1fr}.mobile-entry .table-scroll{overflow:visible;padding:0 12px 12px}.mobile-entry .table-scroll table{width:100%;min-width:0}.mobile-entry .table-scroll thead{display:none}.mobile-entry #positions-body{display:grid;gap:8px}.mobile-entry #positions-body tr:not(.empty-row){display:grid;grid-template-columns:1fr 1fr;gap:0 8px;margin:0;padding:12px;background:#f8faf9;border:1px solid #edf1ef;border-radius:10px}.mobile-entry #positions-body td{display:block;padding:4px 0;border:0;white-space:normal;font-size:12px}.mobile-entry #positions-body td:first-child{grid-column:1/-1;padding:0 0 8px;font-size:14px}.mobile-entry #positions-body td:nth-child(2){display:none}.mobile-entry #positions-body td:nth-child(3)::before{content:'수량 ';color:#899795}.mobile-entry #positions-body td:nth-child(4)::before{content:'평균가 ';color:#899795}.mobile-entry #positions-body td:nth-child(5)::before{content:'현재가 ';color:#899795}.mobile-entry #positions-body td:nth-child(6)::before{content:'평가 손익 ';color:#899795}.mobile-entry .mobile-nav .nav-item{display:grid;justify-items:center;align-content:center;gap:2px;min-height:54px;color:#687977;text-decoration:none;font-size:10px;background:transparent}.mobile-entry .mobile-nav .nav-item span{font-size:19px}.mobile-entry .mobile-nav .nav-item.active{color:#16866f;background:#e9f5f0}.mobile-entry .heading-actions .view-link[href="/mobile"]{display:none}
@media(max-width:700px){.table-scroll table{width:100%;min-width:0}.table-scroll thead{display:none}#positions-body{display:grid;gap:8px}#positions-body tr:not(.empty-row){margin:0}.view-link{min-height:40px;padding:0 9px;font-size:10px}}
.mobile-entry #activity-content .activity-table{width:100%;min-width:0;table-layout:fixed}.mobile-entry #activity-content thead{display:none}.mobile-entry #activity-content tbody{display:grid;gap:10px;padding:0 12px 12px}.mobile-entry #activity-content tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:0 10px;padding:10px 12px;border:1px solid #edf1ef;border-radius:10px;background:#f8faf9}.mobile-entry #activity-content tbody td{display:flex;align-items:flex-start;gap:7px;padding:6px 0;border:0;white-space:normal;font-size:11px;min-width:0;overflow-wrap:anywhere}.mobile-entry #activity-content tbody td::before{content:attr(data-label);flex:0 0 auto;color:#879490;font-size:10px}.mobile-entry #activity-content tbody td:first-child,.mobile-entry #activity-content tbody td:nth-child(2),.mobile-entry #activity-content tbody td:last-child{grid-column:1/-1}.mobile-entry .reason-cell{min-width:0;max-width:none;line-height:1.5}.mobile-entry #activity-content{overflow:visible}
html{scroll-padding-top:70px}.main-area [id]{scroll-margin-top:70px}.form-state{white-space:nowrap;flex-shrink:0}.strategy-form-panel .panel-heading>div{min-width:0}
@media(max-width:700px){#activity-content .activity-table{width:100%;min-width:0;table-layout:fixed}#activity-content thead{display:none}#activity-content tbody{display:grid;gap:10px;padding:0 12px 12px}#activity-content tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:0 10px;padding:10px 12px;border:1px solid #edf1ef;border-radius:10px;background:#f8faf9}#activity-content tbody td{display:flex;align-items:flex-start;gap:7px;padding:6px 0;border:0;white-space:normal;font-size:11px;min-width:0;overflow-wrap:anywhere}#activity-content tbody td::before{content:attr(data-label);flex:0 0 auto;color:#879490;font-size:10px}#activity-content tbody td:first-child,#activity-content tbody td:nth-child(2),#activity-content tbody td:last-child{grid-column:1/-1}.reason-cell{min-width:0;max-width:none;line-height:1.5}}

/* /mobile is a phone-first layout even when opened on a wide laptop screen. */
.mobile-entry .main-area{width:100%;min-width:0}
.mobile-entry .topbar{height:54px;padding:0 14px}
.mobile-entry .content-wrap{padding:18px 14px calc(94px + env(safe-area-inset-bottom))}
.mobile-entry .page-heading{align-items:flex-start;gap:8px;margin-bottom:17px}
.mobile-entry .page-heading h1{font-size:25px}
.mobile-entry .page-heading p{font-size:13px}
.mobile-entry .heading-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px}
.mobile-entry .run-banner{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:15px}
.mobile-entry .run-main{min-width:0;flex-basis:auto}
.mobile-entry .run-main p{font-size:12px}
.mobile-entry .run-title-row{flex-wrap:wrap;min-width:0}
.mobile-entry .status-badge{white-space:nowrap;flex-shrink:0}
.mobile-entry .run-meta{display:flex;flex-wrap:wrap;gap:12px 18px;margin:0;padding:0}
.mobile-entry .run-meta span,.mobile-entry .run-meta strong{font-size:11px}
.mobile-entry .run-controls{display:flex;gap:8px;width:100%;margin:0}
.mobile-entry .run-controls .button{flex:1;min-width:0;min-height:48px}
.mobile-entry .market-strip{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:14px}
.mobile-entry .market-strip-title,.mobile-entry .market-strip .text-link{grid-column:1/-1}
.mobile-entry .market-strip-title{width:auto;padding:0 0 8px;border-right:0;border-bottom:1px solid #edf0ee;font-size:12px}
.mobile-entry .provider-chip{min-width:0;gap:7px}
.mobile-entry .provider-chip small{font-size:10px}
.mobile-entry .provider-chip strong{font-size:11px}
.mobile-entry .metric-value{font-size:21px;white-space:normal;overflow-wrap:anywhere}
.mobile-entry .metric-dual{font-size:17px}
.mobile-entry .metric-top,.mobile-entry .metric-foot{font-size:11px}
.mobile-entry .form-panel{padding:0 15px 17px}
.mobile-entry .form-panel>.panel-heading{padding:16px 0}
.mobile-entry .form-panel form{gap:9px}
.mobile-entry .form-panel label{font-size:13px}
.mobile-entry .form-panel input,.mobile-entry .form-panel textarea,.mobile-entry .form-panel select{min-height:48px;padding:11px 12px;border-radius:8px;font-size:16px}
.mobile-entry .form-panel textarea{min-height:190px}
.mobile-entry .form-actions{align-items:stretch;flex-direction:column}
.mobile-entry .form-actions .button{width:100%;min-height:48px;font-size:13px}
.mobile-entry .diagnostics-grid,.mobile-entry .page-footer{grid-template-columns:1fr}
.mobile-entry .page-footer p:last-child{grid-column:auto}
.mobile-entry .install-button{display:block;position:fixed;right:max(14px,calc((100vw - 520px)/2 + 14px));bottom:calc(75px + env(safe-area-inset-bottom));z-index:39;min-height:44px;padding:11px 16px;border:0;border-radius:99px;background:#218e78;color:#fff;box-shadow:0 4px 18px #214e4338;font:inherit;font-size:12px}
.mobile-entry .install-button[hidden]{display:none}
