/* BIRIC · capa visual moderna (Tesla · Apple · Uber): negro puro, tipografía grande y limpia, tarjetas redondeadas, botones en píldora y mucho aire.
   Va después de panel.css y solo cambia la piel: variables y componentes, sin tocar la estructura. */

:root{
  --ink:#000; --panel:#0b0b0d; --panel2:#151518; --panel3:#1d1d21;
  --line:rgba(255,255,255,.075); --line2:rgba(255,255,255,.15);
  --stone:#8e8e95; --teal:#1c4a5f; --teal-light:#6ac4e2; --white:#f5f5f7;
  --ok:#34c77b; --warn:#ffb340; --bad:#ff6b5e;
  --font:'Inter',-apple-system,BlinkMacSystemFont,'SF Pro Display','Segoe UI',system-ui,sans-serif;
  --mono:'Inter',-apple-system,BlinkMacSystemFont,'SF Pro Display','Segoe UI',system-ui,sans-serif;
  --r:22px; --ease:cubic-bezier(.2,.7,.2,1);
}
html{scroll-behavior:smooth}
body{background:#000 radial-gradient(1100px 520px at 50% -160px, rgba(106,196,226,.11), transparent 70%) no-repeat;background-attachment:fixed;
  font-size:15px;letter-spacing:-.005em;font-feature-settings:'cv11','ss01'}
::selection{background:rgba(106,196,226,.35)}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:99px;border:2px solid #000}
h1,h2,h3,h4{letter-spacing:-.025em}
.h3{font-size:22px;font-weight:600}.h4{font-size:16px;font-weight:600}
.hint{font-size:13px;color:var(--stone)}
.eyebrow{font-family:var(--font);font-size:12px;font-weight:600;letter-spacing:.14em;color:var(--teal-light)}
.wrap{max-width:1240px;padding:30px 28px 120px}
.num{font-family:var(--font);font-feature-settings:'tnum';font-size:13.5px}

/* ── acceso (no se ve en la maqueta, sí en el CRM real) ── */
.acceso{background:radial-gradient(900px 600px at 50% -10%, rgba(106,196,226,.18), transparent 62%), #000}
.acceso__caja{background:rgba(16,16,18,.8);backdrop-filter:blur(30px);border:1px solid var(--line2);border-radius:30px;padding:40px 34px;box-shadow:0 40px 120px rgba(0,0,0,.6)}
.acceso h1{font-size:32px;font-weight:700;letter-spacing:-.04em}

/* ── barra superior ── */
.top{background:rgba(0,0,0,.66);backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);border-bottom:1px solid var(--line)}
.top__in{padding:14px 28px}
.top__logo{height:24px}
.top__tag{font-size:12px;letter-spacing:.12em}
.top__nombre{color:var(--white);font-size:14px;font-weight:500}
.top__acc{padding:0 28px 10px;font-family:var(--font);font-size:12.5px;letter-spacing:0;color:var(--stone)}
.top__acc b{color:var(--white);font-weight:600}

