:root{color-scheme:light dark;--color-bg: #ffffff;--color-surface: #f8f9fa;--color-elevated: #ffffff;--color-border: #e1e4e8;--color-border-subtle: rgba(127,127,127,.12);--color-text: #24292f;--color-text-secondary: #57606a;--color-text-tertiary: #8b949e;--color-primary: #0969da;--color-primary-hover: #0860ca;--color-primary-bg: rgba(9,105,218,.08);--color-danger: #cf222e;--color-danger-hover: #a40e26;--color-warning-bg: #fff8c5;--color-warning-border: #d4a72c;--color-warning-text: #7d4e00;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 3px rgba(0,0,0,.08);--shadow-md: 0 4px 12px rgba(0,0,0,.1);--shadow-lg: 0 8px 24px rgba(0,0,0,.12);--transition: .15s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;color:var(--color-text);background:var(--color-bg);line-height:1.5;overflow-x:hidden}.app{display:flex;flex-direction:column;height:100%}.toolbar{padding:12px 16px;display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.content{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) var(--resizer-width, 8px) var(--sidepanel-width, clamp(360px, 36vw, 560px))}.chart-wrap{position:relative}.side-panel{border-left:1px solid var(--color-border);padding:16px;height:100%;display:flex;flex-direction:column;gap:12px;min-height:0;overflow:hidden}.resizer{position:relative;width:var(--resizer-width, 8px);cursor:col-resize;-webkit-user-select:none;user-select:none}.resizer:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:transparent}.resizer:hover:after,.resizer.dragging:after{background:linear-gradient(to right,transparent 3px,var(--color-border) 3px,var(--color-border) 5px,transparent 5px)}@media (max-width: 1024px){.content{grid-template-columns:1fr}.resizer{display:none}.side-panel{border-left:none;border-top:1px solid var(--color-border);height:auto}}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);cursor:pointer;transition:all var(--transition);font-family:inherit}.btn[aria-pressed=true]{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn[aria-pressed=true]:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn[aria-pressed=true]:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-primary-bg)}button:hover:not(:disabled),.btn:hover:not(:disabled){background:var(--color-surface);border-color:var(--color-text-secondary)}button:active:not(:disabled),.btn:active:not(:disabled){transform:scale(.98)}button:disabled,.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-ghost{border:none;background:transparent}.btn-ghost:hover:not(:disabled){background:var(--color-surface)}.btn-sm{padding:4px 8px;font-size:12px;line-height:16px}.btn-xs{padding:2px 6px;font-size:11px;line-height:14px}input[type=text],input[type=email],input[type=password],select,textarea{padding:8px 12px;font-size:14px;line-height:20px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);transition:border-color var(--transition),box-shadow var(--transition);font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg)}input:disabled,select:disabled,textarea:disabled{opacity:.6;cursor:not-allowed;background:var(--color-surface)}.card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);z-index:900;display:flex;justify-content:flex-end;animation:fadeIn .15s ease-out}.drawer-panel{height:100%;width:min(560px,92vw);background:var(--color-bg);box-shadow:var(--shadow-lg);border-left:1px solid var(--color-border);display:flex;flex-direction:column;animation:slideIn .18s ease-out}.drawer-close{position:absolute;top:10px;right:10px}@keyframes slideIn{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.modal-card{width:90%;max-width:420px;background:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:24px;animation:slideUp .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-field label{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.form-field input{width:100%}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg);font-size:12px;line-height:16px;color:var(--color-text);transition:all var(--transition)}.chip:hover{border-color:var(--color-text-secondary);background:var(--color-surface)}.chip.active,.chip.editing{border-color:var(--color-primary);background:var(--color-primary-bg);color:var(--color-primary)}.chip button{padding:0;border:none;background:none;font-size:16px;line-height:1;color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition)}.chip button:hover{color:var(--color-danger)}.banner{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius-md);font-size:13px;line-height:18px}.banner-warning{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning-text)}.banner strong{font-weight:600}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.symbol-search{position:relative}.symbol-search input{width:100%}.symbol-search .dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:320px;overflow:auto;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg);box-shadow:var(--shadow-md);z-index:600}.symbol-search .option{display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer}.symbol-search .option:hover,.symbol-search .option.active{background:var(--color-surface)}.symbol-search .option .symbol{font-weight:600}.symbol-search .option .name{color:var(--color-text-secondary)}.token{display:inline-flex;align-items:center;gap:6px;padding:2px 6px;border-radius:var(--radius-sm)}.token-symbol{cursor:pointer}.token-symbol:hover{background:var(--color-surface)}.sep{opacity:.6;margin:0 4px}.popover{position:absolute;top:calc(100% + 6px);left:0;width:min(360px,46vw);z-index:700}.drawing-toolbar{display:inline-flex;gap:4px;padding:4px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.drawing-toolbar button{padding:6px 12px;font-size:13px;background:transparent;border:none;border-radius:4px;transition:all var(--transition)}.drawing-toolbar button:hover{background:var(--color-primary-bg);color:var(--color-primary)}.drawing-toolbar button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-primary-bg)}.drawing-toolbar button.active,.drawing-toolbar button[aria-pressed=true]{background:var(--color-primary);color:#fff;font-weight:600}.drawing-toolbar button.active:hover{background:var(--color-primary-hover)}.drawing-toolbar button.danger:not(:disabled){color:var(--color-danger)}.drawing-toolbar button.danger:hover:not(:disabled){background:#cf222e14;color:var(--color-danger)}.toast{position:fixed;left:16px;bottom:16px;display:inline-flex;gap:10px;align-items:center;padding:10px 12px;border-radius:var(--radius-md);background:var(--color-elevated);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);z-index:800}.toast button{padding:4px 10px;font-size:12px}
