/* AuraAvatar model prep (avatarprep-ui.js). Colors come from the tokens below; a host page can override them on .ap. */
.ap{--ap-panel:var(--panel,#0d1020);--ap-panel2:var(--panel2,#12162a);--ap-field:#090c18;--ap-line:var(--line,#202640);--ap-text:var(--text,#f4f6ff);--ap-muted:var(--muted,#8993b5);
  --ap-accent:var(--purple,#8b5cf6);--ap-ok:var(--green,#2dd4a4);--ap-warn:var(--amber,#fbbf24);--ap-bad:var(--red,#fb7185);--ap-stage:radial-gradient(circle at 50% 30%,#141935,#0b0e1c 70%);--ap-grid:#3a4270;--ap-grid2:#1f2544;
  --r-root:#8f97b8;--r-waist:#b3a4ff;--r-body:var(--purple,#8b5cf6);--r-head:var(--cyan,#56d6ff);--r-right_arm:var(--blue,#3b82f6);--r-left_arm:var(--green,#2dd4a4);--r-right_item:#93c5fd;--r-left_item:#86efcf;
  --r-right_leg:var(--amber,#fbbf24);--r-left_leg:var(--red,#fb7185);--r-extra:#6b7280;
  display:flex;flex-direction:column;gap:14px;color:var(--ap-text);font-size:13px}
.ap [hidden]{display:none!important}
.ap .mono,.ap code,.ap pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.ap-card{background:var(--ap-panel);border:1px solid var(--ap-line);border-radius:14px;min-width:0;overflow:hidden}
.ap-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 16px 10px}
.ap-head h3{margin:0;font-size:14px}
.ap-hint{color:var(--ap-muted);font-size:11px}
.ap-btn{border:1px solid var(--ap-line);background:var(--ap-panel2);color:var(--ap-text);border-radius:10px;padding:9px 14px;cursor:pointer;font:600 13px/1.2 inherit;margin:0}
.ap-btn:hover:not(:disabled){border-color:var(--ap-accent)}
.ap-btn.small{padding:6px 10px;font-size:12px}
.ap-btn.primary{border-color:transparent;background:var(--ap-accent);color:#fff}
.ap-btn:disabled{opacity:.45;cursor:not-allowed}
.ap-btn:focus-visible,.ap-anim:focus-visible{outline:2px solid var(--ap-accent);outline-offset:2px}
.ap input,.ap select{background:var(--ap-field);border:1px solid var(--ap-line);border-radius:9px;padding:8px 10px;color:var(--ap-text);width:100%;min-width:0;font:inherit;font-size:13px;margin:0}
.ap input[type=checkbox]{width:auto;accent-color:var(--ap-accent);margin:2px 0 0}
.ap input[type=range]{padding:0;border:0;background:none;accent-color:var(--ap-accent)}
.ap input:focus,.ap select:focus{outline:none;border-color:var(--ap-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--ap-accent) 18%,transparent)}
.ap-f{display:flex;flex-direction:column;gap:6px;font-size:11px;color:var(--ap-muted);min-width:0}
.ap-identity{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;padding:14px 16px;align-items:end}
.ap-cmd{display:block;padding:9px 10px;border:1px dashed var(--ap-line);border-radius:9px;color:var(--ap-text);font-size:12px;overflow-wrap:anywhere}
.ap-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.ap-status{font-size:12px;color:var(--ap-muted)}
.ap-status.dirty{color:var(--ap-warn)}
.ap-grid3{display:grid;grid-template-columns:minmax(250px,300px) minmax(0,1fr) minmax(270px,330px);gap:14px;align-items:start}
.ap-grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:14px;align-items:start}
.ap-col{display:flex;flex-direction:column;gap:14px;min-width:0}
@media(max-width:1250px){.ap-grid3{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ap-grid3 .ap-stage{grid-column:1/-1;order:-1}}
@media(max-width:760px){.ap-grid3,.ap-grid2{grid-template-columns:minmax(0,1fr)}}
.ap-empty{color:var(--ap-muted);font-size:12px;padding:6px 16px 14px;margin:0}
.ap-sw{width:10px;height:10px;border-radius:3px;flex:none;display:inline-block}
.ap-tree{display:flex;flex-direction:column;gap:2px;max-height:520px;overflow:auto;padding:0 8px 10px}
.ap-bone{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px 8px;padding:6px 8px 6px calc(8px + var(--d)*14px);border-radius:10px;border:1px solid transparent;cursor:pointer}
.ap-bone:hover{background:var(--ap-panel2)}
.ap-bone.sel{background:var(--ap-panel2);border-color:var(--ap-accent)}
.ap-bname{font:500 12px ui-monospace,Menlo,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ap-arrow{color:var(--ap-ok)}
.ap-cnt{font:11px ui-monospace,Menlo,monospace;color:var(--ap-muted)}
.ap-bone select{grid-column:2/4;padding:4px 6px;font-size:12px}
.ap-canvas{position:relative;aspect-ratio:4/3;max-height:540px;width:100%;border-top:1px solid var(--ap-line);border-bottom:1px solid var(--ap-line);background:var(--ap-stage);overflow:hidden;touch-action:none}
.ap-canvas canvas{display:block;width:100%;height:100%;cursor:grab}
.ap-legend{position:absolute;left:12px;bottom:10px;right:12px;display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11px;color:var(--ap-muted);pointer-events:none}
.ap-legend span{display:inline-flex;align-items:center;gap:5px}
.ap-hud{position:absolute;right:12px;top:10px;font:12px ui-monospace,Menlo,monospace;color:var(--ap-muted);pointer-events:none}
.ap-glmissing{position:absolute;inset:0;display:grid;place-items:center;color:var(--ap-muted);text-align:center;padding:20px}
.ap-transport{display:flex;align-items:center;gap:10px;padding:12px 16px;flex-wrap:wrap}
.ap-transport select{width:auto;max-width:200px}
.ap-transport input[type=range]{flex:1 1 150px;min-width:110px;width:auto}
.ap-time{font:12px ui-monospace,Menlo,monospace;color:var(--ap-muted);min-width:92px;text-align:right;font-variant-numeric:tabular-nums}
.ap-alist{display:flex;flex-direction:column;gap:6px;padding:0 10px 10px;max-height:360px;overflow:auto}
.ap-anim{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;padding:9px 10px;border-radius:12px;border:1px solid var(--ap-line);background:var(--ap-panel2);cursor:pointer}
.ap-anim.sel{border-color:var(--ap-accent);box-shadow:0 0 0 1px var(--ap-accent) inset}
.ap-anim.off .ap-aname,.ap-anim.off .ap-ameta{opacity:.5}
.ap-aname{font:600 12px ui-monospace,Menlo,monospace;overflow-wrap:anywhere}
.ap-from{font-weight:400;color:var(--ap-muted)}
.ap-ameta{grid-column:2;display:flex;flex-wrap:wrap;gap:4px 8px;font-size:11px;color:var(--ap-muted);align-items:center}
.ap-tag{font:500 10px ui-monospace,Menlo,monospace;padding:1px 7px;border-radius:999px;border:1px solid var(--ap-line);color:var(--ap-text)}
.ap-tag.std{border-color:color-mix(in srgb,var(--ap-ok) 60%,transparent)}
.ap-tag.emote{border-color:color-mix(in srgb,var(--ap-accent) 70%,transparent)}
.ap-tag.bad{border-color:var(--ap-bad);color:var(--ap-bad)}
.ap-ed{border-top:1px solid var(--ap-line);padding:14px 16px;display:grid;gap:10px}
.ap-ed h4{margin:0;font:600 12px ui-monospace,Menlo,monospace;overflow-wrap:anywhere}
.ap-note{font-size:12px;color:var(--ap-muted);margin:0;line-height:1.5}
.ap-cmdbox{display:flex;align-items:center;border:1px solid var(--ap-line);border-radius:9px;background:var(--ap-field)}
.ap-cmdbox span{padding-left:10px;color:var(--ap-muted);font:12px ui-monospace,Menlo,monospace;white-space:nowrap}
.ap-cmdbox input{border:0;background:transparent;box-shadow:none!important;font-family:ui-monospace,Menlo,monospace}
.ap-frame{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px;padding:0 16px 16px}
.ap-fr{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--ap-line);border-radius:10px;background:var(--ap-panel2);font-size:12px}
.ap-fr b{font:600 12px ui-monospace,Menlo,monospace}
.ap-fr span:last-child{color:var(--ap-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ap-fr.add span:last-child{color:var(--ap-ok)}
.ap-fr.missing{border-color:color-mix(in srgb,var(--ap-bad) 60%,transparent)}
.ap-fr.missing span:last-child{color:var(--ap-bad)}
.ap-issues{list-style:none;margin:0;padding:0 16px 16px;display:flex;flex-direction:column;gap:8px}
.ap-issues li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:start;font-size:12px;line-height:1.5}
.ap-issues .ap-btn{margin-left:6px}
.ap-lvl{font:600 10px ui-monospace,Menlo,monospace;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:6px;border:1px solid;text-align:center}
.ap-lvl.error{color:var(--ap-bad)}.ap-lvl.warn{color:var(--ap-warn)}.ap-lvl.info{color:var(--ap-muted);border-color:var(--ap-line)}.ap-lvl.ok{color:var(--ap-ok)}
.ap-head .ap-lvl{display:inline-block}
.ap-tabs{display:flex;gap:4px;background:var(--ap-panel2);border:1px solid var(--ap-line);border-radius:10px;padding:3px;flex-wrap:wrap}
.ap-tabs button{border:0;background:transparent;border-radius:7px;padding:4px 10px;cursor:pointer;font:500 11px ui-monospace,Menlo,monospace;color:var(--ap-muted);margin:0}
.ap-tabs button[aria-selected="true"]{background:var(--ap-panel);color:var(--ap-text);box-shadow:0 0 0 1px var(--ap-line)}
.ap-out{border-top:1px solid var(--ap-line)}
.ap-code{margin:0;padding:14px 16px;max-height:520px;overflow:auto;font-size:11.5px;line-height:1.55;color:var(--ap-text);white-space:pre}
.ap-changes{padding:12px 16px;display:flex;flex-direction:column;gap:10px}
.ap-changes .ap-empty{padding:0}
.ap-changes table{border-collapse:collapse;width:100%;font-size:12px}
.ap-changes td{padding:6px 8px;border-bottom:1px solid var(--ap-line);vertical-align:top;overflow-wrap:anywhere}
.ap-changes td:first-child{color:var(--ap-muted);width:90px;padding-left:0}
.ap-changes td b{font-family:ui-monospace,Menlo,monospace}
.ap-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--ap-line);flex-wrap:wrap;font-size:12px;color:var(--ap-muted)}
.ap-btns{display:flex;gap:6px;flex-wrap:wrap}

/* AR Backend page around the editor (avatars.js) */
.av{display:flex;flex-direction:column;gap:14px;min-width:0}
.av-intro{margin:0;padding:0 19px 12px;color:var(--muted);font-size:12px;line-height:1.6}
.av-scroll{overflow-x:auto}
.av-count,.av-muted{color:var(--muted);font-size:12px}
.av-warn{color:var(--amber);font-size:12px}
.av-row-actions{white-space:nowrap;text-align:right}
.av-row-actions .btn{display:inline-block;margin:0 0 0 6px;text-decoration:none}
.av-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.av-bar h2{margin:0;font-size:17px}
.av-bar .btn{margin:0}
.av-bar #avForget{margin-left:auto}
.av-file{color:var(--muted);font-size:12px}
.av-notice{padding:12px 19px;font-size:12px}
.av-setup{margin:0 19px 14px;padding:12px 14px;border:1px solid rgba(251,191,36,.3);border-radius:12px;background:rgba(251,191,36,.05);font-size:12px}
.av-setup ul{margin:8px 0;padding-left:18px;display:flex;flex-direction:column;gap:6px}
.av-setup .av-muted{overflow-wrap:anywhere}
.av-st{font-weight:700;font-size:12px}.av-st.ok{color:var(--green)}.av-st.warn{color:var(--amber)}.av-st.bad{color:var(--red)}
.av-link{background:none;border:0;padding:0;color:var(--cyan);cursor:pointer;font:600 13px inherit;text-decoration:underline}
.av-file-link{color:var(--cyan);font-size:12px;overflow-wrap:anywhere}
#avBuild .table td{vertical-align:top}
#avBuild .card-head .btn{margin:0}
.av-loghead{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 19px 8px;border-top:1px solid var(--line)}
.av-loghead .btn{margin:0}
.av-log{margin:0 19px 19px;padding:12px 14px;max-height:420px;overflow:auto;background:#090c18;border:1px solid var(--line);border-radius:10px;font:11.5px/1.5 ui-monospace,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text)}
