*{box-sizing:border-box}html,body{font:13px/1.45 var(--font-body);background:var(--bg);color:var(--text);display:flex;flex-direction:column;overflow:hidden}button,input,select,textarea{font:inherit;color:var(--text)}button,input,select{background:var(--panel2);border:1px solid var(--border2);border-radius:0;padding:5px 9px}button{cursor:pointer;white-space:nowrap}button:hover{border-color:var(--accent)}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);color:var(--bg);font-weight:600;border-color:var(--accent)}button.danger{color:var(--danger)}button.active{border-color:var(--gold);color:var(--gold)}input,select{min-width:0}input[type=number]{width:90px}input[type=range]{padding:0;accent-color:var(--accent)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--steel);outline-offset:2px}nav{display:flex;gap:6px}.toolbar{display:flex;gap:6px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap}.grow{flex:1}.sep{width:1px;height:22px;background:var(--border);margin:0 3px}.cad-work{flex:1;min-height:0;display:flex}aside{width:265px;min-width:220px;display:flex;flex-direction:column;background:var(--panel);border-right:1px solid var(--border)}.library-head{padding:12px;border-bottom:1px solid var(--border)}.library-head label{display:block;color:var(--muted);margin-bottom:7px}.library-head input{width:100%}#patternList{overflow:auto;flex:1;padding:5px}button.pattern-card{width:100%;display:block;text-align:left;border-color:transparent;background:none;margin-bottom:3px;padding:9px}.pattern-card.selected{background:var(--accent-brass-dim);border-color:var(--accent)}.pattern-card strong{display:block;font:600 12px var(--mono)}.pattern-card span{display:block;font-size:11px;color:var(--muted);margin:3px 0 6px}.pattern-card canvas{display:block;width:100%;height:62px;border:1px solid var(--border);background:var(--bg)}.aside-foot{padding:10px 12px;color:var(--muted);font-size:11px;border-top:1px solid var(--border)}#workspace{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}.identity{display:flex;gap:12px;padding:10px 12px;border-bottom:1px solid var(--border);background:var(--panel)}.identity label{color:var(--muted);font-size:11px;display:flex;flex-direction:column;gap:4px}.identity input{font-size:13px}.identity .name{width:240px;font-family:var(--mono)}.identity .description{flex:1}.identity .description input{width:100%}#editorView{flex:1;min-height:0;display:flex;flex-direction:column}.preview-bar{display:flex;gap:12px;align-items:center;padding:8px 12px;background:var(--panel2);flex-wrap:wrap}.preview-bar label{color:var(--muted);display:flex;align-items:center;gap:7px;font-size:11px}.preview-bar output{font-family:var(--mono);min-width:28px;color:var(--text)}#previewWrap{position:relative;flex:1;min-height:170px;overflow:hidden}#preview{width:100%;height:100%;display:block}.preview-label{position:absolute;left:16px;top:12px;color:var(--muted);font:11px var(--mono);pointer-events:none}#previewNotice{position:absolute;bottom:12px;left:14px;background:var(--panel);color:var(--gold);padding:5px 9px;font-size:11px;max-width:90%}.definitions{height:305px;min-height:280px;display:flex;border-top:1px solid var(--border)}.family-panel{width:48%;display:flex;flex-direction:column;min-width:230px;border-right:1px solid var(--border)}.section-bar{padding:8px 10px;background:var(--panel);display:flex;gap:6px;align-items:center;border-bottom:1px solid var(--border)}.section-bar strong{font-size:12px;font-weight:600}.section-bar button{font-size:11px;padding:3px 7px}#familyList{flex:1;overflow:auto;padding:4px}.family-row{width:100%;display:grid;grid-template-columns:24px 55px 85px 1fr;align-items:center;text-align:left;border-color:transparent;background:none;padding:7px;font:11px var(--mono)}.family-row.selected{background:var(--accent-brass-dim);border-color:var(--accent)}.family-row span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.family-head{padding:6px 11px;display:grid;grid-template-columns:24px 55px 85px 1fr;color:var(--muted);font-size:10px}.properties{flex:1;min-width:0;overflow:auto;padding:10px 12px;background:var(--panel)}.properties h3{font-size:12px;margin:0 0 10px;font-weight:600;color:var(--gold)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.field-grid label{font-size:11px;color:var(--muted);display:flex;flex-direction:column;gap:4px}.field-grid input{width:100%}.wide{grid-column:1/-1}.hint{font-size:11px;color:var(--muted);margin:9px 0}.warning{color:var(--danger);font-size:11px;margin:8px 0;white-space:pre-line}#sourceView{padding:14px;flex:1;min-height:0;display:flex;flex-direction:column;gap:10px}#sourceView[hidden],#editorView[hidden]{display:none}#patSource{resize:none;flex:1;min-height:200px;background:var(--bg);border:1px solid var(--border2);padding:14px;color:var(--text);font:13px/1.8 var(--mono)}footer{display:flex;gap:18px;align-items:center;padding:6px 12px;color:var(--muted);font-size:11px;border-top:1px solid var(--border);background:var(--panel)}#statusMessage{color:var(--good)}dialog{background:var(--panel);color:var(--text);border:1px solid var(--border2);border-radius:0;box-shadow:0 8px 40px #0008;padding:18px;max-width:95vw}dialog::backdrop{background:#0009}dialog h2{font-size:17px;margin:0 0 8px;color:var(--gold)}dialog p{color:var(--muted);font-size:12px}.dialog-actions{display:flex;gap:7px;justify-content:flex-end;margin-top:14px}.dialog-actions button{font-size:12px}#tileDialog{width:850px}#tileControls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}#tileControls label{font-size:12px;color:var(--muted)}#tileCanvas{width:100%;height:430px;background:var(--bg);border:1px solid var(--border2);touch-action:none;display:block}#tileStatus{color:var(--muted);font-size:11px;margin-top:8px}#helpDialog{width:650px}#helpDialog li{margin:8px 0;color:var(--muted);font-size:12px}#helpDialog code{color:var(--text)}#duplicateList{font:12px var(--mono);max-height:170px;overflow:auto;white-space:pre-line}
@media(max-width:1050px){aside{width:220px;min-width:190px}.identity .name{width:190px}.field-grid{gap:6px}.family-panel{width:45%;min-width:210px}.family-row,.family-head{grid-template-columns:22px 45px 70px 1fr}}
@media(max-width:760px){body{height:auto;overflow:auto;min-height:100vh}.cad-work{flex:none;flex-direction:column;min-height:0}#workspace,#editorView{flex:none}#previewWrap{flex:none;height:300px}aside{width:100%;min-width:0;height:190px;border-right:0;border-bottom:1px solid var(--border)}.library-head{padding:8px 12px;display:flex;align-items:center;gap:10px}.library-head label{margin:0;white-space:nowrap}#patternList{display:flex;overflow-x:auto}button.pattern-card{min-width:175px;width:175px}.pattern-card canvas{height:43px}.aside-foot{display:none}.identity{flex-wrap:wrap}.identity .name{width:100%}.identity .description{min-width:220px}#previewWrap{min-height:250px}.definitions{height:350px;min-height:350px}.family-panel{min-width:150px;width:40%}.family-row,.family-head{grid-template-columns:20px 45px 1fr}.family-row span:last-child,.family-head span:last-child{display:none}.field-grid{grid-template-columns:1fr}.wide{grid-column:auto}footer{flex-wrap:wrap}#tileCanvas{height:330px}}

.site-inline-1{display:flex;align-items:end;gap:6px}
.site-inline-2{display:flex;gap:6px}
