@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap";:root{--aluditec-red: #eb1c24;--aluditec-silver: #c8ccd4;--aluditec-blue: #1a2235;--aluditec-dark: #0e1422;--surface: #ffffff;--surface-2: #f4f6fa;--border: #e2e6ef;--text-muted: #5c6678;--shadow: 0 4px 24px rgba(14, 20, 34, .07);--radius: 12px;--font: "DM Sans", system-ui, Segoe UI, sans-serif}*{box-sizing:border-box}html,body{margin:0;overflow-x:hidden}body{font-family:var(--font);background:var(--surface-2);color:var(--aluditec-dark);line-height:1.45;-webkit-font-smoothing:antialiased}img{max-width:100%}textarea{max-width:100%;width:100%}input,select{max-width:100%;min-width:0}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#1a2235,#2a3548 40%,#1a2235)}.login-card{width:100%;max-width:420px;background:var(--surface);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow)}.login-brand{display:flex;align-items:center;gap:16px;margin-bottom:20px}.login-logo{width:72px;height:72px;object-fit:contain}.login-brand h1{margin:0;font-size:1.5rem;font-weight:700;color:var(--aluditec-blue);text-transform:lowercase}.login-brand p{margin:4px 0 0;color:var(--text-muted);font-size:.9rem}.login-lead{color:var(--text-muted);font-size:.95rem;margin-bottom:16px}.login-card .btn-primary.btn-lg{margin-top:4px}.login-actions{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.login-btn-entrar{width:100%}.registro-taller-screen .registro-taller-card{max-width:640px}.registro-taller-lead{margin-bottom:20px}.registro-taller-actions{flex-wrap:wrap;align-items:center}.registro-taller-actions .btn-primary{flex:1;min-width:200px}.registro-logout{width:auto!important;flex:0 0 auto;border-color:var(--border)!important;color:var(--text-muted)!important;background:var(--surface-2)!important}.registro-logout:hover{background:var(--border)!important}.app-layout{display:grid;grid-template-columns:260px 1fr;min-height:100vh;width:100%;max-width:100%;overflow-x:hidden}.app-topbar{display:none;align-items:center;gap:12px;padding:10px 14px;background:var(--aluditec-blue);color:#fff;position:sticky;top:0;z-index:35;grid-column:1 / -1}.topbar-burger{width:40px;height:40px;background:transparent;border:1px solid rgba(255,255,255,.18);border-radius:10px;display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;cursor:pointer;flex-shrink:0}.topbar-burger span{width:18px;height:2px;background:#fff;border-radius:2px}.topbar-logo{width:32px;height:32px;object-fit:contain;border-radius:6px;background:#ffffff14;flex-shrink:0}.topbar-title{display:flex;flex-direction:column;line-height:1.15;min-width:0}.topbar-title strong{font-size:.95rem;font-weight:700}.topbar-title span{font-size:.78rem;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-overlay{display:none}@media (max-width: 960px){.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#070b168c;z-index:40}}.sidebar-close{display:none}.sidebar{background:var(--aluditec-blue);color:#fff;display:flex;flex-direction:column;padding:20px 16px;border-right:1px solid rgba(255,255,255,.08)}.sidebar-brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.sidebar-logo{width:48px;height:48px;object-fit:contain;border-radius:8px;background:#ffffff14}.sidebar-title{font-weight:700;font-size:1.05rem;text-transform:lowercase}.sidebar-sub{font-size:.75rem;opacity:.75}.sidebar-nav{display:flex;flex-direction:column;gap:6px;flex:1}.nav-item{text-align:left;padding:12px 14px;border:none;border-radius:8px;background:transparent;color:#ffffffe0;font-family:inherit;font-size:.95rem;font-weight:500;cursor:pointer;transition:background .15s}.nav-item:hover{background:#ffffff14}.nav-item.active{background:var(--aluditec-red);color:#fff}.sidebar-footer{margin-top:auto;padding-top:20px;border-top:1px solid rgba(255,255,255,.12)}.user-chip{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.user-email{font-size:.78rem;opacity:.85;word-break:break-all}.rol-badge{display:inline-block;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:4px 8px;border-radius:6px;width:fit-content}.rol-badge.admin{background:var(--aluditec-red)}.rol-badge.taller{background:#fff3}.btn-sidebar-logout{width:100%;padding:10px;border-radius:8px;border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;font-family:inherit;cursor:pointer;font-size:.9rem}.btn-sidebar-logout:hover{background:#ffffff1a}.app-install-share{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.app-install-share--standalone{flex-direction:row;align-items:center;flex-wrap:wrap;gap:10px}.app-install-share-badge{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:#ffffff8c}.btn-sidebar-share,.btn-sidebar-install{width:100%;padding:10px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.22);background:#ffffff0f;color:#fff;font-family:inherit;font-size:.88rem;font-weight:500;cursor:pointer;transition:background .15s}.btn-sidebar-share:hover,.btn-sidebar-install:hover{background:#ffffff1f}.btn-sidebar-install{border-color:#e639468c;background:#e639462e}.btn-sidebar-install:hover{background:#e6394647}.btn-sidebar-share--solo{flex:1;min-width:120px}.app-install-share-hint{margin:0;line-height:1.35}.app-install-share--compact{flex-direction:column;gap:10px;margin-top:20px;padding-top:18px;border-top:1px solid rgba(0,0,0,.08)}.btn-login-share,.btn-login-install{width:100%;padding:10px 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface-elevated, #f8f9fb);color:var(--text);font-family:inherit;font-size:.92rem;font-weight:500;cursor:pointer}.btn-login-share:hover,.btn-login-install:hover{border-color:var(--aluditec-blue);color:var(--aluditec-blue)}.btn-login-install{border-color:#e6394659;background:#e639460f;color:var(--aluditec-red, #c92a3a)}.btn-login-install:hover{border-color:var(--aluditec-red, #c92a3a);color:var(--aluditec-red, #c92a3a)}.main-column{display:flex;flex-direction:column;min-width:0;width:100%;overflow-x:hidden;padding-bottom:env(safe-area-inset-bottom,0px)}.main-content{flex:1;padding:28px 32px 48px;max-width:1200px;width:100%;min-width:0}.banner-warn{background:#fff8e6;border-bottom:1px solid #f0e0b2;color:#6b5a2a;padding:10px 32px;font-size:.9rem}.screen-center{min-height:100vh;display:grid;place-items:center;background:var(--surface-2)}.loader-card{text-align:center;color:var(--text-muted)}.loader-logo{width:64px;height:64px;object-fit:contain;margin-bottom:12px}.section-head{margin-bottom:20px}.section-head h2{margin:0 0 8px;font-size:1.5rem;font-weight:700;color:var(--aluditec-blue)}.section-desc{margin:0;color:var(--text-muted);font-size:.95rem;max-width:720px}.card-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.presupuesto-actual-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:8px 12px;border-radius:8px;background:#1a22350f;border:1px dashed rgba(26,34,53,.25);margin-bottom:10px;font-size:.92rem}.presupuesto-mensaje{margin:8px 0 0}.mis-presupuestos{display:flex;flex-direction:column;gap:14px}.mis-presupuestos-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.mis-presupuestos-toolbar .input-busqueda-cliente{flex:1 1 220px;min-width:0}.mis-presupuestos-contador{font-size:.85rem;color:var(--text-muted);padding:4px 10px;border-radius:999px;background:#1a22350f;border:1px solid var(--border)}.mis-presupuestos-contador.alerta{color:#8a5a00;background:#fff8e6;border-color:#f0c14b}.mis-presupuestos-contador.enlimite{color:#fff;background:var(--aluditec-red);border-color:var(--aluditec-red)}.presupuestos-tabla-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.presupuestos-tabla{width:100%;border-collapse:collapse;font-size:.92rem}.presupuestos-tabla th,.presupuestos-tabla td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}.presupuestos-tabla thead th{background:#1a22350a;color:var(--aluditec-blue);font-weight:600;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}.presupuestos-tabla tbody tr:last-child td{border-bottom:none}.presupuestos-tabla-total{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.presupuestos-col-acciones,.presupuestos-tabla-acciones{width:1%;white-space:nowrap}.presupuestos-tabla-acciones{padding-left:16px;padding-right:14px;vertical-align:middle}.presupuestos-acciones-layout{display:flex;flex-direction:column;align-items:flex-end;gap:10px;min-width:min(100%,420px)}.presupuestos-acciones-fila{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;width:100%}.presupuestos-acciones-fila--pdf{padding-bottom:10px;border-bottom:1px solid var(--border)}.presupuestos-acciones-grupo{display:inline-flex;flex-shrink:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface)}.presupuestos-acciones-grupo .btn-sm{border-radius:0;border:none;box-shadow:none;margin:0}.presupuestos-acciones-grupo .btn-sm+.btn-sm{border-left:1px solid var(--border)}.presupuestos-acciones-grupo .btn-sm:hover{background:#1a22350f}.presupuestos-acciones-fila--gestion{gap:6px 10px}.presupuestos-btn-eliminar{margin-left:4px;padding:4px 6px;font-size:.88rem}@media (min-width: 761px){.presupuestos-tabla th.presupuestos-col-acciones{text-align:right}}@media (max-width: 760px){.presupuestos-tabla thead{display:none}.presupuestos-tabla,.presupuestos-tabla tbody,.presupuestos-tabla tr,.presupuestos-tabla td{display:block;width:100%}.presupuestos-tabla tr{padding:10px 8px;border-bottom:1px solid var(--border)}.presupuestos-tabla td{padding:4px 0;border:none}.presupuestos-tabla-total{text-align:left}.presupuestos-tabla-acciones{width:100%;white-space:normal;padding-top:8px}.presupuestos-acciones-layout{align-items:stretch;min-width:0}.presupuestos-acciones-fila{justify-content:flex-start}.presupuestos-acciones-fila--pdf{flex-direction:column;align-items:stretch}.presupuestos-acciones-grupo{width:100%}.presupuestos-acciones-grupo .btn-sm{flex:1;justify-content:center}.presupuestos-acciones-fila--gestion .btn-sm{flex:1 1 auto}}.editor-texto-pdf-linea{margin-top:10px;padding-top:8px;border-top:1px dashed rgba(120,130,150,.25);width:100%}.editor-texto-pdf-linea summary{cursor:pointer;font-size:.82rem;font-weight:600;color:var(--text-muted, #9aa3b2);-webkit-user-select:none;user-select:none}.editor-texto-pdf-linea-campos{margin-top:10px;display:flex;flex-direction:column;gap:8px}.linea-presupuesto-main .editor-texto-pdf-linea{grid-column:1 / -1}.linea-presupuesto-texto{margin:0 0 4px}.linea-presupuesto-texto .input{font-size:.92rem}.linea-presupuesto-texto:first-of-type .input{font-weight:600}.modal-recibo-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:16px}.modal-recibo-panel{width:min(560px,100%);max-height:min(92vh,900px);overflow-y:auto;margin:0}.modal-recibo-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}.modal-recibo-header h3{margin:0}.modal-recibo-cerrar{font-size:1.25rem;line-height:1;padding:4px 8px}.modal-recibo-resumen{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;padding:12px;border-radius:8px;background:#ffffff0a;border:1px solid rgba(120,130,150,.2)}.modal-recibo-resumen .label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted, #888);margin-bottom:4px}.modal-recibo-resumen strong.ok{color:var(--ok, #3d9a5c)}.modal-recibo-tipo-opciones{display:flex;flex-wrap:wrap;gap:12px 16px;margin-top:6px}.modal-recibo-tipo-opt{display:flex;align-items:center;gap:6px;font-size:.9rem;cursor:pointer}.modal-recibo-concepto{margin-top:12px;padding:12px;border-radius:8px;background:#ffffff08;border-left:3px solid var(--aluditec-red, #c41e2a)}.modal-recibo-concepto-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.modal-recibo-concepto-textarea{width:100%;min-height:96px;resize:vertical;font-size:.88rem;line-height:1.45}.modal-recibo-acciones{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.modal-recibo-historial{border-top:1px solid rgba(120,130,150,.2);padding-top:14px}.modal-recibo-historial h4{margin:0 0 10px;font-size:.95rem}.modal-recibo-lista{list-style:none;margin:0;padding:0}.modal-recibo-lista li{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:8px 0;border-bottom:1px solid rgba(120,130,150,.12);font-size:.88rem}@media (max-width: 520px){.modal-recibo-resumen{grid-template-columns:1fr}}.nav-badge{display:inline-block;margin-left:6px;font-size:.62rem;font-weight:700;letter-spacing:.05em;padding:2px 6px;border-radius:999px;background:var(--aluditec-red);color:#fff;text-transform:uppercase;vertical-align:middle}.admin-visualizador{display:flex;flex-direction:column;gap:18px}.visor3d-wrap{display:flex;flex-direction:column;gap:16px}.visor3d-header h2{margin:0}.visor3d-grid{display:grid;grid-template-columns:320px minmax(0,1fr);gap:16px;align-items:start}.app-layout--visor-mode{grid-template-columns:1fr}.app-layout--visor-mode .app-topbar{display:none}.app-layout--visor-mode .main-column{padding:0;gap:0;min-height:100vh;overflow-x:clip;min-width:0}.app-layout--visor-mode .main-content{padding:0;max-width:none;overflow-x:clip;min-width:0}@media (max-width: 640px){.app-layout--visor-mode .main-content canvas{height:100%}}.app-layout--visor-mode .banner-warn{margin:0}.app-layout--visor-mode .sidebar{position:fixed;top:0;bottom:0;left:0;width:min(280px,88vw);z-index:50;transform:translate(-105%);transition:transform .22s ease;box-shadow:0 0 0 transparent}.app-layout--visor-mode .sidebar.sidebar-open{transform:translate(0);box-shadow:0 24px 60px #00000059}.app-layout--visor-mode .sidebar-close{display:inline-flex}.app-layout--visor-mode .sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#070b168c;z-index:45}.visor3d-wrap--workbench{gap:0;height:100vh;height:100dvh;display:grid;grid-template-rows:auto 1fr;background:var(--bg);width:100%;max-width:100%;min-width:0;overflow-x:clip}.visor3d-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;background:var(--surface);border-bottom:1px solid var(--border);min-height:52px;max-width:100%;min-width:0;flex-wrap:wrap;box-sizing:border-box}.visor3d-topbar-left,.visor3d-topbar-right{display:flex;align-items:center;gap:8px;min-width:0;flex-shrink:1}.visor3d-topbar-right{flex-wrap:wrap;justify-content:flex-end}.visor3d-topbar-title{display:flex;flex-direction:column;line-height:1.15;min-width:0}.visor3d-topbar-title strong{font-size:14px}.visor3d-topbar-title span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:38vw}.visor3d-iconbtn{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:38px;height:38px;padding:0 8px;border-radius:9px;border:1px solid transparent;background:transparent;cursor:pointer;font-size:18px;color:inherit}.visor3d-iconbtn:hover{background:#4a6cf71a}.visor3d-iconbtn.on,.visor3d-iconbtn[aria-pressed=true]{background:var(--aluditec-blue);color:#fff}.visor3d-iconbtn:disabled{opacity:.45;cursor:not-allowed}.visor3d-iconbtn--text{width:auto;padding:0 12px;font-size:13px;font-weight:600}.visor3d-iconbtn--close{font-size:22px;line-height:1}.visor3d-burger{display:inline-flex;flex-direction:column;justify-content:center;gap:3px;width:18px;height:14px}.visor3d-burger>span{display:block;width:100%;height:2px;background:currentColor;border-radius:2px}.visor3d-quick-slider{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--border);border-radius:999px;background:var(--bg);font-size:12px}.visor3d-quick-slider input[type=range]{width:110px;margin:0}.visor3d-quick-slider-val{font-variant-numeric:tabular-nums;font-weight:600;min-width:34px;text-align:right}.visor3d-workbench{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr);gap:0;background:var(--bg);min-height:0;min-width:0;overflow:hidden;overflow-x:clip;max-width:100%}.visor3d-rail-left{display:flex;flex-direction:column;gap:6px;padding:10px 6px;background:var(--surface);border-right:1px solid var(--border);overflow-y:auto;z-index:4}.visor3d-rail-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border:none;border-radius:10px;background:transparent;cursor:pointer;color:inherit;font-size:10.5px;font-weight:600;line-height:1.15}.visor3d-rail-btn-ico{font-size:20px;line-height:1}.visor3d-rail-btn-txt{text-align:center;word-break:break-word}.visor3d-rail-btn.on{background:var(--aluditec-blue);color:#fff}.visor3d-rail-btn:not(.on):hover{background:#4a6cf71f}.visor3d-viewport-col{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 24px;min-width:0;min-height:0;width:100%;max-width:100%;box-sizing:border-box}.visor3d-viewport-hint{margin:0;text-align:center}.visor3d-aviso-incompat{align-self:stretch;max-width:min(720px,100%);margin:0 auto 4px;padding:8px 12px;background:#fff8e1;border:1px solid #f1c40f;border-radius:8px;font-size:12.5px;line-height:1.35;color:#5b4d10}.visor3d-aviso-incompat strong{color:#6b4f0a}.visor3d-aviso-incompat em{font-style:normal;font-weight:600}.visor3d-workbench .visor3d-canvas{position:relative;top:auto;flex:0 1 auto;width:100%;max-width:min(720px,100%);height:clamp(380px,calc(100vh - 220px),620px);min-height:0;min-width:0;align-self:center;box-sizing:border-box;background:#1a2235;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.visor3d-workbench .visor3d-canvas>div:first-child:not([class]){position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:hidden}.visor3d-workbench .visor3d-canvas canvas{display:block}.visor3d-overlay--origen{bottom:auto;top:8px;left:8px;right:auto;width:fit-content;background:none;font-size:11px}.visor3d-floating-panel{position:absolute;top:12px;bottom:12px;left:84px;width:min(360px,calc(100vw - 96px));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 48px #0000002e;overflow:hidden;z-index:6}.visor3d-rail-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);background:var(--bg)}.visor3d-rail-title{display:flex;align-items:center;gap:8px;margin:0;font-size:14px;font-weight:700;color:var(--aluditec-blue);min-width:0}.visor3d-rail-title-ico{font-size:18px}.visor3d-panel-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:14px;display:flex;flex-direction:column;gap:14px;-webkit-overflow-scrolling:touch}@media (max-width: 900px){.visor3d-topbar{padding:6px 8px;min-height:48px}.visor3d-topbar-title span{max-width:min(42vw,160px)}.visor3d-quick-slider input[type=range]{width:min(70px,18vw)}.visor3d-workbench{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;width:100%;max-width:100%;overflow-x:clip;grid-template-columns:unset}.visor3d-viewport-col{order:1;flex:1 1 auto;align-items:stretch;padding:8px max(8px,env(safe-area-inset-left)) 76px max(8px,env(safe-area-inset-right));overflow-x:clip;width:100%;max-width:100%}.visor3d-rail-left{order:2;position:fixed;bottom:0;left:0;right:0;flex-direction:row;overflow-x:hidden;padding:4px 4px calc(4px + env(safe-area-inset-bottom,0px));border-right:none;border-top:1px solid var(--border);background:var(--surface);z-index:8}.visor3d-rail-btn{flex-direction:column;flex:1 1 0;min-width:0;padding:6px 2px;gap:2px;font-size:10px}.visor3d-rail-btn-ico{font-size:18px}.visor3d-rail-btn-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.visor3d-workbench .visor3d-canvas{flex:none;align-self:center;width:100%;max-width:100%;height:clamp(260px,38dvh,480px);min-width:0}.visor3d-floating-panel{position:fixed;top:auto;left:8px;right:8px;bottom:calc(72px + env(safe-area-inset-bottom,0px));width:auto;max-height:65vh;border-radius:14px 14px 12px 12px;box-shadow:0 -16px 40px #00000040}}.visor3d-diseno-editor{display:flex;flex-direction:column;gap:12px;min-width:0}.visor3d-brush-toolbar{display:flex;flex-direction:column;gap:12px}.visor3d-brush-toolbar--fill{margin-top:8px}.visor3d-brush-toolbar-lead{margin:0}.visor3d-brush-group-title{margin:0 0 6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.visor3d-brush-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:8px}.visor3d-brush-card{display:flex;align-items:stretch;gap:10px;padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:var(--bg);cursor:pointer;text-align:left;color:inherit;transition:border-color .12s ease,background .12s ease}.visor3d-brush-card:hover{border-color:#4a6cf773;background:#4a6cf70f}.visor3d-brush-card.on{border-color:var(--aluditec-blue);background:#4a6cf71f;box-shadow:0 0 0 1px #4a6cf740}.visor3d-brush-swatch{width:38px;min-width:38px;min-height:44px;border-radius:8px;border:1px solid rgba(0,0,0,.12);align-self:center}.visor3d-brush-card-text{display:flex;flex-direction:column;gap:2px;min-width:0;justify-content:center}.visor3d-brush-card-ico{font-size:12px;line-height:1;opacity:.55;font-family:system-ui,sans-serif}.visor3d-brush-card-label{font-size:12px;font-weight:600;line-height:1.25}.visor3d-brush-card--fill{padding:6px 8px}.visor3d-brush-card--fill .visor3d-brush-swatch{width:32px;min-width:32px;min-height:36px}.visor3d-brush-card--fill .visor3d-brush-card-label{font-size:11px;font-weight:600}.visor3d-rellenar-todo{margin-top:4px;border:1px solid rgba(120,130,150,.35);border-radius:10px;padding:2px 10px 10px;background:#00000005}.visor3d-rellenar-todo-summary{cursor:pointer;padding:8px 4px;font-size:13px;list-style:none}.visor3d-rellenar-todo-summary::-webkit-details-marker{display:none}.visor3d-rellenar-todo[open] .visor3d-rellenar-todo-summary{margin-bottom:4px}@media (max-width: 900px){.visor3d-grid{grid-template-columns:1fr}}.visor3d-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px;min-width:0;max-height:calc(100vh - 200px);overflow-y:auto;position:sticky;top:16px}@media (max-width: 900px){.visor3d-panel{max-height:none;overflow-y:visible;position:static}}.visor3d-grupo{display:flex;flex-direction:column;gap:6px}.visor3d-grupo .lbl{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.visor3d-export-bloque{margin-top:16px;padding-top:14px;border-top:1px solid rgba(120,130,150,.25)}.visor3d-export-botones{display:flex;flex-wrap:wrap;gap:8px}.visor3d-export-botones .btn-secundario{flex:1 1 160px;justify-content:center}.visor3d-export-botones .btn-secundario:disabled{opacity:.55;cursor:not-allowed}.visor3d-tabs{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 14px;padding:4px;background:var(--bg);border:1px solid var(--border);border-radius:10px;position:sticky;top:0;z-index:5}.visor3d-tabs button{flex:1 1 auto;min-width:70px;padding:7px 10px;border:0;background:transparent;border-radius:7px;font-weight:600;font-size:13px;color:inherit;cursor:pointer}.visor3d-tabs button.on{background:var(--aluditec-blue);color:#fff}.visor3d-tabs button:not(.on):hover{background:#4a6cf71a}.visor3d-segmented{display:grid;grid-template-columns:1fr 1fr;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:4px;gap:4px}.visor3d-segmented--3col{grid-template-columns:1fr 1fr 1fr}.visor3d-segmented--4col{grid-template-columns:repeat(4,1fr)}.visor3d-segmented--5col{grid-template-columns:repeat(5,1fr)}.diseno-grid-wrap{margin:8px 0;display:flex;justify-content:center}.diseno-grid{display:grid;gap:6px;width:100%;max-width:320px;aspect-ratio:1.4 / 1;padding:12px;background:linear-gradient(180deg,#1c2438,#0c1322);border-radius:10px;border:1px solid rgba(120,130,150,.45)}.diseno-celda{position:relative;display:flex;align-items:center;justify-content:center;padding:4px;border-radius:4px;border:1px solid rgba(255,255,255,.5);cursor:pointer;font-size:13px;font-weight:700;color:#1a1f2c;transition:transform .07s ease,box-shadow .07s ease;min-height:28px;outline:none}.diseno-celda:hover{transform:scale(1.03);box-shadow:0 0 0 2px #fffc inset}.diseno-celda-icono{font-size:18px;line-height:1}.diseno-celda-coord{position:absolute;bottom:2px;right:4px;font-size:10px;opacity:.6;font-weight:500}.diseno-celda--vidrio,.diseno-celda--vidrio_partido_h,.diseno-celda--vidrio_partido_v,.diseno-celda--vidrio_cruz{color:#003c63}.diseno-celda--vidrio_cruz{background-image:linear-gradient(180deg,#b4d7f08c 47%,#6c757d 47%,#6c757d 53%,#b4d7f08c 53%),linear-gradient(90deg,#b4d7f08c 47%,#6c757d 47%,#6c757d 53%,#b4d7f08c 53%);background-blend-mode:multiply}.diseno-celda--duela_h,.diseno-celda--duela_v{color:#fff;background-image:repeating-linear-gradient(180deg,rgba(0,0,0,.18) 0 2px,transparent 2px 14px)}.diseno-celda--duela_v{background-image:repeating-linear-gradient(90deg,rgba(0,0,0,.18) 0 2px,transparent 2px 14px)}.diseno-celda--panel_ciego{color:#fff}.diseno-celda--panel_relieve{color:#fff;border:2px solid rgba(255,255,255,.55);box-shadow:inset 0 0 0 4px #0000002e}.diseno-celda--panel_vidrio_centro{color:#fff;background-image:radial-gradient(ellipse at center,rgba(180,215,240,.85) 0%,rgba(180,215,240,.85) 40%,transparent 41%)}.diseno-celda--panel_dos_vidrios{color:#fff;background-image:radial-gradient(ellipse 60% 18% at center 30%,rgba(180,215,240,.85) 0%,rgba(180,215,240,.85) 80%,transparent 81%),radial-gradient(ellipse 60% 18% at center 70%,rgba(180,215,240,.85) 0%,rgba(180,215,240,.85) 80%,transparent 81%)}.diseno-celda--puerta_ondulada{color:#2c3340;background:repeating-linear-gradient(180deg,#d6d2c4 0,#d6d2c4 14%,#2c3340 14%,#2c3340 18%,#d6d2c4 18%,#d6d2c4 32%,#2c3340 32%,#2c3340 36%,#d6d2c4 36%,#d6d2c4 50%,#2c3340 50%,#2c3340 54%,#d6d2c4 54%,#d6d2c4 68%,#2c3340 68%,#2c3340 72%,#d6d2c4 72%,#d6d2c4 86%,#2c3340 86%,#2c3340 90%,#d6d2c4 90%,#d6d2c4)}.diseno-celda--seleccionada{outline:3px solid #f4a13c;outline-offset:-3px;box-shadow:0 0 0 3px #f4a13c40}.ajustes-celda{margin-top:12px;padding:12px 14px;border-radius:10px;border:1px solid rgba(244,161,60,.4);background:#f4a13c0f;display:flex;flex-direction:column;gap:10px}.ajustes-celda-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ajustes-celda-header strong{font-size:14px}.ajustes-celda-header .btn-link{margin-left:auto;font-size:12px}.slider-celda{display:flex;flex-direction:column;gap:4px}.slider-celda-titulo{font-size:12px;color:var(--muted, #666);display:flex;justify-content:space-between;gap:10px}.slider-celda-titulo strong{color:var(--fg, #222);font-weight:600}.slider-celda input[type=range]{width:100%;accent-color:#f4a13c}.grosores-trav-bloque{margin-top:12px;padding:6px 12px 10px;border-radius:10px;border:1px dashed rgba(120,130,150,.45);background:#00000005}.grosores-trav-bloque>summary{cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 2px;outline:none}.grosores-trav-contenido{display:grid;grid-template-columns:1fr;gap:12px;margin-top:8px}@media (min-width: 700px){.grosores-trav-contenido{grid-template-columns:1fr 1fr}}.plantillas-disen-bloque{margin:8px 0 14px;border:1px dashed rgba(120,130,150,.45);border-radius:10px;padding:10px 12px;background:#00000005}.plantillas-disen-bloque>summary{cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 2px;outline:none}.plantillas-disen-bloque>summary::marker{color:var(--color-acento, #4a6cf7)}.plantillas-disen-contenido{margin-top:10px;display:flex;flex-direction:column;gap:12px}.plantillas-disen-categoria{display:flex;flex-direction:column;gap:6px}.plantillas-disen-cat-titulo{margin:0 0 2px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:11px}.plantillas-disen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px}.plantilla-disen-btn{text-align:left;padding:8px 10px;border-radius:8px;border:1px solid rgba(120,130,150,.4);background:#ffffff8c;font-size:12px;font-weight:600;color:inherit;cursor:pointer;transition:background .1s ease,border-color .1s ease;line-height:1.25}.plantilla-disen-btn:hover{background:#4a6cf71f;border-color:#4a6cf78c}.visor3d-segmented button{background:transparent;border:0;padding:8px 6px;border-radius:8px;font-weight:600;cursor:pointer;color:var(--text)}.visor3d-segmented button.on{background:var(--aluditec-blue);color:#fff}.visor3d-medidas{display:grid;grid-template-columns:1fr 1fr;gap:8px}.visor3d-medidas label{display:flex;flex-direction:column;gap:4px;font-size:13px}.visor3d-medidas input{width:100%}.visor3d-swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.visor3d-swatch{height:32px;border-radius:8px;border:2px solid transparent;box-shadow:inset 0 0 0 1px #0000004d;cursor:pointer;padding:0;background-size:cover;background-position:center}.visor3d-swatch.on{border-color:var(--aluditec-blue);box-shadow:inset 0 0 0 1px #0006,0 0 0 2px #3982e659}.visor3d-acabado-filtros{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}.visor3d-acabados-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px;max-height:240px;overflow-y:auto;padding:4px;border:1px solid var(--border);border-radius:8px;background:#00000005}.visor3d-swatch-grande{display:flex;flex-direction:column;gap:4px;background:transparent;border:2px solid transparent;border-radius:8px;padding:3px;cursor:pointer;text-align:center;align-items:center}.visor3d-swatch-grande>span{display:block;width:100%;height:36px;border-radius:6px;background-size:cover;background-position:center;box-shadow:inset 0 0 0 1px #0000004d}.visor3d-swatch-grande>em{font-style:normal;font-size:10px;line-height:1.2;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.visor3d-swatch-grande:hover{background:#3982e612}.visor3d-swatch-grande.on{border-color:var(--aluditec-blue);background:#3982e61f}.visor3d-canvas{position:relative;border-radius:var(--radius);border:1px solid var(--border);overflow:hidden;background:#1a2235;height:clamp(420px,calc(100vh - 220px),760px);position:sticky;top:16px}@media (max-width: 900px){.visor3d-canvas{height:clamp(360px,65vh,560px);position:static}}.visor3d-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#080c16b3;display:flex;align-items:center;justify-content:center;z-index:1200;padding:16px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.visor3d-modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:min(1100px,100%);max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 80px #00000073}.visor3d-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border)}.visor3d-modal-header h3{margin:0 0 4px;color:var(--aluditec-blue)}.btn-icon{background:transparent;border:none;font-size:26px;line-height:1;cursor:pointer;color:var(--text);padding:4px 10px;border-radius:8px}.btn-icon:hover{background:#0000000f}.visor3d-modal-controles{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;padding:8px 18px 12px;border-bottom:1px solid var(--border);background:#00000005}.visor3d-modal-controles label{display:flex;flex-direction:column;gap:4px;font-size:13px;min-width:130px}.visor3d-modal-controles select{padding:6px 8px;border-radius:6px;border:1px solid var(--border)}.btn-link{background:transparent;border:none;color:var(--aluditec-blue);text-decoration:underline;cursor:pointer;font-size:13px;padding:6px 0}.btn-link:hover{color:var(--aluditec-blue-dark, #2a6dc4)}.visor3d-modal-body{position:relative;flex:1;min-height:380px;background:#0c1322}.visor3d-modal-body>div{position:absolute;top:0;right:0;bottom:0;left:0}.visor3d-modal-footer{display:flex;flex-wrap:wrap;gap:14px 18px;align-items:center;padding:12px 18px;border-top:1px solid var(--border);background:#00000005}.visor3d-slider-inline{display:flex;flex-direction:column;gap:4px;font-size:13px;min-width:220px;flex:1}.visor3d-slider-inline input[type=range]{width:100%}.visor3d-check-inline{display:flex;gap:6px;align-items:center;font-size:13px}.visor3d-modal-tip{flex-basis:100%;margin:4px 0 0}.perfil-suelto-bloque{margin:8px 0 14px;border:1px dashed rgba(120,130,150,.45);border-radius:10px;padding:10px 12px;background:#00000005}.perfil-suelto-bloque>summary{cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 2px;outline:none}.perfil-suelto-bloque>summary::marker{color:var(--color-acento, #4a6cf7)}.perfil-suelto-form{display:flex;flex-direction:column;gap:10px;margin-top:10px}.perfil-suelto-fila{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.perfil-suelto-fila-busqueda input[type=search]{flex:1 1 220px;min-width:180px}.perfil-suelto-fila-busqueda select{flex:1 1 320px;min-width:240px}.perfil-suelto-fila-rapido{align-items:center;gap:6px}.perfil-suelto-fila-rapido .btn-mini{padding:4px 9px;border-radius:6px;border:1px solid rgba(120,130,150,.5);background:#ffffffa6;font-size:12px;cursor:pointer}.perfil-suelto-fila-rapido .btn-mini:disabled{opacity:.45;cursor:not-allowed}.perfil-suelto-fila-rapido .btn-mini:hover:not(:disabled){background:#4a6cf71f}.extras-draft-aviso{margin:10px 0;padding:10px 12px;border-radius:8px;border:1px dashed rgba(74,108,247,.55);background:#4a6cf712}.linea-presupuesto-extras{list-style:none;margin:8px 0 0;padding:6px 8px 4px 14px;border-left:2px solid rgba(74,108,247,.55);background:#4a6cf70f;border-radius:6px;display:flex;flex-direction:column;gap:6px}.linea-presupuesto-extra{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px}.linea-presupuesto-extra .extra-icono{color:#4a6cf7d9;font-weight:700}.linea-presupuesto-extra .extra-titulo{flex:1 1 200px;min-width:160px}.linea-presupuesto-extra .extra-input input{width:80px}.linea-presupuesto-extra .extra-subtotal{min-width:90px;text-align:right;font-weight:600}.perfil-suelto-resumen{background:#4a6cf712;border-radius:8px;padding:8px 10px;font-size:13px;line-height:1.45}.cot-acciones-3d{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:10px}.btn-secundario{background:var(--surface);border:1px solid var(--aluditec-blue);color:var(--aluditec-blue);border-radius:8px;padding:8px 14px;cursor:pointer;font-weight:500;transition:background .15s,color .15s}.btn-secundario:hover:not(:disabled){background:var(--aluditec-blue);color:#fff}.btn-secundario:disabled{opacity:.5;cursor:not-allowed}.btn-secundario--xs{padding:3px 9px;font-size:12px;font-weight:500;border-radius:6px}.visor3d-overlay{position:absolute;bottom:10px;left:12px;width:fit-content;max-width:calc(100% - 24px);background:none;color:#fff;font-size:12px;line-height:1.35;padding:6px 10px;pointer-events:none;word-break:break-word;white-space:normal;box-sizing:border-box;text-shadow:0 1px 3px rgba(0,0,0,.7)}.visualizador-tabs{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.visualizador-tabs button{padding:10px 16px;border-radius:10px;border:1px solid var(--border);background:var(--surface);font-family:inherit;font-size:.9rem;cursor:pointer;color:var(--aluditec-dark)}.visualizador-tabs button:hover{border-color:var(--aluditec-blue)}.visualizador-tabs button.on{background:var(--aluditec-blue);color:#fff;border-color:var(--aluditec-blue)}.visualizador-head-compact,.visualizador-head-compact h2{margin-bottom:0}.visualizador-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.visualizador-creditos-pill{font-size:.82rem;padding:4px 10px;border-radius:999px;background:#0ea5e91f;color:#0369a1;white-space:nowrap}.visualizador-head-hint{margin:6px 0 0}.visualizador-chat-panel{display:flex;flex-direction:column;max-width:960px;min-height:min(72vh,680px);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}.visualizador-chat-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.visualizador-chat-foto-title{margin:0 0 6px}.visualizador-preview--chat img{max-height:220px}.visualizador-chat-messages{flex:1;min-height:140px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:14px 16px;background:var(--surface-2)}.visualizador-chat-msg{padding:10px 14px;border-radius:12px;max-width:min(100%,640px)}.visualizador-chat-msg p{margin:0;white-space:pre-wrap}.visualizador-chat-msg--user{align-self:flex-end;background:#1a223512}.visualizador-chat-msg--assistant{align-self:flex-start;background:var(--surface);border:1px solid var(--border)}.visualizador-chat-role{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);display:block;margin-bottom:8px}.visualizador-result--chat{margin-top:6px}.visualizador-result--chat img{max-height:400px}.visualizador-chat-compose{display:flex;flex-direction:column;gap:10px}.visualizador-chat-compose--dock{flex-shrink:0;padding:12px 14px 14px;background:var(--surface);border-top:2px solid var(--aluditec-blue);box-shadow:0 -6px 24px #0f172a14}.visualizador-chat-compose-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-bottom:10px}.visualizador-chat-file-btn{position:relative;cursor:pointer;margin:0}.visualizador-chat-file-input{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.visualizador-chat-thumb{width:44px;height:44px;object-fit:cover;border-radius:8px;border:1px solid var(--border)}.visualizador-chat-base-select{width:auto;min-width:9rem;max-width:11rem;font-size:.88rem;padding:6px 8px}.visualizador-chat-check-inline{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;cursor:pointer;white-space:nowrap}.visualizador-chat-compose-row{display:flex;gap:10px;align-items:stretch}.visualizador-chat-compose-row .visualizador-chat-textarea{flex:1;min-height:76px;margin:0;border-width:2px;border-color:var(--aluditec-blue);box-shadow:0 0 0 1px #2563eb26}.visualizador-chat-compose-row .visualizador-chat-textarea:focus{outline:none;border-color:var(--aluditec-blue);box-shadow:0 0 0 3px #2563eb33}.visualizador-chat-send{flex-shrink:0;align-self:stretch;min-width:5.5rem;padding-left:1.1rem;padding-right:1.1rem;font-weight:600}.visualizador-chat-base{display:flex;flex-wrap:wrap;gap:10px 20px}.visualizador-chat-radio{display:flex;align-items:center;gap:8px;font-size:.9rem;cursor:pointer}.visualizador-chat-radio.is-disabled{opacity:.45;cursor:not-allowed}.visualizador-chat-check{display:flex;align-items:flex-start;gap:8px;font-size:.88rem;cursor:pointer}.visualizador-chat-textarea{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:#fff;font-family:inherit;font-size:.95rem;color:var(--aluditec-dark);resize:vertical;min-height:110px;box-sizing:border-box}.visualizador-chat-typing{font-style:italic;color:var(--text-muted)}.visualizador-chat-empty{margin:0}.visualizador-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.visualizador-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px;min-width:0}.visualizador-card--wide{grid-column:1 / -1}.visualizador-card h3{margin:0;font-size:1.05rem;color:var(--aluditec-blue)}.visualizador-file input[type=file]{width:100%}.visualizador-preview{display:flex;flex-direction:column;gap:8px;align-items:flex-start;margin-top:10px}.visualizador-preview img{max-width:100%;max-height:320px;border-radius:8px;border:1px solid var(--border);object-fit:contain;background:#fafbfd}.visualizador-actions{display:flex;flex-wrap:wrap;gap:10px}.visualizador-meta{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:6px 14px;font-size:.92rem}.visualizador-meta li strong{color:var(--aluditec-blue)}.visualizador-warns{display:flex;flex-direction:column;gap:4px}.visualizador-warn{margin:0;font-size:.85rem;color:#8a5a00;background:#fff8e6;border-left:3px solid #f0c14b;padding:6px 10px;border-radius:4px}.visualizador-recos{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:12px}.visualizador-reco{border:1px solid var(--border);border-radius:10px;padding:12px;background:#fafbfd;display:flex;flex-direction:column;gap:6px}.visualizador-reco-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.visualizador-reco-head .badge{font-size:.72rem}.visualizador-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.visualizador-form label{display:flex;flex-direction:column;gap:4px;font-size:.86rem;color:var(--text-muted);min-width:0}.visualizador-form label input,.visualizador-form label select{padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:#fff;font-family:inherit;font-size:.95rem;color:var(--aluditec-dark)}.visualizador-form-wide{grid-column:1 / -1}.visualizador-check{flex-direction:row!important;align-items:center;gap:8px!important}.visualizador-result{display:flex;justify-content:center;background:#0e1422;border-radius:12px;padding:12px;border:1px solid var(--border)}.visualizador-result img{max-width:100%;max-height:540px;object-fit:contain;border-radius:6px;background:#fff}.visualizador-footnote{margin:0}.visualizador-footnote code{font-size:.8em;background:#1a223514;padding:1px 4px;border-radius:4px}@media (max-width: 760px){.visualizador-grid{grid-template-columns:minmax(0,1fr)}}.card-inner{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.card-title{margin:0 0 16px;font-size:1rem;font-weight:600;color:var(--aluditec-blue)}.btn-primary{background:var(--aluditec-red);color:#fff;border:none;border-radius:10px;padding:12px 20px;font-family:inherit;font-weight:600;font-size:.95rem;cursor:pointer}.btn-primary:hover{filter:brightness(1.05)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--aluditec-blue);color:#fff;border:none;border-radius:10px;padding:10px 16px;font-family:inherit;font-weight:600;cursor:pointer}.btn-secondary:hover{filter:brightness(1.08)}.btn-ghost{background:transparent;color:var(--aluditec-blue);border:1px solid var(--border);border-radius:10px;padding:10px 16px;font-family:inherit;font-weight:500;cursor:pointer}.btn-lg{width:100%;padding:14px;font-size:1rem}.muted{color:var(--text-muted)}.small{font-size:.85rem}.error{color:#b00020;font-size:.9rem;margin-top:12px}.cotizador-page{max-width:1480px;width:100%;margin:0 auto;padding:8px 14px 40px;--cot-label: #243047;--cot-input-border: #aeb6c4;--cot-input-bg: #f8f9fd;--cot-placeholder: #7a8496;--cot-row-gap: 8px;--cot-col-gap: 12px}.cotizador-page--asistente{padding-top:4px}.cotizador-page--asistente>.section-head--compacta+*,.cotizador-page--asistente>.cotizador-emisor-details{margin-top:4px}.section-head--compacta{margin-bottom:2px!important;padding-bottom:0!important}.section-head-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cotizador-intro-details{margin-left:auto;font-size:.78rem}.cotizador-intro-summary{cursor:pointer;color:var(--aluditec-blue);font-weight:600;list-style:none;padding:2px 6px;border-radius:6px;border:1px solid transparent}.cotizador-intro-summary:hover{border-color:#c5d0e6;background:#f8fafc}.cotizador-intro-summary::-webkit-details-marker{display:none}.section-desc--compacta{margin:6px 0 0;max-width:720px;line-height:1.4}.cotizador-emisor-details.card-inner{padding:4px 10px!important;margin-bottom:4px!important}.cotizador-emisor-summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cotizador-emisor-summary::-webkit-details-marker{display:none}.cotizador-emisor-nombre-inline{font-weight:700;font-size:.88rem;color:#1a2235}.emisor-bar-desplegado{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-top:8px;border-top:1px dashed #e2e8f0;margin-top:4px}.cotizador-tabs-toolbar{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;margin:2px 0 0}.cotizador-tabs-toolbar .cotizador-tabs{flex:1;min-width:min(100%,480px)}.cotizador-tabs-toolbar-voz{flex-shrink:0;padding-bottom:2px}.btn-voz-compact{padding:6px 12px!important;font-size:.78rem!important;white-space:nowrap}@media (max-width: 640px){.cotizador-tabs-toolbar{flex-direction:column;align-items:stretch}.cotizador-tabs-toolbar-voz{display:flex;justify-content:flex-end;padding-bottom:0}.cotizador-intro-details{margin-left:0;width:100%}}.cotizador-paso-siguiente{margin-top:6px;padding-top:6px;border-top:1px dashed #e2e8f0}.btn-paso-siguiente{width:100%;justify-content:center;font-size:.82rem;padding:8px 12px!important}.cotizador-paso-aviso{margin:6px 0 0;font-size:.76rem}.clientes-guardados-block--en-tarjeta{margin-bottom:6px}.cotizador-page .section-head{margin-bottom:6px;padding-bottom:4px}.cotizador-page .section-head h2{font-size:1.05rem;margin:0}.cotizador-page .section-desc{color:#4a5568;line-height:1.4;font-size:.82rem;margin:4px 0 0}.cotizador-page .emisor-bar{padding:8px 12px;margin-bottom:6px}.cotizador-page .emisor-nombre{font-size:.95rem}.cotizador-page .card-panel{border-color:#d0d7e3;box-shadow:0 1px 2px #0e14220a,0 4px 14px #0e14220d;padding:14px 16px}.cotizador-page .form-cotizador{border-top:3px solid var(--aluditec-blue)}.cotizador-page .panel-presupuesto{border-top:3px solid #16a34a}.cotizador-tabs{display:flex;gap:2px;margin:6px 0 -1px;padding:0;border-bottom:1px solid #d0d7e3;flex-wrap:wrap}.cotizador-tab{display:inline-flex;align-items:center;gap:8px;background:#eef1f7;border:1px solid #d0d7e3;border-bottom-color:transparent;border-radius:8px 8px 0 0;padding:8px 14px;font-size:.85rem;font-weight:600;color:#4a5568;cursor:pointer;position:relative;top:1px;transition:background .15s ease,color .15s ease}.cotizador-tab:hover{background:#f6f8fc;color:#1a2235}.cotizador-tab.is-active{background:#fff;color:var(--aluditec-blue);border-color:#d0d7e3;border-bottom-color:#fff;box-shadow:0 -2px 0 var(--aluditec-blue) inset}.cotizador-tab-icon{font-size:1rem;line-height:1}.cotizador-tab-badge{background:#1f2937;color:#fff;font-size:.72rem;padding:2px 6px;border-radius:999px;font-weight:700}.cotizador-tab-badge--azul{background:var(--aluditec-blue)}.cotizador-tab-panes{display:block}.cotizador-tab-pane[hidden]{display:none!important}.cotizador-tab-pane{border-top-left-radius:0}.cotizador-acciones-rapidas{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:6px;padding:6px 12px;border-radius:8px;border:1px solid #d8dde8;background:linear-gradient(180deg,#fbfcff,#f4f6fb)}.cotizador-acciones-rapidas-label{font-weight:600;color:var(--cot-label, #243047)}.cotizador-acciones-rapidas-btns{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.cotizador-seccion-acordeon{margin:0 0 3px;padding:0;border:1px solid #dce2ec;border-radius:8px;background:#fafbfd}.cotizador-seccion-acordeon[open]{background:#fff}.cotizador-seccion-acordeon-summary{list-style:none;display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:6px 10px;cursor:pointer;-webkit-user-select:none;user-select:none;min-height:32px;box-sizing:border-box}.cotizador-seccion-acordeon-summary::-webkit-details-marker{display:none}.cotizador-seccion-acordeon-title{font-size:.72rem;font-weight:700;color:var(--aluditec-blue);text-transform:uppercase;letter-spacing:.05em;flex:0 0 auto}.cotizador-seccion-acordeon-resumen{font-size:.75rem;color:#64748b;text-align:right;max-width:58%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cotizador-seccion-acordeon-inner{padding:4px 10px 8px;border-top:1px solid #e8edf5}.cotizador-bar-fiscal--en-acordeon{margin-top:4px;padding-top:4px;border-top:1px dashed #e2e8f0}.cotizador-section-hint--tight{margin:0 0 6px}@media (max-width: 560px){.cotizador-seccion-acordeon-summary{flex-direction:column;align-items:flex-start;gap:4px}.cotizador-seccion-acordeon-resumen{max-width:100%;width:100%;text-align:left;white-space:normal;font-size:.72rem}}.cotizador-subsection-title{font-size:.72rem;font-weight:700;color:var(--aluditec-blue);margin:0 0 6px;text-transform:uppercase;letter-spacing:.06em}.cotizador-section-hint{margin:-2px 0 8px;line-height:1.35;font-size:.78rem}.cotizador-bar-fiscal{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center}@media (min-width: 1100px){.cotizador-page .form-cotizador .form-grid-2{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 12px;margin-bottom:8px}.cotizador-page .form-cotizador .vidrio-templado-grid,.cotizador-page .form-cotizador .duovent-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cotizador-page .form-cotizador .cotizador-cliente-grid{grid-template-columns:1.4fr 1fr 1.6fr}.cotizador-page .form-cotizador .cotizador-cliente-grid .field-full{grid-column:auto}}@media (min-width: 900px) and (max-width: 1099.98px){.cotizador-page .form-cotizador .form-grid-2{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px}.cotizador-page .form-cotizador .cotizador-cliente-grid{grid-template-columns:1.4fr 1fr 1.6fr}.cotizador-page .form-cotizador .cotizador-cliente-grid .field-full{grid-column:auto}}.cotizador-page .form-cotizador .field input,.cotizador-page .form-cotizador .field select,.cotizador-page .form-cotizador .field textarea{padding:6px 9px;font-size:.88rem;border-radius:6px;width:100%;max-width:100%}.cotizador-page .form-cotizador .field>span:first-child,.cotizador-page .field>span:first-child{font-size:.72rem;margin-bottom:2px}.cotizador-page .form-cotizador .field{gap:2px}.cotizador-page .field .muted.small{font-size:.72rem;margin-top:2px}.cotizador-page .clientes-guardados-block{margin-bottom:8px;padding:0;background:transparent;border:none}.cotizador-page .clientes-guardados-desc{display:none}.cotizador-page .input-busqueda-cliente{padding:6px 10px;font-size:.88rem;border-radius:6px}.field-medidas-row--con-cantidad{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:6px 10px;align-items:end}.cotizador-page .apertura-selector-con-prevista{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(120px,180px);gap:10px 14px;align-items:start}.cotizador-page .apertura-selector-ayuda{font-size:.74rem;margin-top:4px}.cotizador-page .vista-previa-apertura{max-width:180px}@media (max-width: 720px){.cotizador-page .apertura-selector-con-prevista{grid-template-columns:1fr}}.panel-tecnico-split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:12px 18px;align-items:start;margin-bottom:10px}.panel-tecnico-split--solo-herrajes{grid-template-columns:1fr}.panel-tecnico-split--solo-herrajes .panel-tecnico-herrajes-principal{order:0;max-width:720px}.panel-tecnico-toolbar{margin-bottom:10px}.panel-tecnico-herrajes-principal{order:-1;border:2px solid var(--aluditec-red, #c41e3a);border-radius:10px;padding:12px 14px;background:linear-gradient(180deg,#fff8f8,#fff)}.panel-tecnico-herrajes-principal .herraje-selector-field{margin-bottom:8px}.panel-tecnico-herrajes-principal .herraje-selector-select{width:100%;max-width:100%;font-size:1rem;min-height:44px}.panel-tecnico-col-perfiles .lista-perfiles{max-height:min(58vh,520px);overflow-y:auto;padding-right:4px;margin:0}.cotizador-subpanel-title{font-size:.72rem;font-weight:700;color:var(--aluditec-blue);margin:0 0 6px;text-transform:uppercase;letter-spacing:.05em}@media (max-width: 960px){.panel-tecnico-split{grid-template-columns:1fr}.panel-tecnico-herrajes-principal{order:-1;margin-bottom:4px}.panel-tecnico-col-perfiles .lista-perfiles{max-height:none;overflow-y:visible}}.cotizador-page .lista-perfiles li{padding:4px 6px;font-size:.82rem}.cotizador-page .totales-tecnico{flex-wrap:wrap;gap:6px 14px;font-size:.85rem;padding:8px 10px}.cotizador-page .lista-lineas-presupuesto li{padding:8px 10px}.cotizador-page .linea-presupuesto-row{gap:10px}.cotizador-page .panel-tecnico{border-top:3px solid var(--aluditec-red)}.cotizador-page .card-title-with-ayuda{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:12px;margin-bottom:18px;border-bottom:1px solid #e2e8f2}.cotizador-page .card-title-with-ayuda .card-title{margin-bottom:0;padding-bottom:0;border-bottom:none;flex:1;min-width:0}.cot-ayuda-details{position:relative;flex-shrink:0}.cot-ayuda-summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border-radius:50%;border:1px solid var(--border);background:var(--surface-2, #f1f5f9);color:#64748b;font-size:.9rem;font-weight:800;line-height:1;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.cot-ayuda-summary::-webkit-details-marker{display:none}.cot-ayuda-details[open] .cot-ayuda-summary{background:#e0e7ff;border-color:#818cf8;color:#312e81}.cot-ayuda-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cot-ayuda-body{margin-top:8px;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface, #fff);font-size:.88rem;line-height:1.45;color:#64748b;max-width:min(100%,580px)}.cot-ayuda-body p{margin:0 0 8px}.cot-ayuda-body p:last-child{margin-bottom:0}.cot-ayuda-body code{font-size:.85em}.herrajes-extras-head{margin-bottom:4px}.presupuesto-lineas-title-wrap{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.presupuesto-lineas-title-wrap h4{margin:0}.presupuesto-lineas-head{margin-bottom:6px}.conceptos-block-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.conceptos-block-title-row h4{margin:0}.pdf-actions-row .cot-ayuda-details{margin-left:auto}@media (max-width: 640px){.pdf-actions-row{align-items:flex-start}.pdf-actions-row .cot-ayuda-details{margin-left:0}}.presupuesto-lineas-hint-tecnico{margin-top:10px;font-size:.88rem;color:#64748b}.cotizador-page .ia-result{border-top:3px solid #5c6a85}.cotizador-page .card-title{font-size:1.06rem;font-weight:700;padding-bottom:12px;margin-bottom:18px;border-bottom:1px solid #e2e8f2;letter-spacing:-.01em}.cotizador-page .field>span:first-child{font-size:.8125rem;font-weight:600;color:var(--cot-label);letter-spacing:.01em}.cotizador-page .field input,.cotizador-page .field select,.cotizador-page .field textarea{min-height:44px;background:var(--cot-input-bg);border:1px solid var(--cot-input-border);color:var(--aluditec-dark);transition:border-color .15s ease,box-shadow .15s ease}.cotizador-page .field textarea{min-height:88px}.cotizador-page .field input::placeholder,.cotizador-page .field textarea::placeholder{color:var(--cot-placeholder);opacity:1}.cotizador-page .field input:hover,.cotizador-page .field select:hover,.cotizador-page .field textarea:hover{border-color:#9aa3b2}.cotizador-page .field input:focus,.cotizador-page .field select:focus,.cotizador-page .field textarea:focus{outline:none;border-color:var(--aluditec-blue);background:#fff;box-shadow:0 0 0 3px var(--cot-focus-ring, rgba(26, 34, 53, .16))}.cotizador-page .input-busqueda-cliente{min-height:44px;background:var(--cot-input-bg);border:1px solid var(--cot-input-border);color:var(--aluditec-dark);transition:border-color .15s ease,box-shadow .15s ease}.cotizador-page .input-busqueda-cliente:hover{border-color:#9aa3b2}.cotizador-page .input-busqueda-cliente::placeholder{color:var(--cot-placeholder);opacity:1}.cotizador-page .input-busqueda-cliente:focus{outline:none;border-color:var(--aluditec-blue);background:#fff;box-shadow:0 0 0 3px #1a223529}.cotizador-page .clientes-guardados-block{background:linear-gradient(180deg,#f0f3fa 0%,var(--cot-input-bg) 100%);padding:16px 18px;border-radius:10px;border:1px solid var(--cot-input-border);border-bottom:1px solid #e2e8f2}.cotizador-page .clientes-guardados-desc{color:#5a6570}.cotizador-page .field .muted.small{color:#5a6570;font-size:.84rem;line-height:1.45}.cotizador-page .form-grid-2{gap:18px 22px;margin-bottom:20px}.cotizador-page .check-line{color:var(--cot-label);padding:8px 0}.cotizador-page .chip-check{border-color:#c5cdd9;background:#fafbfd;font-weight:500;color:var(--cot-label)}.cotizador-page .chip-check:has(input:checked){border-color:var(--aluditec-blue);background:#eef2f9}.cotizador-page .duovent-column{border-color:#c5cdd9;background:#f4f6fb}.cotizador-page .kit-box{background:#e8edf7;border:1px solid #c9d2e5;color:#2d3748}.cotizador-page .herraje-selector-select{border:1px solid var(--cot-input-border);background:var(--cot-input-bg);color:var(--aluditec-dark)}.cotizador-page .herraje-selector-select:focus{outline:none;border-color:var(--aluditec-blue);background:#fff;box-shadow:0 0 0 3px var(--cot-focus-ring, rgba(26, 34, 53, .16))}.cotizador-page .herraje-seleccion-fila{border-color:var(--cot-input-border);background:var(--cot-input-bg)}.cotizador-page .totales-tecnico{font-size:.9rem;color:var(--cot-label);padding:14px 16px;background:var(--cot-input-bg);border-radius:10px;border:1px solid var(--cot-input-border)}.cotizador-page .lista-perfiles li{margin-bottom:6px}.cotizador-page .hint-line{color:#3d4a5c;background:#e8edf6;border-left-color:var(--aluditec-red)}.cotizador-page .card-inner{border-color:#cdd5e3;background:#f3f5f9}.cotizador-page .emisor-nombre{color:var(--cot-label)}.cotizador-page .emisor-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}@media (max-width: 640px){.cotizador-page .emisor-bar{flex-direction:column;align-items:flex-start}.cotizador-page .emisor-logo-thumb{align-self:flex-end;max-height:40px}}.emisor-bar-texto{display:flex;flex-direction:column;gap:4px;min-width:0}.emisor-linea{display:block;line-height:1.35}.emisor-nombre{font-weight:600;font-size:1.05rem;color:var(--aluditec-blue)}.emisor-logo-thumb{max-height:48px;border-radius:8px;object-fit:contain}.hint-line{font-size:.88rem;color:var(--text-muted);margin:0 0 16px;padding:10px 14px;background:#eef2f9;border-radius:8px;border-left:4px solid var(--aluditec-red)}.clientes-guardados-block{margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--border)}.clientes-guardados-desc{margin:6px 0 12px}.clientes-guardados-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}.clientes-busq-wrap{position:relative;flex:1;min-width:200px}.input-busqueda-cliente{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:.95rem}.clientes-sugerencias{position:absolute;top:100%;left:0;right:0;margin:4px 0 0;padding:4px 0;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);max-height:220px;overflow-y:auto;z-index:20}.cliente-sugerencia-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:10px 12px;border:none;background:transparent;cursor:pointer;text-align:left;font-family:inherit;font-size:.9rem}.cliente-sugerencia-btn:hover{background:var(--surface-2)}.btn-guardar-cliente{flex-shrink:0;white-space:nowrap}.error.small,.validation-ok.small{font-size:.85rem;margin:8px 0 0}.cotizador-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media (max-width: 960px){.app-layout{grid-template-columns:1fr}.app-topbar{display:flex;padding-top:max(10px,env(safe-area-inset-top,0px));padding-left:max(14px,env(safe-area-inset-left,0px));padding-right:max(14px,env(safe-area-inset-right,0px))}.sidebar{position:fixed;top:0;left:0;bottom:0;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);width:280px;max-width:85vw;z-index:50;transform:translate(-100%);transition:transform .25s ease;box-shadow:0 0 24px #00000040;overflow-y:auto}.sidebar.sidebar-open{transform:translate(0)}.sidebar-close{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;border:1px solid rgba(255,255,255,.18);background:transparent;color:#fff;font-size:1.4rem;line-height:1;cursor:pointer;margin-left:auto}.cotizador-grid{grid-template-columns:1fr}}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;margin-bottom:18px}.field{display:flex;flex-direction:column;gap:6px}.field span{font-size:.8rem;font-weight:600;color:var(--aluditec-blue)}.field input,.field select,.field textarea{padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:.95rem}.field-full{grid-column:1 / -1}.check-line{display:flex;align-items:center;gap:10px;font-size:.95rem;font-weight:500;color:var(--aluditec-blue);cursor:pointer;margin:0 0 10px}.check-line input{width:auto;cursor:pointer}.check-line.sub-check{font-weight:400;margin-left:8px;margin-bottom:12px}.vidrio-templado-block{padding:12px 0 4px;border-top:1px dashed var(--border);margin-top:4px}.vidrio-templado-grid{margin-top:8px}.duovent-block{margin-bottom:8px}.duovent-intro{margin:0 0 12px}.duovent-grid{align-items:start}.duovent-column{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.duovent-title{display:block;font-size:.9rem;color:var(--aluditec-blue);margin-bottom:12px}.admin-vidrio-recargo{max-width:420px;margin-bottom:20px}.admin-vidrio-recargo input{margin-top:6px}.precios-vidrio-table .table-input.wide{min-width:160px}.form-cotizador .btn-primary{margin-top:4px}.lista-perfiles{margin:0;padding-left:18px;font-size:.9rem}.lista-perfiles li.lista-perfiles-extra{border-left:3px solid #f59e0b;padding-left:6px;margin-left:-6px;background:#f59e0b14;border-radius:0 4px 4px 0}.lista-perfiles li.lista-perfiles-extra em{color:#b45309;font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;font-style:normal}.kit-box{margin:14px 0;padding:12px;background:#f0f4fb;border-radius:8px;font-size:.88rem}.herrajes-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.herrajes-extras-block{margin:12px 0 10px}.herrajes-hint-goma{padding:8px 12px;background:#f4f7ed;border-radius:8px;border-left:3px solid #6b8e23;margin:8px 0!important}.herraje-selector-field{margin:10px 0 12px;max-width:520px}.herraje-selector-select{width:100%;min-height:44px;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface);font-family:inherit;font-size:.95rem;cursor:pointer}.lista-herrajes-seleccionados{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-width:560px}.herraje-seleccion-fila{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;font-size:.9rem}.herraje-seleccion-main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:140px}.herrajes-sin-extras{margin:8px 0 0!important}.herraje-metro-input input{width:88px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;font-family:inherit}.herraje-cantidad-stepper .herraje-stepper-inner{display:inline-flex;align-items:stretch;gap:4px}.herraje-cantidad-field{width:56px;min-width:48px;text-align:center;padding:8px 6px;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:1rem;line-height:1.2}.herraje-cantidad-stepper .btn-stepper{min-width:44px;min-height:44px;padding:0 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:1.35rem;font-weight:600;line-height:1;cursor:pointer;color:var(--text);flex-shrink:0}.herraje-cantidad-stepper .btn-stepper:active:not(:disabled){background:var(--surface-2)}.herraje-cantidad-stepper .btn-stepper:disabled{opacity:.35;cursor:not-allowed}.herraje-subtotal{font-weight:700;color:var(--text);margin-left:auto;white-space:nowrap}.taller-herrajes-editor{margin-top:28px}.section-head-tight h3{margin-bottom:6px}.serie-ref-chip{display:inline-block;margin:4px 10px 4px 0;font-size:.8rem}.herrajes-taller-table select.table-input{min-width:150px}.chip-check{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;padding:6px 10px;background:var(--surface);border:1px solid var(--border);border-radius:999px;cursor:pointer}.totales-tecnico{display:flex;flex-wrap:wrap;gap:12px 20px;font-size:.88rem;margin:12px 0;padding-top:12px;border-top:1px solid var(--border)}.presupuesto-lineas-block{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.presupuesto-lineas-block h4{margin:0 0 8px;font-size:.95rem}.presupuesto-nueva-linea-accion{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:14px}.presupuesto-nueva-linea-accion .muted.small{flex:1 1 200px;min-width:0}.lista-lineas-presupuesto{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:10px}.linea-presupuesto-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:10px;font-size:.9rem}.linea-presupuesto-acciones{display:flex;flex-direction:column;align-items:flex-end;gap:4px;white-space:nowrap;font-weight:600}.agregar-linea-row{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:8px}.agregar-linea-row input{padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-family:inherit}.cotizador-page .presupuesto-fila-nueva-title{margin:14px 0 6px;line-height:1.45}.agregar-linea-grid{display:grid;grid-template-columns:1fr 100px auto auto;gap:10px;align-items:end;margin-top:8px}.nueva-linea-en-formulario{margin-top:6px}.agregar-linea-botones{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.agregar-linea-botones .btn-secondary{flex:1 1 auto;min-width:min(100%,148px)}@media (min-width: 721px){.agregar-linea-grid--formulario{grid-template-columns:1fr 100px auto minmax(260px,1.35fr)}.agregar-linea-grid--formulario .agregar-linea-botones{justify-content:flex-end}}@media (max-width: 720px){.agregar-linea-grid{grid-template-columns:1fr 1fr}}.agregar-linea-grid>input[type=text]{grid-column:1 / -1}.agregar-linea-grid input[type=text],.agregar-linea-grid input[type=number]{padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-family:inherit}.vista-previa-apertura-wrap{display:flex;justify-content:center;align-items:flex-start;width:100%;min-width:0;max-width:100%;box-sizing:border-box}.apertura-selector-con-prevista{display:grid;grid-template-columns:1fr;gap:14px;align-items:start;width:100%;min-width:0;box-sizing:border-box}.apertura-selector-col .field{margin-bottom:0}.apertura-selector-ayuda{margin:8px 0 0;line-height:1.45}@media (min-width: 880px){.apertura-selector-con-prevista{grid-template-columns:minmax(0,1.1fr) minmax(220px,280px);gap:20px;align-items:start}.vista-previa-apertura-wrap{justify-content:center;position:sticky;top:12px}.vista-previa-apertura{width:auto;max-width:280px}}.vista-previa-apertura{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 12px;background:#f7faff;border:1px solid #dbe5f3;border-radius:10px;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.vista-previa-apertura svg{border-radius:4px;max-width:100%}.vista-previa-apertura-rotulo{margin:4px 0 0;font-weight:600;color:#1a2235;text-align:center}.vista-previa-apertura-medidas{margin:2px 0 0;font-size:.82rem;color:#475569;text-align:center}.vista-previa-apertura-aviso{margin:0;font-size:.78rem;color:#6c7689;text-align:center}.vista-previa-apertura-rotulo,.vista-previa-apertura-medidas,.vista-previa-apertura-aviso{max-width:100%;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.field-cantidad-linea input{width:100%}.conceptos-grid{display:grid;grid-template-columns:1fr 110px 72px auto auto;gap:10px;align-items:end;margin-bottom:12px}@media (max-width: 900px){.conceptos-grid{grid-template-columns:1fr 1fr}}.conceptos-grid>input{padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-family:inherit}.conceptos-grid .check-line{margin:0;white-space:nowrap}.field-inline{display:flex;flex-direction:column;gap:4px}.field-inline input{padding:6px 8px;border:1px solid var(--border);border-radius:6px;font-family:inherit;max-width:100px}.check-tight{margin:0!important;align-items:center}.linea-presupuesto-main{flex:1;min-width:0}.linea-presupuesto-ajustes{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:8px}.linea-presupuesto-acciones{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.lista-conceptos-editable{list-style:none;margin:0;padding:0}.lista-conceptos-editable .concepto-editable-fila{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;list-style:none;margin:0 0 10px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.concepto-editable-titulo{flex:1;min-width:140px;font-weight:500}.concepto-subtotal{font-size:.95rem;min-width:72px;text-align:right}.pdf-iva-global{padding:10px 12px;background:#f4f6fa;border-radius:8px;border:1px solid var(--border)}.totales-presupuesto{padding-top:8px}.pdf-actions-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:12px}.conceptos-block{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.conceptos-block h4{margin:0 0 10px;font-size:.95rem}.conceptos-row{display:grid;grid-template-columns:1fr 120px auto;gap:10px;margin-bottom:12px}.conceptos-row input{padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-family:inherit}.lista-conceptos{font-size:.9rem;margin:0 0 12px;padding-left:18px}.link-btn{background:none;border:none;color:var(--aluditec-red);cursor:pointer;font-size:.85rem;text-decoration:underline;padding:0;font-family:inherit}.total-grande{font-size:1.05rem;margin:12px 0 16px}.ia-result{margin-top:24px}.ia-text{white-space:pre-wrap;margin:0;font-size:.95rem;line-height:1.55}.ia-sugeridos-block{margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}.ia-sugeridos-title{margin:0 0 8px;font-size:1rem}.ia-sugeridos-lista{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}.ia-sugerido-fila{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:10px;font-size:.9rem}.ia-sugerido-texto{flex:1;min-width:200px}.ia-sugerido-acciones{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.ia-sugerido-monto{display:flex;flex-direction:column;gap:4px}.ia-sugerido-monto input{width:120px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-family:inherit}.mi-taller-herrajes-aviso{margin-top:20px}.taller-form .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;margin-bottom:20px}.taller-form .field-full{grid-column:1 / -1}.field-label{display:block;font-size:.8rem;font-weight:600;margin-bottom:6px;color:var(--aluditec-blue)}.logo-row{display:flex;align-items:center;gap:24px;margin-bottom:20px;flex-wrap:wrap}.taller-logo-preview{max-height:72px;border-radius:8px;border:1px solid var(--border)}.taller-firma-preview{max-height:56px;max-width:200px;object-fit:contain;border-radius:4px;border:1px dashed var(--border);background:#fff}.pdf-notas-cliente{margin:16px 0}.pdf-notas-cliente textarea{width:100%;min-height:120px;resize:vertical}.pdf-firma-cliente{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.firma-taller-card{margin-bottom:20px}.firma-canvas-wrap{max-width:100%}.firma-canvas-hint{margin:0 0 8px}.firma-canvas{display:block;width:100%;max-width:420px;border:1px solid var(--border);border-radius:8px;background:#fff;cursor:crosshair;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.firma-canvas-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.firma-canvas-preview{margin-top:12px}.firma-canvas-preview img{display:block;max-height:56px;max-width:220px;margin-top:6px;object-fit:contain}.form-actions{display:flex;gap:12px}.admin-catalogo-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.precios-filtros{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:12px 14px;margin-bottom:12px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}.precios-filtros .field-inline{display:flex;flex-direction:column;gap:4px}.precios-filtros input[type=search],.precios-filtros select{padding:6px 10px;border:1px solid #cbd5e1;border-radius:6px;font-size:14px;background:#fff}.precios-filtros-acciones{display:flex;gap:8px;align-items:center}.precios-filtros-conteo{flex-basis:100%;margin:0}.precios-conteo-marcas{flex-basis:100%;display:flex;flex-wrap:wrap;gap:6px}.precios-chip-marca{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;font-size:12px;cursor:pointer;transition:background .1s ease}.precios-chip-marca:hover{background:#f1f5f9}.precios-chip-marca strong{background:#e2e8f0;border-radius:999px;padding:1px 8px;font-weight:600}.precios-chip-activo{border-color:#4f46e5;background:#eef2ff;color:#312e81}.precios-chip-activo strong{background:#c7d2fe}.precios-gestor-marcas{margin:12px 0 18px;padding:14px 16px;border:1px solid #c7d2fe;border-radius:10px;background:#f8fafc}.precios-gestor-marcas h3{font-size:16px;margin-bottom:8px}.precios-gestor-marcas-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;margin-top:12px}.precios-gestor-marca-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.precios-gestor-marca-info{display:flex;flex-direction:column;gap:2px;min-width:0}.precios-gestor-marca-info strong{font-size:14px}.precios-gestor-marca-actions{display:flex;gap:6px;flex-shrink:0}.precios-gestor-marcas-nueva{display:flex;align-items:flex-end;gap:8px;margin-top:14px;padding-top:14px;border-top:1px dashed #cbd5e1}.catalogo-filtros{margin-bottom:14px}.catalogo-filtros-head{margin-bottom:10px}.catalogo-filtros-head h3{margin:0 0 4px;font-size:16px}.catalogo-filtros-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:8px}.catalogo-filtros-acciones{display:flex;align-items:center;gap:12px;margin-bottom:8px}.catalogo-marcas-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.precios-chip-warn{border-color:#f87171!important;background:#fef2f2!important;color:#991b1b!important}.precios-chip-warn strong{background:#fee2e2!important;color:#991b1b!important}.catalogo-marca-resumen-serie{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;margin:4px 0 8px;border:1px solid #e0e7ff;background:#f5f7ff;border-radius:6px}.catalogo-wizard-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e14228c;display:flex;align-items:center;justify-content:center;z-index:10000;padding:16px}.catalogo-wizard-card{background:#fff;border-radius:14px;padding:22px;width:min(640px,96vw);max-height:92vh;overflow-y:auto;box-shadow:0 18px 48px #0e142240}.catalogo-wizard-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px}.catalogo-wizard-head h3{margin:0;color:var(--aluditec-blue);font-size:1.05rem}.catalogo-wizard-pregunta{margin-top:12px}.catalogo-wizard-pregunta strong{display:block;margin-bottom:8px;color:var(--aluditec-dark);font-size:14px}.catalogo-wizard-opciones{display:grid;grid-template-columns:1fr;gap:8px}@media (min-width: 720px){.catalogo-wizard-opciones{grid-template-columns:1fr 1fr}}.catalogo-wizard-opcion{display:flex;flex-direction:column;gap:4px;align-items:flex-start;padding:12px 14px;border:2px solid var(--border);background:#fff;border-radius:12px;cursor:pointer;text-align:left;font-weight:600;transition:border-color .12s ease,background .12s ease}.catalogo-wizard-opcion:hover{border-color:var(--aluditec-red);background:#fff5f5}.catalogo-wizard-opcion-activa{border-color:var(--aluditec-red);background:#fff0f0;box-shadow:0 0 0 3px #eb1c241f}.catalogo-wizard-opcion .small{font-weight:400;font-size:12px}.catalogo-wizard-bloque{margin-top:14px;padding:12px;background:var(--surface-2);border-radius:10px}.catalogo-wizard-acciones{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.catalogo-marcas-resumen-mini{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;margin:6px 0;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;font-size:13px}.catalogo-vinc-resumen{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;margin:6px 0 10px;background:#eef2ff;border:1px solid #c7d2fe;border-radius:8px;font-size:13px;color:#312e81}.catalogo-vinc-resumen strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:#fff;padding:2px 8px;border-radius:999px;border:1px solid #c7d2fe}.catalogo-marcas-edit{margin:4px 0 12px;padding:10px 12px;border:1px solid #e0e7ff;background:#f5f7ff;border-radius:10px}.catalogo-marcas-edit-head{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;margin-bottom:8px}.catalogo-marcas-edit-head strong{color:#312e81;font-size:13px}.catalogo-marcas-edit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px 12px}.catalogo-marca-toggle{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid #c7d2fe;background:#fff;border-radius:6px;cursor:pointer;font-size:13px}.catalogo-marca-toggle:hover{background:#eef2ff}.catalogo-formula-aviso{display:block;margin-top:4px;padding:4px 6px;background:#fef3c7;border:1px solid #fcd34d;color:#78350f;border-radius:6px;font-size:11px;cursor:pointer;text-align:left;width:100%}.catalogo-formula-aviso:hover{background:#fde68a}.catalogo-vinc-tabla{margin:4px 0 12px;padding:10px 12px;border:1px solid #c7d2fe;background:#eef2ff;border-radius:10px}.catalogo-vinc-tabla-head{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;margin-bottom:8px}.catalogo-vinc-tabla-head strong{color:#312e81;font-size:13px}.catalogo-vinc-tabla-grid{display:grid;grid-template-columns:2fr 1fr auto;gap:10px;align-items:end}@media (max-width: 720px){.catalogo-vinc-tabla-grid{grid-template-columns:1fr}}.catalogo-toolbar-principal{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px;padding:12px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.catalogo-filtros-inline{margin-top:12px}.catalogo-hint-dictado{margin:10px 0 0}.catalogo-cabecera-serie{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;margin-bottom:12px;border:1px solid #d1d5db;border-left:4px solid var(--aluditec-red);background:#f9fafb;border-radius:10px}.catalogo-cabecera-serie-titulo{font-weight:600;color:var(--aluditec-blue)}.catalogo-cabecera-serie-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:#fff;padding:2px 8px;border:1px solid #d1d5db;border-radius:999px;color:#1f2937}.catalogo-cabecera-serie-marcas{display:flex;flex-wrap:wrap;gap:4px;margin-left:auto}.cotizador-marca-resumen{display:flex;flex-direction:column;gap:6px;margin:6px 0 10px;padding:8px 12px;border:1px solid #e0e7ff;background:#f5f7ff;border-radius:8px}.cotizador-marca-resumen-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.cotizador-marca-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:#fff;border:1px solid #c7d2fe;border-radius:999px;font-size:12px;color:#312e81}.cotizador-marca-chip strong{background:#eef2ff;border-radius:999px;padding:0 6px;font-size:11px;color:#4338ca}.cotizador-marca-aviso{background:#fef3c7;color:#78350f;padding:6px 10px;border-radius:6px;font-size:12px;border:1px solid #fcd34d}.cotizador-marca-pill{display:inline-block;margin-left:6px;padding:1px 7px;font-size:10px;font-weight:600;background:#e0e7ff;color:#3730a3;border-radius:999px;text-transform:uppercase;letter-spacing:.3px}.cotizador-marca-pill-fallback{background:#fed7aa;color:#9a3412}.precios-seleccion-bar{position:sticky;top:8px;z-index:12;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid #f59e0b;background:linear-gradient(to right,#fffbeb,#fff7ed);border-radius:10px;box-shadow:0 4px 12px #f59e0b26;margin-bottom:12px}.precios-seleccion-info{display:flex;align-items:baseline;gap:6px;color:#78350f}.precios-seleccion-info strong{font-size:20px;color:#b45309;font-weight:700}.precios-seleccion-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.precios-bulk-panel{border:1px solid #c7d2fe;background:#eef2ff;border-radius:10px;padding:14px 16px;margin-bottom:14px;display:flex;flex-direction:column;gap:12px}.precios-bulk-head h3{margin:0 0 4px;font-size:16px;color:#312e81}.precios-ajuste-global{margin-bottom:16px}.precios-ajuste-global-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.precios-ajuste-global-head h3{margin:0 0 4px;font-size:17px;color:#1e3a5f}.precios-ajuste-global-panel{border-color:#86efac;background:#f0fdf4}.precios-ajuste-alcance-select{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:12px}.precios-bulk-presets{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.precios-bulk-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:10px}.precios-bulk-grid select,.precios-bulk-grid input{padding:6px 10px;border:1px solid #c7d2fe;border-radius:6px;background:#fff;font-size:14px}.precios-bulk-colores{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.precios-bulk-extra{display:flex;gap:8px;align-items:center}.precios-bulk-acciones{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.precios-bulk-marca{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.precios-bulk-marca input{padding:6px 10px;border:1px solid #c7d2fe;border-radius:6px;background:#fff;font-size:14px;width:100%}.precios-row-acciones{display:flex;gap:4px;align-items:center;justify-content:flex-end}.precios-row-sin-marca{background:#fff7ed}.precios-row-sin-marca:hover{background:#ffedd5}.precios-row-seleccionada{background:#ecfdf5!important}.precios-row-seleccionada:hover{background:#d1fae5!important}.btn-link{background:none;border:none;padding:0;color:#2563eb;text-decoration:underline;font:inherit;cursor:pointer}.btn-link:hover{color:#1d4ed8}@media (max-width: 720px){.precios-bulk-grid{grid-template-columns:1fr}}.json-editors{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}@media (max-width: 900px){.json-editors,.taller-form .form-grid,.conceptos-row{grid-template-columns:1fr}}.field-block{display:flex;flex-direction:column;gap:8px}.json-area{width:100%;min-height:320px;font-family:ui-monospace,monospace;font-size:.78rem;padding:12px;border:1px solid var(--border);border-radius:8px;resize:vertical}.validation-error{background:#fdecef;border:1px solid #f5c2c7;color:#842029;padding:12px;border-radius:8px;font-size:.85rem;white-space:pre-wrap;overflow:auto;max-height:200px}.validation-ok{color:#0d6832;font-size:.9rem;margin:8px 0}.aviso-actualizacion-precios{background:#fff8e1;border:1px solid #f0c674;color:#5a4500;padding:14px 16px;border-radius:10px;margin:12px 0 16px;display:grid;gap:8px}.aviso-actualizacion-precios strong{font-size:.95rem;color:#4a3700}.aviso-actualizacion-precios p{margin:0;font-size:.9rem;line-height:1.45}.aviso-actualizacion-precios button{justify-self:start}.preview-list{margin:0;padding-left:18px;font-size:.88rem}.badge{display:inline-block;font-size:.7rem;padding:2px 8px;border-radius:6px;background:var(--surface-2);border:1px solid var(--border)}.admin-modos{display:flex;gap:8px;margin-bottom:20px}.tab-modo{padding:10px 18px;border-radius:10px;border:1px solid var(--border);background:var(--surface);font-family:inherit;font-weight:600;font-size:.9rem;cursor:pointer;color:var(--aluditec-blue)}.tab-modo.active{background:var(--aluditec-blue);color:#fff;border-color:var(--aluditec-blue)}.json-aviso{margin-bottom:16px;padding:12px;background:#fff9e6;border-radius:8px;border-left:4px solid #c9a227}.admin-visual-toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.admin-visual-grid{display:grid;grid-template-columns:280px 1fr;gap:20px;align-items:start}@media (max-width: 960px){.admin-visual-grid{grid-template-columns:1fr}}.admin-visual-aside{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;max-height:70vh;overflow:auto}.aside-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.aside-head h3{margin:0;font-size:.95rem}.serie-pick-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.serie-pick{width:100%;text-align:left;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);cursor:pointer;font-family:inherit;display:flex;flex-direction:column;gap:4px}.serie-pick.active{border-color:var(--aluditec-red);background:#fff5f5;box-shadow:0 0 0 1px var(--aluditec-red)}.serie-pick-id{font-size:.75rem;font-family:ui-monospace,monospace;color:var(--text-muted)}.serie-pick-name{font-weight:600;font-size:.88rem}.badge.esp{background:#e8f0fe;color:#1a4a8c;width:fit-content}.badge.nac{background:#fdecef;color:#8c1a2b;width:fit-content}.admin-visual-main{display:flex;flex-direction:column;gap:16px}.admin-visual-stack{display:flex;flex-direction:column;gap:16px;margin-top:16px}.admin-visual{display:flex;flex-direction:column;gap:18px}.catalogo-paso{position:relative;padding:18px 18px 16px}.catalogo-paso-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}.catalogo-paso-head h3{margin:0;font-size:1rem;color:var(--aluditec-blue)}.catalogo-paso-num{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--aluditec-red);color:#fff;font-weight:700;font-size:.9rem;flex-shrink:0}.catalogo-selectores-acciones{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.catalogo-apertura-titulo{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;padding:10px 12px;background:#fff8f5;border:1px solid #ffd9c9;border-radius:8px;margin-bottom:14px;font-size:.95rem}.catalogo-detalle{border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin:12px 0;background:var(--surface-2)}.catalogo-detalle>summary{cursor:pointer;font-weight:600;color:var(--aluditec-blue);list-style:none;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:6px}.catalogo-detalle>summary:before{content:"▸";display:inline-block;transition:transform .15s ease;color:var(--text-muted)}.catalogo-detalle[open]>summary:before{transform:rotate(90deg)}.catalogo-paso-extra{background:transparent;border-style:dashed}.catalogo-acciones-bottom{position:sticky;bottom:0;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 -4px 12px #0000000a;z-index:5}.catalogo-modo-avanzado{margin-top:18px;padding:12px 14px;border:1px dashed var(--border);border-radius:8px;color:var(--text-muted);font-size:.88rem}.catalogo-modo-avanzado>summary{cursor:pointer;font-weight:600}@media (max-width: 640px){.catalogo-paso{padding:14px 12px}.catalogo-acciones-bottom{justify-content:stretch}.catalogo-acciones-bottom>button{flex:1 1 auto}}.serie-form h3,.apertura-tabs h3{margin:0 0 12px;font-size:1rem}.dictado-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000}.dictado-modal{background:#fff;border-radius:12px;width:100%;max-width:760px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000040;display:flex;flex-direction:column}.dictado-modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid #e5e7eb}.dictado-modal-head h3{margin:0;font-size:1.05rem}.dictado-modal-body{padding:16px 18px;display:flex;flex-direction:column;gap:10px}.dictado-grabacion{display:flex;align-items:center;gap:10px}.dictado-rec-dot{width:10px;height:10px;background:#dc2626;border-radius:50%;display:inline-block;animation:dictado-rec 1s infinite ease-in-out}@keyframes dictado-rec{0%,to{opacity:.4;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}.dictado-acciones{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.dictado-resultado{margin-top:8px;padding:12px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.dictado-resultado h4{margin:0 0 6px}.dictado-advertencias{margin:8px 0;padding-left:18px;color:#92400e}.dictado-advertencias li{margin-bottom:2px}.dictado-modal textarea{width:100%;font-family:inherit;font-size:.95rem;border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;resize:vertical}.dictado-ejemplos{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:6px 12px}.dictado-ejemplos summary{cursor:pointer;font-weight:600;color:#1e293b;padding:4px 0}.dictado-ejemplos ul{margin:6px 0 6px 18px;padding:0;font-size:.88rem;color:#334155;display:flex;flex-direction:column;gap:4px}@media (max-width: 640px){.dictado-modal{max-height:100vh;border-radius:0}.dictado-modal-body{padding:12px 14px}}.form-row-2,.form-row-3{display:grid;gap:12px;margin-bottom:12px}.form-row-2{grid-template-columns:1fr 1fr}.form-row-3{grid-template-columns:1fr 1fr 1fr}@media (max-width: 700px){.form-row-2,.form-row-3{grid-template-columns:1fr}}.btn-danger-text{background:none;border:none;color:var(--aluditec-red);font-family:inherit;font-size:.88rem;cursor:pointer;text-decoration:underline;padding:0;margin-top:8px}.btn-sm{padding:6px 12px;font-size:.82rem}.apertura-chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 16px}.chip-tab{padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-family:inherit;font-size:.85rem;cursor:pointer}.chip-tab.active{background:var(--aluditec-blue);color:#fff;border-color:var(--aluditec-blue)}.subh{margin:20px 0 8px;font-size:.95rem}.kit-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-bottom:8px;align-items:center}.kit-row input{padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-family:inherit}.componentes-table-wrap{overflow-x:auto;margin:12px 0;border:1px solid var(--border);border-radius:8px}.componentes-table{width:100%;border-collapse:collapse;font-size:.78rem}.componentes-table th,.componentes-table td{border-bottom:1px solid var(--border);padding:6px 8px;text-align:left;vertical-align:top}.componentes-table th{background:var(--surface-2);font-weight:600;white-space:nowrap}.componentes-table-wrap .precios-table{width:100%;min-width:1680px;table-layout:auto}.componentes-table-wrap .precios-table th.precios-col-precio,.componentes-table-wrap .precios-table td.precios-col-precio{min-width:5rem}.componentes-table-wrap .precios-table th.precios-col-precio{white-space:normal;line-height:1.25;max-width:7.5rem;vertical-align:bottom}.componentes-table-wrap .precios-table .precios-col-precio .table-input.narrow{width:5rem;min-width:5rem;max-width:6.5rem;box-sizing:border-box}.table-input{width:100%;min-width:56px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;font-family:inherit;font-size:.78rem}.table-input.wide{min-width:140px}.table-input.narrow{min-width:52px}.solo-si-cell{min-width:140px}.check-mini{display:flex;align-items:center;gap:6px;font-size:.72rem;margin-bottom:6px}.solo-si-inputs{display:flex;flex-direction:column;gap:4px}.solo-si-inputs input{padding:4px 6px;border:1px solid var(--border);border-radius:6px;font-size:.75rem}@media (max-width: 960px){.main-content{padding:18px 16px 36px;max-width:100%}.banner-warn{padding:10px 16px}.section-head h2{font-size:1.15rem}.section-desc{font-size:.85rem}}@media (max-width: 640px){.main-content{overflow-x:hidden;padding:12px max(12px,env(safe-area-inset-left,0px)) 24px max(12px,env(safe-area-inset-right,0px))}.main-content img,.main-content video,.main-content canvas{max-width:100%;height:auto}.card-panel{padding:14px 12px;border-radius:10px}.card-inner{padding:10px 12px}.card-title{margin-bottom:10px;font-size:.95rem}.btn-primary{padding:10px 14px;font-size:.9rem;border-radius:9px}.btn-secondary,.btn-ghost{padding:9px 12px;font-size:.88rem;border-radius:9px}.field input,.field select,.field textarea,input[type=text],input[type=number],input[type=email],input[type=tel],select,textarea{padding:9px 11px;font-size:16px;border-radius:8px}.field span{font-size:.78rem}.section-head{margin-bottom:14px}.section-head h2{font-size:1.1rem;margin-bottom:4px}.section-desc{font-size:.82rem;line-height:1.4}.cotizador-page>*+*{margin-top:12px}.cotizador-page{padding:12px max(8px,env(safe-area-inset-left,0px)) 28px max(8px,env(safe-area-inset-right,0px));width:100%;overflow-x:hidden;box-sizing:border-box}.cotizador-page .card-panel,.cotizador-page .card-inner,.cotizador-page .conceptos-card{width:100%;max-width:100%;box-sizing:border-box;overflow-x:hidden}.cotizador-page .conceptos-grid .btn-secondary,.cotizador-page .agregar-linea-grid .btn-primary{width:100%;padding:11px 14px}.cotizador-page .card-panel{padding:14px 12px}.cotizador-page p,.cotizador-page .section-desc{font-size:.85rem}.cotizador-page .card-panel.form-cotizador,.cotizador-page .card-panel.panel-tecnico{overflow-x:hidden}.cotizador-page input,.cotizador-page select,.cotizador-page textarea{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.cotizador-page .form-cotizador .field input,.cotizador-page .form-cotizador .field select,.cotizador-page .form-cotizador .field textarea{max-width:100%!important;width:100%!important}.cotizador-page .form-cotizador .field-full,.cotizador-page .form-cotizador .apertura-selector-con-prevista{min-width:0;width:100%;max-width:100%}.cotizador-page .form-cotizador .form-grid-2,.cotizador-page .form-cotizador .field{min-width:0;max-width:100%}.cotizador-page .cotizador-grid{min-width:0}.cotizador-page .cotizador-grid>.card-panel{min-width:0;max-width:100%}.cotizador-page .clientes-guardados-row{flex-direction:column;align-items:stretch;gap:10px}.cotizador-page .clientes-busq-wrap{width:100%;max-width:none}.cotizador-page .btn-guardar-cliente{width:100%;justify-content:center}.cotizador-page .clientes-guardados-block{padding:14px 12px}.cotizador-page .card-title-with-ayuda{flex-direction:column;align-items:stretch;gap:10px;padding-bottom:10px;margin-bottom:14px}.cotizador-page .card-title-with-ayuda .cot-ayuda-details{align-self:flex-end}.cotizador-page .apertura-chips{gap:8px;justify-content:flex-start}.cotizador-page .chip-tab{flex:1 1 calc(50% - 6px);min-width:0;max-width:100%;box-sizing:border-box;white-space:normal;text-align:center;line-height:1.25;padding:9px 10px}.cotizador-page .field-medidas-row{grid-template-columns:1fr!important;gap:12px}.cotizador-page .field-medidas-row .field-unidad-toggle{grid-column:1 / -1!important}.cotizador-page .duovent-grid{grid-template-columns:1fr!important;gap:12px}.cotizador-page .vista-previa-apertura-wrap{width:100%;max-width:100%;justify-content:center}.cotizador-page .vista-previa-apertura{max-width:100%}.cotizador-page .vista-previa-apertura svg{max-width:100%;height:auto}.cotizador-page .lista-herrajes-seleccionados,.cotizador-page .herraje-selector-field{max-width:100%}.cotizador-page .kit-row{grid-template-columns:1fr!important;gap:10px}.cotizador-page .presupuesto-lineas-title-wrap{flex-wrap:wrap;gap:8px}.cotizador-page .conceptos-block-title-row{gap:10px}.cotizador-page .agregar-linea-botones{width:100%;flex-direction:column;align-items:stretch}.cotizador-page .agregar-linea-botones .btn-secondary{width:100%;flex:none;min-width:0}.cotizador-page .hint-line,.cotizador-page .emisor-linea{word-break:break-word;overflow-wrap:anywhere}.emisor-card,.cliente-card{padding:12px}.admin-catalogo{padding:0}.admin-catalogo,.taller-vista-herrajes,.mi-taller-panel{width:100%;overflow-x:hidden}.lista-clientes-grid,.lista-herrajes-grid{grid-template-columns:1fr!important}.registro-taller-actions{flex-direction:column}.registro-taller-actions .btn-primary,.registro-taller-actions .registro-logout{width:100%!important;min-width:0!important}.clientes-busq-wrap,.ia-sugerido-texto,.concepto-editable-titulo,.herraje-seleccion-main,.registro-taller-actions .btn-primary,.precios-vidrio-table .table-input.wide,.herrajes-taller-table select.table-input,.table-input.wide{min-width:0!important}.ia-sugerido-monto input{width:100%;max-width:160px}.agregar-linea-grid,.conceptos-grid,.form-grid-2,.form-row-2,.form-row-3{grid-template-columns:1fr!important;width:100%}.agregar-linea-grid>*,.conceptos-grid>*{width:100%;min-width:0}html,body{font-size:15px}input,select,textarea,.field input,.field select,.field textarea,.table-input{font-size:16px}button,.btn-primary,.btn-secondary,.btn-ghost,.nav-item{min-height:42px}.btn-sm{min-height:32px;padding:6px 10px}.cotizador-grid{grid-template-columns:1fr;gap:16px}.form-grid-2{grid-template-columns:1fr;gap:12px;margin-bottom:14px}.form-row-2,.form-row-3{grid-template-columns:1fr;gap:10px}.check-line{font-size:.92rem}.apertura-chips{gap:6px}.chip-tab{font-size:.8rem;padding:7px 12px}.componentes-table-wrap,.json-editors,.precios-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -12px;padding:0 12px}.componentes-table{font-size:.72rem}.componentes-table th,.componentes-table td{padding:5px 6px}.table-input{min-width:64px;font-size:.85rem}.table-input.wide{min-width:120px}.linea-presupuesto-row,.herraje-seleccion-fila{flex-direction:column!important;align-items:stretch!important;gap:8px!important;padding:10px}.herraje-cantidad-stepper .herraje-stepper-inner{width:100%;justify-content:center;max-width:320px;margin:0 auto}.herraje-cantidad-field{flex:1 1 auto;max-width:140px;min-width:72px!important;width:auto!important}.linea-presupuesto-acciones{align-items:flex-start!important;flex-direction:row!important;flex-wrap:wrap;width:100%;justify-content:space-between;gap:6px!important}.linea-presupuesto-ajustes{flex-wrap:wrap;gap:8px;width:100%}.linea-presupuesto-precio,.linea-presupuesto-total{text-align:left!important}.agregar-linea-grid,.conceptos-grid{grid-template-columns:1fr!important}.agregar-linea-grid>*,.conceptos-grid>*{width:100%}.herraje-selector-field,.herraje-cot-item{width:100%}.lista-herrajes-seleccionados{gap:8px}.admin-catalogo-actions{flex-wrap:wrap;gap:8px}.admin-catalogo-actions .btn-primary,.admin-catalogo-actions .btn-secondary,.admin-catalogo-actions .btn-ghost{flex:1 1 calc(50% - 8px)}.json-area{font-size:12px;min-height:200px}.aviso-actualizacion-precios{padding:12px}.aviso-actualizacion-precios button{width:100%}.login-card,.registro-taller-card{padding:22px 18px;border-radius:14px}.login-brand h1{font-size:1.25rem}.login-logo{width:56px;height:56px}h1{font-size:1.4rem}h2{font-size:1.1rem}h3{font-size:1rem}.pdf-actions-row{flex-direction:column;gap:10px}.pdf-actions-row button{width:100%}.totales-box,.cotizacion-totales{padding:14px;font-size:.95rem}.banner-membership{flex-direction:column;align-items:stretch;padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px))}.banner-membership button{width:100%}.mi-membresia-page{padding:12px max(12px,env(safe-area-inset-left,0px)) 16px max(12px,env(safe-area-inset-right,0px))}.features-lista,.card-membresia-detalle{grid-template-columns:1fr}.canjear-clave-row{flex-direction:column;gap:10px}.canjear-clave-row input{width:100%;min-width:0}.card-membresia-head{flex-direction:column;align-items:flex-start}.item-dispositivo{flex-direction:column;align-items:stretch;gap:10px}.admin-membresias .cutlist-table-wrap:not(.admin-talleres-wrap){margin:0 -8px;padding:0 8px;-webkit-overflow-scrolling:touch}.modal-overlay{padding:max(16px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) max(20px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px))}.modal-card{max-height:min(calc(100vh - 32px),calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 32px))}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:flex-start;justify-content:center;padding:24px 12px;overflow-y:auto;z-index:1000}.modal-card{background:#fff;border-radius:12px;max-width:980px;width:100%;max-height:calc(100vh - 48px);display:flex;flex-direction:column;box-shadow:0 20px 60px #00000040;overflow:hidden}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e6ee;background:#f7faff}.modal-head h2{margin:0;font-size:1.15rem;color:#1a2235}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid #e2e6ee;background:#fafbfd}.cutlist-modal{max-width:1080px}.cutlist-body{padding:16px 20px;overflow-y:auto}.cutlist-section{margin-bottom:22px}.cutlist-section h3{margin:0 0 6px;font-size:1rem;color:#1a2235}.cutlist-table-wrap{overflow-x:auto;margin-top:8px}.cutlist-table{width:100%;border-collapse:collapse;font-size:.92rem;min-width:640px}.cutlist-table th,.cutlist-table td{padding:6px 8px;border-bottom:1px solid #eef1f6;text-align:left;vertical-align:middle}.cutlist-table th{background:#f0f3f8;font-weight:600}.cutlist-table input[type=text],.cutlist-table input[type=number],.cutlist-table input:not([type]){width:100%;padding:5px 7px;border:1px solid #cdd5e1;border-radius:5px;font-family:inherit;font-size:.9rem}.admin-talleres-botones{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.admin-taller-modal{max-width:520px;width:min(96vw,520px);max-height:92vh;display:flex;flex-direction:column}.admin-taller-modal-body{overflow-y:auto;flex:1;min-height:0}.admin-taller-fieldset{border:1px solid rgba(0,0,0,.08);border-radius:10px;padding:12px 14px 14px;margin:0 0 14px}.admin-taller-fieldset legend{font-weight:600;font-size:.9rem;padding:0 6px}.admin-taller-check{display:flex;align-items:center;gap:8px;margin-bottom:10px}.admin-taller-dias-rapidos{margin-bottom:12px}.admin-taller-dias-botones,.admin-taller-dias-custom{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-items:center}.admin-taller-dias-custom .input{width:4.5rem}.admin-taller-modal-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;border-top:1px solid rgba(0,0,0,.08)}.admin-taller-modal-footer-main{display:flex;gap:8px;margin-left:auto}.admin-taller-btn-eliminar{color:#b91c1c}.admin-taller-uid code{font-size:.78rem;word-break:break-all}@media (max-width: 768px){.admin-membresias .admin-talleres-wrap{overflow-x:visible;margin-left:0;margin-right:0;padding:0}.admin-membresias .admin-talleres-table.cutlist-table{min-width:0!important;width:100%;display:block}.admin-membresias .admin-talleres-table thead{display:none}.admin-membresias .admin-talleres-table tbody{display:block}.admin-membresias .admin-talleres-table tbody tr{display:block;margin-bottom:14px;padding:14px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.admin-membresias .admin-talleres-table tbody tr:last-child{margin-bottom:0}.admin-membresias .admin-talleres-table td{display:block;width:100%!important;padding:10px 0!important;border:none!important;vertical-align:top!important}.admin-membresias .admin-talleres-table td:not(:last-child){border-bottom:1px solid #eef1f6!important}.admin-membresias .admin-talleres-table td:last-child{padding-top:12px!important;padding-bottom:2px!important;border-bottom:none!important}.admin-membresias .admin-talleres-table td:before{content:attr(data-label);display:block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:6px}.admin-membresias .admin-talleres-table td .muted.small{word-break:break-all;font-size:.72rem}.admin-membresias .admin-talleres-botones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}.admin-membresias .admin-talleres-botones .btn-sm{width:100%;justify-content:center;margin:0!important;min-height:40px;white-space:normal;text-align:center;line-height:1.2}}@media (max-width: 380px){.admin-membresias .admin-talleres-botones{grid-template-columns:1fr}}.empty-block{padding:14px;border:1px dashed #cdd5e1;border-radius:8px;background:#fafbfd;text-align:center}.empty-block p{margin:0 0 8px;color:#475569}.cutlist-actions-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0}.cutlist-mensaje{margin:0;color:#b45309;font-size:.9rem}.banner-membership{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;font-size:.92rem;flex-wrap:wrap}.banner-membership>span{flex:1;min-width:0;line-height:1.35}.banner-membership-info{background:#e0f2fe;border-bottom:1px solid #7dd3fc;color:#075985}.banner-membership-warn{background:#fef3c7;border-bottom:1px solid #fbbf24;color:#92400e}.banner-membership-error{background:#fee2e2;border-bottom:1px solid #f87171;color:#991b1b}.mi-membresia-page{padding:16px;max-width:1080px;margin:0 auto}.mi-membresia-page--bloqueo{max-width:720px}.alerta-bloqueo-dispositivos{background:#fef2f2;border:2px solid #f87171;border-radius:10px;padding:16px 18px;margin-bottom:16px;color:#7f1d1d}.alerta-bloqueo-dispositivos h2{margin:0 0 8px;font-size:1.2rem;color:#991b1b}.alerta-bloqueo-dispositivos p{margin:0 0 8px}.card-membresia--destacada{border-color:#f87171;box-shadow:0 0 0 2px #f8717140}.sidebar-nav-aviso{margin:0 12px 10px;padding:10px 12px;font-size:.82rem;line-height:1.35;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b}.sidebar-nav .nav-item:disabled{opacity:.45;cursor:not-allowed}.mi-membresia-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;margin-bottom:16px}@media (max-width: 880px){.mi-membresia-grid{grid-template-columns:1fr}}.card-membresia{background:#fff;border:1px solid #e2e6ee;border-radius:10px;padding:14px 16px;margin-bottom:14px}.card-membresia-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;border-bottom:2px solid #e2e6ee;padding-bottom:6px}.card-membresia-head h3{margin:0;font-size:1.05rem}.card-membresia-precio strong{font-size:1.4rem;color:#1a2235}.card-membresia-precio span{font-size:.85rem;color:#5a6473}.features-lista{list-style:none;padding:0;margin:0 0 12px;display:grid;grid-template-columns:1fr 1fr;gap:6px}.features-lista li{font-size:.9rem}.feat-no{color:#94a3b8}.card-membresia-detalle{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;background:#f7faff;border-radius:6px;padding:8px 10px;font-size:.88rem}.card-membresia-detalle strong{display:block;font-size:1.1rem;color:#0e1422;margin-top:2px}.canjear-clave-row{display:flex;gap:8px;margin-top:8px}.canjear-clave-row input{flex:1;padding:8px 10px;border:1px solid #cdd5e1;border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.04em}.mensaje-canje{margin-top:8px;padding:8px 12px;border-radius:6px;font-size:.9rem}.mensaje-canje-ok{background:#d1fae5;border:1px solid #6ee7b7;color:#065f46}.mensaje-canje-error{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b}.lista-dispositivos{list-style:none;padding:0;margin:0}.item-dispositivo{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid #eef1f6}.item-dispositivo:last-child{border-bottom:none}.badge-actual{display:inline-block;background:#16a34a;color:#fff;font-size:.7rem;padding:2px 6px;border-radius:999px;margin-left:4px}.planes-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px}@media (max-width: 660px){.planes-grid{grid-template-columns:1fr}}.plan-card{border:2px solid #e2e6ee;border-radius:10px;padding:14px;position:relative}.plan-card-actual{background:#f7faff}.plan-card h4{margin:0 0 4px}.plan-precio strong{font-size:1.5rem}.plan-precio span{font-size:.85rem;color:#5a6473}.plan-card ul{list-style:none;padding:0;margin:8px 0;font-size:.9rem}.plan-card ul li{padding:2px 0}.gate-bloqueado{background:#f3f4f6;border:1px dashed #cbd5e1;border-radius:8px;padding:12px 16px;color:#475569;font-size:.92rem}.admin-membresias .clave-generada{background:#ecfeff;border:1px solid #67e8f9;border-radius:6px;padding:8px 12px;font-size:.92rem}.admin-membresias .clave-generada code{background:#fff;padding:3px 6px;border-radius:4px;font-size:1rem;letter-spacing:.05em}.admin-membresias-atajos-botones{display:flex;gap:10px;flex-wrap:wrap}.admin-membresias-generar-clave .admin-generar-check-permanente{grid-column:span 2;flex-direction:row;align-items:flex-start;gap:10px}.admin-membresias-generar-clave .admin-generar-notas{grid-column:1 / -1}.admin-generar-acciones{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;margin-top:12px}.admin-generar-clave-resultado.clave-generada{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;flex:1;min-width:min(100%,420px)}.admin-generar-clave-texto{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.admin-generar-clave-texto strong{font-size:.82rem;color:var(--text-muted);font-weight:700}.admin-generar-clave-texto code{word-break:break-all;line-height:1.35;font-size:.85rem}.admin-generar-clave-botones{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex-shrink:0}.admin-membresias .admin-btn-wa{background:#16a34a!important;color:#fff!important;border-color:#16a34a!important}@media (max-width: 768px){.admin-membresias-atajos-botones{flex-direction:column;align-items:stretch}.admin-membresias-atajos-botones .btn-primary{width:100%;justify-content:center;text-align:center;white-space:normal;line-height:1.25}.admin-membresias-generar-clave .admin-generar-form>.field{grid-column:1 / -1!important}.admin-membresias-generar-clave .admin-generar-check-permanente span{line-height:1.35}.admin-generar-acciones{flex-direction:column;align-items:stretch}.admin-generar-acciones>.btn-primary{width:100%;justify-content:center}.admin-generar-clave-resultado.clave-generada{flex-direction:column;min-width:0;width:100%;padding:12px}.admin-generar-clave-botones{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-generar-clave-botones .btn-sm{width:100%;justify-content:center;white-space:normal;line-height:1.2}}@media (max-width: 380px){.admin-generar-clave-botones{grid-template-columns:1fr}}.field-medidas-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;align-items:end}.field-medidas-row .field-unidad-toggle select{font-size:.85rem}@media (max-width: 540px){.field-medidas-row{grid-template-columns:1fr 1fr}.field-medidas-row .field-unidad-toggle{grid-column:span 2}}.cutlist-resultado-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}.cutlist-resultado-head h3{margin:0}.cutlist-resumen{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-bottom:14px}.cutlist-resumen-item{background:#f7faff;border:1px solid #dbe5f3;border-radius:8px;padding:10px 12px;font-size:.9rem}.cutlist-cantidades-bloque{margin:12px 0 16px}.cutlist-cantidades-bloque h4{margin:0 0 8px;font-size:.95rem}.cutlist-warnings{margin:8px 0 14px;padding:10px 12px;background:#fff7e6;border:1px solid #f6ce69;border-radius:8px}.cutlist-warning{margin:0;color:#92400e;font-size:.88rem}.cutlist-planos{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin-top:8px}.cutlist-plano{border:1px solid #e2e6ee;border-radius:8px;padding:12px;background:#fff}.cutlist-plano h4{margin:0 0 4px;font-size:.95rem;color:#1a2235}.cutlist-piezas-lista{margin:6px 0 0;padding-left:18px;font-size:.85rem;color:#1a2235}.cutlist-faltantes{margin-top:14px;padding:10px 12px;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px}.cutlist-faltantes h4{margin:0 0 6px;color:#991b1b;font-size:.95rem}.cutlist-faltantes ul{margin:0 0 6px;padding-left:20px;font-size:.88rem}@media (max-width: 720px){.cutlist-table:not(.admin-talleres-table){min-width:540px}.cutlist-planos{grid-template-columns:1fr}}.materiales-proveedor-card{margin:16px 0;border:1px solid #cbd5e1;border-radius:10px;background:#fff;padding:0;overflow:hidden}.materiales-proveedor-card>summary{cursor:pointer;padding:12px 16px;background:linear-gradient(180deg,#f8fafc,#eef2f7);border-bottom:1px solid #cbd5e1;font-size:.95rem;list-style:revert}.materiales-proveedor-card[open]>summary{border-bottom:1px solid #cbd5e1}.materiales-proveedor{padding:14px 16px 18px}.materiales-proveedor-vacio{padding:14px 16px}.materiales-proveedor-acciones{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px;padding:10px 12px;background:#f8fafc;border-radius:8px}.materiales-proveedor-acciones button:disabled{opacity:.55;cursor:not-allowed}.materiales-proveedor-aviso{margin:0 0 12px;padding:10px 12px;border-radius:8px;background:#f1f5f9;border-left:4px solid #64748b}.materiales-proveedor-aviso-ok{background:#ecfdf5;border-left-color:#059669}.materiales-proveedor-total{margin-left:auto;font-size:.92rem}.materiales-proveedor-h{margin:16px 0 8px;padding-bottom:4px;border-bottom:2px solid #1f2a36;color:#1f2a36;font-size:1rem}.materiales-tabla-wrap{overflow-x:auto;margin-bottom:8px}.materiales-tabla{width:100%;border-collapse:collapse;font-size:.86rem}.materiales-tabla th,.materiales-tabla td{border:1px solid #e2e8f0;padding:6px 8px;vertical-align:top;text-align:left}.materiales-tabla th{background:#f1f5f9;font-weight:600;color:#1f2a36;white-space:nowrap}.materiales-tabla td.num,.materiales-tabla th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.materiales-tabla tfoot td{background:#f8fafc}.materiales-tabla tbody tr:nth-child(2n){background:#fafbfd}.materiales-origenes{margin-top:4px;font-size:.8rem}.materiales-origenes summary{cursor:pointer;color:#475569;font-style:italic}.materiales-origenes ul{margin:4px 0 0 16px;padding:0;color:#475569}@media (max-width: 720px){.materiales-tabla{font-size:.78rem}.materiales-tabla th,.materiales-tabla td{padding:5px 6px}}@media (max-width: 380px){.main-content{padding:12px 8px 24px}.nav-item{font-size:.78rem;padding:7px 10px}.login-brand h1{font-size:1.1rem}.section-head h2{font-size:1.05rem}}.admin-ia-panel{max-width:880px}.ia-panel-header h2{margin:0 0 6px}.ia-panel-header code{background:#0000000f;padding:1px 6px;border-radius:4px;font-size:.85em}.ia-panel-clave{display:grid;gap:18px;margin-top:18px}.ia-panel-bloque{background:var(--surface, #fff);border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:18px 20px;box-shadow:0 1px 2px #0000000a}.ia-panel-bloque h3{margin:0 0 10px;font-size:1rem}.ia-panel-fila{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}.ia-panel-fila.small{font-size:.85rem}.ia-panel-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:.82rem;font-weight:600;letter-spacing:.01em}.ia-panel-pill.ok{background:#149e5f1f;color:#0e6b40}.ia-panel-pill.warn{background:#c7950026;color:#8a6500}.ia-panel-clave-input{display:flex;gap:8px;align-items:stretch}.ia-panel-clave-input input{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.ia-panel-acciones{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}.ia-panel-btn-danger{color:var(--aluditec-red, #c0392b);border-color:#c0392b4d}.ia-panel-btn-danger:hover:not(:disabled){background:#c0392b0f}.ia-panel-mensaje{margin-top:12px;padding:10px 14px;border-radius:8px;font-size:.9rem;border:1px solid transparent}.ia-panel-mensaje-ok{background:#149e5f1a;border-color:#149e5f59;color:#0e6b40}.ia-panel-mensaje-error{background:#c0392b14;border-color:#c0392b59;color:#8a2316}.ia-panel-mensaje-info{background:#3874cb14;border-color:#3874cb4d;color:#1f4f9c}.ia-panel-ayuda ul{margin:6px 0 12px;padding-left:22px}.ia-panel-ayuda li+li{margin-top:4px}.visor3d-tooltip{background:#0a0f1ceb;color:#e8ecf4;padding:6px 10px;border-radius:6px;font-size:12px;display:flex;flex-direction:column;gap:2px;max-width:240px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(100,160,255,.3);box-shadow:0 4px 12px #0006}.visor3d-tooltip-cat{font-weight:600;color:#6cb4ff;text-transform:uppercase;font-size:10px;letter-spacing:.04em}.visor3d-tooltip-desc{font-weight:500}.visor3d-tooltip-code{color:#aab4c8;font-family:monospace;font-size:11px}.visor3d-tooltip-metros{color:#6ee28a;font-size:11px}.visor3d-panel-pieza{position:absolute;right:12px;top:12px;width:260px;background:#0a0f1cf0;border:1px solid rgba(100,160,255,.25);border-radius:10px;color:#e8ecf4;font-size:13px;overflow:hidden;box-shadow:0 8px 24px #00000080;z-index:90}.visor3d-panel-pieza-header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#28468240;font-weight:600;font-size:14px;border-bottom:1px solid rgba(100,160,255,.15)}.visor3d-panel-pieza-header .btn-cerrar-mini{background:none;border:none;color:#8a9bb8;font-size:16px;cursor:pointer;padding:0 4px;line-height:1}.visor3d-panel-pieza-header .btn-cerrar-mini:hover{color:#ff7070}.visor3d-panel-pieza-body{padding:10px 12px}.visor3d-panel-pieza-row{display:flex;justify-content:space-between;padding:3px 0}.visor3d-panel-pieza-row .label{color:#8a9bb8}.visor3d-panel-pieza-row .value{font-weight:500;text-align:right}.visor3d-panel-pieza-row.total{border-top:1px solid rgba(100,160,255,.15);margin-top:4px;padding-top:6px;font-weight:600}.visor3d-panel-pieza-row.total .value{color:#6ee28a}.visor3d-panel-pieza-badge{display:inline-block;margin-top:6px;padding:2px 8px;background:#ffaa0026;color:#ffa800;border-radius:4px;font-size:11px;font-weight:600}.visor3d-panel-pieza-actions{padding:8px 12px 10px;display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid rgba(100,160,255,.1)}.visor3d-panel-pieza-actions .btn-sm{padding:4px 10px;font-size:12px}.visor3d-panel-pieza-actions .btn-danger{background:#c8322833;color:#ff6060;border:1px solid rgba(200,50,40,.35);border-radius:4px;cursor:pointer}.visor3d-panel-pieza-actions .btn-danger:hover{background:#c8322859}.visor3d-paleta{display:flex;flex-direction:column;gap:8px}.visor3d-paleta-titulo{margin:0;font-size:15px;font-weight:600}.visor3d-paleta-marca{margin:0;font-size:12px;color:#6cb4ff;font-weight:500}.visor3d-paleta-busqueda{padding:6px 10px;border:1px solid #ccc;border-radius:6px;font-size:13px;width:100%;box-sizing:border-box}.visor3d-paleta-filtros{display:flex;gap:4px;flex-wrap:wrap}.visor3d-paleta-filtro-btn{padding:3px 8px;border:1px solid #d0d4dc;border-radius:4px;background:#f5f6f8;cursor:pointer;font-size:11px;color:#444;transition:all .15s}.visor3d-paleta-filtro-btn.activo{background:#1a5ca8;color:#fff;border-color:#1a5ca8}.visor3d-paleta-lista{max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.visor3d-paleta-vacio{color:#888;font-size:12px;text-align:center;padding:16px 0}.visor3d-paleta-item{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:5px;cursor:pointer;font-size:12px;background:#f9fafc;border:1px solid transparent;transition:all .12s}.visor3d-paleta-item:hover{background:#eaf0fa;border-color:#b8d0f0}.visor3d-paleta-item-desc{flex:1;font-weight:500}.visor3d-paleta-item-code{color:#888;font-family:monospace;font-size:11px}.visor3d-paleta-item-precio{color:#2e7d32;font-weight:600;font-size:11px;white-space:nowrap}.visor3d-paleta-badge-libre{display:inline-block;margin-left:6px;padding:1px 5px;border-radius:3px;font-size:9px;font-weight:600;letter-spacing:.3px;background:#00b4ff26;color:#00b4ff;vertical-align:middle}.visor3d-materiales-resumen{font-size:13px}.visor3d-mat-tabla{width:100%;border-collapse:collapse;font-size:12px;margin-top:4px}.visor3d-mat-tabla th,.visor3d-mat-tabla td{padding:3px 6px;border-bottom:1px solid rgba(120,130,150,.18);text-align:left}.visor3d-mat-tabla th{font-weight:600;font-size:11px;color:#89a;text-transform:uppercase;letter-spacing:.3px}.visor3d-mat-tabla .num{text-align:right;font-variant-numeric:tabular-nums}.visor3d-mat-tabla .mono{font-family:monospace;font-size:11px;color:#6b8}.visor3d-mat-tabla tfoot td{border-top:2px solid rgba(120,130,150,.3);border-bottom:none;padding-top:5px}.visor3d-piezas-agregadas{display:flex;flex-direction:column;gap:4px}.visor3d-pieza-agregada-row{display:flex;align-items:center;gap:6px;padding:5px 8px;background:#f5f7fa;border:1px solid #e0e4ea;border-radius:5px;font-size:12px}.visor3d-pieza-agregada-desc{flex:1;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visor3d-pieza-agregada-qty{color:#1a5ca8;font-weight:700;font-size:13px;min-width:24px;text-align:center}.visor3d-pieza-agregada-row .btn-cerrar-mini{background:none;border:none;color:#999;font-size:16px;cursor:pointer;padding:0 2px;line-height:1}.visor3d-pieza-agregada-row .btn-cerrar-mini:hover{color:#e04040}.visor3d-pieza-agregada-row.seleccionada{border-color:#fa0;background:#fff8e8;box-shadow:0 0 0 1px #fa0}.visor3d-pieza-agregada-tipo{color:#888;font-size:10px;text-transform:uppercase;letter-spacing:.03em}
