/* Editor chrome uses Companion/Studio tokens; printed SVG remains independent. */
#free-lore-dialog {
 width:calc(100vw - 32px);max-width:1700px;height:calc(100dvh - 32px);max-height:none;
 padding:20px;border:1px solid var(--line-strong);border-radius:10px;
 background:var(--panel);color:var(--ink);box-shadow:var(--shadow);font-family:var(--font-ui);
}
#free-lore-dialog[open]{display:flex;flex-direction:column;gap:12px}
#free-lore-dialog::backdrop{background:var(--overlay)}
#free-lore-dialog :is(label,h2,h3){color:var(--ink)}
#free-lore-dialog :is(small,.hint){color:var(--muted)}
#free-lore-dialog label{font-size:12px}
#free-lore-dialog :is(button,input,select,textarea){border-radius:var(--button-radius)}
#free-lore-dialog button{min-height:40px;font-size:14px;padding:8px 12px;line-height:1.4}
#free-lore-dialog button:disabled{opacity:.4}
#free-lore-dialog button.danger{color:var(--danger)}
#free-lore-dialog :is(input,select,textarea){font:14px/1.5 var(--font-ui)}
#free-lore-dialog :is(input[type=number],select){min-height:40px}
#free-lore-dialog :is(input[type=checkbox],input[type=range]){accent-color:var(--accent)}
#free-lore-dialog input[type=range]{padding:0;border:0;background:transparent;min-height:24px}
.free-heading,.free-toolbar,.free-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.free-heading>div{margin-right:auto;min-width:0}
.free-heading h2{margin:0 0 4px;font-size:22px;line-height:1.3;font-weight:650;letter-spacing:-.3px}
.free-heading small{font-size:12px}
.free-toolbar{border-block:1px solid var(--line);padding:12px 0}
.free-toolbar label{display:flex;align-items:center;gap:8px;margin:0}
.free-toolbar .free-view-zoom{margin-inline:8px}
.free-toolbar input[type=range]{width:100px;margin:0}
#free-lore-dialog output{font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink);min-width:32px;text-align:right}
.free-check{display:flex;align-items:center;gap:8px}
#free-lore-dialog .free-check input{width:16px;height:16px;margin:0}
.free-body{display:grid;grid-template-columns:190px minmax(0,1fr) 280px;gap:16px;min-height:0;flex:1}
.free-sidebar,.free-properties{overflow:auto;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:8px;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}
.free-sidebar h3,.free-properties h3{margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid var(--line);font-size:12px;font-weight:750;letter-spacing:.8px;text-transform:uppercase}
.free-sidebar .hint{font-size:12px;margin:0 0 12px}
.free-layers{display:flex;flex-direction:column;gap:6px}
#free-lore-dialog .free-layers button{text-align:left;overflow-wrap:anywhere;font-weight:500;display:flex;flex-direction:column;gap:3px}
.free-layers button small{font-size:9px;font-weight:700;letter-spacing:.5px}
#free-lore-dialog .free-layers button.active{background:rgb(var(--accent-rgb)/.14);border-color:var(--accent);box-shadow:inset 3px 0 var(--accent)}
.free-viewport{overflow:auto;background:var(--surface-well);padding:24px;min-width:0;min-height:220px;border:1px solid var(--line);border-radius:8px;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}
.free-stage{position:relative;margin:auto;flex-shrink:0;background:#fff;box-shadow:var(--shadow);touch-action:none;outline:none}
.free-art,.free-overlay{position:absolute;inset:0}
.free-art svg{display:block;width:100%;height:100%}
.free-object{position:absolute;cursor:move;border:1px solid transparent}
.free-object:hover{border-color:rgb(var(--accent-rgb)/.65)}
.free-object.selected{border:2px solid var(--accent);box-shadow:0 0 0 1px var(--surface)}
.free-object.locked{pointer-events:none}
.free-object.selected.locked{border-style:dashed}
.free-object [data-free-resize]{position:absolute;width:16px;height:16px;right:-8px;bottom:-8px;background:var(--accent);border:2px solid var(--surface);border-radius:3px;cursor:nwse-resize;touch-action:none}
.free-guide{position:absolute;background:var(--accent);pointer-events:none}
.free-guide.x{width:1px;top:0;height:100%}.free-guide.y{height:1px;left:0;width:100%}
.free-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.free-properties label{margin:10px 0}
.free-properties input[type=color]{width:100%;height:40px;padding:4px}
.free-properties fieldset{border:0;padding:0;min-width:0}
.free-properties textarea{min-height:160px}
.free-properties .free-actions{margin:12px 0;padding-block:12px;border-block:1px solid var(--line)}
#free-lore-dialog .free-actions button{font-size:12px;padding:7px 9px}
.free-properties .free-range{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px}
.free-range input{grid-column:1/-1;width:100%;margin:0}
.free-warnings{max-height:90px;overflow:auto;display:flex;flex-direction:column;gap:4px}
#free-lore-dialog .free-warnings button{text-align:left;font-size:12px;color:var(--gold);border-color:var(--line);background:var(--panel-2);padding:6px 10px}
#free-lore-dialog .free-warnings .free-error{color:var(--danger)}
.free-warnings:empty,#free-lore-dialog [data-lore-status]:empty{display:none}
#free-lore-dialog [data-lore-status]{margin:0;font-size:13px;color:var(--muted)}
.free-template-options{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:1100px){
 .free-body{grid-template-columns:minmax(0,1fr) 260px;grid-template-rows:auto minmax(0,1fr);gap:12px}
 .free-sidebar{grid-column:1/-1;max-height:110px;padding:8px}
 .free-sidebar .free-layers{flex-direction:row;flex-wrap:wrap}
 .free-sidebar h3,.free-sidebar p{display:none}
 .free-sidebar .free-layers button{max-width:240px}
}
@media(max-width:700px){
 body #free-lore-dialog[open]{width:100%;height:100dvh;padding:12px;border-radius:0;gap:10px}
 #free-lore-dialog button{min-height:44px}
 .free-heading h2{font-size:20px}.free-heading>div{flex-basis:100%}
 .free-heading>[data-free-action=apply]{flex:1}
 .free-toolbar{gap:8px;padding:10px 0}
 #free-lore-dialog .free-toolbar button{font-size:12px;padding:7px 9px}
 .free-toolbar .free-view-zoom{margin:0;flex-basis:100%}
 .free-toolbar .free-view-zoom input{flex:1;min-width:70px}
 .free-body{display:flex;flex-direction:column;overflow:auto;gap:12px}
 .free-viewport{flex:0 0 45dvh}
 .free-properties,.free-sidebar{display:block;overflow:visible;flex-shrink:0}
 .free-sidebar{order:2;max-height:none;padding:12px}
 .free-sidebar h3{display:block}.free-sidebar .free-layers{flex-direction:column}
 .free-sidebar .free-layers button{max-width:none}
 .free-properties{order:1}
 .free-warnings{max-height:64px}
}
