:root {
  --bg:#0b0e13; --panel:#131821; --panel2:#1a2130; --panel3:#202939; --line:#2d3749;
  --text:#f4f7fb; --muted:#9aa7b8; --accent:#6da4ff; --accent2:#3f82f3; --danger:#ff6e78; --good:#62d79c;
  --warning:#f3c35f; --shadow:0 18px 50px rgba(0,0,0,.32);
}
*{box-sizing:border-box} html,body{height:100%;margin:0} body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);overflow:hidden;font-size:13px}
button,input,select,textarea{font:inherit} button{color:inherit} input,select,textarea{background:#0f141c;color:var(--text);border:1px solid var(--line);border-radius:7px;padding:7px 8px;outline:none} input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(109,164,255,.12)} textarea{resize:vertical;min-height:60px}
button{border:1px solid var(--line);background:var(--panel2);border-radius:7px;padding:7px 10px;cursor:pointer} button:hover{background:var(--panel3);border-color:#43516a} button:disabled{opacity:.45;cursor:not-allowed}
.btn.primary{background:var(--accent2);border-color:var(--accent2);color:white}.btn.danger,.icon-btn.danger{color:#ff9aa2}.btn.compact{padding:5px 7px;font-size:11px}.icon-only{width:32px;padding:6px}
.topbar{height:58px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 14px;background:#0f141b;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;min-width:225px}.brand-mark{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--accent2);font-size:18px}.brand strong,.brand span{display:block}.brand strong{font-size:14px}.brand span{font-size:10px;color:var(--muted);margin-top:1px}.top-actions{display:flex;align-items:center;gap:6px;min-width:0}.status{font-size:10px;color:var(--muted);max-width:135px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status.good{color:var(--good)}.status.bad{color:var(--danger)}
.sourcebar{height:66px;display:flex;align-items:end;gap:8px;padding:8px 14px;background:#10161f;border-bottom:1px solid var(--line)} label>span{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}.sourcebar label{min-width:130px}.sourcebar .grow{flex:1;min-width:280px}.sourcebar .grow input{width:100%}.sourcebar .tiny{min-width:78px}.sourcebar .tiny input{width:78px}.resolution-summary{min-width:160px;color:var(--muted);font-size:10px;line-height:1.35;padding-bottom:4px}
.view-tabs{height:38px;display:flex;align-items:end;gap:3px;padding:0 14px;background:#0d1219;border-bottom:1px solid var(--line)}.view-tab{border-radius:7px 7px 0 0;border-bottom:none;padding:8px 14px;background:transparent}.view-tab.active{background:var(--panel);border-color:var(--line);color:white}
.workspace{height:calc(100vh - 162px);display:grid;grid-template-columns:230px minmax(420px,1fr) 330px;background:var(--bg)}
.sidebar{background:var(--panel);overflow:auto;padding:10px;border-color:var(--line)}.leftbar{border-right:1px solid var(--line)}.rightbar{border-left:1px solid var(--line)}.sidebar section{padding:8px 0 14px;border-bottom:1px solid var(--line)}.sidebar section:last-child{border-bottom:none}.sidebar h2,.print-settings-card h2{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#c8d1df;margin:0 0 9px}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.badge{font-size:9px;color:var(--muted);padding:2px 5px;border:1px solid var(--line);border-radius:999px}.empty-state{color:var(--muted);font-size:10px;padding:10px;border:1px dashed var(--line);border-radius:7px;line-height:1.4}
.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.tool-btn{padding:7px 4px;font-size:9px;display:flex;flex-direction:column;gap:3px;align-items:center}.tool-btn span{font-size:18px;line-height:18px}.list{display:flex;flex-wrap:wrap;gap:5px}.field-pill{font-size:10px;padding:5px 7px}.mini-input{width:100%;font-size:11px;padding:6px 7px}.asset-list{margin-top:7px;display:flex;flex-direction:column;gap:5px;max-height:310px;overflow:auto}.asset-item{display:flex;gap:7px;align-items:center;padding:5px;border:1px solid transparent;border-radius:6px;cursor:pointer}.asset-item:hover{background:var(--panel2);border-color:var(--line)}.asset-thumb{width:36px;height:36px;border-radius:4px;background:#0a0d12;object-fit:contain;border:1px solid var(--line)}.asset-meta{min-width:0}.asset-name,.asset-path{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-name{font-size:10px}.asset-path{font-size:8px;color:var(--muted);margin-top:2px}
.center{min-width:0;min-height:0;background:#0c1016}.editor-view-panel{display:grid;grid-template-rows:43px minmax(0,1fr) 74px}.canvas-toolbar,.grid-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;background:#111720;border-bottom:1px solid var(--line)}.toolbar-cluster{display:flex;align-items:center;gap:5px;min-width:0}.separator{width:1px;height:20px;background:var(--line);margin:0 3px}.inline-label{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:10px}.inline-label select{padding:5px 6px;max-width:150px}.inline-label input[type=range]{width:90px}.icon-btn{padding:5px 7px;min-width:28px}
.stage-viewport{position:relative;overflow:auto;display:grid;place-items:start center;padding:34px;background-image:radial-gradient(circle at 1px 1px,#202835 1px,transparent 0);background-size:16px 16px}.stage-scaler{transform-origin:top center;position:relative}.card-stage{position:relative;background:white;box-shadow:0 22px 80px rgba(0,0,0,.45);overflow:visible;user-select:none;touch-action:none}.guide{position:absolute;pointer-events:none;z-index:900}.trim-guide{border:2px solid rgba(255,64,64,.72)}.safe-guide{border:2px dashed rgba(64,150,255,.8)}.card-stage.hide-guides .guide{display:none}
.card-element{position:absolute;transform-origin:center center;box-sizing:border-box;cursor:move}.card-element.locked{cursor:default}.card-element.hidden-by-rule{opacity:.18!important;outline:2px dashed #ff8c8c}.card-element.selected{outline:2px solid var(--accent);outline-offset:2px;z-index:850!important}.resize-handle{display:none;position:absolute;width:16px;height:16px;right:-9px;bottom:-9px;border-radius:50%;background:var(--accent);border:3px solid white;cursor:nwse-resize;z-index:950}.card-element.selected:not(.locked) .resize-handle{display:block}.card-text{white-space:pre-wrap;word-break:break-word;overflow:hidden;width:100%;height:100%;display:flex}.card-text-inner{width:100%;min-width:0}.card-image{width:100%;height:100%;display:block;pointer-events:none}.image-placeholder{width:100%;height:100%;display:grid;place-items:center;text-align:center;padding:9px;background:#e3e8ef;color:#687386;font-size:15px;border:1px dashed #99a2ad;border-radius:5px}.shape-svg{width:100%;height:100%;display:block;pointer-events:none;overflow:visible}
.card-strip-wrap{border-top:1px solid var(--line);background:#111720;overflow:hidden}.card-strip{height:100%;display:flex;align-items:center;gap:6px;padding:8px 10px;overflow-x:auto}.card-chip{min-width:105px;max-width:145px;height:54px;text-align:left;padding:6px 8px}.card-chip.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.card-chip strong,.card-chip span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-chip strong{font-size:10px}.card-chip span{font-size:8px;color:var(--muted);margin-top:3px}
.layers-panel{display:flex;flex-direction:column;gap:4px}.layer-group-title{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:7px 0 3px}.layer-row{display:grid;grid-template-columns:24px 24px minmax(0,1fr) 24px 24px;gap:2px;align-items:center;border:1px solid transparent;border-radius:6px;padding:3px}.layer-row:hover{background:var(--panel2)}.layer-row.selected{border-color:var(--accent);background:rgba(109,164,255,.08)}.layer-row button{padding:3px;border:0;background:transparent;font-size:11px}.layer-name{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.layer-kind{color:var(--muted);font-size:8px}.layer-row[draggable=true]{cursor:grab}
.properties{display:flex;flex-direction:column;gap:7px}.properties label{min-width:0}.properties input,.properties select,.properties textarea{width:100%;font-size:11px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:6px}.detail-grid{margin-top:7px}.toggle-line{display:flex;gap:12px;align-items:center}.toggle-line label,.check-row{display:flex!important;align-items:center;gap:6px;color:var(--text);font-size:10px}.toggle-line input,.check-row input{width:auto}.properties details{border:1px solid var(--line);border-radius:7px;padding:6px}.properties summary{cursor:pointer;font-size:10px;color:#cbd5e2}.inline-input{display:flex;gap:4px}.inline-input input{min-width:0;flex:1}.file-btn{text-align:center}.file-btn input{display:none}.font-chips{display:flex;flex-wrap:wrap;gap:4px}.font-chip{font-size:9px;padding:3px 6px;border:1px solid var(--line);border-radius:999px;cursor:pointer}.layer-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.stack{display:flex;flex-direction:column;gap:6px}.hint{font-size:9px;color:var(--muted);line-height:1.45}.hidden{display:none!important}
.grid-view-panel{display:flex;flex-direction:column;min-height:0}.grid-toolbar{height:43px;flex:0 0 auto}.grid-toolbar .grow{flex:1}.grid-toolbar label{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:10px}.deck-grid{padding:18px;overflow:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:start}.grid-card{border:1px solid var(--line);border-radius:9px;background:var(--panel);padding:8px;cursor:pointer}.grid-card:hover{border-color:var(--accent)}.mini-stage-wrap{width:100%;aspect-ratio:2.5/3.5;display:grid;place-items:center;background:#090c11;border-radius:5px;overflow:hidden}.mini-stage{transform-origin:top left;position:relative;background:white}.grid-card-label{font-size:10px;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid-card-meta{font-size:8px;color:var(--muted);margin-top:2px}
.print-view-panel{overflow:auto;padding:22px}.print-settings-card{max-width:850px;margin:0 auto;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px}.print-settings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.print-settings-grid input,.print-settings-grid select{width:100%}.print-actions{display:flex;gap:8px;margin-top:15px}.print-estimate{max-width:850px;margin:12px auto;color:var(--muted);font-size:11px;line-height:1.55}
dialog{width:min(760px,92vw);max-height:80vh;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:0}dialog::backdrop{background:rgba(0,0,0,.65)}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line)}.dialog-head h2{font-size:13px;margin:0}.validation-list{max-height:55vh;overflow:auto;padding:12px}.validation-item{display:flex;gap:8px;padding:7px;border-bottom:1px solid var(--line);font-size:10px}.validation-item.error .validation-dot{color:var(--danger)}.validation-item.warn .validation-dot{color:var(--warning)}#validationSummary{padding:10px 14px;color:var(--muted);font-size:11px}
.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%,18px);background:#edf2fa;color:#121821;padding:9px 12px;border-radius:8px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.18s ease;max-width:min(620px,90vw);font-size:11px;z-index:2000}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:#ffdadd;color:#5b1118}
@media(max-width:1180px){.workspace{grid-template-columns:205px minmax(400px,1fr) 285px}.sourcebar .resolution-summary{display:none}.top-actions .status{display:none}}
@media(max-width:920px){body{overflow:auto}.workspace{height:auto;min-height:calc(100vh - 162px);grid-template-columns:180px minmax(360px,1fr)}.rightbar{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);max-height:none}.sourcebar{overflow-x:auto}.topbar{overflow-x:auto}.print-settings-grid{grid-template-columns:1fr 1fr}}