/* ── pestañas: píldoras tipo segmentado ── */
.tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:4px;padding:20px 28px 4px}
.tabs::-webkit-scrollbar{display:none}
.tab{border:0;border-radius:999px;padding:11px 18px;font:500 14.5px var(--font);letter-spacing:-.005em;text-transform:none;color:var(--stone);white-space:nowrap;transition:background .25s var(--ease),color .25s,transform .15s}
.tab:hover{color:#fff;background:rgba(255,255,255,.08)}
.tab:active{transform:scale(.96)}
.tab.is-on{background:#fff;color:#000;font-weight:600}
.tab__n{background:rgba(255,255,255,.14);color:#fff;font-family:var(--font);font-size:11.5px;font-weight:600;padding:1px 8px}
.tab.is-on .tab__n{background:#000;color:#fff}

/* ── formularios y botones ── */
.field label{font-size:12.5px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--stone)}
.input{background:var(--panel2);border:1px solid transparent;border-radius:14px;padding:13px 15px;font-size:15px;transition:border-color .2s,box-shadow .2s,background .2s}
.input:hover{background:var(--panel3)}
.input:focus{outline:0;border-color:rgba(106,196,226,.75);box-shadow:0 0 0 4px rgba(106,196,226,.16);background:var(--panel2)}
.btn{border-radius:999px;padding:13px 24px;font-size:14.5px;font-weight:600;letter-spacing:-.005em;text-transform:none;border:1px solid var(--line2);transition:transform .15s,background .2s,border-color .2s,color .2s}
.btn:active{transform:scale(.97)}
.btn-solid{background:#fff;color:#000;border-color:#fff}
.btn-solid:hover{background:#e6e6ea;border-color:#e6e6ea}
.btn-ghost:hover{background:rgba(255,255,255,.08);border-color:var(--line2)}
.btn-sm{padding:9px 17px;font-size:13.5px}
.mini{border-radius:999px;border:0;background:var(--panel2);color:var(--stone);font:500 13px var(--font);padding:8px 15px;transition:background .2s,color .2s}
.mini:hover{background:var(--panel3);color:#fff}
.mini.is-on{background:#fff;color:#000;font-weight:600}
.mini--del:hover{background:rgba(255,107,94,.16);color:var(--bad)}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:24px}
.sep{background:var(--line)}
.co-in{background:var(--panel2);border:1px solid transparent;border-radius:10px;padding:9px 11px}
.co-in:focus{outline:0;border-color:rgba(106,196,226,.7)}

/* ── cifras grandes ── */
.kpis{gap:14px;background:none;border:0}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:26px 26px 24px;transition:transform .3s var(--ease),border-color .3s,background .3s}
.kpi:hover{transform:translateY(-3px);border-color:var(--line2);background:var(--panel2)}
.kpi__v{font-size:46px;font-weight:600;letter-spacing:-.05em;line-height:1.02}
.kpi__l{font-size:14px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--stone);margin-top:12px}
.kpi__s{font-size:13px}
.kpi--alerta .kpi__v{color:var(--warn)}
.embudo{gap:12px}
.emb-i{font-size:14px}
.emb-i__b{height:7px;border-radius:99px;background:var(--panel3)}
.emb-i__b i{border-radius:99px;background:linear-gradient(90deg,#3d8fae,#6ac4e2)}
.emb-i__n{font-family:var(--font);font-feature-settings:'tnum'}

/* ── listas, tablas y tarjetas de obra ── */
.lista{gap:8px;background:none;border:0}
.lista__i{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:17px 20px;transition:transform .25s var(--ease),background .2s,border-color .2s}
.lista__i:hover{background:var(--panel2);border-color:var(--line2);transform:translateX(3px)}
.lista__vacio{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:22px}
.tabla{border-radius:22px;border:1px solid var(--line);background:var(--panel)}
.tabla th{background:transparent;font-family:var(--font);font-size:12.5px;font-weight:500;letter-spacing:0;text-transform:none;padding:15px 18px;border-bottom:1px solid var(--line)}
.tabla td{padding:16px 18px;border-top:1px solid var(--line);color:#d7d7dc}
.tabla tbody tr:first-child td{border-top:0}
.tabla tbody tr{transition:background .15s}
.tabla tbody tr:hover td{background:var(--panel2)}
.obras{gap:16px;grid-template-columns:repeat(auto-fill,minmax(330px,1fr))}
.obra{background:var(--panel);border:1px solid var(--line);border-radius:26px;padding:24px;transition:transform .3s var(--ease),background .25s,border-color .25s,box-shadow .3s}
.obra:hover{transform:translateY(-4px);background:var(--panel2);border-color:var(--line2);box-shadow:0 24px 60px rgba(0,0,0,.5)}
.obra__t{font-size:19px;font-weight:600;letter-spacing:-.025em}
.obra__m{font-family:var(--font);font-size:13px;text-transform:none;letter-spacing:0;margin-top:5px}
.barra{height:6px;border-radius:99px;background:var(--panel3);margin-top:18px}
.barra i{border-radius:99px;background:linear-gradient(90deg,#3d8fae,#6ac4e2)}
.obra__p{font-size:13px;margin-top:10px}
.tag{border-radius:999px;padding:4px 12px;font-family:var(--font);font-size:12px;font-weight:600;letter-spacing:0;text-transform:none}
.feed{gap:8px;background:none;border:0}
.feed__i{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:15px 18px}
.feed__h{font-family:var(--font);font-size:12px;letter-spacing:0;text-transform:none}
.feed__t{font-size:14px;color:#e4e4e8}

/* ── fichas laterales y avisos ── */
.capa__fondo{background:rgba(0,0,0,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.ficha{background:rgba(14,14,17,.94);backdrop-filter:blur(40px);border-left:1px solid var(--line2);border-radius:30px 0 0 30px;box-shadow:-40px 0 120px rgba(0,0,0,.55);animation:ficha-entra .45s var(--ease)}
.ficha__head{padding:24px 26px;border-bottom:1px solid var(--line)}
.ficha__head h2{font-size:22px;font-weight:600;letter-spacing:-.03em}
.ficha__x{width:36px;height:36px;border-radius:50%;background:var(--panel3);font-size:22px;display:grid;place-items:center;transition:background .2s}
.ficha__x:hover{background:rgba(255,255,255,.2)}
.ficha__body{padding:24px 26px 70px}
.msg{border-radius:14px}
.toast{bottom:30px;border-radius:999px;background:rgba(32,32,36,.88);backdrop-filter:blur(24px);border:1px solid var(--line2);padding:14px 24px;font-size:14.5px;font-weight:500;box-shadow:0 20px 60px rgba(0,0,0,.5);animation:subir .4s var(--ease)}
:focus-visible{outline:2px solid var(--teal-light);outline-offset:3px;border-radius:8px}

/* ── asistente IA y mensajes ── */
.ia-aviso{border-radius:22px;border:1px solid rgba(106,196,226,.25);background:linear-gradient(120deg,rgba(106,196,226,.16),rgba(150,120,255,.10));padding:18px 22px}
.ia-aviso__tag{border-radius:999px;font-family:var(--font);letter-spacing:.04em}
.ia-acc,.ia-pro,.ia-chat{border-radius:20px}
.ia-chat .burbuja,.burbuja{border-radius:18px}
.ia-chips .mini{border-radius:999px}
.ia-score i{border-radius:99px}
.msg-hilo{border-radius:24px;overflow:hidden;background:var(--panel);border:1px solid var(--line)}

/* ── entrada suave de cada pantalla ── */
@keyframes subir{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes ficha-entra{from{transform:translateX(60px);opacity:0}to{transform:none;opacity:1}}
.vista:not([hidden]) .wrap>*{animation:subir .6s var(--ease) both}
.vista:not([hidden]) .wrap>*:nth-child(2){animation-delay:.06s}
.vista:not([hidden]) .wrap>*:nth-child(3){animation-delay:.12s}
.vista:not([hidden]) .wrap>*:nth-child(4){animation-delay:.18s}
.vista:not([hidden]) .wrap>*:nth-child(n+5){animation-delay:.24s}

/* ── celular: barra de pestañas flotante, como una app ── */
@media (max-width:760px){
  .wrap{padding:22px 16px 130px}
  .top__in{padding:12px 16px}.top__acc{padding:0 16px 8px}
  .tabs{position:fixed;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:45;padding:6px;gap:2px;background:rgba(22,22,26,.82);
    backdrop-filter:saturate(180%) blur(28px);-webkit-backdrop-filter:saturate(180%) blur(28px);border:1px solid var(--line2);border-radius:999px;box-shadow:0 20px 60px rgba(0,0,0,.6);max-width:none}
  .tab{padding:10px 14px;font-size:13.5px}
  .kpi__v{font-size:36px}
  .toast{bottom:96px}
  .ficha{width:100%;height:92%;margin-top:auto;border-radius:30px 30px 0 0;border-left:0;border-top:1px solid var(--line2);animation:ficha-sube .45s var(--ease)}
  .capa{align-items:flex-end}
  .obras{grid-template-columns:1fr}
}
@keyframes ficha-sube{from{transform:translateY(60px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important}}


/* ── documento de cotización (vista previa y PDF), como el machote: banda negra, tabla y firmas ── */
.papel{background:#fff;color:#111;border-radius:18px;padding:0;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.55);max-width:860px}
.cot-doc{font-family:'Inter',Arial,sans-serif;font-size:13px;color:#111;background:#fff;padding:0 0 34px}
.cot-doc *{box-sizing:border-box}
.cot-barra{background:#000;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:22px 34px}
.cot-barra img{height:26px;display:block}
.cot-barra span{font-weight:700;letter-spacing:.34em;font-size:15px}
.cot-meta{display:grid;grid-template-columns:1.1fr 1.4fr .9fr;gap:20px;padding:26px 34px 6px}
.cot-meta small{display:block;color:#777;font-size:11px;letter-spacing:.04em;margin-bottom:3px}
.cot-meta b{font-size:14px;font-weight:600}
.cot-doc .der{text-align:right}.cot-doc .c{text-align:center}
.cot-intro{padding:14px 34px 6px;color:#444;line-height:1.55}
.cot-tabla{width:calc(100% - 68px);margin:14px 34px 0;border-collapse:collapse}
.cot-tabla th{background:#000;color:#fff;font-size:11px;font-weight:600;letter-spacing:.06em;padding:10px 10px;text-align:left}
.cot-tabla th.c{text-align:center}.cot-tabla th.der{text-align:right}
.cot-tabla td{padding:11px 10px;border-bottom:1px solid #e6e6ea;font-variant-numeric:tabular-nums;vertical-align:top}
.cot-total{display:flex;justify-content:flex-end;align-items:baseline;gap:22px;padding:18px 34px 0}
.cot-total span{font-size:12px;font-weight:700;letter-spacing:.14em;color:#555}
.cot-total b{font-size:26px;font-weight:700;letter-spacing:-.03em}
.cot-letras{padding:2px 34px 0;text-align:right;color:#555;font-size:12px;letter-spacing:.04em}
.cot-notas{padding:20px 34px 0;color:#444;line-height:1.55}
.cot-notas ul{margin:6px 0 0 18px}.cot-notas li{margin:2px 0}
.cot-firmas{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:54px 34px 0}
.cot-firmas div{text-align:center}
.cot-firmas i{display:block;border-top:1px solid #111;margin-bottom:8px}
.cot-firmas b{display:block;font-size:13px}.cot-firmas span{color:#777;font-size:12px}
@media print{
  @page{margin:12mm}
  #impresion .cot-doc{font-size:11pt}
  #impresion .cot-barra,#impresion .cot-tabla th{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  #impresion .cot-tabla th,#impresion .cot-tabla td{border:0;border-bottom:1px solid #ddd}
  #impresion .cot-tabla th{border-bottom:0}
}
@media (max-width:620px){.cot-meta{grid-template-columns:1fr}.cot-meta .der{text-align:left}.cot-barra{padding:18px 20px}.cot-intro,.cot-notas,.cot-total,.cot-letras{padding-left:20px;padding-right:20px}.cot-tabla{width:calc(100% - 40px);margin:12px 20px 0;font-size:12px}.cot-firmas{gap:20px;padding:40px 20px 0}.cot-meta{padding:20px 20px 4px}}


/* ── control de obra por partida (ficha de obra → Control) ── */
.ficha{transition:width .35s var(--ease)}
.ficha--ancha{width:min(1180px,100%)}
.ficha__tabs{display:flex;gap:8px;padding:14px 26px 0;flex-wrap:wrap}
.ctrl{gap:20px}
.ctrl[hidden]{display:none}
.ctrl-card{background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:22px 22px 20px;min-width:0}
.ctrl-card>h3{font-size:17px;font-weight:600;letter-spacing:-.02em}
.ctrl-card>.hint{margin-top:4px;margin-bottom:14px}
.ctrl-sin-pad{padding:22px 0 8px}
.ctrl-sin-pad>h3,.ctrl-sin-pad>.hint{padding:0 22px}
.ctrl-dos{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.ctrl-dos>*{min-width:0}
@media (max-width:900px){.ctrl-dos{grid-template-columns:1fr}}
.ctrl .tabla{border-radius:16px;background:transparent}
.ctrl .tabla table{min-width:640px}
.ctrl .tabla tbody tr{cursor:default}
.ctrl .tabla td.num,.ctrl .tabla th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.ctrl .tabla td{padding:13px 14px}
.ctrl .tabla th{padding:13px 14px}
.ctrl-sin-pad .tabla{border-radius:0;border-left:0;border-right:0}
.ctrl-neg{color:var(--bad)}
.ctrl-pos{color:var(--ok)}
.ctrl-barra{display:flex;align-items:center;gap:10px;min-width:130px}
.ctrl-barra .pista{flex:1;height:8px;background:var(--panel3);border-radius:99px;overflow:hidden}
.ctrl-barra .pista i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#3d8fae,#6ac4e2)}
.ctrl-barra .pista i.rojo{background:var(--bad)}.ctrl-barra .pista i.verde{background:var(--ok)}
.ctrl-barra b{font-size:12.5px;width:40px;text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.ctrl-total td{border-top:2px solid var(--line2)!important;background:var(--panel2);font-weight:600}
.ctrl-acc{display:flex;gap:6px;justify-content:flex-end;flex-wrap:nowrap}
.ctrl-vacio{text-align:center;padding:30px 12px}
.ctrl-vacio h3{font-size:18px;font-weight:600}
.ctrl-vacio .filtros{justify-content:center;margin-top:16px}
.ctrl-aviso{border:1px solid rgba(255,179,64,.35);background:rgba(255,179,64,.08);color:#ffd9a0;border-radius:14px;padding:12px 16px;font-size:13.5px}
.ctrl-nota{font-size:12.5px;color:var(--stone);margin-top:12px;line-height:1.5}
.ctrl-form{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-top:14px}
.ctrl-form .field{flex:1 1 120px}
.ctrl-form .field.ancho{flex:2 1 200px}

/* calendario tipo Gantt */
.gt-caja{overflow-x:auto;padding:4px 22px 18px}
.gt{position:relative;display:grid;min-width:780px;row-gap:6px;background-image:linear-gradient(to right,var(--line) 1px,transparent 1px);background-size:calc((100% - 180px) / var(--n)) 100%;background-position:180px 0;background-repeat:repeat-x}
.gt>*{position:relative;z-index:1}
.gt-lab{font-size:12.5px;padding-right:10px;align-self:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--panel);color:#dcdce1}
.gt-rel{color:var(--stone);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.gt-mes{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#b4b4bb;padding-left:4px;border-left:1px solid var(--line2)}
.gt-sem{font-size:10.5px;color:var(--stone);padding-left:3px}
.gt-cel{align-self:center;padding:3px 0}
.gt-barra{height:18px;border-radius:7px;background:rgba(106,196,226,.22);overflow:hidden;position:relative}
.gt-barra i{display:block;height:100%;background:var(--teal-light);border-radius:7px 0 0 7px;opacity:.95}
.gt-barra.ok{background:rgba(52,199,123,.24)}.gt-barra.ok i{background:var(--ok);width:100%;border-radius:7px}
.gt-barra.mal{background:rgba(255,107,94,.24)}.gt-barra.mal i{background:var(--bad)}
.gt-barra.sm{background:rgba(255,255,255,.12)}
.gt-hoy{position:absolute!important;top:0;bottom:0;left:calc(180px + (100% - 180px) * var(--hoy));width:0;border-left:2px dashed var(--warn);z-index:3!important;pointer-events:none}
.gt-hoy span{position:absolute;top:-2px;left:4px;font-size:10.5px;font-weight:700;color:var(--warn);background:var(--panel);padding:0 4px;border-radius:4px}
.gt-ley{display:flex;gap:16px;flex-wrap:wrap;padding:0 22px 14px;font-size:12px;color:var(--stone)}
.gt-ley i{display:inline-block;width:14px;height:8px;border-radius:3px;margin-right:6px;vertical-align:middle}

/* curva de gasto planeado contra real */
.curva-svg{width:100%;height:auto;display:block}
.curva-svg .guia{stroke:var(--line);stroke-width:1}
.curva-svg .curva-plan{fill:none;stroke:#8e8e95;stroke-width:2;stroke-dasharray:6 5}
.curva-svg .curva-real{fill:none;stroke:var(--teal-light);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}
.curva-svg .curva-hoy{stroke:var(--warn);stroke-width:1.5;stroke-dasharray:4 4}
.curva-svg .eje-t{fill:#8e8e95;font-size:10.5px;font-family:'Inter',sans-serif}
.ley-plan,.ley-real{display:inline-block;width:18px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}
.ley-plan{background:#8e8e95}.ley-real{background:var(--teal-light)}
.curva-ley{display:flex;gap:18px;font-size:12px;color:var(--stone);margin-top:8px}
.ctrl-curva-pad{padding:0 22px 22px}

/* fondeo y quién pagó */
.ctrl-lineas{display:grid;gap:0}
.linea-p{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding:11px 0;border-top:1px solid var(--line);font-size:14px}
.linea-p:first-child{border-top:0}
.linea-p span{color:var(--stone)}
.linea-p b{font-variant-numeric:tabular-nums;font-weight:600;text-align:right}
.linea-p.total{border-top:1px solid var(--line2);font-size:16px;padding-top:14px}
.linea-p.total span{color:var(--white);font-weight:600}
.linea-p.total b{font-size:20px;color:var(--teal-light)}
.ctrl-sems{display:flex;align-items:flex-end;gap:10px;height:96px;margin-top:16px;padding:0 4px}
.ctrl-sems div{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end;min-width:0}
.ctrl-sems .par{display:flex;gap:3px;align-items:flex-end;width:100%;justify-content:center;flex:1}
.ctrl-sems .par i{display:block;width:42%;max-width:18px;border-radius:5px 5px 2px 2px;min-height:2px}
.ctrl-sems .p{background:#6a6a72}.ctrl-sems .r{background:var(--teal-light)}
.ctrl-sems small{font-size:10.5px;color:var(--stone)}
.ctrl-comp{padding-top:14px;font-size:13px;color:var(--stone);line-height:1.6}
.ctrl-comp details{margin-top:8px}
.ctrl-comp summary{cursor:pointer;color:var(--teal-light)}
.ctrl-comp li{margin:4px 0 0 18px}
.ctrl-comp .mini{padding:3px 10px;font-size:12px;margin-left:6px}
.ctrl-pend{color:var(--warn);font-weight:600}
@media (max-width:760px){
  .ctrl-card{padding:18px 16px 16px;border-radius:20px}
  .gt-caja{padding:4px 14px 16px}
  .gt-ley{padding:0 14px 12px}
  .ctrl-sin-pad>h3,.ctrl-sin-pad>.hint{padding:0 16px}
  .ctrl-curva-pad{padding:0 14px 18px}
  .ficha__tabs{padding:12px 16px 0}
  .ficha--ancha{width:100%}
}

/* alertas de control en Resumen e Asistente IA */
.ctrl-alerta{align-items:flex-start;cursor:default}
.ctrl-alerta:hover{transform:none}
.ctrl-alerta__t{flex:1 1 220px;min-width:0}
.ctrl-alerta__r{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* ── subpágina de obra (#obra/<id>): encabezado grande, pestañas en píldora y paneles a todo el ancho ── */
.vista-obra .wrap{padding-top:22px}
.obp-barra{display:flex;align-items:center;gap:12px}
.obp-volver{border:0;background:var(--panel2);color:var(--white);font:600 14px var(--font);padding:10px 18px;border-radius:999px;cursor:pointer;transition:background .2s,transform .15s}
.obp-volver:hover{background:var(--panel3)}
.obp-volver:active{transform:scale(.96)}
.obp-cargando{color:var(--stone);padding:40px 0;font-size:15px}
.obp-hero{margin-top:18px;border-radius:32px;border:1px solid var(--line);padding:34px 34px 30px;
  background:radial-gradient(700px 320px at 85% -40%,rgba(106,196,226,.16),transparent 70%),linear-gradient(180deg,#0e0e11,#09090b)}
.obp-hero__main{display:flex;gap:30px;align-items:center;justify-content:space-between}
.obp-hero__txt{min-width:0;flex:1}
.obp-hero__chips{display:flex;gap:8px;flex-wrap:wrap}
.obp-chip{display:inline-flex;align-items:center;border-radius:999px;padding:6px 13px;font:600 12.5px var(--font);background:var(--panel3);color:#d7d7dc}
.obp-chip--etapa{background:rgba(106,196,226,.16);color:var(--teal-light)}
.obp-titulo{font-size:44px;font-weight:700;letter-spacing:-.045em;line-height:1.04;margin:14px 0 0;overflow-wrap:anywhere}
.obp-meta{margin:10px 0 0;color:var(--stone);font-size:15px;display:flex;flex-wrap:wrap;gap:4px 8px}
.obp-meta i{font-style:normal;opacity:.5}
.obp-equipo{display:flex;align-items:center;gap:12px;margin-top:20px;flex-wrap:wrap}
.obp-equipo b{color:var(--white);font-weight:600}
.obp-avs{display:flex}
.obp-av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font:700 12.5px var(--font);letter-spacing:.02em;color:#000;
  background:linear-gradient(135deg,#a9e3f4,#6ac4e2);border:2px solid #0b0b0d;margin-left:-8px}
.obp-av:first-child{margin-left:0}
.obp-av:nth-child(2){background:linear-gradient(135deg,#f5f5f7,#b9b9c0)}
.obp-av:nth-child(3){background:linear-gradient(135deg,#ffd18a,#ffb340)}
.obp-av:nth-child(n+4){background:linear-gradient(135deg,#9be3bd,#34c77b)}
.obp-anillo{position:relative;width:150px;height:150px;flex:none}
.obp-anillo svg{width:100%;height:100%;transform:rotate(-90deg)}
.obp-anillo circle{fill:none;stroke-width:10}
.obp-anillo__pista{stroke:var(--panel3)}
.obp-anillo__v{stroke:var(--teal-light);stroke-linecap:round;animation:obp-anillo 1.1s var(--ease) both}
@keyframes obp-anillo{from{stroke-dashoffset:326.7}}
.obp-anillo__t{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.obp-anillo__t b{font-size:38px;font-weight:700;letter-spacing:-.05em;line-height:1}
.obp-anillo__t b i{font-style:normal;font-size:18px;color:var(--stone);margin-left:1px}
.obp-anillo__t span{font-size:12px;color:var(--stone);margin-top:4px}
.obp-cifras{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:28px}
.obp-cifras--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.obp-cifras--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.obp-cifra{background:rgba(255,255,255,.035);border:1px solid var(--line);border-radius:20px;padding:18px 18px 16px;min-width:0}
.obp-cifra b{display:block;font-size:26px;font-weight:600;letter-spacing:-.04em;line-height:1.1;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.obp-cifra span{display:block;font-size:13px;color:var(--stone);margin-top:6px}
.obp-cifra.is-ok b{color:var(--ok)}.obp-cifra.is-bad b{color:var(--bad)}.obp-cifra.is-warn b{color:var(--warn)}
.obp-pane>.obp-cifras{margin-top:0}

.obp-tabs{position:sticky;top:64px;z-index:20;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin-top:22px;padding:6px;
  background:rgba(14,14,17,.8);backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);border:1px solid var(--line);border-radius:999px;width:max-content;max-width:100%}
.obp-tabs::-webkit-scrollbar{display:none}
.obp-tab{flex:none;border:0;background:transparent;color:var(--stone);font:500 14px var(--font);padding:10px 17px;border-radius:999px;white-space:nowrap;cursor:pointer;transition:background .25s var(--ease),color .2s,transform .15s}
.obp-tab:hover{color:#fff;background:rgba(255,255,255,.08)}
.obp-tab:active{transform:scale(.96)}
.obp-tab.is-on{background:#fff;color:#000;font-weight:600}
.obp-tab[hidden]{display:none}
.obp-paneles{margin-top:22px}
.obp-pane:not([hidden]){animation:subir .45s var(--ease) both}
.obp-ctrl{display:flex;flex-direction:column;gap:20px}

.obp-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.obp-grid>*{min-width:0}
.obp-card{background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:22px;min-width:0}
.obp-card__h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.obp-card__h h3{font-size:17px;font-weight:600;letter-spacing:-.02em;display:flex;align-items:center;gap:8px}
.obp-card .lista__i,.obp-card .feed__i,.obp-card .lista__vacio{background:var(--panel2)}
.obp-etapas{list-style:none;margin:0;padding:6px 0 0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));position:relative}
.obp-etapas li{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;font-size:13px;color:var(--stone)}
.obp-etapas li::before{content:"";position:absolute;top:8px;left:-50%;width:100%;height:3px;background:var(--panel3);z-index:0}
.obp-etapas li:first-child::before{display:none}
.obp-etapas li.is-hecha::before,.obp-etapas li.is-actual::before{background:linear-gradient(90deg,#3d8fae,#6ac4e2)}
.obp-etapas i{position:relative;z-index:1;width:19px;height:19px;border-radius:50%;background:var(--panel3);border:3px solid var(--panel)}
.obp-etapas li.is-hecha i{background:var(--teal-light)}
.obp-etapas li.is-hecha{color:#d7d7dc}
.obp-etapas li.is-actual i{background:#fff;box-shadow:0 0 0 5px rgba(106,196,226,.3)}
.obp-etapas li.is-actual{color:#fff;font-weight:600}
.obp-fechas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.obp-fechas span,.obp-dobles span{display:block;font-size:12.5px;color:var(--stone)}
.obp-fechas b{display:block;font-size:17px;font-weight:600;margin-top:4px;letter-spacing:-.02em}
.obp-dobles{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}
.obp-dobles b{font-size:15px;font-weight:600}
.obp-dobles .barra{margin-top:8px}
.obp-alerta{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line);font-size:14px}
.obp-alerta:first-of-type{border-top:0;padding-top:0}
.obp-alerta .tag{flex:none}
.obp-alerta__t{flex:1;min-width:0;color:#d7d7dc}
.obp-alerta__t b{color:#fff}
.obp-ia{margin-top:16px;border-color:rgba(106,196,226,.25);background:linear-gradient(120deg,rgba(106,196,226,.12),rgba(150,120,255,.07)),var(--panel)}
.obp-ia__tag{font:700 11px var(--font);letter-spacing:.06em;background:#fff;color:#000;border-radius:999px;padding:3px 9px}
.obp-ia__l{margin:0;padding-left:18px;display:grid;gap:6px;font-size:14.5px;color:#e4e4e8;line-height:1.5}
.obp-ia p{font-size:14.5px;color:#e4e4e8}
.obp-acc{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.obp-filtro{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap}
.obp-filtro .field{min-width:220px}
.obp-total{display:flex;align-items:baseline;gap:12px}
.obp-total span{color:var(--stone);font-size:13px}
.obp-total b{font-size:26px;font-weight:600;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.obp-datos .ficha__body{padding:0;overflow:visible}

@media (max-width:1000px){
  .obp-cifras{grid-template-columns:repeat(3,minmax(0,1fr))}
  .obp-grid{grid-template-columns:1fr}
}
@media (max-width:760px){
  .obp-hero{padding:22px 18px 18px;border-radius:26px;margin-top:14px}
  .obp-hero__main{flex-direction:column-reverse;align-items:flex-start;gap:16px}
  .obp-anillo{width:108px;height:108px}
  .obp-anillo__t b{font-size:28px}
  .obp-titulo{font-size:30px}
  .obp-meta{font-size:14px}
  .obp-cifras,.obp-cifras--4,.obp-cifras--3{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px}
  .obp-cifra{padding:14px 14px 12px;border-radius:16px}
  .obp-cifra b{font-size:20px}
  .obp-cifra span{font-size:12px}
  .obp-tabs{top:58px;margin-top:16px;width:auto}
  .obp-tab{padding:9px 14px;font-size:13.5px}
  .obp-card{padding:18px 16px;border-radius:20px}
  .obp-cifra:last-child:nth-child(odd){grid-column:1/-1}
  .obp-etapas{grid-template-columns:repeat(7,82px);overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
  .obp-etapas::-webkit-scrollbar{display:none}
  .obp-etapas li{font-size:12px;gap:8px}
  .obp-fechas{grid-template-columns:1fr 1fr}
  .obp-alerta{flex-wrap:wrap}
  .obp-filtro .field{min-width:0;flex:1}
}
