/* Suite Empresarial R&R · Shared shell/components v0.3.27
   Componentes mínimos reutilizables por herramientas R&R.
   Sin valores cromáticos hardcodeados fuera de tokens. */

.rrbs-app,
.rrbs-app *{box-sizing:border-box;}
.rrbs-app{font-family:var(--rr-font-ui);color:var(--rr-ink);background:var(--rr-app);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
.rrbs-app a{color:inherit;text-decoration:none;}
.rrbs-app button,
.rrbs-app input,
.rrbs-app select,
.rrbs-app textarea{font:inherit;}

/* Layout utilities for tool frontends */
.rrbs-main{background:var(--rr-app);}
.rrbs-content{width:calc(100% - 56px);max-width:var(--rr-maxw);margin:0 auto;padding:var(--rr-s6) 0 var(--rr-s8);}
.rrbs-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--rr-s4);}
.rrbs-stack{display:grid;gap:var(--rr-s5);}

/* Tool hero */
.rrbs-hero{position:relative;background:var(--rr-surface);border:1px solid var(--rr-border-soft);border-radius:var(--rr-r-lg);box-shadow:var(--rr-sh-sm);overflow:hidden;}
.rrbs-hero--tool{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--rr-s5);align-items:center;padding:var(--rr-s6);border-top:3px solid var(--tool-accent);}
.rrbs-hero__eyebrow{margin:0 0 var(--rr-s2);font-size:.72rem;line-height:1.2;text-transform:uppercase;letter-spacing:.12em;font-weight:850;color:var(--rr-text-3);}
.rrbs-hero__title{margin:0;color:var(--rr-ink);font-size:clamp(1.8rem,3vw,2.65rem);line-height:1.02;letter-spacing:-.04em;font-weight:850;}
.rrbs-hero__subtitle{margin:var(--rr-s3) 0 0;color:var(--rr-text-2);font-size:1rem;line-height:1.55;max-width:760px;}
.rrbs-hero__meta{display:flex;flex-wrap:wrap;gap:var(--rr-s2);align-items:center;margin-top:var(--rr-s4);}
.rrbs-hero__aside{display:grid;gap:var(--rr-s3);justify-items:end;min-width:220px;}
.rrbs-tool-icon{width:52px;height:52px;border-radius:var(--rr-r-md);display:grid;place-items:center;color:var(--tool-accent);background:var(--rr-surface-2);border:1px solid var(--rr-border-soft);}
.rrbs-tool-icon svg{width:26px;height:26px;display:block;stroke:currentColor;}
.rrbs-tool-label{display:inline-flex;align-items:center;gap:var(--rr-s2);color:var(--tool-accent);font-weight:850;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;}

/* Tabs */
.rrbs-tabs{display:flex;gap:var(--rr-s2);align-items:center;overflow-x:auto;padding:var(--rr-s3);background:var(--rr-surface);border:1px solid var(--rr-border-soft);border-radius:var(--rr-r-md);box-shadow:var(--rr-sh-sm);scrollbar-width:thin;}
.rrbs-tabs__item{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 var(--rr-s4);border:1px solid var(--rr-border-soft);border-radius:var(--rr-r-sm);background:var(--rr-surface);color:var(--rr-text-2);font-weight:800;font-size:.86rem;white-space:nowrap;}
.rrbs-tabs__item:hover{border-color:var(--rr-border);color:var(--rr-ink);}
.rrbs-tabs__item.is-active,.rrbs-tabs__item[aria-current="page"]{background:var(--rr-surface-2);border-color:var(--rr-border);color:var(--rr-ink);box-shadow:inset 0 -2px 0 var(--tool-accent);}

/* Cards and KPIs */
.rrbs-card,.rrbs-kpi,.rrbs-state-card{background:var(--rr-surface);border:1px solid var(--rr-border-soft);border-radius:var(--rr-r-md);box-shadow:var(--rr-sh-sm);padding:var(--rr-s5);}
.rrbs-kpi{min-height:126px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;}
.rrbs-kpi__label{display:block;margin:0 0 var(--rr-s3);font-size:.72rem;line-height:1.2;text-transform:uppercase;letter-spacing:.09em;font-weight:850;color:var(--rr-text-3);}
.rrbs-kpi__value{display:block;margin:0 0 var(--rr-s2);font-size:2rem;line-height:1.05;font-weight:850;letter-spacing:-.025em;color:var(--rr-ink);}
.rrbs-kpi__note{display:block;margin:0;color:var(--rr-text-3);font-size:.86rem;line-height:1.35;}

