@import"https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.css";@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Geist+Mono:wght@400;500&display=swap";:root{--canvas: #faf8f3;--surface: #ffffff;--surface-sunken: #f3f0e9;--ink: #1a1c19;--ink-soft: #5b5e57;--ink-faint: #8a8d83;--ink-on-accent: #ffffff;--hairline: rgba(26, 28, 25, .1);--hairline-strong: rgba(26, 28, 25, .16);--skeleton-sheen: rgba(26, 28, 25, .05);--accent: #0e7a4b;--accent-soft: #e3f2ea;--accent-ink: #0a5235;--warn: #b5740c;--warn-soft: #fbefd9;--danger: #b23b3b;--danger-soft: #f8e7e5;--r-sm: 6px;--r: 10px;--r-lg: 16px;--shadow-1: 0 1px 2px rgba(26, 28, 25, .04);--shadow-float: 0 10px 30px -16px rgba(26, 28, 25, .18);--scrim: rgba(26, 28, 25, .32);--font-display: "Fraunces", "Pretendard", Georgia, serif;--font-body: "Pretendard", system-ui, -apple-system, sans-serif;--font-mono: "Geist Mono", "IBM Plex Mono", ui-monospace, "SF Mono", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body,#root{background:var(--canvas);color:var(--ink);font-family:var(--font-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#root{min-height:100vh}.cab-num{font-family:var(--font-mono);font-feature-settings:"tnum" 1;font-variant-numeric:tabular-nums}.cab-display{font-family:var(--font-display);letter-spacing:-.01em}@keyframes cab-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.cab-fade-up{animation:cab-fade-up .45s cubic-bezier(.16,1,.3,1) both}.cab-stagger>*{animation:cab-fade-up .45s cubic-bezier(.16,1,.3,1) both}.cab-stagger>*:nth-child(1){animation-delay:.02s}.cab-stagger>*:nth-child(2){animation-delay:.08s}.cab-stagger>*:nth-child(3){animation-delay:.14s}.cab-stagger>*:nth-child(4){animation-delay:.2s}.cab-stagger>*:nth-child(5){animation-delay:.26s}@media (prefers-reduced-motion: reduce){.cab-fade-up,.cab-stagger>*{animation:none}*{transition:none!important}}.cab-input{width:100%;padding:8px 11px;border-radius:var(--r-sm);border:1px solid var(--hairline-strong);background:var(--surface);color:var(--ink);font-family:var(--font-body);font-size:14px;line-height:1.4;min-width:0;transition:border-color .15s ease,box-shadow .15s ease}.cab-input::placeholder{color:var(--ink-faint)}.cab-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.cab-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:var(--r-sm);border:1px solid var(--hairline-strong);background:var(--surface);color:var(--ink);font-family:var(--font-body);font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,opacity .15s ease}.cab-btn:hover{background:var(--surface-sunken)}.cab-btn:disabled{opacity:.45;cursor:not-allowed}.cab-btn-ghost{border-color:transparent;background:transparent}.cab-btn-ghost:hover{background:var(--surface-sunken)}.cab-btn-accent{border-color:transparent;background:var(--accent);color:var(--ink-on-accent);box-shadow:var(--shadow-1)}.cab-btn-accent:hover{background:var(--accent-ink)}.cab-btn-accent:disabled{background:var(--accent)}.cab-btn-danger{border-color:transparent;background:var(--danger-soft);color:var(--danger)}.cab-btn-danger:hover{background:var(--danger);color:var(--ink-on-accent)}.cab-tab{padding:6px 14px;border-radius:var(--r-sm);border:none;background:transparent;color:var(--ink-soft);font-family:var(--font-body);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease}.cab-tab:hover:not(:disabled){color:var(--ink)}.cab-tab:disabled{opacity:.4;cursor:not-allowed}.cab-tab-active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}.cab-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:5px 9px;border-radius:var(--r-sm);background:var(--surface-sunken);border:1px solid var(--hairline);font-family:var(--font-mono);font-size:12px;color:var(--accent-ink);word-break:break-all}.cab-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.02em}.cab-badge-ok{background:var(--accent-soft);color:var(--accent-ink)}.cab-badge-warn{background:var(--warn-soft);color:var(--warn)}.cab-badge-danger{background:var(--danger-soft);color:var(--danger)}.cab-badge-neutral{background:var(--surface-sunken);color:var(--ink-soft)}@keyframes cab-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.cab-skeleton{border-radius:var(--r-sm);background:linear-gradient(90deg,var(--surface-sunken) 25%,var(--skeleton-sheen) 50%,var(--surface-sunken) 75%);background-size:200% 100%;animation:cab-shimmer 1.4s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.cab-skeleton{animation:none}}.cab-scroll::-webkit-scrollbar{width:10px;height:10px}.cab-scroll::-webkit-scrollbar-thumb{background:var(--hairline-strong);border-radius:999px;border:3px solid transparent;background-clip:content-box}.cab-scroll::-webkit-scrollbar-track{background:transparent}@media (max-width: 48rem){.cab-editor-shell{min-width:0}.cab-editor-main-row{flex-direction:column!important;min-width:0}.cab-editor-tool-nav{width:100%!important;flex-direction:row!important;flex-wrap:wrap!important;align-items:center!important;border-right:0!important;border-bottom:1px solid var(--hairline)!important}.cab-editor-main-column{width:100%!important;min-width:0}.cab-editor-header,.cab-editor-tab-row{flex-wrap:wrap!important;min-width:0}.cab-editor-header .cab-input{flex:1 1 100%!important}.cab-editor-header [role=group],.cab-editor-tab-row [role=tablist]{flex-wrap:wrap;max-width:100%}.cab-editor-tab-row>*{min-width:0;max-width:100%}.cab-editor-body{flex-direction:column!important;min-width:0;overflow:auto}.cab-editor-canvas{flex:0 0 50%!important;min-height:0;width:100%!important}.cab-editor-empty-frame{width:100%!important;min-width:100%!important}.cab-editor-panel{width:100%!important;max-width:100%;flex:0 0 auto!important;min-width:0;border-top:1px solid var(--hairline);border-left:0!important}}
