.consent-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;background:color-mix(in srgb,var(--bg) 55%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.consent-modal{width:100%;max-width:560px;max-height:calc(100vh - 40px);overflow-y:auto;background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:28px 32px;color:var(--text);box-shadow:0 24px 80px -20px color-mix(in srgb,var(--bg) 60%,transparent)}.consent-modal h2{margin:0 0 6px;font-size:1.25rem}.consent-modal>p{margin:0 0 18px;color:var(--muted)}.consent-modal details{border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 14px;margin-bottom:10px}.consent-modal summary{cursor:pointer;text-transform:capitalize;font-weight:500}.consent-modal pre{margin:12px 0 2px;max-height:240px;overflow-y:auto;white-space:pre-wrap;word-break:break-word;font-size:.85rem;line-height:1.5;color:var(--muted)}.consent-modal label{display:flex;align-items:center;gap:8px;margin:16px 0;cursor:pointer}.um-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;display:flex;align-items:center;justify-content:center;padding:20px;background:color-mix(in srgb,var(--bg) 55%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:um-fade-in .15s var(--ease-out)}.um-modal{position:relative;width:100%;max-width:680px;max-height:calc(100vh - 40px);overflow-y:auto;background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:28px 32px;color:var(--text);box-shadow:0 24px 80px -20px color-mix(in srgb,var(--bg) 60%,transparent);animation:um-slide-up .2s var(--ease-out)}@keyframes um-fade-in{0%{opacity:0}to{opacity:1}}@keyframes um-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.um-close{position:absolute;top:18px;right:18px;display:grid;place-items:center;width:28px;height:28px;background:none;border:none;border-radius:var(--radius-sm);color:var(--muted);cursor:pointer}.um-close:hover{color:var(--text);background:var(--glass-thin)}.um-header{margin-bottom:22px;padding-right:32px}.um-title{margin:0 0 6px;font-size:var(--text-xl);font-weight:600;letter-spacing:-.01em}.um-subtitle{margin:0;color:var(--muted);font-size:var(--text-sm)}.um-tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.um-tier{position:relative;display:flex;flex-direction:column;gap:4px;padding:18px 16px 16px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s var(--ease-out),background .15s var(--ease-out),transform .15s var(--ease-out)}.um-tier:hover:not(:disabled){border-color:var(--border-strong);background:var(--panel-2);transform:translateY(-2px)}.um-tier.recommended{border-color:var(--accent);background:var(--accent-soft)}.um-tier:disabled{cursor:default}.um-tier.current{opacity:.55}.um-rec-badge{position:absolute;top:-9px;left:16px;padding:2px 8px;border-radius:999px;background:var(--accent);color:var(--accent-fg);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.um-current-badge{background:var(--muted);color:var(--bg)}.um-tier-title{font-size:var(--text-sm);font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.um-tier-price{font-size:var(--text-2xl);font-weight:700;letter-spacing:-.02em}.um-tier-per{font-size:var(--text-sm);font-weight:400;color:var(--muted)}.um-tier-hours{font-size:var(--text-sm)}.um-tier-spec{font-size:var(--text-xs);color:var(--muted)}.um-tier-busy{margin-top:6px;font-size:var(--text-xs);color:var(--accent)}.um-trust{margin:0 0 22px;padding:0;list-style:none;display:flex;flex-direction:column;gap:5px}.um-trust li{position:relative;padding-left:18px;color:var(--muted);font-size:var(--text-xs)}.um-trust li:before{content:"";position:absolute;left:3px;top:4px;width:5px;height:8px;border:solid var(--ok);border-width:0 1.5px 1.5px 0;transform:rotate(42deg)}.um-actions{display:flex;justify-content:flex-end}@media (max-width: 620px){.um-modal{padding:24px 20px}.um-tiers{grid-template-columns:1fr;gap:10px}.um-rec-badge{top:-8px}}.usage-chip{display:flex;flex-direction:column;gap:5px;width:100%;padding:8px 10px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s var(--ease-out),background .15s var(--ease-out)}.usage-chip:hover{border-color:var(--border-strong);background:var(--panel-2)}.usage-chip.no-plan{flex-direction:row;align-items:center;justify-content:space-between;gap:8px}.usage-chip-label{font-size:var(--text-xs);color:var(--muted);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.usage-chip-value{font-size:var(--text-xs);font-weight:600;color:var(--text)}.usage-chip-cta{font-size:var(--text-xs);font-weight:600;color:var(--accent)}.usage-chip-bar{display:block;height:3px;background:var(--glass-thin);border-radius:999px;overflow:hidden}.usage-chip-bar-fill{display:block;height:100%;min-width:0;background:var(--accent);border-radius:999px;transition:width .3s var(--ease-out)}.usage-chip.tone-amber .usage-chip-bar-fill{background:var(--warn)}.usage-chip.tone-red .usage-chip-bar-fill{background:var(--bad)}.usage-chip.tone-red .usage-chip-label{color:var(--bad)}.shell-mobile-header .usage-chip{width:auto;max-width:46%;margin-left:auto}@font-face{font-family:Delicious Handrawn;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/delicious-handrawn-400.woff2) format("woff2")}@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-400-italic.woff2) format("woff2")}@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-400.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600.woff2) format("woff2")}:root{font-feature-settings:"cv01" on,"ss03" on,"zero" on;--color-near-black: #08090a;--color-almost-white: #ffffff;--color-soft-white: #d0d6e0;--color-steel: #8a8f98;--color-graphite: #23252a;--color-iron: #161718;--color-ash: #62666d;--color-signal-violet: #8b45e6;--color-lavender-mist: #b79bff;--bg: var(--color-near-black);--bg-deep: #050506;--bg-panel: #0f1011;--bg-contrast: #23252a;--panel: rgba(255, 255, 255, .03);--panel-2: rgba(255, 255, 255, .06);--panel-solid: #0f1011;--border: #23252a;--border-strong: #383b3f;--text: #e5e5e6;--text-muted: #8a8f98;--muted: #8a8f98;--accent: #ffffff;--accent-hover: #e5e5e6;--accent-fg: #08090a;--accent-soft: rgba(255, 255, 255, .08);--ok: #27a644;--warn: #d9a441;--bad: #eb5757;--bubble: rgba(255, 255, 255, .04);--user: rgba(255, 255, 255, .06);--ide-sidebar: #0f1011;--ide-terminal: #08090a;--ide-dimmest: #62666d;--ide-lineno: #62666d;--ide-violet-tint: rgba(255, 255, 255, .06);--ide-violet-border: #23252a;--ide-violet-glow: none;--ide-input-bg: #161718;--syn-kw: #a78bfa;--syn-fn: #7fc4e0;--syn-type: #d9a441;--syn-str: #e09a6a;--syn-num: #3fb950;--syn-op: #8a8f98;--syn-comment: #62666d;--syn-add-bg: rgba(63, 185, 80, .1);--syn-add-border: #27a644;--font-sans: "Inter", -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", "Cascadia Code", monospace;--font-serif: "Instrument Serif", serif;--font-hand: "Delicious Handrawn", cursive;--font-display: "Instrument Serif", serif;--text-xs: 11px;--leading-xs: 1.2;--tracking-xs: .05em;--text-label: 12px;--text-sm: 13px;--leading-sm: 1.4;--text-base: 15px;--leading-base: 1.5;--text-lg: 18px;--leading-lg: 1.3;--tracking-lg: -.2px;--text-xl: 24px;--leading-xl: 1.2;--tracking-xl: -.3px;--text-2xl: 32px;--leading-2xl: 1.15;--tracking-2xl: -.7px;--text-3xl: 48px;--leading-3xl: 1.1;--tracking-3xl: -1px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 12px;--radius-xl: 12px;--radius-2xl: 12px;--radius-full: 9999px;--radius: var(--radius-md);--maxw: 760px;--glass-thin: rgba(255, 255, 255, .03);--glass-thin-blur: blur(12px) saturate(1.2);--glass: rgba(255, 255, 255, .05);--glass-blur: blur(20px) saturate(1.2);--glass-thick: rgba(15, 16, 17, .85);--glass-thick-blur: blur(32px) saturate(1.2);--glass-border: #23252a;--glass-border-strong: #383b3f;--glass-solid: #0f1011;--glass-accent: rgba(255, 255, 255, .06);--glass-accent-border: #23252a;--elevation-elements: rgb(35, 37, 42) 0 0 0 1px inset;--elevation-floating: rgb(35, 37, 42) 0 0 0 1px inset;--elevation-overlay: rgb(35, 37, 42) 0 0 0 1px inset;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.32, 1.55, .5, 1);--ease-spring-soft: cubic-bezier(.34, 1.32, .64, 1);--duration-fast: .15s;--duration-normal: .3s;--duration-slow: .6s;--duration-press: .1s}@media (prefers-color-scheme: light){:root{--color-near-black: #fafafa;--color-almost-white: #1a1a1a;--color-soft-white: #2e2e2e;--color-steel: #6e6e6e;--color-graphite: #eee;--color-iron: #f4f4f4;--color-ash: #9a9fa8;--color-signal-violet: #8b45e6;--color-lavender-mist: #5f2ba8;--bg: var(--color-near-black);--bg-deep: #f0f0f1;--bg-panel: #fff;--bg-contrast: #f4f4f5;--panel: rgba(0, 0, 0, .03);--panel-2: rgba(0, 0, 0, .06);--panel-solid: #fff;--border: #e5e5e6;--border-strong: #d0d0d2;--text: #1a1a1a;--text-muted: #6e6e6e;--muted: #6e6e6e;--accent: #08090a;--accent-hover: #23252a;--accent-fg: #ffffff;--accent-soft: rgba(0, 0, 0, .06);--ok: #1a8a3a;--warn: #b8861f;--bad: #c93838;--bubble: rgba(0, 0, 0, .04);--user: rgba(0, 0, 0, .06);--ide-sidebar: #f4f4f4;--ide-terminal: #efefef;--ide-input-bg: #f4f4f4;--syn-comment: #6e6e6e;--glass-thin: rgba(255, 255, 255, .55);--glass: rgba(255, 255, 255, .7);--glass-thick: rgba(255, 255, 255, .82);--glass-border: #e5e5e6;--glass-border-strong: #d0d0d2;--glass-solid: #fff;--glass-accent: rgba(0, 0, 0, .05);--glass-accent-border: rgba(0, 0, 0, .15)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:0s!important;transition-duration:0s!important}}@supports not (backdrop-filter: blur(1px)){:root{--glass-thin: var(--glass-solid);--glass: var(--glass-solid);--glass-thick: var(--glass-solid);--glass-thin-blur: none;--glass-blur: none;--glass-thick-blur: none}}@media (prefers-reduced-transparency: reduce){:root{--glass-thin: var(--glass-solid);--glass: var(--glass-solid);--glass-thick: var(--glass-solid);--glass-thin-blur: none;--glass-blur: none;--glass-thick-blur: none}}@media (prefers-contrast: more){:root{--glass-border: var(--glass-border-strong)}}.atelier-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-sans);font-weight:500;border-radius:var(--radius-md);cursor:pointer;border:1px solid transparent;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-press) var(--ease-out),opacity var(--duration-fast) var(--ease-out);white-space:nowrap;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.atelier-btn:disabled{opacity:.5;cursor:default}.atelier-btn:active:not(:disabled){transform:scale(.98)}.atelier-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.atelier-btn-sm{font-size:var(--text-sm);padding:6px 12px}.atelier-btn-md{font-size:var(--text-base);padding:8px 12px}.atelier-btn-lg{font-size:var(--text-lg);padding:10px 16px}.atelier-btn-primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);box-shadow:inset 0 1px #ffffff2e}.atelier-btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.atelier-btn-primary:active:not(:disabled){transform:scale(.98)}.atelier-btn-secondary{background:transparent;color:var(--text);border-color:var(--border)}.atelier-btn-secondary:hover:not(:disabled){background:var(--panel-2);border-color:var(--border-strong)}.atelier-btn-ghost{background:transparent;color:var(--text-muted);border-color:transparent}.atelier-btn-ghost:hover:not(:disabled){color:var(--text);background:var(--panel-2)}.atelier-btn-danger{background:var(--bad);color:#fff;border-color:var(--bad)}.atelier-btn-danger:hover:not(:disabled){opacity:.85}.atelier-input-wrap{display:flex;flex-direction:column;gap:6px}.atelier-input-label{font-size:var(--text-label);color:var(--text-muted);font-weight:500;letter-spacing:.01em}.atelier-input-field{position:relative;display:flex;align-items:center}.atelier-input-icon{position:absolute;left:var(--space-3);display:flex;align-items:center;color:var(--text-muted);pointer-events:none}.atelier-input-icon+.atelier-input{padding-left:var(--space-8)}.atelier-input{width:100%;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);padding:8px 12px;font-family:var(--font-sans);font-size:var(--text-base);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.atelier-input:focus{outline:none;border-color:var(--border-strong);box-shadow:0 0 0 2px var(--accent-soft)}.atelier-input::placeholder{color:var(--text-muted);opacity:.7}.atelier-input-err{border-color:var(--bad)}.atelier-input-err:focus{border-color:var(--bad);box-shadow:0 0 0 2px #eb575726}.atelier-input-error{font-size:var(--text-xs);color:var(--bad)}.atelier-textarea{resize:vertical;min-height:80px}.atelier-select{cursor:pointer}.atelier-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6)}.atelier-card-elevated{border-color:var(--border-strong);background:var(--bg-contrast)}.atelier-card-accent{border-color:var(--border-strong);background:var(--panel-2)}.atelier-card-header{margin-bottom:var(--space-4);font-size:var(--text-lg);font-weight:600;color:var(--text)}.atelier-card-body{color:var(--text)}.atelier-card-footer{margin-top:var(--space-4);display:flex;gap:var(--space-2)}.atelier-badge{display:inline-flex;align-items:center;font-size:var(--text-xs);font-weight:500;border-radius:var(--radius-sm);padding:0 var(--space-1);border:1px solid var(--border);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--tracking-xs);line-height:1.6}.atelier-badge-default{color:var(--text-muted);border-color:var(--border);background:var(--panel-2)}.atelier-badge-ok{color:var(--ok);border-color:#27a64466;background:#27a6441f}.atelier-badge-warn{color:var(--warn);border-color:#d9a44166;background:#d9a4411f}.atelier-badge-bad{color:var(--bad);border-color:#eb575766;background:#eb57571f}.atelier-badge-accent{color:var(--text);border-color:var(--border-strong);background:var(--panel-2)}.atelier-badge-idle{color:var(--text-muted);border-color:var(--border);background:var(--panel-2)}.atelier-skeleton{display:block;background:linear-gradient(90deg,var(--panel) 0%,var(--panel-2) 50%,var(--panel) 100%);background-size:200% 100%;animation:atelier-shimmer 1.6s infinite linear;border-radius:var(--radius-sm)}@keyframes atelier-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){.atelier-skeleton{animation:none;background:var(--panel)}}.atelier-spinner{display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted)}.atelier-spinner svg{animation:atelier-spin .6s linear infinite}.atelier-spinner-sm svg{width:14px;height:14px}.atelier-spinner-md svg{width:20px;height:20px}.atelier-tabs{display:flex;flex-direction:column}.atelier-tabs-bar{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border)}.atelier-tab{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;color:var(--text-muted);background:transparent;border:none;border-bottom:2px solid transparent;padding:var(--space-2) var(--space-4);cursor:pointer;transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.atelier-tab:hover{color:var(--text)}.atelier-tab.active{color:var(--text);border-bottom-color:var(--text)}.atelier-tabs-content{padding-top:var(--space-4)}.atelier-toast-container{position:fixed;top:var(--space-6);right:var(--space-6);z-index:9999;display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none}.atelier-toast{pointer-events:auto;cursor:pointer;min-width:240px;max-width:400px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-panel);color:var(--text);font-size:var(--text-sm);font-family:var(--font-sans);box-shadow:var(--elevation-overlay);animation:atelier-toast-in var(--duration-normal) var(--ease-out)}.atelier-toast-success{border-color:var(--ok)}.atelier-toast-error{border-color:var(--bad)}.atelier-toast-info{border-color:var(--border-strong)}@keyframes atelier-toast-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}:root{--radius: var(--radius-md);--maxw: 760px;--content-maxw: 1080px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 var(--font-sans);-webkit-font-smoothing:antialiased}.page{max-width:var(--maxw);margin:0 auto;height:100%;display:flex;flex-direction:column}.nav{display:flex;gap:.25rem;padding:.4rem .5rem;border-bottom:1px solid var(--border);background:var(--panel)}.nav button{flex:1}.nav button.active{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.content{flex:1;overflow-y:auto}.padded{padding:1rem}.form{display:flex;flex-direction:column;gap:.7rem}.form label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--muted)}.form input,.form select,.form textarea{background:var(--panel);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:.5rem .6rem;font:inherit}.form input:focus,.form select:focus,.form textarea:focus{outline:1px solid var(--accent);border-color:var(--accent)}.form textarea{resize:vertical}.field-err{color:var(--bad);font-size:.75rem}.form-actions{display:flex;gap:.5rem}.form-actions button{flex:1}.validate-result{border:1px solid;border-radius:8px;padding:.5rem .7rem}.validate-result.ok{border-color:var(--ok);color:var(--ok)}.validate-result.bad{border-color:var(--bad);color:var(--bad)}.provider-card{background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:.7rem .9rem;display:flex;flex-direction:column;gap:.2rem}.topbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--glass-thin);backdrop-filter:var(--glass-thin-blur);-webkit-backdrop-filter:var(--glass-thin-blur);border-bottom:1px solid var(--glass-border)}.topbar h1{font-size:1rem;margin:0;flex:1}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button{font:inherit;color:var(--text);background:var(--glass-thin);backdrop-filter:var(--glass-thin-blur);-webkit-backdrop-filter:var(--glass-thin-blur);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:.4rem .7rem;cursor:pointer;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),transform var(--duration-press) var(--ease-out)}button:active:not(:disabled){transform:scale(.98)}button:disabled{opacity:.5;cursor:default}button.ghost{background:transparent;border-color:transparent;color:var(--muted)}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);box-shadow:inset 0 1px #ffffff2e}.muted{color:var(--muted)}.small{font-size:.78rem}.mono{font-family:var(--font-mono)}.error{color:var(--bad);padding:.5rem 1rem}.session-list{list-style:none;margin:0;padding:.5rem;display:flex;flex-direction:column;gap:.4rem}.session-row{width:100%;text-align:left;background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:.7rem .9rem;display:flex;flex-direction:column;gap:.25rem}.row-top{display:flex;justify-content:space-between;align-items:center}.row-task{font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill{font-size:.72rem;padding:.1rem .5rem;border-radius:999px;border:1px solid var(--border);text-transform:uppercase;letter-spacing:.03em}.tone-ok{color:var(--ok);border-color:var(--ok)}.tone-warn{color:var(--warn);border-color:var(--warn)}.tone-bad{color:var(--bad);border-color:var(--bad)}.tone-idle{color:var(--muted)}.state-banner{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem 1rem;font-size:.8rem;border-bottom:1px solid var(--border);text-transform:capitalize}.state-banner .meta{text-transform:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline{flex:1;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.6rem}.cell{display:flex;flex-direction:column;gap:.2rem;max-width:88%}.cell.assistant{align-self:flex-start}.cell.user{align-self:flex-end;align-items:flex-end}.cell.user .bubble{background:var(--user)}.cell.error .bubble{background:color-mix(in srgb,var(--bad) 10%,var(--bg));border-color:var(--bad)}.cell.question .bubble{background:color-mix(in srgb,var(--accent) 8%,var(--bg));border-color:var(--accent)}.cell.question.answered .bubble{opacity:.6}.cell.state{flex-direction:row;align-items:center;gap:.5rem;align-self:center}.cell.commit,.cell.diff{color:var(--muted);font-size:.85rem}.cell.verbose{width:100%;max-width:100%}.bubble{background:var(--bubble);border:1px solid var(--border);border-radius:var(--radius);padding:.55rem .75rem;white-space:pre-wrap;word-break:break-word}.chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.3rem}.chip{background:var(--panel-2);border:1px solid var(--accent);color:var(--accent);border-radius:999px;padding:.3rem .7rem;font-size:.85rem}.tool-call{width:100%;max-width:100%}.tool-head{width:100%;text-align:left;display:flex;align-items:center;gap:.5rem;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:.4rem .6rem}.tool-body{margin:.3rem 0 0;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.6rem;overflow-x:auto;font-size:.82rem;font-family:var(--font-mono)}.badge{font-size:.72rem;font-weight:600;border-radius:5px;padding:0 .35rem;border:1px solid var(--border);color:var(--muted)}.badge.ok{color:var(--ok);border-color:var(--ok)}.badge.bad{color:var(--bad);border-color:var(--bad)}.composer{position:sticky;bottom:0;display:flex;gap:.4rem;padding:.6rem;background:var(--glass-thin);backdrop-filter:var(--glass-thin-blur);-webkit-backdrop-filter:var(--glass-thin-blur);border-top:1px solid var(--glass-border)}.composer input{flex:1;background:var(--panel);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:.55rem .7rem;font:inherit}.composer input:focus{outline:1px solid var(--accent);border-color:var(--accent)}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);display:inline-block}.live-dot.off{background:var(--muted)}.topbar-right{display:flex;align-items:center;gap:.4rem}.authbar{display:flex;align-items:center;gap:.35rem}.authbar input{width:8rem;background:var(--panel);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:.3rem .5rem;font:inherit}.authbar input:focus{outline:1px solid var(--accent);border-color:var(--accent)}.boot-done #atelier-boot{pointer-events:none}.app-shell{display:flex;height:100%}.shell-sidebar{width:240px;flex-shrink:0;display:flex;flex-direction:column;background:var(--glass-thin);backdrop-filter:var(--glass-thin-blur);-webkit-backdrop-filter:var(--glass-thin-blur);border-right:1px solid var(--glass-border);padding:1rem .75rem}.shell-wordmark{display:flex;align-items:center;gap:8px;padding:.25rem .4rem .9rem;margin-bottom:.25rem;font-weight:600;font-size:15px;letter-spacing:-.01em}.shell-wordmark svg{flex-shrink:0}.shell-nav{display:flex;flex-direction:column;gap:.15rem}.shell-nav-item{width:100%;text-align:left;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-md);background:transparent;border:1px solid transparent;color:var(--muted);cursor:pointer;font:inherit;font-size:13.5px;font-weight:500;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.shell-nav-item.active{background:var(--glass-accent);border-color:transparent;color:var(--text)}.shell-nav-item:not(.active):hover{color:var(--text);background:var(--glass-thin)}.shell-nav-item svg{width:16px;height:16px;flex-shrink:0}.shell-user{margin-top:auto;padding-top:.75rem;border-top:1px solid var(--glass-border);display:flex;flex-direction:column;gap:.5rem}.shell-user .shell-nav-item{width:100%}.shell-account{display:flex;align-items:center;gap:8px;min-width:0;padding:0 .25rem}.shell-avatar{flex-shrink:0;width:24px;height:24px;border-radius:var(--radius-full);background:var(--ide-violet-tint);border:1px solid var(--glass-accent-border);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;text-transform:uppercase;line-height:1}.shell-user-email{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--muted)}.shell-logout{flex-shrink:0;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--muted);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.shell-logout:hover{background:var(--glass-thin);color:var(--text)}.shell-content{flex:1;overflow-y:auto;min-width:0}.page-header{position:sticky;top:0;z-index:3;padding:14px 20px;background:var(--glass-thin);backdrop-filter:var(--glass-thin-blur);-webkit-backdrop-filter:var(--glass-thin-blur);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 calc(100% - 10px),transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 calc(100% - 10px),transparent 100%)}.page-header h2{margin:0;font-size:15px;font-weight:600;letter-spacing:-.01em}.page-header .subtitle{margin:.2rem 0 0;font-size:12.5px;color:var(--muted)}.page-header>*{max-width:var(--content-maxw);margin-inline:auto;width:100%}.shell-mobile-header,.shell-tabbar{display:none}.auth-gate{min-height:100%;display:flex;align-items:center;justify-content:center;padding:1.5rem}.auth-card{width:100%;max-width:340px;background:var(--glass-thick);backdrop-filter:var(--glass-thick-blur);-webkit-backdrop-filter:var(--glass-thick-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:1.25rem;display:flex;flex-direction:column;gap:.9rem;box-shadow:inset 0 1px #ffffff0f,0 16px 48px -16px #000000b3}.auth-card h2{margin:0;font-size:1.15rem}.auth-card .form{gap:.7rem}.auth-card .form-actions{margin-top:.2rem}.auth-tabs{display:flex;gap:.25rem;background:var(--glass-thin);backdrop-filter:var(--glass-thin-blur);-webkit-backdrop-filter:var(--glass-thin-blur);border-radius:var(--radius-md);padding:.2rem}.auth-tab{flex:1;background:transparent;border:none;color:var(--muted);padding:.4rem;border-radius:var(--radius-sm);cursor:pointer;font:inherit;font-size:.85rem}.auth-tab.active{background:var(--bg);color:var(--text);box-shadow:inset 0 1px #ffffff0f}.auth-error{color:var(--bad);font-size:.78rem;min-height:1rem}.boot-check{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;color:var(--muted)}.boot-check .wordmark{font-size:1.4rem;color:var(--text);font-weight:500}.boot-check svg{width:28px;height:28px;color:var(--accent);animation:atelier-spin .7s linear infinite}@keyframes atelier-spin{to{transform:rotate(360deg)}}@media (max-width: 899px){.app-shell{flex-direction:column}.shell-sidebar{display:none}.shell-mobile-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;border-bottom:1px solid var(--glass-border);background:var(--glass-thin);backdrop-filter:var(--glass-thin-blur);-webkit-backdrop-filter:var(--glass-thin-blur)}.shell-mobile-header .shell-wordmark{font-size:1rem;padding:0}.shell-tabbar{display:flex;position:sticky;bottom:0;background:var(--glass-thin);backdrop-filter:var(--glass-thin-blur);-webkit-backdrop-filter:var(--glass-thin-blur);-webkit-mask-image:linear-gradient(to top,#000 0%,#000 calc(100% - 8px),transparent 100%);mask-image:linear-gradient(to top,#000 0%,#000 calc(100% - 8px),transparent 100%);padding:.4rem;padding-bottom:calc(.4rem + env(safe-area-inset-bottom))}.shell-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:.15rem;background:transparent;border:none;color:var(--muted);font-size:10.5px;letter-spacing:.01em;padding:.35rem .2rem;border-radius:var(--radius-lg);cursor:pointer;transition:color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.shell-tab.active{color:var(--accent);background:var(--glass-accent)}.shell-tab svg{width:20px;height:20px}}@media (prefers-reduced-motion: reduce){.boot-check svg{animation-duration:1.5s}}@media (prefers-reduced-motion: no-preference){.view-fade{animation:view-fade .25s cubic-bezier(.16,1,.3,1)}@keyframes view-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}html{background-color:var(--bg);overscroll-behavior:none}body{overscroll-behavior-y:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}button:focus-visible,.auth-tab:focus-visible,.shell-nav-item:focus-visible,.shell-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width: 899px){.shell-tab{min-height:44px;padding:.4rem .2rem}.auth-tab{min-height:40px}.shell-mobile-header{padding-top:calc(.6rem + env(safe-area-inset-top))}}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}*::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.state-message{border-radius:var(--radius-lg)}.state-message.state-empty .state-message-icon{color:var(--muted)}.state-message.state-error .state-message-icon{color:var(--bad)}.state-message.state-info .state-message-icon{color:var(--accent)}.state-message.state-empty .state-message-icon{background:var(--glass-thin);border:1px solid var(--glass-border);border-radius:var(--radius-full);padding:.5rem;backdrop-filter:var(--glass-thin-blur);-webkit-backdrop-filter:var(--glass-thin-blur)}.state-message.state-error .state-message-icon{background:color-mix(in srgb,var(--bad) 12%,transparent);border:1px solid color-mix(in srgb,var(--bad) 35%,transparent);border-radius:var(--radius-full);padding:.5rem}.state-message.state-info .state-message-icon{background:var(--glass-accent);border:1px solid var(--glass-accent-border);border-radius:var(--radius-full);padding:.5rem;backdrop-filter:var(--glass-thin-blur);-webkit-backdrop-filter:var(--glass-thin-blur)}.cmdk-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;background:color-mix(in srgb,var(--bg) 65%,transparent);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.cmdk-panel{width:90%;max-width:560px;background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:0 20px 60px color-mix(in srgb,var(--bg) 60%,transparent);overflow:hidden;display:flex;flex-direction:column;max-height:70vh}.cmdk-input-wrap{display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border-bottom:1px solid var(--border)}.cmdk-search-icon{color:var(--muted);flex-shrink:0}.cmdk-input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font:15px/1.5 var(--font-sans)}.cmdk-input::placeholder{color:var(--muted);opacity:.7}.cmdk-esc-hint{font-family:var(--font-mono);font-size:10px;padding:2px 6px;border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--muted);background:var(--bg-contrast);flex-shrink:0}.cmdk-list{overflow-y:auto;padding:.4rem;flex:1}.cmdk-list::-webkit-scrollbar{width:6px}.cmdk-list::-webkit-scrollbar-track{background:transparent}.cmdk-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.cmdk-group-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:.6rem .6rem .3rem}.cmdk-item{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;background:transparent;border:none;border-radius:var(--radius-md);padding:.5rem .6rem;color:var(--text);font:14px/1.4 var(--font-sans);cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.cmdk-item:hover,.cmdk-item.active{background:var(--accent-soft);color:var(--accent)}.cmdk-item.active{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.cmdk-item-icon{color:var(--muted);font-family:var(--font-mono);font-size:13px;width:16px;text-align:center;flex-shrink:0}.cmdk-item.active .cmdk-item-icon{color:var(--accent)}.cmdk-item-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmdk-item-hint{font-size:12px;color:var(--muted);flex-shrink:0}.cmdk-empty{padding:1.5rem 1rem;text-align:center;color:var(--muted);font-size:14px}.cmdk-footer{display:flex;align-items:center;gap:1rem;padding:.5rem 1rem;border-top:1px solid var(--border);font-size:11px;color:var(--muted)}.cmdk-footer-hint{display:flex;align-items:center;gap:.25rem}.cmdk-footer kbd{font-family:var(--font-mono);font-size:10px;padding:1px 5px;border-radius:3px;border:1px solid var(--border);background:var(--bg-contrast);color:var(--text)}@media (prefers-reduced-motion: reduce){.cmdk-overlay,.cmdk-panel{transition:none!important;animation:none!important}}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;gap:.6rem;padding:.5rem 1rem;background:color-mix(in srgb,var(--bad) 12%,var(--bg-panel));border-bottom:1px solid var(--bad);color:var(--bad);font-size:.82rem}.offline-icon{display:flex;align-items:center;flex-shrink:0}.offline-text{flex:1;line-height:1.3}.state-message{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:40px 20px;max-width:400px;margin:0 auto}.state-message-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);opacity:.9}.state-empty .state-message-icon{color:var(--muted);background:var(--panel-2)}.state-error .state-message-icon{color:var(--bad);background:color-mix(in srgb,var(--bad) 12%,transparent)}.state-info .state-message-icon{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.state-message-body{display:flex;flex-direction:column;align-items:center;gap:4px}.state-message-title{font-size:14px;font-weight:600;margin:0;color:var(--text)}.state-message-desc{font-size:12.5px;color:var(--muted);line-height:1.55;max-width:340px;margin:0;word-break:break-word}.state-message-action{margin-top:8px}.error-boundary{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.8rem;padding:3rem 1.5rem;max-width:440px;margin:0 auto;min-height:60vh;justify-content:center}.error-boundary-icon{color:var(--bad);opacity:.8}.error-boundary-title{font-size:1.2rem;font-weight:600;margin:0}.error-boundary-desc{margin:0;line-height:1.5}.error-boundary-details{width:100%;text-align:left;margin-top:.5rem}.error-boundary-trace{font-family:var(--font-mono);font-size:.75rem;background:var(--bg-contrast);border:1px solid var(--border);border-radius:var(--radius-md);padding:.6rem;overflow-x:auto;color:var(--bad);margin-top:.4rem;white-space:pre-wrap;word-break:break-word}@media (prefers-reduced-motion: reduce){.offline-banner{transition:none}}@media (prefers-contrast: high){.state-message-icon,.error-boundary-icon{opacity:1}}