/* State system */
.rrbs-state{display:inline-flex;align-items:center;gap:var(--rr-s2);min-height:26px;padding:0 var(--rr-s3);border:1px solid transparent;border-radius:var(--rr-r-pill);font-size:.78rem;font-weight:850;line-height:1;white-space:nowrap;}
.rrbs-state::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none;}
.rrbs-state--ok,.rrbs-state[data-state="ok"]{color:var(--state-ok);background:var(--state-ok-bg);border-color:color-mix(in srgb,var(--state-ok),#fff 72%);}
.rrbs-state--attention,.rrbs-state[data-state="attention"]{color:var(--state-attention);background:var(--state-attention-bg);border-color:color-mix(in srgb,var(--state-attention),#fff 72%);}
.rrbs-state--critical,.rrbs-state[data-state="critical"]{color:var(--state-critical);background:var(--state-critical-bg);border-color:color-mix(in srgb,var(--state-critical),#fff 72%);}
.rrbs-state--neutral,.rrbs-state[data-state="neutral"]{color:var(--state-neutral);background:var(--state-neutral-bg);border-color:color-mix(in srgb,var(--state-neutral),#fff 72%);}
.rrbs-state--info,.rrbs-state[data-state="info"]{color:var(--state-info);background:var(--state-info-bg);border-color:color-mix(in srgb,var(--state-info),#fff 72%);}

.rrbs-state-edge{border-left:4px solid var(--state-neutral);}
.rrbs-state-edge[data-state="ok"],.rrbs-state-edge--ok{border-left-color:var(--state-ok);}
.rrbs-state-edge[data-state="attention"],.rrbs-state-edge--attention{border-left-color:var(--state-attention);}
.rrbs-state-edge[data-state="critical"],.rrbs-state-edge--critical{border-left-color:var(--state-critical);}
.rrbs-state-edge[data-state="neutral"],.rrbs-state-edge--neutral{border-left-color:var(--state-neutral);}
.rrbs-state-edge[data-state="info"],.rrbs-state-edge--info{border-left-color:var(--state-info);}

.rrbs-tool-badge{display:inline-flex;align-items:center;gap:var(--rr-s2);min-height:26px;padding:0 var(--rr-s3);border:1px solid color-mix(in srgb,var(--tool-accent),#fff 78%);border-radius:var(--rr-r-pill);background:var(--rr-surface-2);color:var(--tool-accent);font-size:.76rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;}

/* Alerts/help */
.rrbs-alert,.rrbs-help{border:1px solid var(--rr-border-soft);border-radius:var(--rr-r-md);box-shadow:var(--rr-sh-sm);background:var(--rr-surface);padding:var(--rr-s5);}
.rrbs-alert[data-state="attention"]{background:var(--state-attention-bg);border-color:color-mix(in srgb,var(--state-attention),#fff 68%);color:var(--rr-ink);}
.rrbs-alert[data-state="critical"]{background:var(--state-critical-bg);border-color:color-mix(in srgb,var(--state-critical),#fff 68%);color:var(--rr-ink);}
.rrbs-alert[data-state="info"]{background:var(--state-info-bg);border-color:color-mix(in srgb,var(--state-info),#fff 68%);color:var(--rr-ink);}
.rrbs-help{background:#fffdf7;border-color:color-mix(in srgb,var(--state-attention),#fff 72%);}
.rrbs-section-title{display:flex;align-items:end;justify-content:space-between;gap:var(--rr-s4);margin:var(--rr-s6) 0 var(--rr-s4);}
.rrbs-section-title h2{margin:0;color:var(--rr-ink);font-size:1.35rem;line-height:1.15;letter-spacing:-.02em;font-weight:850;}
.rrbs-section-title p{margin:var(--rr-s2) 0 0;color:var(--rr-text-3);}
.rrbs-section-title::before{content:"";width:38px;height:2px;background:var(--tool-accent);position:absolute;opacity:0;}

/* Buttons */
.rrbs-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--rr-s2);min-height:40px;padding:0 var(--rr-s4);border:1px solid transparent;border-radius:var(--rr-r-sm);font-weight:850;font-size:.86rem;line-height:1;text-decoration:none;cursor:pointer;transition:background .18s,border-color .18s,box-shadow .18s,transform .18s,color .18s;}
.rrbs-btn:hover{text-decoration:none;transform:translateY(-1px);}
.rrbs-btn--primary{background:var(--rr-brand-600);border-color:var(--rr-brand-600);color:#fff;box-shadow:var(--rr-sh-sm);}
.rrbs-btn--primary:hover{background:var(--rr-brand-700);border-color:var(--rr-brand-700);color:#fff;}
.rrbs-btn--secondary{background:var(--rr-surface);border-color:var(--rr-border-soft);color:var(--rr-ink);}
.rrbs-btn--secondary:hover{border-color:var(--rr-border);}
.rrbs-btn--tertiary{background:transparent;border-color:transparent;color:var(--rr-text-2);padding-left:var(--rr-s2);padding-right:var(--rr-s2);}
.rrbs-btn--danger{background:var(--state-critical);border-color:var(--state-critical);color:#fff;}
.rrbs-btn[disabled],.rrbs-btn.is-disabled{opacity:.55;cursor:not-allowed;transform:none;}

/* Tables */
.rrbs-table-wrap{width:100%;overflow-x:auto;background:var(--rr-surface);border:1px solid var(--rr-border-soft);border-radius:var(--rr-r-md);box-shadow:var(--rr-sh-sm);}
.rrbs-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.86rem;min-width:760px;}
.rrbs-table th,.rrbs-table td{padding:var(--rr-s3) var(--rr-s4);text-align:left;vertical-align:top;border-bottom:1px solid var(--rr-border-soft);}
.rrbs-table th{font-size:.72rem;line-height:1.2;text-transform:uppercase;letter-spacing:.08em;font-weight:850;color:var(--rr-text-3);background:var(--rr-surface-2);}
.rrbs-table tr:last-child td{border-bottom:0;}
.rrbs-row[data-state]{position:relative;}
.rrbs-row[data-state] td:first-child{box-shadow:inset 4px 0 0 var(--state-neutral);}
.rrbs-row[data-state="ok"] td:first-child{box-shadow:inset 4px 0 0 var(--state-ok);}
.rrbs-row[data-state="attention"] td:first-child{box-shadow:inset 4px 0 0 var(--state-attention);}
.rrbs-row[data-state="critical"] td:first-child{box-shadow:inset 4px 0 0 var(--state-critical);}
.rrbs-row[data-state="info"] td:first-child{box-shadow:inset 4px 0 0 var(--state-info);}

/* Detail, empty and trace */
.rrbs-detail,.rrbs-empty,.rrbs-trace{background:var(--rr-surface);border:1px solid var(--rr-border-soft);border-radius:var(--rr-r-md);box-shadow:var(--rr-sh-sm);padding:var(--rr-s5);}
.rrbs-empty{text-align:left;color:var(--rr-text-2);}
.rrbs-empty h3,.rrbs-detail h3,.rrbs-trace h3{margin:0 0 var(--rr-s2);font-size:1.1rem;color:var(--rr-ink);line-height:1.2;}
.rrbs-empty p,.rrbs-detail p,.rrbs-trace p{margin:0;color:var(--rr-text-2);}
.rrbs-trace{font-size:.84rem;color:var(--rr-text-2);}
.rrbs-mono{font-family:var(--rr-font-mono);font-size:.82em;}

@media (max-width:1180px){
  .rrbs-content{width:calc(100% - 40px);}
  .rrbs-hero--tool{grid-template-columns:1fr;}
  .rrbs-hero__aside{justify-items:start;min-width:0;}
}
@media (max-width:860px){
  .rrbs-content{width:calc(100% - 28px);padding-top:var(--rr-s5);}
  .rrbs-grid{grid-template-columns:1fr;}
  .rrbs-hero--tool{padding:var(--rr-s5);}
  .rrbs-hero__title{font-size:1.85rem;}
  .rrbs-tabs{padding:var(--rr-s2);}
  .rrbs-tabs__item{min-height:36px;padding:0 var(--rr-s3);}
  .rrbs-table{min-width:680px;}
}
@media (prefers-reduced-motion:reduce){
  .rrbs-app *{transition:none;animation:none;scroll-behavior:auto;}
}


/* v0.4.42.1 — CTA contrast / selected state visibility */
.rrbs-btn{font-weight:900; letter-spacing:.01em; box-shadow:0 0 0 rgba(0,0,0,0);}
.rrbs-btn:hover{text-decoration:none;transform:translateY(-1px);box-shadow:var(--rr-sh-sm);}
.rrbs-btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(23,106,79,.18),0 0 0 1px rgba(23,106,79,.52);}
.rrbs-btn--primary{background:var(--rr-brand-600);border-color:var(--rr-brand-700);color:#fff;box-shadow:0 10px 18px rgba(23,106,79,.14);}
.rrbs-btn--primary:hover{background:var(--rr-brand-700);border-color:var(--rr-brand-700);color:#fff;box-shadow:0 12px 22px rgba(23,106,79,.18);}
.rrbs-btn--secondary{background:#f8fbf9;border-color:#c7d9d0;color:#17362d;box-shadow:0 1px 0 rgba(23,106,79,.03);}
.rrbs-btn--secondary:hover{background:#f1f7f4;border-color:#9ebcae;color:#102b23;}
.rrbs-btn--tertiary{background:#eef7f3;border-color:#cfe0d9;color:var(--rr-brand-700);padding-left:var(--rr-s3);padding-right:var(--rr-s3);font-weight:860;}
.rrbs-btn--tertiary:hover{background:#e6f3ee;border-color:#b7d1c6;color:#0f4f3c;}
.rrbs-btn--danger:hover{box-shadow:0 12px 22px rgba(170,63,47,.18);}
.rrbs-state{font-weight:900; letter-spacing:.01em; box-shadow:inset 0 1px 0 rgba(255,255,255,.35);}
.rrbs-state--info,.rrbs-state[data-state="info"]{border-color:color-mix(in srgb,var(--state-info),#fff 58%); background:color-mix(in srgb,var(--state-info-bg),#fff 12%);}
