:root{--bg:#f4f6f8;--bg-elevated:#fff;--card:#fff;--sidebar:#fff;--sidebar-muted:#7b8490;--sidebar-hover:#f0f3f7;--sidebar-active:#eef4ff;--accent:#3182f6;--accent-hover:#1b64da;--accent-strong:#1b64da;--accent-soft:#eef4ff;--accent-ink:#fff;--accent-muted:#d6e4ff;--text:#191f28;--text-muted:#6b7684;--border:#e5e8eb;--danger:#ef4444;--danger-bg:#fef2f2;--ok:#16a34a;--ok-bg:#f0fdf4;--warn:#ca8a04;--warn-bg:#fefce8;--info:#2563eb;--info-bg:#eff6ff;--market-up:#ef4444;--market-down:#2563eb;--radius:20px;--radius-sm:12px;--radius-pill:999px;--shadow:0 2px 8px rgba(25,31,40,.04),0 12px 32px rgba(25,31,40,.06);--shadow-soft:0 8px 24px rgba(49,130,246,.08);--font:"Segoe UI Variable","Segoe UI","Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",Roboto,"Helvetica Neue",Arial,sans-serif;--fs-xs:0.75rem;--fs-sm:0.8125rem;--fs-md:0.9375rem;--fs-lg:1.125rem;--fs-xl:1.5rem;--fs-2xl:1.75rem;--space-page:1.25rem;--space-card:1.35rem}*{box-sizing:border-box}body,html{margin:0;height:100%;font-family:var(--font);font-size:15px;line-height:1.45;color:var(--text);background:var(--bg);overflow:hidden;overflow-x:hidden;-webkit-font-smoothing:antialiased}canvas,img,svg,video{max-width:100%;height:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mobile-topbar,.nav-backdrop{display:none}a{color:inherit}button,input,select,textarea{font:inherit}.app-shell{height:100vh;height:100dvh;background:var(--bg)}.app-shell,.sidebar{display:flex;overflow:hidden}.sidebar{width:240px;flex-shrink:0;background:var(--sidebar);border-right:1px solid var(--border);color:var(--text);padding:1.15rem .85rem 1rem;flex-direction:column;gap:var(--space-page);min-height:0}.sidebar-nav{flex:1 1;min-height:0;overflow:auto}.brand{display:flex;align-items:center;gap:.7rem;padding:.2rem .45rem .65rem;text-decoration:none;color:inherit;border-radius:12px}.brand:hover{background:var(--sidebar-hover)}a.login-brand,a.mobile-topbar-brand{text-decoration:none;color:inherit}a.mobile-topbar-brand{display:flex;align-items:center;gap:.5rem}.brand-mark{width:38px;height:38px;border-radius:12px;background:transparent;display:block;flex-shrink:0;object-fit:cover;box-shadow:0 1px 2px rgba(27,100,218,.18),0 6px 14px rgba(27,100,218,.12)}.brand-mark.sm{width:30px;height:30px;border-radius:9px;font-size:.75rem;box-shadow:0 1px 2px rgba(27,100,218,.16)}.brand-title{font-weight:750;font-size:1.12rem;letter-spacing:-.04em}.brand-sub{font-size:var(--fs-xs);margin-top:.1rem}.brand-sub,.nav-section{color:var(--sidebar-muted)}.nav-section{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;padding:.35rem .7rem .45rem;font-weight:650}.nav-link{display:flex;align-items:center;gap:.6rem;padding:.62rem .75rem;margin-bottom:.15rem;border-radius:var(--radius-pill);color:var(--text-muted);text-decoration:none;font-size:var(--fs-md);font-weight:600;transition:background .15s ease,color .15s ease}.nav-link:hover{background:var(--sidebar-hover);color:var(--text)}.nav-link.active{background:var(--sidebar-active);color:var(--accent-strong);font-weight:700;box-shadow:inset 3px 0 0 var(--accent)}.nav-emoji{width:26px;height:26px;border-radius:9px;background:var(--bg);display:grid;place-items:center;font-size:.85rem;flex-shrink:0}.nav-link.active .nav-emoji{background:hsla(0,0%,100%,.85)}.sidebar-footer{margin-top:auto;padding-top:.9rem;border-top:1px solid var(--border);display:grid;grid-gap:.5rem;gap:.5rem;flex-shrink:0;min-width:0}.sidebar-footer span,.sidebar-footer strong{overflow-wrap:anywhere;word-break:break-word}.lang-switch{display:flex;gap:.2rem;padding:.2rem;border-radius:var(--radius-pill);background:var(--bg)}.lang-btn{flex:1 1;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--text-muted);padding:.42rem .45rem;border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:650;cursor:pointer}.lang-btn.active{background:var(--bg-elevated);color:var(--text);box-shadow:var(--shadow)}.lang-switch-light{background:var(--bg)}.user-chip{font-size:var(--fs-xs);color:var(--text-muted);line-height:1.4;word-break:break-all}.main{padding:1.25rem 1.5rem;overflow:hidden}.main,.page{flex:1 1;min-width:0;min-height:0;display:flex;flex-direction:column}.page{gap:var(--space-page);overflow:auto;overflow-x:hidden;padding-bottom:2rem}.page>.card,.page>.emoticon-layout,.page>.emoticon-page,.page>.page-header{flex-shrink:0}.page-scroll{flex:1 1;min-height:0;overflow:auto;flex-direction:column;padding-right:.15rem}.page-header,.page-scroll{display:flex;gap:var(--space-page)}.page-header{align-items:flex-start;justify-content:space-between;flex-shrink:0}.page-header h1{margin:0;font-size:var(--fs-xl);font-weight:750;letter-spacing:-.035em;line-height:1.2}.page-header p{margin:.3rem 0 0;color:var(--text-muted);font-size:var(--fs-sm);max-width:42rem}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--space-page);gap:var(--space-page);min-height:0}.settings-tabs{display:flex;flex-wrap:wrap;gap:.4rem;flex-shrink:0}.settings-tab{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);border-radius:var(--radius-sm);padding:.45rem .85rem;font-size:var(--fs-sm);font-weight:600;cursor:pointer}.settings-tab:hover{color:var(--text);border-color:var(--text-muted)}.settings-tab.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.settings-connections{align-items:start}.settings-connections>.card{height:auto;max-height:none;overflow:visible}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.75rem;gap:.75rem;min-height:0}.grid-fill{flex:1 1;min-height:0;align-items:stretch}.grid-fill>.card,.grid-fill>.card-scroll{min-height:0;height:100%;max-height:100%}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-card) 1.35rem;min-height:0}.card h2{margin:0 0 .7rem;font-size:var(--fs-lg);font-weight:750;letter-spacing:-.03em}.card-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.55rem;flex-shrink:0}.card-head h2{margin:0}.card-scroll{display:flex;flex-direction:column;overflow:hidden;height:100%}.card-scroll>.card-body,.card-scroll>.scroll-y{flex:1 1;min-height:0;overflow:auto;padding-right:.1rem}.scroll-y{overflow:auto;min-height:0}.badge-row{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.hint{font-size:var(--fs-sm);margin:.5rem 0 0}.field-hint,.hint{color:var(--text-muted)}.field-hint{font-size:var(--fs-xs);margin-top:-.1rem}.busy-text{color:var(--accent-strong)}.busy-text,.ok-text{font-size:var(--fs-sm);font-weight:650;margin:.65rem 0 0}.ok-text{color:var(--ok)}.req{color:var(--danger);margin-left:.15rem}.tabs{display:flex;gap:.25rem;flex-shrink:0;border-bottom:1px solid var(--border)}.tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;border-bottom:2px solid transparent;padding:.55rem .85rem;font:inherit;font-size:var(--fs-sm);font-weight:650;color:var(--text-muted);cursor:pointer;margin-bottom:-1px}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:700}.radio-row{display:flex;align-items:flex-start;gap:.6rem;padding:.5rem 0;cursor:pointer}.radio-row input{margin-top:.2rem;width:auto;flex:none}.radio-row .hint{display:block;margin:.15rem 0 0}.qr-box{margin-top:.8rem;display:grid;grid-gap:.5rem;gap:.5rem;justify-items:start}.qr-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);border-radius:var(--radius);background:#fff;padding:.65rem;cursor:zoom-in}.qr-thumb img{display:block;width:min(100%,280px);height:auto;image-rendering:pixelated}.qr-modal{position:fixed;inset:0;z-index:80;background:rgba(15,23,42,.72);display:grid;place-items:center;padding:1rem}.qr-modal-inner{background:#fff;border-radius:16px;padding:1rem;max-width:min(92vw,520px);width:100%;display:grid;grid-gap:.75rem;gap:.75rem;justify-items:center}.qr-modal-inner img{width:100%;max-width:440px;height:auto;image-rendering:pixelated;border:1px solid var(--border);border-radius:8px;background:#fff}.qr-thumb-img{display:block;width:min(100%,280px);margin-top:.75rem;border:1px solid var(--border);border-radius:10px;background:#fff}.loading-bar{position:fixed;top:0;left:0;right:0;height:3px;z-index:100;background:linear-gradient(90deg,transparent,var(--accent-strong),transparent);background-size:40% 100%;animation:loading-slide 1.1s linear infinite;pointer-events:none}@keyframes loading-slide{0%{background-position:-40% 0}to{background-position:140% 0}}.tistory-password{display:grid;grid-gap:var(--space-page);gap:var(--space-page);margin-top:.75rem}.connection-saved-panel{border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));background:color-mix(in srgb,var(--accent) 8%,var(--bg-elevated));border-radius:var(--radius-sm);padding:.85rem 1rem}.connection-saved-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.65rem}.connection-saved-grid{display:grid;grid-template-columns:auto 1fr;grid-gap:.35rem .75rem;gap:.35rem .75rem;margin:0;font-size:var(--fs-sm)}.connection-saved-grid dt{margin:0;color:var(--text-muted);font-weight:600}.connection-saved-grid dd{margin:0;color:var(--text);word-break:break-all}.connection-saved-grid .muted{color:var(--text-muted);font-weight:400}.connection-saved-hint{margin:.65rem 0 0}.llm-settings-card .llm-preferred-field{max-width:28rem;margin-bottom:1rem}.llm-provider-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));grid-gap:var(--space-page);gap:var(--space-page)}.llm-provider-card{border:1px solid var(--border);border-radius:var(--radius-sm);padding:.9rem 1rem;background:var(--bg)}.llm-provider-card.preferred{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 20%,transparent)}.llm-provider-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;margin-bottom:.65rem}.llm-provider-head h3{margin:0;font-size:1rem}.llm-provider-actions{margin-top:.35rem}.tistory-password .stack-form{display:grid;grid-gap:.65rem;gap:.65rem;max-width:420px}.tistory-password .stack-form label{display:grid;grid-gap:.3rem;gap:.3rem;font-size:.9rem}.tistory-password .stack-form input{width:100%}.blog-pick-list{display:grid;grid-gap:.55rem;gap:.55rem}.blog-pick{display:flex;align-items:flex-start;gap:.7rem;padding:.75rem .85rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;cursor:pointer}.blog-pick.selected{border-color:var(--accent);background:var(--accent-soft)}.blog-pick input{margin-top:.2rem}.blog-pick span{display:grid;grid-gap:.15rem;gap:.15rem;min-width:0}.blog-pick small{color:var(--text-muted);word-break:break-all}.remote-login{display:grid;grid-gap:.75rem;gap:.75rem;margin-top:.75rem}.remote-frame{display:block;width:100%;max-width:720px;border:1px solid var(--border);border-radius:12px;background:#fff;cursor:crosshair}.remote-frame.placeholder{min-height:280px;display:grid;place-items:center;color:var(--text-muted);cursor:default}.remote-keys{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.remote-keys input{flex:1 1 160px;min-width:0;width:100%}.advanced{border-top:1px solid var(--border);padding-top:.75rem}.advanced summary{cursor:pointer;font-weight:600;color:var(--text-muted);margin-bottom:.5rem}.stat{display:grid;grid-gap:.25rem;gap:.25rem}.stat-label{color:var(--text-muted);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.stat-value{font-size:1.25rem;font-weight:750;letter-spacing:-.03em;line-height:1.2}.ai-holdings-table td.up,.stat-value.up{color:#1f7a45}.ai-holdings-table td.down,.stat-value.down{color:#b42318}.ai-holdings-table td,.ai-holdings-table th{white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.22rem .55rem;border-radius:999px;font-size:var(--fs-xs);font-weight:650;background:var(--accent-soft);color:#8a6a00}.badge.danger{background:var(--danger-bg);color:var(--danger)}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.btn-row{display:flex;flex-wrap:wrap;gap:.5rem}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:#fff;color:var(--text);border-radius:var(--radius-pill);padding:.62rem 1.1rem;font-size:var(--fs-sm);font-weight:650;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.btn:hover:not(:disabled){border-color:#d5d7dd;background:var(--bg)}.btn:active:not(:disabled){background:#ebecef}.btn:disabled{background:var(--bg);border-color:var(--border);color:#a8adb6;cursor:not-allowed;box-shadow:none}.btn-danger:disabled,.btn-primary:disabled{background:#e2e3e7;border-color:transparent;color:#a8adb6}.btn-primary{background:var(--accent);font-weight:750}.btn-primary,.btn-primary:hover:not(:disabled){border-color:transparent;color:var(--accent-ink)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-dark{background:var(--accent-strong);border-color:transparent;color:#fff;font-weight:700}.btn-dark:hover:not(:disabled){background:#33363d;color:#fff}.btn-danger{background:var(--danger);border-color:transparent;color:#fff;min-width:6.5rem;font-weight:700}.btn-danger:hover:not(:disabled){background:#b91c1c;border-color:transparent;color:#fff}.btn-ghost{background:transparent;border-color:var(--border);color:var(--text-muted)}.btn-ghost:hover:not(:disabled){background:var(--sidebar-hover);color:var(--text)}.btn-block{width:100%;justify-content:center}.btn-lg{padding:.72rem 1.05rem;font-size:var(--fs-md)}.field{display:grid;grid-gap:.3rem;gap:.3rem;margin-bottom:.75rem}.field label{font-size:var(--fs-xs);color:var(--text-muted);font-weight:650}.field input,.field select,.input{width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.62rem .75rem;background:#fff;color:var(--text);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.field input:focus,.field select:focus,.input:focus{border-color:var(--accent-muted);box-shadow:0 0 0 3px rgba(230,0,18,.12)}.input-with-action{display:flex;gap:.35rem;align-items:stretch}.input-with-action input{flex:1 1}.btn-icon{padding:.5rem .65rem;min-width:2.5rem;line-height:1}.form-card{max-width:420px}.error-text{color:var(--danger);margin:.65rem 0 0;font-size:var(--fs-sm);font-weight:650;overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap;max-height:9rem;overflow:auto;line-height:1.45}.report-pre{white-space:pre-wrap;font-family:inherit;font-size:.9rem;line-height:1.5;margin:0}.muted{color:var(--text-muted)}.table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.table td,.table th{text-align:left;padding:.55rem .4rem;border-bottom:1px solid var(--border);vertical-align:middle}.table th{color:var(--text-muted);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;font-weight:650}.list{list-style:none;margin:0;padding:0;display:grid;grid-gap:.45rem;gap:.45rem}.list li{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.5rem;padding:.65rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fbfcfe}.scroll-list{max-height:22rem;overflow-y:auto;padding-right:.3rem;overscroll-behavior:contain}.list-event{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted)}.list-event.kill,.list-event.pause{color:var(--danger)}.list-event.mode_live,.list-event.resume{color:var(--ok)}.time-chip{font-size:var(--fs-xs);color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.login-layout{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:1.5rem 1rem;overflow:auto;background:linear-gradient(180deg,#fff5f5 0,#fffaf8 42%,var(--bg) 42.1%)}.login-panel{width:min(420px,100%);background:var(--bg-elevated);border-radius:var(--radius);box-shadow:0 18px 48px rgba(20,24,34,.14);padding:1.6rem 1.55rem 1.4rem;border:1px solid var(--border)}.login-panel h1{margin:0;font-size:var(--fs-2xl);font-weight:750;letter-spacing:-.04em;line-height:1.15}.login-brand{display:flex;align-items:center;gap:.65rem;font-weight:750;font-size:var(--fs-md);letter-spacing:-.02em;margin-bottom:.65rem}.login-brand,.login-brand span{color:var(--text)}.check-row{display:flex;align-items:flex-start;gap:.65rem;cursor:pointer;font-size:var(--fs-sm);line-height:1.4}.check-row input{margin-top:.2rem;flex-shrink:0}.schedule-line{margin:.85rem 0 .75rem;padding:.65rem .75rem;border-radius:10px;background:color-mix(in srgb,var(--accent) 18%,transparent);font-size:var(--fs-sm);font-weight:600}.callout-warn{margin:.75rem 0 1rem;padding:.75rem;border-radius:12px;border:1px solid color-mix(in srgb,#c45c26 35%,var(--border));background:color-mix(in srgb,#c45c26 8%,var(--card));display:grid;grid-gap:.55rem;gap:.55rem}.login-lead{margin:.4rem 0 1rem;color:var(--text-muted);font-size:var(--fs-sm);line-height:1.45}.auth-mode{display:grid;grid-template-columns:1fr 1fr;grid-gap:.25rem;gap:.25rem;padding:.25rem;margin-bottom:1.1rem;border-radius:var(--radius-pill);background:var(--bg)}.auth-mode-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--text-muted);padding:.55rem .65rem;border-radius:var(--radius-pill);font-size:var(--fs-sm);font-weight:700;cursor:pointer}.auth-mode-btn.active{background:#fff;color:var(--text);box-shadow:var(--shadow)}.auth-divider{display:flex;align-items:center;gap:.75rem;margin:.95rem 0 .75rem;color:var(--text-muted);font-size:var(--fs-xs);font-weight:650}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;flex-shrink:0}.compact-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.65rem;gap:.65rem;flex-shrink:0}.compact-stats .card{padding:.75rem .9rem}.hero{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;padding:1.65rem 1.75rem;border-radius:var(--radius);background:linear-gradient(120deg,#fff0f0,#fff8f5 55%,#fff);border:1px solid var(--accent-muted);color:var(--text);box-shadow:var(--shadow-soft)}.hero h2{margin:0;font-size:1.45rem;font-weight:800;letter-spacing:-.04em;line-height:1.25;color:var(--accent-strong)}.hero p{margin:.45rem 0 0;font-size:var(--fs-sm);color:var(--text-muted);max-width:34rem}.hero-emoji{font-size:3.2rem;line-height:1;flex-shrink:0}.section-title{margin:.4rem 0 0;font-size:var(--fs-lg);font-weight:750;letter-spacing:-.03em}.quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:.75rem;gap:.75rem}.quick-tile{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;text-decoration:none;color:inherit;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem .8rem;transition:transform .12s ease,box-shadow .12s ease}.quick-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.quick-icon{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:1.45rem;background:var(--bg)}.quick-icon.tint-yellow{background:#fff3e8}.quick-icon.tint-pink{background:#ffe8ef}.quick-icon.tint-mint{background:#e8f7f0}.quick-icon.tint-lilac{background:#f0ebff}.quick-tile strong{font-size:var(--fs-sm);font-weight:700}.quick-tile small{color:var(--text-muted);font-size:var(--fs-xs);line-height:1.4}.trade-page{display:flex;flex-direction:column;gap:1rem}.trade-hero{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem 1.25rem;padding:1.35rem 1.5rem;border-radius:var(--radius);background:linear-gradient(145deg,#fff,#f8fbff 55%,#fff);border:1px solid var(--border);box-shadow:var(--shadow)}.trade-hero-label{margin:0 0 .25rem;font-size:var(--fs-sm);color:var(--text-muted);font-weight:600}.trade-hero-balance{margin:0;font-size:clamp(1.65rem,4vw,2.15rem);font-weight:800;letter-spacing:-.04em;line-height:1.15;color:var(--text)}.trade-hero-sub{margin:.35rem 0 0;font-size:var(--fs-sm);color:var(--text-muted)}.trade-hero-sub.up{color:var(--market-up);font-weight:650}.trade-hero-sub.down{color:var(--market-down);font-weight:650}.trade-hero-chips{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:flex-end}.trade-segment-wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem}.trade-segment{display:inline-flex;padding:.2rem;background:#f3efec;border-radius:var(--radius-pill);border:1px solid var(--border);gap:.1rem}.trade-segment .tab{border-radius:var(--radius-pill);margin:0;padding:.48rem 1rem;border:none;white-space:nowrap}.trade-segment .tab.active{background:var(--bg-elevated);box-shadow:0 1px 4px rgba(42,37,35,.08);color:var(--accent-strong)}.trade-banner{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1rem;padding:.85rem 1rem;border-radius:var(--radius-sm);background:var(--info-bg);border:1px solid var(--accent-muted)}.trade-banner p{margin:0;flex:1 1;min-width:12rem;font-size:var(--fs-sm);color:var(--text);line-height:1.45}.trade-grid-main{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);grid-gap:var(--space-page);gap:var(--space-page);align-items:start}.trade-stack{display:flex;flex-direction:column;gap:var(--space-page);min-width:0}.trade-panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.25rem;box-shadow:var(--shadow);min-width:0}.trade-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.85rem}.trade-panel-head h2,.trade-panel-title{margin:0;font-size:var(--fs-md);font-weight:750;letter-spacing:-.02em}.trade-panel-head .muted{font-size:var(--fs-xs)}.symbol-search{position:relative}.symbol-market-tabs{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.45rem}.symbol-market-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--bg);color:var(--muted);border-radius:999px;padding:.28rem .65rem;font:inherit;font-size:var(--fs-xs);cursor:pointer}.symbol-market-tab.active{background:var(--text);color:var(--bg);border-color:var(--text)}.symbol-market-tab.soon:not(.active){opacity:.65}.symbol-search-menu{position:absolute;z-index:30;left:0;right:0;top:calc(100% + .25rem);background:var(--panel,#fff);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 28px rgba(20,16,12,.12);max-height:260px;overflow:auto}.symbol-search-item{width:100%;display:flex;justify-content:space-between;gap:.75rem;align-items:baseline;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;text-align:left;padding:.55rem .75rem;font:inherit;cursor:pointer}.symbol-search-item:hover{background:var(--accent-soft,rgba(0,0,0,.04))}.symbol-search-empty{padding:.7rem .75rem}.trade-order-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.6rem;gap:.6rem}.trade-order-form .field{margin-bottom:0}.trade-order-form .field.span-2{grid-column:span 2}.trade-order-actions{grid-column:span 2;display:flex;gap:.5rem;margin-top:.15rem}.trade-order-actions .btn-primary{flex:1 1}.trade-side-toggle{display:grid;grid-template-columns:1fr 1fr;grid-gap:.35rem;gap:.35rem;padding:.2rem;background:var(--bg);border-radius:var(--radius-pill);border:1px solid var(--border)}.trade-side-toggle button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;border-radius:var(--radius-pill);padding:.45rem .5rem;font:inherit;font-size:var(--fs-sm);font-weight:700;cursor:pointer;color:var(--text-muted)}.trade-side-toggle button.active.buy{background:#ffe8ea;color:var(--accent-strong)}.trade-side-toggle button.active.sell{background:#e8f0ff;color:#1d4ed8}.trade-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.45rem;gap:.45rem}.trade-control-grid .btn-danger{grid-column:span 2}.quote-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));grid-gap:.5rem;gap:.5rem}.quote-tile{padding:.7rem .8rem;border-radius:var(--radius-sm);background:var(--bg);border:1px solid var(--border)}.quote-tile .sym{font-weight:600}.quote-tile .name,.quote-tile .sym{font-size:var(--fs-xs);color:var(--text-muted)}.quote-tile .name{display:block;margin:.1rem 0 .35rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quote-tile .price{font-size:var(--fs-lg);font-weight:800;letter-spacing:-.03em}.quote-tile .chg{font-size:var(--fs-xs);font-weight:650;margin-top:.15rem}.quote-tile .chg.up{color:var(--market-up)}.quote-tile .chg.down{color:var(--market-down)}.trade-chart{display:flex;flex-direction:column;gap:.45rem;min-width:0}.trade-segment.chart-range{margin:.15rem 0 .55rem;position:relative;z-index:2}.trade-segment.chart-range .tab{cursor:pointer;pointer-events:auto}.trade-segment.chart-range .tab:disabled{opacity:.7;cursor:wait}.trade-chart-wrap{position:relative;min-height:12rem}.trade-chart-wrap.is-loading .trade-chart{opacity:.35;filter:grayscale(.15);transition:opacity .15s ease}.panel-busy{position:relative;min-height:5rem}.panel-busy.is-loading>:not(.trade-chart-loading){opacity:.35;transition:opacity .15s ease}.trade-chart-loading{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;gap:.55rem;border-radius:var(--radius-sm);background:hsla(0,0%,100%,.72);color:var(--text);font-size:var(--fs-sm);font-weight:650;pointer-events:none}.trade-chart-spinner{width:1rem;height:1rem;border-radius:50%;border:2px solid color-mix(in srgb,var(--accent) 25%,transparent);border-top-color:var(--accent-strong);animation:chart-spin .7s linear infinite}@keyframes chart-spin{to{transform:rotate(1turn)}}.trade-chart-meta{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.trade-chart-price-block{display:flex;flex-wrap:wrap;align-items:baseline;gap:.45rem .7rem}.trade-chart-label{font-size:var(--fs-sm);color:var(--text-muted);font-weight:600}.trade-chart-last{font-size:1.45rem;font-weight:750;letter-spacing:-.03em}.trade-chart-change{font-size:var(--fs-sm);font-weight:650}.trade-chart-change.up,.trade-chart-last.up,.trade-chart-stats .stat-v.up{color:var(--market-up)}.trade-chart-change.down,.trade-chart-last.down,.trade-chart-stats .stat-v.down{color:var(--market-down)}.trade-chart-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:.45rem;gap:.45rem;padding:.55rem .65rem;border-radius:var(--radius-sm);background:#f7f8fa;border:1px solid var(--border)}.trade-chart-stats .stat-k{display:block;font-size:.68rem;color:var(--text-muted);font-weight:650;margin-bottom:.1rem}.trade-chart-stats .stat-v{font-size:var(--fs-sm);font-weight:700;letter-spacing:-.02em}.trade-chart svg{width:100%;height:auto;display:block;border-radius:var(--radius-sm);background:linear-gradient(180deg,#fafbfc,#fff)}.chart-axis-label{fill:#8b93a0;font-size:11px;font-weight:600}.trade-chart-x{display:flex;justify-content:space-between;gap:.5rem;font-size:var(--fs-xs);color:var(--text-muted);font-weight:600}.chart-marker-buy{fill:var(--market-up);stroke:#fff;stroke-width:1.5}.chart-marker-sell{fill:var(--market-down);stroke:#fff;stroke-width:1.5}.chart-legend{display:flex;gap:.85rem;font-size:var(--fs-xs);color:var(--text-muted)}.legend-buy{color:var(--market-up)}.legend-sell{color:var(--market-down)}.chart-empty{margin:0;padding:1rem 0}.trade-fold{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);padding:.55rem .85rem}.trade-fold summary{cursor:pointer;font-weight:650;font-size:var(--fs-sm);color:var(--text);list-style:none}.trade-fold summary::-webkit-details-marker{display:none}.trade-fold[open]{padding-bottom:.85rem}.trade-fold[open] summary{margin-bottom:.65rem;padding-bottom:.55rem;border-bottom:1px solid var(--border)}.trade-fold-body{display:grid;grid-gap:.5rem;gap:.5rem}.trade-fold-body h3{margin:.75rem 0 .35rem;font-size:var(--fs-sm);font-weight:700;color:var(--text-muted)}.trade-fold-body h3:first-child{margin-top:0}.trade-table-wrap{overflow:auto;max-height:12rem}.trade-alerts-list{list-style:none;margin:0;padding:0;max-height:14rem;overflow:auto}.trade-alerts-list li{display:flex;justify-content:space-between;gap:.75rem;padding:.65rem 0;border-bottom:1px solid var(--border)}.trade-alerts-list li:last-child{border-bottom:none}.trade-report-pre{margin:0;white-space:pre-wrap;font-family:inherit;font-size:var(--fs-sm);line-height:1.55;color:var(--text);max-height:20rem;overflow:auto}.ai-hero-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.85rem}.ai-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--space-page);align-items:start}.ai-grid,.trade-layout{display:grid;gap:var(--space-page)}.trade-layout{flex:1 1;min-height:0;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-gap:var(--space-page)}.trade-col{min-height:0;display:flex;flex-direction:column;gap:var(--space-page);overflow:hidden}.trade-col>.card-scroll{flex:1 1}.emoticon-page{display:flex;flex-direction:column;gap:var(--space-page);flex:1 0 auto;min-height:min-content;width:100%;min-width:0;padding-bottom:2.5rem}.emoticon-page>*{flex-shrink:0}.emoticon-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);grid-gap:var(--space-page);gap:var(--space-page);min-width:0;width:100%;align-items:start}.emoticon-batches-card,.emoticon-preview-card{overflow:visible}.emoticon-preview-body{display:flex;flex-direction:column;gap:var(--space-page);min-width:0}.emoticon-preview-actions{flex-shrink:0;display:flex;flex-direction:column;gap:.35rem}.emoticon-preview-scroll{max-height:min(56vh,520px);padding:.15rem .25rem .15rem 0}.emoticon-batches-scroll,.emoticon-preview-scroll{overflow:auto;overscroll-behavior:contain;min-width:0}.emoticon-batches-scroll{max-height:min(40vh,360px)}.emoticon-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));grid-gap:.65rem;gap:.65rem}.emoticon-preview-grid img{width:100%;aspect-ratio:1;object-fit:contain;background:repeating-conic-gradient(#eee 0 25%,#fff 0 50%) 50% /16px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);display:block}.emoticon-side{display:flex;flex-direction:column;gap:var(--space-page);min-width:0}.emoticon-chat .card-body{display:flex;flex-direction:column;gap:.6rem}.chat-log{display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;min-height:120px;max-height:min(320px,40vh)}.chat-msg{max-width:88%;padding:.5rem .7rem;border-radius:.7rem;font-size:.86rem;line-height:1.5;white-space:pre-wrap}.chat-user{align-self:flex-end;background:var(--accent-soft)}.chat-assistant{align-self:flex-start;background:var(--bg)}.chat-input{display:flex;gap:.5rem}.chat-input input{flex:1 1;min-width:0;padding:.5rem .7rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:inherit;font-size:var(--fs-sm)}.pose-list{margin:.35rem 0 0;padding-left:1.1rem;font-size:.85rem;line-height:1.6}@media (max-width:1100px){.emoticon-layout{grid-template-columns:1fr}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{flex-direction:column;align-items:flex-start;padding:1.25rem}.hero-emoji{display:none}.trade-layout{grid-template-columns:1fr;overflow:auto}.trade-col{overflow:visible}.card-scroll{height:auto;max-height:420px}}@media (max-width:900px){body,html{overflow:auto;overflow-x:hidden;height:auto;min-height:100%}.app-shell{flex-direction:column;height:auto;min-height:100dvh;overflow:visible;overflow-x:hidden}.mobile-topbar{display:flex;align-items:center;gap:.75rem;position:-webkit-sticky;position:sticky;top:0;z-index:40;padding:max(.65rem,env(safe-area-inset-top)) .85rem .65rem;background:var(--bg-elevated);color:var(--text);border-bottom:1px solid var(--border)}.mobile-topbar-brand{display:flex;align-items:center;gap:.55rem;min-width:0;font-size:.95rem}.nav-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--bg);border-radius:var(--radius-sm);width:2.5rem;height:2.5rem;display:grid;place-items:center;cursor:pointer;flex-shrink:0;padding:0}.nav-toggle-bars,.nav-toggle-bars:after,.nav-toggle-bars:before{display:block;width:1.05rem;height:2px;background:var(--text);border-radius:2px;position:relative}.nav-toggle-bars:after,.nav-toggle-bars:before{content:"";position:absolute;left:0}.nav-toggle-bars:before{top:-5px}.nav-toggle-bars:after{top:5px}.nav-backdrop{display:block;position:fixed;inset:0;z-index:45;border:0;padding:0;margin:0;background:rgba(15,23,32,.45);cursor:pointer}.sidebar{position:fixed;top:0;left:0;z-index:50;width:min(280px,88vw);height:100dvh;max-height:100dvh;transform:translateX(-105%);transition:transform .2s ease;overflow:auto;padding-top:max(1.15rem,env(safe-area-inset-top));box-shadow:8px 0 28px rgba(0,0,0,.28)}.app-shell.nav-open .sidebar{transform:translateX(0)}.main{padding:.85rem .85rem max(1rem,env(safe-area-inset-bottom));max-width:100%}.main,.page{overflow:visible;width:100%}.page{height:auto;min-width:0}.page-scroll{overflow:visible}.page-header{flex-direction:column;align-items:stretch;gap:.55rem}.page-header h1{font-size:1.35rem;word-break:keep-all}.page-header p{max-width:none}.ai-grid,.compact-stats,.grid-2,.grid-3,.trade-grid-main,.trade-layout,.trade-order-form{grid-template-columns:1fr}.trade-control-grid .btn-danger,.trade-order-actions,.trade-order-form .field.span-2{grid-column:span 1}.card{padding:.85rem .9rem;width:100%;max-width:100%}.card-head{flex-wrap:wrap;align-items:flex-start;gap:.45rem}.card-scroll{max-height:none;height:auto}.card-scroll,.card-scroll>.card-body,.card-scroll>.scroll-y{overflow:visible}.btn-row{width:100%}.btn-row .btn{flex:1 1 auto;min-width:min(100%,8.5rem)}.btn-danger{min-width:0}.field input,.field select,.field textarea,input,select,textarea{max-width:100%;min-width:0}.form-card,.login-panel,.tistory-password .stack-form{max-width:100%;width:100%}.remote-frame{max-width:100%}.remote-keys{flex-direction:column;align-items:stretch}.remote-keys .btn,.remote-keys input,.toolbar{width:100%}.toolbar .btn{flex:1 1 auto}.login-layout{padding:1rem;min-height:100dvh}}@media (max-width:480px){.main{padding:.7rem}.btn{padding:.62rem .8rem}.btn-row .btn{min-width:100%}.badge-row{width:100%}}