:root{--bg:#eef2f6;--panel:#fff;--ink:#172033;--muted:#657085;--line:#d8dee8;--primary:#18253b;--accent:#f2a900;--soft:#f6f8fb;--green:#1f8a55;--yellow:#c98700;--red:#c33b3b;--blue:#376ea6}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #cfd7e2;background:#fff;border-radius:8px;padding:9px 12px;font-weight:700;color:var(--ink)}button:hover{border-color:#8e9aab}button:disabled{opacity:.48;cursor:not-allowed}.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.wide{width:100%}.ghost{background:transparent;color:#fff;border-color:#6a7485}.danger-soft{color:#9d2929;background:#fff5f5}.hidden{display:none!important}
.topbar{height:76px;background:#121c2d;color:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 24px;border-bottom:3px solid var(--accent)}.topbar h1{margin:0;font-size:24px}.topbar h1 span{font-size:13px;background:var(--accent);color:#151515;padding:3px 7px;border-radius:999px;vertical-align:4px}.topbar p{margin:4px 0 0;color:#c7ced9;font-size:13px}.top-actions{display:flex;gap:8px}.file-mini input{display:none}.file-mini{display:inline-flex;align-items:center;cursor:pointer}
.home-screen{max-width:1000px;margin:65px auto;padding:0 24px}.hero{text-align:center;margin-bottom:30px}.eyebrow{font-size:12px;font-weight:900;letter-spacing:.16em;color:#67748a}.hero h2{font-size:38px;margin:8px 0 10px}.hero p{color:var(--muted);max-width:720px;margin:auto}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.mode-card{text-align:left;padding:28px;min-height:230px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 22px rgba(25,38,58,.07)}.mode-card strong{display:block;font-size:24px;margin:18px 0 10px}.mode-card small{font-size:15px;line-height:1.55;color:var(--muted)}.mode-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(25,38,58,.12)}.ai-card{border-top:4px solid var(--accent)}.mode-icon{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:12px;background:#142137;color:#fff;font-weight:900;font-size:20px}.principle{margin-top:22px;background:#fff8e7;border-left:4px solid var(--accent);padding:13px 16px;border-radius:6px}
.workspace{display:grid;grid-template-columns:var(--left-sidebar-width,320px) minmax(560px,1fr) var(--right-sidebar-width,340px);gap:12px;padding:12px;height:calc(100vh - 76px);min-height:680px}.sidebar,.canvas-column{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:auto}.sidebar{position:relative;padding:14px}.leftbar h3,.reportbar h3{margin:18px 0 9px}.mode-switch{display:grid;grid-template-columns:1fr 1fr;background:var(--soft);padding:4px;border-radius:9px}.mode-switch button{border:0;background:transparent}.mode-switch button.active{background:#fff;box-shadow:0 1px 5px rgba(0,0,0,.1)}.filebox{height:56px;border:1.5px dashed #aeb8c6;border-radius:8px;display:grid;place-items:center;cursor:pointer;background:#fafbfd;font-weight:800}.filebox input{display:none}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}label{display:block;font-size:12px;font-weight:750;color:#39455a}input,select,textarea{width:100%;margin-top:4px;border:1px solid #cbd4df;border-radius:7px;padding:8px;background:#fff;color:#162033}textarea{resize:vertical}.status{font-size:12px;line-height:1.45;background:#f4f6f9;border-radius:7px;padding:9px;margin-top:8px;color:#566176}.review-controls{display:grid;gap:7px}.review-list{display:grid;gap:7px;margin-top:8px}.review-item{border:1px solid var(--line);border-radius:8px;padding:9px;background:#fff}.review-item .row{display:flex;justify-content:space-between;gap:8px}.conf{font-size:10px;font-weight:900;text-transform:uppercase;padding:2px 6px;border-radius:999px}.conf.verde{background:#e1f5e9;color:#136c40}.conf.amarillo{background:#fff0c9;color:#8d5f00}.conf.rojo{background:#ffe2e2;color:#9e2525}.empty-small{font-size:12px;color:#7b8798;padding:10px 0}.checks{display:grid;gap:6px;font-size:12px}.checks label,.review-controls label{display:flex;gap:6px;align-items:center}.checks input,.review-controls input{width:auto;margin:0}.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.tool-grid button{padding:8px 6px}.tool-grid button.active{background:#18253b;color:#fff}.actions-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}.neighbor-row{display:grid;grid-template-columns:82px 1fr 32px;gap:5px;margin-bottom:5px}.neighbor-row input{margin:0}.neighbor-row button{padding:4px}
.canvas-column{display:flex;flex-direction:column;min-width:0}.canvas-head{padding:12px 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.canvas-head h2{margin:0;font-size:19px}.canvas-head p{margin:3px 0 0;font-size:12px;color:var(--muted)}.canvas-actions{display:flex;gap:6px}.image-workspace,.cad-workspace{position:relative;flex:1;min-height:580px;background:#f1f3f6;overflow:hidden}.big-empty{height:100%;min-height:580px;display:grid;place-items:center;color:#798598}.image-stage{position:relative;width:100%;height:100%;display:flex;justify-content:center;align-items:center;padding:14px}.image-stage img{max-width:100%;max-height:100%;object-fit:contain;display:block}.image-stage svg{position:absolute;pointer-events:none}.cad-workspace canvas{width:100%;height:100%;display:block;background:#fff}.cursor-readout{position:absolute;right:10px;bottom:10px;background:rgba(20,31,49,.87);color:#fff;font-size:11px;padding:5px 8px;border-radius:6px}
.report-title{display:flex;justify-content:space-between}.report-title h2{margin:0}.report-title p{font-size:11px;color:var(--muted);margin:3px 0}.north-badge{width:48px;height:48px;border:1px solid #8792a3;border-radius:8px;display:grid;place-items:center;font-weight:900}.metric{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}.metric.strong{font-size:15px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:11px}th,td{border:1px solid var(--line);padding:6px;text-align:left}th{background:#f3f5f8}.compact-list{display:grid;gap:5px}.dim-row{display:grid;grid-template-columns:1fr auto auto;gap:6px;align-items:center;font-size:11px;border-bottom:1px solid #edf0f4;padding:5px 0}.validation-list{font-size:11px;padding-left:19px;line-height:1.55}.validation-list .ok{color:var(--green)}.validation-list .warn{color:#8e6100}.validation-list .bad{color:var(--red)}.export-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:14px}.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(20px);background:#18253b;color:#fff;padding:10px 16px;border-radius:8px;opacity:0;pointer-events:none;transition:.2s;z-index:50;max-width:80vw}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(max-width:1150px){.workspace{grid-template-columns:minmax(250px,min(var(--left-sidebar-width,290px),42vw)) minmax(0,1fr)}.reportbar{grid-column:1/-1;max-height:420px}.mode-grid{grid-template-columns:1fr}}@media(max-width:760px){.topbar{height:auto;min-height:76px;align-items:flex-start;gap:12px;padding:12px;flex-direction:column}.top-actions{flex-wrap:wrap}.workspace{display:block;height:auto;padding:6px}.sidebar,.canvas-column{margin-bottom:8px}.image-workspace,.cad-workspace{min-height:520px}.home-screen{margin:30px auto}.hero h2{font-size:29px}}
@media print{.topbar,.leftbar,.canvas-actions,.export-grid{display:none!important}.workspace{display:block;height:auto}.canvas-column,.reportbar{border:0}.reportbar{page-break-before:always}}
.exact-box{margin-top:9px;padding:9px;border:1px solid var(--line);border-radius:8px;background:#fafbfd}.exact-box b{font-size:12px}.exact-box small{display:block;margin-top:5px;color:var(--muted);font-size:10px}
.view-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0}.style-details{margin:9px 0;border:1px solid var(--line);border-radius:8px;background:#fafbfd;padding:7px}.style-details summary{cursor:pointer;font-size:12px;font-weight:850;color:#263247}.layer-panel{display:grid;gap:5px;margin-top:8px}.layer-row{display:flex;justify-content:space-between;gap:6px;align-items:center;padding:5px 6px;border:1px solid #e3e7ed;border-radius:6px;background:#fff;font-size:10px}.layer-row label{display:flex;align-items:center;gap:5px;margin:0}.layer-row input{width:auto;margin:0}.export-options{display:grid;gap:6px;border:1px solid var(--line);padding:8px;border-radius:8px;background:#fafbfd}.export-options label:last-child{display:flex;gap:6px;align-items:center}.export-options label:last-child input{width:auto;margin:0}.preview-modal{position:fixed;inset:0;z-index:90;background:rgba(8,15,26,.72);display:grid;place-items:center;padding:22px}.preview-card{width:min(1100px,96vw);height:min(820px,94vh);background:#fff;border-radius:12px;box-shadow:0 24px 80px rgba(0,0,0,.35);display:flex;flex-direction:column;overflow:hidden}.preview-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}.preview-head small{display:block;color:var(--muted);font-weight:500;margin-top:2px}.preview-card canvas{width:100%;height:100%;object-fit:contain;background:#e8ebef;min-height:0}.cad-workspace[data-bg="dark"]{background:#18212d}

/* V7: edición opcional de vértices y tipos de construcción */
.level-type-editor{display:grid;gap:8px;margin-top:8px}
.type-zone-head{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 10px;border:1px solid #d9e0e8;border-radius:8px;background:#f7f9fb;font-size:12px}
.level-type-row{display:grid;grid-template-columns:70px 1fr 72px;gap:8px;align-items:center;font-size:12px}
.level-type-row select{width:100%;min-width:0}
.level-type-row b{text-align:right;white-space:nowrap}

/* --- V8 arquitectura rápida --- */
.object-properties{display:grid;gap:10px}.object-properties .property-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.object-properties .property-actions{display:flex;flex-wrap:wrap;gap:7px}.object-properties .property-title{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;border-radius:9px;background:#f5f7fa}.object-properties input,.object-properties select{width:100%}.view3d-card{max-width:1200px}.view3d-controls{display:flex;align-items:end;gap:12px;padding:10px 0}.view3d-controls label{max-width:280px}.view3d-card canvas{width:100%;height:min(70vh,720px);background:#fff;border:1px solid #d8dde6;border-radius:12px}.tool-grid button[data-tool="wall"],.tool-grid button[data-tool="door"],.tool-grid button[data-tool="window"],.tool-grid button[data-tool="furniture"]{font-weight:700}
@media(max-width:760px){.object-properties .property-grid{grid-template-columns:1fr}.view3d-controls{align-items:stretch;flex-direction:column}}

/* V12.19: biblioteca vectorial y creador de símbolos */
.furniture-library-panel{border-color:#b8c7d8}.library-actions{display:flex;gap:6px;flex-wrap:wrap;margin:7px 0}.import-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #cfd7e2;border-radius:8px;padding:8px 10px;background:#fff;font-weight:700;cursor:pointer}.import-button input{display:none}.library-search{width:100%;margin:3px 0 7px}.library-categories{display:flex;gap:5px;overflow:auto;padding-bottom:5px}.library-categories button{font-size:10px;padding:6px 8px;white-space:nowrap;border-radius:999px}.library-categories button.active{background:#18253b;color:#fff;border-color:#18253b}.furniture-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:390px;overflow:auto;padding:2px}.furniture-card{display:grid;grid-template-columns:42px 1fr;gap:6px;align-items:center;text-align:left;padding:6px;border:1px solid #dce3eb;border-radius:8px;background:#fff;min-width:0}.furniture-card:hover{border-color:#f2a900;box-shadow:0 2px 8px #18253b18}.furniture-card.selected{border-color:#f2a900;background:#fffaf0}.furniture-card svg{width:40px;height:34px;display:block}.furniture-card b{font-size:10px;line-height:1.15}.furniture-card small{display:block;color:#6a7584;font-size:9px;margin-top:2px}.recent-furniture{margin-top:8px;border-top:1px solid #e5e9ef;padding-top:6px}.recent-furniture:empty{display:none}.recent-furniture-title{font-size:10px;font-weight:800;color:#657085;margin-bottom:4px}.recent-furniture-list{display:flex;gap:5px;overflow:auto}.recent-furniture-list button{font-size:10px;padding:5px 7px;white-space:nowrap}.library-type-fallback{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.custom-furniture-card{width:min(1180px,96vw);height:min(820px,94vh)}.custom-furniture-layout{display:grid;grid-template-columns:220px minmax(440px,1fr) 220px;gap:12px;padding:12px;min-height:0;flex:1;overflow:auto}.custom-editor-tools,.custom-furniture-form{display:grid;align-content:start;gap:8px}.custom-tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}.custom-tool-grid button{font-size:11px;padding:7px 4px}.custom-tool-grid button.active{background:#18253b;color:#fff;border-color:#18253b}.custom-editor-stage{position:relative;min-height:420px;border:1px solid #cfd7e2;border-radius:10px;overflow:hidden;background:#fff}.custom-editor-stage canvas{display:block;width:100%;height:100%;min-height:420px;touch-action:none;background-image:linear-gradient(#edf1f5 1px,transparent 1px),linear-gradient(90deg,#edf1f5 1px,transparent 1px);background-size:24px 24px}.custom-origin{position:absolute;left:50%;top:50%;transform:translate(8px,8px);font-size:10px;color:#8b5e00;pointer-events:none}.custom-editor-status,.custom-insertion-note{font-size:11px;line-height:1.35;color:#657085;background:#f7f9fb;border:1px solid #e3e8ef;border-radius:7px;padding:7px}.custom-furniture-form{border-left:1px solid #e3e8ef;padding-left:10px}.custom-furniture-form input,.custom-furniture-form select{width:100%}
@media(max-width:900px){.custom-furniture-layout{grid-template-columns:1fr 1.5fr}.custom-furniture-form{grid-column:1/-1;border-left:0;border-top:1px solid #e3e8ef;padding:10px 0 0;grid-template-columns:repeat(2,minmax(0,1fr))}.custom-furniture-form>label:last-of-type,.custom-furniture-form .custom-insertion-note,.custom-furniture-form button{grid-column:1/-1}}
@media(max-width:650px){.furniture-cards{grid-template-columns:1fr}.custom-furniture-layout{grid-template-columns:1fr}.custom-editor-tools{order:2}.custom-furniture-form{grid-template-columns:1fr}.custom-furniture-card{height:96vh}.custom-editor-stage{min-height:330px}.custom-editor-stage canvas{min-height:330px}}
.custom-card-actions{display:block;color:#376ea6;font-size:8px;white-space:nowrap}.custom-card-actions [data-custom-action]{text-decoration:underline;cursor:pointer}.custom-card-actions [data-custom-action]:hover{color:#c98700}

/* --- V9 precisión CAD + plano profesional --- */
.cad-status-strip{display:flex;flex-wrap:wrap;gap:6px;margin:7px 0 10px}.cad-status-strip span{font-size:10px;font-weight:800;padding:4px 7px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#263247}.plan-options{display:grid;grid-template-columns:1fr 1fr;gap:6px;border:1px solid var(--line);padding:8px;border-radius:8px;background:#fafbfd;margin-bottom:8px}.plan-options label:nth-child(n+4){grid-column:1/-1}.snap-badge{position:absolute;pointer-events:none;padding:2px 5px;border-radius:5px;background:#111827;color:#fff;font:700 9px system-ui;transform:translate(8px,-18px);z-index:4}.plan-sheet-status{font-size:10px;color:var(--muted);margin-top:5px}.tool-grid button.active{outline:2px solid #f2a900;outline-offset:1px}.cad-workspace.dragging-object canvas{cursor:grabbing}.cad-workspace canvas{touch-action:none}.object-properties .quick-sizes{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.object-properties .quick-sizes button{font-size:10px;padding:5px 7px}
@media(max-width:760px){.plan-options{grid-template-columns:1fr}.plan-options label{grid-column:1!important}.cad-status-strip{position:sticky;top:0;z-index:3;background:#fff;padding:4px 0}}

/* --- V10 3D + materiales + render ligero --- */
.v10-3d{max-width:1500px}.v10-3d-toolbar,.v10-3d-settings{display:flex;flex-wrap:wrap;align-items:end;gap:7px;padding:8px 0}.v10-3d-toolbar label{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff}.v10-3d-toolbar input{width:auto;margin:0}.v10-3d-settings label{min-width:140px;flex:1}.v10-3d-stage{position:relative}.v10-3d-stage canvas{width:100%;height:min(72vh,760px);background:#eef2f6;border:1px solid #d8dde6;border-radius:12px;touch-action:none}.validation3d{font-size:11px;display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px}.validation3d span{padding:4px 7px;border-radius:999px;border:1px solid var(--line);background:#fff}.validation3d .green{color:#126a3f}.validation3d .yellow{color:#916000}.validation3d .red{color:#9e2525}.selected3d-info{position:absolute;left:12px;bottom:12px;max-width:min(520px,85%);background:rgba(17,24,39,.88);color:#fff;padding:8px 10px;border-radius:8px;font-size:11px;pointer-events:none}.v10-3d-toolbar button,.v10-3d-settings button{white-space:nowrap}
@media(max-width:760px){.v10-3d-toolbar,.v10-3d-settings{display:grid;grid-template-columns:1fr 1fr}.v10-3d-settings label{min-width:0}.v10-3d-toolbar label{font-size:10px}.v10-3d-stage canvas{height:60vh}}
.v11-panel{border:1px solid #9fc2e8;background:linear-gradient(180deg,#f7fbff,#fff)}.v11-completion{margin:8px 0}.v11-track{height:8px;background:#dce5ef;border-radius:99px;overflow:hidden;margin-top:6px}.v11-track i{display:block;height:100%;width:0;background:#2f6fa7;transition:width .2s}.v11-proposals,.v11-audit{display:grid;gap:6px;margin-top:8px}.v11-proposal,.v11-issue,.v11-ok{padding:8px;border:1px solid #d7dfe8;border-radius:8px;background:#fff;display:grid;gap:3px}.v11-issue.red{border-left:5px solid #b42318}.v11-issue.yellow{border-left:5px solid #d17c00}.v11-issue.green,.v11-ok{border-left:5px solid #16803c}.v11-issue small{display:block;color:#5f6b7a}

/* V11 fases 5–7 */
.v11-room-editor{display:grid;gap:8px;margin:8px 0}.room-edit-card{display:grid;grid-template-columns:minmax(110px,1fr) minmax(100px,.8fr) minmax(120px,1fr) auto;gap:6px;align-items:center;padding:8px;border:1px solid var(--line,#d5dbe5);border-radius:8px}.room-edit-card>div{display:flex;flex-direction:column;gap:2px}.room-edit-card span{font-size:11px;opacity:.75}.room-edit-card select,.room-edit-card input{min-width:0}@media(max-width:700px){.room-edit-card{grid-template-columns:1fr 1fr}.room-edit-card>div{grid-column:1/-1}}

/* Herramientas CAD agrupadas y comandos rápidos */
.command-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:end;margin:8px 0 4px}.command-field{min-width:0}.command-button{height:38px}.command-help{display:block;color:var(--muted);font-size:10px;line-height:1.35;margin-bottom:9px}.tool-sections{display:grid;gap:8px}.tool-section{border:1px solid var(--line);border-radius:9px;background:#fafbfd;padding:8px}.tool-section-title{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;color:#263247;font-size:12px}.tool-section-title small{font-size:10px;color:var(--muted);font-weight:600}.tool-grid button{display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:0;text-align:left;font-size:11px}.tool-grid button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-grid kbd{flex:0 0 auto;border:1px solid #cdd5df;border-radius:4px;background:#f1f4f7;color:#637086;padding:1px 4px;font:700 9px ui-monospace,SFMono-Regular,Consolas,monospace}.tool-grid button.active kbd{border-color:#8090a5;background:#314159;color:#fff}.draw-command-panel{margin-top:9px;border:1px solid #e2bd62;border-radius:9px;background:#fff9e9;padding:9px}.draw-command-heading{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:12px}.draw-command-heading span{font-size:10px;color:#8a6500;font-weight:700}.circle-command-controls{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:end}.circle-command-controls button{height:38px}.draw-command-panel small{display:block;color:#765d21;font-size:10px;line-height:1.35;margin-top:6px}.draw-actions{grid-template-columns:repeat(3,1fr)}
@media(max-width:760px){.circle-command-controls{grid-template-columns:1fr}.draw-actions{grid-template-columns:1fr 1fr}.command-bar{grid-template-columns:1fr auto}}

/* Acceso controlado AppValúo. El editor existente permanece oculto hasta que
   el servidor confirme una sesión autorizada. */
:root{--auth-navy:#102b46;--auth-deep:#081b2e;--auth-blue:#1d5b88;--auth-gold:#c99845}
.auth-app{background:#f3f6f8;display:grid;grid-template-columns:minmax(390px,.88fr) minmax(520px,1.12fr);min-height:100vh;padding:44px clamp(22px,5vw,88px) 34px;position:relative}.auth-card{align-self:center;background:#fff;border:1px solid #e2e8ed;border-radius:20px;box-shadow:0 24px 70px #102b461c;max-width:560px;padding:clamp(28px,4vw,48px);position:relative;z-index:2}.auth-brand{align-items:center;display:flex;gap:12px;margin-bottom:45px}.auth-brand>div strong{color:var(--auth-navy);display:block;font-size:19px;letter-spacing:-.04em}.auth-brand small{color:#8291a0;display:block;font-size:9px;letter-spacing:.1em;margin-top:5px}.auth-mark{display:grid;gap:3px;grid-template-columns:repeat(3,6px);height:27px;width:27px}.auth-mark i{background:var(--auth-blue);display:block;height:6px;width:6px}.auth-mark i:nth-child(2){background:var(--auth-gold);height:18px}.auth-mark i:nth-child(3){align-self:end;height:11px}.auth-eyebrow{color:var(--auth-gold);font-family:ui-monospace,monospace;font-size:10px;font-weight:900;letter-spacing:.12em}.auth-heading h1{color:var(--auth-navy);font-size:clamp(28px,3vw,39px);letter-spacing:-.055em;line-height:1.05;margin:10px 0 13px}.auth-heading p{color:#667789;font-size:14px;line-height:1.7;margin:0}.auth-tabs{border-bottom:1px solid #e5eaee;display:flex;gap:25px;margin-top:34px}.auth-tabs button{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;color:#8291a0;font-size:11px;font-weight:900;letter-spacing:.05em;padding:0 0 13px;text-transform:uppercase}.auth-tabs button.active{border-color:var(--auth-blue);color:var(--auth-navy)}.auth-form{display:flex;flex-direction:column;gap:15px;padding-top:23px}.auth-form label{color:#506376;display:flex;flex-direction:column;font-size:11px;font-weight:800;gap:7px}.auth-form input{background:#fbfcfd;border:1px solid #dbe3e9;border-radius:9px;color:var(--auth-navy);min-height:46px;margin:0;outline:0;padding:0 13px}.auth-form input:focus{background:#fff;border-color:var(--auth-blue);box-shadow:0 0 0 3px #1d5b881a}.auth-grid{display:grid;gap:13px;grid-template-columns:1fr 1fr}.auth-submit{align-items:center;background:var(--auth-navy);border:0;border-radius:9px;color:#fff;display:flex;justify-content:space-between;margin-top:5px;min-height:49px;padding:0 17px;text-transform:uppercase}.auth-submit:hover{background:var(--auth-blue)}.auth-helper{color:#8b98a5;font-size:11px;line-height:1.5}.auth-feedback{border-radius:9px;display:none;font-size:12px;line-height:1.5;margin-top:19px;padding:11px 13px}.auth-feedback.show{display:block}.auth-feedback.success{background:#eaf5ef;color:#276d4a}.auth-feedback.error{background:#fff0ed;color:#98463e}.auth-feedback.info{background:#eef4fa;color:#315b7d}.auth-trust{border-top:1px solid #edf0f2;color:#98a4ae;font-size:10px;margin-top:30px;padding-top:17px}.auth-trust:first-letter{color:var(--auth-gold)}.auth-visual{background:linear-gradient(145deg,#173d60,#0a2036 72%);border-radius:23px;box-shadow:0 25px 80px #102b4633;color:#fff;margin:19px 0 19px -28px;min-height:630px;overflow:hidden;padding:clamp(34px,5vw,75px);position:relative}.draft-grid{background-image:linear-gradient(#a2c4dc14 1px,transparent 1px),linear-gradient(90deg,#a2c4dc14 1px,transparent 1px);background-size:30px 30px;inset:0;position:absolute}.draft-sheet{background:#edf6f9f2;box-shadow:0 20px 45px #0004;color:var(--auth-navy);height:270px;position:absolute;right:11%;top:11%;transform:rotate(-7deg);width:min(390px,60%)}.draft-sheet>b{border-bottom:1px solid #92aebf;display:block;font:8px ui-monospace,monospace;letter-spacing:.13em;margin:18px;padding-bottom:7px}.draft-sheet>span{background:#a5bac7;display:block;height:3px;margin-left:18px;width:42%}.draft-sheet>div{border:2px solid #325f7a;height:130px;margin:14px auto 0;position:relative;width:72%}.draft-sheet>div:before,.draft-sheet>div:after{border:1px solid #547991;content:'';position:absolute}.draft-sheet>div:before{border-bottom:0;height:58%;left:12%;top:21%;width:30%}.draft-sheet>div:after{border-left:0;bottom:13%;height:38%;right:10%;width:34%}.draft-sheet i{border-left:1px dashed #6b8da0;bottom:0;height:100%;left:50%;position:absolute;transform:rotate(15deg)}.draft-sheet i:nth-child(2){left:64%;transform:rotate(-15deg)}.draft-sheet i:nth-child(3){left:78%;transform:none}.draft-sheet em{color:#52768c;font:9px ui-monospace,monospace;font-style:normal;position:absolute}.draft-sheet em:nth-last-child(2){bottom:14px;left:43%}.draft-sheet em:last-child{left:9px;top:49%;transform:rotate(-90deg)}.auth-visual-copy{max-width:420px;position:relative;z-index:1}.auth-visual-copy h2{font-size:clamp(31px,4vw,51px);letter-spacing:-.065em;line-height:1.02;margin:238px 0 15px;max-width:500px}.auth-visual-copy p{color:#bed0de;font-size:14px;line-height:1.7;margin:0}.auth-features{display:grid;gap:9px;margin-top:28px;max-width:520px;position:relative;z-index:1}.auth-features>div{align-items:center;background:#fff1;border:1px solid #ffffff1a;border-radius:10px;display:flex;gap:12px;padding:11px 14px}.auth-features>div>b{align-items:center;border:1px solid #dbb15eb3;border-radius:50%;color:#e2bc78;display:flex;font-size:18px;height:30px;justify-content:center;width:30px}.auth-features strong,.auth-features small{display:block}.auth-features strong{font-size:11px}.auth-features small{color:#abc0d0;font-size:10px;margin-top:2px}.auth-process{align-items:center;background:#fff;border:1px solid #e3e9ed;border-radius:14px;bottom:34px;display:flex;gap:30px;grid-column:1/-1;justify-content:space-between;margin:38px 0 0;padding:20px 25px;position:relative;z-index:3}.auth-process h2{color:var(--auth-navy);font-size:19px;letter-spacing:-.04em;margin:5px 0 0}.process-steps{align-items:center;display:flex;flex:1;justify-content:space-around}.process-steps span{align-items:center;color:#52687a;display:flex;font-size:10px;gap:9px}.process-steps span b{align-items:center;border:1px solid #cad8e2;border-radius:50%;color:var(--auth-blue);display:flex;font:10px ui-monospace,monospace;height:30px;justify-content:center;width:30px}.process-steps i{color:var(--auth-gold);font-style:normal}.session-user{color:#fff;font-size:10px;font-weight:800;max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-view{background:var(--bg);min-height:100vh;padding:42px clamp(18px,5vw,80px)}.admin-header{align-items:flex-start;display:flex;justify-content:space-between;margin:0 auto 26px;max-width:1400px}.admin-header h1{color:var(--auth-navy);font-size:clamp(28px,4vw,43px);letter-spacing:-.06em;margin:7px 0 8px}.admin-header p{color:#6d7d8b;margin:0}.admin-button{margin-left:7px}.admin-summary{display:grid;gap:12px;grid-template-columns:repeat(4,1fr);margin:0 auto 25px;max-width:1400px}.admin-stat{background:#fff;border:1px solid #e2e9ee;border-radius:12px;padding:16px 18px}.admin-stat span{color:#8291a0;display:block;font-size:10px;text-transform:uppercase}.admin-stat strong{color:var(--auth-navy);display:block;font-size:27px;margin-top:4px}.admin-stat.pending strong{color:#b27b27}.admin-groups{display:grid;gap:16px;grid-template-columns:repeat(2,1fr);margin:0 auto;max-width:1400px}.admin-group{background:#fff;border:1px solid #e2e9ee;border-radius:14px;overflow:hidden}.admin-group h2{align-items:center;border-bottom:1px solid #edf0f2;color:var(--auth-navy);display:flex;font-size:15px;justify-content:space-between;margin:0;padding:15px 17px}.admin-group h2 span{background:#edf3f7;border-radius:99px;color:#5c7182;font:10px ui-monospace,monospace;padding:4px 8px}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;min-width:620px;width:100%}.admin-table th{color:#92a0ab;font:9px ui-monospace,monospace;padding:12px 14px;text-align:left;text-transform:uppercase}.admin-table td{border-top:1px solid #f0f2f4;color:#5d7080;font-size:11px;padding:12px 14px;vertical-align:top}.admin-table td strong,.admin-table td small{display:block}.admin-table td strong{color:var(--auth-navy);font-size:11px}.admin-table td small{font-size:9px}.admin-actions{display:flex;flex-wrap:wrap;gap:5px}.admin-action{background:#f3f6f8;border:1px solid #dce5eb;border-radius:6px;color:#466176;font-size:9px;font-weight:800;padding:6px 8px}.admin-action.approve{background:#eaf5ef;border-color:#cce6d7;color:#2d7950}.admin-action.reject,.admin-action.delete{color:#a04e48}.admin-status{align-items:center;border-radius:99px;display:inline-flex;font-size:9px;font-weight:800;gap:5px;padding:4px 7px}.admin-status:before{border-radius:50%;content:'';height:6px;width:6px}.admin-status.pending{background:#fff4db;color:#966716}.admin-status.pending:before{background:#d6a23c}.admin-status.authorized{background:#eaf5ef;color:#2d7950}.admin-status.authorized:before{background:#4b9b6d}.admin-status.rejected{background:#fff0ed;color:#a04e48}.admin-status.rejected:before{background:#c75d54}.admin-status.suspended{background:#eceff1;color:#58636d}.admin-status.suspended:before{background:#59636c}.admin-empty,.admin-loading{color:#8b98a5;font-size:12px;padding:24px 17px}.admin-note{color:#8b98a5;font-size:10px;margin:20px auto 0;max-width:1400px}
@media(max-width:1050px){.auth-app{grid-template-columns:1fr;padding:22px 18px 28px}.auth-card{margin:0 auto;max-width:680px;width:100%}.auth-visual{margin:25px auto 0;max-width:900px;width:100%}.auth-process{align-items:flex-start;flex-direction:column;gap:18px;margin:25px auto 0;max-width:900px;width:100%}.process-steps{gap:13px;justify-content:space-between;width:100%}.admin-groups{grid-template-columns:1fr}}
@media(max-width:620px){.auth-card{padding:25px 19px}.auth-brand{margin-bottom:34px}.auth-tabs{gap:17px}.auth-tabs button{font-size:10px}.auth-grid{grid-template-columns:1fr}.auth-visual{min-height:600px;padding:29px 22px}.draft-sheet{right:7%;top:7%;width:68%}.auth-visual-copy h2{font-size:34px;margin-top:250px}.process-steps{align-items:flex-start;flex-direction:column}.process-steps i{display:none}.admin-header{flex-direction:column;gap:18px}.admin-summary{grid-template-columns:1fr 1fr}.top-actions #logoutButton{display:inline-flex}}
/* --- V12.20: cinta CAD legible, agrupada y anclable --- */
.cad-command-dock{position:relative;z-index:5;margin:0 0 12px;padding:12px;border:1px solid #c9d4e1;border-radius:12px;background:linear-gradient(145deg,#f8fbfd,#eef3f8);box-shadow:0 4px 14px rgba(24,37,59,.08)}
.cad-dock-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.cad-kicker{display:block;color:#376ea6;font:800 9px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.12em}.cad-command-dock h3{margin:3px 0 2px;font-size:17px}.cad-command-dock p{margin:0;color:#64748b;font-size:11px;line-height:1.35}.cad-dock-settings{display:grid;grid-template-columns:112px 122px;gap:6px;min-width:240px}.cad-dock-settings label{font-size:10px}.cad-dock-settings select{font-size:11px;padding:7px 6px;margin-top:3px}.cad-quick-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:11px}.quick-tool{display:grid;grid-template-columns:23px minmax(0,1fr) auto;align-items:center;gap:5px;min-width:0;padding:8px 7px;text-align:left;font-size:11px}.quick-tool>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-tool-icon{display:grid;place-items:center;color:#376ea6;font-size:17px;line-height:1}.quick-tool kbd{border:1px solid #cbd5e1;border-radius:4px;background:#f1f5f9;color:#64748b;padding:2px 4px;font:800 9px ui-monospace,SFMono-Regular,Consolas,monospace}.quick-tool.active{background:#18253b;border-color:#18253b;color:#fff;box-shadow:0 2px 5px rgba(24,37,59,.2)}.quick-tool.active .quick-tool-icon,.quick-tool.active kbd{color:#fff;border-color:#6c7d96;background:#314159}.cad-dock-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px}.tool-usage-guide{display:grid;gap:2px;min-width:0;color:#657085;font-size:10px;line-height:1.3}.tool-usage-guide b{color:#18253b;font-size:11px}.tool-usage-guide span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-display-toggle,.tool-pin{border:1px solid #c9d4e1;background:#fff;color:#376ea6;font-size:10px;padding:6px 8px;white-space:nowrap}.tool-display-toggle[aria-pressed="true"],.tool-pin[aria-pressed="true"]{background:#e6f0f8;border-color:#80a9ca;color:#1d5b88}.tool-section-title{align-items:center}.tool-section-title>div{min-width:0}.tool-section-title b{display:block}.tool-pin{font-size:9px;padding:4px 6px}.tool-section.tool-filtered-out{display:none}.tool-section.tool-pinned{border-color:#9bbbd5;box-shadow:inset 3px 0 0 #376ea6}.tool-grid button{min-height:40px;font-size:12px}.tool-grid button span{overflow:visible;text-overflow:clip;white-space:normal;line-height:1.15}.draw-actions button{min-height:44px}.draw-actions{grid-template-columns:repeat(2,1fr)}
#editorApp[data-tool-dock-position="top"] .cad-command-dock{position:sticky;top:0}
#editorApp[data-tool-dock-position="bottom"] .cad-command-dock{position:sticky;bottom:0}
@media(min-width:1151px){#editorApp[data-tool-dock-position="right"] .cad-command-dock,#editorApp[data-tool-dock-position="left"] .cad-command-dock{position:fixed;top:90px;width:318px;max-height:calc(100vh - 108px);overflow:auto;box-shadow:0 14px 35px rgba(24,37,59,.18)}#editorApp[data-tool-dock-position="right"] .cad-command-dock{right:14px}#editorApp[data-tool-dock-position="left"] .cad-command-dock{left:14px}}
@media(max-width:760px){.cad-dock-heading{display:grid}.cad-dock-settings{grid-template-columns:1fr 1fr;min-width:0}.cad-quick-tools{grid-template-columns:1fr 1fr}.cad-dock-footer{align-items:stretch;flex-direction:column}.tool-display-toggle{width:100%}.tool-grid{grid-template-columns:1fr}.tool-section-title{align-items:flex-start}.tool-pin{font-size:8px}}
/* --- V12.21: linea de comandos global e historial compacto --- */
.command-console{position:fixed;left:344px;bottom:16px;z-index:40;width:min(500px,calc(100vw - 380px));padding:10px 11px;border:1px solid #b8c8d8;border-radius:11px;background:rgba(249,252,254,.97);box-shadow:0 12px 34px rgba(15,32,51,.2);backdrop-filter:blur(8px)}.command-console-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.command-console-heading b{display:block;color:#18253b;font-size:11px;letter-spacing:.02em}.command-console-heading small{display:block;color:#7c8999;font-size:9px;font-weight:500;margin-top:2px}.command-history-toggle{border:0;background:transparent;color:#376ea6;font-size:9px;font-weight:700;padding:3px 4px}.command-history-panel{display:grid;gap:2px;max-height:112px;overflow:auto;margin:7px 0 6px;padding:2px 1px;border-top:1px solid #e4eaf0}.command-history-panel.hidden{display:none}.command-history-item{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:4px;align-items:center;width:100%;border:0;border-radius:4px;background:transparent;color:#6e7c8d;padding:3px 4px;text-align:left;font-size:9px;font-weight:500}.command-history-item:hover{background:#edf4f9;color:#1d5b88}.command-history-item .history-arrow{color:#9aa8b6;font-size:11px}.command-history-item .history-command{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-history-item .history-result{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#9aa6b3;font-size:8px;font-weight:400}.command-history-empty{color:#9aa6b3;font-size:9px;font-weight:500;padding:4px}.command-console .command-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center;margin:0}.command-console .command-field{display:flex;align-items:center;gap:5px;min-width:0;margin:0}.command-console .command-field input{height:32px;margin:0;font-size:11px}.command-prompt{color:#376ea6;font:800 15px ui-monospace,SFMono-Regular,Consolas,monospace}.command-console .command-button{height:32px;padding:6px 10px;font-size:10px}.command-console .command-help{display:block;margin:5px 0 0;color:#8a97a5;font-size:8px;line-height:1.25}.command-console.command-focus{border-color:#376ea6;box-shadow:0 0 0 3px rgba(55,110,166,.13),0 12px 34px rgba(15,32,51,.2)}
@media(max-width:1150px){.command-console{left:calc(290px + 18px);width:min(450px,calc(100vw - 326px))}}
@media(max-width:760px){.command-console{left:10px;right:10px;bottom:10px;width:auto}.command-history-panel{max-height:88px}.command-console-heading small{font-size:8px}}

/* --- V12.22: barras laterales compactas y ancho ajustable --- */
.sidebar-resizer{position:absolute;top:0;bottom:0;width:12px;margin:0;padding:0;border:0;border-radius:0;background:transparent;z-index:12;cursor:col-resize;touch-action:none}.sidebar-resizer-right{right:0}.sidebar-resizer-left{left:0}.sidebar-resizer::after{content:'';position:absolute;top:50%;left:50%;width:3px;height:48px;border-radius:99px;background:#b8c8d8;transform:translate(-50%,-50%);transition:height .15s,background .15s,box-shadow .15s}.sidebar-resizer:hover::after,.sidebar.is-resizing .sidebar-resizer::after{height:72px;background:var(--primary);box-shadow:0 0 0 3px rgba(55,110,166,.13)}.sidebar-resizer:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;background:rgba(55,110,166,.08)}body.sidebar-resizing{cursor:col-resize!important;user-select:none}.sidebar.is-resizing{border-color:var(--primary)}
#workspace .sidebar h2{font-size:17px;line-height:1.15}#workspace .sidebar h3{font-size:14px;line-height:1.2;margin:12px 0 6px}#workspace .sidebar p,#workspace .sidebar small,#workspace .sidebar .status,#workspace .sidebar .empty-small{font-size:10px;line-height:1.35}#workspace .sidebar label{font-size:10px;line-height:1.25}#workspace .sidebar input,#workspace .sidebar select,#workspace .sidebar textarea{padding:6px;font-size:11px}#workspace .sidebar button{font-size:11px;padding:7px 8px}#workspace .sidebar .mode-switch button{font-size:13px;padding:7px 8px}#workspace .sidebar .form-grid{gap:6px;margin:7px 0}#workspace .sidebar .checks{gap:4px;font-size:11px}#workspace .sidebar .checks label,#workspace .sidebar .review-controls label{font-size:11px}#workspace .sidebar .tool-section{padding:7px}#workspace .sidebar .tool-section-title{font-size:11px;margin-bottom:5px}#workspace .sidebar .tool-section-title small{font-size:9px}#workspace .sidebar .cad-command-dock{padding:9px;margin-bottom:9px}#workspace .sidebar .cad-command-dock h3{font-size:15px}#workspace .sidebar .cad-command-dock p{font-size:10px}#workspace .sidebar .cad-dock-settings{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-width:0}#workspace .sidebar .quick-tool{font-size:10px;padding:6px 5px}#workspace .sidebar .quick-tool-icon{font-size:14px}#workspace .sidebar .tool-grid{gap:5px}#workspace .sidebar .tool-grid button{min-height:34px;font-size:10px;padding:6px 5px}#workspace .sidebar .draw-actions button{min-height:38px}#workspace .sidebar .style-details{margin:7px 0;padding:6px}#workspace .sidebar .style-details summary{font-size:11px}#workspace .sidebar .metric{padding:7px 0;font-size:11px}#workspace .sidebar .metric.strong{font-size:13px}#workspace .sidebar table{font-size:10px}#workspace .sidebar th,#workspace .sidebar td{padding:5px}#workspace .sidebar .dim-row,#workspace .sidebar .validation-list{font-size:10px}
@media(max-width:1150px){#workspace .sidebar-resizer-left{display:none}.command-console{left:calc(var(--left-sidebar-width,290px) + 18px)}}
@media(max-width:760px){#workspace .sidebar-resizer{display:none}#workspace .sidebar{padding:10px}#workspace .sidebar h3{margin-top:10px}}
