*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%;font-family:var(--font-base);color:var(--text-primary);background:var(--page-bg);-webkit-font-smoothing:antialiased}.app-shell{height:100%}:root{--state-running: #30d158;--state-paused: #ffd60a;--state-stopped: #8e8e93;--state-error: #ff453a;--state-waiting: #d1d5db;--state-running-tint: rgba(48, 209, 88, .06);--state-paused-tint: rgba(255, 214, 10, .08);--state-stopped-tint: rgba(142, 142, 147, .04);--state-error-tint: rgba(255, 69, 58, .08);--profit-up: #30d158;--profit-down: #ff453a;--type-display: clamp(40px, 9vw, 72px);--type-title: 20px;--type-body: 15px;--type-caption: 13px;--tracking-display: -.03em;--tracking-title: -.01em;--tracking-body: 0em;--tracking-caption: .02em;--leading-display: .95;--leading-title: 1.25;--leading-body: 1.45;--font-numeric: "SF Mono", "IBM Plex Mono", ui-monospace, "Cascadia Mono", monospace;--motion-state-fade: .15s;--motion-count-up: .2s;--motion-breathe: 2s;--sidebar-width: 220px;--sidebar-bg: #ffffff;--sidebar-border: #e5e7eb;--sidebar-item-hover: #f3f4f6;--sidebar-item-active-bg: #ecfdf5;--sidebar-item-active-text: #059669;--sidebar-logo-color: #059669;--page-bg: #f7f8fa;--card-bg: #ffffff;--card-border: #e5e7eb;--card-radius: 14px;--card-shadow: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--card-padding: 24px;--text-primary: #111827;--text-secondary: #6b7280;--text-tertiary: #9ca3af;--green-primary: #059669;--green-light: #ecfdf5;--green-text: #065f46;--red-primary: #ef4444;--red-light: #fef2f2;--orange-primary: #f59e0b;--orange-light: #fffbeb;--blue-primary: #3b82f6;--btn-radius: 10px;--btn-height: 38px;--font-base: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}html.ko-red{--profit-up: #ff453a;--profit-down: #3b82f6}.tabular{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}@keyframes apple-breathe{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.92);opacity:.9}}.breathe{animation:apple-breathe var(--motion-breathe) ease-in-out infinite}.state-fade-enter-active,.state-fade-leave-active{transition:opacity var(--motion-state-fade) ease-out}.state-fade-enter-from,.state-fade-leave-to{opacity:0}@keyframes apple-count-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.count-up{animation:apple-count-up var(--motion-count-up) cubic-bezier(.16,1,.3,1)}.apple-state-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--state-stopped);transition:background var(--motion-state-fade) ease-out}.apple-state-dot.running{background:var(--state-running)}.apple-state-dot.paused{background:var(--state-paused)}.apple-state-dot.stopped{background:var(--state-stopped)}.apple-state-dot.error{background:var(--state-error)}.apple-state-dot.waiting{background:var(--state-waiting)}.app-layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);height:100vh;background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;overflow-y:auto;flex-shrink:0;padding:0 0 24px}.sidebar-logo{display:flex;align-items:center;gap:10px;padding:24px 20px 20px;text-decoration:none}.sidebar-logo-icon{width:28px;height:28px;background:var(--green-primary);border-radius:8px;display:flex;align-items:center;justify-content:center}.sidebar-logo-icon svg{width:16px;height:16px;fill:#fff}.sidebar-logo-text{font-size:15px;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.sidebar-nav{list-style:none;padding:0 12px}.sidebar-nav-item{margin-bottom:2px}.sidebar-nav-link{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;text-decoration:none;font-size:14px;font-weight:500;color:var(--text-secondary);transition:background .12s,color .12s;cursor:pointer}.sidebar-nav-link:hover{background:var(--sidebar-item-hover);color:var(--text-primary)}.sidebar-nav-link.active{background:var(--sidebar-item-active-bg);color:var(--sidebar-item-active-text);font-weight:600}.sidebar-nav-link svg{width:17px;height:17px;flex-shrink:0;opacity:.7}.sidebar-nav-link.active svg{opacity:1}.sidebar-divider{height:1px;background:var(--card-border);margin:8px 12px}.sidebar-footer{margin-top:auto;padding:0 12px}.sidebar-logout{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;font-size:14px;font-weight:500;color:var(--text-secondary);background:none;border:none;width:100%;cursor:pointer;transition:background .12s,color .12s}.sidebar-logout:hover{background:var(--red-light);color:var(--red-primary)}.layout-main{flex:1;overflow-y:auto;background:var(--page-bg);display:flex;flex-direction:column}.page-content{flex:1;padding:32px 36px;max-width:1280px;width:100%}.page-header{margin-bottom:28px}.page-title{font-size:24px;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.page-subtitle{font-size:14px;color:var(--text-secondary);margin-top:4px}.section-label{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:12px}.mock-badge{display:inline-block;margin-left:10px;padding:2px 8px;background:var(--orange-light);color:var(--orange-primary);border-radius:6px;font-size:11px;font-weight:700;vertical-align:middle;letter-spacing:.02em}.mobile-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 20px;background:#fff;border-bottom:1px solid var(--card-border)}.mobile-header-title{font-size:18px;font-weight:700;color:var(--text-primary);letter-spacing:-.01em}.mobile-header-actions{display:flex;gap:8px}.mobile-icon-btn{width:36px;height:36px;border:none;background:none;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:background .12s}.mobile-icon-btn:active{background:var(--sidebar-item-hover)}.mobile-icon-btn svg{width:22px;height:22px}.mobile-main{flex:1;overflow-y:auto;background:var(--page-bg);padding-bottom:72px}.mobile-content{padding:16px 16px 0}.mobile-tabbar{position:fixed;bottom:0;left:0;right:0;z-index:100;display:flex;background:#fff;border-top:1px solid var(--card-border);padding-bottom:env(safe-area-inset-bottom,0px);height:60px}.mobile-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:none;background:none;cursor:pointer;padding:6px 0;color:var(--text-tertiary);transition:color .12s}.mobile-tab.active{color:var(--green-primary)}.mobile-tab-icon svg{width:22px;height:22px}.mobile-tab-label{font-size:10px;font-weight:500}.mobile-more-overlay{position:fixed;inset:0;background:#0006;z-index:200;display:flex;align-items:flex-end}.mobile-more-drawer{width:100%;background:#fff;border-radius:20px 20px 0 0;padding:12px 0 calc(env(safe-area-inset-bottom,0px) + 8px)}.mobile-more-handle{width:36px;height:4px;background:var(--card-border);border-radius:2px;margin:0 auto 16px}.mobile-more-list{display:flex;flex-direction:column}.mobile-more-item{display:flex;align-items:center;height:52px;padding:0 24px;font-size:16px;font-weight:500;color:var(--text-primary);background:none;border:none;border-bottom:1px solid var(--card-border);cursor:pointer;text-align:left;transition:background .12s}.mobile-more-item:last-child{border-bottom:none}.mobile-more-item:active{background:var(--sidebar-item-hover)}.mobile-more-item.logout{color:var(--red-primary)}.drawer-enter-active,.drawer-leave-active{transition:opacity .2s}.drawer-enter-from,.drawer-leave-to{opacity:0}.drawer-enter-active .mobile-more-drawer,.drawer-leave-active .mobile-more-drawer{transition:transform .22s cubic-bezier(.16,1,.3,1)}.drawer-enter-from .mobile-more-drawer,.drawer-leave-to .mobile-more-drawer{transform:translateY(100%)}.m-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;padding:16px;box-shadow:var(--card-shadow);margin-bottom:12px}.m-card-title{font-size:13px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px}.m-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--card-border);font-size:14px}.m-row:last-child{border-bottom:none}@media(max-width:768px){.page-header{display:none}}
