.login-page{min-height:100%;display:flex;align-items:center;justify-content:center;padding:2rem}.login-card{width:100%;max-width:24rem;text-align:center;background:var(--c-surface);border:2px solid var(--c-border2);border-radius:10px;box-shadow:4px 4px 0 var(--c-border2);padding:2.5rem 2rem}.login-card h1{font:600 1.75rem var(--font-serif);margin:0 0 .5rem}.login-card .sub{color:var(--c-fg3);margin:0 0 1.75rem}.ms-button{display:inline-flex;align-items:center;gap:.6rem;font:500 14px var(--font-sans);text-decoration:none;border-radius:6px;border:2px solid var(--c-border2);padding:.65rem 1.3rem;background:var(--c-surface);color:var(--c-fg)}.ms-button:hover{background:var(--c-elev)}.dashboard{padding:4rem 2rem;max-width:56rem;margin-inline:auto}.dashboard header{display:flex;align-items:baseline;gap:1rem;margin-bottom:.35rem}.dashboard h1{font:600 2.25rem var(--font-serif);margin:0}.dashboard .sub{color:var(--c-fg3);margin:0 0 2.5rem}.dashboard .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-top:.5rem}.dashboard .card{display:block;text-decoration:none;color:inherit;border-radius:8px;border:2px solid var(--c-border2);background:var(--c-surface);overflow:hidden;box-shadow:4px 4px 0 var(--c-border2);transition:transform .1s,box-shadow .1s}.dashboard .card:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--c-border2)}.dashboard .thumb{height:9rem;background:var(--c-elev);display:flex;align-items:center;justify-content:center;font:400 3rem var(--font-serif);color:color-mix(in srgb,var(--c-brand) 35%,var(--c-elev))}.dashboard .body{padding:.8rem .95rem}.dashboard .body b{display:block;font-weight:600}.dashboard .body code{font:11px var(--font-mono);color:var(--c-fg3)}.dashboard .empty{color:var(--c-fg3);padding:3rem 0;text-align:center}.project-page{margin:0;height:100vh;display:grid;grid-template-columns:22rem 1fr;gap:1rem;padding:1rem;background:var(--c-bg);color:var(--c-fg);font:14px/1.55 var(--font-sans);transition:grid-template-columns .2s ease}.project-page.sidebar-collapsed{grid-template-columns:0 1fr;gap:0}.project-page.sidebar-collapsed aside{display:none}aside{display:grid;grid-template-rows:auto 1fr auto;min-height:0}header{grid-row:1;padding:0 0 .8rem;display:flex;align-items:center;gap:.6rem}header a{color:var(--c-fg3);text-decoration:none;font-size:18px;line-height:1}header b{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}header code{font:11px var(--font-mono);color:var(--c-fg3)}.icon-btn{border:0;background:none;cursor:pointer;color:var(--c-fg3);width:1.6rem;height:1.6rem;display:inline-flex;align-items:center;justify-content:center;border-radius:5px;padding:0}.icon-btn:hover{background:var(--c-elev);color:var(--c-fg)}.icon-btn svg{width:15px;height:15px}#log{grid-row:2;overflow-y:auto;padding:.2rem;display:flex;flex-direction:column;gap:.7rem}.msg{padding:.55rem .75rem;border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere}.me{background:var(--c-elev);align-self:flex-end;max-width:90%}.claude{background:var(--c-surface);border:1px solid var(--c-border)}.tool{font:11px var(--font-mono);color:var(--c-fg3);padding-left:.2rem}.err{background:var(--c-bad-bg);color:var(--c-bad-fg)}form{grid-row:3;display:flex;flex-direction:column;gap:.5rem;padding-top:.8rem;border-top:1px solid var(--c-border)}.chips{display:none;flex-wrap:wrap;gap:.3rem}.chips:not(:empty){display:flex}.chip{display:flex;align-items:center;gap:.3rem;background:var(--c-elev);border-radius:999px;padding:.2rem .4rem .2rem .6rem;font:11px var(--font-sans);color:var(--c-fg2);max-width:100%}.chip .c-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:9rem}.chip .c-size{color:var(--c-fg3);font:10px var(--font-mono)}.chip .c-del{border:0;background:none;color:var(--c-fg3);cursor:pointer;font-size:13px;line-height:1;padding:0 0 0 .1rem}.chip .c-del:hover{color:var(--c-bad-fg)}.composer-row{display:flex;gap:.5rem}.ta-wrap{position:relative;flex:1;border-radius:6px;transition:box-shadow .1s ease}.ta-wrap.dragover{box-shadow:0 0 0 2px var(--c-brand);border-radius:6px}#attachBtn{position:absolute;left:.45rem;top:50%;transform:translateY(-50%);z-index:1}.project-page[data-kind=deck] .ta-wrap textarea{padding-left:2.15rem}textarea{flex:1;width:100%;resize:none;font:inherit;padding:.5rem .7rem;border-radius:6px;border:2px solid var(--c-border2);background:var(--c-surface);color:inherit;height:2.75rem;overflow-y:auto}textarea:focus{outline:none;border-color:var(--c-brand)}.project-page button{font:500 14px var(--font-sans);cursor:pointer}form button#send{border:2px solid var(--c-border2);border-radius:6px;padding:0 .9rem;background:var(--c-brand);color:var(--c-onbrand)}form button#send:disabled{opacity:.55;cursor:default}main{position:relative;grid-column:2;border-radius:16px;border:2px solid var(--c-border2);background:var(--c-surface);overflow:hidden;box-shadow:4px 4px 0 var(--c-border2);display:grid;grid-template-rows:auto 1fr}.bar{padding:0 .6rem;font:12px var(--font-mono);color:var(--c-fg3);border-bottom:1px solid var(--c-border);display:flex;gap:.5rem;align-items:center;height:2.6rem}#expandBtn{display:none}.project-page.sidebar-collapsed #expandBtn{display:inline-flex}.zoom{border:0;background:none;color:var(--c-fg3);font:12px var(--font-mono);cursor:pointer}.modes{display:flex;align-items:center;border:1px solid var(--c-border2);border-radius:8px;overflow:hidden}.modes button{border:0;background:var(--c-surface);color:var(--c-fg2);padding:.35rem .65rem;font:500 11px var(--font-sans);display:flex;align-items:center;gap:.35rem;border-right:1px solid var(--c-border)}.modes button:last-child{border-right:0}.modes button.active{background:var(--c-brand);color:var(--c-onbrand)}.modes button svg{width:13px;height:13px}.status{display:none;align-items:center;gap:.4rem;color:var(--c-brand);font:500 11px var(--font-sans)}main.generating .status{display:inline-flex}.dot{width:6px;height:6px;border-radius:50%;background:var(--c-brand);display:inline-block;animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{opacity:.3}}.spacer{flex:1}.pop-wrap{position:relative}.popover{position:absolute;top:calc(100% + 6px);right:0;background:var(--c-surface);border:2px solid var(--c-border2);border-radius:10px;box-shadow:4px 4px 0 var(--c-border2);padding:.6rem;z-index:30;display:none}.popover.open{display:block}#profileBtn{width:1.7rem;height:1.7rem;border-radius:50%;border:2px solid var(--c-border2);background:var(--c-elev);color:var(--c-fg);font:600 11px var(--font-sans);display:flex;align-items:center;justify-content:center;padding:0}.profile-pop{width:9rem;padding:.3rem}.profile-pop button{width:100%;text-align:left;border:0;background:none;color:var(--c-fg2);padding:.4rem .5rem;border-radius:6px;font:500 12px var(--font-sans)}.profile-pop button:hover{background:var(--c-elev);color:var(--c-fg)}#editPanel{grid-row:3;display:none;min-height:0;grid-template-rows:auto auto auto auto 1fr}.project-page.edit-mode #editPanel{display:grid}.project-page.edit-mode #log,.project-page.edit-mode form{display:none}.ep-head{display:flex;align-items:center;gap:.3rem;padding:0 0 .5rem}.ep-head b{flex:1;font:600 13px var(--font-sans)}.ep-head button{border:0;background:none;color:var(--c-fg3);font:500 12px var(--font-sans);padding:.25rem .45rem;border-radius:6px}.ep-head button:hover:not(:disabled){background:var(--c-elev);color:var(--c-fg)}.ep-head button#epSave{background:var(--c-brand);color:var(--c-onbrand);padding:.25rem .75rem}.ep-head button:disabled{opacity:.4;cursor:default}.ep-tabs{display:flex;gap:.1rem;border-bottom:1px solid var(--c-border)}.ep-tabs button{border:0;background:none;color:var(--c-fg3);font:500 12px var(--font-sans);padding:.3rem .5rem;border-bottom:2px solid transparent;margin-bottom:-1px}.ep-tabs button.active{color:var(--c-fg);font-weight:600;border-bottom-color:var(--c-fg)}.ep-tree{display:none;overflow-y:auto;max-height:11rem;padding:.25rem 0;border-bottom:1px solid var(--c-border)}.ep-tree.open{display:block}.ep-tree .tr{display:flex;align-items:center;gap:.25rem;padding:.18rem .3rem;border-radius:5px;cursor:pointer;font:12px var(--font-sans);color:var(--c-fg2)}.ep-tree .tr:hover{background:var(--c-elev)}.ep-tree .tr.current{background:var(--c-elev);color:var(--c-fg);font-weight:600}.ep-tree .tr.hidden-el .tl{text-decoration:line-through;opacity:.55}.ep-tree .tw{flex:0 0 12px;text-align:center;color:var(--c-fg3);font-size:11px;line-height:1}.ep-tree .tl{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ep-tree .tg{font:10px var(--font-mono);color:var(--c-fg3)}.ep-tree .te{flex:0 0 14px;opacity:0;color:var(--c-fg3);display:inline-flex}.ep-tree .te svg{width:12px;height:12px}.ep-tree .tr:hover .te,.ep-tree .tr.hidden-el .te{opacity:1}.ep-tree .hint{padding:.5rem .4rem;font:12px var(--font-sans);color:var(--c-fg3)}.ep-tools{display:flex;align-items:center;gap:.05rem;padding:.35rem .1rem;border-bottom:1px solid var(--c-border)}.ep-tools.hide{display:none}.ep-tools button{border:0;background:none;color:var(--c-fg2);width:1.5rem;height:1.5rem;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;padding:0}.ep-tools button svg{width:14px;height:14px}.ep-tools button:hover:not(:disabled){background:var(--c-elev)}.ep-tools button.active{background:var(--c-border2);color:var(--c-surface)}.ep-tools button:disabled{opacity:.3;cursor:default}.ep-tools .sep{width:1px;height:14px;background:var(--c-border);margin:0 .25rem}.ep-body{overflow-y:auto;min-height:0}.ep-sec{border-bottom:1px solid var(--c-border);padding:.5rem .1rem .6rem}.ep-sec-head{display:flex;align-items:center;gap:.4rem;margin-bottom:.35rem}.ep-sec-head b{flex:1;font:500 12px var(--font-sans);color:var(--c-fg);display:flex;align-items:center;gap:.3rem}.ep-sec-head button{border:0;background:none;color:var(--c-fg3);font:500 11px var(--font-sans);padding:0}.ep-sec-head button:hover{color:var(--c-fg);text-decoration:underline}.ep-sec.fold .ep-sec-head{margin-bottom:0;cursor:pointer}.ep-grid{display:flex;flex-direction:column;gap:.3rem}.ep-f{display:flex;align-items:center;gap:.35rem;background:var(--c-elev);border-radius:6px;padding:.25rem .45rem;min-height:1.7rem}.ep-f>span.k{flex:1;font:11px var(--font-sans);color:var(--c-fg2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ep-f>span.k.set:before{content:"•";color:var(--c-brand);margin-right:.15rem}.ep-f input[type=text]{border:0;background:none;color:var(--c-fg);font:11px var(--font-mono);text-align:right;width:3.4rem;padding:0;min-width:0}.ep-f input.hexv{width:4.6rem}.ep-f input[type=text]:focus{outline:none;color:var(--c-brand)}.ep-f .u{font:10px var(--font-mono);color:var(--c-fg3)}.ep-f select{border:0;background:none;color:var(--c-fg);font:11px var(--font-sans);padding:0;max-width:7rem}.ep-f select:focus{outline:none}.ep-f input[type=color]{width:1.15rem;height:1.15rem;padding:0;border:1px solid var(--c-border2);border-radius:4px;background:none;flex:0 0 auto}.ep-row2{display:flex;gap:.3rem}.ep-row2>*{flex:1;min-width:0}.ep-seg{display:flex;gap:.1rem;flex:0 0 auto}.ep-seg button{border:0;background:none;color:var(--c-fg3);font:500 10px var(--font-sans);padding:.1rem .3rem;border-radius:4px}.ep-seg button.active{background:var(--c-border2);color:var(--c-surface)}.ep-seg.icons button{padding:.1rem .18rem}.ep-seg.icons button svg{width:13px;height:13px;display:block}.ep-add{font:11px var(--font-sans);color:var(--c-fg3);padding:.3rem .1rem 0}.ep-add button{border:0;background:none;color:var(--c-fg3);font:11px var(--font-sans);padding:0;text-decoration:underline dotted}.ep-add button:hover{color:var(--c-brand)}.ep-hint{padding:1.3rem .7rem;font:12px/1.6 var(--font-sans);color:var(--c-fg3);text-align:center}.ep-note{padding:.45rem .1rem;font:11px/1.5 var(--font-sans);color:var(--c-fg3)}.ep-code{width:100%;height:9rem;font:11px/1.6 var(--font-mono);border:1px solid var(--c-border2);border-radius:6px;padding:.5rem;background:var(--c-surface);color:var(--c-fg);resize:vertical}.ep-code:focus{outline:none;border-color:var(--c-brand)}.ep-pre{font:10px/1.5 var(--font-mono);color:var(--c-fg3);white-space:pre-wrap;overflow-wrap:anywhere;margin:.3rem 0 0;max-height:8rem;overflow:auto}.ep-btn{border:1px solid var(--c-border2);background:var(--c-surface);color:var(--c-fg2);border-radius:6px;padding:.3rem .6rem;font:500 11px var(--font-sans)}.ep-btn:hover{background:var(--c-elev);color:var(--c-fg)}.ep-tweak{width:100%;font:12px var(--font-sans);border:1px solid var(--c-border2);border-radius:6px;padding:.45rem .5rem;background:var(--c-surface);color:var(--c-fg)}.ep-tweak:focus{outline:none;border-color:var(--c-brand)}.ep-chev{transition:transform .12s ease}.ep-chev.open{transform:rotate(90deg)}#canvasScroll{position:relative;overflow:auto;background:var(--c-elev)}#viewport{position:relative;transform-origin:0 0;background:#fff}iframe{width:100%;height:100%;border:0;display:block;background:#fff}#overlay{position:absolute;inset:0;pointer-events:none}.hover-box{position:absolute;border:2px solid var(--c-brand);background:#0e9c8814;border-radius:3px}.pin{pointer-events:auto;position:absolute;width:22px;height:22px;transform:translate(-50%,-100%);border-radius:50% 50% 50% 4px;border:2px solid #fff;background:var(--c-coral);color:var(--c-oncoral);font:600 10px var(--font-sans);display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #00000059;cursor:pointer}.thread,.composer{pointer-events:auto;position:absolute;width:18rem;background:var(--c-surface);border:2px solid var(--c-border2);border-radius:10px;box-shadow:4px 4px 0 var(--c-border2);padding:.6rem}.thread-head,.composer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem;font:600 12px var(--font-sans)}.thread-head button,.composer-head button{border:0;background:none;color:var(--c-fg3);cursor:pointer;font-size:13px}.thread-msgs{max-height:12rem;overflow:auto;display:flex;flex-direction:column;gap:.5rem;margin-bottom:.4rem}.thread-msgs .txt{font:13px var(--font-sans);color:var(--c-fg);white-space:pre-wrap;overflow-wrap:anywhere}.thread-msgs .meta{font:10px var(--font-mono);color:var(--c-fg3)}.composer textarea,.thread input[type=text]{width:100%;font:13px var(--font-sans);border:1px solid var(--c-border2);border-radius:6px;padding:.4rem;background:var(--c-bg);color:var(--c-fg);resize:none}.composer textarea:focus,.thread input:focus{outline:none;border-color:var(--c-brand)}.row{display:flex;gap:.4rem;margin-top:.4rem}.row button{flex:1;border:1px solid var(--c-border2);border-radius:6px;padding:.4rem;font:500 11px var(--font-sans);background:var(--c-surface);color:var(--c-fg2)}.row button.primary{background:var(--c-brand);color:var(--c-onbrand);border-color:var(--c-brand)}.row button.ghost{border-color:transparent;color:var(--c-fg3)}#drawLayer{position:absolute;inset:0;display:none;z-index:2}.project-page.drawing #drawLayer{display:block;pointer-events:auto;cursor:crosshair}.draw-ghost{position:absolute;border:1.5px dashed var(--c-brand);background:#0e9c8814;pointer-events:none}#selBox{position:absolute;display:none;border:2px solid var(--c-brand);border-radius:3px}#selBox.on{display:block}#selBox .nub{position:absolute;width:7px;height:7px;background:var(--c-surface);border:1.5px solid var(--c-brand);border-radius:1px;pointer-events:none}#selBox .nub.nw{left:-5px;top:-5px}#selBox .nub.ne{right:-5px;top:-5px}#selBox .nub.sw{left:-5px;bottom:-5px}#selBox .nub.se{right:-5px;bottom:-5px}#selBox.dragging{border-color:transparent}#selBox.dragging .nub{display:none}#deckShimmer{position:absolute;inset:0;z-index:3;display:none;background:var(--c-surface);padding:8%;flex-direction:column;gap:1.4rem}.project-page[data-kind=deck] main.generating #deckShimmer{display:flex}.shimmer-bar{border-radius:6px;background:var(--c-elev) linear-gradient(90deg,transparent 25%,#fff9 50%,transparent 75%) 0 0 / 400% 100% no-repeat;animation:shimmer-sweep 1.4s infinite}@keyframes shimmer-sweep{0%{background-position:100% 0}to{background-position:0 0}}.shimmer-title{height:2.6rem;width:60%}.shimmer-sub{height:1rem;width:40%}.shimmer-row{display:flex;gap:1.4rem;flex:1}.shimmer-card{flex:1;border-radius:10px}:root{color-scheme:light;--c-bg: #eaf3f0;--c-surface: #ffffff;--c-elev: #dde9e5;--c-fg: #0f2620;--c-fg2: #38504a;--c-fg3: #5e756e;--c-brand: #0e9c88;--c-brandtint: #0e9c8814;--c-onbrand: #ffffff;--c-border: #d3e2dc;--c-border2: #0f2620;--font-sans: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-serif: "Instrument Serif", ui-serif, Georgia, serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--c-bg);color:var(--c-fg);font:15px/1.6 var(--font-sans)}button{font:500 14px var(--font-sans);cursor:pointer;border-radius:6px;border:2px solid var(--c-border2);padding:.55rem 1.1rem;background:var(--c-surface);color:var(--c-fg)}button.primary{background:var(--c-brand);border-color:var(--c-border2);color:var(--c-onbrand)}button:disabled{opacity:.55;cursor:default}
