:root,[data-theme=light]{color-scheme:light;--bg: oklch(.97 .005 80);--panel: oklch(.99 .003 80);--panel-2: oklch(.95 .006 80);--border: oklch(.89 .007 80);--text: oklch(.25 .01 70);--text-dim: oklch(.52 .012 70);--accent: oklch(.55 .16 35);--accent-hover: oklch(.5 .15 35);--on-accent: oklch(.99 .003 80);--danger: oklch(.55 .2 25)}[data-theme=dark]{color-scheme:dark;--bg: oklch(.19 .008 70);--panel: oklch(.23 .009 70);--panel-2: oklch(.27 .01 70);--border: oklch(.33 .011 70);--text: oklch(.92 .006 80);--text-dim: oklch(.62 .012 70);--accent: oklch(.68 .15 40);--accent-hover: oklch(.73 .14 40);--on-accent: oklch(.19 .008 70);--danger: oklch(.65 .19 25)}:root{--font-sans: "Space Grotesk", "Noto Sans SC", -apple-system, "PingFang SC", sans-serif;--font-mono: "SF Mono", ui-monospace, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;overflow:hidden;-webkit-font-smoothing:antialiased}.app-shell{height:100%;display:flex;flex-direction:column}.ghost-btn,.primary-btn,.danger-btn,.suggestion,.layer,.text-input,.project-item,.retry-link,.send-btn{transition:opacity .12s ease,background-color .12s ease,border-color .12s ease}.primary-btn{background:var(--accent);color:var(--on-accent);border:none;border-radius:8px;padding:9px 18px;font-size:14px;font-weight:500;font-family:inherit;cursor:pointer}.primary-btn:hover:not(:disabled){background:var(--accent-hover)}.primary-btn:disabled{opacity:.45;cursor:not-allowed}.ghost-btn{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:5px 12px;cursor:pointer;font-size:12px;font-family:inherit;line-height:1.5;display:inline-flex;align-items:center;gap:6px}.ghost-btn:hover{border-color:var(--accent);color:var(--accent)}.ghost-btn:disabled{opacity:.45;cursor:not-allowed}.icon-btn{padding:5px 8px}.danger-btn{background:var(--danger);color:var(--on-accent);border:none;border-radius:8px;padding:5px 12px;font-size:12px;font-family:inherit;cursor:pointer}.danger-btn:hover:not(:disabled){opacity:.9}.text-input{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:14px;font-family:inherit;line-height:1.5}.text-input:focus{outline:none;border-color:var(--accent)}select.text-input{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.color-input{padding:2px;height:34px}.field,.field-label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-dim)}.field{margin-bottom:16px}.topbar{height:48px;flex:none;display:flex;align-items:center;gap:10px;padding:0 20px;background:var(--panel);border-bottom:1px solid var(--border)}.brand{font-size:14px;font-weight:600;letter-spacing:.01em}.accent-dot{color:var(--accent)}.spacer{flex:1}.project-switcher{position:relative}.project-current{max-width:240px}.project-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:30;width:264px;padding:12px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 32px #0000001a}.project-pop-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);padding:2px 6px 10px}.project-empty{padding:4px 6px 10px}.project-list{list-style:none;display:flex;flex-direction:column;gap:2px;max-height:280px;overflow-y:auto}.project-item{display:flex;align-items:center;gap:4px;border-radius:8px;padding:2px}.project-item:hover{background:var(--panel-2)}.project-item.selected .project-open{color:var(--accent);font-weight:500}.project-open{flex:1;text-align:left;background:transparent;border:none;cursor:pointer;color:var(--text);font-size:14px;font-family:inherit;padding:7px 8px;border-radius:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-del{flex:none;background:transparent;border:none;cursor:pointer;color:var(--text-dim);font-size:11px;padding:4px 8px;border-radius:6px}.project-del:hover{color:var(--danger)}.project-confirm{flex:1;display:flex;align-items:center;gap:6px;padding:4px 6px}.project-confirm-text{flex:1;font-size:12px;color:var(--danger)}.project-new{width:100%;justify-content:center;margin-top:10px}.workspace{flex:1;display:flex;min-height:0}.chat-panel{width:320px;flex:none;display:flex;flex-direction:column;background:var(--panel);border-right:1px solid var(--border)}.panel-header{padding:16px 20px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);border-bottom:1px solid var(--border)}.chat-list{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px}.chat-empty{display:flex;flex-direction:column;gap:10px}.hint{color:var(--text-dim);font-size:12px;line-height:1.6}.mono-readout{font-family:var(--font-mono)}.suggestion{text-align:left;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 12px;cursor:pointer;font-size:12px;font-family:inherit;line-height:1.5}.suggestion:hover{border-color:var(--accent)}.chat-msg{display:flex}.chat-msg.user{justify-content:flex-end}.chat-msg .bubble{max-width:88%;padding:10px 14px;border-radius:12px;background:var(--panel-2);font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.chat-msg.user .bubble{background:var(--accent);color:var(--on-accent)}.chat-msg.error .bubble{background:transparent;border:1px solid var(--danger);color:var(--text)}.chat-msg .bubble.thinking{color:var(--text-dim)}.dots span{display:inline-block;animation:dot-fade 1.2s ease-in-out infinite}.dots span:nth-child(2){animation-delay:.2s}.dots span:nth-child(3){animation-delay:.4s}@keyframes dot-fade{0%,to{opacity:.25}50%{opacity:1}}.retry-link{margin-left:10px;padding:0;background:transparent;border:none;color:var(--accent);font-size:12px;font-family:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.retry-link:disabled{opacity:.45;cursor:not-allowed}.chat-input-row{flex:none;padding:16px 20px;display:flex;gap:10px;border-top:1px solid var(--border)}.chat-input-row textarea{flex:1;resize:none;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:14px;font-family:inherit;line-height:1.5}.chat-input-row textarea:focus{outline:none;border-color:var(--accent)}.send-btn{align-self:flex-end}.canvas-area{flex:1;min-width:0;display:flex;background:var(--bg)}.artboard-wrap{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--bg)}.artboard-shadow{box-shadow:0 8px 32px #0000001a;border-radius:4px;overflow:hidden;flex:none}.side-panel{width:288px;flex:none;overflow-y:auto;background:var(--panel);border-left:1px solid var(--border)}.panel-section{padding:20px;border-bottom:1px solid var(--border)}.panel-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:16px}.error-text{color:var(--danger);font-size:12px;line-height:1.5;word-break:break-word;margin-top:8px}.layer-list{list-style:none;display:flex;flex-direction:column;gap:2px}.layer{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;cursor:pointer;border:1px solid transparent}.layer:hover{background:var(--panel-2)}.layer.selected{background:var(--panel-2);border-color:var(--accent)}.layer.has-error .layer-name{color:var(--danger)}.layer.is-pending .layer-name{color:var(--text-dim)}.layer-icon{width:16px;text-align:center;font-size:12px;color:var(--text-dim);flex:none}.layer-name{flex:1;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-actions{display:none;gap:2px}.layer:hover .layer-actions,.layer.selected .layer-actions{display:flex}.layer-actions button{background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:2px 6px;border-radius:4px;font-size:12px}.layer-actions button:hover{color:var(--text)}.retry-gen{width:100%;margin-top:12px}.login-wrap{height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-toggles{position:absolute;top:16px;right:20px;display:flex;gap:8px}.login-card{width:360px;padding:40px 36px;background:var(--panel);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;gap:8px}.login-brand{font-size:20px;font-weight:500;letter-spacing:.01em}.login-sub{font-size:12px;color:var(--text-dim);margin-bottom:20px}.login-card form{display:flex;flex-direction:column;gap:10px}.login-card .field-label{margin-top:6px}.login-notice{font-size:12px;color:var(--text-dim)}.login-error{font-size:12px;color:var(--danger)}.login-submit{margin-top:10px;width:100%}.boot-splash{height:100%;background:var(--bg)}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;background:var(--bg)}.empty-card{width:360px;padding:40px 36px;text-align:center;background:var(--panel);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;gap:10px;align-items:center}.empty-title{font-size:14px;font-weight:500}.toast-error{position:fixed;top:60px;left:50%;transform:translate(-50%);z-index:40;background:var(--panel);color:var(--danger);border:1px solid var(--danger);border-radius:8px;padding:10px 16px;font-size:12px;max-width:520px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-track{background:transparent}
