/* DjHuman v0.14.0 · estilos exclusivos del dominio anatómico.
 * La base visual común se hereda íntegramente de /DjCore/css/dj-ui.css.
 */
.app-shell{grid-template-rows:70px minmax(0,1fr) 28px!important}
.anatomy-library{display:grid;gap:7px}.anatomy-card{width:100%;min-height:48px;padding:7px 8px;border:1px solid rgba(82,217,255,.13);border-radius:8px;background:linear-gradient(180deg,rgba(21,49,70,.28),rgba(6,18,31,.48));color:#91adbd;text-align:left;cursor:pointer}.anatomy-card:hover{border-color:rgba(82,217,255,.34);color:#e8fbff}.anatomy-card strong{display:block;font-size:10px}.anatomy-card small{display:block;margin-top:3px;color:#536f80;font-size:8px;line-height:1.35}.anatomy-card[disabled]{opacity:.55;cursor:default}.anatomy-card .state{float:right;color:#668697;font-size:7px;font-weight:400;letter-spacing:.06em;text-transform:uppercase}
.layer-list{display:flex;flex-direction:column;gap:5px}.layer-empty,.feature-note{padding:7px;border:1px solid rgba(82,217,255,.08);border-radius:6px;background:rgba(82,217,255,.025);color:#587487;font-size:8.5px;line-height:1.45}.feature-note strong{color:#91c9da}.anatomy-state{display:flex;align-items:center;gap:6px}.anatomy-state i{width:6px;height:6px;border-radius:50%;background:#64ffc0;box-shadow:0 0 7px rgba(100,255,192,.5)}
.model-file{position:relative;overflow:hidden}.model-file input{position:absolute;inset:0;opacity:0;cursor:pointer}.model-file[aria-disabled="true"] input{pointer-events:none}.model-file[aria-disabled="true"]{opacity:.48;cursor:default}.capability-badge{display:inline-flex;align-items:center;padding:3px 6px;border:1px solid rgba(163,107,255,.2);border-radius:999px;background:rgba(163,107,255,.06);color:#aa8ce7;font-size:7.5px;letter-spacing:.05em}.clip-controls{display:grid;gap:5px}.clip-axis{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.clip-axis button{height:27px;border:1px solid rgba(82,217,255,.12);border-radius:5px;background:#081522;color:#658699;font-size:9px}.clip-axis button:disabled{opacity:.38}
@media(max-width:720px){.app-shell{grid-template-rows:78px 58vh 28px!important}}

/* v0.2.0 · ModelAsset / GLB-GLTF */
.visually-hidden-file{position:fixed!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.model-file.loading{opacity:.55;pointer-events:none}.anatomy-card.ready{border-color:rgba(100,255,192,.25);color:#dffdf2}.anatomy-card.ready .state{color:#64ffc0}.import-note{margin-top:7px}
.tree-item{grid-template-columns:18px minmax(0,1fr) auto 24px}.tree-meta{color:#49697a;font-size:7px;white-space:nowrap}.tree-item.active-asset{border-color:rgba(100,255,192,.16)}
.asset-info{margin-bottom:6px;color:#83aabc;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-search{margin-bottom:6px}.layer-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:6px}.layer-actions .wide-btn{padding-left:4px;padding-right:4px;font-size:8px}
.layer-list{max-height:290px;overflow:auto;padding-right:2px}.layer-row{display:grid;grid-template-columns:minmax(0,1fr) 25px 82px 25px;gap:4px;align-items:center;min-height:27px;padding:2px 3px 2px calc(3px + var(--depth,0)*8px);border:1px solid transparent;border-radius:5px;background:rgba(255,255,255,.012)}.layer-row:hover{background:rgba(82,217,255,.035)}.layer-row.selected{border-color:rgba(82,217,255,.28);background:rgba(82,217,255,.055)}.layer-main{min-width:0;display:flex;align-items:center;gap:4px;border:0;background:transparent;color:#87a7b7;text-align:left;cursor:pointer}.layer-kind{flex:0 0 auto;color:#587f91;font-size:8px}.layer-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px}.layer-vis{display:grid;place-items:center;cursor:pointer}.layer-vis input{position:absolute;opacity:0;pointer-events:none}.layer-vis span{font-size:9px;color:#385567}.layer-vis input:checked+span{color:#64ffc0;text-shadow:0 0 6px rgba(100,255,192,.35)}.layer-opacity{display:grid;grid-template-columns:minmax(0,1fr) 20px;gap:2px;align-items:center}.layer-opacity input{width:100%;min-width:0}.layer-opacity output{font-size:7px;color:#668697;text-align:right}.layer-isolate{width:23px;height:21px;border:1px solid rgba(163,107,255,.18);border-radius:4px;background:rgba(163,107,255,.04);color:#aa8ce7;font-size:8px;cursor:pointer}.layer-isolate:hover{border-color:rgba(163,107,255,.45);color:#d4c5ff}.capability-badge.live{border-color:rgba(100,255,192,.2);background:rgba(100,255,192,.05);color:#75dcb0}.status-error .status-dot{background:#ff6f76!important;box-shadow:0 0 7px rgba(255,111,118,.45)!important}.status-error #statusText{color:#ff9ca1}
@media(max-width:1120px){.layer-row{grid-template-columns:minmax(0,1fr) 23px 66px 23px}.layer-actions{grid-template-columns:1fr}}

/* v0.4.0 · PanelLayoutController de DjCore */
.panel-block .panel-icon-btn{font-family:Consolas,monospace}.floating-panel-host .layer-list{max-height:min(42vh,360px)}

.official-asset-state{display:flex;align-items:center;gap:8px;margin-top:8px;padding:7px 8px;border:1px solid rgba(82,217,255,.16);border-radius:6px;background:rgba(82,217,255,.035);color:#8ba8b8}.official-asset-state .official-state-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#52d9ff;box-shadow:0 0 7px rgba(82,217,255,.35)}.official-asset-state div{min-width:0;display:grid;gap:2px}.official-asset-state strong{font-size:9px;color:#9ec5d5}.official-asset-state small{font-size:7px;color:#648595;white-space:normal}.official-asset-state.ready{border-color:rgba(100,255,192,.25);background:rgba(100,255,192,.045)}.official-asset-state.ready .official-state-dot{background:#64ffc0;box-shadow:0 0 8px rgba(100,255,192,.45)}.official-asset-state.ready strong{color:#80e7bc}.official-asset-state.fallback{border-color:rgba(255,193,92,.25);background:rgba(255,193,92,.04)}.official-asset-state.fallback .official-state-dot{background:#ffc15c;box-shadow:0 0 8px rgba(255,193,92,.4)}.official-asset-state.fallback strong{color:#e5bb72}.official-asset-state.error{border-color:rgba(255,111,118,.3);background:rgba(255,111,118,.045)}.official-asset-state.error .official-state-dot{background:#ff6f76}.official-asset-state.error strong{color:#ff9ca1}

/* v0.12.1 · configuración antropométrica específica de DjHuman */
.body-config-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.body-update-btn{margin-top:7px}.body-config-note{margin-top:7px}.body-config-grid .field{min-width:0}
@media(max-width:1120px){.body-config-grid{grid-template-columns:1fr}}

/* v0.12.1 · sistemas anatómicos específicos de DjHuman */
.systems-list{display:grid;gap:2px}.systems-note{margin-top:7px}

/* v0.13.0: el progreso de arranque vive en el modal genérico de DjCore; la barra de estado conserva solo un indicador estático. */
.statusbar .status-dot.status-static{animation:none!important}
#selectionModeBtn.active{border-color:rgba(100,255,192,.45)}

/* v0.14.0 · configuración corporal ampliada */
.body-config-grid .field.full{grid-column:1/-1}

/* barra de progreso en la barra de estado (carga de sistemas anatómicos) */
.statusbar .status-loading #statusText{color:#9fd8e8}
.status-progress{display:inline-flex;align-items:center;gap:6px;margin-left:8px;vertical-align:middle}
.status-progress[hidden]{display:none}
.status-progress-track{position:relative;width:88px;height:6px;border-radius:3px;background:rgba(82,217,255,.12);overflow:hidden}
.status-progress-fill{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,#3aa0c8,#52d9ff);border-radius:3px;transition:width .15s ease}
.status-progress-pct{font-size:8px;letter-spacing:.04em;color:#9fd8e8;min-width:26px;text-align:right}

/* cortes anatómicos (clipping) */
.clip-axis button[aria-pressed="true"]{border-color:rgba(82,217,255,.5);background:rgba(82,217,255,.12);color:#e6fbff}

/* regiones anatómicas de la piel */
.region-chips{display:flex;flex-wrap:wrap;gap:4px;margin:2px 0 6px}
.region-chips[hidden]{display:none}
.region-chip{font-size:8px;letter-spacing:.02em;padding:3px 7px;border:1px solid rgba(163,107,255,.22);border-radius:11px;background:rgba(163,107,255,.05);color:#b79df0;cursor:pointer;white-space:nowrap}
.region-chip:hover{border-color:rgba(163,107,255,.5);color:#d9cbff}
.region-chip[aria-pressed="true"]{border-color:rgba(163,107,255,.7);background:rgba(163,107,255,.18);color:#efe8ff}

/* importar modelo propio */
.import-model{display:grid;gap:5px;margin:7px 0}
.import-file-btn{position:relative;overflow:hidden;text-align:center;cursor:pointer}
.import-file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.import-url-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px}
.import-url-row input{min-width:0}
.import-url-row button{padding:0 10px;border:1px solid rgba(82,217,255,.2);border-radius:5px;background:rgba(82,217,255,.05);color:#8fc4d8;font-size:8px;cursor:pointer}
.import-url-row button:hover{border-color:rgba(82,217,255,.45);color:#e6fbff}

/* v0.31.3 · presentación Reference Human: rótulos por sistema */
.system-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center}.system-row .switch-row{min-width:0}.system-label-toggle{display:inline-flex;align-items:center;gap:4px;color:#688999;font-size:7px;white-space:nowrap;cursor:pointer;user-select:none}.system-label-toggle input{accent-color:#64ffc0}.system-label-toggle:has(input:checked){color:#a7dccc}.system-label-toggle:has(input:disabled){opacity:.42;cursor:not-allowed}.system-label-placeholder{color:#385567;font-size:8px;padding-right:3px}

/* v0.31.4 · Inspector de sistemas en columnas y estados independientes */
.systems-grid{display:grid;gap:0;border:1px solid rgba(92,142,166,.18);border-radius:4px;overflow:hidden}
.systems-grid-head,.system-grid-row{display:grid;grid-template-columns:minmax(0,1fr) 38px 50px;align-items:center;min-height:26px}
.systems-grid-head{background:rgba(19,42,55,.72);color:#7899aa;font-size:7px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.systems-grid-head span:not(:first-child){text-align:center}
.systems-grid-head span,.system-grid-row>*{padding:0 6px}
.system-grid-row{border-top:1px solid rgba(92,142,166,.12);font-size:8px;color:#9ab8c5}
.system-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mini-switch{display:flex;align-items:center;justify-content:center;cursor:pointer;min-width:0}
.mini-switch input{position:absolute;opacity:0;pointer-events:none}
.mini-switch i{position:relative;width:20px;height:10px;border-radius:8px;background:#223d4b;border:1px solid #355665;transition:.15s ease}
.mini-switch i::after{content:"";position:absolute;width:6px;height:6px;left:1px;top:1px;border-radius:50%;background:#6e8995;transition:.15s ease}
.mini-switch input:checked+i{background:#28684f;border-color:#4fa47d}
.mini-switch input:checked+i::after{left:11px;background:#b8f5d8}
.mini-switch input:disabled+i{opacity:.35;cursor:not-allowed}

/* DjCore 0.72 canonical Document I/O surfaces */
.document-io-tools{display:contents}
.file-flyout-item{position:relative}
.file-flyout-trigger{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%}
.file-flyout-arrow{margin-left:auto;opacity:.72;font-size:16px}
.file-flyout-menu{display:none;position:absolute;top:-4px;left:calc(100% + 4px);z-index:12030;min-width:180px;padding:4px;border:1px solid rgba(82,217,255,.18);border-radius:6px;background:#07131f;box-shadow:0 14px 38px rgba(0,0,0,.55)}
.file-flyout-item:hover>.file-flyout-menu,.file-flyout-item:focus-within>.file-flyout-menu{display:block}
