:root{--bg:#0e1116;--panel:#161b22;--panel-2:#1c232c;--line:#2a323d;--text:#e6edf3;--muted:#8b98a8;--accent:#4b8bf5;--accent-soft:#1e3a5f;--danger:#f2545b;--ok:#3fb950;--radius:8px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px}button{font:inherit;color:inherit;background:var(--panel-2);border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:5px 10px;transition:background .12s,border-color .12s}button:hover:not(:disabled){background:#253040;border-color:#3a4553}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover:not(:disabled){background:#3b7ae8}button.ghost{background:0 0}button.active{background:var(--accent-soft);border-color:var(--accent)}button.icon{padding:4px 7px;line-height:1}input,select,textarea{font:inherit;color:var(--text);border:1px solid var(--line);background:#0f1319;border-radius:6px;width:100%;padding:5px 8px}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}input[type=color]{cursor:pointer;height:30px;padding:2px}input[type=range]{accent-color:var(--accent);padding:0}input[type=checkbox]{width:auto;accent-color:var(--accent)}.app{grid-template-rows:auto 1fr;height:100%;display:grid}.workspace{grid-template-columns:250px 1fr 330px;min-height:0;display:grid}.topbar{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:8px 12px;display:flex}.topbar .brand{letter-spacing:-.01em;white-space:nowrap;font-weight:700}.topbar .brand span{color:var(--muted);margin-left:6px;font-weight:400}.topbar .name-input{max-width:260px}.spacer{flex:1}.panel{background:var(--panel);flex-direction:column;min-height:0;display:flex;overflow:hidden}.panel.left{border-right:1px solid var(--line)}.panel.right{border-left:1px solid var(--line)}.panel-head{border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);align-items:center;gap:6px;padding:9px 12px;font-size:12px;font-weight:600;display:flex}.panel-body{flex:1;min-height:0;padding:10px 12px;overflow-y:auto}.canvas-area{background:#0a0d12;flex-direction:column;min-height:0;display:flex}.canvas-toolbar{border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.canvas-scroll{flex:1;justify-content:center;align-items:flex-start;padding:24px;display:flex;overflow:auto}.canvas-frame{line-height:0;box-shadow:0 12px 40px #0000008c}.format-grid{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:24px;display:flex}.format-cell{flex-direction:column;align-items:center;gap:6px;display:flex}.format-cell .caption{color:var(--muted);font-size:11px}.field{margin-bottom:10px}.field>label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:11px;display:block}.row{align-items:center;gap:6px;display:flex}.row.wrap{flex-wrap:wrap}.grid-2{grid-template-columns:1fr 1fr;gap:6px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.section{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px;font-size:11px;font-weight:600}.hint{color:var(--muted);font-size:11px;line-height:1.5}.tabs{border-bottom:1px solid var(--line);display:flex}.tabs button{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;flex:1;padding:9px 4px;font-size:12px}.tabs button.active{color:var(--text);border-bottom-color:var(--accent);background:0 0}.layer-row{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:6px;padding:5px 6px;display:flex}.layer-row:hover{background:var(--panel-2)}.layer-row.selected{background:var(--accent-soft)}.layer-row .kind{color:var(--muted);text-align:center;flex-shrink:0;width:14px;font-size:11px}.layer-row .label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.layer-row .badge{color:#e0b341;background:#3d2f10;border:1px solid #6b5416;border-radius:999px;flex-shrink:0;padding:1px 5px;font-size:9px}.layer-row .toggle{color:var(--muted);background:0 0;border:none;padding:2px 4px;font-size:11px}.layer-row.dim .label{opacity:.45}.variant-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);margin-bottom:10px;padding:10px}.variant-card.active{border-color:var(--accent)}.variant-head{align-items:center;gap:6px;margin-bottom:8px;display:flex}.thumb{object-fit:contain;border:1px solid var(--line);background:#0f1319;border-radius:6px;width:100%;height:72px}.progress{background:var(--panel-2);border-radius:999px;height:6px;overflow:hidden}.progress>div{background:var(--accent);height:100%;transition:width .15s}.toast{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);z-index:50;max-width:560px;padding:10px 16px;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #00000080}.toast.error{border-color:var(--danger)}.overlay{z-index:40;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);border-radius:12px;width:460px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);padding:18px;overflow-y:auto}.modal h2{margin:0 0 12px;font-size:15px}.chip{background:var(--panel-2);border:1px solid var(--line);color:var(--muted);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;display:inline-flex}.chip.on{border-color:var(--accent);color:var(--text)}table.data{border-collapse:collapse;width:100%;font-size:12px}table.data th,table.data td{border:1px solid var(--line);text-align:left;padding:3px 5px}table.data th{color:var(--muted);background:var(--panel);font-weight:600;position:sticky;top:0}table.data input{background:0 0;border:none;padding:2px}.scroll-x{overflow-x:auto}
