:root{--text:#c2c9d6;--text-h:#f3f4f6;--bg:#1c3222;--bg-input:#15261a;--bg-secondary:#1b2f21;--bg-secondary-hover:#24402d;--accent:#a8d5b5;--muted:#8fae9a;--surface:#e7ece9;--text-secondary:#d7ded9;--primary:#2f7d4a;--primary-hover:#39915a;--focus:#46a758;--danger:#7d2f2f;--danger-hover:#913939;--error:#f87171;--error-border:#ef4444;--border:#ffffff2e;--border-strong:#ffffff38;--sans:system-ui, "Segoe UI", Roboto, sans-serif;font:16px/145% var(--sans);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--bg);margin:0;padding:0;overflow:hidden}#root{width:100vw;height:100vh;margin:0;padding:0;overflow:hidden}.app-shell{background:var(--bg);width:100vw;height:100vh;position:relative;overflow:hidden}.scene-toolbar,.scene-status{z-index:10;border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text-h);text-align:left;background:#16261ae0;border-radius:8px;padding:10px 16px;position:fixed;top:18px;left:18px;box-shadow:0 4px 16px #00000059}.scene-toolbar{align-items:center;gap:12px;display:flex}.scene-toolbar label{color:var(--accent);font-size:14px;font-weight:600}.scene-toolbar select{background:var(--bg-input);min-width:200px;color:var(--text-h);border:1px solid var(--border-strong);cursor:pointer;border-radius:6px;outline:none;padding:7px 12px;font-size:14px;transition:border-color .2s}.scene-toolbar select:hover,.scene-toolbar select:focus{border-color:var(--focus)}.scene-error{color:var(--error);font-weight:500}.scene-error-boundary{z-index:5;background:var(--bg);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.scene-error-boundary__card{border:1px solid var(--border);max-width:420px;color:var(--text-h);text-align:center;background:#16261ae0;border-radius:8px;padding:20px 24px;box-shadow:0 4px 16px #00000059}.scene-error-boundary__title{margin:0 0 8px;font-size:16px;font-weight:600}.scene-error-boundary__detail{color:var(--error);word-break:break-word;margin:0 0 14px;font-size:13px}.toolbar-button{background:var(--primary);color:var(--text-h);border:1px solid var(--border-strong);font:inherit;cursor:pointer;border-radius:6px;padding:7px 14px;font-size:14px;font-weight:600;transition:background .2s}.toolbar-button:hover:not(:disabled){background:var(--primary-hover)}.toolbar-button:disabled{opacity:.45;cursor:not-allowed}.toolbar-divider{background:var(--border);align-self:stretch;width:1px;margin:2px 4px}.toolbar-button--ghost{background:#ffffff14}.toolbar-button--ghost:hover:not(:disabled){background:#ffffff29}.toolbar-menu{display:inline-flex;position:relative}.toolbar-menu-caret{margin-left:6px}.toolbar-menu-list{z-index:30;background:var(--bg-input);border:1px solid var(--border-strong);border-radius:8px;flex-direction:column;min-width:210px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 28px #00000073}.toolbar-menu-item{color:var(--text-h);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 10px;font-size:13px;transition:background .2s}.toolbar-menu-item:hover{background:#ffffff1f}.toolbar-icons{align-items:center;gap:8px;margin-left:auto;display:flex}.toolbar-icon-button{width:36px;height:34px;color:var(--accent);border:1px solid var(--border-strong);cursor:pointer;background:#ffffff14;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:background .2s,color .2s;display:inline-flex}.toolbar-icon-button:hover:not(:disabled){background:#ffffff29}.toolbar-icon-button[aria-pressed=true]{background:var(--primary);color:var(--text-h)}.toolbar-icon-button:disabled{opacity:.45;cursor:not-allowed}.modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#060e0999;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{border:1px solid var(--border);width:min(620px,100%);max-height:88vh;color:var(--surface);background:#16261afa;border-radius:12px;padding:20px 22px 22px;overflow-y:auto;box-shadow:0 18px 48px #00000080}.modal-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.modal-head h2{color:var(--text-h);margin:0;font-size:18px}.confirm-dialog-message{color:var(--text-secondary);margin:0 0 4px;font-size:14px;line-height:1.55}.modal-close{color:var(--text);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.modal-close:hover{color:#fff}.modal-section{margin-bottom:16px}.modal-section h3{color:var(--accent);margin:0 0 8px;font-size:14px;font-weight:600}.modal-section>select{width:100%}.modal-section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.modal-section-head h3{margin:0}.modal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;display:grid}.modal label{color:var(--text);flex-direction:column;gap:5px;font-size:13px;display:flex}.modal input,.modal select{background:var(--bg-input);color:var(--text-h);border:1px solid var(--border-strong);font:inherit;border-radius:6px;outline:none;padding:7px 10px;font-size:14px}.modal input:focus,.modal select:focus{border-color:var(--focus)}.modal input[aria-invalid=true]{border-color:var(--error-border)}.modal input[aria-invalid=true]:focus{border-color:var(--error)}.modal-field-error{color:var(--error);font-size:12px}.modal-field-error--wide{grid-column:1/-1}.modal-floors{flex-direction:column;gap:8px;display:flex}.modal-row{align-items:center;gap:8px;display:flex}.modal-row select,.modal-row input[type=text]{flex:1}.modal-row-index{text-align:right;width:20px;color:var(--muted);font-size:13px}.modal-nombres{flex-direction:column;flex:1;gap:6px;display:flex}.modal-nombres-count{align-items:center;flex-direction:row!important;gap:8px!important}.modal-nombres-count input{width:64px}.modal-nombres-inputs{flex-direction:column;gap:6px;display:flex}.modal-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.modal-primary,.modal-secondary,.modal-danger{border:1px solid var(--border-strong);font:inherit;cursor:pointer;border-radius:6px;padding:8px 14px;font-size:14px;font-weight:600}.modal-primary{background:var(--primary);color:#fff}.modal-primary:hover{background:var(--primary-hover)}.modal-secondary{background:var(--bg-secondary);color:var(--text-secondary)}.modal-secondary:hover:not(:disabled){background:var(--bg-secondary-hover)}.modal-secondary:disabled{opacity:.45;cursor:not-allowed}.inspector{z-index:15;border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:280px;color:var(--surface);background:#16261af0;border-radius:10px;padding:14px 16px 16px;position:fixed;bottom:18px;right:18px;box-shadow:0 10px 28px #00000073}.inspector-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.inspector-head h2{color:var(--text-h);margin:0;font-size:15px}.inspector-info{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin:0 0 12px;display:grid}.inspector-info div{flex-direction:column;gap:2px;display:flex}.inspector-info dt{text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-size:11px}.inspector-info dd{color:var(--text-h);margin:0;font-size:14px}.inspector-section{margin-bottom:14px}.inspector-label{text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin-bottom:6px;font-size:11px;display:block}.inspector-rotation{align-items:center;gap:6px;display:flex}.inspector-rotation input{background:var(--bg-input);width:70px;color:var(--text-h);border:1px solid var(--border-strong);font:inherit;text-align:center;border-radius:6px;outline:none;padding:7px 8px;font-size:14px}.inspector-rotation input:focus{border-color:var(--focus)}.inspector-actions{gap:8px;display:flex}.inspector-actions .modal-primary,.inspector-actions .modal-danger{flex:1}.inspector-lock{color:var(--surface);cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:row;align-items:center;gap:8px;font-size:13px;display:flex}.inspector-lock input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary);cursor:pointer}.inspector-lock-hint{color:var(--error);margin:6px 0 0;font-size:12px}.modal-danger{background:var(--danger);color:#fff}.modal-danger:hover{background:var(--danger-hover)}.login-backdrop{z-index:20;background:radial-gradient(1200px 600px at 50% -10%, #46a75840, transparent 60%), var(--bg);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.login-card{border:1px solid var(--border);width:min(380px,100%);color:var(--surface);background:#16261af2;border-radius:12px;padding:26px 26px 24px;box-shadow:0 18px 48px #00000080}.login-title{color:var(--text-h);margin:0 0 4px;font-size:20px}.login-subtitle{color:var(--muted);margin:0 0 18px;font-size:13px}.login-field{color:var(--text);flex-direction:column;gap:5px;margin-bottom:14px;font-size:13px;display:flex}.login-field input{background:var(--bg-input);color:var(--text-h);border:1px solid var(--border-strong);font:inherit;border-radius:6px;outline:none;padding:8px 10px;font-size:14px}.login-field input:focus{border-color:var(--focus)}.login-password-wrap{align-items:center;display:flex;position:relative}.login-password-wrap input{width:100%;padding-right:42px}.login-password-toggle{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:color .2s,background .2s;display:inline-flex;position:absolute;right:4px}.login-password-toggle:hover{color:var(--text-h);background:#ffffff14}.login-error{color:var(--error);margin:0 0 12px;font-size:13px}.login-submit{width:100%;padding:10px 14px}
