@charset "UTF-8";
  :root{
    --bg:#050505;
    --bg-elev:#0b0b0b;
    --bg-card:#111111;
    --bg-card-2:#171717;
    --bg-input:#101010;
    --bg-cabecera:rgba(9,12,20,.98);   /* azul casi negro: separa encabezado de materiales */
    --line:rgba(255,255,255,.10);
    --line-strong:rgba(255,255,255,.18);
    --text:#f5f5f5;
    --muted:#a3a3a3;
    --accent:#d4d4d4;
    --danger:#b3b3b3;
    --success:#d4d4d4;
    --shadow:0 18px 40px rgba(0,0,0,.35);
    /* Halo tenue que separa cada contenedor del fondo. */
    --resplandor:0 0 0 1px rgba(255,255,255,.045), 0 0 26px rgba(96,132,220,.10);
  }
  *{box-sizing:border-box;}
  html, body{width:100%; margin:0;}
  body{
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background:linear-gradient(180deg, #050505 0%, #090909 100%);
    color:var(--text);
  }
  .hoja{width:100%; background:transparent; padding:18px 8px 30px; min-height:100vh;}
  h1{display:none;}
  .tabs-cotizaciones{
    position:sticky; top:0; z-index:50; isolation:isolate;
    width:100%; margin:0 auto 14px; display:flex; gap:8px; overflow-x:auto;
    padding:10px 1% 14px; scrollbar-width:thin;
    background:linear-gradient(180deg, rgba(5,5,5,.98) 0%, rgba(5,5,5,.88) 72%, rgba(5,5,5,0) 100%);
    -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  }
  .proyecto-activo, .tab-cot{
    -webkit-user-select:none; user-select:none; -webkit-touch-callout:none; touch-action:manipulation;
  }
  /* Mientras se sostiene para renombrar. */
  .sosteniendo{background:rgba(60,60,60,.9); border-radius:10px; transition:background .9s ease;}
  .tab-cot{
    display:flex; align-items:center; gap:9px; border:1px solid var(--line);
    background:rgba(20,20,20,.92); color:#d4d4d4; border-radius:999px;
    padding:8px 12px 8px 14px; white-space:nowrap; max-width:280px; cursor:pointer; font-size:12px;
  }
  .tab-cot.activa{background:rgba(34,34,34,.96); color:#fff; border-color:var(--line-strong); box-shadow:none;}
  .barra-movil{display:none;}
  .lista-proyectos{display:flex; flex-direction:column; gap:8px;}
  .proyecto-item{display:flex; align-items:center; gap:12px; width:100%; text-align:left; font-family:inherit; cursor:pointer;
    background:rgba(22,22,22,.95); border:1px solid var(--line); border-radius:14px; padding:14px 14px; color:var(--text);}
  .proyecto-item:hover{border-color:var(--line-strong);}
  .proyecto-item.activo{background:rgba(34,34,34,.96); border-color:var(--line-strong);}
  .proyecto-item-nombre{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; font-weight:600;}
  .proyecto-item-meta{flex:0 0 auto; font-size:12px; color:var(--muted);}
  .acciones-proyectos{margin-top:16px;}
  .fila.con-enlace .celda.desc{text-decoration:underline; text-decoration-color:var(--line-strong); text-underline-offset:3px;}
  .tab-cot .tab-nombre{overflow:hidden; text-overflow:ellipsis; max-width:190px;}
  .tab-cot .tab-x{
    appearance:none;
    border:none;
    background:transparent;
    color:inherit;
    width:12px;
    height:12px;
    padding:0;
    margin-left:2px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    cursor:pointer;
    opacity:.72;
    line-height:1;
  }
  .tab-cot .tab-x:hover{opacity:1;}
  .tab-cot .tab-x .icon-svg{width:14px;height:14px;}
  .tab-cot .tab-dup{
    appearance:none;
    border:none;
    background:transparent;
    color:inherit;
    width:20px;
    height:20px;
    padding:0;
    margin-left:2px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    cursor:pointer;
    opacity:.72;
    line-height:1;
  }
  .tab-cot .tab-dup:hover{opacity:1;}
  .tab-cot .tab-dup .icon-svg{display:block; width:16px; height:16px;}
  .tab-cot .tab-fijo{
    font-size:10px;
    color:#bdbdbd;
    border:1px solid var(--line);
    border-radius:999px;
    padding:2px 6px;
    margin-left:2px;
  }
  .bloque-tabla{
    width:98%; margin:0 auto 20px; background:linear-gradient(180deg, rgba(20,20,20,.96), rgba(15,15,15,.98));
    border:1px solid var(--line); border-radius:18px; padding:12px; box-shadow:var(--resplandor), var(--shadow); backdrop-filter: blur(14px);
  }
  .tabla-titulo{
    font-weight:700; font-size:14.5px; color:#f0f0f0; cursor:pointer;
    background:var(--bg-cabecera); border:1px solid var(--line); border-radius:12px;
    padding:10px 12px; margin-bottom:6px;
  }
  .fila-cabecera, .fila{display:grid; grid-template-columns: 1fr minmax(28px,46px) minmax(42px,64px) minmax(42px,64px); overflow:hidden;}
  .fila-cabecera{
    background:var(--bg-cabecera); color:#fff;
    border:1px solid var(--line); border-radius:12px; margin-bottom:6px; cursor:pointer;
  }
  .fila{
    align-items:start; background:rgba(18,18,18,.98); border:1px solid var(--line); border-radius:12px; margin-bottom:6px; cursor:pointer;
  }
  .fila:hover{border-color:var(--line-strong);}
  .fila .celda, .fila-cabecera .celda{padding:8px 6px; font-size:12.5px; min-width:0;}
  .fila-cabecera .celda{padding-top:9px; padding-bottom:9px; font-size:11px; font-weight:700;}
  .fila .celda.desc{white-space:normal; word-break:break-word; line-height:1.35;}
  .fila .celda.num{text-align:right; border-left:1px solid var(--line); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  .fila .celda.total{font-weight:700; color:#f0f0f0;}
  .sin-materiales{font-size:12.5px; color:var(--muted); padding:8px 6px;}
  .subtotal-tabla{
    display:flex; justify-content:space-between; align-items:center; background:rgba(20,20,20,.92);
    border:1px dashed var(--line-strong); border-radius:12px; padding:9px 12px; font-size:13px; font-weight:700; color:#d4d4d4; margin-top:4px;
  }
  .workspace-layout{
    width:100%;
    display:flex;
    flex-direction:column;
    gap:0;
  }
  .panel-resumen{
    width:98%;
    margin:0 auto 0;
  }
  .resumen-card{
    width:100%;
    background:linear-gradient(180deg, rgba(20,20,20,.96), rgba(15,15,15,.98));
    border:1px solid var(--line);
    border-radius:18px;
    padding:14px;
    box-shadow:var(--resplandor), var(--shadow);
    backdrop-filter: blur(14px);
  }
  .resumen-card h2{
    margin:0 0 12px;
    font-size:15px;
    color:#f5f5f5;
  }
  .resumen-items{
    display:flex;
    flex-direction:column;
    gap:8px;
    margin-bottom:12px;
  }
  .resumen-item{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:10px 12px;
    border:1px solid var(--line);
    border-radius:12px;
    background:rgba(18,18,18,.96);
    font-size:12px;
    color:#d8d8d8;
  }
  .resumen-item strong{
    font-size:13px;
    color:#f5f5f5;
    font-weight:700;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .resumen-item span:last-child{
    flex:0 0 auto;
    white-space:nowrap;
    font-weight:700;
  }
  .barra{display:flex; gap:8px; flex-wrap:wrap; margin:10px 0; align-items:center; padding:0 1%;}
  .btn{background:rgba(28,28,28,.96); color:#fff; border:1px solid var(--line); padding:9px 14px; border-radius:10px; font-size:13px; cursor:pointer;}
  .btn:hover{border-color:var(--line-strong);}
  .btn.secundario{background:rgba(22,22,22,.92);}
  .btn.peligro{background:rgba(45,45,45,.92);}
  .btn.chico{padding:5px 11px; font-size:12px;}
  .total-general{
    width:98%; margin:6px auto 0; display:flex; justify-content:space-between; align-items:center;
    padding:16px; background:linear-gradient(180deg, rgba(18,18,18,.98), rgba(10,10,10,.98)); color:#fff; border-radius:14px; font-weight:700; font-size:17px; border:1px solid var(--line);
  }
  .fila-iconos{display:none;}
  .icono-btn{
    width:44px; height:44px; border-radius:14px; border:1px solid var(--line); display:flex; align-items:center; justify-content:center;
    background:rgba(22,22,22,.96); box-shadow:0 10px 18px rgba(0,0,0,.18); color:#e5e5e5; cursor:pointer;
  }
  .icono-btn:hover{border-color:var(--line-strong);}
  .icon-svg{width:20px; height:20px; display:block; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; pointer-events:none;}
  .icono-btn.biblioteca,.icono-btn.nueva,.icono-btn.guardar-cot,.icono-btn.guardar,.icono-btn.compartir,.icono-btn.exportar,.icono-btn.importar{background:rgba(22,22,22,.96);}
  .icono-btn.biblioteca{display:none;}
  .icono-btn.nueva{display:none;}
  .acciones-cotizacion{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:14px auto 4px;padding:0 2%;}
  .acciones-cotizacion .btn{min-width:150px;}
  .estado-sync{text-align:center;font-size:11px;color:var(--muted);min-height:16px;margin-top:6px;padding:0 10px;}
  .estado-sync.ok,.estado-sync.offline,.estado-sync.error{color:#bdbdbd;}
  .modal-overlay{position:fixed; inset:0; background:rgba(0,0,0,.80); display:none; align-items:center; justify-content:center; z-index:60; padding:20px; backdrop-filter: blur(10px);}
  .modal-overlay.abierto{display:flex;}
  .modal-box{background:linear-gradient(180deg, rgba(20,20,20,.98), rgba(10,10,10,.98)); padding:22px; border-radius:18px; width:100%; max-width:340px; box-shadow:var(--shadow); max-height:90vh; overflow-y:auto; border:1px solid var(--line);}
  .modal-box label{display:block; font-size:12px; color:#d4d4d4; margin-bottom:6px; font-weight:600;}
  .modal-box input[type=text], .modal-box select{width:100%; padding:10px; border:1px solid var(--line); background:var(--bg-input); color:var(--text); border-radius:10px; font-size:14px; font-family:inherit;}
  .modal-botones{display:flex; justify-content:flex-end; gap:8px; margin-top:16px; flex-wrap:wrap;}
  .segmentado{display:flex; gap:6px; margin-bottom:12px;}
  .segmentado button{flex:1; padding:8px 4px; font-size:11px; border:1px solid var(--line); background:rgba(24,24,24,.86); border-radius:10px; cursor:pointer; color:var(--text);}
  .segmentado button.activo{background:rgba(36,36,36,.96); color:#fff; border-color:var(--line-strong);}
  .modal-full{position:fixed; inset:0; background:linear-gradient(180deg, rgba(18,18,18,.99), rgba(10,10,10,.99)); z-index:70; display:none; flex-direction:column;}
  .modal-full.abierto{display:flex;}
  .modal-full-header{display:flex; align-items:center; justify-content:space-between; padding:16px; border-bottom:1px solid var(--line); flex-shrink:0;}
  .modal-full-header h2{margin:0; font-size:16px; color:#f5f5f5;}
  .cerrar-x{background:none; border:none; font-size:0; cursor:pointer; color:#a3a3a3; line-height:1; padding:4px; width:28px; height:28px; position:relative;}
  .cerrar-x::before{content:"×"; font-size:24px; line-height:1; color:#a3a3a3; position:absolute; inset:0; display:flex; align-items:center; justify-content:center;}
  .modal-full-header .header-acciones{display:flex; align-items:center; gap:4px;}
  .borrar-x{background:none; border:none; cursor:pointer; color:#a3a3a3; padding:4px; width:28px; height:28px; display:flex; align-items:center; justify-content:center; border-radius:8px;}
  .borrar-x:hover{color:#f5f5f5; background:rgba(255,255,255,.06);}
  .borrar-x .icon-svg{width:18px; height:18px;}
  .modal-full-body{flex:1; overflow-y:auto; padding:18px 20px 30px;}
  .modal-full-body label{display:block; font-size:13px; font-weight:600; color:#d4d4d4; margin:18px 0 6px;}
  .modal-full-body > label:first-child{margin-top:0;}
  .item-columnas{display:grid; grid-template-columns:1fr; gap:0;}
  .item-col{min-width:0;}
  /* Apiladas, solo el primer bloque va pegado arriba. */
  .item-col:first-child > label:first-child{margin-top:0;}
  .modal-full-body input[type=text], .modal-full-body input[type=number], .modal-full-body textarea{width:100%; padding:12px; border:1px solid var(--line); border-radius:12px; font-size:15px; font-family:inherit; background:var(--bg-input); color:var(--text);}
  .modal-full-body textarea{min-height:80px; resize:vertical;}
  .fila-doble{display:flex; gap:12px;}
  .fila-doble > div{flex:1;}
  .modal-total-preview{margin-top:20px; padding:14px; background:rgba(20,20,20,.92); border:1px solid var(--line); border-radius:12px; display:flex; justify-content:space-between; font-weight:700; color:#e5e5e5; font-size:16px;}
  .refs-alta{display:flex; gap:8px; align-items:center;}
  .refs-alta input[type=url]{flex:1; min-width:0; padding:12px; border:1px solid var(--line); border-radius:12px; font-size:15px; font-family:inherit; background:var(--bg-input); color:var(--text);}
  .refs-alta .btn{flex:0 0 auto;}
  .refs-lista{display:flex; flex-direction:column; gap:6px; margin-top:10px;}
  .refs-vacio{font-size:12.5px; color:var(--muted); padding:2px;}
  .ref-item{display:flex; align-items:center; gap:8px; background:rgba(18,18,18,.96); border:1px solid var(--line); border-radius:12px; padding:9px 12px;}
  .ref-item a{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; color:#d8d8d8; text-decoration:none;}
  .ref-item a:hover{color:#fff; text-decoration:underline;}
  .ref-quitar{flex:0 0 auto; appearance:none; border:none; background:transparent; color:var(--muted); font-size:18px; line-height:1; cursor:pointer; padding:0 2px;}
  .ref-quitar:hover{color:#f5f5f5;}
  .modal-full-footer{display:flex; gap:8px; padding:14px 16px; border-top:1px solid var(--line); flex-shrink:0;}
  .modal-full-footer .btn{flex:1;}
  .modal-biblioteca{position:fixed;inset:0;background:linear-gradient(180deg, rgba(18,18,18,.99), rgba(10,10,10,.99));z-index:90;display:none;flex-direction:column;}
  .modal-biblioteca.abierto{display:flex;}
  .biblioteca-header{display:flex;align-items:center;gap:12px;padding:14px 16px;background:rgba(22,22,22,.95);border-bottom:1px solid var(--line);}
  .biblioteca-header h2{margin:0;color:#f5f5f5;font-size:18px;flex:1;}
  .biblioteca-body{flex:1;overflow:auto;padding:16px;}
  .lista-guardadas{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;}
  .cot-guardada{background:rgba(22,22,22,.95);border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:var(--shadow);}
  .cot-guardada h3{margin:0 0 7px;color:#f5f5f5;font-size:15px;word-break:break-word;}
  .cot-meta{font-size:11px;color:var(--muted);margin-bottom:12px;}
  .cot-acciones{display:flex;gap:8px;}
  .cot-acciones .btn{flex:1;}
  .biblioteca-header .btn.chico{flex:0 0 auto;}
  .exportar-lista{display:flex; flex-direction:column; gap:8px; margin:4px 0 14px; max-height:44vh; overflow-y:auto; scrollbar-width:thin;}
  .exportar-item{display:flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:rgba(18,18,18,.96); cursor:pointer;}
  .exportar-item:hover{border-color:var(--line-strong);}
  .exportar-item input{flex:0 0 auto; accent-color:#d4d4d4; width:16px; height:16px;}
  .exportar-nombre{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; color:#f5f5f5; font-weight:600;}
  .exportar-meta{flex:0 0 auto; font-size:12px; color:var(--muted);}
  .biblioteca-vacia{text-align:center;color:var(--muted);padding:60px 15px;font-size:14px;}
  .modal-nombre{position:fixed;inset:0;background:rgba(0,0,0,.80);z-index:95;display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter: blur(10px);}
  .modal-nombre.abierto{display:flex;}
  .modal-nombre .modal-box{max-width:390px;}
  .modal-plantillas{position:fixed;inset:0;background:rgba(0,0,0,.80);z-index:95;display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter: blur(10px);}
  .modal-plantillas.abierto{display:flex;}
  .modal-plantillas .modal-box{max-width:520px;width:100%;}
  .modal-plantillas.obligatorio .cerrar-x{display:none;}
  .plantillas-header{display:flex;align-items:center;gap:10px;}
  .plantillas-header h2{margin:0;flex:1;color:#f5f5f5;font-size:17px;}
  .plantillas-aviso{margin:6px 0 16px;color:var(--muted);font-size:13px;}
  .plantillas-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .plantilla-card{display:flex;flex-direction:column;gap:3px;background:rgba(22,22,22,.95);border:1px solid var(--line);border-radius:16px;padding:12px;cursor:pointer;font-family:inherit;text-align:left;color:var(--text);}
  .plantilla-card:hover{border-color:var(--line-strong);background:rgba(30,30,30,.95);}
  .plantilla-vista{display:flex;flex-direction:column;justify-content:center;gap:6px;height:84px;padding:9px;margin-bottom:9px;border:1px solid var(--line);border-radius:10px;background:var(--bg-input);}
  .plantilla-vista.vacia{align-items:center;border-style:dashed;}
  .plantilla-vacia-texto{color:var(--muted);font-size:22px;line-height:1;}
  .plantilla-icono{width:24px;height:24px;color:var(--muted);}
  .plantilla-card.importar .plantilla-vista{border-style:dashed;}
  .mini-tabla{position:relative;display:block;height:15px;border:1px solid var(--line);border-radius:5px;background:rgba(255,255,255,.05);}
  .mini-tabla::before{content:'';position:absolute;inset:0 0 auto 0;height:5px;border-radius:4px 4px 0 0;background:rgba(255,255,255,.18);}
  .plantilla-nombre{font-size:13px;font-weight:600;color:#f5f5f5;}
  .plantilla-desc{font-size:12px;color:var(--muted);}
  @media (max-width:430px){.plantillas-grid{grid-template-columns:1fr;} .plantilla-vista{height:66px;}}
  .modal-acciones-guardar{position:fixed;inset:0;background:rgba(0,0,0,.80);z-index:94;display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter: blur(10px);}
  .modal-acciones-guardar.abierto{display:flex;}
  .modal-acciones-guardar .modal-box{max-width:390px;width:100%;}
  .modal-acciones-guardar .acciones-lista{display:flex;flex-direction:column;gap:10px;margin-top:6px;}
  .modal-acciones-guardar .acciones-lista .btn{
    width:100%;
    justify-content:flex-start;
    text-align:left;
    padding:13px 14px;
    font-size:14px;
  }
  .modal-compartir{position:fixed;inset:0;background:rgba(0,0,0,.82);z-index:96;display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter: blur(10px);}
  .modal-compartir.abierto{display:flex;}
  .modal-compartir .modal-box{max-width:430px;width:100%;}
  .compartir-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px;}
  .compartir-header h2{margin:0;font-size:18px;color:#f5f5f5;}
  .compartir-aviso{margin:0 0 14px;color:#cfcfcf;font-size:13px;line-height:1.45;}
  .compartir-vacio{display:none;padding:14px;border:1px dashed var(--line-strong);border-radius:14px;background:rgba(20,20,20,.92);color:#e5e5e5;font-size:13px;line-height:1.5;margin-bottom:14px;}
  .compartir-opciones{display:flex;flex-direction:column;gap:12px;}
  .compartir-opcion{padding:14px;border:1px solid var(--line);border-radius:16px;background:rgba(20,20,20,.90);}
  .compartir-opcion-titulo{font-size:12px;color:#a8a8a8;text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;}
  .compartir-opcion .btn{width:100%;justify-content:center;}
  .compartir-opcion .icon-svg{width:18px;height:18px;}
  .compartir-link-acciones{display:flex;gap:8px;}
  .compartir-link-acciones .btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;}
  .compartir-link-acciones .btn.secundario{background:rgba(24,24,24,.92);}
  .compartir-link-acciones .btn .icon-svg{flex:0 0 auto;}
  .modal-dialogo{position:fixed;inset:0;background:rgba(0,0,0,.82);z-index:98;display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter: blur(10px);}
  .modal-dialogo.abierto{display:flex;}
  .modal-dialogo .modal-box{max-width:420px;width:100%;}
  .dialogo-mensaje{margin:0;color:#d7d7d7;font-size:13px;line-height:1.5;white-space:pre-wrap;}
  .dialogo-input{margin-top:12px;display:none;}
  .dialogo-input.visible{display:block;}
  .dialogo-input input{width:100%;margin-top:8px;}
  .dialogo-botones{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;flex-wrap:wrap;}
  .modal-detalle-vista{position:fixed;inset:0;background:rgba(0,0,0,.82);z-index:97;display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter: blur(10px);}
  .modal-detalle-vista.abierto{display:flex;}
  .modal-detalle-vista .modal-box{max-width:440px;width:100%;}
  .detalle-vista-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:8px;}
  .detalle-vista-item{
    padding:10px 12px;
    border:1px solid var(--line);
    border-radius:12px;
    background:rgba(18,18,18,.96);
  }
  .detalle-vista-item label{
    display:block;
    margin:0 0 4px;
    font-size:11px;
    color:#a8a8a8;
    text-transform:uppercase;
    letter-spacing:.05em;
  }
  .detalle-vista-item div{
    font-size:13px;
    color:#f5f5f5;
    line-height:1.45;
    word-break:break-word;
  }
  .detalle-vista-notas{
    margin-top:10px;
    padding:12px;
    border:1px solid var(--line);
    border-radius:12px;
    background:rgba(18,18,18,.96);
  }
  .detalle-vista-notas label{
    display:block;
    margin:0 0 4px;
    font-size:11px;
    color:#a8a8a8;
    text-transform:uppercase;
    letter-spacing:.05em;
  }
  .detalle-vista-notas div{
    font-size:13px;
    color:#f5f5f5;
    line-height:1.5;
    white-space:pre-wrap;
    word-break:break-word;
  }
  .modal-guardado{display:none;text-align:center;color:#52705c;font-size:11px;margin-top:12px;}
  .modal-guardado.visible{display:block;}
  .estado-guardado-inline{font-size:10px;color:var(--muted);white-space:nowrap;display:none;}
  .guardado-loader{
    display:none;
    align-items:center;
    gap:8px;
    position:fixed;
    left:50%;
    bottom:22px;
    transform:translateX(-50%);
    color:#d7e8dc;
    font-size:12px;
    white-space:nowrap;
    padding:10px 14px;
    border-radius:999px;
    border:1px solid rgba(159,197,170,.38);
    background:rgba(8,8,8,.94);
    box-shadow:0 10px 28px rgba(0,0,0,.45);
    z-index:120;
    pointer-events:none;
  }
  .guardado-loader.activo{display:flex;}
  .guardado-loader .loader-punto{width:7px;height:7px;border:1px solid #52705c;border-top-color:#9fc5aa;border-radius:50%;animation:giro-guardado .8s linear infinite;}
  @keyframes giro-guardado{to{transform:rotate(360deg);}}
  @media (min-width:760px) and (orientation: landscape){
    .workspace-layout{
      width:98%;
      margin:0 auto;
      display:grid;
      grid-template-columns:minmax(0,1.55fr) minmax(320px,.88fr);
      gap:16px;
      align-items:start;
    }
    #contenedorTablas{min-width:0;}
    /* El resumen se queda pegado justo debajo de la barra de tabs, nunca por detrás. */
    .panel-resumen{
      width:auto;
      margin:0;
      position:sticky;
      top:calc(var(--alto-barra-tabs, 62px) + 12px);
      align-self:start;
      max-height:calc(100vh - var(--alto-barra-tabs, 62px) - 24px);
    }
    .panel-resumen .resumen-card{
      display:flex;
      flex-direction:column;
      max-height:inherit;
    }
    .panel-resumen .resumen-items{
      overflow-y:auto;
      min-height:0;
      scrollbar-width:thin;
    }
    /* Modal de material en dos columnas: datos | notas, enlaces y total. */
    .item-columnas{grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:26px;}
    .item-col.item-col{display:flex; flex-direction:column;}
    .item-col > label:first-child{margin-top:0;}
    .item-col .refs-lista{flex:1; min-height:0; overflow-y:auto; scrollbar-width:thin;}
    .item-col .modal-total-preview{margin-top:auto;}
    .bloque-tabla,
    .total-general,
    .barra{width:100%; margin-left:0; margin-right:0;}
    .total-general{margin-top:0;}
  }
  @media print{
    body{background:#fff;}
    .hoja{padding:0;}
    .no-imprimir, .modal-overlay, .modal-full{display:none !important;}
    h1{cursor:default;}
  }
  body.modo-vista .no-imprimir{display:none !important;}
  body.modo-vista .tabla-titulo,
  body.modo-vista .fila,
  body.modo-vista .fila-cabecera{cursor:default;}
  .tabs-cotizaciones{align-items:center;}
  .tabs-left{display:flex; gap:8px; flex:1 1 auto; min-width:0; overflow-x:auto; padding-bottom:2px; scrollbar-width:thin;}
  .tabs-right{display:flex; gap:8px; flex:0 0 auto; align-items:center;}
  .tab-cot .tab-dup .icon-svg{display:block; width:16px; height:16px;}
  .tab-cot .tab-trash .icon-svg{display:block; width:18px; height:18px;}
  .tab-cot.tab-nueva{min-width:42px; justify-content:center; padding:8px 10px;}
  .tab-cot.tab-nueva .tab-nombre{max-width:none;}
  .tab-cot.arrastrando{opacity:.45;}
  .tab-cot.soltando{outline:1px dashed var(--line-strong); outline-offset:2px;}
  @media (max-width:720px){
    .tabs-cotizaciones{width:100%; margin:0 auto 12px; overflow:visible; padding:10px 3% 12px;}
    .tabs-left, .tabs-right{display:none;}
    .barra-movil{display:flex; align-items:center; gap:10px; width:100%; min-width:0;}
    .barra-movil .proyecto-activo{
      flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
      font-size:14px; font-weight:600; color:#f5f5f5; cursor:pointer; padding:6px 2px;
    }
    .barra-movil .acciones-movil{flex:0 0 auto; display:flex; gap:6px;}
    .barra-movil .tab-cot{padding:9px; border-radius:12px;}
  }
