:root{--brand-purple: #3a1c71;--brand-raspberry: #d1294f;--brand-apricot: #ffaf7b;--primary-dim: #a21136;--primary-default: #e82154;--primary-soft: #f17494;--primary-light: #fdf4f6;--secondary-dim: #131c20;--secondary-default: #273940;--secondary-pale: #679099;--secondary-soft: #c0ced1;--secondary-pastel: #e4eaeb;--secondary-light: #f1f3f3;--success-default: #08c5a3;--success-deep: #057662;--success-light: #def9f4;--waiting-default: #2176ae;--waiting-deep: #1a5e8b;--waiting-light: #edf5f8;--warning-default: #ffd166;--warning-deep: #b18f3d;--warning-light: #fff6e0;--danger-default: #a5243d;--danger-light: #fdf4f6;--gray-100: #e8eaed;--gray-500: #8a95a5;--gray-800: #393e44;--gray-900: #1e2124;--fg-1: #273940;--fg-2: #393e44;--fg-3: #8a95a5;--fg-muted: #919da1;--bg-page: #ffffff;--bg-muted: #f1f3f3;--bg-input: #f3f4f6;--border-hairline: #f1f3f3;--border-default: #e8eaed;--border-focus: #e82154;--tab-selected-fg: #5f32b2;--tab-selected-bg: #f0ecf8;--radius-md: 8px;--radius-lg: 14px;--radius-xl: 16px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04), 0 0 1px rgba(0, 0, 0, .1);--shadow-card: 0 0 1px rgba(0, 0, 0, .3), 0 2px 30px rgba(0, 0, 0, .08), 0 0 15px rgba(0, 0, 0, .02);--shadow-nav: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--ease-out: cubic-bezier(.2, .8, .2, 1);--t-fast: .12s;--t-base: .18s;--font-ui: "IBM Plex Sans Thai", "Inter", system-ui, sans-serif;--font-body: "IBM Plex Sans Thai Looped", "IBM Plex Sans Thai", system-ui, sans-serif;--font-code: "IBM Plex Mono", "Consolas", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);color:var(--fg-1);background:var(--bg-page);font-size:16px;line-height:24px}h1,h2,h3,h4,h5,button,.ui{font-family:var(--font-ui)}.nav{position:sticky;top:0;z-index:40;padding:4px 0;background:#fffc;backdrop-filter:blur(16px) saturate(1.5);-webkit-backdrop-filter:blur(16px) saturate(1.5);box-shadow:var(--shadow-nav)}.nav[data-menu-open=true]{backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);box-shadow:none}.nav__inner{max-width:1280px;height:46px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.nav__side{flex:1 1 0;display:flex;align-items:center;height:100%}.nav__side--end{justify-content:flex-end}.nav__brand{display:flex;align-items:center}.nav__brand--center{display:none}.nav__logo{height:32px;width:auto;display:block}.nav__links{display:flex;align-items:center;gap:8px;margin:0;padding:0;list-style:none}.nav__link{display:inline-flex;align-items:center;padding:8px 14px;border-radius:12px;font-family:var(--font-ui);font-size:16px;font-weight:500;line-height:24px;color:var(--secondary-default);text-decoration:none;white-space:nowrap;transition:background var(--t-fast) var(--ease-out)}.nav__link:hover{background:var(--secondary-pastel)}.nav__toggle{width:24px;height:46px;padding:0;border:0;background:transparent;color:var(--secondary-default);cursor:pointer;display:none;place-items:center}.nav__toggle-icon{grid-area:1 / 1;transition:transform .24s cubic-bezier(.4,0,1,1),opacity .24s cubic-bezier(.4,0,1,1)}.nav__toggle-icon--close{opacity:0;transform:rotate(-90deg) scale(.6)}.nav[data-menu-open=true] .nav__toggle-icon{transition-duration:.34s;transition-timing-function:cubic-bezier(.22,1,.36,1)}.nav[data-menu-open=true] .nav__toggle-icon--open{opacity:0;transform:rotate(90deg) scale(.6)}.nav[data-menu-open=true] .nav__toggle-icon--close{opacity:1;transform:none}.nav-menu{position:fixed;top:54px;left:0;right:0;bottom:0;z-index:39;display:flex;flex-direction:column;gap:8px;margin:0;padding:8px 14px 6px;list-style:none;background:#fffc;backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .24s cubic-bezier(.4,0,1,1),visibility 0s .24s}.nav-menu[data-open=true]{clip-path:inset(0);visibility:visible;transition:clip-path .34s cubic-bezier(.22,1,.36,1),visibility 0s}.nav-menu__item{display:flex;align-items:center;width:100%;height:40px;padding:8px 14px;border-radius:12px;font-family:var(--font-ui);font-size:16px;font-weight:500;color:var(--secondary-default);text-decoration:none;transition:background var(--t-fast) var(--ease-out)}.nav-menu__item:hover{background:var(--secondary-pastel)}@media(prefers-reduced-motion:reduce){.nav-menu,.nav-menu[data-open=true],.nav__toggle-icon{transition:none!important}}@media(max-width:1023px){.nav__inner{padding:0 14px}.nav__side--start .nav__brand,.nav__links{display:none}.nav__brand--center{display:flex}.nav__toggle{display:inline-grid}}.page{max-width:1280px;margin:0 auto;padding:24px 16px}.page--embed{max-width:none;padding:12px}.page--embed .workspace{margin-top:0}.embed-link{font-family:var(--font-ui);font-size:14px;line-height:20px;color:var(--fg-3);margin-bottom:8px}.embed-link a{color:var(--primary-default);text-decoration:none;word-break:break-all}.embed-link a:hover{text-decoration:underline}.hero{display:flex;align-items:center;justify-content:center;gap:16px;margin:12px 0 8px}.hero__icon{color:var(--fg-1);display:grid;place-items:center}.hero h1{font-size:48px;line-height:1;font-weight:600;margin:0;color:var(--fg-1)}.hero-sub{text-align:center;color:var(--fg-3);font-size:16px;margin:8px 0 0}.workspace{margin-top:24px;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:22px;align-items:start}.card{background:#fff;border-radius:var(--radius-xl);border:1px solid var(--secondary-pastel);overflow:hidden}.card__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--secondary-pastel);min-height:54px}.card__title{display:flex;align-items:center;gap:8px;font-family:var(--font-ui);font-weight:600;font-size:16px;color:var(--fg-1);white-space:nowrap}.card__actions{display:flex;align-items:center;gap:8px}.card__tools{display:flex;align-items:center;gap:0;margin-left:auto}.editor-wrap .cm-editor{font-size:15px;background:var(--secondary-light)}.editor-wrap .cm-editor.cm-focused{outline:none}.editor-wrap .cm-scroller{font-family:IBM Plex Mono,Consolas,monospace!important;line-height:1.7;min-height:420px}.editor-wrap .cm-content{font-family:IBM Plex Mono,Consolas,monospace!important}.editor-wrap .cm-gutters{background:var(--secondary-light);border-right:1px solid var(--secondary-pastel);color:var(--fg-3)}.editor-wrap .cm-activeLine,.editor-wrap .cm-activeLineGutter{background:#2739400b}.editor-wrap .cm-selectionBackground{background:#e8215424!important}.editor-wrap .cm-content ::selection{background:#e8215424}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:8px 12px;border-radius:var(--radius-md);border:0;cursor:pointer;font-family:var(--font-ui);font-weight:500;font-size:16px;white-space:nowrap;transition:background var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--primary-default);color:#fff}.btn--primary:hover:not(:disabled){background:var(--primary-dim)}.btn--secondary{background:var(--secondary-light);color:var(--secondary-default)}.btn--secondary:hover:not(:disabled){background:var(--secondary-pastel)}.btn--ghost{background:transparent;color:var(--fg-2)}.btn--ghost:hover:not(:disabled){background:var(--secondary-light)}.btn--icon{width:40px;height:40px;padding:0}.btn--head{height:40px;padding:8px 16px;margin-left:4px}.btn svg [stroke],.nav__toggle svg [stroke]{stroke-width:2}.btn .icon-danger{color:var(--danger-default)}.icon-flip{transform:scaleX(-1)}[data-tooltip]{position:relative;--tooltip-x: -50%}[data-tooltip-align=end]{--tooltip-x: 0}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;top:calc(100% + 6px);left:50%;z-index:10;padding:4px 10px;border-radius:var(--radius-md);background:var(--secondary-pastel);box-shadow:0 0 1px #0000004d,0 2px 10px #0000000f,0 0 5px #00000005;color:var(--secondary-default);font-family:var(--font-body);font-size:13px;font-weight:400;line-height:20px;white-space:nowrap;pointer-events:none;opacity:0;transform:translate(var(--tooltip-x),-4px);transition:opacity var(--t-fast) var(--ease-out),transform var(--t-fast) var(--ease-out)}[data-tooltip-align=end]:after{left:auto;right:0}@media(hover:hover){[data-tooltip]:hover:after{opacity:1;transform:translate(var(--tooltip-x));transition-delay:.3s}}[data-tooltip]:focus-visible:after{opacity:1;transform:translate(var(--tooltip-x))}@media(prefers-reduced-motion:reduce){[data-tooltip]:after{transition:none}}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--radius-pill);font-family:var(--font-ui);font-weight:600;font-size:13px}.badge--idle{background:var(--secondary-light);color:var(--secondary-default)}.badge--running{background:var(--waiting-light);color:var(--waiting-deep)}.badge--success{background:var(--success-light);color:var(--success-deep)}.badge--error{background:var(--danger-light);color:var(--danger-default)}.badge--warning{background:var(--warning-light);color:var(--warning-deep)}.console{background:var(--secondary-dim);color:var(--gray-100);font-family:var(--font-code);font-size:14px;line-height:1.7;padding:16px;min-height:300px;max-height:480px;overflow:auto;cursor:text}.console__text{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word}.console__stderr{color:var(--primary-soft)}.console__stdin{color:var(--success-default)}.console__placeholder{color:var(--fg-3);font-family:var(--font-body)}.console__input-row{display:inline-flex;align-items:baseline;max-width:100%}.console__input{background:transparent;border:none;outline:none;color:var(--success-default);caret-color:var(--gray-100);font-family:var(--font-code);font-size:14px;line-height:1.7;padding:0}.console__input::placeholder{color:var(--fg-3);font-family:var(--font-body)}.footer{margin-top:48px;padding:22px 16px 36px;text-align:center;color:var(--fg-muted);font-size:13px;line-height:23px;display:flex;flex-direction:column;gap:4px}.card--editor{container-type:inline-size}@container (max-width: 510px){.card__head{flex-wrap:wrap;row-gap:4px}.card__tools{order:3;width:100%;justify-content:flex-end;margin-left:0}}@media(max-width:900px){.page{padding:16px}.workspace{grid-template-columns:1fr}.hero{gap:12px}.hero h1{font-size:2.25rem;line-height:2.5rem}.hero__icon svg{width:52px;height:52px}.editor-wrap .cm-scroller{min-height:300px}}@media(pointer:coarse){.editor-wrap .cm-editor,.console__input{font-size:16px}}
