:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0f14;--panel:#131a22;--border:#223040;--text:#e6edf3;--muted:#8b98a5;--accent:#f0653a}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app-shell{grid-template-rows:auto auto 1fr;height:100vh;display:grid}.app-bar{border-bottom:1px solid var(--border);background:var(--panel);align-items:center;gap:.75rem;padding:.6rem 1rem;display:flex}.app-bar h1{letter-spacing:-.02em;margin:0;font-size:1.15rem}.app-bar__milestone{color:var(--muted);font-size:.85rem}.badge{border-radius:999px;margin-left:auto;padding:.15rem .6rem;font-size:.78rem;font-weight:600}.badge--online{color:#3fb950;background:#3fb95026}.badge--offline{color:var(--accent);background:#f0653a26}.toolbar{border-bottom:1px solid var(--border);background:#0f151c;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.4rem .75rem;display:flex}.toolbar__group{border-right:1px solid var(--border);gap:.25rem;padding-right:.5rem;display:flex}.toolbar__spacer{flex:1}.toolbar__count{color:var(--muted);text-align:right;min-width:2ch;font-family:ui-monospace,monospace;font-size:.8rem}.toolbar button{color:var(--text);border:1px solid var(--border);cursor:pointer;background:#1a2430;border-radius:6px;padding:.35rem .6rem;font-size:.82rem}.toolbar button:hover{border-color:var(--accent)}.toolbar button.active{background:var(--accent);color:#1a0d06;border-color:var(--accent)}.editor-body{grid-template-columns:1fr 220px;min-height:0;display:grid}.editor-canvas{background:#0b0e13;min-height:0;position:relative;overflow:hidden}.editor-canvas canvas{touch-action:none;display:block}.toolbar button:disabled{opacity:.4;cursor:not-allowed}.side-panels{border-left:1px solid var(--border);background:var(--panel);flex-direction:column;min-height:0;display:flex;overflow-y:auto}.layers{background:var(--panel);flex:none;max-height:50%;font-size:.85rem;overflow-y:auto}.layers__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.5rem .75rem;font-weight:600;display:flex}.layers__header button{width:24px;height:24px;color:var(--text);border:1px solid var(--border);cursor:pointer;background:#1a2430;border-radius:4px}.layers ul{margin:0;padding:0;list-style:none}.layers li{cursor:pointer;align-items:center;gap:.5rem;padding:.4rem .75rem;display:flex}.layers li.active{background:#1a2430}.layers__swatch{border:1px solid #fff3;border-radius:3px;width:14px;height:14px}.layers__name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.layers li button{width:22px;height:22px;color:var(--muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;font-size:.7rem}.cam,.art{border-top:1px solid var(--border);flex:none;padding-bottom:.5rem;font-size:.85rem}.art__save{flex-wrap:wrap;gap:.4rem;padding:.4rem .75rem;display:flex}.art__save input{min-width:0;color:var(--text);border:1px solid var(--border);font:inherit;background:#1a2430;border-radius:4px;flex:100%;padding:.2rem .35rem}.art__save button{color:var(--text);border:1px solid var(--border);cursor:pointer;background:#1a2430;border-radius:4px;flex:auto;padding:.3rem .5rem}.art__save button:disabled{opacity:.4;cursor:not-allowed}.art__empty{color:var(--muted);margin:0;padding:.4rem .75rem;font-size:.78rem}.art__list{margin:0;padding:0;list-style:none}.art__list li{align-items:center;gap:.4rem;padding:.3rem .75rem;display:flex}.art__name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.art__list li button{width:24px;height:24px;color:var(--text);border:1px solid var(--border);cursor:pointer;background:#1a2430;border-radius:4px}.cam__header{border-bottom:1px solid var(--border);padding:.5rem .75rem;font-weight:600}.cam__field{justify-content:space-between;align-items:center;gap:.5rem;padding:.3rem .75rem;display:flex}.cam__field span{color:var(--muted)}.cam__field select,.cam__field input{width:90px;color:var(--text);border:1px solid var(--border);font:inherit;background:#1a2430;border-radius:4px;padding:.2rem .35rem}.cam__generate{background:var(--accent,#f0653a);color:#10151c;cursor:pointer;border:none;border-radius:5px;width:calc(100% - 1.5rem);margin:.5rem .75rem .25rem;padding:.45rem .6rem;font-weight:600}.cam__generate:disabled{opacity:.5;cursor:progress}.cam__result{padding:.25rem .75rem}.cam__stat{justify-content:space-between;padding:.15rem 0;display:flex}.cam__stat span:first-child{color:var(--muted)}.cam__stale{color:#f5b942;margin:.35rem 0;font-size:.78rem}.cam__toggle{color:var(--muted);align-items:center;gap:.4rem;margin:.4rem 0;display:flex}.cam__result button{width:100%;color:var(--text);border:1px solid var(--border);cursor:pointer;background:#1a2430;border-radius:5px;padding:.4rem}.cam__material-save,.cam__material-io{gap:.4rem;padding:.3rem .75rem;display:flex}.cam__material-save input{min-width:0;color:var(--text);border:1px solid var(--border);font:inherit;background:#1a2430;border-radius:4px;flex:1;padding:.2rem .35rem}.cam__material-save button,.cam__material-io button{color:var(--text);border:1px solid var(--border);cursor:pointer;background:#1a2430;border-radius:4px;flex:none;padding:.2rem .5rem}.cam__material-io button{flex:1}.cam__material-save button:disabled{opacity:.4;cursor:not-allowed}.cam__testgrid{width:calc(100% - 1.5rem);color:var(--text);border:1px solid var(--border);cursor:pointer;background:#1a2430;border-radius:5px;margin:.25rem .75rem;padding:.4rem .6rem}
