@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: normal;
  font-display: swap;
  src: url(/kit/admin-fonts/instrument-sans-400.ttf) format('truetype');
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: normal;
  font-display: swap;
  src: url(/kit/admin-fonts/instrument-sans-500.ttf) format('truetype');
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: normal;
  font-display: swap;
  src: url(/kit/admin-fonts/instrument-sans-600.ttf) format('truetype');
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: normal;
  font-display: swap;
  src: url(/kit/admin-fonts/instrument-sans-700.ttf) format('truetype');
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/kit/admin-fonts/jetbrains-mono-400.ttf) format('truetype');
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/kit/admin-fonts/jetbrains-mono-500.ttf) format('truetype');
}

 :root{--container-edge:#C2410C;--bg-adm:#F4F3EF;--bg-ops:#F1F3F6;--panel-adm:#FFFFFF;--panel-ops:#FFFFFF;--surface:#FFFFFF;--topbar:#FFFFFF;--hover:#ECEAE3;--sub-on:#ECEAE3;--line:#E2DFD6;--line-2:#E7E4DC;--line-3:#D6D2C7;--line-ops:#D5DBE5;--line-4:#C9C5BA;--line-5:#A9A59A;--cool-line:#D5DBE5;--cool-line-2:#D5DBE5;--cool-bg:#F2F4F8;--ink:#0E1116;--ink-strong:#0E1116;--ink-2:#3B3F47;--ink-3:#3B3F47;--muted:#4A4F59;--muted-2:#5F636B;--muted-3:#5F636B;--dim:#5F636B;--accent:#C2410C;--accent-bg:#FBE3D3;--accent-bg-2:#FBE3D3;--accent-line:#F3C9AC;--bad:#9A3412;--bad-line:#F3C9AC;--bad-bg:#FBE3D3;--bad-2:#9A3412;--ok:#1D6B43;--ok-bg:#DDEFE3;--ok-line:#B5DCC2;--ok-bg-2:#EEF7F1;--warn:#7A4B00;--warn-bg:#F6E7C8;--warn-bg-2:#F6E7C8;--warn-line:#E9D3A0;--warn-bg-3:#FBF3E0;--warn-bg-4:#FBF3E0;--warn-bg-5:#FBF3E0;--warn-bg-6:#FBF3E0;--warn-bg-7:#FBF3E0;--warn-2:#7A4B00;--warn-3:#7A4B00;--chip:rgba(14,17,22,0.05);--rib:rgba(14,17,22,0.025);--rib-top:rgba(14,17,22,0.03);color-scheme:light}
:root[data-theme=dark]{--bg-adm:#0B0D11;--bg-ops:#0A1220;--panel-adm:#12151B;--panel-ops:#121A28;--surface:#0E1116;--topbar:#0F1B2D;--hover:#181C24;--sub-on:#151922;--line:#1E222B;--line-2:#242934;--line-3:#2A2F3A;--line-ops:#2C3A52;--line-4:#3A3F4A;--line-5:#4A505C;--cool-line:#22304A;--cool-line-2:#26304A;--cool-bg:#141A2A;--ink:#E8EAEF;--ink-strong:#FFFFFF;--ink-2:#C9CDD6;--ink-3:#B4B9C4;--muted:#A7AFBD;--muted-2:#8A909C;--muted-3:#8C95A6;--dim:#8A909C;--accent:#F4A26B;--accent-bg:#2A1C12;--accent-bg-2:#2A1A12;--accent-line:#4A2A1A;--bad:#F08A5D;--bad-line:#5A2424;--bad-bg:#2A1414;--bad-2:#C9A0A0;--ok:#4CC38A;--ok-bg:#13291F;--ok-line:#1F4A33;--ok-bg-2:#0F1A14;--warn:#F2B33D;--warn-bg:#3A2E14;--warn-bg-2:#2B2410;--warn-line:#4A3A14;--warn-bg-3:#2A2414;--warn-bg-4:#241D0E;--warn-bg-5:#1D1910;--warn-bg-6:#15130E;--warn-bg-7:#1A1406;--warn-2:#C9B98F;--warn-3:#F2D79A;--chip:rgba(255,255,255,0.07);--rib:rgba(255,255,255,0.025);--rib-top:rgba(255,255,255,0.045);color-scheme:dark}
/* ==========================================================================
   Operaciones. Only what is specific to this workspace lives here: the data
   bar, clocks, pipeline columns, order cards, entry forms and the demo banner.
   Shell, topbar, workspace switcher, rail, page header, stat tiles, panels,
   tables, tabs, drawers, dialogs, toasts, badges and empty states come from
   /kit/app-shell.css; charts come from the shared chart kit.
   ========================================================================== */
html{scroll-behavior:smooth;min-width:320px}
.mono,kbd,.n,.numeric{font-family:'JetBrains Mono',ui-monospace,monospace}
.mut,.hint{color:var(--muted)}
.hint{font-size:var(--fs-13)}
.logo-dark,:root[data-theme=dark] .logo-light{display:none}
:root[data-theme=dark] .logo-dark{display:block}

/* Anchors that look like buttons (the shell styles <button> only) */

/* Topbar */
header[data-ops-header]{position:sticky;top:0;z-index:30}
.ops-ws .ops-ws-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}
.ops-ws>summary .w-chip{flex:none}
.ops-cta{flex:none;white-space:nowrap}
.ui-app .ops-cta[hidden]{display:none}
.ui-switcher-mark{color:var(--ink-strong)}
.ops-search{flex:1 1 220px;max-width:480px;min-width:120px;height:var(--control);display:flex;gap:var(--sp-2);align-items:center;border:1px solid var(--line-3);border-radius:var(--radius-sm);padding:0 var(--sp-3);background:var(--panel-adm);color:var(--muted)}
.ops-search input[type=search]{width:100%;min-width:0;border:0;background:transparent;padding:0;min-height:var(--control);outline:0;border-radius:0;box-shadow:none}
.ops-search:focus-within{border-color:var(--accent)}
.ops-clocks{display:flex;gap:var(--sp-2);margin-left:auto}
.ui-topbar-actions{margin-left:0}
.ops-clock{display:flex;align-items:center;gap:var(--sp-2);padding:6px 10px;border-radius:var(--radius-sm);background:var(--chip);white-space:nowrap}
.ops-clock b{font:500 var(--fs-13) 'JetBrains Mono',monospace}
.ops-clock i{font-size:11px;font-style:normal;color:var(--muted)}
.ops-clocks+.ui-topbar-actions{margin-left:0}

/* Layout and rail (sticky below the topbar, 248px, collapsible) */
.ui-app .ops-layout.app{flex:1;min-height:0}
.operations-rail{position:sticky;top:65px;height:calc(100dvh - 65px);overflow:auto}
.ui-rail-head #ops-close{display:none}
#nav{flex:1;display:flex;flex-direction:column;gap:2px}
#nav .nav-item .n{margin-left:auto;font-size:11px;line-height:16px;padding:2px 8px;min-width:0;border-radius:999px;background:var(--chip);color:var(--ink-2)}
#nav .nav-item.active .n{background:var(--panel-adm)}
#nav .nav-item .lock{margin-left:auto;display:inline-flex;color:var(--muted)}
#nav .nav-item .lock svg{width:16px;height:16px}
.nav-label.nav-group{font-family:'Instrument Sans',system-ui,sans-serif}
.ui-identity .avatar{font-size:var(--fs-14)}
.ui-footer{margin-top:auto}
.admin-nav-collapsed #nav .n{display:none}
.admin-nav-collapsed .ui-rail-head #ops-collapse svg{transform:rotate(180deg)}

/* Main */
.pane{display:flex;flex-direction:column;gap:var(--sp-5);min-width:0}
.ops-data-bar{display:flex;align-items:center;gap:var(--sp-2) var(--sp-3);flex-wrap:wrap}
.ui-app .ops-data-bar #datos{border:0;background:none;text-align:left;padding:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:var(--control);min-width:var(--control);flex:1 1 280px}
.ops-data-bar #datos:hover:not(:disabled){background:none}
.ops-data-bar #datos b{font-size:var(--fs-13)}
.ops-data-bar #datos i{font:var(--fs-12) 'JetBrains Mono',monospace;color:var(--muted);font-style:normal}
.ops-data-bar #datos.viejo i{color:var(--warn)}
#horario-cn{font-size:var(--fs-12);color:var(--muted)}
.ops-status{font:var(--fs-12) 'JetBrains Mono',monospace;color:var(--muted);padding:var(--sp-2) var(--sp-3);border:1px solid var(--line-2);border-radius:var(--radius-sm);overflow-wrap:anywhere}
.ops-status.mal{background:var(--warn-bg);color:var(--warn)}
.ops-read-details{flex:0 1 auto;max-width:100%;min-width:0}
.ops-read-details>summary{min-height:var(--control);display:flex;align-items:center;gap:7px;padding:0 var(--sp-3);border:1px solid var(--line-2);border-radius:var(--radius-sm);font-size:var(--fs-12);font-weight:500;color:var(--muted);cursor:pointer;list-style:none}
.ops-read-details>summary::-webkit-details-marker{display:none}
.ops-read-details>summary::after{content:'⌄';margin-left:auto}
.ops-read-details[open]>summary::after{content:'⌃'}
.ops-read-details[open]{flex-basis:100%}
.ops-read-details[open] .ops-status{margin-top:6px}
.ops-read-details.read-error>summary{color:var(--warn);border-color:var(--warn-line)}
.ops-read-details>summary svg{flex:none;width:18px;height:18px}

/* Page header: the shared .ui-page-head, with the icon as a tile and wrapping actions */
.view-heading.ui-page-head{flex-wrap:wrap;align-items:center;gap:var(--sp-3)}
.view-heading .heading-copy{flex:1 1 320px;min-width:0}
.view-heading h1{display:flex;align-items:center;gap:var(--sp-3)}
.view-heading h1 svg{flex:none;width:40px;height:40px;padding:10px;border-radius:var(--radius-md);background:var(--accent-bg);color:var(--accent)}
.view-heading p{max-width:760px}
.view-heading>.actions{flex:none}
.actions{display:flex;gap:var(--sp-2);flex-wrap:wrap;align-items:center}
.ui-app .ui-page-head.view-heading>div{display:block}
.ui-app .ui-page-head.view-heading>.actions{display:flex}

/* Forms */
.form-grid,.filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4)}
.filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.msg{font-size:var(--fs-12);overflow-wrap:anywhere}
.msg.ok{color:var(--ok)}
.msg.mal{color:var(--bad)}
.hide{display:none}
.chips{display:flex;gap:var(--sp-2);flex-wrap:wrap}
.chips.period-bar{gap:2px}
.ui-app .w-toggle .n{font:500 11px 'JetBrains Mono',monospace}
.ui-app .view-toggle{flex-wrap:nowrap}
.ui-app .view-toggle .w-toggle{padding:0;width:var(--control)}
.entry-tabs button{border:0;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:transparent;color:var(--muted);box-shadow:inset 0 -2px 0 transparent}
.entry-tabs button[aria-selected=true]{color:var(--ink-strong);box-shadow:inset 0 -2px 0 var(--accent);font-weight:600}
.ui-app .entry-tabs button:hover:not(:disabled){background:var(--hover);border-color:transparent}
.ui-app input[type=search]{padding-left:var(--sp-3)}

/* Panels and lists inside them */
.ops-panel-body{display:flex;flex-direction:column;min-width:0}
.panel-body{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}
.ops-row{padding:var(--sp-3) 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:var(--sp-3);min-width:0}
.ops-panel-body>.ops-row:first-child{border-top:0;padding-top:0}
.ops-panel-body>.ops-row:last-child{padding-bottom:0}
.ops-row-body{flex:1;min-width:0}
.ops-row h3{font-size:var(--fs-14);line-height:20px;overflow-wrap:anywhere}
.ops-row p{color:var(--muted);font-size:var(--fs-13);margin-top:2px}
.ops-panel-body>.ui-state{border:0;padding:var(--sp-4) 0}
.ops-panel-body>.notice{margin-top:var(--sp-3)}
.two-column{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);gap:var(--sp-4);align-items:start}
.stack{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}
.notice{padding:var(--sp-3) var(--sp-4);border:1px solid var(--warn-line);background:var(--warn-bg);border-radius:var(--radius-md);color:var(--warn)}
.notice.bad{border-color:var(--bad-line);background:var(--bad-bg);color:var(--bad)}
.notice.ok{border-color:var(--ok-line);background:var(--ok-bg);color:var(--ok)}
.locked-panel{border-style:dashed}
.locked-panel h3{display:flex;align-items:center;gap:var(--sp-2)}
.locked-panel .panel-body{justify-items:start}
.ops-details>summary{cursor:pointer;font-weight:600;min-height:var(--control);display:flex;align-items:center;list-style:none}
.ops-details>summary::-webkit-details-marker{display:none}
.ops-details>summary::after{content:'⌄';margin-left:auto}
.ops-details[open]>summary::after{content:'⌃'}
.filters{display:flex;flex-direction:column;gap:var(--sp-3)}
.filter-row{display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap}
.filter-row>input{flex:1;min-width:160px}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4)}
.order-card{gap:var(--sp-3)}
.order-card .card-summary{display:flex;gap:var(--sp-4);align-items:center}
.order-card h3{overflow-wrap:anywhere}
.product-photo{width:64px;height:64px;object-fit:contain;background:var(--cool-bg);border-radius:var(--radius-sm);flex:none}
.no-photo{display:grid;place-items:center;color:var(--muted);font-size:11px;text-align:center}
.card-meta{color:var(--muted);font-size:var(--fs-12)}
.definition{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,1fr);gap:var(--sp-2) var(--sp-3);font-size:var(--fs-13)}
.doc-list{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.check-list{display:grid;gap:6px}
.check-list .si{color:var(--ok)}
.check-list .no{color:var(--muted)}
.score-bar{height:6px;background:var(--line-2);border-radius:999px;overflow:hidden}
.score-bar>span{display:block;height:100%;background:var(--accent)}
.rule-content{white-space:pre-line;font-size:var(--fs-14);color:var(--ink-2);overflow-wrap:anywhere}
.operations-readonly [data-write]{display:none!important}

/* Stat tiles: a warning tone and tighter rows in the pipeline summary */
.ui-stat[data-tone=warn] .value{color:var(--warn)}
.kpi-row{grid-template-columns:repeat(auto-fit,minmax(148px,1fr))}
.pipe-summary{grid-template-columns:repeat(3,minmax(0,1fr))}

/* Tables */
.th-sort{display:inline-flex;align-items:center;gap:6px;min-height:var(--control);padding:0 2px;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;white-space:nowrap}
.ui-app button.th-sort:hover:not(:disabled){background:none}
.th-sort span{font-size:10px;opacity:.6}
.th-sort.on{color:var(--ink)}
.th-sort.on span{opacity:1}
.orders-table{position:relative}
.orders-table th{padding-top:0;padding-bottom:0}
.numeric{text-align:right}
.orders-cards-narrow{display:none}

/* Detail drawer and small dialogs (shared modal, ops sizing) */
.ops-modal{display:flex}
.ops-dialog{position:relative;max-width:560px}
.dialog-close{position:absolute;top:var(--sp-3);right:var(--sp-3)}
.ops-dialog h1{font-size:var(--fs-20);line-height:28px;letter-spacing:-.01em;padding-right:48px}
.ops-dialog .stack{margin-top:var(--sp-4)}
.ops-modal.side{justify-content:flex-end;align-items:stretch;padding:0}
.ops-modal.side .ops-dialog{max-width:620px;width:100%;min-height:100%;margin:0;border-radius:var(--radius-lg) 0 0 var(--radius-lg);border-width:0 0 0 1px;overflow-y:auto;animation:ui-slide .2s var(--ease)}
.ops-modal.side .two-column{grid-template-columns:1fr}
.demo-bar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-3) var(--sp-4);padding:var(--sp-3) var(--sp-4);border:1px solid var(--warn-line);border-left:4px solid var(--warn);border-radius:var(--radius-md);background:var(--panel-adm)}
.demo-bar .demo-tag{display:inline-flex;align-items:center;gap:6px;font:600 var(--fs-12) 'JetBrains Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.demo-bar .demo-text{flex:1 1 220px;color:var(--ink-2);font-size:var(--fs-14)}

/* Pipeline */
.pipe-wrap{position:relative;overflow:auto;padding:2px 2px 14px;border-radius:var(--radius-lg)}
.pipe{display:flex;align-items:flex-start;gap:var(--sp-6);width:max-content;min-width:100%}
.pgroup{display:flex;flex-direction:column;gap:var(--sp-2)}
.pgroup-head{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);padding:0 4px}
.pgroup-cols{display:flex;gap:var(--sp-3);align-items:flex-start}
.col{width:268px;flex:none;background:var(--rib);border:1px solid var(--line-2);border-radius:var(--radius-lg);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}
.col-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}
.col-head h3{font-size:var(--fs-13);line-height:20px}
.col-head .n{font-size:var(--fs-12);padding:2px 9px;border-radius:999px;background:var(--panel-adm);border:1px solid var(--line-2);color:var(--ink-2)}
.col-usd{font-size:var(--fs-12);color:var(--muted)}
.col-body{display:flex;flex-direction:column;gap:var(--sp-3);max-height:calc(100dvh - 330px);min-height:96px;overflow:auto;padding:2px}
/* Las tarjetas no se achican dentro de la columna con scroll: se cortaban y con muchas quedaban solo los bordes (#39). */
.col-body>*{flex-shrink:0}
.kc{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);background:var(--panel-adm);border:1px solid var(--line-2);border-radius:var(--radius-md);color:var(--ink);cursor:grab}
.kc.arrastrando{opacity:.45}
.kc.guardando{opacity:.6}
.col.over{outline:2px solid var(--accent);outline-offset:-2px}
.kc-top{display:flex;gap:var(--sp-3);align-items:center}
.ui-app .kc-open{flex:1;min-width:0;justify-content:flex-start;padding:0;border:0;background:none;text-align:left;color:inherit}
.ui-app .kc-open:hover:not(:disabled){background:none}
.kc-open:hover .b b{text-decoration:underline}
.kc .product-photo{width:44px;height:44px}
.kc .b{font-size:var(--fs-13);min-width:0;flex:1}
.kc .b b{display:block;overflow-wrap:anywhere;line-height:1.3}
.kc .b i{display:block;font-style:normal;color:var(--muted);font-size:var(--fs-12);margin-top:2px;overflow-wrap:anywhere}
.kc-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);flex-wrap:wrap;font-size:var(--fs-12)}
.kc-usd{font-weight:500;text-align:left}
.kc-days{color:var(--muted);font-size:11px}
.kc-days.old{color:var(--warn);font-weight:600}
.kc-move select{font-size:var(--fs-12)}
.vacio{font-size:var(--fs-12);color:var(--muted);padding:var(--sp-3) 4px}
.operations-readonly .kc{cursor:default}

/* Resumen */
.dash-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--sp-4);align-items:start}
.dash-grid>.span-12{grid-column:span 12}.dash-grid>.span-7{grid-column:span 7}.dash-grid>.span-6{grid-column:span 6}.dash-grid>.span-5{grid-column:span 5}.dash-grid>.span-4{grid-column:span 4}
.dash-grid>div>.ops-panel{height:100%}
.chart-card .panel-body{gap:var(--sp-3)}
.chart-card .ui-bars li{grid-template-columns:minmax(72px,104px) minmax(0,1fr) 148px}
.chart-card .ui-bar-value small{margin-left:6px}
.meta-line{display:flex;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-2)}
.meta-line span{color:var(--muted);font-size:var(--fs-12)}
.meter{height:8px;border-radius:999px;background:var(--chip);overflow:hidden}
.meter>span{display:block;height:100%;background:var(--accent);border-radius:999px}
.empty-hero .panel-body{align-items:flex-start}
.empty-hero p{color:var(--muted)}
.skeleton{display:flex;flex-direction:column;gap:var(--sp-4)}
.sk-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:var(--sp-3)}
.sk-row i,.sk-block{display:block;height:92px;border-radius:var(--radius-md)}
.sk-block{height:240px}

/* Pedidos */
.orders-filters{padding:var(--sp-3);gap:var(--sp-2)}
.orders-toolbar{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
.orders-search{display:flex;align-items:center;gap:var(--sp-2);flex:1 1 220px;min-width:0;position:relative}
.orders-search>svg{position:absolute;left:var(--sp-3);color:var(--muted);pointer-events:none}
.ui-app .orders-search input{padding-left:38px}
.orders-toolbar>.w-field{flex:0 1 190px;position:relative}
.orders-toolbar>.w-field>span{position:absolute;top:3px;left:var(--sp-3);font-size:10px;line-height:12px;pointer-events:none}
.orders-toolbar select{padding-top:16px;padding-bottom:4px}
#fp-advanced{border-top:1px solid var(--line-2)}
#fp-advanced>summary{display:flex;align-items:center;gap:var(--sp-2);min-height:var(--control);padding:0 2px;font-size:var(--fs-12);font-weight:600;cursor:pointer;list-style:none}
#fp-advanced>summary::-webkit-details-marker{display:none}
#fp-advanced>summary::after{content:'⌄';margin-left:auto}
#fp-advanced[open]>summary::after{content:'⌃'}
#fp-advanced-count{font-size:11px;font-weight:400;color:var(--muted)}
.advanced-grid{display:grid;grid-template-columns:1fr 1fr 2fr;gap:var(--sp-3);padding-top:4px}
.advanced-grid fieldset{border:0;padding:0;margin:0;min-width:0}
.advanced-grid legend{font-size:var(--fs-12);color:var(--muted);margin-bottom:6px}

/* Responsive */
@media(max-width:1250px){.ops-search{max-width:260px}.ops-clocks i{display:none}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1100px){.advanced-grid{grid-template-columns:1fr 1fr}.advanced-grid fieldset:last-child{grid-column:1/-1}}
@media(max-width:959px){
 .operations-rail{position:fixed;height:100dvh;width:248px;max-width:86vw}
 .ui-rail-head #ops-close{display:grid}
 .ui-rail-head #ops-collapse{display:none}
 .ops-search{display:none}
 .two-column{grid-template-columns:1fr}
 .filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .dash-grid>.span-7,.dash-grid>.span-6,.dash-grid>.span-5,.dash-grid>.span-4{grid-column:span 12}
}
@media(max-width:700px){
 .orders-table{display:none}
 .orders-cards-narrow{display:grid}
 .ops-modal.side .ops-dialog{max-width:none;border-radius:0;border-left:0}
 .ui-app button.ops-cta{display:none}
 .pipe-summary{grid-template-columns:1fr}
 .pipe-wrap{overflow:visible}
 .pipe{display:block;width:auto}
 .pgroup{margin-bottom:var(--sp-4)}
 .pgroup-cols{flex-direction:column;align-items:stretch}
 .col{width:auto}
 .col-body{max-height:none}
 .kc{cursor:default}
}
@media(max-width:600px){
 .chart-card .ui-bars li{grid-template-columns:minmax(64px,92px) minmax(0,1fr) auto}
 .ops-header-inner{gap:var(--sp-2)}
 .ops-ws .ops-ws-name{max-width:96px}
 .ops-ws>summary .w-chip{display:none}
 .ops-clocks{display:none}
 .ui-topbar-actions{margin-left:auto}
 .ui-topbar .weem-platform-logo img{max-width:80px}
 .cards,.form-grid{grid-template-columns:1fr}
 .ops-row{flex-wrap:wrap}
 .ops-row .actions{width:100%}
 .ops-modal.side .ops-dialog{border-radius:0}
 .filter-row>input{min-width:0;width:100%}
 #horario-cn{display:none}
 .ui-app .ui-page-head.view-heading{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
 .ui-app .ui-page-head.view-heading>div{display:block}
 .ui-app .ui-page-head.view-heading>.actions{display:flex;width:100%}
 .definition{grid-template-columns:1fr 1fr}
 .ops-read-details{flex-basis:100%}
 .ops-read-details>summary{border:0;padding:0}
 .ops-status{font-size:10px}
 .orders-search{flex-basis:100%}
 .orders-toolbar>.w-field{flex:1 1 140px}
 .orders-toolbar #fp-reset{width:100%}
 .advanced-grid{grid-template-columns:1fr}
 .advanced-grid fieldset:last-child{grid-column:auto}
}
/* Multi-producto: product lines in the order detail and in the edit dialog */
.item-lines{list-style:none;margin:0 0 var(--sp-3);padding:0;display:flex;flex-direction:column}
.item-line{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;border-top:1px solid var(--line);min-width:0}
.item-line:first-child{border-top:0;padding-top:0}
.item-line .product-photo{width:44px;height:44px}
.item-line-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:var(--fs-13);color:var(--muted)}
.item-line-body strong{color:var(--ink);font-size:var(--fs-14);overflow-wrap:anywhere}
.item-line>b{font:600 var(--fs-13) 'JetBrains Mono',monospace;white-space:nowrap}
/* Editar pedido */
.ops-dialog:has(.edit-order){max-width:760px;max-height:calc(100dvh - 2*var(--sp-4));overflow-y:auto}
.edit-order{min-width:0}
.edit-order .w-field{min-width:0}
.edit-order .w-input{min-width:0}
.ed-grid,.ed-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}
.ed-items h2{font-size:var(--fs-16);margin-bottom:var(--sp-3)}
.ed-list{list-style:none;margin:0 0 var(--sp-3);padding:0;display:flex;flex-direction:column;gap:var(--sp-3)}
.ed-item{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--line-3);border-radius:var(--radius-md);background:var(--panel-adm);min-width:0}
.ed-item-head{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}
.ed-item-head strong{flex:1;min-width:80px}
.ed-sub{font:600 var(--fs-13) 'JetBrains Mono',monospace;color:var(--ink-2)}
.ed-tools{display:flex;gap:var(--sp-2)}
.w-btn.ed-ico{width:44px;height:44px;min-width:44px;min-height:44px;flex:none;padding:0;font-size:var(--fs-16)}
.ed-more summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--ink-2)}
.ed-more .w-field{margin-top:var(--sp-2)}
.ed-totals{margin-top:var(--sp-3)}
.ed-diff{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.ed-diff li{display:flex;flex-direction:column;gap:2px;padding:var(--sp-2) 0;border-top:1px solid var(--line);overflow-wrap:anywhere}
.ed-diff li:first-child{border-top:0}
.ed-diff li span{color:var(--ink-2);font-size:var(--fs-13)}
@media (max-width:600px){.ed-grid{grid-template-columns:1fr}.ed-row{grid-template-columns:1fr 1fr}.ops-dialog:has(.edit-order){max-width:none}}


/* ==========================================================================
   Identidad 2026 — "ink + ember". A token layer over the shell palette plus
   motion. Light keeps the site-wide default; dark is the night-ops cockpit.
   Colors that carry meaning: cyan = China, ember = tránsito, lime = Paraguay.
   ========================================================================== */
:root{--bg-adm:#F3F4F6;--bg-ops:#F3F4F6;--panel-adm:#FFFFFF;--panel-ops:#FFFFFF;--surface:#FFFFFF;--topbar:#FFFFFF;--hover:#EEF0F3;--sub-on:#EEF0F3;--line:#E4E6EB;--line-2:#E8EAEE;--line-3:#D6D9E0;--line-ops:#D6D9E0;--line-4:#C5C9D2;--line-5:#9EA4AF;--cool-bg:#F1F3F6;--ink:#0B0D12;--ink-strong:#0B0D12;--ink-2:#2E333C;--ink-3:#2E333C;--muted:#50565F;--muted-2:#5E646E;--muted-3:#5E646E;--dim:#5E646E;--accent:#C73A08;--accent-bg:#FFE8DC;--accent-bg-2:#FFF1EA;--accent-line:#FFC9AE;--chip:rgba(11,13,18,.05);
 --radius-sm:10px;--radius-md:14px;--radius-lg:20px;--ease:cubic-bezier(.2,.7,.2,1);--dur:.2s;
 --ops-cn:#0A7EA0;--ops-tr:#C73A08;--ops-py:#2F7D1F;--ops-glow:rgba(199,58,8,.18);
 --chart-1:#C73A08;--chart-2:#0A7EA0;--chart-3:#2F7D1F;--chart-4:#6D4BD6;--chart-6:#B26B00}
:root[data-theme=dark]{--bg-adm:#0A0B0E;--bg-ops:#0A0B0E;--panel-adm:#12141A;--panel-ops:#12141A;--surface:#0A0B0E;--topbar:#0D0F14;--hover:#1A1D24;--sub-on:#181B22;--line:#1F232B;--line-2:#22262E;--line-3:#2B3039;--line-ops:#2B3039;--line-4:#3A3F4A;--line-5:#4C525E;--cool-line:#252A33;--cool-line-2:#252A33;--cool-bg:#161922;--ink:#ECEDEF;--ink-strong:#FFFFFF;--ink-2:#C9CBD1;--ink-3:#B9BCC4;--muted:#A3A7B0;--muted-2:#8D919B;--muted-3:#8D919B;--dim:#8D919B;--accent:#FF7A3D;--accent-bg:#2A160C;--accent-bg-2:#22130B;--accent-line:#5A2A12;--bad:#FF8F8F;--bad-bg:#2A1414;--bad-line:#5A2424;--ok:#B8F25C;--ok-bg:#18230C;--ok-line:#33501A;--ok-bg-2:#121A0A;--warn:#FFC247;--warn-bg:#2D2410;--warn-line:#54421A;--chip:rgba(255,255,255,.06);
 --ops-cn:#3DD6F5;--ops-tr:#FF7A3D;--ops-py:#B8F25C;--ops-glow:rgba(255,122,61,.28);
 --chart-1:#FF7A3D;--chart-2:#3DD6F5;--chart-3:#B8F25C;--chart-4:#A78BFA;--chart-6:#FFC247}
.ui-app{font-feature-settings:'ss01','cv11';-webkit-font-smoothing:antialiased}
.ui-app .ui-topbar{background:color-mix(in srgb,var(--topbar) 86%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px)}
.ui-app h1{letter-spacing:-.03em}
.view-heading h1{font-size:clamp(26px,3vw,34px);line-height:1.1;font-weight:650}
.view-heading h1 svg{width:44px;height:44px;border-radius:14px;background:var(--accent);color:var(--surface);box-shadow:0 8px 24px -8px var(--ops-glow)}
.ops-clock{border:1px solid var(--line-2);background:var(--panel-adm);border-radius:12px;padding:6px 12px}
.ops-clock b{font-variant-numeric:tabular-nums;font-size:var(--fs-14)}
.ops-search{border-radius:12px;background:var(--panel-adm)}
#horario-cn{display:inline-flex;align-items:center;gap:8px}
#horario-cn::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--muted-2);flex:none}
#horario-cn.abierto::before{background:var(--ops-py);animation:ops-pulse 2s infinite}
#nav .nav-item{border-radius:12px;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),transform var(--dur) var(--ease)}
#nav .nav-item:hover{transform:translateX(2px)}
#nav .nav-item.active{background:var(--accent-bg);color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
#nav .nav-item.active .n{background:var(--accent);color:var(--surface)}
.ui-app .ui-panel,.ui-app .ops-panel{border-radius:var(--radius-lg);border-color:var(--line);transition:border-color var(--dur) var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease)}
.ui-app .ui-stat{border-radius:18px;position:relative;overflow:hidden;transition:transform .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease)}
.ui-app .ui-stat:hover,.ui-app .order-card:hover{transform:translateY(-2px);border-color:var(--line-4);box-shadow:0 14px 32px -18px rgba(0,0,0,.35)}
.ui-app .ui-stat .value{font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.ui-app .ui-stat::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--accent),transparent);transform-origin:left;animation:ops-bar 1s var(--ease) both}
.ui-app button:where(:not(.w-btn)){border-radius:12px;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),transform .12s var(--ease),filter var(--dur) var(--ease)}
.ui-app button:where(:not(.w-btn)):active:not(:disabled){transform:scale(.97)}
/* Entrance motion: each pane's direct blocks rise in, staggered */
.pane:not([hidden])>*{animation:ops-rise .5s var(--ease) both}
.pane:not([hidden])>*:nth-child(2){animation-delay:.04s}
.pane:not([hidden])>*:nth-child(3){animation-delay:.08s}
.pane:not([hidden])>*:nth-child(4){animation-delay:.12s}
.pane:not([hidden])>*:nth-child(n+5){animation-delay:.16s}
.kc{transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease)}
.kc:hover{transform:translateY(-2px)}
@keyframes ops-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes ops-bar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes ops-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ops-py) 60%,transparent)}70%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}
@keyframes ops-flow{0%{left:0;opacity:0}10%{opacity:1}90%{opacity:1}100%{left:100%;opacity:0}}
@media (prefers-reduced-motion:reduce){.ui-app *,.ui-app *::before,.ui-app *::after{animation:none!important;transition:none!important}}
/* Vista Tablero | Lista */
/* Menú: la lista de negociaciones es una segunda vista del pipeline */
#nav .nav-item.nav-sub{min-height:36px;padding-left:44px;font-size:var(--fs-13);color:var(--muted)}
#nav .nav-item.nav-sub svg{width:16px;height:16px}
.admin-nav-collapsed #nav .nav-item.nav-sub{padding-left:0}
/* Pipeline: tarjeta por proveedor con líneas */
.col.col-sup{width:340px}
.kg{display:flex;flex-direction:column;background:var(--panel-adm);border:1px solid var(--line-2);border-radius:16px;overflow:hidden;animation:ops-rise .4s var(--ease) both;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.kg:hover{border-color:var(--line-4);box-shadow:0 14px 30px -20px rgba(0,0,0,.4)}
.kg.guardando{opacity:.6;pointer-events:none}
.kg-head{display:flex;align-items:center;gap:10px;padding:12px 12px 10px}
.kg-av{width:36px;height:36px;flex:none;border-radius:11px;display:grid;place-items:center;font-weight:700;font-size:13px;background:var(--accent);color:var(--surface)}
.col[data-col=cotizado] .kg-av{background:var(--ops-cn);color:var(--surface)}
.kg-name{flex:1;min-width:0;display:flex;flex-direction:column}
.kg-name b{font-size:var(--fs-14);line-height:1.25;overflow-wrap:anywhere}
.kg-name i{font-style:normal;font-size:var(--fs-12);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kg-n{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--chip);color:var(--ink-2)}
.kg-lines{list-style:none;margin:0;padding:0 6px;display:flex;flex-direction:column;border-top:1px solid var(--line-2)}
.kl{display:flex;align-items:center;gap:8px;padding:8px 6px;border-radius:10px;transition:background .2s var(--ease),opacity .2s var(--ease)}
.kl+.kl{border-top:1px solid var(--line-2)}
.kl.si{background:color-mix(in srgb,var(--ops-py) 10%,transparent)}
.kl.no{opacity:.55}
.kl.no .kl-open b{text-decoration:line-through}
.ui-app .kl-open{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:0;border:0;background:none;text-align:left;color:inherit;min-height:44px;justify-content:center}
.ui-app .kl-open:hover:not(:disabled){background:none}
.kl-open b{font-size:var(--fs-13);font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.kl-open:hover b{text-decoration:underline}
.kl-open i{font-style:normal;font-size:11px;color:var(--muted)}
.kl-m3{font-size:10px;padding:1px 6px;border-radius:6px;background:var(--chip);color:var(--ink-2)}
.kl-pick{display:flex;gap:4px;flex:none}
.ui-app .kl-pick button{width:36px;min-width:36px;min-height:36px;padding:0;border-radius:10px;color:var(--muted);background:transparent}
.ui-app .kl-pick .kl-yes[aria-pressed=true]{background:var(--ops-py);border-color:var(--ops-py);color:var(--surface)}
.ui-app .kl-pick .kl-no[aria-pressed=true]{background:var(--bad);border-color:var(--bad);color:var(--surface)}
.kg-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:10px 12px 12px;border-top:1px solid var(--line-2)}
.kg-total{display:flex;flex-direction:column}
.kg-total i{font-style:normal;font-size:11px;color:var(--muted)}
.kg-total b{font-size:var(--fs-14)}
.ui-app .kg-apply{width:100%;min-height:40px;font-size:var(--fs-13);animation:ops-rise .3s var(--ease) both}
.ui-app .kg-apply[hidden]{display:none}
/* Ruta del producto */
.ruta{gap:var(--sp-3)}
.ruta-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ruta-legend{display:flex;gap:14px;font-size:var(--fs-12);color:var(--muted)}
.ruta-legend i{font-style:normal;display:inline-flex;align-items:center;gap:6px}
.ruta-legend i::before{content:'';width:8px;height:8px;border-radius:3px;background:currentColor}
.ruta-legend .z-cn::before{background:var(--ops-cn)}.ruta-legend .z-tr::before{background:var(--ops-tr)}.ruta-legend .z-py::before{background:var(--ops-py)}
.ruta-scroll{overflow-x:auto;padding:4px 2px 6px}
.ruta-track{position:relative;display:grid;grid-template-columns:repeat(var(--n),minmax(84px,1fr));gap:6px;min-width:calc(var(--n) * 90px)}
.ruta-line{position:absolute;left:calc(50% / var(--n));right:calc(50% / var(--n));top:27px;height:2px;background:linear-gradient(90deg,var(--ops-cn) 0 45%,var(--ops-tr) 45% 55%,var(--ops-py) 55%);opacity:.55;pointer-events:none}
.ruta-line i{position:absolute;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent);animation:ops-flow 7s linear infinite}
.ruta-line i:nth-child(2){animation-delay:1.75s}.ruta-line i:nth-child(3){animation-delay:3.5s}.ruta-line i:nth-child(4){animation-delay:5.25s}
.ui-app .ruta-node{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:0 2px 4px;border:0;background:none;min-height:auto;color:var(--ink);text-align:center;border-radius:12px}
.ui-app .ruta-node:hover:not(:disabled){background:none}
.ruta-node b{width:54px;height:54px;display:grid;place-items:center;border-radius:16px;font-size:17px;background:var(--panel-adm);border:1px solid var(--line-3);transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease)}
.ruta-node.z-cn b{border-color:color-mix(in srgb,var(--ops-cn) 55%,transparent)}
.ruta-node.z-tr b{border-color:color-mix(in srgb,var(--ops-tr) 55%,transparent)}
.ruta-node.z-py b{border-color:color-mix(in srgb,var(--ops-py) 55%,transparent)}
.ruta-node:hover b,.ruta-node:focus-visible b{transform:translateY(-3px) scale(1.06);box-shadow:0 10px 26px -12px var(--ops-glow)}
.ruta-node.vacio b{color:var(--muted-2)}
.ruta-node span{font-size:var(--fs-12);font-weight:500;line-height:1.25}
.ruta-node i{font-style:normal;font-size:11px;color:var(--muted);min-height:14px}
/* Actividad */
.act-filter .w-toggle{min-height:36px}
.act-list{display:flex;flex-direction:column;gap:var(--sp-5)}
.act-day{display:flex;flex-direction:column;gap:var(--sp-2)}
.act-date{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2);padding-left:22px}
.act-item{position:relative;display:flex;gap:12px;align-items:flex-start;padding:12px 14px 12px 22px;border:1px solid var(--line-2);border-radius:16px;background:var(--panel-adm);animation:ops-rise .4s var(--ease) both}
.act-dot{position:absolute;left:9px;top:18px;width:6px;height:6px;border-radius:50%;background:var(--muted-2)}
.act-item.k-pago .act-dot{background:var(--ops-py)}.act-item.k-pedido .act-dot{background:var(--accent)}.act-item.k-decision .act-dot{background:var(--warn)}.act-item.k-log .act-dot{background:var(--ops-cn)}
.act-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.act-meta{display:flex;gap:8px;align-items:center;font-size:11px;color:var(--muted)}
.act-t{font-weight:500;overflow-wrap:anywhere}
.act-s{font-size:var(--fs-13);color:var(--muted);overflow-wrap:anywhere}
.act-det summary{cursor:pointer;font-size:var(--fs-12);color:var(--accent);min-height:28px;display:flex;align-items:center}
.act-usd{font-size:var(--fs-13);white-space:nowrap;flex:none}
/* Decisiones: tarjetas compactas */
.dc-preview{font-size:var(--fs-13);color:var(--ink-2);line-height:1.5}
.dc-more>summary{cursor:pointer;font-size:var(--fs-13);font-weight:500;color:var(--accent);min-height:36px;display:flex;align-items:center}
@media (max-width:760px){.col.col-sup{width:auto}.act-item{flex-wrap:wrap}}
.ui-app .act-more{align-self:center}
.dc .w-chip{align-self:flex-start}
/* Asistentes por MCP */
.tk-url{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line-2);border-radius:12px;background:var(--cool-bg)}
.tk-url .mono{flex:1;min-width:0;overflow-wrap:anywhere;font-size:var(--fs-13)}
.tk-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.tk-item{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--line-2)}
.tk-item:first-child{border-top:0}
.tk-item>div:first-child{display:flex;flex-direction:column}
.tk-item .mono{font-size:var(--fs-12);color:var(--muted)}
.tk-item.off{opacity:.6}
.tk-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:var(--fs-12);color:var(--muted)}
.tk-secret code{display:block;margin:8px 0;padding:10px;border-radius:10px;background:var(--surface);color:var(--ink);overflow-wrap:anywhere;font-size:var(--fs-13)}
/* Montos: nunca se parten en dos líneas; el número se achica con la tarjeta */
.ui-app .ui-stat{container-type:inline-size;min-width:0}
.ui-app .ui-stat .value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:clamp(18px,16cqi,30px);line-height:1.15}
.ui-app .ui-stat .label{overflow-wrap:anywhere}
.kg-total b,.kl-open i,.act-usd,.kc-usd,.col-usd,.ruta-node i{white-space:nowrap}


/* Acceso — sign in / free account / activation, inside Operaciones on weem.com.py. */
html.ops-acceso .operations-rail,html.ops-acceso .ops-data-bar,html.ops-acceso #ops-menu,html.ops-acceso .ops-search,html.ops-acceso .ops-ws{display:none!important}
html.ops-acceso .ops-layout{grid-template-columns:1fr!important}
.acc-wrap{display:grid;grid-template-columns:minmax(0,420px) minmax(0,320px);gap:clamp(16px,3vw,40px);justify-content:center;align-items:start;padding:clamp(8px,2vw,24px) 0;animation:acc-in .5s var(--ease) both}
@keyframes acc-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.acc-card{background:var(--panel-adm);border:1px solid var(--line-2);border-radius:var(--radius-lg);padding:clamp(18px,3vw,28px);box-shadow:0 30px 60px -40px var(--ops-glow)}
.acc-card h1{font-size:clamp(22px,2.4vw,28px);line-height:1.1;font-weight:650;margin:4px 0 6px}
.acc-lead{color:var(--muted);margin:0 0 16px;line-height:1.45;font-size:var(--fs-14)}
.acc-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:12px;background:var(--cool-bg);margin-bottom:14px}
.acc-tabs button{border:0;background:transparent;color:var(--muted);font:inherit;font-weight:600;padding:9px 10px;border-radius:9px;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.acc-tabs button[aria-selected=true]{background:color-mix(in srgb,var(--ink) 7%,var(--panel-adm));color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.acc-form{display:flex;flex-direction:column;gap:12px}
.acc-form .w-field{display:flex;flex-direction:column;gap:6px}
.acc-form .w-btn--primary{min-height:44px}
.acc-link{background:transparent!important;border:0!important;color:var(--accent)!important;padding:4px 0!important;align-self:flex-start;font-weight:600}
.acc-or{display:flex;align-items:center;gap:12px;color:var(--muted-2);font-size:var(--fs-13);margin:14px 0}
.acc-or::before,.acc-or::after{content:"";flex:1;height:1px;background:var(--line-2)}
.acc-google{display:flex!important;align-items:center;justify-content:center;gap:10px;min-height:44px;border-radius:12px;width:100%;font-weight:600}
.acc-note{color:var(--muted-2);font-size:var(--fs-13);line-height:1.5;margin:4px 0 0}
.acc-card .msg{margin-top:14px}
.acc-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;counter-reset:acc}
.acc-steps li{counter-increment:acc;display:grid;grid-template-columns:30px 1fr auto;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:10px 14px;border:1px solid var(--line-2);border-radius:var(--radius-md);background:var(--panel-adm)}
.acc-steps li::before{content:counter(acc);grid-row:1/3;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--cool-bg);color:var(--ink-2);font-family:'JetBrains Mono',ui-monospace,monospace;font-weight:600}
.acc-steps li.on{border-color:var(--accent-line);background:var(--accent-bg-2)}
.acc-steps li.on::before{background:var(--accent);color:var(--accent-ink,#fff)}
.acc-steps b{font-weight:650}.acc-steps span{grid-column:2;color:var(--muted);font-size:var(--fs-13)}
.acc-steps a{grid-column:3;grid-row:1/3;color:var(--accent);font-weight:600;text-decoration:none;font-size:var(--fs-13)}
.acc-side .acc-note{margin-top:14px}
@media (max-width:820px){.acc-wrap{grid-template-columns:1fr;padding:4px 0}.acc-side{order:2}}
@media (prefers-reduced-motion:reduce){.acc-wrap{animation:none}}
html.ops-acceso .ui-main{padding-top:12px!important}

/* ==========================================================================
   Ficha de pedido (página completa), pedidos unidos y gastos — 2026-10-20
   ========================================================================== */
.xp-head{display:flex;align-items:flex-start;gap:12px 16px;flex-wrap:wrap;margin:0 0 16px}
.xp-back{flex:0 0 auto}
.xp-title{flex:1 1 320px;min-width:0}
.xp-title h1{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0;font-size:clamp(20px,2.2vw,26px);line-height:1.2}
.xp-title h1 .mono{font-family:'JetBrains Mono',ui-monospace,monospace;font-weight:700;letter-spacing:-.02em}
.xp-title p{margin:4px 0 0;color:var(--muted);font-size:var(--fs-14);overflow-wrap:anywhere}
.xp-nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.xp-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:16px;align-items:start;overflow-wrap:anywhere}
.xp-main,.xp-side{display:flex;flex-direction:column;gap:16px;min-width:0}
.xp-card{padding:16px 18px!important}
.xp-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;list-style:none;cursor:default}
details>summary.xp-card-head{cursor:pointer}
details>summary.xp-card-head::-webkit-details-marker{display:none}
.xp-card-head h3{display:flex;align-items:center;gap:8px;margin:0;font-size:var(--fs-15,15px);font-weight:650}
.xp-card-head h3 svg{width:18px;height:18px}
.xp-card-head span{color:var(--muted-2);font-size:var(--fs-13);text-align:right}
.xp-line{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line-2)}
.xp-line:first-of-type{border-top:0}
.xp-line .product-photo{width:44px;height:44px;border-radius:10px;object-fit:cover}
.xp-line-body{display:flex;flex-direction:column;min-width:0}
.xp-line-body b{font-weight:600;overflow-wrap:anywhere}
.xp-src{display:inline-block;align-self:flex-start;margin:2px 0;padding:1px 8px;border-radius:999px;font-size:var(--fs-12,12px);color:var(--muted-2);background:var(--surface-2,rgba(0,0,0,.05))}
.xp-src.ok{color:var(--ok,#1f7a4d);background:color-mix(in srgb,var(--ok,#1f7a4d) 12%,transparent)}
.xp-src.warn{color:var(--warn,#9a5b00);background:color-mix(in srgb,var(--warn,#9a5b00) 14%,transparent)}
.xp-ver{font-weight:500;color:var(--muted-2);font-size:var(--fs-13)}
.xp-estados{display:flex;flex-direction:column;gap:14px;margin:0}
.xp-estados>div{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;align-items:start}
.xp-estados dt{color:var(--muted-2);font-size:var(--fs-13);padding-top:2px}
.xp-estados dd{margin:0;display:flex;flex-direction:column;gap:6px;min-width:0}
.xp-estados dd>.w-chip,.xp-estados dd>span:first-child{align-self:flex-start}
.xp-estados small{color:var(--muted-2);font-size:var(--fs-13)}
.xp-estados small.xp-alerta{color:var(--warn)}
/* #222: cuenta regresiva de la confirmación automática de Alibaba y su fecha. */
.xp-estados small.xp-ali-plazo.is-warn{color:var(--warn)}
.xp-estados small.xp-ali-plazo.is-bad{color:var(--bad);font-weight:600}
.xp-ali-auto{display:grid;gap:2px;margin-top:4px}
.xp-ali-auto .w-input{max-width:12rem}
.xp-hist summary{cursor:pointer;color:var(--muted-2);font-size:var(--fs-13)}
.xp-hist small{display:block}
.ed-tabla-lista{margin:var(--sp-2) 0;padding-left:20px;max-height:220px;overflow:auto}
.ed-tabla-avisos{margin:0;padding-left:18px;color:var(--warn)}
.xp-unir-prev{padding:var(--sp-3);border-radius:10px;background:var(--surface-2,rgba(0,0,0,.04));display:flex;flex-direction:column;gap:4px}
.xp-unir-prev ul{margin:0;padding-left:18px;color:var(--warn)}
.xp-unir-prev small{color:var(--muted-2)}
.xp-estado-fila{display:flex;flex-direction:column;gap:4px;min-width:0}
.xp-ali-sel{width:100%;min-height:36px}
.xp-prov-ficha{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.xp-prov-ficha small{color:var(--muted-2);font-size:var(--fs-13)}
.xp-prov-ficha small.xp-ok{color:var(--ok)}
.xp-prov-ficha small.xp-alerta{color:var(--warn)}
/* Lista o cuadrícula */
.vista-toggle{margin:0 0 var(--sp-3);align-self:flex-start}
.view-heading .actions>.vista-toggle{margin:0}
.cards.vista-lista,.imp-grid.vista-lista{grid-template-columns:minmax(0,1fr)}
.cards.vista-lista>.order-card{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:var(--sp-4);row-gap:4px;align-items:start;align-content:start;min-height:0}
.cards.vista-lista>.order-card>.product-photo{grid-row:span 6}
.cards.vista-lista>.order-card>*:not(.product-photo){grid-column:2}
.cards.vista-lista>.order-card>.w-chip,.cards.vista-lista>.order-card>.w-btn,.cards.vista-lista>.order-card>a{justify-self:start}
.inv-list{display:flex;flex-direction:column;gap:var(--sp-4)}
.inv-list.vista-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));align-items:start}
.inv-list.vista-grid .xp-opts{grid-template-columns:minmax(0,1fr)}
.inv-list.vista-grid .xp-inv-nums{grid-template-columns:repeat(2,minmax(0,1fr))}
/* Foto del producto: subir o pegar un link */
.foto-campo{display:flex;gap:var(--sp-3);align-items:center}
.foto-campo .product-photo{flex:none}
.foto-acciones{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}
.foto-acciones input{width:100%;min-width:0}
.w-btn.xp-edit,.w-btn.xp-mini{align-self:flex-start;margin-top:6px}
.xp-line-body small,.xp-tx small,.xp-prov small{color:var(--muted-2);font-size:var(--fs-13)}
.xp-line-money{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right;white-space:nowrap}
.xp-line-money b{font-variant-numeric:tabular-nums;font-weight:650}
.xp-line-money small{color:var(--muted-2);font-size:var(--fs-12,12px)}
.xp-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:12px 0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.xp-totals div{display:flex;flex-direction:column;gap:2px;min-width:0}
.xp-totals span{color:var(--muted);font-size:var(--fs-13)}
.xp-totals .xp-money{font-size:clamp(16px,1.8vw,20px);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xp-totals small{color:var(--muted-2);font-size:var(--fs-12,12px);white-space:nowrap}
.xp-totals .ok .xp-money{color:var(--ops-py)}
.xp-totals .due .xp-money{color:var(--accent)}
.xp-sub{margin:12px 0 4px;font-size:var(--fs-13);color:var(--muted);font-weight:600}
.xp-tx{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line-2)}
.xp-tx>div:first-child{display:flex;flex-direction:column;min-width:0}
.xp-tx .xp-line-money{flex-direction:row;align-items:center;gap:8px}
.xp-sum{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-2)}
.xp-sum div{display:flex;flex-direction:column;gap:2px}
.xp-sum span{color:var(--muted);font-size:var(--fs-13)}
.xp-sum b{font-variant-numeric:tabular-nums;white-space:nowrap}
.xp-sum small{color:var(--muted-2);font-size:var(--fs-12,12px)}
.xp-sum-total{grid-column:span 1;background:var(--accent-bg-2);border:1px solid var(--accent-line);border-radius:12px;padding:10px 12px}
.xp-sum-total b{font-size:18px;color:var(--ink)}
.xp-timeline{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--line-2)}
.xp-timeline li{position:relative;padding:8px 0 8px 12px;display:flex;flex-direction:column}
.xp-timeline li::before{content:"";position:absolute;left:-20px;top:13px;width:10px;height:10px;border-radius:50%;background:var(--panel-adm);border:2px solid var(--accent)}
.xp-timeline small{color:var(--muted-2);font-size:var(--fs-13)}
.xp-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}
.xp-steps li{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line-2);color:var(--muted);font-size:var(--fs-14)}
.xp-steps i{font-style:normal;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;border:1px solid var(--line-3);flex:0 0 auto}
.xp-steps li.done{color:var(--ink-2)}
.xp-steps li.done i{background:var(--ok-bg,#DDEFE3);border-color:transparent;color:var(--ops-py)}
.xp-steps li.now{color:var(--ink);font-weight:650;border-bottom:2px solid var(--accent)}
.xp-steps li.now i{background:var(--accent);border-color:var(--accent);color:var(--accent-ink,#fff)}
.xp-prov{display:flex;flex-direction:column;gap:4px;padding:8px 0;border-top:1px solid var(--line-2)}
.xp-prov:first-of-type{border-top:0}
.xp-prov .actions{margin-top:4px}
.xp-quitar{align-self:flex-start;font-size:var(--fs-13)}
.xp-inline{display:flex;gap:8px}
.xp-inline .w-input{flex:1;min-width:0}
.xp-form{display:flex;flex-direction:column;gap:12px}
.xp-form .w-field{display:flex;flex-direction:column;gap:6px}
.xp-form :is(input,select){min-height:42px;border-radius:10px;border:1px solid var(--line-3);background:var(--surface);color:var(--ink);padding:0 12px;font:inherit}
.xp-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.xp-pick{display:flex;flex-direction:column;max-height:46vh;overflow:auto;border:1px solid var(--line-2);border-radius:12px}
.xp-pick label{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-top:1px solid var(--line-2);cursor:pointer}
.xp-pick label:first-child{border-top:0}
.xp-pick label:hover{background:var(--hover)}
.xp-pick span{display:flex;flex-direction:column;min-width:0}
.xp-pick small{color:var(--muted-2);font-size:var(--fs-13)}
.xp-grupos{margin:0 0 16px;padding:14px 16px!important}
.xp-grupo{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;width:100%;text-align:left;border:0;border-top:1px solid var(--line-2);background:transparent;color:var(--ink);padding:10px 0;cursor:pointer;font:inherit}
.xp-grupo small{grid-column:1;color:var(--muted-2);font-size:var(--fs-13)}
.xp-grupo em{grid-column:2;grid-row:1/3;align-self:center;font-style:normal;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}
.xp-grupo:hover b{color:var(--accent)}
.xp-rubros .xp-bar{display:grid;grid-template-columns:minmax(90px,160px) minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 0}
.xp-rubros .xp-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-14)}
.xp-rubros .xp-bar i{display:block;height:10px;border-radius:6px;background:var(--cool-bg);overflow:hidden}
.xp-rubros .xp-bar i b{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 60%,var(--ops-cn)))}
.xp-rubros .xp-bar em{font-style:normal;color:var(--muted);font-size:var(--fs-13);font-variant-numeric:tabular-nums;white-space:nowrap}
@media (max-width:960px){.xp-layout{grid-template-columns:1fr}.xp-side{order:-1}}
@media (max-width:560px){.xp-totals{grid-template-columns:1fr}.xp-sum{grid-template-columns:1fr}.xp-row2{grid-template-columns:1fr}.xp-steps{grid-template-columns:1fr}.xp-rubros .xp-bar{grid-template-columns:90px minmax(0,1fr)}.xp-rubros .xp-bar em{grid-column:1/-1}}

/* Menú lateral compacto (como MobOS): menos alto, menos aire, mismo orden. */
.operations-rail .nav-item{min-height:36px!important;padding-top:6px!important;padding-bottom:6px!important;font-size:14px!important;gap:10px!important;border-radius:10px!important}
.operations-rail .nav-item svg{width:18px!important;height:18px!important}
.operations-rail .nav-group{margin:12px 0 2px!important;padding-top:0!important;padding-bottom:0!important;font-size:10px!important;letter-spacing:.12em;opacity:.75}
.operations-rail .nav-group:first-of-type{margin-top:4px!important}
.operations-rail .nav-sub{min-height:32px!important;font-size:13px!important}
.operations-rail .ui-rail-head{min-height:44px!important;padding-top:6px!important;padding-bottom:6px!important}
.operations-rail .ui-rail-foot{gap:2px!important}
.operations-rail .ui-rail-link{min-height:34px!important;font-size:13px!important}

/* Documentos, venta y margen, ideas de inversión — 2026-10-21 */
.xp-doc{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line-2)}
.xp-doc-ico{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--accent-bg-2);color:var(--accent);font:700 10px/1 'JetBrains Mono',ui-monospace,monospace;border:1px solid var(--accent-line)}
.xp-doc-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.xp-drop{margin-top:12px;border:1.5px dashed var(--line-3);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:6px;text-align:center;align-items:center;transition:border-color .2s,background .2s}
.xp-drop.over{border-color:var(--accent);background:var(--accent-bg-2)}
.xp-drop small{color:var(--muted-2);font-size:var(--fs-13)}
.xp-drop .actions{justify-content:center}
.xp-drop label.w-btn{cursor:pointer}
.xp-preview{width:100%;height:min(72vh,900px);border:1px solid var(--line-2);border-radius:12px;background:#fff}
.xp-preview-img{max-width:100%;max-height:72vh;border-radius:12px;display:block;margin:0 auto}
#ops-detail.xp-wide .ops-dialog{max-width:min(1100px,96vw)!important;width:96vw}
.xp-venta-edit{margin-top:10px}
.xp-venta-edit summary{cursor:pointer;color:var(--accent);font-weight:600;font-size:var(--fs-14)}
.xp-venta-edit form{margin-top:10px}
.xp-row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.xp-inv{padding:16px 18px!important;display:flex;flex-direction:column;gap:12px}
.xp-inv-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center}
.xp-inv-head .product-photo{width:52px;height:52px;border-radius:12px;object-fit:cover}
.xp-inv-nums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.xp-inv-nums div{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;background:var(--cool-bg)}
.xp-inv-nums span{font-size:var(--fs-12,12px);color:var(--muted)}
.xp-inv-nums b{font-variant-numeric:tabular-nums;white-space:nowrap}
.xp-opts{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.xp-opt{border:1px solid var(--line-2);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.xp-opt.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;background:var(--accent-bg-2)}
.xp-opt-head{display:flex;align-items:center;gap:6px}
.xp-opt>small{color:var(--muted);font-size:var(--fs-13)}
.xp-mini{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:0;font-size:var(--fs-13)}
.xp-mini dt{color:var(--muted)}
.xp-mini dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.xp-opt-total{display:flex;flex-direction:column;border-top:1px solid var(--line-2);padding-top:8px}
.xp-opt-total span{font-size:var(--fs-12,12px);color:var(--muted)}
.xp-opt-total b{font-size:18px;font-variant-numeric:tabular-nums}
.xp-opt-total small{color:var(--muted-2);font-size:var(--fs-12,12px)}
@media (max-width:640px){.xp-opts{grid-template-columns:1fr}.xp-inv-nums{grid-template-columns:1fr 1fr}.xp-row3{grid-template-columns:1fr}.xp-doc{grid-template-columns:auto minmax(0,1fr)}.xp-doc-actions{grid-column:1/-1;justify-content:flex-start}}

/* Asistente IA */
#ops-ai{position:fixed;right:16px;bottom:16px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
html.ops-acceso #ops-ai{display:none}
.ops-ai-fab{border:0;border-radius:999px;padding:12px 18px;background:var(--accent);color:#fff;font:inherit;font-weight:650;box-shadow:0 12px 30px -10px var(--ops-glow);cursor:pointer}
:root[data-theme=dark] .ops-ai-fab{color:#1A0D05}
.ops-ai-panel{width:min(420px,calc(100vw - 32px));max-height:min(640px,calc(100dvh - 100px));display:flex;flex-direction:column;background:var(--panel-adm);border:1px solid var(--line-2);border-radius:18px;box-shadow:0 30px 70px -30px rgba(0,0,0,.45);overflow:hidden}
.ops-ai-panel[hidden]{display:none}
.ops-ai-panel header{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:12px 14px;border-bottom:1px solid var(--line-2)}
.ops-ai-panel header small{grid-column:1;color:var(--muted-2);font-size:var(--fs-12,12px)}
.ops-ai-panel header .w-btn--icon{grid-column:2;grid-row:1/3}
.ops-ai-log{flex:1;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.ops-ai-msg{padding:9px 12px;border-radius:14px;max-width:88%;font-size:var(--fs-14);line-height:1.45;overflow-wrap:anywhere}
.ops-ai-msg.me{align-self:flex-end;background:var(--accent);color:#fff}
:root[data-theme=dark] .ops-ai-msg.me{color:#1A0D05}
.ops-ai-msg.bot{align-self:flex-start;background:var(--cool-bg);color:var(--ink)}
.ops-ai-msg.wait{opacity:.7}
.ops-ai-msg.err{background:var(--bad-bg,#FBE3D3);color:var(--bad,#9A3412)}
.ops-ai-msg small{display:block;margin-top:6px;color:var(--muted-2);font-size:var(--fs-12,12px)}
.ops-ai-attach{display:flex;gap:8px;align-items:center;padding:6px 14px;font-size:var(--fs-13);color:var(--muted)}
.ops-ai-attach[hidden]{display:none}
#ops-ai-form{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line-2)}
#ops-ai-form textarea{flex:1;resize:none}
@media (max-width:600px){#ops-ai{right:10px;bottom:10px}.ops-ai-fab{padding:10px 14px}}
#ops-ai{flex-direction:column-reverse}
#ops-ai .ops-ai-fab{background:var(--accent)!important;color:#fff!important;border:0!important;min-height:44px}
:root[data-theme=dark] #ops-ai .ops-ai-fab{color:#1A0D05!important}
.xp-stage{display:grid;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-3)}
.xp-stage .xp-inline{display:flex;gap:8px}.xp-stage .xp-inline select{flex:1;min-width:0}
.rules-new{align-items:center;gap:12px;margin-bottom:12px}
.rules-old .rule-old{border-top:1px solid var(--w-border,rgba(0,0,0,.08));padding:12px 16px}.rules-old .rule-old .rule-content{opacity:.8}
#ops-detail textarea#xr-text{width:100%;min-height:220px;font:inherit;line-height:1.5}
/* Ajustes compactos: valores del modelo en filas */
.cfg-find{width:100%;min-height:38px;margin:0 0 8px;padding:0 12px;border:1px solid var(--line-3);border-radius:10px;background:var(--panel-adm);color:var(--ink)}
.cfg-list{display:grid;gap:0;border:1px solid var(--line-3);border-radius:12px;overflow:hidden}
.cfg-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(120px,1fr) auto;gap:8px;align-items:center;padding:8px 12px;border-top:1px solid var(--line-3)}
.cfg-row:first-child{border-top:0}
.cfg-row[hidden]{display:none}
.cfg-k{display:grid;min-width:0}.cfg-k b{font-size:13px;overflow-wrap:anywhere}.cfg-k small{color:var(--muted,#666);font-size:12px;line-height:1.3}
.cfg-row .w-input{min-width:0}
.cfg-row .msg{grid-column:1/-1;margin:0}.cfg-row .msg:empty{display:none}
#tk-box p{margin:0 0 8px}#tk-box .tk-form{margin-top:8px}
@media (max-width:640px){.cfg-row{grid-template-columns:1fr auto}.cfg-k{grid-column:1/-1}}
#tk-box{display:grid;gap:8px}
#tk-box .tk-url{padding:8px 8px 8px 12px!important;min-height:0!important}
#tk-box .tk-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin:0}
#tk-box .actions{margin:0}
#tk-box .ops-details summary{padding-top:4px;padding-bottom:4px}
/* Importadoras */
.imp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:12px}
.imp-card .xp-card-head h3{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.imp-acts{display:inline-flex;gap:6px;align-items:center}
/* Tarjetas resumidas: lo esencial a la vista y el detalle plegado (#36), foto grande (#37), links directos (#38) */
.fav-card{gap:var(--sp-2)}
.cards:not(.vista-lista)>.fav-card>.product-photo{width:100%;height:auto;aspect-ratio:1/1;max-height:280px;object-fit:contain;background:#fff;border-radius:var(--radius-sm)}
.cards:not(.vista-lista)>.fav-card>.product-photo.no-photo{display:grid;place-items:center;color:var(--muted)}
.cards.vista-lista>.fav-card>.product-photo{width:120px;height:120px;grid-row:span 3;background:#fff}
.fav-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.fav-body h3{margin:0;font-size:var(--fs-14,14px);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fav-precio{margin:0;font-variant-numeric:tabular-nums}
.fav-body .card-meta{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fav-links{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-top:auto}
.fav-links .w-btn{flex:1 1 0;min-width:0;white-space:nowrap;padding-inline:8px}
.order-card .card-summary .product-photo{width:96px;height:96px;background:#fff}
.card-resumen{margin:2px 0 0;font-size:var(--fs-12);font-variant-numeric:tabular-nums}
.card-mas>summary,.xp-inv>summary{cursor:pointer;list-style:none}
.card-mas>summary::-webkit-details-marker,.xp-inv>summary::-webkit-details-marker{display:none}
.card-mas>summary{font-size:var(--fs-12);font-weight:500;color:var(--muted);display:flex;align-items:center;min-height:32px}
.card-mas>summary::after,.xp-inv>summary::after{content:'⌄';margin-left:auto;color:var(--muted)}
.card-mas[open]>summary::after,.xp-inv[open]>summary::after{transform:rotate(180deg)}
.card-mas[open]{display:flex;flex-direction:column;gap:var(--sp-2)}
.xp-inv:not([open]){gap:0}
.xp-inv>summary.xp-inv-head{grid-template-columns:auto minmax(0,1fr) auto}
.xp-inv>summary.xp-inv-head .product-photo{width:72px;height:72px;background:#fff;object-fit:contain}
.xp-inv-res{display:block;margin-top:2px;font-size:var(--fs-12);color:var(--muted);font-variant-numeric:tabular-nums}
.xp-inv-res b{color:var(--ink-strong)}
.xp-card>details>summary.xp-card-head{margin:0}
.xp-card>details[open]>summary.xp-card-head{margin:0 0 10px}
.kg[draggable],.kl[draggable]{cursor:grab}
.kg.arrastrando,.kl.arrastrando{opacity:.45}
/* Pedidos: la lista primero; indicadores chicos debajo (#44) y la orden unida como una fila (#42) */
.orders-stats{margin-top:var(--sp-4)}
.orders-stats>.ui-stat{padding:10px 14px;min-height:0}
.orders-stats .value{font-size:var(--fs-16,16px)}
.xp-fila-orden td{background:color-mix(in srgb,var(--accent) 6%,transparent)}
.xp-fila-orden small{font-weight:400}
.xp-orden-card{border-color:color-mix(in srgb,var(--accent) 35%,var(--line-2))}

/* Más en menos (#48–#55) */
.no-photo svg{width:42%;height:42%;opacity:.4}
.xp-falta{color:var(--warn)}
.orders-table td{padding-top:6px;padding-bottom:6px;vertical-align:middle}
.orders-table td:nth-child(1),.orders-table td:nth-child(4){white-space:nowrap}
.orders-table td:nth-child(2){max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.orders-table td:nth-child(3){max-width:360px}
.ot-prod{display:flex;align-items:center;gap:10px;min-width:0}
.ot-prod .product-photo{width:36px;height:36px;border-radius:8px;background:#fff;object-fit:contain}
.ot-prod span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ui-app .orders-table .ot-ver{min-width:var(--control);padding-inline:0;justify-content:center}
.cards.fav-grid:not(.vista-lista){grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:var(--sp-3)}
.cards.fav-grid:not(.vista-lista)>.fav-card{padding:var(--sp-3)}
.cards.fav-grid:not(.vista-lista)>.fav-card>.product-photo{max-height:none}
.fav-grid .fav-body h3{font-size:13px}
.fav-grid .fav-precio,.fav-grid .fav-body .card-meta{font-size:12px}
.fav-grid .fav-links .w-btn{font-size:12px}
@media(max-width:600px){
 .ops-data-bar{flex-wrap:nowrap;gap:6px;min-width:0}
 .ops-data-bar:has(.ops-read-details[open]){flex-wrap:wrap}
 .ui-app .ops-data-bar #datos{flex:1 1 auto;flex-direction:row;align-items:baseline;gap:6px;min-width:0;overflow:hidden;white-space:nowrap}
 .ops-data-bar #datos i{min-width:0;overflow:hidden;text-overflow:ellipsis}
 .ops-data-bar #horario-cn{display:none}
 .ops-data-bar .ops-read-details{flex-basis:auto}
 .ops-data-bar .ops-read-details[open]{flex-basis:100%}
 .ops-data-bar #ops-read-summary{display:none}
 .chips.period-bar{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;max-width:100%}
 .chips.period-bar::-webkit-scrollbar{display:none}
 .chips.period-bar>.w-toggle{flex:none;white-space:nowrap}
 .orders-toolbar #fp-reset{width:auto;min-width:var(--control);padding-inline:0;justify-content:center}
 .orders-toolbar #fp-reset .lbl{display:none}
 .cards.fav-grid:not(.vista-lista){grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}
 .cards.fav-grid:not(.vista-lista)>.fav-card{padding:var(--sp-2)}
 .fav-grid .fav-links{flex-direction:column;gap:4px}
 .order-card .card-summary .product-photo{width:64px;height:64px}
}
.ui-app .orders-table th,.ui-app .orders-table td{padding-left:10px;padding-right:10px}
.ui-app .orders-table button.th-sort{border:0;background:none;min-height:32px;padding:0}
.ui-app .orders-table table{min-width:0}

/* Negociaciones compactas en celular (#54): menos aire, botones en una fila y avisos de dos líneas. */
@media (max-width: 600px) {
  #p-frentes .cards { gap: 10px; }
  #p-frentes .order-card { padding: 12px; gap: 8px; }
  #p-frentes .order-card .actions:empty { display: none; }
  #p-frentes .order-card > .actions:first-child { gap: 4px; }
  #p-frentes .order-card > .actions:first-child .w-chip { font-size: 11px; padding: 1px 6px; }
  #p-frentes .order-card .card-summary h3 { font-size: 15px; line-height: 1.25; }
  #p-frentes .order-card .notice { padding: 6px 10px; font-size: 12.5px; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  #p-frentes .order-card details > summary { font-size: 13px; }
  #p-frentes .order-card > .actions:last-child { flex-wrap: nowrap; gap: 6px; }
  #p-frentes .order-card > .actions:last-child .w-btn { flex: 1 1 auto; padding: 0 8px; font-size: 12.5px; white-space: nowrap; justify-content: center; }
}

/* Ideas: «Nueva idea» e «Importadoras y tarifas» arriba en una franja chica; la lista usa todo el ancho (tres columnas). */
.xp-inv-layout{grid-template-columns:minmax(0,1fr)}
.xp-inv-layout .xp-side{order:-1;flex-direction:row;flex-wrap:wrap;gap:10px}
.xp-inv-layout .xp-side>.xp-card{flex:1 1 260px;padding:10px 14px!important}
.xp-inv-layout .xp-side>.xp-card:has(details[open]){flex-basis:100%}
.xp-inv-layout .xp-side .xp-card-head h3{font-size:15px}
.inv-list.vista-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px}

/* ==========================================================================
   Operaciones v2 (issue #69, fase 1) — el mismo lenguaje shadcn/ui del Admin v2,
   con la hoja propia de Operaciones (las apps son separadas: solo se comparten
   los tokens de marca). Superficies neutras, bordes de 1px, radios de 8–12px,
   sombras sutiles, foco naranja WEEM y controles de 36px con puntero fino /
   44px en táctil. Sin repeticiones: la barra superior dice dónde estás, así que
   cada sección muestra su información directamente.
   ========================================================================== */
html:root:has(body.ops-v2){
  --bg-adm:#FAFAFA;--bg-ops:#FAFAFA;--panel-adm:#FFFFFF;--panel-ops:#FFFFFF;--surface:#FFFFFF;--topbar:#FFFFFF;--sidebar:#FAFAFA;
  --hover:#F4F4F5;--sub-on:#F4F4F5;--rib:#FAFAFA;--chip:#F4F4F5;
  --line:#E4E4E7;--line-2:#E4E4E7;--line-3:#E4E4E7;--line-ops:#E4E4E7;--line-4:#D4D4D8;--line-5:#A1A1AA;--cool-line:#E4E4E7;--cool-line-2:#E4E4E7;--cool-bg:#FAFAFA;
  --ink:#09090B;--ink-strong:#09090B;--ink-2:#27272A;--ink-3:#3F3F46;--muted:#71717A;--muted-2:#71717A;--muted-3:#71717A;--dim:#71717A;
  --accent:#B84F0B;--accent-ink:#FFFFFF;--accent-bg:#FFF1E8;--accent-bg-2:#FFF7F1;--accent-line:#F6C7A6;
  --ok:#15803D;--ok-bg:#F0FDF4;--ok-line:#BBF7D0;--warn:#A16207;--warn-bg:#FEFCE8;--warn-line:#FDE68A;--bad:#B91C1C;--bad-bg:#FEF2F2;--bad-line:#FECACA;
  --info:#1D4ED8;--info-bg:#EFF6FF;--info-line:#BFDBFE;--teal:#0F766E;--teal-bg:#F0FDFA;--teal-line:#99F6E4;
  --ring:rgba(184,79,11,.35);--shadow-xs:0 1px 2px rgba(9,9,11,.05);--shadow-float:0 10px 38px -10px rgba(9,9,11,.22),0 4px 12px -6px rgba(9,9,11,.1);
  --radius-sm:8px;--radius-md:10px;--radius-lg:12px;--control:44px;--row:44px;--topbar-h:56px;--chart-1:#B84F0B;
}
html:root[data-theme=dark]:has(body.ops-v2){
  --bg-adm:#09090B;--bg-ops:#09090B;--panel-adm:#111113;--panel-ops:#111113;--surface:#111113;--topbar:#09090B;--sidebar:#0C0C0E;
  --hover:#1C1C1F;--sub-on:#1C1C1F;--rib:#141416;--chip:#1F1F23;
  --line:#27272A;--line-2:#27272A;--line-3:#2E2E33;--line-ops:#27272A;--line-4:#3F3F46;--line-5:#52525B;--cool-line:#27272A;--cool-line-2:#27272A;--cool-bg:#141416;
  --ink:#FAFAFA;--ink-strong:#FFFFFF;--ink-2:#E4E4E7;--ink-3:#D4D4D8;--muted:#A1A1AA;--muted-2:#A1A1AA;--muted-3:#A1A1AA;--dim:#A1A1AA;
  --accent:#FF8A3D;--accent-ink:#1A0D05;--accent-bg:#2A170B;--accent-bg-2:#1F130A;--accent-line:#5C3218;
  --ok:#4ADE80;--ok-bg:#0D2316;--ok-line:#14532D;--warn:#FACC15;--warn-bg:#261F08;--warn-line:#713F12;--bad:#F87171;--bad-bg:#2A1212;--bad-line:#7F1D1D;
  --info:#60A5FA;--info-bg:#0F1B33;--info-line:#1E3A8A;--teal:#2DD4BF;--teal-bg:#0B2422;--teal-line:#115E59;
  --ring:rgba(255,138,61,.4);--shadow-xs:0 1px 2px rgba(0,0,0,.4);--shadow-float:0 16px 48px -12px rgba(0,0,0,.8),0 4px 12px -4px rgba(0,0,0,.5);--chart-1:#FF8A3D;
}
@media (pointer:fine) and (min-width:960px){html:root:has(body.ops-v2){--control:36px;--row:40px}}

/* ---- Base ---- */
body.ops-v2{background:var(--bg-ops);color:var(--ink);font-size:14px;line-height:20px}
body.ops-v2 :focus-visible{outline:2px solid var(--accent);outline-offset:2px}
body.ops-v2 :where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not(.w-input),select:not(.w-input),textarea:not(.w-input)){border:1px solid var(--line-4);border-radius:var(--radius-sm);background-color:var(--panel-adm);box-shadow:var(--shadow-xs);font-size:14px;color:var(--ink)}
html[data-theme=dark] body.ops-v2 :where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not(.w-input),select:not(.w-input),textarea:not(.w-input)){background-color:var(--rib);border-color:var(--line-3)}
body.ops-v2 :where(input:not(.w-input),select:not(.w-input),textarea:not(.w-input)):focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--ring);outline:0}
body.ops-v2 .ops-search input[type=search],body.ops-v2 .ops-search input[type=search]:focus,body.ops-v2 .orders-search input,body.ops-v2 .orders-search input:focus{border:0;box-shadow:none;background:transparent}

/* ---- Barra superior con breadcrumb ---- */
body.ops-v2 .ui-topbar{position:sticky;top:0;z-index:130;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--topbar) 88%,transparent);backdrop-filter:saturate(1.4) blur(8px)}
body.ops-v2 .ui-topbar-row{min-height:var(--topbar-h);padding:0 var(--sp-4);gap:var(--sp-3)}
body.ops-v2 .ui-switcher>summary{min-height:var(--control);border-color:var(--line);box-shadow:var(--shadow-xs);font-size:14px}
body.ops-v2 .ui-switcher-menu{border-color:var(--line);border-radius:var(--radius-lg)}
body.ops-v2 .ops-crumbs{min-width:0;flex:0 1 auto}
body.ops-v2 .ops-crumbs ol{display:flex;align-items:center;gap:var(--sp-2);list-style:none;margin:0;padding:0;font-size:14px;color:var(--muted);white-space:nowrap}
body.ops-v2 .ops-crumbs li{overflow:hidden;text-overflow:ellipsis;min-width:0}
body.ops-v2 .ops-crumbs li+li::before{content:"/";margin-right:var(--sp-2);color:var(--line-5)}
body.ops-v2 .ops-crumbs [aria-current=page]{color:var(--ink-strong);font-weight:500}
body.ops-v2 .ops-crumbs li:nth-child(3)[aria-current=page]{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:13px}
body.ops-v2 .crumb-link{all:unset;cursor:pointer;color:var(--muted)}
body.ops-v2 .crumb-link:hover{color:var(--ink)}
body.ops-v2 .crumb-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
body.ops-v2 .ops-search{margin-left:auto;max-width:300px;border-color:var(--line);background:var(--rib);border-radius:var(--radius-sm);box-shadow:none}
body.ops-v2 .ops-clocks{margin-left:0}
@media(max-width:1180px){body.ops-v2 .ops-clocks{display:none}}

/* ---- Menú lateral ---- */
body.ops-v2 .ui-rail{background:var(--sidebar);border-right:1px solid var(--line)}
body.ops-v2 .ui-rail-head>span{font:500 11px/16px 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.08em;color:var(--muted)}
body.ops-v2 .ui-rail-nav{gap:2px}
body.ops-v2 .nav-label{font:500 12px/16px 'Instrument Sans',system-ui,sans-serif;letter-spacing:0;text-transform:none;color:var(--muted);padding:var(--sp-4) var(--sp-2) var(--sp-1)}
body.ops-v2 .nav-item{min-height:var(--control);padding:0 var(--sp-2);gap:var(--sp-2);border-radius:var(--radius-sm);box-shadow:none;color:var(--ink-3);font-size:14px;font-weight:500;background:transparent;border:1px solid transparent}
body.ops-v2 .nav-item svg{width:18px;height:18px;color:var(--muted)}
body.ops-v2 .nav-item:hover:not(:disabled){background:var(--hover);color:var(--ink-strong)}
body.ops-v2 .ui-rail-nav .nav-item.active,body.ops-v2 .ui-rail-nav .nav-item[aria-current=page]{background:var(--panel-adm);color:var(--ink-strong);font-weight:600;box-shadow:var(--shadow-xs),inset 0 0 0 1px var(--line)}
html[data-theme=dark] body.ops-v2 .ui-rail-nav .nav-item.active,html[data-theme=dark] body.ops-v2 .ui-rail-nav .nav-item[aria-current=page]{background:var(--hover);box-shadow:inset 0 0 0 1px var(--line-3)}
body.ops-v2 .ui-rail-nav .nav-item.active svg{color:var(--accent)}
body.ops-v2 .ui-rail-foot{border-top-color:var(--line)}
body.ops-v2 .ui-rail-link{min-height:var(--control);font-size:14px}

/* ---- Columna principal: sin título repetido (la barra superior dice dónde estás) ---- */
body.ops-v2 .ui-main{gap:var(--sp-4)}
body.ops-v2 .ops-data-bar{font-size:13px;color:var(--muted)}
body.ops-v2 .view-heading h1 svg,body.ops-v2 .view-heading .heading-copy>p{display:none}
body.ops-v2 .view-heading.ui-page-head{min-height:0;margin:0}
body.ops-v2 .view-heading h1{font-size:20px;line-height:28px;font-weight:600;letter-spacing:-.02em}
@media(min-width:768px){
 body.ops-v2 .view-heading h1{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 body.ops-v2 .view-heading.ui-page-head{justify-content:flex-end}
 body.ops-v2 .view-heading .heading-copy{flex:0 0 0;min-width:0}
 body.ops-v2 .view-heading>.actions:empty{display:none}
}
@media(max-width:767px){body.ops-v2 .ops-crumbs{display:none}}

/* ---- Tarjetas, KPIs, badges ---- */
body.ops-v2 .ui-panel>h3,body.ops-v2 .xp-card-head h3{font-size:15px;line-height:22px;font-weight:600;letter-spacing:-.01em}
body.ops-v2 .ui-stat{border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);background:var(--panel-adm);gap:var(--sp-1);text-align:left}
body.ops-v2 .ui-stat .label{font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--muted)}
body.ops-v2 .ui-stat .value{font-size:26px;line-height:32px;font-weight:600;letter-spacing:-.025em;font-variant-numeric:tabular-nums;color:var(--ink-strong)}
body.ops-v2 .ui-stat .sub{font-size:12px;color:var(--muted)}
body.ops-v2 .ui-stat[data-tone=warn] .value{color:var(--warn)}
body.ops-v2 .ui-stat[data-tone=bad] .value{color:var(--bad)}
body.ops-v2 .kpi-row.kpi-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){body.ops-v2 .kpi-row.kpi-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){body.ops-v2 .kpi-row.kpi-4{grid-template-columns:minmax(0,1fr)}}
body.ops-v2 button.kpi-filter{display:flex;flex-direction:column;align-items:flex-start;width:100%;cursor:pointer;font:inherit;color:inherit;min-height:var(--control);transition:border-color .15s,box-shadow .15s}
body.ops-v2 button.kpi-filter:hover{border-color:var(--accent);background:var(--panel-adm)}
body.ops-v2 button.kpi-filter .sub::after{content:" →";color:var(--accent)}

/* ---- Chip de estado (punto de color según EST) ---- */

/* ---- Tabla de pedidos (patrón tablecn): encabezado fijo, la fila abre la ficha ---- */
body.ops-v2 .orders-table{max-height:calc(100dvh - 240px);overflow:auto}
body.ops-v2 .orders-table thead th{position:sticky;top:0;z-index:2;background:var(--rib);box-shadow:inset 0 -1px 0 var(--line)}
body.ops-v2 table th{font-size:12px;font-weight:500;color:var(--muted);text-transform:none;letter-spacing:0}
body.ops-v2 table td{border-color:var(--line)}
body.ops-v2 tr.ot-row{cursor:pointer}
body.ops-v2 tr.ot-row:hover td{background:var(--hover)}

/* ---- Resumen: próximos arribos ---- */
body.ops-v2 .arribos .ops-panel-body{gap:2px}
body.ops-v2 .arribo{all:unset;box-sizing:border-box;display:grid;grid-template-columns:40px minmax(0,1fr) auto;grid-template-areas:"img body usd" "img chip usd";align-items:center;gap:2px var(--sp-3);padding:var(--sp-2);min-height:var(--row);border-radius:var(--radius-sm);cursor:pointer}
body.ops-v2 .arribo:hover{background:var(--hover)}
body.ops-v2 .arribo:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
body.ops-v2 .arribo-ico{grid-area:img;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--rib);color:var(--muted)}
body.ops-v2 .arribo-body{grid-area:body;display:flex;flex-direction:column;min-width:0}
body.ops-v2 .arribo-body b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ops-v2 .arribo-body small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ops-v2 .arribo-usd{grid-area:usd;font-size:13px;font-variant-numeric:tabular-nums}
body.ops-v2 .arribos-more{margin-top:var(--sp-2);align-self:flex-start}

/* ---- Ficha del pedido: etapas horizontales, costo puesto y cronología ---- */
body.ops-v2 .xp-stepper-card{padding:var(--sp-4) var(--sp-5);overflow-x:auto;margin-bottom:16px}
body.ops-v2 ol.xp-stepper{display:flex;list-style:none;margin:0;padding:0;min-width:760px}
body.ops-v2 .xp-stepper li{flex:1 1 0;position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;font-size:12px;line-height:16px;color:var(--muted);padding:0 2px;border:0;background:none;min-height:0}
body.ops-v2 .xp-stepper li::before{content:"";position:absolute;top:13px;right:50%;width:100%;height:2px;background:var(--line);z-index:0}
body.ops-v2 .xp-stepper li:first-child::before{display:none}
body.ops-v2 .xp-stepper li.done::before,body.ops-v2 .xp-stepper li.now::before{background:var(--accent)}
body.ops-v2 .xp-stepper li i{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:2px solid var(--line-4);background:var(--panel-adm);font:600 12px/1 'JetBrains Mono',ui-monospace,monospace;font-style:normal;color:var(--muted)}
body.ops-v2 .xp-stepper li.done i{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
body.ops-v2 .xp-stepper li.now i{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 4px var(--ring)}
body.ops-v2 .xp-stepper li.now{color:var(--ink-strong);font-weight:600}
body.ops-v2 .xp-stepper li.done{color:var(--ink-3)}
body.ops-v2 .xp-stepper.cancelado{opacity:.6}
body.ops-v2 .xp-faltan{margin:var(--sp-2) 0 0;padding-left:18px}
body.ops-v2 .ops-timeline{list-style:none;margin:0;padding:0 0 0 4px;position:relative}
body.ops-v2 .ops-timeline li{position:relative;display:flex;flex-direction:column;gap:2px;padding:0 0 var(--sp-3) 22px;border:0;background:none}
body.ops-v2 .ops-timeline li::before{content:"";position:absolute;left:3px;top:5px;width:7px;height:7px;border-radius:50%;background:var(--panel-adm);border:2px solid var(--accent)}
body.ops-v2 .ops-timeline li::after{content:"";position:absolute;left:8px;top:18px;bottom:0;width:1px;background:var(--line)}
body.ops-v2 .ops-timeline li:last-child::after{display:none}
body.ops-v2 .ops-timeline b{font-weight:500}
body.ops-v2 .ops-timeline small{color:var(--muted);font-size:12px}

/* ---- Pipeline, tarjetas y diálogos: mismos bordes y radios ---- */
body.ops-v2 .kc,body.ops-v2 .kg{border-color:var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-xs)}
body.ops-v2 .weem-admin-dialog,body.ops-v2 .ops-dialog{border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-float)}

/* ---- Táctil y pantallas angostas: 44px ---- */
@media (pointer:coarse),(max-width:959px){
 body.ops-v2 .nav-item,body.ops-v2 button.kpi-filter,body.ops-v2 .arribo,body.ops-v2 .crumb-link{min-height:44px}
}
/* v2 neutraliza la capa decorativa anterior (barra degradada, desplazamientos, brillos, radios de 18px). */
body.ops-v2 #nav .nav-item{border-radius:var(--radius-sm)}
body.ops-v2 #nav .nav-item:hover{transform:none}
body.ops-v2 #nav .nav-item.active{background:var(--panel-adm);color:var(--ink-strong);box-shadow:var(--shadow-xs),inset 0 0 0 1px var(--line)}
html[data-theme=dark] body.ops-v2 #nav .nav-item.active{background:var(--hover);box-shadow:inset 0 0 0 1px var(--line-3)}
body.ops-v2 #nav .nav-item .n,body.ops-v2 #nav .nav-item.active .n{background:var(--chip);color:var(--muted)}
body.ops-v2 .ui-stat{border-radius:var(--radius-lg)}
body.ops-v2 .ui-stat::after{display:none}
body.ops-v2 .ui-stat:hover,body.ops-v2 .order-card:hover{transform:none;box-shadow:var(--shadow-xs)}
body.ops-v2 button:where(:not(.w-btn)){border-radius:var(--radius-sm)}
body.ops-v2 .ops-clock,body.ops-v2 .ops-search{border-radius:var(--radius-sm)}
body.ops-v2 .ops-clock{border-color:var(--line);background:transparent}

/* ==========================================================================
   Operaciones v2 (issue #69, fase 2) — negociaciones por estado, proveedores,
   envíos, pagos y búsqueda rápida con los mismos patrones de tabla, chip y
   tarjeta filtro de la fase 1. Claro y oscuro salen de los mismos tokens.
   ========================================================================== */
/* ---- Tarjetas filtro: la elegida queda marcada ---- */
body.ops-v2 .kpi-row.kpi-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr))}
body.ops-v2 button.kpi-toggle .sub::after{content:none}
body.ops-v2 button.kpi-toggle[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),var(--shadow-xs);background:var(--accent-bg-2)}
html[data-theme=dark] body.ops-v2 button.kpi-toggle[aria-pressed=true]{background:var(--accent-bg)}
body.ops-v2 button.kpi-toggle[aria-pressed=true] .label{color:var(--ink-strong)}

/* ---- Barra de herramientas y tablas ---- */
body.ops-v2 .ops-toolbar{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;justify-content:space-between}
body.ops-v2 .ops-toolbar .orders-search{flex:1 1 260px;max-width:420px;display:flex;align-items:center;gap:var(--sp-2);min-height:var(--control);padding:0 var(--sp-3);border:1px solid var(--line-4);border-radius:var(--radius-sm);background:var(--panel-adm);color:var(--muted);box-shadow:var(--shadow-xs)}
body.ops-v2 .ops-toolbar .orders-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}
body.ops-v2 .ops-toolbar .orders-search input{flex:1;min-width:0;min-height:calc(var(--control) - 2px);padding:0}
body.ops-v2 .ops-toolbar .orders-search svg{position:static;transform:none;width:16px;height:16px;flex:none}
body.ops-v2 .ops-table{max-height:calc(100dvh - 260px);overflow:auto}
body.ops-v2 .ops-table table{width:100%;border-collapse:separate;border-spacing:0}
body.ops-v2 .ops-table thead th{position:sticky;top:0;z-index:2;background:var(--rib);box-shadow:inset 0 -1px 0 var(--line);text-align:left;padding:8px 12px;white-space:nowrap}
body.ops-v2 .ops-table td{padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:14px}
body.ops-v2 .ops-table tbody tr:last-child td{border-bottom:0}
body.ops-v2 .ops-table td.numeric,body.ops-v2 .ops-table th.numeric{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
body.ops-v2 .ops-table tr.ot-row{cursor:pointer}
body.ops-v2 .ops-table tbody tr:hover td{background:var(--hover)}
body.ops-v2 .ops-table .ot-prod{display:flex;align-items:center;gap:var(--sp-3);min-width:220px}
body.ops-v2 .ops-table .ot-prod .product-photo{width:36px;height:36px;border-radius:var(--radius-sm);object-fit:cover}
body.ops-v2 .ops-table .ot-prod>span,body.ops-v2 .pv-name>span{display:flex;flex-direction:column;min-width:0}
body.ops-v2 .ops-table small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px}
body.ops-v2 .ops-table td .w-btn{white-space:nowrap}
body.ops-v2 .ops-row-open{all:unset;box-sizing:border-box;cursor:pointer;font-weight:500;color:var(--ink-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px;border-radius:4px}
body.ops-v2 .ops-row-open:hover{text-decoration:underline;text-underline-offset:3px}
body.ops-v2 .ops-row-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
body.ops-v2 .ops-row-open.mono{font-size:13px;font-weight:400}
body.ops-v2 .pv-name{display:flex;align-items:center;gap:var(--sp-3);min-width:200px}
body.ops-v2 .pv-name .kg-av{width:32px;height:32px;border-radius:var(--radius-sm);font-size:12px;background:var(--chip);color:var(--ink-2);border:1px solid var(--line)}
body.ops-v2 #p-royal .two-column,body.ops-v2 #p-pagos .hint,body.ops-v2 #p-royal>.hint{margin-top:var(--sp-2)}
body.ops-v2 .ops-panel .ops-table{max-height:none}

/* ---- Negociaciones por estado ---- */
body.ops-v2 .fk-board{display:flex;gap:var(--sp-3);overflow-x:auto;padding-bottom:var(--sp-2);align-items:flex-start;scroll-snap-type:x proximity}
body.ops-v2 .fk-col{flex:0 0 280px;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--rib);scroll-snap-align:start;max-height:calc(100dvh - 300px);min-height:120px}
body.ops-v2 .fk-head{display:flex;align-items:center;gap:var(--sp-2);padding:2px 4px 4px}
body.ops-v2 .fk-n{font-size:12px;color:var(--muted)}
body.ops-v2 .fk-usd{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}
body.ops-v2 .fk-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2);overflow-y:auto}
body.ops-v2 .fk-card{all:unset;box-sizing:border-box;display:grid;grid-template-columns:40px minmax(0,1fr);gap:var(--sp-3);width:100%;padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel-adm);box-shadow:var(--shadow-xs);cursor:pointer;min-height:44px}
body.ops-v2 .fk-card:hover{border-color:var(--line-5)}
body.ops-v2 .fk-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
body.ops-v2 .fk-card .product-photo,body.ops-v2 .fk-ph{width:40px;height:40px;border-radius:var(--radius-sm);object-fit:cover}
body.ops-v2 .fk-ph{display:grid;place-items:center;background:var(--chip);color:var(--muted);font-size:12px;font-weight:600;border:1px solid var(--line)}
body.ops-v2 .fk-body{display:flex;flex-direction:column;gap:2px;min-width:0}
body.ops-v2 .fk-body b{font-weight:500;line-height:18px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.ops-v2 .fk-body small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ops-v2 .fk-meta{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2);margin-top:4px;font-size:13px;color:var(--ink-2)}
body.ops-v2 .fk-meta time{font-size:12px;color:var(--muted);white-space:nowrap}
body.ops-v2 .fk-calc{font-size:11px!important}
body.ops-v2 .fk-detail-img .product-photo{width:100%;height:180px;object-fit:contain;border:1px solid var(--line);border-radius:var(--radius-md)}
body.ops-v2 #ops-detail-content>h3{margin:var(--sp-4) 0 var(--sp-2);font-size:14px;font-weight:600}

/* ---- Ficha del proveedor: pestañas ---- */
body.ops-v2 .ops-tabs{display:flex;gap:2px;margin:var(--sp-3) 0 var(--sp-4);padding:3px;border-radius:var(--radius-sm);background:var(--chip);overflow-x:auto}
body.ops-v2 .ops-tabs [role=tab]{all:unset;box-sizing:border-box;flex:1 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:0 12px;border-radius:6px;font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;white-space:nowrap}
body.ops-v2 .ops-tabs [role=tab][aria-selected=true]{background:var(--panel-adm);color:var(--ink-strong);box-shadow:var(--shadow-xs)}
body.ops-v2 .ops-tabs [role=tab]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
body.ops-v2 .ops-tabs .n{font-size:11px;color:var(--muted)}
body.ops-v2 .ops-tabpanel:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}
body.ops-v2 .ops-tabpanel .xp-estados>div{grid-template-columns:150px minmax(0,1fr)}
body.ops-v2 .ops-tabpanel .ops-table{max-height:none}
body.ops-v2 .ops-tabpanel .ops-table th,body.ops-v2 .ops-tabpanel .ops-table td{padding:8px}
body.ops-v2 .ops-tabpanel .ops-table table{min-width:0}
body.ops-v2 .ops-tabpanel .ops-table .ot-prod{min-width:180px}
@media (pointer:coarse),(max-width:959px){body.ops-v2 .ops-tabs [role=tab]{min-height:44px}body.ops-v2 .ops-row-open{min-height:44px;display:inline-flex;align-items:center}}

/* ---- Búsqueda rápida (⌘K / Ctrl+K) ---- */
body.ops-v2 .ops-search{position:relative}
body.ops-v2 .ops-qs{position:absolute;top:calc(100% + 6px);left:0;right:0;min-width:340px;max-height:min(420px,70dvh);overflow-y:auto;z-index:210;padding:4px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel-adm);box-shadow:var(--shadow-float);color:var(--ink)}
body.ops-v2 .ops-qs[hidden]{display:none}
body.ops-v2 .ops-qs-group{padding:8px 8px 4px;font-size:12px;font-weight:500;color:var(--muted)}
body.ops-v2 .ops-qs-opt{display:flex;flex-direction:column;gap:1px;padding:6px 8px;border-radius:6px;cursor:pointer;min-height:36px;justify-content:center}
body.ops-v2 .ops-qs-opt b{font-weight:500;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ops-v2 .ops-qs-opt small{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ops-v2 .ops-qs-opt:hover{background:var(--hover)}
body.ops-v2 .ops-qs-opt[aria-selected=true]{background:var(--accent-bg-2);box-shadow:inset 2px 0 0 var(--accent)}
html[data-theme=dark] body.ops-v2 .ops-qs-opt[aria-selected=true]{background:var(--accent-bg)}
body.ops-v2 .ops-qs-empty{padding:12px 8px;font-size:13px;color:var(--muted)}
body.ops-v2 .ops-qs-foot{display:flex;gap:4px;align-items:center;padding:8px 8px 4px;margin-top:4px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
html.qs-open body.ops-v2 .ops-search{display:flex!important;position:fixed;top:8px;left:16px;right:16px;max-width:none;z-index:220;background:var(--panel-adm);box-shadow:var(--shadow-float)}
@media (pointer:coarse),(max-width:959px){body.ops-v2 .ops-qs-opt{min-height:44px}body.ops-v2 .ops-qs{min-width:0}}

/* ==========================================================================
   Operaciones v3 (#69) — sobre la biblioteca weem-ui (/shared/weem-ui.css).
   1. Los tokens propios de Operaciones salen de los --w-*: superficies, líneas,
      tinta y estados siguen al claro/oscuro de la biblioteca. El acento de texto
      se mantiene más oscuro en claro (#B84F0B) por contraste AA sobre blanco.
   2. Piezas solo de Operaciones (prefijo ops-): punto de estado en .w-chip,
      barra apilada del costo puesto, leyenda y cifras. Nada de esto se define
      en weem-ui*.css; todo usa sus tokens.
   ========================================================================== */
html:root:has(body.ops-v2),html:root[data-theme=dark]:has(body.ops-v2){
  --bg-adm:var(--w-bg);--bg-ops:var(--w-bg);--panel-adm:var(--w-surface);--panel-ops:var(--w-surface);--surface:var(--w-surface);
  --topbar:var(--w-surface);--sidebar:var(--w-bg);--hover:var(--w-surface-2);--sub-on:var(--w-surface-2);--rib:var(--w-surface-2);--chip:var(--w-surface-2);
  --line:var(--w-line);--line-2:var(--w-line);--line-3:var(--w-line);--line-ops:var(--w-line);--line-4:var(--w-line-strong);--line-5:var(--w-line-strong);
  --cool-line:var(--w-line);--cool-line-2:var(--w-line);--cool-bg:var(--w-surface-2);
  --ink:var(--w-ink);--ink-strong:var(--w-ink);--ink-2:var(--w-ink-2);--ink-3:var(--w-ink-2);--muted:var(--w-muted);--muted-2:var(--w-muted);--muted-3:var(--w-muted);--dim:var(--w-muted);
  --ok:var(--w-success);--ok-bg:var(--w-success-soft);--ok-line:color-mix(in srgb,var(--w-success) 32%,transparent);
  --warn:var(--w-warning);--warn-bg:var(--w-warning-soft);--warn-line:color-mix(in srgb,var(--w-warning) 32%,transparent);
  --bad:var(--w-danger);--bad-bg:var(--w-danger-soft);--bad-line:color-mix(in srgb,var(--w-danger) 32%,transparent);
  --info:var(--w-info);--info-bg:var(--w-info-soft);--info-line:color-mix(in srgb,var(--w-info) 32%,transparent);
  --shadow-xs:var(--w-shadow-sm);--shadow-float:var(--w-shadow);--radius-sm:var(--w-radius-sm);--radius-md:var(--w-radius);--radius-lg:var(--w-radius-lg);
  /* Componentes del costo puesto: los mismos colores en la ficha, el Resumen y la leyenda. */
  --ops-k-fob:var(--w-ink-2);--ops-k-flete:var(--w-info);--ops-k-seguro:#0F766E;--ops-k-impuestos:#B7791F;--ops-k-despacho:#7C3AED;--ops-k-tarifa_weem:var(--w-accent);--ops-k-otros:var(--w-line-strong);
}
html:root[data-theme=dark]:has(body.ops-v2){--ops-k-fob:#C9CBD1;--ops-k-seguro:#2DD4BF;--ops-k-impuestos:#F2B544;--ops-k-despacho:#A78BFA;--ops-k-otros:#5B616E}
body.ops-v2{font-family:var(--w-font)}
/* app-shell pinta los botones .active con borde de tinta; en el menú el activo ya se marca con fondo y anillo. */
body.ops-v2 .ui-rail-nav .nav-item.active,body.ops-v2 .ui-rail-nav .nav-item.active:hover:not(:disabled){border-color:transparent}

/* Punto de color de la etapa dentro de la cápsula w-chip. */
body.ops-v2 .w-chip.ops-dot{gap:6px;white-space:nowrap}
body.ops-v2 .w-chip.ops-dot>i{flex:none;width:6px;height:6px;border-radius:50%;background:currentColor}
body.ops-v2 .w-chip.ops-dot[data-c=teal]{--_c:var(--ops-k-seguro);--_bg:color-mix(in srgb,var(--ops-k-seguro) 12%,transparent)}
body.ops-v2 .w-chip.ops-dot[data-c=none]>i{background:var(--w-muted)}
body.ops-v2 .arribo .w-chip.ops-dot{grid-area:chip;justify-self:start}
body.ops-v2 #ops-detail-content .kit-admin-eyebrow .w-chip{font-family:inherit;letter-spacing:0;text-transform:none}

/* KPIs: tarjetas w-card. */
body.ops-v2 .ui-stat.w-card{padding:var(--w-space-4) var(--w-space-5);gap:var(--w-space-1);border-radius:var(--w-radius-lg)}
body.ops-v2 .ui-stat.w-card .value{color:var(--w-ink)}

/* Cifras grandes (costo puesto, cartera). */
body.ops-v2 .ops-figs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--w-space-3);padding-bottom:var(--w-space-3);border-bottom:1px solid var(--w-line)}
body.ops-v2 .ops-figs>div{display:flex;flex-direction:column;gap:2px;min-width:0}
body.ops-v2 .ops-figs span{font-size:13px;color:var(--w-muted)}
body.ops-v2 .ops-figs b{font-size:22px;line-height:28px;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--w-ink);overflow-wrap:anywhere}
body.ops-v2 .ops-figs small{font-size:12px;color:var(--w-muted)}

/* Barra apilada: un segmento por componente; lo previsto, rayado. */
body.ops-v2 .ops-stack{display:flex;gap:2px;height:16px;margin:var(--w-space-4) 0 var(--w-space-3);border-radius:var(--w-radius-full);overflow:hidden;background:var(--w-surface-2)}
body.ops-v2 .ops-stack__seg{position:relative;flex:1 1 0;min-width:4px;height:100%;background:var(--k)}
body.ops-v2 .ops-stack__prev{position:absolute;top:0;right:0;bottom:0;background:repeating-linear-gradient(135deg,transparent 0 3px,color-mix(in srgb,var(--w-surface) 70%,transparent) 3px 6px)}
body.ops-v2 [data-k=fob]{--k:var(--ops-k-fob)}body.ops-v2 [data-k=flete]{--k:var(--ops-k-flete)}body.ops-v2 [data-k=seguro]{--k:var(--ops-k-seguro)}
body.ops-v2 [data-k=impuestos]{--k:var(--ops-k-impuestos)}body.ops-v2 [data-k=despacho]{--k:var(--ops-k-despacho)}body.ops-v2 [data-k=tarifa_weem]{--k:var(--ops-k-tarifa_weem)}body.ops-v2 [data-k=otros]{--k:var(--ops-k-otros)}
body.ops-v2 .ops-stack-label{margin:0;font-size:12px;color:var(--w-muted)}
body.ops-v2 .ops-stack-label+.ops-stack{height:10px;margin-top:6px}
body.ops-v2 .ops-legend{display:flex;flex-wrap:wrap;gap:var(--w-space-2) var(--w-space-4);list-style:none;margin:0 0 var(--w-space-3);padding:0;font-size:13px;color:var(--w-ink-2)}
body.ops-v2 .ops-legend li{display:inline-flex;align-items:center;gap:6px}
body.ops-v2 .ops-legend li.is-empty{color:var(--w-muted)}
body.ops-v2 .ops-legend li.is-empty i{opacity:.35}
body.ops-v2 .ops-legend i,body.ops-v2 .ops-key>i{flex:none;width:10px;height:10px;border-radius:3px;background:var(--k)}
body.ops-v2 .ops-legend b{font-weight:500;color:var(--w-muted);font-size:12px}
body.ops-v2 .ops-key{display:inline-flex;align-items:center;gap:8px}
body.ops-v2 .xp-puesto tr.is-empty th,body.ops-v2 .xp-puesto tr.is-empty td{color:var(--w-muted)}
body.ops-v2 .xp-puesto th .w-chip{margin-left:6px}
body.ops-v2 .xp-puesto .w-table th[scope=row]{text-align:left;font-weight:500;color:var(--w-ink)}
body.ops-v2 .xp-puesto .w-table .numeric{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
body.ops-v2 .xp-puesto .w-table tfoot th,body.ops-v2 .xp-puesto .w-table tfoot td{border-top:1px solid var(--w-line-strong);font-weight:600;color:var(--w-ink)}
body.ops-v2 .xp-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}

/* La ficha usa .xp-card (relleno propio): el encabezado y el cuerpo w-card no suman relleno. */
body.ops-v2 .xp-puesto>.w-card__header{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:0;margin:0 0 10px}
body.ops-v2 .xp-puesto>.w-card__body{padding:0}
body.ops-v2 .xp-puesto .w-card__title{font-size:15px;line-height:22px}
body.ops-v2 .ops-puesto-cartera>.w-card__header{flex-direction:row;align-items:center;justify-content:space-between;gap:var(--w-space-2);padding:var(--w-space-5) var(--w-space-5) 0}
body.ops-v2 .ops-puesto-cartera>.w-card__body{padding:var(--w-space-4) var(--w-space-5) var(--w-space-5)}
body.ops-v2 .ops-puesto-cartera .w-hint{margin:0}

/* Kanban de cotizaciones: columnas y tarjetas w-card. */
body.ops-v2 .fk-col.w-card{background:var(--w-surface-2);box-shadow:none}
body.ops-v2 .fk-head.w-card__header{flex-direction:row;padding:2px 4px 4px}
body.ops-v2 .fk-card.w-card{border-color:var(--w-line);background:var(--w-surface)}
@media (hover:hover){body.ops-v2 .fk-card.w-card:hover{border-color:var(--w-accent-line);box-shadow:var(--w-shadow)}}
body.ops-v2 .fk-board:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--w-radius-lg)}

/* Teléfono (375 px): cifras en una columna, kanban a lo ancho de la pantalla. */
@media(max-width:720px){
  body.ops-v2 .ops-figs{grid-template-columns:minmax(0,1fr)}
  body.ops-v2 .ops-puesto-cartera>.w-card__header{padding:var(--w-space-4) var(--w-space-4) 0}
  body.ops-v2 .ops-puesto-cartera>.w-card__body{padding:var(--w-space-3) var(--w-space-4) var(--w-space-4)}
  body.ops-v2 .fk-col{flex-basis:min(280px,calc(100vw - 64px))}
  body.ops-v2 .xp-puesto .w-table-wrap>.w-table{min-width:0}
  body.ops-v2 .xp-puesto .w-table th,body.ops-v2 .xp-puesto .w-table td{padding:8px 6px;font-size:13px}
  body.ops-v2 .xp-puesto .w-table th[scope=row] .w-chip{display:flex;width:max-content;margin:4px 0 0 18px}
}

/* ---- Pedidos: la página es la que desplaza ----
   Sin desplazamiento propio en las tablas: ni lateral ni interno. La tabla entra en el ancho
   disponible (las columnas largas se recortan con «…») y el encabezado queda fijo bajo la barra. */
body.ops-v2 :is(.orders-table,.ops-table).w-table-wrap{max-height:none;overflow:visible;overscroll-behavior:auto}
body.ops-v2 :is(.orders-table,.ops-table).w-table-wrap>.w-table{min-width:0}
body.ops-v2 :is(.orders-table,.ops-table) thead th{top:var(--ops-topbar,57px)}
body.ops-v2 .orders-table>.w-table{table-layout:fixed}
body.ops-v2 .orders-table th,body.ops-v2 .orders-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Columnas (views.js ORDER_COLS): 1 Nº · 2 Fecha · 3 Proveedor · 4 Artículos · 5 Cant. · 6 Pago · 7 Envío ·
   8 Total · 9 Pagado · 10 Pendiente · 11 ficha. Artículos se queda con el resto del ancho. */
body.ops-v2 .orders-table th:nth-child(1){width:112px}
body.ops-v2 .orders-table th:nth-child(2){width:96px}
body.ops-v2 .orders-table th:nth-child(3){width:13%}
body.ops-v2 .orders-table th:nth-child(5){width:68px}
body.ops-v2 .orders-table th:nth-child(6){width:96px}
body.ops-v2 .orders-table th:nth-child(7){width:172px}
body.ops-v2 .orders-table th:nth-child(8){width:100px}
body.ops-v2 .orders-table th:nth-child(9){width:96px}
body.ops-v2 .orders-table th:nth-child(10){width:100px}
body.ops-v2 .orders-table th:nth-child(11){width:56px}
body.ops-v2 .orders-table .ot-nro,body.ops-v2 .orders-table .ot-cant{display:flex;flex-direction:column;min-width:0;line-height:1.25}
body.ops-v2 .orders-table .ot-cant{align-items:flex-end}
body.ops-v2 .orders-table .ot-nro b{font-weight:600;color:var(--w-ink)}
body.ops-v2 .orders-table :is(.ot-nro,.ot-cant) small{overflow:hidden;text-overflow:ellipsis;font-size:11px;color:var(--w-muted)}
body.ops-v2 .orders-table td .w-chip{max-width:100%;overflow:hidden;text-overflow:ellipsis}
body.ops-v2 .orders-table .ot-prod{min-width:0}
body.ops-v2 .orders-table .ot-prod>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ops-v2 .ops-table td{white-space:normal;overflow-wrap:anywhere}
body.ops-v2 .ops-table .ot-prod,body.ops-v2 .ops-table .pv-name{min-width:0}
body.ops-v2 .ops-table :is(small,.ops-row-open){max-width:100%}
@media(max-width:1440px){body.ops-v2 .orders-table :is(th,td):is(:nth-child(5),:nth-child(9)){display:none}}
@media(max-width:1180px){body.ops-v2 .orders-table :is(th,td):nth-child(2){display:none}body.ops-v2 .orders-table th:nth-child(7){width:150px}}
@media(max-width:760px){body.ops-v2 .orders-table :is(th,td):is(:nth-child(3),:nth-child(6)){display:none}body.ops-v2 .orders-table th:nth-child(7){width:132px}}

/* Costo puesto en Paraguay: una fila sin monto (is-empty) sigue siendo fila de tabla; app-shell.css le da display:flex a .is-empty. */
body.ops-v2 .xp-puesto tr.is-empty{display:table-row;padding:0;border:0;border-radius:0;text-align:inherit;font-size:inherit}
body.ops-v2 .ops-legend li.is-empty{padding:0;border:0;border-radius:0;font-size:inherit}

/* Ficha: ‹ › fijos junto a «← Pedidos»; las acciones de la derecha pueden cambiar sin correrlos. */
body.ops-v2 .xp-lead{display:flex;align-items:center;gap:8px;flex:0 0 auto}
body.ops-v2 .xp-pager{display:inline-flex;gap:4px}
body.ops-v2 .xp-pager .w-btn[disabled]{opacity:.4;cursor:default}
body.ops-v2 .xp-nav{margin-left:auto;justify-content:flex-end}

/* Resumen de los pedidos filtrados: chiquito, al lado de «Nuevo pedido». */
body.ops-v2 .orders-mini{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:0 6px 0 0;font-size:12px;color:var(--muted)}
body.ops-v2 .orders-mini>div{display:flex;align-items:baseline;white-space:nowrap}
body.ops-v2 .orders-mini dd{margin:0}
body.ops-v2 .orders-mini b{font-size:13px;font-weight:600;color:var(--ink-strong,var(--ink))}

/* ---- Pipeline: un solo tablero que se desliza a lo ancho ----
   Grupos y columnas en una fila (estados de negociación y etapas del pedido); el tablero se desliza
   hacia el costado y las columnas crecen hacia abajo sin scroll propio: la rueda baja la página. */
body.ops-v2 .pipe-wrap{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;padding:2px 2px 14px;scrollbar-width:thin}
body.ops-v2 .pipe{display:flex;flex-direction:row;align-items:flex-start;gap:var(--sp-6);width:max-content;min-width:100%}
body.ops-v2 .pgroup{margin:0}
body.ops-v2 .pgroup-cols{display:flex;flex-direction:row;gap:var(--sp-3);align-items:flex-start}
body.ops-v2 .col{width:268px;flex:none;min-width:0}
body.ops-v2 .col.col-sup{width:300px}
body.ops-v2 .col-body{max-height:none;overflow:visible}

/* ---- Kanban de negociaciones: también desplaza la página ----
   Las columnas de estado se reparten el ancho y bajan a otra fila si no entran; ni lateral ni interno. */
body.ops-v2 .fk-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));align-items:start;overflow:visible;scroll-snap-type:none;padding-bottom:var(--sp-4)}
body.ops-v2 .fk-col{flex:none;min-width:0;max-height:none}
body.ops-v2 .fk-list{overflow:visible}
body.ops-v2 .fk-list>li[draggable=true]{cursor:grab}
body.ops-v2 .fk-list>li.arrastrando{opacity:.45}
body.ops-v2 .fk-list>li.guardando{opacity:.6;pointer-events:none}
body.ops-v2 .fk-col.over{outline:2px dashed var(--accent);outline-offset:-2px}
/* Campo de monto único (montos.js): símbolo US$/Gs dentro del campo y, si la moneda varía, el selector al lado. */
.ops-money{display:flex;gap:var(--sp-2,8px);align-items:stretch;min-width:0}
.ops-money-in{position:relative;flex:1 1 auto;min-width:0}
.ops-money-sym{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--w-muted);font:500 .875rem/1 var(--w-font);pointer-events:none}
.ops-money-in>.w-input{padding-left:44px;text-align:right;font-variant-numeric:tabular-nums}
.ops-money-cur.w-input{flex:0 0 auto;width:auto;min-width:84px}
/* Ficha del pedido: documentos con tipo e ícono, subidas con progreso, vista previa y proveedor con logo. */
.xp-puesto .w-card__title{display:flex;align-items:center;gap:8px}
.xp-puesto .w-card__title svg{width:18px;height:18px;flex:none}
.xp-doc-ico{flex-direction:column;gap:2px;width:44px;height:44px}
.xp-doc-ico svg{width:18px;height:18px}
.xp-doc-ico i{font:700 9px/1 'JetBrains Mono',ui-monospace,monospace;font-style:normal;letter-spacing:.02em}
.xp-doc-name{appearance:none;background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-color:var(--line-3);text-underline-offset:3px;overflow-wrap:anywhere}
.xp-doc-name:hover{color:var(--accent);text-decoration-color:currentColor}
.xp-doc-name:focus-visible,.xp-up-tipo:focus-visible,.xp-prov-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.xp-up{margin-top:12px;display:flex;flex-direction:column;gap:10px}
.xp-up-tipos{display:flex;flex-wrap:wrap;gap:6px}
.xp-up-tipo{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border:1px solid var(--line-3);border-radius:999px;background:var(--surface);color:var(--ink-2);font:inherit;font-size:var(--fs-13,13px);cursor:pointer}
.xp-up-tipo svg{width:15px;height:15px;flex:none}
.xp-up-tipo:hover{border-color:var(--accent-line)}
.xp-up-tipo[aria-pressed=true]{background:var(--accent-bg);border-color:var(--accent);color:var(--accent);font-weight:600}
.xp-up .xp-drop{margin-top:0}
.xp-drop b{display:inline-flex;align-items:center;gap:8px}
.xp-up-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.xp-up-list:empty{display:none}
.xp-up-item{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;align-items:start;padding:8px 10px;border:1px solid var(--line-2);border-radius:10px;font-size:var(--fs-13,13px);overflow-wrap:anywhere}
.xp-up-item>svg{width:18px;height:18px}
.xp-up-item div{display:flex;flex-direction:column;gap:6px;min-width:0}
.xp-up-item progress{width:100%;height:6px;accent-color:var(--accent)}
.xp-up-item.is-ok,.xp-up-item.is-dup{border-color:color-mix(in srgb,var(--ok) 40%,transparent);color:var(--ok)}
.xp-up-item.is-mal{border-color:var(--bad-line);background:var(--bad-bg);color:var(--bad)}
.xp-spin{width:16px;height:16px;margin:1px;border:2px solid var(--line-3);border-top-color:var(--accent);border-radius:50%;animation:xp-spin .8s linear infinite}
@keyframes xp-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.xp-spin{animation-duration:2.4s}}
.xp-preview-txt{max-height:min(72vh,900px);overflow:auto;margin:0;padding:14px;border:1px solid var(--line-2);border-radius:12px;background:var(--hover);font:12px/1.5 'JetBrains Mono',ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
.xp-preview-none{display:flex;gap:14px;align-items:center;padding:18px;border:1px dashed var(--line-3);border-radius:12px}
.xp-preview-none>div{display:flex;flex-direction:column;gap:4px;min-width:0;overflow-wrap:anywhere}
.xp-preview-none small{color:var(--muted-2)}
#ops-detail .actions .w-btn svg{width:16px;height:16px}
.xp-contrato{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0;padding:10px 0;border-top:1px solid var(--line-2)}
.xp-contrato-l{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:var(--fs-13,13px)}
.xp-contrato-l svg{width:16px;height:16px}
.xp-contrato .xp-up-list{flex-basis:100%}
.xp-doc-chip{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font:inherit;font-size:var(--fs-13,13px);max-width:100%;overflow-wrap:anywhere}
.xp-doc-chip svg{width:14px;height:14px;flex:none}
.xp-prov-id{display:flex;align-items:center;gap:10px;min-width:0}
.xp-prov-id .kg-av{width:36px;height:36px;font-size:12px}
.xp-prov-link{display:inline-flex;align-items:center;gap:6px;color:inherit;text-decoration:none;min-width:0;overflow-wrap:anywhere}
.xp-prov-link svg{width:14px;height:14px;flex:none;color:var(--muted-2)}
.xp-prov-link:hover b{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.kg-av.kg-av--img{object-fit:cover;background:var(--surface);border:1px solid var(--line);padding:0}
.xp-prov-title{display:flex;align-items:center;gap:12px}

/* Muestra / Big order: etiqueta chica de color en tarjetas, filas y la lista de pedidos. */
body.ops-v2 .tipo-chip{font-size:11px;line-height:16px;padding:1px 8px;white-space:nowrap;flex:none}
body.ops-v2 .ot-nro .tipo-chip{display:inline-flex;width:max-content;margin:2px 0}
body.ops-v2 .kl-open .tipo-chip,body.ops-v2 .fk-body .tipo-chip{display:inline-flex;width:max-content;margin:4px 0 2px}
body.ops-v2 .kc-meta .tipo-chip{margin-right:auto}

/* Pipeline: logo del proveedor y foto de cada producto en las tarjetas por proveedor. */
body.ops-v2 img.kg-av--img{object-fit:cover;background:#fff;border:1px solid var(--line)}
body.ops-v2 .kl-open--foto{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:10px;align-items:start}
body.ops-v2 .kl-open--foto>.product-photo{grid-row:1 / span 4;width:40px;height:40px;border-radius:var(--radius-sm);object-fit:cover;background:#fff}
body.ops-v2 .kl-open--foto>:not(.product-photo){grid-column:2}

/* Decisiones compactas: más información en menos espacio. */
body.ops-v2 .dc2{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:4px var(--sp-4);align-items:start;padding:var(--sp-3) var(--sp-4)}
body.ops-v2 .dc2-media .product-photo{width:56px;height:56px;border-radius:var(--radius-sm);object-fit:contain;background:#fff}
body.ops-v2 .dc2-body{display:flex;flex-direction:column;gap:4px;min-width:0}
body.ops-v2 .dc2-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
body.ops-v2 .dc2-top h3{margin:0;font-size:15px;line-height:20px;overflow-wrap:anywhere}
body.ops-v2 .dc2-top .w-chip{font-size:11px;padding:1px 8px}
body.ops-v2 .dc2-meta{margin:0;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ops-v2 .dc2 .dc-preview{margin:0;font-size:13px;line-height:1.45;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.ops-v2 .dc2-det>summary{list-style:none;display:block;min-height:0;cursor:pointer}
body.ops-v2 .dc2-det>summary::-webkit-details-marker{display:none}
body.ops-v2 .dc2-det>summary b{font-size:12px;font-weight:600;color:var(--accent)}
body.ops-v2 .dc2-det[open]>summary .dc-preview{display:none}
body.ops-v2 .dc2-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px;max-width:min(300px,38vw)}
body.ops-v2 .dc2-media:empty{display:none}
body.ops-v2 .dc2:has(.dc2-media:empty){grid-template-columns:minmax(0,1fr) auto}
body.ops-v2 .dc2-actions .actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
body.ops-v2 .dc2-actions .msg:empty{display:none}
body.ops-v2 .dc2--hecha{grid-template-columns:56px minmax(0,1fr)}
@media(max-width:760px){body.ops-v2 .dc2{grid-template-columns:44px minmax(0,1fr)}body.ops-v2 .dc2-media .product-photo{width:44px;height:44px}body.ops-v2 .dc2-actions{grid-column:1 / -1;align-items:stretch;max-width:none}body.ops-v2 .dc2-actions .actions{justify-content:flex-start}}

/* Resumen: los cuatro indicadores chicos, en la línea de «Registrar movimiento». */
body.ops-v2 .view-heading .kpi-compact{display:flex;flex-wrap:wrap;gap:8px;margin:0;grid-template-columns:none}
body.ops-v2 .kpi-compact>.kpi{min-height:0;padding:8px 12px;gap:0;flex:0 1 auto;min-width:120px;max-width:230px}
body.ops-v2 .kpi-compact>.kpi .label{font-size:11px;line-height:14px}
body.ops-v2 .kpi-compact>.kpi .value{font-size:18px;line-height:24px}
body.ops-v2 .kpi-compact>.kpi .sub{font-size:11px;line-height:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
/* Actividad: los filtros en la misma línea que el botón. */
body.ops-v2 .view-heading .act-filter{margin:0;flex-wrap:wrap}
/* Íconos de estado (#132): un ícono por etapa, estado de negociación, pago, filtro y tipo. Heredan el color del chip, 14 px, alineados al texto; los chips siguen pasando de línea sin desplazamiento horizontal. */
body.ops-v2 svg.st-ico{width:14px;height:14px;flex:none;vertical-align:-2px;stroke-width:2}
body.ops-v2 .w-chip.st-chip{display:inline-flex;align-items:center;gap:5px}
body.ops-v2 .w-chip.st-chip>svg.st-ico{width:14px;height:14px;opacity:.95}
body.ops-v2 .w-toggle.chip>svg.st-ico,body.ops-v2 .w-seg__item>svg.st-ico{width:14px;height:14px;margin-right:2px;opacity:.85}
body.ops-v2 .w-toggle.chip.active>svg.st-ico,body.ops-v2 .w-seg__item.on>svg.st-ico{opacity:1}
body.ops-v2 .col-head h3{display:flex;align-items:center;gap:6px;min-width:0}
body.ops-v2 .col-head h3>svg.st-ico{color:var(--ink-2,currentColor)}

/* ==== #131 Más en menos: cifras y filtros en la línea del botón principal (Pagos, Royal Box, Clientes,
   Proveedores, Decisiones, Favoritos, Ideas de inversión, Importadoras). El grupo de acciones puede achicarse y
   envolver dentro del ancho; el botón principal sigue último, a la derecha. ==== */
body.ops-v2 .view-heading>.actions{flex:1 1 auto;min-width:0;max-width:100%;justify-content:flex-end}
body.ops-v2 .view-heading .kpi-compact{flex:1 1 auto;min-width:0;justify-content:flex-end}
body.ops-v2 .view-heading .kpi-compact>.kpi{flex:1 1 130px}
body.ops-v2 .view-heading .kpi-compact>.kpi-toggle{text-align:left}
body.ops-v2 .fav-filters{display:flex;flex-direction:column;gap:var(--sp-2)}
body.ops-v2 .fav-filters .orders-toolbar>.chips{margin:0}
@media(max-width:1440px){body.ops-v2 .fav-filters #fv-reset{min-width:var(--control);padding-inline:0;justify-content:center}body.ops-v2 .fav-filters #fv-reset .lbl{display:none}}
@media(max-width:767px){
 body.ops-v2 .view-heading .kpi-compact{width:100%;justify-content:flex-start}
 body.ops-v2 .view-heading .kpi-compact>.kpi{flex:1 1 calc(50% - 8px);max-width:none;min-width:0}
 body.ops-v2 .fav-filters #fv-reset{width:auto;min-width:var(--control);padding-inline:0;justify-content:center}
 body.ops-v2 .fav-filters #fv-reset .lbl{display:none}
 body.ops-v2 .fav-filters .orders-toolbar>.chips{flex:1 1 0;min-width:0}
}

/* ==== #133 Proveedores: la tabla entra en el ancho (sin desplazamiento lateral ni interno), logo, enlace al perfil
   de Alibaba y acciones rápidas (Subir logo / Crear ficha). Columnas: 1 Proveedor · 2 Pedidos · 3 Comprado ·
   4 En curso · 5 Negoc. abiertas · 6 Último pedido · 7 Ficha. Proveedor se queda con el resto del ancho. ==== */
body.ops-v2 .pv-table>.w-table{table-layout:fixed;width:100%}
body.ops-v2 .pv-table th,body.ops-v2 .pv-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ops-v2 .pv-table th:nth-child(2){width:92px}
body.ops-v2 .pv-table th:nth-child(3){width:140px}
body.ops-v2 .pv-table th:nth-child(4){width:118px}
body.ops-v2 .pv-table th:nth-child(5){width:132px}
body.ops-v2 .pv-table th:nth-child(6){width:128px}
body.ops-v2 .pv-table th:nth-child(7){width:232px}
body.ops-v2 .pv-table .pv-name{min-width:0}
body.ops-v2 .pv-table .pv-name>span:not(.kg-av){flex:1 1 auto;min-width:0}
body.ops-v2 .pv-name-line{display:flex;align-items:center;gap:6px;min-width:0}
body.ops-v2 .pv-name-line .ops-row-open{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ops-v2 .pv-link{flex:none;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:var(--radius-sm);color:var(--muted)}
body.ops-v2 .pv-link:hover,body.ops-v2 .pv-link:focus-visible{color:var(--accent);background:var(--hover)}
body.ops-v2 .pv-link svg{width:14px;height:14px}
body.ops-v2 .pv-ficha{display:flex;align-items:center;gap:6px;min-width:0}
body.ops-v2 .pv-ficha .w-chip{flex:none}
body.ops-v2 .pv-act{gap:4px}
body.ops-v2 .pv-act svg{width:14px;height:14px;flex:none}
@media(max-width:1440px){body.ops-v2 .pv-table th:nth-child(7){width:150px}body.ops-v2 .pv-ficha .pv-act .lbl{display:none}body.ops-v2 .pv-ficha .pv-act{min-width:var(--control);padding-inline:0;justify-content:center}}
@media(max-width:1180px){body.ops-v2 .pv-table :is(th,td):is(:nth-child(4),:nth-child(6)){display:none}}
@media(max-width:760px){body.ops-v2 .pv-table :is(th,td):is(:nth-child(2),:nth-child(5)){display:none}body.ops-v2 .pv-table th:nth-child(3){width:112px}body.ops-v2 .pv-table th:nth-child(7){width:80px}body.ops-v2 .pv-ficha .w-chip,body.ops-v2 .pv-table .pv-act .lbl{display:none}body.ops-v2 .pv-table .pv-act{min-width:var(--control);padding-inline:0;justify-content:center}}
/* ===== Selector con búsqueda (combo.js, issue #136): mejora los <select> largos (pedidos) sin reemplazarlos. ===== */
.ops-combo-src{display:none!important}
.ops-combo{position:relative;min-width:0;width:100%}
.ops-combo-tr{display:flex;align-items:center;gap:10px;width:100%;min-width:0;min-height:var(--control,40px);height:auto;padding:6px 10px;text-align:left;cursor:pointer;background:var(--w-surface,var(--surface));color:var(--w-ink,var(--ink));font:inherit}
.ops-combo-tr:disabled{cursor:not-allowed;opacity:.6}
.ops-combo.on .ops-combo-tr{border-color:var(--w-accent,var(--accent));box-shadow:0 0 0 3px var(--w-accent-line,color-mix(in srgb,var(--accent) 25%,transparent))}
.ops-combo-car{flex:none;margin-left:auto;color:var(--w-muted,var(--muted));transition:transform .15s}
.ops-combo.on .ops-combo-car{transform:rotate(180deg)}
.ops-combo-media{position:relative;flex:none;display:flex;align-items:center}
.ops-combo-ph{width:32px;height:32px;border-radius:8px;object-fit:cover;flex:none;background:var(--w-surface-2,var(--chip));border:1px solid var(--w-line,var(--line))}
.ops-combo-ini{display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--w-ink-2,var(--ink-2))}
.ops-combo-av{position:absolute;right:-6px;bottom:-6px;line-height:0}
.ops-combo-av .kg-av{width:18px;height:18px;border-radius:5px;font-size:8px;border:1.5px solid var(--w-surface,var(--surface))}
.ops-combo-txt{display:flex;flex-direction:column;min-width:0;flex:1 1 auto;gap:1px}
.ops-combo-txt>b{font-weight:600;font-size:14px;line-height:19px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ops-combo-txt>small{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;font-size:12px;line-height:17px;color:var(--w-muted,var(--muted));min-width:0}
.ops-combo-txt>small>span:not(.w-chip){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.ops-combo-txt>small>i{font-style:normal;opacity:.6}
.ops-combo-ph-txt>b{font-weight:500;color:var(--w-muted,var(--muted))}
.ops-combo-chip{font-size:11px;line-height:16px;padding:0 6px;min-height:0}
.ops-combo-amt{flex:none;font-size:12px;color:var(--w-ink-2,var(--ink-2));white-space:nowrap}
.ops-combo-panel{position:absolute;z-index:60;left:0;top:calc(100% + 4px);width:max(100%,min(460px,calc(100vw - 32px)));display:flex;flex-direction:column;max-height:min(420px,70vh);background:var(--w-surface,var(--surface));color:var(--w-ink,var(--ink));border:1px solid var(--w-line-strong,var(--line));border-radius:var(--w-radius-lg,12px);box-shadow:var(--w-shadow,0 12px 32px rgba(0,0,0,.18));overflow:hidden}
.ops-combo-panel[hidden]{display:none}
.ops-combo-panel.ops-combo-der{left:auto;right:0}
.ops-combo-head{display:flex;gap:6px;align-items:center;padding:8px;border-bottom:1px solid var(--w-line,var(--line))}
.ops-combo-q{flex:1 1 auto;min-width:0;min-height:36px}
.ops-combo-x{flex:none;width:36px;height:36px;border:0;border-radius:8px;background:transparent;color:var(--w-muted,var(--muted));font-size:20px;line-height:1;cursor:pointer;display:none}
.ops-combo-lb{overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:4px;flex:1 1 auto;min-height:0}
.ops-combo-g{position:sticky;top:-4px;z-index:1;padding:8px 8px 4px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--w-muted,var(--muted));background:var(--w-surface,var(--surface))}
.ops-combo-opt{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:8px;cursor:pointer;min-width:0}
.ops-combo-opt.on{background:var(--w-surface-2,var(--chip))}
.ops-combo-opt[aria-selected=true]{box-shadow:inset 3px 0 0 var(--w-accent,var(--accent))}
.ops-combo-opt[aria-selected=true] .ops-combo-txt>b{color:var(--w-accent,var(--accent))}
.ops-combo-opt--vacio .ops-combo-txt>b{font-weight:500;color:var(--w-muted,var(--muted))}
.ops-combo-empty{margin:0;padding:16px 8px;text-align:center;color:var(--w-muted,var(--muted));font-size:13px;overflow-wrap:anywhere}
.ops-combo-foot{padding:6px 12px;font-size:12px;color:var(--w-muted,var(--muted));border-top:1px solid var(--w-line,var(--line))}
.ops-combo-foot[hidden]{display:none}
@media (max-width:760px){
 .ops-combo-panel.ops-combo-sheet{position:fixed;z-index:1000;left:0;right:0;top:auto;bottom:0;width:auto;max-height:min(80vh,80dvh);border-radius:var(--w-radius-lg,16px) var(--w-radius-lg,16px) 0 0;border-width:1px 0 0;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -12px 40px rgba(0,0,0,.28)}
 .ops-combo-x{display:block}
 .ops-combo-q{font-size:16px}
 .ops-combo-opt{padding:10px 8px}
}
.form-grid>.w-field:has(>.ops-combo){grid-column:1/-1}
.ops-combo-tr .ops-combo-txt>small{flex-wrap:nowrap;overflow:hidden}
.ops-combo-tr .ops-combo-txt>small>span:not(.w-chip){flex:0 1 auto;min-width:0}
.ops-combo-tr .ops-combo-txt>small>.w-chip{flex:none}
@media (prefers-reduced-motion:reduce){.ops-combo-car{transition:none}}
/* Logística modular (issue #135): selector de empresa debajo del encabezado; se acomoda en varias líneas en vez de desplazarse a lo ancho. */
body.ops-v2 #p-royal .chips.log-tabs{display:flex;flex-wrap:wrap;overflow:visible;gap:4px;margin:0 0 12px;max-width:100%}
body.ops-v2 #p-royal .chips.log-tabs>.w-toggle{flex:none;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
body.ops-v2 #p-royal .view-heading .actions{flex-wrap:wrap}
/* Logística modular (issue #135): direcciones de depósito por empresa, con copiar por dato. */
body.ops-v2 .dir-panel{margin-top:12px}
body.ops-v2 .dir-panel .xp-card-head{flex-wrap:wrap;gap:8px}
body.ops-v2 .dir-acts{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;margin-left:auto}
body.ops-v2 .dir-list{display:grid;gap:10px}
body.ops-v2 .dir-card{border:1px solid var(--line-3);border-radius:12px;padding:10px 12px;min-width:0}
body.ops-v2 .dir-head{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:6px}
body.ops-v2 .dir-fields{display:grid;gap:4px;margin:0}
body.ops-v2 .dir-f{display:grid;grid-template-columns:minmax(110px,160px) minmax(0,1fr);gap:8px;align-items:center}
body.ops-v2 .dir-f dt{font-size:12px;color:var(--muted)}
body.ops-v2 .dir-f dd{margin:0;display:flex;gap:6px;align-items:center;min-width:0}
body.ops-v2 .dir-f dd span{min-width:0;overflow-wrap:anywhere;font-size:13px}
body.ops-v2 .dir-f .dir-copy{flex:none;margin-left:auto}
body.ops-v2 .dir-pred{display:flex;gap:8px;align-items:center;font-size:13px;margin:4px 0 8px}
@media (max-width:640px){body.ops-v2 .dir-f{grid-template-columns:1fr}}
/* Ajustes (issue #135): tabla de valores más densa; los campos se ajustan a su contenido y el botón es chico. */
body.ops-v2 .cfg-row{grid-template-columns:minmax(0,1fr) auto auto;padding:6px 12px}
body.ops-v2 .cfg-row .w-input{width:260px;max-width:100%;justify-self:end}
body.ops-v2 .cfg-row .w-input.cfg-num,body.ops-v2 .cfg-row .w-input[data-monto]{width:120px;text-align:right;font-variant-numeric:tabular-nums}
body.ops-v2 .cfg-fwd{margin:0 0 8px}
@media (max-width:640px){body.ops-v2 .cfg-row{grid-template-columns:minmax(0,1fr) auto}body.ops-v2 .cfg-row .w-input{width:100%}}
body.ops-v2 .cfg-row .ops-money{width:150px;max-width:100%;justify-self:end}body.ops-v2 .cfg-row .ops-money .w-input{width:100%}

/* ---- Pedidos (v1.0.121): chips que entran, nombre en dos líneas y la lupa sin «…» ----
   Los chips de Pago y Envío pasan a dos líneas en vez de cortarse, con el ícono centrado; el producto
   muestra hasta dos líneas; la última columna (Ficha) no recorta ni agrega puntos suspensivos. */
body.ops-v2 .orders-table th:nth-child(6){width:116px}
body.ops-v2 .orders-table th:nth-child(11){width:64px}
body.ops-v2 .orders-table :is(th,td):last-child{overflow:visible;text-overflow:clip;text-align:center}
body.ops-v2 .orders-table td:is(:nth-child(4),:nth-child(6),:nth-child(7)){white-space:normal}
body.ops-v2 .orders-table td .w-chip{display:inline-flex;align-items:center;gap:5px;max-width:100%;white-space:normal;line-height:1.2;text-align:left;padding-block:3px;overflow:visible}
body.ops-v2 .orders-table td .w-chip>svg{flex:none;align-self:center}
body.ops-v2 .orders-table .ot-prod>span{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3}
body.ops-v2 .orders-table .ot-nro .tipo-chip{font-size:10.5px;padding:0 6px;gap:3px;line-height:16px}
body.ops-v2 .orders-table .ot-nro .tipo-chip>svg{width:12px;height:12px}
/* Proveedor en la ficha: logo, nombre que lleva a Alibaba o a la ficha, y «Ver perfil». */
body.ops-v2 .xp-prov-id{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
body.ops-v2 .xp-prov-txt{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 140px}
body.ops-v2 .xp-prov-btn{all:unset;cursor:pointer;color:var(--ink-strong,var(--w-ink));text-decoration:underline;text-decoration-color:var(--line-3);text-underline-offset:3px}
body.ops-v2 .xp-prov-btn:hover{color:var(--accent)}
body.ops-v2 .xp-prov-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
body.ops-v2 .xp-prov-ali{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--accent)}
body.ops-v2 .xp-prov-ali svg{width:12px;height:12px}
body.ops-v2 .xp-prov-perfil svg{width:14px;height:14px}

/* ---- Pedidos: filtros compactos (v1.0.122) ----
   Fila 1: buscador que ocupa el resto, orden, vista y restablecer (solo ícono).
   Fila 2: estados en chips chicos y «Filtros avanzados» a la derecha, en la misma línea; al abrirse ocupa todo el ancho. */
body.ops-v2 .orders-filters{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:8px;padding:10px 12px;align-items:center}
body.ops-v2 .orders-filters>.orders-toolbar{grid-column:1 / -1;flex-wrap:nowrap;gap:8px}
body.ops-v2 .orders-filters .orders-search{flex:1 1 auto;max-width:none;min-height:38px}
body.ops-v2 .orders-filters .orders-toolbar>.w-field{flex:0 0 180px}
body.ops-v2 .orders-filters .orders-toolbar select{min-height:38px;padding-top:14px;padding-bottom:2px}
body.ops-v2 .orders-filters #fp-reset{min-width:38px;min-height:38px;padding-inline:0;justify-content:center}
body.ops-v2 .orders-filters #fp-reset .lbl{display:none}
body.ops-v2 .orders-filters #fp-e{grid-column:1;flex-wrap:wrap;gap:6px;margin:0}
body.ops-v2 .orders-filters #fp-e .chip{min-height:30px;padding:0 10px;font-size:13px;gap:5px}
body.ops-v2 .orders-filters #fp-e .chip .n{font-size:11px}
body.ops-v2 .orders-filters #fp-advanced{grid-column:2;grid-row:2;border-top:0;align-self:start}
body.ops-v2 .orders-filters #fp-advanced>summary{min-height:30px;padding:0 10px;border:1px solid var(--line-3);border-radius:999px;font-size:12px;white-space:nowrap}
body.ops-v2 .orders-filters #fp-advanced>summary::after{margin-left:4px}
body.ops-v2 .orders-filters #fp-advanced[open]{grid-column:1 / -1;grid-row:auto}
body.ops-v2 .orders-filters #fp-advanced[open]>summary{display:inline-flex}
body.ops-v2 .orders-filters .advanced-grid{padding-top:8px}
@media(max-width:760px){body.ops-v2 .orders-filters{grid-template-columns:minmax(0,1fr)}body.ops-v2 .orders-filters>.orders-toolbar{flex-wrap:wrap}body.ops-v2 .orders-filters .orders-search{flex-basis:100%}body.ops-v2 .orders-filters .orders-toolbar>.w-field{flex:1 1 140px}body.ops-v2 .orders-filters #fp-advanced{grid-column:1;grid-row:auto}}

/* ---- Un color por estado (v1.0.122): columnas del Pipeline y filtros de estado de Pedidos ----
   La barra de arriba, el ícono y un fondo suave de la columna llevan el color de su estado; los chips de estado usan el mismo color. */
body.ops-v2 .col[data-col="nuevo"],body.ops-v2 #fp-e [data-v="nuevo"]{--st:#7C3AED}
body.ops-v2 .col[data-col="contactado"],body.ops-v2 #fp-e [data-v="contactado"]{--st:#0284C7}
body.ops-v2 .col[data-col="negociando"],body.ops-v2 #fp-e [data-v="negociando"]{--st:#D97706}
body.ops-v2 .col[data-col="dato"],body.ops-v2 #fp-e [data-v="dato"]{--st:#E11D48}
body.ops-v2 .col[data-col="vos"],body.ops-v2 #fp-e [data-v="vos"]{--st:#C026D3}
body.ops-v2 .col[data-col="cotizado"],body.ops-v2 #fp-e [data-v="cotizado"]{--st:#059669}
body.ops-v2 .col[data-col="pendiente"],body.ops-v2 #fp-e [data-v="pendiente"]{--st:#EA580C}
body.ops-v2 .col[data-col="produccion"],body.ops-v2 #fp-e [data-v="produccion"]{--st:#4F46E5}
body.ops-v2 .col[data-col="transito"],body.ops-v2 #fp-e [data-v="transito"]{--st:#2563EB}
body.ops-v2 .col[data-col="deposito"],body.ops-v2 #fp-e [data-v="deposito"]{--st:#0D9488}
body.ops-v2 .col[data-col="embarcado"],body.ops-v2 #fp-e [data-v="embarcado"]{--st:#0891B2}
body.ops-v2 .col[data-col="retirar"],body.ops-v2 #fp-e [data-v="retirar"]{--st:#65A30D}
body.ops-v2 .col[data-col="ingreso_py"],body.ops-v2 #fp-e [data-v="ingreso_py"]{--st:#16A34A}
body.ops-v2 .col[data-col="desinfeccion"],body.ops-v2 #fp-e [data-v="desinfeccion"]{--st:#64748B}
body.ops-v2 .col[data-col="embalaje"],body.ops-v2 #fp-e [data-v="embalaje"]{--st:#A16207}
body.ops-v2 .col[data-col="completado"],body.ops-v2 #fp-e [data-v="completado"]{--st:#15803D}
body.ops-v2 .col[data-col="cancelado"],body.ops-v2 #fp-e [data-v="cancelado"]{--st:#9CA3AF}
body.ops-v2 .col[data-col]{border-top:3px solid var(--st,var(--line-2));background:color-mix(in srgb,var(--st,transparent) 6%,var(--rib))}
body.ops-v2 .col[data-col] .col-head h3>svg,body.ops-v2 .col[data-col] .col-head h3>svg.st-ico{color:var(--st)}
body.ops-v2 .col[data-col] .col-head .n{background:color-mix(in srgb,var(--st) 14%,transparent);color:var(--st);border-color:color-mix(in srgb,var(--st) 30%,transparent)}
body.ops-v2 .col[data-col] .col-usd{color:color-mix(in srgb,var(--st) 70%,var(--muted))}
body.ops-v2 #fp-e [data-v]>svg.st-ico{color:var(--st,currentColor);opacity:1}
body.ops-v2 #fp-e [data-v].active{border-color:var(--st,var(--accent));background:color-mix(in srgb,var(--st,var(--accent)) 12%,transparent)}

/* ---- Selector de etapas premium (v1.0.123): ícono y color de cada estado, sin buscador en listas cortas ---- */
body.ops-v2 .ops-combo-ico[data-st="nuevo"]{--st:#7C3AED}
body.ops-v2 .ops-combo-ico[data-st="contactado"]{--st:#0284C7}
body.ops-v2 .ops-combo-ico[data-st="negociando"]{--st:#D97706}
body.ops-v2 .ops-combo-ico[data-st="dato"]{--st:#E11D48}
body.ops-v2 .ops-combo-ico[data-st="vos"]{--st:#C026D3}
body.ops-v2 .ops-combo-ico[data-st="cotizado"]{--st:#059669}
body.ops-v2 .ops-combo-ico[data-st="listo"]{--st:#059669}
body.ops-v2 .ops-combo-ico[data-st="pendiente"]{--st:#EA580C}
body.ops-v2 .ops-combo-ico[data-st="produccion"]{--st:#4F46E5}
body.ops-v2 .ops-combo-ico[data-st="transito"]{--st:#2563EB}
body.ops-v2 .ops-combo-ico[data-st="deposito"]{--st:#0D9488}
body.ops-v2 .ops-combo-ico[data-st="embarcado"]{--st:#0891B2}
body.ops-v2 .ops-combo-ico[data-st="retirar"]{--st:#65A30D}
body.ops-v2 .ops-combo-ico[data-st="ingreso_py"]{--st:#16A34A}
body.ops-v2 .ops-combo-ico[data-st="desinfeccion"]{--st:#64748B}
body.ops-v2 .ops-combo-ico[data-st="embalaje"]{--st:#A16207}
body.ops-v2 .ops-combo-ico[data-st="completado"]{--st:#15803D}
body.ops-v2 .ops-combo-ico[data-st="cancelado"]{--st:#9CA3AF}
body.ops-v2 .ops-combo-ico{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:color-mix(in srgb,var(--st,var(--accent)) 14%,transparent);color:var(--st,var(--accent));flex:none}
body.ops-v2 .ops-combo-ico svg{width:16px;height:16px}
/* Oculto a la vista pero enfocable: el combobox pone el foco en el buscador al abrir; con display:none el foco se perdía y se cerraba solo. */
body.ops-v2 .ops-combo--corto .ops-combo-head{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
body.ops-v2 .ops-combo--etapa .ops-combo-tr{min-height:40px;padding-block:4px}
body.ops-v2 .ops-combo--etapa .ops-combo-tr .ops-combo-ico{width:26px;height:26px;border-radius:8px}
body.ops-v2 .ops-combo--etapa [role=option]{min-height:40px;border-radius:10px}
body.ops-v2 .ops-combo--etapa [role=option][aria-selected=true]{background:color-mix(in srgb,var(--accent) 10%,transparent)}
body.ops-v2 .ops-combo--etapa .ops-combo-txt small:empty{display:none}

/* ---- Pulido de Pedidos, Clientes, Proveedores y Favoritos (v1.0.124) ---- */
/* Tabla de pedidos con esquinas redondeadas en los dos lados (clip no crea scroll, el encabezado sigue fijo). */
body.ops-v2 .orders-table.w-table-wrap{overflow:clip;border-radius:var(--w-radius-lg,16px)}
body.ops-v2 .orders-table th:nth-child(2){width:84px}
body.ops-v2 .orders-table .ot-fecha{display:flex;flex-direction:column;line-height:1.25}
body.ops-v2 .orders-table .ot-fecha small{font-size:11px;color:var(--w-muted)}
body.ops-v2 .orders-table td:nth-child(2){white-space:normal}
/* Chips de Pago/Envío completos (nunca recortados) y la última columna sin «…». */
body.ops-v2 .orders-table td:is(:nth-child(6),:nth-child(7)){overflow:visible;text-overflow:clip}
body.ops-v2 .orders-table td:is(:nth-child(6),:nth-child(7)) .w-chip{white-space:normal;overflow:visible;text-overflow:clip;word-break:normal}
body.ops-v2 .orders-table :is(th,td):last-child{overflow:visible!important;text-overflow:clip!important}
/* Clientes y Proveedores: buscador a la izquierda en la misma fila que las cifras y el botón. */
body.ops-v2 .view-heading>.actions>.ops-toolbar{flex:1 1 280px;margin:0;min-width:220px;max-width:460px;margin-right:auto}
body.ops-v2 .view-heading>.actions>.ops-toolbar .orders-search{flex:1 1 auto;max-width:none}
@media(max-width:760px){body.ops-v2 .view-heading>.actions>.ops-toolbar{flex-basis:100%;max-width:none}}
/* Favoritos: filtros en dos líneas compactas (buscador + orden + restablecer; rubros en chips chicos). */
body.ops-v2 .fav-filters{padding:10px 12px;gap:8px}
body.ops-v2 .fav-filters>.orders-toolbar{flex-wrap:nowrap;gap:8px}
body.ops-v2 .fav-filters .orders-search{flex:1 1 auto;max-width:none;min-height:38px}
body.ops-v2 .fav-filters #fv-o{flex:none;gap:0;border:1px solid var(--line-3);border-radius:10px;padding:2px;margin:0}
body.ops-v2 .fav-filters #fv-o .chip{border:0;min-height:32px;padding:0 10px;font-size:13px;border-radius:8px}
body.ops-v2 .fav-filters #fv-reset{min-width:38px;min-height:38px;padding-inline:0;justify-content:center}
body.ops-v2 .fav-filters #fv-reset .lbl{display:none}
body.ops-v2 .fav-filters #fv-cat{gap:6px;margin:0;flex-wrap:wrap}
body.ops-v2 .fav-filters #fv-cat .chip{min-height:30px;padding:0 10px;font-size:13px}
@media(max-width:900px){body.ops-v2 .fav-filters>.orders-toolbar{flex-wrap:wrap}body.ops-v2 .fav-filters .orders-search{flex-basis:100%}}
/* Direcciones de depósito: una dirección por tarjeta, cada dato en su fila (no columnas finitas con letras sueltas). */
body.ops-v2 .dir-panel dl.dir-fields{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:6px;width:100%}
body.ops-v2 .dir-panel .dir-f{grid-column:1 / -1;grid-template-columns:minmax(96px,150px) minmax(0,1fr)}
body.ops-v2 .dir-panel .dir-f dd span{overflow-wrap:break-word;word-break:normal;white-space:normal}
body.ops-v2 .dir-panel .dir-acts{margin-left:0}
@media (max-width:1180px){body.ops-v2 .dir-panel .dir-f{grid-template-columns:minmax(0,1fr)}}

/* Desplegable abierto encima de todo (v1.0.126): la tarjeta, la columna y el grupo que lo contienen suben de capa
   mientras está abierto, así los selectores y etiquetas de las tarjetas de abajo no lo tapan. */
body.ops-v2 .ops-combo:has(>.ops-combo-panel:not([hidden])){z-index:90}
body.ops-v2 :is(.kc,.kg,.kl,.col,.pgroup,.pgroup-cols,.w-card,.xp-card,.dc,.order-card,.ops-panel,.xp-form,.w-field,label):has(.ops-combo-panel:not([hidden])){position:relative;z-index:80}
body.ops-v2 .ops-combo-panel:not([hidden]){z-index:100;box-shadow:0 24px 48px -16px rgba(0,0,0,.35)}

/* ---- Más espacio útil (v1.0.128): menú más angosto y márgenes laterales chicos ----
   El menú pasa de 248 a 212 px; el contenido deja 12-16 px a cada lado en vez de 24-40. El tablero del Pipeline
   llega hasta los bordes del área para no cortarse con el margen. */
body.ops-v2 .ops-layout.app{--sidebar-width:212px}
body.ops-v2.admin-nav-collapsed .ops-layout.app,html.admin-nav-collapsed body.ops-v2 .ops-layout.app{--sidebar-width:72px}
body.ops-v2 .operations-rail{padding-inline:8px}
body.ops-v2 .operations-rail .nav-item{padding-inline:10px!important}
body.ops-v2 .ui-main{padding:14px 16px 24px}
@media(max-width:1180px){body.ops-v2 .ui-main{padding:12px 12px 20px}}
body.ops-v2 #p-pipeline .pipe-wrap{margin-inline:-16px;padding-inline:16px}
@media(max-width:1180px){body.ops-v2 #p-pipeline .pipe-wrap{margin-inline:-12px;padding-inline:12px}}

/* Compartidos (issue #150): lo compartido con la cuenta, en lectura, y la gestión de personas y pedidos compartidos. */
body.ops-v2 .cp-admin{display:grid;gap:16px;margin-bottom:24px}
body.ops-v2 .cp-titulo{font-size:18px;margin:8px 0 4px}
body.ops-v2 .cp-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr))}
body.ops-v2 .cp-card{padding:16px 18px!important;display:grid;gap:12px;align-content:start}
body.ops-v2 .cp-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 16px;align-items:flex-start}
body.ops-v2 .cp-head h3{margin:0;font-size:16px;overflow-wrap:anywhere}
body.ops-v2 .cp-head small,body.ops-v2 .cp-por small{display:block;color:var(--muted)}
body.ops-v2 .cp-por{display:flex;gap:10px;align-items:center;font-size:var(--fs-13)}
body.ops-v2 .cp-av{width:32px;height:32px;border-radius:50%;object-fit:cover;flex:none}
body.ops-v2 span.cp-av{font-size:12px}
body.ops-v2 .cp-items{list-style:none;margin:0;padding:0;display:grid;gap:10px}
body.ops-v2 .cp-items li{display:flex;gap:12px;align-items:center}
body.ops-v2 .cp-items img,body.ops-v2 .cp-ph{width:52px;height:52px;border-radius:10px;object-fit:cover;flex:none;border:1px solid var(--line);display:grid;place-items:center}
body.ops-v2 .cp-items b{display:block;overflow-wrap:anywhere}
body.ops-v2 .cp-items small{color:var(--muted)}
body.ops-v2 .cp-tl{list-style:none;margin:0;padding:0}
body.ops-v2 .cp-tl li{position:relative;padding:0 0 12px 26px;color:var(--muted)}
body.ops-v2 .cp-tl li::before{content:"";position:absolute;left:5px;top:6px;width:11px;height:11px;border-radius:50%;border:2px solid var(--line);background:var(--panel-adm)}
body.ops-v2 .cp-tl li::after{content:"";position:absolute;left:11px;top:20px;bottom:0;width:2px;background:var(--line)}
body.ops-v2 .cp-tl li:last-child::after{display:none}
body.ops-v2 .cp-tl li.hecho{color:var(--ink)}
body.ops-v2 .cp-tl li.hecho::before{background:#1d6b43;border-color:#1d6b43}
body.ops-v2 .cp-tl li.actual{color:var(--ink);font-weight:600}
body.ops-v2 .cp-tl li.actual::before{background:var(--accent);border-color:var(--accent)}
body.ops-v2 .cp-tl small{display:block;font-weight:400;color:var(--muted)}
body.ops-v2 .cp-costos h4{margin:4px 0 8px}
body.ops-v2 .cp-add{display:flex;flex-wrap:wrap;gap:8px}
body.ops-v2 .cp-add .w-input{flex:1 1 200px;min-width:0}
body.ops-v2 .xp-compartir .cp-nivel{width:auto;min-width:0}

/* Tablas en el celular (2026-11-03): sin desplazamiento lateral. Cada fila es una tarjeta y cada celda
   muestra el título de su columna (data-label, puesto por opsTable). */
@media(max-width:640px){
  body.ops-v2 .ops-table.w-table-wrap{overflow:visible;max-height:none;border:0;background:none}
  body.ops-v2 .ops-table>.w-table{display:block;min-width:0;width:100%;table-layout:auto}
  body.ops-v2 .ops-table>.w-table>thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  body.ops-v2 .ops-table>.w-table>:is(tbody,tfoot){display:flex;flex-direction:column;gap:8px}
  body.ops-v2 .ops-table>.w-table>tfoot{margin-top:8px}
  body.ops-v2 .ops-table>.w-table>:is(tbody,tfoot)>tr{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
  body.ops-v2 .ops-table>.w-table>:is(tbody,tfoot)>tr>td{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;max-width:none;width:auto;padding:3px 0;border:0;white-space:normal;overflow:visible;text-align:right;overflow-wrap:anywhere}
  body.ops-v2 .ops-table>.w-table>:is(tbody,tfoot)>tr>td::before{content:attr(data-label);flex:none;max-width:45%;color:var(--muted,currentColor);opacity:.75;font-size:12px;text-align:left}
  body.ops-v2 .ops-table>.w-table>:is(tbody,tfoot)>tr>td:not([data-label]){justify-content:flex-start;text-align:left}
  body.ops-v2 .ops-table>.w-table>:is(tbody,tfoot)>tr>td:not([data-label])::before{content:none}
  body.ops-v2 .ops-table>.w-table>:is(tbody,tfoot)>tr>td:first-child{font-weight:600}
  body.ops-v2 .ops-table>.w-table>:is(tbody,tfoot)>tr>td:empty{display:none}
}

/* Importar de Royal y alerta previa (#156) */
body.ops-v2 .royal-asignar{display:flex;gap:6px;align-items:center;min-width:0}
body.ops-v2 .royal-asignar select{min-width:0;flex:1 1 180px;max-width:280px}
body.ops-v2 .royal-pegar{font-family:var(--font-mono,ui-monospace,monospace);font-size:12px;white-space:pre;min-height:140px}
body.ops-v2 .ri-resumen{margin:12px 0}
body.ops-v2 .royal-alerta{white-space:pre-wrap;overflow-wrap:anywhere;margin:12px 0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--rib);font-family:var(--font-mono,ui-monospace,monospace);font-size:12.5px;line-height:1.6}
body.ops-v2 .xp-card-head>.actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}

/* Auditoría UX (2026-11-04) · #159 contraste: el naranja del botón primario con texto blanco llega a 5,2:1 (antes 3,6:1),
   los bordes de los campos a 3:1 y el foco del buscador se ve. */
html:root[data-theme=light]:has(body.ops-v2){--w-accent:#C2410C;--w-accent-hover:#9A3412;--accent:#C2410C}
@media (prefers-color-scheme:light){html:root:not([data-theme]):has(body.ops-v2){--w-accent:#C2410C;--w-accent-hover:#9A3412;--accent:#C2410C}}
html:root:has(body.ops-v2){--ops-input-line:#8A909C}
html:root[data-theme=dark]:has(body.ops-v2){--ops-input-line:#6B7280}
body.ops-v2 :is(.w-input,.ops-search,.ops-combo-tr):not(:focus):not(:focus-within){border-color:var(--ops-input-line)}
body.ops-v2 .ops-search:focus-within{outline:2px solid var(--w-accent);outline-offset:2px}
.ops-ai-msg.me{color:#fff}
:root[data-theme=dark] .ops-ai-msg.me{color:#1A0D05}
/* #160/#164: el aviso puede llevar «Deshacer» y cerrarse; un error queda hasta que se cierra. */
.toast{display:flex;align-items:center;gap:10px}
.toast .toast-btn{border:0;background:none;color:inherit;font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:4px 2px;min-height:32px}
.toast .toast-x{border:0;background:none;color:inherit;font-size:18px;line-height:1;cursor:pointer;min-width:32px;min-height:32px;opacity:.8}
.toast .toast-x:hover{opacity:1}
body.ops-v2 .w-btn--danger-text{color:var(--w-danger);border-color:color-mix(in srgb,var(--w-danger) 40%,transparent)}
body.ops-v2 .w-btn--danger-text:hover{background:var(--w-danger-soft)}

/* Auditoría UX · #162 celular. El asistente no tapa el contenido: se deja espacio abajo y en el celular es un círculo. */
body.ops-v2 .ui-main{padding-bottom:88px}
@media(max-width:640px){
  .ops-ai-fab .ops-ai-lbl{display:none}
  #ops-ai .ops-ai-fab{width:52px;height:52px;min-height:52px;padding:0;display:grid;place-items:center;font-size:20px}
  /* Filtros de estado y cifras: una fila que se desliza, no seis filas antes del primer pedido. */
  body.ops-v2 :is(#fp-e,.act-filter,.fav-cats,.chips.period-bar){flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;padding-bottom:2px}
  body.ops-v2 :is(#fp-e,.act-filter,.fav-cats,.chips.period-bar)::-webkit-scrollbar{display:none}
  body.ops-v2 :is(#fp-e,.act-filter,.fav-cats,.chips.period-bar)>*{flex:none;scroll-snap-align:start}
  body.ops-v2 .kpi-row.kpi-compact{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:8px;scroll-snap-type:x proximity}
  body.ops-v2 .kpi-row.kpi-compact::-webkit-scrollbar{display:none}
  body.ops-v2 .kpi-row.kpi-compact>*{flex:0 0 min(46%,180px);scroll-snap-align:start}
  /* Tablas en tarjetas: la primera celda es el título de la tarjeta, sin etiqueta y a lo ancho. */
  body.ops-v2 .ops-table>.w-table>tbody>tr>td:first-child{justify-content:flex-start;text-align:left;padding-bottom:6px;border-bottom:1px solid var(--line);margin-bottom:4px}
  body.ops-v2 .ops-table>.w-table>tbody>tr>td:first-child::before{content:none}
  body.ops-v2 .ops-table>.w-table>:is(tbody,tfoot)>tr>td::before{font-family:var(--w-font,system-ui)}
  /* Paso a paso de etapas en vertical, sin desplazarse de costado. */
  body.ops-v2 ol.xp-stepper{min-width:0;flex-direction:column;gap:2px}
  body.ops-v2 .xp-stepper-wrap,body.ops-v2 :has(>ol.xp-stepper){overflow-x:visible}
  body.ops-v2 #datos>i{display:none}
}
@media(max-width:640px){
  body.ops-v2 .xp-stepper-card{overflow-x:visible}
  body.ops-v2 .xp-stepper li{flex:none;flex-direction:row;align-items:center;text-align:left;gap:10px;padding:3px 0}
  body.ops-v2 .xp-stepper li::before{top:-50%;left:13px;right:auto;width:2px;height:100%}
}
/* #165: estados vacíos con ícono, centrados y legibles. */
body.ops-v2 .ui-state.ops-empty{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:28px 16px;color:var(--muted)}
body.ops-v2 .ops-empty-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--rib);color:var(--muted)}
body.ops-v2 .ops-empty-ico svg{width:20px;height:20px}
body.ops-v2 .fk-mover{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;margin:12px 0}
body.ops-v2 .fk-mover .w-field{flex:1 1 200px;margin:0}
/* Esperando a quién (#214) y aviso de duplicado (#211) en el detalle de una negociación. */
body.ops-v2 .fk-espera{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;margin:12px 0}
body.ops-v2 .fk-espera .w-field{flex:1 1 180px;margin:0}
body.ops-v2 .fk-espera .msg{flex-basis:100%;margin:0}
body.ops-v2 .fk-dup .actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
body.ops-v2 .fk-falta{display:block;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ops-v2 .espera-chip{white-space:nowrap}
/* #169: controles de logística arriba de la lista. */
body.ops-v2 .log-alertas{margin-bottom:12px}
body.ops-v2 .log-alertas h3{display:flex;align-items:center;gap:8px}
body.ops-v2 .log-alertas ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
body.ops-v2 .log-alertas li{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0}
body.ops-v2 .log-alertas li b{margin-right:4px}
@media(max-width:640px){body.ops-v2 .log-alertas li{flex-direction:column;align-items:flex-start}}

/* Menú corto (2026-11-04): un grupo de una sola opción no lleva título, solo un separador; las secciones hermanas son pestañas. */
body.ops-v2 #nav .nav-label--solo{font-size:0;line-height:0;height:1px;margin:10px 12px;padding:0;background:var(--line);overflow:hidden}
body.ops-v2 .ops-subnav{display:flex;gap:4px;margin:0 0 14px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--surface);width:max-content;max-width:100%;overflow-x:auto;scrollbar-width:none}
body.ops-v2 .ops-subnav[hidden]{display:none}
body.ops-v2 .ops-subnav::-webkit-scrollbar{display:none}
body.ops-v2 .ops-subnav-tab{flex:none;border:0;background:none;color:var(--muted);font:inherit;font-size:13px;font-weight:600;padding:7px 14px;border-radius:9px;cursor:pointer;min-height:34px;white-space:nowrap}
body.ops-v2 .ops-subnav-tab:hover{color:var(--ink);background:var(--rib)}
body.ops-v2 .ops-subnav-tab.on{color:var(--ink);background:var(--rib);box-shadow:inset 0 0 0 1px var(--line)}
body.ops-v2 .ops-subnav-tab:focus-visible{outline:2px solid var(--w-accent);outline-offset:2px}

/* Cabecera compacta (pedido del dueño, 2026-11-04): las pestañas de la sección y «Datos al…» comparten una línea,
   y las cifras y los botones van en una sola fila más baja. Nada de filas medio vacías arriba de la lista. */
body.ops-v2 .ops-data-bar{margin:0 0 10px;gap:6px 10px;min-height:38px}
body.ops-v2 .ops-data-bar>.ops-subnav{margin:0;padding:3px;border-radius:10px}
body.ops-v2 .ops-data-bar>.ops-subnav .ops-subnav-tab{min-height:30px;padding:5px 12px}
body.ops-v2.ui-app .ops-data-bar #datos,body.ops-v2 .ui-app .ops-data-bar #datos{flex-direction:row;align-items:baseline;gap:6px;min-height:30px;white-space:nowrap}
body.ops-v2 .ops-data-bar #datos b{font-size:12.5px}
body.ops-v2 .ops-data-bar #datos i{font-size:11.5px}
body.ops-v2 .ops-data-bar #horario-cn{margin-left:auto}
body.ops-v2 .kpi-compact>.kpi{padding:6px 10px;border-radius:10px}
body.ops-v2 .kpi-compact>.kpi .value{font-size:16px;line-height:20px}
body.ops-v2 .kpi-compact>.kpi .label,body.ops-v2 .kpi-compact>.kpi .sub{font-size:11px;line-height:14px}
@media(min-width:1100px){
  body.ops-v2 .view-heading>.actions,body.ops-v2 #p-royal .view-heading .actions{flex-wrap:nowrap;align-items:center}
  body.ops-v2 .view-heading .kpi-compact{flex:1 1 auto;flex-wrap:nowrap;min-width:0}
  body.ops-v2 .view-heading .kpi-compact>.kpi{flex:1 1 0;min-width:92px;max-width:210px}
  body.ops-v2 .view-heading>.actions>.w-btn{flex:none}
}

/* Ancho del Pipeline a elección (2026-11-04): las columnas siguen --pipe-col y las tarjetas se acomodan a ese ancho. */
body.ops-v2 #p-pipeline .col{width:var(--pipe-col,268px);position:relative;container-type:inline-size}
body.ops-v2 #p-pipeline .col.col-sup{width:calc(var(--pipe-col,268px) + 32px)}
body.ops-v2 .col-resize{position:absolute;top:0;right:-10px;width:12px;height:100%;cursor:col-resize;z-index:3;touch-action:none}
body.ops-v2 .col-resize::after{content:"";position:absolute;top:8px;bottom:8px;left:5px;width:2px;border-radius:2px;background:transparent;transition:background .15s}
body.ops-v2 .col-resize:hover::after,html.pipe-resizing body.ops-v2 .col-resize::after{background:var(--w-accent)}
html.pipe-resizing,html.pipe-resizing *{cursor:col-resize!important;user-select:none}
body.ops-v2 .pipe-ancho{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--muted)}
body.ops-v2 .pipe-ancho svg{width:16px;height:16px;transform:rotate(90deg)}
body.ops-v2 .pipe-ancho input{width:96px;accent-color:var(--w-accent)}
/* Modo compacto: con columnas angostas, tarjetas más densas como en el panel anterior. */
@container (max-width:240px){
  body.ops-v2 .kc{padding:8px;gap:6px}
  body.ops-v2 .kc-top{gap:8px}
  body.ops-v2 .kc-top .product-photo{width:34px;height:34px}
  body.ops-v2 .kc-open b{font-size:12.5px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  body.ops-v2 .kc-open i{font-size:11px}
  body.ops-v2 .kc-meta{font-size:11px;gap:4px}
  body.ops-v2 .kg-head{padding:8px 8px 6px;gap:6px}
  body.ops-v2 .kg-head .kg-name i{display:none}
  body.ops-v2 .kl-open--foto{grid-template-columns:30px minmax(0,1fr);column-gap:8px}
  body.ops-v2 .kl-open--foto>.product-photo{width:30px;height:30px}
  body.ops-v2 .kl-open b{font-size:12px}
  body.ops-v2 .kl-open>i.mono{display:none}
  body.ops-v2 .col-head h3{font-size:12.5px}
}

/* El mes en el Resumen (2026-11-04): metas, cifras chicas y gráficos por día. */
body.ops-v2 .mes-sec{margin:16px 0}
body.ops-v2 .mes-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 10px}
body.ops-v2 .mes-head h2{margin:0;font-size:20px;font-weight:650;letter-spacing:-.02em}
body.ops-v2 .mes-sel{margin-left:auto}
body.ops-v2 .mes-sel select{min-width:170px;height:36px}
body.ops-v2 .mes-goals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
body.ops-v2 .mes-goal{padding:14px 16px;display:grid;gap:6px;border-radius:14px}
body.ops-v2 .mes-goal-top{display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}
body.ops-v2 .mes-goal-top b{font-size:13px}
body.ops-v2 .mes-goal[data-tone=ok] .mes-goal-top b{color:var(--ok)}
body.ops-v2 .mes-goal[data-tone=warn] .mes-goal-top b{color:var(--warn)}
body.ops-v2 .mes-goal[data-tone=bad] .mes-goal-top b{color:var(--bad)}
body.ops-v2 .mes-goal-val{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
body.ops-v2 .mes-goal-val b{font-size:26px;line-height:32px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
body.ops-v2 .mes-goal-val span{color:var(--muted);font-size:13px}
body.ops-v2 .mes-goal .meter{height:6px;border-radius:99px;background:var(--rib);overflow:hidden}
body.ops-v2 .mes-goal .meter>span{display:block;height:100%;border-radius:inherit;background:var(--w-accent)}
body.ops-v2 .mes-goal[data-tone=ok] .meter>span{background:var(--ok)}
body.ops-v2 .mes-goal[data-tone=bad] .meter>span{background:var(--bad)}
body.ops-v2 .mes-goal p,body.ops-v2 .mes-mini p{margin:0;font-size:12px;color:var(--muted)}
body.ops-v2 .mes-minis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0}
body.ops-v2 .mes-mini{padding:12px 14px;display:grid;gap:2px;border-radius:14px}
body.ops-v2 .mes-mini>span{font-size:12.5px;color:var(--muted)}
body.ops-v2 .mes-mini>b{font-size:20px;line-height:26px;font-weight:700;font-variant-numeric:tabular-nums}
body.ops-v2 .mes-mini>b small{font-size:12px;font-weight:500;color:var(--muted)}
body.ops-v2 .mes-mini[data-tone=warn]>b{color:var(--warn)}
body.ops-v2 .mes-chart{display:block;width:100%;height:220px}
body.ops-v2 .ch-grid{stroke:var(--line);stroke-width:1}
body.ops-v2 .ch-ax{fill:var(--muted);font-size:10.5px;font-family:var(--w-font-mono,monospace)}
body.ops-v2 .ch-hoy{stroke:var(--muted);stroke-dasharray:3 4;stroke-width:1}
body.ops-v2 .ch-meta{stroke:var(--warn);stroke-dasharray:6 5;stroke-width:1.6}
body.ops-v2 .ch-meta-t{fill:var(--warn);font-size:11px;font-weight:650}
body.ops-v2 .ch-vacio{fill:var(--muted);font-size:13px}
body.ops-v2 .ch-firme{fill:#0D9488}body.ops-v2 .ch-sin{fill:color-mix(in srgb,#0D9488 40%,transparent)}
body.ops-v2 .ch-big{fill:var(--w-accent)}body.ops-v2 .ch-sample{fill:#2563EB}
body.ops-v2 .ch-ley{display:flex;gap:14px;flex-wrap:wrap;justify-content:flex-end;margin:-30px 0 6px;font-size:12px;color:var(--muted)}
body.ops-v2 .ch-ley span{display:inline-flex;align-items:center;gap:6px}
body.ops-v2 .ch-ley i{width:10px;height:10px;border-radius:3px;display:inline-block}
body.ops-v2 .ch-ley i.ch-firme{background:#0D9488}body.ops-v2 .ch-ley i.ch-sin{background:color-mix(in srgb,#0D9488 40%,transparent)}
body.ops-v2 .ch-ley i.ch-big{background:var(--w-accent)}body.ops-v2 .ch-ley i.ch-sample{background:#2563EB}
body.ops-v2 .dona{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
body.ops-v2 .dona svg{width:150px;height:150px;flex:none}
body.ops-v2 .dona-n{font-size:20px;font-weight:700;fill:var(--ink)}
body.ops-v2 .dona-u{font-size:11px;fill:var(--muted)}
body.ops-v2 .dona ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;flex:1 1 180px;min-width:0}
body.ops-v2 .dona li{display:grid;grid-template-columns:10px minmax(0,1fr) auto 38px;align-items:center;gap:8px;font-size:12.5px}
body.ops-v2 .dona li i{width:10px;height:10px;border-radius:3px}
body.ops-v2 .dona li small{color:var(--muted);text-align:right}
@media(max-width:900px){body.ops-v2 .mes-goals{grid-template-columns:1fr}body.ops-v2 .mes-minis{grid-template-columns:repeat(2,minmax(0,1fr))}body.ops-v2 .ch-ley{margin:0 0 6px;justify-content:flex-start}}
/* Menú: un grupo de una sola opción no lleva título ni línea, solo un poco de aire (reemplaza el separador). */
body.ops-v2 #nav .nav-label--solo{display:none}
/* Estimación con la tarifa de la empresa que trae el pedido (2026-11-04). */
body.ops-v2 .xp-estima{margin:10px 0 12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--rib);display:grid;gap:8px}
body.ops-v2 .xp-estima-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
body.ops-v2 .xp-estima-head b{display:inline-flex;align-items:center;gap:6px}
body.ops-v2 .xp-estima-head small{color:var(--muted)}
body.ops-v2 .xp-estima .w-field{margin:0;max-width:420px}
/* La versión va al final del contenido, alineada con las páginas, no debajo del menú. */
body.ops-v2 .ui-main>.ops-footer{margin:32px 0 0;padding:14px 0 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted);background:none}

/* Tarjetas que no se aprietan (2026-11-04): en Decisiones, si la tarjeta es angosta (vista en cuadrícula) los botones de
   respuesta bajan debajo del texto en vez de comerle el ancho; en el Pipeline angosto, ✓ ✕ y el selector de etapa van abajo. */
body.ops-v2 .dc2{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px 16px}
body.ops-v2 .dc2>.dc2-media{flex:none}
body.ops-v2 .dc2>.dc2-body{flex:1 1 300px;min-width:0}
body.ops-v2 .dc2>.dc2-actions{flex:0 1 auto;max-width:100%;margin-left:auto}
body.ops-v2 .dc2>.dc2-actions .actions{flex-wrap:wrap;justify-content:flex-end}
@container (max-width:300px){
  body.ops-v2 .kl{flex-wrap:wrap;align-items:flex-start}
  body.ops-v2 .kl>.kl-open{flex:1 1 100%}
  body.ops-v2 .kl>.kl-pick{margin-left:auto}
  body.ops-v2 .kc-open i{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
  body.ops-v2 .kc-move{width:100%}
  body.ops-v2 .kc-move .ops-combo,body.ops-v2 .kc-move .w-input{width:100%}
  body.ops-v2 .kl-open i.mono,body.ops-v2 .kl-open .mono{white-space:normal}
}
/* Pago sin comprobante: «Pagado» con un punto ámbar (el detalle va en el título y para lectores de pantalla). */
body.ops-v2 .st-chip .chip-flag{width:7px;height:7px;border-radius:50%;background:var(--warn);flex:none;margin-left:2px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Direcciones dentro de la tarjeta de cada empresa (Empresas y tarifas). */
body.ops-v2 .imp-dirs{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
body.ops-v2 .imp-dirs .dir-panel{border:0;box-shadow:none;padding:0;background:none}
body.ops-v2 .ops-table .ot-prod .tipo-chip{display:inline-flex;width:max-content;margin-top:4px}
/* Logística: el código de bulto y las fechas no se parten letra por letra; la tabla se acomoda al ancho. */
body.ops-v2 #p-royal .ops-table td.mono,body.ops-v2 #p-royal .ops-table td.numeric{white-space:nowrap}
body.ops-v2 #p-royal .ops-table td:nth-child(4){white-space:nowrap}
body.ops-v2 #p-royal .ops-table td:last-child .w-btn{white-space:nowrap}
/* Logística: el nombre del producto en dos líneas como máximo; el resto de las columnas tiene lugar. */
body.ops-v2 #p-royal .ops-table td:first-child{max-width:460px}
body.ops-v2 #p-royal .ops-table .ot-prod b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.ops-v2 #p-royal .ops-table .ot-prod small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
/* El pie siempre al fondo de la pantalla, aunque la página tenga poco contenido. */
body.ops-v2 .ui-main{display:flex;flex-direction:column;min-height:calc(100dvh - var(--ops-topbar,57px))}
body.ops-v2 .ui-main>*{min-width:0}
body.ops-v2 .ui-main>.ops-footer{margin-top:auto}
/* Fichas en ventana centrada y ancha; las tablas de adentro no se salen del recuadro y el producto va en dos líneas. */
#ops-detail.ancho .ops-dialog{max-width:min(880px,94vw)!important;width:94vw}
body.ops-v2 #ops-detail .ops-table.w-table-wrap{overflow-x:auto;max-width:100%}
body.ops-v2 #ops-detail .ops-table>.w-table{width:100%;min-width:0;table-layout:auto}
body.ops-v2 #ops-detail .ops-table td{white-space:normal}
body.ops-v2 #ops-detail .ops-table td:first-child{white-space:nowrap}
body.ops-v2 #ops-detail .ops-table .ot-prod b,body.ops-v2 #ops-detail .ops-table .ot-prod button b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}
/* Formulario de proveedor: dos campos por fila; los textos largos, la ayuda y los botones a lo ancho. */
body.ops-v2 #xv-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
body.ops-v2 #xv-form>.w-field{margin:0}
body.ops-v2 #xv-form>.w-field:has(textarea),body.ops-v2 #xv-form>:not(.w-field){grid-column:1 / -1}
@media(max-width:640px){body.ops-v2 #xv-form{grid-template-columns:1fr}}
body.ops-v2 .pv-act+.pv-act{margin-left:4px}
body.ops-v2 .kc-logo{width:16px;height:16px;border-radius:4px;object-fit:contain;background:#fff;vertical-align:-3px;margin-right:5px;border:1px solid var(--line)}

/* ===== Pedidos rediseñados (2026-11-04, Claude Design) ===== */
body.ops-v2 .ped-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:4px 0 14px}
body.ops-v2 .ped-kpi{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px rgba(11,13,18,.04)}
body.ops-v2 .ped-kpi>div{display:flex;flex-direction:column;gap:5px;min-width:0}
body.ops-v2 .ped-kpi-l{font-size:12.5px;color:var(--muted);font-weight:500}
body.ops-v2 .ped-kpi b{font-size:22px;line-height:28px;font-weight:600;letter-spacing:-.02em;white-space:nowrap}
body.ops-v2 .ped-kpi small{font-size:12px;color:var(--muted)}
body.ops-v2 .ped-kpi[data-tone=warn] small{color:var(--w-accent)}
body.ops-v2 .ped-kpi[data-tone=ok] small{color:var(--ok)}
body.ops-v2 .ped-spark{flex:none}
body.ops-v2 .ped-etapas{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px 20px 16px;margin:0 0 14px;display:grid;gap:14px}
body.ops-v2 .ped-etapas-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
body.ops-v2 .ped-etapas-head h2{margin:0;font-size:15px;font-weight:700}
body.ops-v2 .ped-etapas-head span{font-size:12.5px;color:var(--muted)}
body.ops-v2 .ped-barra{display:flex;gap:4px;height:12px}
body.ops-v2 .ped-barra span{border-radius:99px;min-width:6px;transition:opacity .2s}
body.ops-v2 #fp-e.ped-etapas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px;flex-wrap:initial;overflow:visible}
body.ops-v2 #fp-e .ped-et{display:flex;flex-direction:column;align-items:flex-start;gap:2px;height:auto;min-height:0;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);text-align:left;white-space:normal;box-shadow:none}
body.ops-v2 #fp-e .ped-et.active{border-color:var(--w-accent);background:color-mix(in srgb,var(--w-accent) 7%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--w-accent) 14%,transparent)}
body.ops-v2 #fp-e .ped-et-l{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);font-weight:500;line-height:1.25}
body.ops-v2 #fp-e .ped-et-l i{width:8px;height:8px;border-radius:50%;background:var(--st,var(--muted));flex:none}
body.ops-v2 #fp-e .ped-et b{font-size:20px;line-height:24px;font-weight:600;color:var(--ink)}
body.ops-v2 #fp-e .ped-et small{font-size:11px;color:var(--muted)}
/* filas-tarjeta: la tabla sigue siendo tabla, pero cada fila es una tarjeta con aire */
body.ops-v2 .orders-v3.w-table-wrap{border:0;background:none;box-shadow:none;max-height:none;overflow:visible}
body.ops-v2 .orders-v3>.w-table{table-layout:auto;border-collapse:separate;border-spacing:0 8px;width:100%;min-width:0}
body.ops-v2 .orders-v3 thead th{background:none!important;box-shadow:none!important;position:static;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:0 16px;width:auto!important;white-space:nowrap;overflow:visible}
body.ops-v2 .orders-v3 thead th .th-sort{font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit}
body.ops-v2 .orders-v3 tbody tr.ot-row{background:var(--surface);cursor:pointer}
body.ops-v2 .orders-v3 tbody td{padding:14px 16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:middle;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;max-width:none!important;width:auto!important;display:table-cell!important}
body.ops-v2 .orders-v3 tbody td:first-child{border-left:1px solid var(--line);border-radius:16px 0 0 16px;width:42%!important}
body.ops-v2 .orders-v3 tbody td:last-child{border-right:1px solid var(--line);border-radius:0 16px 16px 0;width:60px!important}
body.ops-v2 .orders-v3 tbody td:nth-child(2){width:24%!important}
body.ops-v2 .orders-v3 tbody td:nth-child(3){width:18%!important}
body.ops-v2 .orders-v3 tbody tr.ot-row:hover td{border-color:color-mix(in srgb,var(--st) 45%,var(--line))}
body.ops-v2 .orders-v3 tbody tr.ot-row:hover td:first-child{box-shadow:inset 3px 0 0 var(--st)}
body.ops-v2 .ot-ped{display:flex;align-items:center;gap:14px;min-width:0}
body.ops-v2 .ot-ped .product-photo,body.ops-v2 .ot-thumb{width:52px;height:52px;flex:none;border-radius:12px;object-fit:cover;background:#fff;border:1px solid var(--line)}
body.ops-v2 .ot-thumb{display:grid;place-items:center;color:#9A3412;background:#FFF1E6;border-color:#FBD5BC}
body.ops-v2 .ot-thumb[data-tp=muestra]{color:#1D4ED8;background:#EAF1FF;border-color:#CFDDFB}
body.ops-v2 .ot-thumb svg{width:20px;height:20px}
body.ops-v2 .ot-ped-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
body.ops-v2 .ot-ped-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
body.ops-v2 .ot-ped-top>b{font-size:12.5px;color:var(--ink-2)}
body.ops-v2 .ot-ped-top>small{font-size:11.5px;color:var(--muted)}
body.ops-v2 .ot-ped-top .tipo-chip{margin:0;font-size:11px;padding:1px 8px}
body.ops-v2 .ot-ped-pr{font-size:15px;line-height:20px;font-weight:600;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.ops-v2 .ot-ped-pv{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.ops-v2 .ot-etapa{display:grid;gap:8px}
body.ops-v2 .ot-rail{display:flex;gap:4px}
body.ops-v2 .ot-rail span{flex:1 1 0;height:6px;border-radius:99px;background:var(--line)}
body.ops-v2 .ot-rail span.ok{background:var(--st);opacity:.45}
body.ops-v2 .ot-rail span.now{background:var(--st);box-shadow:0 0 0 3px color-mix(in srgb,var(--st) 18%,transparent)}
body.ops-v2 .ot-etapa-txt{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
body.ops-v2 .ot-etapa-txt b{font-size:13px;font-weight:600}
body.ops-v2 .ot-etapa-txt small{font-size:12px;color:var(--muted)}
body.ops-v2 .ot-pago{display:grid;gap:8px}
body.ops-v2 .ot-pago-bar{height:8px;border-radius:99px;background:var(--rib);overflow:hidden}
body.ops-v2 .ot-pago-bar span{display:block;height:100%;border-radius:inherit;background:#F59E0B}
body.ops-v2 .ot-pago[data-p=ok] .ot-pago-bar span{background:#16A34A}
body.ops-v2 .ot-pago-txt{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}
body.ops-v2 .ot-pago-txt b{font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:6px}
body.ops-v2 .ot-pago[data-p=ok] .ot-pago-txt b{color:var(--ok)}
body.ops-v2 .ot-pago[data-p=parcial] .ot-pago-txt b{color:var(--warn)}
body.ops-v2 .ot-pago[data-p=pend] .ot-pago-txt b{color:var(--w-accent)}
body.ops-v2 .ot-pago-txt small{font-size:11.5px;color:var(--muted)}
body.ops-v2 .ot-total{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
body.ops-v2 .ot-total b{font-size:16px;font-weight:600}
body.ops-v2 .ot-total small{font-size:11.5px;color:var(--muted)}
body.ops-v2 .orders-v3 .ot-ver{width:44px;height:44px;border-radius:12px}
@media(max-width:1100px){body.ops-v2 .ped-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){body.ops-v2 .ped-kpis{grid-template-columns:1fr 1fr}body.ops-v2 .ped-kpi{padding:12px}body.ops-v2 .ped-spark{display:none}}
body.ops-v2 .ot-ped-ali{font-size:11px;color:var(--muted);opacity:.85}

/* ===== El estilo del rediseño de Pedidos en las demás páginas (2026-11-04) =====
   Cifras como tarjetas con aire y tablas como filas-tarjeta (en el celular siguen apilándose). */
body.ops-v2 .kpi-compact>.kpi{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px rgba(11,13,18,.04);padding:10px 14px}
body.ops-v2 .kpi-compact>.kpi .label{color:var(--muted);font-weight:500;font-size:12px}
body.ops-v2 .kpi-compact>.kpi .value{font-family:var(--w-font-mono,'JetBrains Mono',monospace);font-variant-numeric:tabular-nums;font-size:18px;line-height:24px;font-weight:600;letter-spacing:-.02em}
body.ops-v2 .kpi-compact>.kpi.on{border-color:var(--w-accent);background:color-mix(in srgb,var(--w-accent) 7%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--w-accent) 14%,transparent)}
body.ops-v2 .ui-panel,body.ops-v2 .w-card.ops-panel{border-radius:18px}
@media(min-width:641px){
  body.ops-v2 .ops-table.w-table-wrap{border:0;background:none;box-shadow:none}
  body.ops-v2 .ops-table>.w-table{border-collapse:separate;border-spacing:0 6px;background:none}
  body.ops-v2 .ops-table>.w-table>thead th{background:none!important;box-shadow:none!important;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:2px 14px;border:0}
  body.ops-v2 .ops-table>.w-table>tbody>tr{background:var(--surface)}
  body.ops-v2 .ops-table>.w-table>tbody>tr>td{padding:12px 14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:middle;background:var(--surface)}
  body.ops-v2 .ops-table>.w-table>tbody>tr>td:first-child{border-left:1px solid var(--line);border-radius:14px 0 0 14px}
  body.ops-v2 .ops-table>.w-table>tbody>tr>td:last-child{border-right:1px solid var(--line);border-radius:0 14px 14px 0}
  body.ops-v2 .ops-table>.w-table>tbody>tr:hover>td{border-color:color-mix(in srgb,var(--w-accent) 35%,var(--line))}
  body.ops-v2 .ops-table>.w-table>tfoot td{border:0;padding:8px 14px;font-weight:600}
  body.ops-v2 #ops-detail .ops-table>.w-table>tbody>tr>td{padding:10px 12px}
}
/* Pedidos v3: la tabla se dibuja como grilla para ocupar todo el ancho con las proporciones del diseño (las reglas viejas
   de anchos fijos por columna quedan sin efecto). Los roles de tabla van en el marcado. */
body.ops-v2 .orders-v3>.w-table,body.ops-v2 .orders-v3>.w-table>thead,body.ops-v2 .orders-v3>.w-table>tbody{display:block;width:100%;min-width:0}
body.ops-v2 .orders-v3>.w-table>tbody{display:grid;gap:8px}
body.ops-v2 .orders-v3 tr{display:grid!important;grid-template-columns:minmax(0,2.4fr) minmax(0,1.6fr) minmax(0,1.3fr) 130px 60px;align-items:center;column-gap:0}
body.ops-v2 .orders-v3 thead tr{padding:0 0 4px}
body.ops-v2 .orders-v3 tbody tr.ot-row{border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px rgba(11,13,18,.04);transition:border-color .15s,box-shadow .15s}
body.ops-v2 .orders-v3 tbody tr.ot-row:hover{border-color:color-mix(in srgb,var(--st) 50%,var(--line));box-shadow:inset 3px 0 0 var(--st),0 4px 14px -8px rgba(11,13,18,.25)}
body.ops-v2 .orders-v3 tbody td,body.ops-v2 .orders-v3 tbody td:first-child,body.ops-v2 .orders-v3 tbody td:last-child,body.ops-v2 .orders-v3 tbody td:nth-child(2),body.ops-v2 .orders-v3 tbody td:nth-child(3){display:block!important;width:auto!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:none;min-width:0}
body.ops-v2 .orders-v3 tbody tr.ot-row:hover td:first-child{box-shadow:none!important}
body.ops-v2 .orders-v3 thead th{display:block}
body.ops-v2 .orders-v3 thead th.numeric,body.ops-v2 .orders-v3 tbody td.numeric{text-align:right}
@media(max-width:1100px){body.ops-v2 .orders-v3 tr{grid-template-columns:minmax(0,2fr) minmax(0,1.4fr) minmax(0,1.2fr) 110px 56px}}
body.ops-v2 .orders-v3 tbody tr.xp-fila-orden{background:color-mix(in srgb,var(--w-accent) 5%,var(--surface))}
body.ops-v2 .orders-v3 tbody tr.xp-fila-orden td{background:none!important}

/* ===== Rediseño A: Resumen, Actividad, Decisiones =====
   El lenguaje de Pedidos v3 (2026-11-04): tarjetas blancas con borde fino, cifras como tarjetas en mono tabular,
   filas-tarjeta con aire, un punto de color por etapa o tipo y nada de gradientes ni bordes laterales de color. */
/* --- Resumen --- */
body.ops-v2 #p-inicio .res-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:4px 0 14px}
body.ops-v2 #p-inicio .res-kpis>.kpi{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:5px;min-height:0;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px rgba(11,13,18,.04);text-align:left;color:var(--ink);font:inherit}
body.ops-v2 #p-inicio .res-kpis>.kpi .label{font-size:12.5px;line-height:16px;color:var(--muted);font-weight:500}
body.ops-v2 #p-inicio .res-kpis>.kpi .value{font-family:var(--w-font-mono,'JetBrains Mono',monospace);font-variant-numeric:tabular-nums;font-size:22px;line-height:28px;font-weight:600;letter-spacing:-.02em;white-space:nowrap}
body.ops-v2 #p-inicio .res-kpis>.kpi .sub{font-size:12px;line-height:16px;color:var(--muted);white-space:normal}
body.ops-v2 #p-inicio .res-kpis>.kpi[data-tone=warn] .sub{color:var(--accent)}
body.ops-v2 #p-inicio .res-kpis>.kpi[data-tone=bad] .value{color:var(--bad)}
body.ops-v2 #p-inicio .res-kpis>button.kpi{cursor:pointer;transition:border-color .15s,box-shadow .15s}
body.ops-v2 #p-inicio .res-kpis>button.kpi:hover{border-color:color-mix(in srgb,var(--w-accent) 45%,var(--line));box-shadow:0 4px 14px -8px rgba(11,13,18,.25)}
body.ops-v2 #p-inicio .ops-panel>h3,body.ops-v2 #p-inicio .ruta-head h3{display:flex;align-items:center;gap:8px;font-size:15px;line-height:20px;font-weight:700;letter-spacing:-.01em}
body.ops-v2 #p-inicio .res-count{display:inline-grid;place-items:center;min-width:24px;height:22px;padding:0 7px;border-radius:99px;background:var(--chip);color:var(--ink-2);font-size:12px;font-weight:600}
/* Ruta del producto: barra proporcional y una tarjeta por etapa, con su color */
/* El mes: metas y cifras como tarjetas */
body.ops-v2 #p-inicio .mes-sec{margin:0 0 14px}
body.ops-v2 #p-inicio .mes-head{align-items:center;margin:0 0 12px}
body.ops-v2 #p-inicio .mes-head h2{font-size:18px;line-height:24px;font-weight:700}
body.ops-v2 #p-inicio .mes-goals{gap:14px}
body.ops-v2 #p-inicio .mes-goal,body.ops-v2 #p-inicio .mes-mini{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px rgba(11,13,18,.04)}
body.ops-v2 #p-inicio .mes-goal{padding:16px 18px;gap:8px}
body.ops-v2 #p-inicio .mes-goal-top{align-items:center;font-size:12.5px;font-weight:500}
body.ops-v2 #p-inicio .mes-goal-top b{font-family:var(--w-font-mono,'JetBrains Mono',monospace);font-size:12px;padding:2px 8px;border-radius:99px;background:var(--chip);color:var(--ink-2)}
body.ops-v2 #p-inicio .mes-goal[data-tone=ok] .mes-goal-top b{background:var(--ok-bg);color:var(--ok)}
body.ops-v2 #p-inicio .mes-goal[data-tone=warn] .mes-goal-top b{background:var(--warn-bg);color:var(--warn)}
body.ops-v2 #p-inicio .mes-goal[data-tone=bad] .mes-goal-top b{background:var(--bad-bg);color:var(--bad)}
body.ops-v2 #p-inicio .mes-goal-val b{font-family:var(--w-font-mono,'JetBrains Mono',monospace);font-size:24px;line-height:30px;font-weight:600}
body.ops-v2 #p-inicio .mes-goal .meter{height:8px;background:var(--rib)}
body.ops-v2 #p-inicio .mes-goal[data-tone=warn] .meter>span{background:#F59E0B}
body.ops-v2 #p-inicio .mes-minis{gap:14px;margin:14px 0}
body.ops-v2 #p-inicio .mes-mini{padding:14px 18px;gap:4px}
body.ops-v2 #p-inicio .mes-mini>b{font-family:var(--w-font-mono,'JetBrains Mono',monospace);font-size:18px;line-height:24px;font-weight:600}
body.ops-v2 #p-inicio .mes-mini>b small{font-family:var(--w-font-ui,inherit)}
body.ops-v2 #p-inicio .mes-mini[data-tone=warn]>span::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:#F59E0B;margin-right:6px;vertical-align:1px}
body.ops-v2 #p-inicio .mes-mini[data-tone=warn]>b{color:var(--ink)}
body.ops-v2 #p-inicio .dash-grid{gap:14px;margin:0 0 14px}
body.ops-v2 #p-inicio .ops-panel{padding:18px 20px;box-shadow:0 1px 2px rgba(11,13,18,.04)}
body.ops-v2 #p-inicio .ops-panel-body{gap:8px}
/* Filas-tarjeta de los paneles (plazos, decisiones, movimientos, arribos, Royal y alertas) */
body.ops-v2 #p-inicio .ops-panel-body>.ops-row,body.ops-v2 #p-inicio .ops-panel-body>.ops-row:first-child{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);transition:border-color .15s}
body.ops-v2 #p-inicio .ops-panel-body>.ops-row:hover{border-color:color-mix(in srgb,var(--w-accent) 35%,var(--line))}
body.ops-v2 #p-inicio .ops-row h3{font-size:14px;line-height:20px;font-weight:600;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.ops-v2 #p-inicio .ops-row p{font-size:12.5px;color:var(--muted);margin:2px 0 0}
body.ops-v2 #p-inicio .ops-row .product-photo{width:44px;height:44px;flex:none;border-radius:10px;object-fit:cover;background:#fff;border:1px solid var(--line)}
body.ops-v2 #p-inicio .res-row-end{display:flex;align-items:center;gap:8px;flex:none}
body.ops-v2 #p-inicio .res-fecha{display:grid;place-items:center;align-content:center;width:44px;height:44px;flex:none;border-radius:10px;background:var(--rib);border:1px solid var(--line)}
body.ops-v2 #p-inicio .res-fecha b{font-size:16px;line-height:18px;font-weight:600;color:var(--ink)}
body.ops-v2 #p-inicio .res-fecha small{font-size:10.5px;line-height:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
body.ops-v2 #p-inicio .res-row[data-tone=bad] .res-fecha{background:var(--bad-bg);border-color:var(--bad-line)}
body.ops-v2 #p-inicio .res-row[data-tone=bad] .res-fecha b{color:var(--bad)}
body.ops-v2 #p-inicio .res-row[data-tone=warn] .res-fecha{background:var(--warn-bg);border-color:var(--warn-line)}
body.ops-v2 #p-inicio .res-ico{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:10px;background:var(--accent-bg);color:var(--accent);border:1px solid var(--accent-line)}
body.ops-v2 #p-inicio .res-ico[data-k=pago]{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-line)}
body.ops-v2 #p-inicio .res-ico[data-k=decision]{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line)}
body.ops-v2 #p-inicio .res-ico svg{width:18px;height:18px}
body.ops-v2 #p-inicio .res-usd{font-variant-numeric:tabular-nums;white-space:nowrap}
body.ops-v2 #p-inicio .res-more{margin:2px 0 0;padding:0 4px;font-size:12px}
body.ops-v2 #p-inicio .arribos .ops-panel-body{gap:8px}
body.ops-v2 #p-inicio .arribo{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface);transition:border-color .15s}
body.ops-v2 #p-inicio .arribo:hover{background:var(--surface);border-color:color-mix(in srgb,var(--st) 50%,var(--line))}
body.ops-v2 #p-inicio .arribo-ico{border-radius:10px;color:var(--st);background:color-mix(in srgb,var(--st) 10%,var(--surface));border-color:color-mix(in srgb,var(--st) 25%,var(--line))}
body.ops-v2 #p-inicio .arribo-body b{font-weight:600}
body.ops-v2 #p-inicio .arribo-usd{font-weight:600}
@media(max-width:1100px){body.ops-v2 #p-inicio .res-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 body.ops-v2 #p-inicio .res-kpis{grid-template-columns:1fr 1fr;gap:10px}
 body.ops-v2 #p-inicio .res-kpis>.kpi{padding:12px}
 body.ops-v2 #p-inicio .res-kpis>.kpi .value{font-size:18px;line-height:24px}
 body.ops-v2 #p-inicio .ops-panel{padding:14px}
 body.ops-v2 #p-inicio .ops-panel-body>.ops-row{flex-wrap:wrap}
 body.ops-v2 #p-inicio .ops-row-body{flex:1 1 160px}
 body.ops-v2 #p-inicio .res-row-end{width:100%;justify-content:flex-end}
}
/* --- Actividad --- */
body.ops-v2 #p-actividad .act-kpis{margin:4px 0 14px}
body.ops-v2 #p-actividad .act-toolbar{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;margin:0 0 18px;border-radius:16px}
body.ops-v2 #p-actividad .act-filter{display:flex;flex-wrap:wrap;gap:6px;margin:0}
body.ops-v2 #p-actividad .act-filter .w-toggle{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:99px;border:1px solid var(--line);background:var(--surface);font-weight:500}
body.ops-v2 #p-actividad .act-filter .w-toggle>svg.st-ico{color:var(--st,var(--ink-2))}
body.ops-v2 #p-actividad .act-filter .w-toggle .n{font-size:11.5px;color:var(--muted);padding:0 6px;border-radius:99px;background:var(--chip)}
body.ops-v2 #p-actividad .act-filter .w-toggle.active{border-color:var(--w-accent);background:color-mix(in srgb,var(--w-accent) 7%,var(--surface));color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--w-accent) 14%,transparent)}
body.ops-v2 #p-actividad .act-toolbar-n{font-size:12.5px;color:var(--muted)}
body.ops-v2 #p-actividad .act-list{gap:20px}
body.ops-v2 #p-actividad .act-day{gap:8px}
body.ops-v2 #p-actividad .act-date{display:flex;align-items:center;gap:8px;padding:0 4px;margin:0;font-family:inherit;font-size:15px;line-height:20px;font-weight:700;letter-spacing:-.01em;text-transform:none;color:var(--ink)}
body.ops-v2 #p-actividad .act-date small{font-size:11.5px;font-weight:600;color:var(--muted);padding:1px 8px;border-radius:99px;background:var(--chip)}
body.ops-v2 #p-actividad .act-item{display:flex;align-items:center;gap:14px;padding:12px 16px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 1px 2px rgba(11,13,18,.04);animation:none;transition:border-color .15s,box-shadow .15s}
body.ops-v2 #p-actividad .act-item:hover{border-color:color-mix(in srgb,var(--st) 45%,var(--line));box-shadow:0 4px 14px -8px rgba(11,13,18,.25)}
body.ops-v2 #p-actividad .act-ico{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:12px;color:var(--st);background:color-mix(in srgb,var(--st) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--st) 25%,var(--line))}
body.ops-v2 #p-actividad .act-ico svg.st-ico{width:18px;height:18px}
body.ops-v2 #p-actividad .act-body{gap:2px}
body.ops-v2 #p-actividad .act-meta{gap:8px;font-size:12px}
body.ops-v2 #p-actividad .act-k{font-weight:600;color:var(--ink-2)}
body.ops-v2 #p-actividad .act-src{font-size:10.5px;letter-spacing:.04em;color:var(--muted);padding:1px 6px;border-radius:6px;background:var(--rib);border:1px solid var(--line)}
body.ops-v2 #p-actividad .act-t{margin:0;font-size:14px;line-height:20px;font-weight:600;color:var(--ink)}
body.ops-v2 #p-actividad .act-s{margin:0;font-size:12.5px;color:var(--muted)}
body.ops-v2 #p-actividad .act-det summary{color:var(--accent);font-weight:600}
body.ops-v2 #p-actividad .act-usd{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
body.ops-v2 #p-actividad .act-more{align-self:center;margin-top:4px}
@media(max-width:760px){
 body.ops-v2 #p-actividad .act-item{flex-wrap:wrap;padding:12px}
 body.ops-v2 #p-actividad .act-body{flex:1 1 180px}
 body.ops-v2 #p-actividad .act-item>.w-btn,body.ops-v2 #p-actividad .act-item>.act-usd{margin-left:54px}
}
/* --- Decisiones --- */
body.ops-v2 #p-decisiones .dec-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin:4px 0 18px}
body.ops-v2 #p-decisiones .ped-kpi[data-tone=bad] small{color:var(--bad)}
body.ops-v2 #p-decisiones .dec-sec{display:grid;gap:12px;margin:0 0 18px}
body.ops-v2 #p-decisiones .dec-sec-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:0 4px}
body.ops-v2 #p-decisiones .dec-sec-head h2{margin:0;font-size:15px;line-height:20px;font-weight:700}
body.ops-v2 #p-decisiones .dec-sec-head span{font-size:12.5px;color:var(--muted)}
body.ops-v2 #p-decisiones .dec-list{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
body.ops-v2 #p-decisiones .dc2{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:4px 18px;align-items:center;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 1px 2px rgba(11,13,18,.04);transition:border-color .15s,box-shadow .15s}
body.ops-v2 #p-decisiones .dc2:hover{border-color:color-mix(in srgb,var(--w-accent) 35%,var(--line));box-shadow:0 4px 14px -8px rgba(11,13,18,.25)}
body.ops-v2 #p-decisiones .dc2--urg{background:color-mix(in srgb,var(--bad) 3%,var(--surface));border-color:color-mix(in srgb,var(--bad) 30%,var(--line))}
body.ops-v2 #p-decisiones .dc2-media .product-photo{width:64px;height:64px;border-radius:12px;border:1px solid var(--line);object-fit:cover}
body.ops-v2 #p-decisiones .dc2-media .no-photo{display:grid;place-items:center;color:var(--warn);background:var(--warn-bg);border-color:var(--warn-line)}
body.ops-v2 #p-decisiones .dc2-body{gap:4px}
body.ops-v2 #p-decisiones .dc2-top{gap:6px}
body.ops-v2 #p-decisiones .dc2-meta{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
body.ops-v2 #p-decisiones .dc2-body>h3{margin:2px 0 0;font-size:15px;line-height:20px;font-weight:600;color:var(--ink);overflow-wrap:anywhere}
body.ops-v2 #p-decisiones .dc2-sub{margin:0;font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ops-v2 #p-decisiones .dc2 .dc-preview{color:var(--ink-3)}
body.ops-v2 #p-decisiones .dc2-actions{align-self:stretch;justify-content:center;align-items:flex-end;gap:8px;padding-left:18px;border-left:1px solid var(--line);max-width:min(320px,40vw)}
body.ops-v2 #p-decisiones .dc2-ask{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--muted)}
body.ops-v2 #p-decisiones .dc2-actions .w-btn{min-width:44px}
body.ops-v2 #p-decisiones .dc2--hecha{grid-template-columns:48px minmax(0,1fr);padding:12px 16px;box-shadow:none}
body.ops-v2 #p-decisiones .dc2--hecha .dc2-media .product-photo{width:48px;height:48px}
body.ops-v2 #p-decisiones .dc2-resp{margin:2px 0 0;font-size:12.5px;color:var(--muted)}
body.ops-v2 #p-decisiones .dc2-resp b{color:var(--ok);font-weight:600}
body.ops-v2 #p-decisiones>.ops-panel{padding:18px 20px;border-radius:18px}
body.ops-v2 #p-decisiones>.ops-panel>h3{font-size:15px;line-height:20px;font-weight:700}
@media(max-width:760px){
 body.ops-v2 #p-decisiones .dec-kpis{grid-template-columns:1fr 1fr 1fr;gap:8px}
 body.ops-v2 #p-decisiones .dc2{grid-template-columns:48px minmax(0,1fr);padding:14px}
 body.ops-v2 #p-decisiones .dc2-media .product-photo{width:48px;height:48px}
 body.ops-v2 #p-decisiones .dc2-actions{grid-column:1 / -1;align-items:stretch;padding:12px 0 0;border-left:0;border-top:1px solid var(--line);max-width:none}
 body.ops-v2 #p-decisiones .dc2-actions .actions{justify-content:flex-start}
}
/* Decisiones en cuadrícula (selector de vista): tarjetas más angostas, respuesta debajo */
body.ops-v2 #p-decisiones .dec-list.vista-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,440px),1fr));align-items:stretch}
body.ops-v2 #p-decisiones .dec-list.vista-grid>.dc2{grid-template-columns:56px minmax(0,1fr);align-items:start}
body.ops-v2 #p-decisiones .dec-list.vista-grid>.dc2 .dc2-media .product-photo{width:56px;height:56px}
body.ops-v2 #p-decisiones .dec-list.vista-grid>.dc2 .dc2-actions{grid-column:1 / -1;align-self:end;align-items:stretch;padding:12px 0 0;margin-top:8px;border-left:0;border-top:1px solid var(--line);max-width:none}
body.ops-v2 #p-decisiones .dec-list.vista-grid>.dc2 .dc2-actions .actions{justify-content:flex-start}
/* ===== Rediseño B: Pipeline e Ideas =====
   El lenguaje de Pedidos v3 en el tablero, Favoritos e Ideas de inversión: tarjetas blancas con borde fino, cifras en mono
   tabular, una línea de color de la etapa arriba de cada columna y chips Sample/Big iguales en todo el tablero. */
body.ops-v2 #p-pipeline .orders-mini b{font-family:var(--w-font-mono,'JetBrains Mono',monospace);font-variant-numeric:tabular-nums;font-size:15px}
body.ops-v2 #p-pipeline .pipe{gap:22px}
body.ops-v2 #p-pipeline .pgroup{gap:10px}
body.ops-v2 #p-pipeline .pgroup-head{font-family:inherit;font-size:11.5px;font-weight:600;letter-spacing:.07em;color:var(--muted);padding:0 2px}
body.ops-v2 #p-pipeline .pgroup-cols{gap:14px}
body.ops-v2 #p-pipeline .col[data-col]{background:color-mix(in srgb,var(--st,transparent) 3%,var(--rib));border:1px solid var(--line);border-radius:16px;padding:16px 10px 10px;gap:10px;box-shadow:none}
body.ops-v2 #p-pipeline .col[data-col]::before{content:"";position:absolute;top:-1px;left:14px;right:14px;height:3px;border-radius:0 0 3px 3px;background:var(--st,var(--line-3));pointer-events:none}
body.ops-v2 #p-pipeline .col.over{outline:2px solid var(--st,var(--w-accent));outline-offset:-2px;background:color-mix(in srgb,var(--st,transparent) 9%,var(--rib))}
body.ops-v2 #p-pipeline .col-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:8px;row-gap:4px;padding:0 4px 8px;border-bottom:1px solid var(--line)}
body.ops-v2 #p-pipeline .col-head h3{margin:0;font-size:13px;line-height:18px;font-weight:600;color:var(--ink);min-width:0}
body.ops-v2 #p-pipeline .col-head h3>svg{width:15px;height:15px;flex:none}
body.ops-v2 #p-pipeline .col[data-col] .col-head .n{font-family:var(--w-font-mono,'JetBrains Mono',monospace);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600;line-height:18px;min-width:26px;text-align:center;padding:1px 8px;border-radius:99px;border:0;background:color-mix(in srgb,var(--st) 12%,var(--surface));color:color-mix(in srgb,var(--st) 80%,var(--ink))}
body.ops-v2 #p-pipeline .col[data-col] .col-head .col-usd{grid-column:1 / -1;font-family:inherit;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
body.ops-v2 #p-pipeline .col-head .col-usd b{font-family:var(--w-font-mono,'JetBrains Mono',monospace);font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
body.ops-v2 #p-pipeline .col-body{gap:8px;padding:0}
body.ops-v2 #p-pipeline .col-body>.vacio{border:1px dashed var(--line-3,var(--line));border-radius:12px;padding:16px 10px;text-align:center;font-size:12px;color:var(--muted);background:color-mix(in srgb,var(--surface) 55%,transparent)}
body.ops-v2 #p-pipeline .col-body>.w-btn{min-height:34px;font-size:12.5px;border-radius:10px}
/* Tarjeta de pedido */
body.ops-v2 #p-pipeline .kc{gap:10px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px rgba(11,13,18,.04);transition:border-color .15s,box-shadow .15s}
body.ops-v2 #p-pipeline .kc:hover{transform:none;border-color:color-mix(in srgb,var(--st,var(--w-accent)) 45%,var(--line));box-shadow:0 4px 14px -8px rgba(11,13,18,.25)}
body.ops-v2 #p-pipeline .kc-top{gap:10px;align-items:flex-start}
body.ops-v2 #p-pipeline .kc-top .product-photo{width:44px;height:44px;flex:none;border-radius:10px;border:1px solid var(--line);background:#fff;object-fit:cover}
body.ops-v2 #p-pipeline .kc .b b{font-size:13.5px;line-height:18px;font-weight:600;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.ops-v2 #p-pipeline .kc .b i{font-size:12px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.ops-v2 #p-pipeline .kc-open:focus-visible,body.ops-v2 #p-pipeline .kl-open:focus-visible{outline:2px solid var(--w-accent);outline-offset:3px;border-radius:8px}
body.ops-v2 #p-pipeline .kc-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;padding-top:10px;border-top:1px solid var(--line)}
body.ops-v2 #p-pipeline .kc-meta .tipo-chip{margin-right:auto}
body.ops-v2 #p-pipeline .kc-usd{font-size:13.5px;font-weight:600;color:var(--ink);letter-spacing:-.01em;text-align:right}
body.ops-v2 #p-pipeline .kc-days{flex-basis:100%;display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted)}
body.ops-v2 #p-pipeline .kc-days::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--st,var(--muted));opacity:.7;flex:none}
body.ops-v2 #p-pipeline .kc-days.old{color:var(--warn);font-weight:600}
body.ops-v2 #p-pipeline .kc-days.old::before{background:var(--warn);opacity:1}
body.ops-v2 #p-pipeline .kc-move :is(select.w-input,.ops-combo button){min-height:32px;font-size:12px;border-radius:9px;border-color:var(--line)}
/* Chips Sample / Big iguales en todo el tablero */
body.ops-v2 #p-pipeline .tipo-chip{display:inline-flex;align-items:center;gap:4px;width:max-content;height:20px;min-height:0;margin:0;padding:0 8px;border-radius:99px;font-size:11px;font-weight:600;line-height:1;border:1px solid #FBD5BC;background:#FFF1E6;color:#9A3412;white-space:nowrap}
body.ops-v2 #p-pipeline .tipo-chip.w-chip--info{border-color:#CFDDFB;background:#EAF1FF;color:#1D4ED8}
body.ops-v2 #p-pipeline .tipo-chip svg{width:12px;height:12px;flex:none}
/* Tarjeta de proveedor (antes de pagar) */
body.ops-v2 #p-pipeline .kg{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px rgba(11,13,18,.04);animation:none}
body.ops-v2 #p-pipeline .kg:hover{border-color:color-mix(in srgb,var(--st,var(--w-accent)) 45%,var(--line));box-shadow:0 4px 14px -8px rgba(11,13,18,.25)}
body.ops-v2 #p-pipeline .kg-head{gap:10px;padding:12px 12px 10px}
body.ops-v2 #p-pipeline .kg-head .kg-av{width:34px;height:34px;border-radius:10px}
body.ops-v2 #p-pipeline .kg-name b{font-size:13.5px;font-weight:600;line-height:18px}
body.ops-v2 #p-pipeline .kg-name i{font-size:11.5px}
body.ops-v2 #p-pipeline .kg-n{font-size:11.5px;font-weight:600;padding:1px 8px;border-radius:99px;background:var(--rib);border:1px solid var(--line);color:var(--ink-2)}
body.ops-v2 #p-pipeline .kg-lines{padding:4px 6px;border-top:1px solid var(--line)}
body.ops-v2 #p-pipeline .kl{gap:8px;padding:8px 6px}
body.ops-v2 #p-pipeline .kl+.kl{border-top:1px solid var(--line)}
body.ops-v2 #p-pipeline .kl:hover{background:color-mix(in srgb,var(--rib) 70%,transparent)}
body.ops-v2 #p-pipeline .kl.si{background:color-mix(in srgb,var(--ok) 8%,transparent)}
body.ops-v2 #p-pipeline .kl-open b{font-size:13px;line-height:17px}
body.ops-v2 #p-pipeline .kl-open .tipo-chip{margin:4px 0 2px}
body.ops-v2 #p-pipeline .kl-open i.mono{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
body.ops-v2 #p-pipeline .kl-open--foto>.product-photo{border-radius:9px;border:1px solid var(--line)}
body.ops-v2 #p-pipeline .kl-m3{font-size:10.5px;padding:1px 6px;border-radius:6px;background:var(--rib);border:1px solid var(--line);color:var(--ink-2);width:max-content}
body.ops-v2 #p-pipeline .kl-pick{gap:4px}
body.ops-v2 #p-pipeline .kl-pick button{width:34px;min-width:34px;min-height:34px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--muted)}
body.ops-v2 #p-pipeline .kl-pick .kl-yes:hover{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,var(--line))}
body.ops-v2 #p-pipeline .kl-pick .kl-no:hover{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,var(--line))}
body.ops-v2 #p-pipeline .kl-pick .kl-yes[aria-pressed=true]{background:var(--ok);border-color:var(--ok);color:#fff}
body.ops-v2 #p-pipeline .kl-pick .kl-no[aria-pressed=true]{background:var(--bad);border-color:var(--bad);color:#fff}
body.ops-v2 #p-pipeline .kl-pick button:focus-visible{outline:2px solid var(--w-accent);outline-offset:2px}
body.ops-v2 #p-pipeline .kg-foot{padding:10px 12px 12px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--rib) 45%,var(--surface))}
body.ops-v2 #p-pipeline .kg-total i{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
body.ops-v2 #p-pipeline .kg-total b{font-size:15px;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
body.ops-v2 #p-pipeline .kg-apply{border-radius:10px}
@container (max-width:240px){
  body.ops-v2 #p-pipeline .kc{padding:9px;gap:8px}
  body.ops-v2 #p-pipeline .kc-top .product-photo{width:34px;height:34px;border-radius:8px}
  body.ops-v2 #p-pipeline .kc .b b{font-size:12.5px;line-height:16px}
  body.ops-v2 #p-pipeline .kc-meta{padding-top:8px}
  body.ops-v2 #p-pipeline .kc-usd{font-size:12.5px}
  body.ops-v2 #p-pipeline .col-head .col-usd b{font-size:13.5px}
  body.ops-v2 #p-pipeline .kl-pick button{width:30px;min-width:30px;min-height:30px}
}
@media (max-width:760px){body.ops-v2 #p-pipeline .col[data-col]{padding:14px 10px 10px}}

/* Favoritos: foto cuadrada, rubro arriba, precio en mono y MOQ como chip */
body.ops-v2 #p-favoritos .fav-filters{border-radius:16px}
body.ops-v2 #p-favoritos .fav-filters .chip .n{font-family:var(--w-font-mono,'JetBrains Mono',monospace);font-variant-numeric:tabular-nums;font-size:11px;color:var(--muted)}
body.ops-v2 #p-favoritos .fav-card{gap:10px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px rgba(11,13,18,.04);transition:border-color .15s,box-shadow .15s}
body.ops-v2 #p-favoritos .fav-card:hover{border-color:color-mix(in srgb,var(--w-accent) 35%,var(--line));box-shadow:0 4px 14px -8px rgba(11,13,18,.25)}
body.ops-v2 #p-favoritos .fav-card>.product-photo{border-radius:12px;border:1px solid var(--line);background:#fff}
body.ops-v2 #p-favoritos .fav-body{gap:5px}
body.ops-v2 #p-favoritos .fav-cat{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.ops-v2 #p-favoritos .fav-body h3{font-size:13.5px;line-height:18px;font-weight:600;color:var(--ink);min-height:36px}
body.ops-v2 #p-favoritos .fav-precio{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;margin:2px 0 0}
body.ops-v2 #p-favoritos .fav-precio b.mono{font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--ink);font-variant-numeric:tabular-nums}
body.ops-v2 #p-favoritos .fav-precio b.fav-sin{font-size:12.5px;font-weight:500;color:var(--muted)}
body.ops-v2 #p-favoritos .fav-moq{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:99px;font-size:11px;font-weight:600;background:var(--rib);border:1px solid var(--line);color:var(--ink-2);white-space:nowrap}
body.ops-v2 #p-favoritos .fav-body .card-meta{font-size:12px;color:var(--muted)}
body.ops-v2 #p-favoritos .fav-links{gap:6px;padding-top:10px;border-top:1px solid var(--line)}
body.ops-v2 #p-favoritos .fav-links .w-btn{min-height:34px;font-size:12.5px;border-radius:10px}
body.ops-v2 #p-favoritos .fav-links .w-btn:focus-visible{outline:2px solid var(--w-accent);outline-offset:2px}

/* Ideas de inversión: cabecera con foto, nombre y la tarifa que conviene; cifras en mono */
body.ops-v2 #p-inversion .xp-inv-layout .xp-side>.xp-card{border-radius:16px;border:1px solid var(--line);box-shadow:0 1px 2px rgba(11,13,18,.04)}
body.ops-v2 #p-inversion .xp-inv{padding:14px 16px!important;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px rgba(11,13,18,.04);transition:border-color .15s,box-shadow .15s}
body.ops-v2 #p-inversion .xp-inv:hover,body.ops-v2 #p-inversion .xp-inv[open]{border-color:color-mix(in srgb,var(--w-accent) 35%,var(--line))}
body.ops-v2 #p-inversion .xp-inv[open]{box-shadow:0 4px 14px -8px rgba(11,13,18,.25)}
body.ops-v2 #p-inversion .xp-inv>summary.xp-inv-head{gap:14px;border-radius:10px}
body.ops-v2 #p-inversion .xp-inv>summary:focus-visible{outline:2px solid var(--w-accent);outline-offset:4px}
body.ops-v2 #p-inversion .xp-inv>summary.xp-inv-head .product-photo{width:64px;height:64px;border-radius:12px;border:1px solid var(--line)}
body.ops-v2 #p-inversion .xp-inv-head .xp-line-body{display:flex;flex-direction:column;gap:3px;min-width:0}
body.ops-v2 #p-inversion .xp-inv-head .xp-line-body>b{font-size:15px;line-height:20px;font-weight:600;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.ops-v2 #p-inversion .xp-inv-head .xp-line-body>small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.ops-v2 #p-inversion .xp-inv-res{margin-top:4px;font-size:12.5px}
body.ops-v2 #p-inversion .xp-inv-res b{font-size:14px;font-weight:600;color:var(--ink)}
body.ops-v2 #p-inversion .xp-inv>summary::after{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;border:1px solid var(--line);font-size:14px;line-height:1}
body.ops-v2 #p-inversion .xp-inv-nums{gap:8px}
body.ops-v2 #p-inversion .xp-inv-nums div{gap:4px;padding:10px 12px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}
body.ops-v2 #p-inversion .xp-inv-nums span{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
body.ops-v2 #p-inversion .xp-inv-nums b{font-size:14.5px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
body.ops-v2 #p-inversion .xp-opt{border:1px solid var(--line);border-radius:14px;background:var(--surface)}
body.ops-v2 #p-inversion .xp-opt.on{border-color:var(--w-accent);background:color-mix(in srgb,var(--w-accent) 5%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--w-accent) 12%,transparent)}
body.ops-v2 #p-inversion .xp-mini dd{font-family:var(--w-font-mono,'JetBrains Mono',monospace);font-variant-numeric:tabular-nums}
body.ops-v2 #p-inversion .xp-opt-total{border-top-color:var(--line)}
body.ops-v2 #p-inversion .xp-opt-total b{font-size:17px;font-weight:600;letter-spacing:-.02em}
body.ops-v2 #p-inversion .xp-opt-total small{font-variant-numeric:tabular-nums}
@media (max-width:640px){body.ops-v2 #p-inversion .xp-inv>summary.xp-inv-head .product-photo{width:52px;height:52px}}
/* ===== Rediseño C: Logística, Pagos, Proveedores, Clientes ===== (2026-11-04)
   El lenguaje de Pedidos v3 en Logística (Royal y Empresas y tarifas), Pagos, Proveedores, Clientes y Compartidos:
   cifras con mini gráfico, filas-tarjeta con el color de la etapa, barras de días y de pago, tarjetas de empresa y tarifa.
   En el celular las .ops-table siguen apilándose como tarjetas (reglas de max-width:640px más arriba). */
/* Cifras: punto de la etapa y mini gráfico */
body.ops-v2 #p-royal .kpi-compact>.kpi-sp,body.ops-v2 #p-pagos .kpi-compact>.kpi-sp{position:relative;padding-right:64px}
body.ops-v2 #p-royal .kpi-sp .ped-spark,body.ops-v2 #p-pagos .kpi-sp .ped-spark{position:absolute;right:10px;bottom:10px;width:52px;height:22px}
body.ops-v2 #p-royal .kpi-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--st,var(--muted));margin-right:6px;vertical-align:1px}
body.ops-v2 #p-royal .kpi-compact>.kpi[data-tone=warn] .value,body.ops-v2 #p-pagos .kpi-compact>.kpi[data-tone=warn] .value,body.ops-v2 #p-proveedores .kpi-compact>.kpi[data-tone=warn] .value{color:var(--w-accent)}
@media(max-width:760px){body.ops-v2 #p-royal .kpi-compact>.kpi-sp,body.ops-v2 #p-pagos .kpi-compact>.kpi-sp{padding-right:10px}body.ops-v2 #p-royal .kpi-sp .ped-spark,body.ops-v2 #p-pagos .kpi-sp .ped-spark{display:none}}
/* Cifras en mono tabular */
body.ops-v2 #p-royal .ops-table .mono,body.ops-v2 #p-pagos .ops-table .mono,body.ops-v2 #p-proveedores .ops-table .mono,body.ops-v2 #p-clientes .ops-table .mono,body.ops-v2 #p-compartidos .ops-table .mono,body.ops-v2 #p-royal .ot-total b,body.ops-v2 #p-pagos .ot-total b,body.ops-v2 #p-clientes .ot-total b{font-family:var(--w-font-mono,'JetBrains Mono',monospace);font-variant-numeric:tabular-nums}
/* Filas-tarjeta con más aire; el color de la etapa aparece al pasar el mouse, como en Pedidos */
@media(min-width:641px){
  body.ops-v2 #p-royal .ops-table>.w-table,body.ops-v2 #p-pagos .ops-table>.w-table,body.ops-v2 #p-proveedores .ops-table>.w-table,body.ops-v2 #p-clientes .ops-table>.w-table,body.ops-v2 #p-compartidos .ops-table>.w-table{border-spacing:0 8px}
  body.ops-v2 #p-royal .lg-table>.w-table>tbody>tr>td,body.ops-v2 #p-pagos .pg-table>.w-table>tbody>tr>td,body.ops-v2 #p-proveedores .pv-table>.w-table>tbody>tr>td,body.ops-v2 #p-clientes .ops-table>.w-table>tbody>tr>td{padding:14px 16px}
  body.ops-v2 #p-royal .lg-table>.w-table>tbody>tr>td:first-child,body.ops-v2 #p-pagos .pg-table>.w-table>tbody>tr>td:first-child,body.ops-v2 #p-proveedores .pv-table>.w-table>tbody>tr>td:first-child,body.ops-v2 #p-clientes .ops-table>.w-table>tbody>tr>td:first-child{border-radius:16px 0 0 16px}
  body.ops-v2 #p-royal .lg-table>.w-table>tbody>tr>td:last-child,body.ops-v2 #p-pagos .pg-table>.w-table>tbody>tr>td:last-child,body.ops-v2 #p-proveedores .pv-table>.w-table>tbody>tr>td:last-child,body.ops-v2 #p-clientes .ops-table>.w-table>tbody>tr>td:last-child{border-radius:0 16px 16px 0}
  body.ops-v2 #p-royal .lg-table>.w-table>tbody>tr.lg-row:hover>td,body.ops-v2 #p-pagos .pg-table>.w-table>tbody>tr.pg-row:hover>td{border-color:color-mix(in srgb,var(--st) 50%,var(--line))}
  body.ops-v2 #p-royal .lg-table>.w-table>tbody>tr.lg-row:hover>td:first-child,body.ops-v2 #p-pagos .pg-table>.w-table>tbody>tr.pg-row:hover>td:first-child{box-shadow:inset 3px 0 0 var(--st)}
  body.ops-v2 #p-pagos .pg-table>.w-table>tbody>tr.ot-row,body.ops-v2 #p-proveedores .pv-table>.w-table>tbody>tr.ot-row,body.ops-v2 #p-clientes .ops-table>.w-table>tbody>tr.ot-row{cursor:pointer}
  body.ops-v2 #p-royal .lg-table .ot-ped,body.ops-v2 #p-pagos .pg-table .ot-ped{min-width:240px}
  body.ops-v2 #p-pagos .pg-table .ot-pago,body.ops-v2 #p-pagos .pg-table .ot-etapa{min-width:150px}
  body.ops-v2 #p-royal .lg-table .lg-ing{min-width:170px}
}
body.ops-v2 #p-royal .ot-ped .product-photo,body.ops-v2 #p-pagos .ot-ped .product-photo,body.ops-v2 #p-royal .ot-thumb,body.ops-v2 #p-pagos .ot-thumb{width:48px;height:48px;border-radius:12px}
body.ops-v2 #p-royal .ot-ped-pr,body.ops-v2 #p-pagos .ot-ped-pr{font-size:14px;line-height:19px}
body.ops-v2 #p-pagos .ot-ver{width:40px;height:40px;border-radius:12px}
/* Logística (Royal): bulto, ingreso con barra de días hacia el aviso, acción */
body.ops-v2 #p-royal .lg-bulto{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
body.ops-v2 #p-royal .lg-bulto .mono{display:inline-block;padding:2px 8px;border-radius:8px;background:var(--chip);border:1px solid var(--line);font-size:12.5px;color:var(--ink-2)}
body.ops-v2 #p-royal .lg-bulto small,body.ops-v2 #p-royal .lg-track{font-size:11.5px;color:var(--muted)}
body.ops-v2 #p-royal .lg-track{display:block}
body.ops-v2 #p-royal .lg-suelto{font-size:11px;padding:1px 8px}
body.ops-v2 #p-royal .lg-ing{display:grid;gap:6px;min-width:0}
body.ops-v2 #p-royal .lg-ing-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
body.ops-v2 #p-royal .lg-ing b{font-size:13px;font-weight:600}
body.ops-v2 #p-royal .lg-ing small{font-size:11.5px;color:var(--muted)}
body.ops-v2 #p-royal .lg-dias{position:relative;height:8px;border-radius:99px;background:var(--rib);border:1px solid var(--line)}
body.ops-v2 #p-royal .lg-dias span{display:block;height:100%;border-radius:inherit;background:#0D9488}
body.ops-v2 #p-royal .lg-dias i{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;border-radius:2px;background:var(--line-5)}
body.ops-v2 #p-royal .lg-ing[data-t=warn] .lg-dias span{background:#F59E0B}
body.ops-v2 #p-royal .lg-ing[data-t=bad] .lg-dias span{background:var(--w-accent)}
body.ops-v2 #p-royal .lg-ing[data-t=warn] .lg-ing-txt,body.ops-v2 #p-royal .lg-ing[data-t=warn] .lg-ing-top small{color:var(--warn);font-weight:600}
body.ops-v2 #p-royal .lg-ing[data-t=bad] .lg-ing-txt,body.ops-v2 #p-royal .lg-ing[data-t=bad] .lg-ing-top small{color:var(--w-accent);font-weight:600}
body.ops-v2 #p-royal .lg-sin{font-size:12px;color:var(--muted)}
body.ops-v2 #p-royal .lg-desc{display:block;font-weight:500}
body.ops-v2 #p-royal .lg-acc{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}
body.ops-v2 #p-royal .lg-acc .msg{flex-basis:100%}
@media(max-width:640px){body.ops-v2 #p-royal .lg-ing{width:min(220px,60%)}body.ops-v2 #p-royal .lg-acc{justify-content:flex-start}}
/* «Para revisar»: un panel propio, destacado, con el tipo de aviso y la acción a la derecha */
body.ops-v2 #p-royal .log-alertas{padding:16px 18px;margin:0 0 14px;border:1px solid color-mix(in srgb,var(--w-accent) 35%,var(--line));background:color-mix(in srgb,var(--w-accent) 4%,var(--surface));border-radius:18px;box-shadow:0 1px 2px rgba(11,13,18,.04)}
body.ops-v2 #p-royal .log-al-head{display:flex;align-items:center;gap:12px;margin:0 0 12px}
body.ops-v2 #p-royal .log-al-head>div{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}
body.ops-v2 #p-royal .log-al-head h3{margin:0;font-size:15px;font-weight:700;display:block}
body.ops-v2 #p-royal .log-al-head small{font-size:12.5px;color:var(--muted)}
body.ops-v2 #p-royal .log-al-ico{width:36px;height:36px;flex:none;display:grid;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--w-accent) 14%,var(--surface));color:var(--w-accent)}
body.ops-v2 #p-royal .log-al-ico svg{width:18px;height:18px}
body.ops-v2 #p-royal .log-al-n{font-family:var(--w-font-mono,'JetBrains Mono',monospace);font-size:22px;line-height:28px;font-weight:600;color:var(--w-accent)}
body.ops-v2 #p-royal .log-alertas li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
body.ops-v2 #p-royal .log-al-tipo{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:99px;background:var(--warn-bg,#F6E7C8);color:var(--warn)}
body.ops-v2 #p-royal .log-alertas li[data-tipo=canal] .log-al-tipo{background:color-mix(in srgb,var(--w-accent) 14%,var(--surface));color:var(--w-accent)}
body.ops-v2 #p-royal .log-al-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
body.ops-v2 #p-royal .log-al-txt b{font-size:13.5px;font-weight:600;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ops-v2 #p-royal .log-al-txt small{font-size:12.5px;color:var(--muted);line-height:1.4}
@media(max-width:640px){body.ops-v2 #p-royal .log-alertas li{grid-template-columns:minmax(0,1fr);align-items:start}body.ops-v2 #p-royal .log-al-tipo{justify-self:start}body.ops-v2 #p-royal .log-al-txt b{white-space:normal}body.ops-v2 #p-royal .log-alertas li .w-btn{justify-self:start}}
/* Tarifas como tarjetas (Logística de otras empresas y Empresas y tarifas) */
body.ops-v2 #p-royal .tar-list,body.ops-v2 #p-importadoras .tar-list{display:grid;gap:8px}
body.ops-v2 #p-royal .tar-card,body.ops-v2 #p-importadoras .tar-card{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);min-width:0}
body.ops-v2 #p-royal .tar-main,body.ops-v2 #p-importadoras .tar-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
body.ops-v2 #p-royal .tar-id,body.ops-v2 #p-importadoras .tar-id{display:flex;flex-direction:column;gap:2px;min-width:0}
body.ops-v2 #p-royal .tar-n,body.ops-v2 #p-importadoras .tar-n{font-size:14px;font-weight:600;color:var(--ink)}
body.ops-v2 #p-royal .tar-id small,body.ops-v2 #p-importadoras .tar-id small,body.ops-v2 #p-royal .tar-nota,body.ops-v2 #p-importadoras .tar-nota{font-size:12px;color:var(--muted);margin:0}
body.ops-v2 #p-royal .tar-precio,body.ops-v2 #p-importadoras .tar-precio{display:flex;align-items:baseline;gap:4px;white-space:nowrap}
body.ops-v2 #p-royal .tar-precio b,body.ops-v2 #p-importadoras .tar-precio b{font-family:var(--w-font-mono,'JetBrains Mono',monospace);font-variant-numeric:tabular-nums;font-size:20px;line-height:24px;font-weight:600;letter-spacing:-.02em;color:var(--w-accent)}
body.ops-v2 #p-royal .tar-precio small,body.ops-v2 #p-importadoras .tar-precio small{font-size:11.5px;color:var(--muted)}
body.ops-v2 #p-royal .tar-chips,body.ops-v2 #p-importadoras .tar-chips{display:flex;flex-wrap:wrap;gap:6px}
body.ops-v2 #p-royal .tar-chips .w-chip,body.ops-v2 #p-importadoras .tar-chips .w-chip{font-size:11.5px;padding:1px 8px}
body.ops-v2 #p-importadoras .tar-card{grid-template-columns:minmax(0,1fr) auto}
body.ops-v2 #p-importadoras .tar-main{grid-column:1/-1}
body.ops-v2 #p-importadoras .tar-chips,body.ops-v2 #p-importadoras .tar-nota{grid-column:1}
body.ops-v2 #p-importadoras .tar-acts{grid-column:2;grid-row:2/span 2;align-self:end;display:flex;justify-content:flex-end;gap:6px}
/* Empresas y tarifas: una tarjeta por empresa */
body.ops-v2 #p-importadoras .imp-grid{gap:16px}
body.ops-v2 #p-importadoras .imp-card{padding:18px 20px!important;border:1px solid var(--line);border-radius:18px;box-shadow:0 1px 2px rgba(11,13,18,.04);display:grid;gap:12px;align-content:start}
body.ops-v2 #p-importadoras .imp-head{margin:0;align-items:center;justify-content:flex-start}
body.ops-v2 #p-importadoras .imp-head .kg-av{width:44px;height:44px;border-radius:12px;font-size:14px;background:color-mix(in srgb,var(--w-accent) 12%,var(--surface));color:var(--w-accent);border:1px solid color-mix(in srgb,var(--w-accent) 25%,var(--line))}
body.ops-v2 #p-importadoras .imp-id{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 auto}
body.ops-v2 #p-importadoras .imp-id h3{margin:0;font-size:16px;font-weight:700;display:block;overflow:hidden;text-overflow:ellipsis}
body.ops-v2 #p-importadoras .imp-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
body.ops-v2 #p-importadoras .imp-meta small{font-size:12px;color:var(--muted)}
body.ops-v2 #p-importadoras .imp-head>.imp-acts{display:flex;gap:6px;flex:none}
body.ops-v2 #p-importadoras .imp-datos{margin:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--ink-2)}
body.ops-v2 #p-importadoras .imp-sub{margin:4px 0 0;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}
body.ops-v2 #p-importadoras .imp-card>.actions{margin:0}
body.ops-v2 #p-importadoras .imp-dirs{border-top:1px solid var(--line);padding-top:12px}
body.ops-v2 #p-importadoras .imp-dirs .dir-panel{border:0;box-shadow:none;padding:0!important;background:none;margin:0}
body.ops-v2 #p-royal .dir-card,body.ops-v2 #p-importadoras .dir-card{border-color:var(--line);border-radius:14px;padding:12px 14px;background:var(--surface)}
@media(max-width:640px){body.ops-v2 #p-importadoras .imp-card{padding:14px!important}body.ops-v2 #p-importadoras .imp-head{flex-wrap:wrap}}
/* Pagos: fecha, gasto o medio con su nota, y montos en mono */
body.ops-v2 #p-pagos .pg-fecha{font-size:12.5px;color:var(--ink-2);white-space:nowrap}
body.ops-v2 #p-pagos .pg-gasto{display:block;font-weight:500}
body.ops-v2 #p-pagos .pg-nota{display:block;font-size:11.5px;color:var(--muted);margin-top:4px}
body.ops-v2 #p-pagos .pg-usd{font-size:15px;font-weight:600}
body.ops-v2 #p-pagos .pg-usd[data-t=pend]{color:var(--w-accent)}
body.ops-v2 #p-pagos .pg-usd[data-t=ok]{color:var(--ok)}
/* Proveedores y Clientes: logo o iniciales grandes, cifras en mono, barra de lo comprado frente al mayor */
body.ops-v2 #p-proveedores .pv-name .kg-av,body.ops-v2 #p-clientes .pv-name .kg-av{width:42px;height:42px;border-radius:12px;font-size:13px}
body.ops-v2 #p-proveedores .pv-name .ops-row-open,body.ops-v2 #p-clientes .pv-name .ops-row-open{font-size:14.5px;font-weight:600}
body.ops-v2 #p-proveedores .pv-name small,body.ops-v2 #p-clientes .pv-name small{font-size:12px;color:var(--muted)}
body.ops-v2 #p-proveedores .pv-num,body.ops-v2 #p-clientes .pv-num{font-size:15px;font-weight:600}
body.ops-v2 #p-proveedores .pv-usd{display:inline-flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:110px}
body.ops-v2 #p-proveedores .pv-usd b{font-size:15px;font-weight:600}
body.ops-v2 #p-proveedores .pv-usd-bar{display:block;width:100%;height:6px;border-radius:99px;background:var(--rib);border:1px solid var(--line);overflow:hidden}
body.ops-v2 #p-proveedores .pv-usd-bar span{display:block;height:100%;border-radius:inherit;background:var(--w-accent);opacity:.75}
body.ops-v2 #p-proveedores .pv-ult{display:flex;flex-direction:column;gap:2px}
body.ops-v2 #p-proveedores .pv-ult b{font-size:12.5px;font-weight:600;white-space:nowrap}
body.ops-v2 #p-proveedores .pv-ult small{font-size:11.5px;color:var(--muted)}
body.ops-v2 #p-clientes .ot-total small{color:var(--ok)}
@media(max-width:640px){body.ops-v2 #p-proveedores .pv-usd{min-width:96px}body.ops-v2 #p-proveedores .pv-ult{align-items:flex-end}}
/* Compartidos: tarjetas y paneles con el mismo aire */
body.ops-v2 #p-compartidos .cp-admin>.ops-panel,body.ops-v2 #p-compartidos .cp-card{border:1px solid var(--line);border-radius:18px;box-shadow:0 1px 2px rgba(11,13,18,.04);padding:18px 20px}
body.ops-v2 #p-compartidos .cp-card h3{font-size:16px;font-weight:700}
body.ops-v2 #p-compartidos .cp-costos dd{font-family:var(--w-font-mono,'JetBrains Mono',monospace);font-variant-numeric:tabular-nums}
body.ops-v2 #p-compartidos .pv-name .cp-av{width:36px;height:36px;border-radius:12px}
@media(max-width:640px){body.ops-v2 #p-compartidos .cp-admin>.ops-panel,body.ops-v2 #p-compartidos .cp-card{padding:14px}}
/* ===== Rediseño D: Ficha del pedido, Ajustes, Fondo, Registrar ===== */
/* Ficha del pedido: tarjeta resumen como la fila v3 (producto, etapa con .ot-rail, barra de pago y total). */
body.ops-v2 #p-pedido .xp-head{margin:0 0 12px;align-items:center}
body.ops-v2 #p-pedido .xp-title h1{font-size:clamp(20px,2.2vw,24px);font-weight:700}
body.ops-v2 #p-pedido .xp-title p{font-size:13px;margin-top:2px}
body.ops-v2 #p-pedido .xp-hero{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1.5fr) minmax(0,1.3fr) minmax(120px,.8fr);align-items:center;gap:20px;padding:18px 20px;margin:0 0 14px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 1px 2px rgba(11,13,18,.04)}
body.ops-v2 #p-pedido .xp-hero-prod{display:flex;align-items:center;gap:14px;min-width:0}
body.ops-v2 #p-pedido .xp-hero-prod .product-photo,body.ops-v2 #p-pedido .xp-hero .ot-thumb{width:64px;height:64px;flex:none;border-radius:14px;object-fit:cover;background:#fff;border:1px solid var(--line)}
body.ops-v2 #p-pedido .xp-hero-txt{display:flex;flex-direction:column;gap:4px;min-width:0}
body.ops-v2 #p-pedido .xp-hero-pr{font-size:17px;line-height:22px;font-weight:700;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.ops-v2 #p-pedido .xp-hero-pv{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);min-width:0}
body.ops-v2 #p-pedido .xp-hero-pv>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.ops-v2 #p-pedido .xp-hero-pv .kg-av{width:24px;height:24px;font-size:10px;flex:none}
body.ops-v2 #p-pedido .xp-hero-cell{display:flex;flex-direction:column;gap:8px;min-width:0}
body.ops-v2 #p-pedido .xp-hero-l{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}
body.ops-v2 #p-pedido .xp-hero-total{align-items:flex-end;text-align:right;gap:2px}
body.ops-v2 #p-pedido .xp-hero-total b{font-size:22px;line-height:28px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
body.ops-v2 #p-pedido .xp-hero-total small{font-size:12px;color:var(--muted)}
@media(max-width:1100px){body.ops-v2 #p-pedido .xp-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}body.ops-v2 #p-pedido .xp-hero-prod{grid-column:1/-1}}
@media(max-width:560px){body.ops-v2 #p-pedido .xp-hero{grid-template-columns:1fr;gap:14px;padding:14px 16px}body.ops-v2 #p-pedido .xp-hero-total{align-items:flex-start;text-align:left}}
/* Stepper con el color de la etapa actual (--st), sin el acento genérico. */
body.ops-v2 #p-pedido .xp-stepper-card{border-radius:18px;padding:18px 20px;box-shadow:0 1px 2px rgba(11,13,18,.04)}
body.ops-v2 #p-pedido .xp-stepper li.done::before,body.ops-v2 #p-pedido .xp-stepper li.now::before{background:var(--st,var(--accent))}
body.ops-v2 #p-pedido .xp-stepper li.done i{background:color-mix(in srgb,var(--st,var(--accent)) 16%,var(--surface));border-color:transparent;color:var(--st,var(--accent))}
body.ops-v2 #p-pedido .xp-stepper li.now i{background:var(--st,var(--accent));border-color:var(--st,var(--accent));color:#fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--st,var(--accent)) 18%,transparent)}
body.ops-v2 #p-pedido .xp-stepper li.now span{color:var(--st,var(--ink-strong))}
/* Tarjetas: blancas, borde fino, título 15/700 con ícono, cifras en mono tabular. */
body.ops-v2 #p-pedido .xp-layout{gap:14px}
body.ops-v2 #p-pedido .xp-main,body.ops-v2 #p-pedido .xp-side{display:flex;flex-direction:column;gap:14px}
body.ops-v2 #p-pedido .xp-main>.w-card,body.ops-v2 #p-pedido .xp-side>.w-card{margin:0}
body.ops-v2 #p-pedido .xp-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px rgba(11,13,18,.04);padding:18px 20px!important}
body.ops-v2 #p-pedido .xp-card-head{margin:0 0 14px}
body.ops-v2 #p-pedido .xp-card-head h3,body.ops-v2 #p-pedido .xp-puesto .w-card__title{font-size:15px;line-height:22px;font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;gap:10px}
body.ops-v2 #p-pedido .xp-card-head h3 svg,body.ops-v2 #p-pedido .xp-puesto .w-card__title svg{width:18px;height:18px;padding:7px;box-sizing:content-box;border-radius:10px;background:var(--rib,var(--line));color:var(--ink-2)}
body.ops-v2 #p-pedido .xp-card-head>span{font-size:12.5px;color:var(--muted)}
body.ops-v2 #p-pedido .ops-figs{gap:12px;border-bottom:0;padding-bottom:14px}
body.ops-v2 #p-pedido .ops-figs>div{padding:12px 14px;border:1px solid var(--line);border-radius:14px}
body.ops-v2 #p-pedido .ops-figs>div:first-child{border-color:color-mix(in srgb,var(--w-accent) 35%,var(--line));background:color-mix(in srgb,var(--w-accent) 5%,var(--surface))}
body.ops-v2 #p-pedido .ops-figs b,body.ops-v2 #p-pedido .xp-totals .xp-money,body.ops-v2 #p-pedido .xp-sum b{font-family:var(--w-font-mono,'JetBrains Mono',ui-monospace,monospace);font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.02em}
body.ops-v2 #p-pedido .ops-figs b{font-size:22px;line-height:28px}
body.ops-v2 #p-pedido .ops-figs span,body.ops-v2 #p-pedido .xp-totals span,body.ops-v2 #p-pedido .xp-sum span{font-size:12px;color:var(--muted);font-weight:500}
body.ops-v2 #p-pedido .xp-totals{gap:12px;border:0;padding:0 0 12px}
body.ops-v2 #p-pedido .xp-totals>div{padding:12px 14px;border:1px solid var(--line);border-radius:14px}
body.ops-v2 #p-pedido .xp-totals .xp-money{font-size:20px;line-height:26px}
body.ops-v2 #p-pedido .xp-totals .ok{border-color:color-mix(in srgb,var(--ok) 30%,var(--line))}
body.ops-v2 #p-pedido .xp-totals .due{border-color:color-mix(in srgb,var(--w-accent) 35%,var(--line))}
body.ops-v2 #p-pedido .xp-totals .due .xp-money{color:var(--w-accent)}
body.ops-v2 #p-pedido .xp-line-money b,body.ops-v2 #p-pedido .xp-tx>div:first-child>b,body.ops-v2 #p-pedido .xp-puesto .w-table .numeric{font-family:var(--w-font-mono,'JetBrains Mono',ui-monospace,monospace);font-variant-numeric:tabular-nums}
body.ops-v2 #p-pedido .xp-line,body.ops-v2 #p-pedido .xp-tx{padding:12px 0;border-top:1px solid var(--line)}
body.ops-v2 #p-pedido .xp-line .product-photo{border-radius:12px;border:1px solid var(--line)}
body.ops-v2 #p-pedido .xp-line-body>b{font-weight:600}
body.ops-v2 #p-pedido .xp-sub{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;margin:14px 0 2px}
/* Definiciones en dos columnas (Estados, Cliente, Proveedor). */
body.ops-v2 #p-pedido .xp-estados{gap:0}
body.ops-v2 #p-pedido .xp-estados>div{grid-template-columns:minmax(84px,.7fr) minmax(0,1.6fr);gap:12px;padding:10px 0;border-top:1px solid var(--line)}
body.ops-v2 #p-pedido .xp-estados>div:first-child{border-top:0;padding-top:0}
body.ops-v2 #p-pedido .xp-estados dt{font-size:12.5px;color:var(--muted);font-weight:500}
body.ops-v2 #p-pedido .xp-prov{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-top:1px solid var(--line)}
body.ops-v2 #p-pedido .xp-prov:first-of-type{border-top:0;padding-top:0}
body.ops-v2 #p-pedido .xp-prov-id .kg-av{width:36px;height:36px;border-radius:10px}
/* Logística (con su «Estimación con la tarifa»), Documentos y Venta: subtarjetas suaves. */
body.ops-v2 #p-pedido .xp-card .notice{border-radius:12px}
body.ops-v2 #p-pedido .xp-sum{gap:12px}
body.ops-v2 #p-pedido .xp-sum>div{padding:10px 12px;border:1px solid var(--line);border-radius:12px}
body.ops-v2 #p-pedido .xp-card details>summary.xp-card-head{margin:0}
body.ops-v2 #p-pedido .xp-card details[open]>summary.xp-card-head{margin:0 0 14px}

/* Ajustes, Fondo y reglas, Registrar: formularios en tarjetas con aire. */
body.ops-v2 #p-config .ui-panel,body.ops-v2 #p-fondo .ui-panel,body.ops-v2 #p-cargar .ui-panel{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 1px 2px rgba(11,13,18,.04)}
body.ops-v2 #p-config .ui-panel>h3,body.ops-v2 #p-fondo .ui-panel>h3,body.ops-v2 #p-cargar .ui-panel>h3{font-size:15px;line-height:22px;font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}
body.ops-v2 #p-config .stack,body.ops-v2 #p-fondo .stack,body.ops-v2 #p-cargar .stack,body.ops-v2 #p-fondo .two-column,body.ops-v2 #p-cargar .two-column{gap:14px}
body.ops-v2 #p-config .form-grid,body.ops-v2 #p-fondo .form-grid,body.ops-v2 #p-cargar .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
body.ops-v2 #p-config .w-label,body.ops-v2 #p-fondo .w-label,body.ops-v2 #p-cargar .w-label{font-size:12.5px;font-weight:600;color:var(--ink-2)}
body.ops-v2 #p-config .notice,body.ops-v2 #p-fondo .notice,body.ops-v2 #p-cargar .notice{border-radius:12px}
body.ops-v2 #p-config .ops-details>summary,body.ops-v2 #p-fondo .ops-details>summary{font-size:15px;font-weight:700}
@media(max-width:640px){body.ops-v2 #p-config .form-grid,body.ops-v2 #p-fondo .form-grid,body.ops-v2 #p-cargar .form-grid{grid-template-columns:1fr}}
/* Ajustes: URL del MCP, tokens y valores del modelo como lista con cifras en mono. */
body.ops-v2 #p-config #tk-box .tk-url{border:1px solid var(--line);border-radius:12px;background:var(--rib,var(--surface))}
body.ops-v2 #p-config .tk-item{padding:12px 0;border-top:1px solid var(--line)}
body.ops-v2 #p-config .tk-item:first-child{border-top:0}
body.ops-v2 #p-config .tk-item b{font-weight:600}
body.ops-v2 #p-config .cfg-find{width:100%;margin:0 0 12px}
body.ops-v2 #p-config .cfg-list{border:1px solid var(--line);border-radius:14px}
body.ops-v2 #p-config .cfg-row{padding:10px 14px;border-top:1px solid var(--line)}
body.ops-v2 #p-config .cfg-row:first-child{border-top:0}
body.ops-v2 #p-config .cfg-row .cfg-k b{font-size:13px}
body.ops-v2 #p-config .cfg-row .cfg-k small{display:block;font-size:12px;color:var(--muted)}
body.ops-v2 #p-config .cfg-row .w-input.cfg-num,body.ops-v2 #p-config .cfg-row .w-input[data-monto]{font-family:var(--w-font-mono,'JetBrains Mono',ui-monospace,monospace)}
/* Fondo y reglas: reglas como tarjetas plegables y la calculadora con su resultado en mono. */
body.ops-v2 #p-fondo .ops-details{padding:4px 18px}
body.ops-v2 #p-fondo .ops-details[open]{padding-bottom:16px}
body.ops-v2 #p-fondo .ops-details>summary{gap:8px}
body.ops-v2 #p-fondo .rule-content{font-size:14px;line-height:1.6;color:var(--ink-2)}
body.ops-v2 #p-fondo #cx-out{font-variant-numeric:tabular-nums}
body.ops-v2 #p-fondo #cx-out b,body.ops-v2 #p-fondo #cx-out strong,body.ops-v2 #p-fondo #cx-out .numeric{font-family:var(--w-font-mono,'JetBrains Mono',ui-monospace,monospace)}
/* Registrar: el tipo de registro como control segmentado. */
body.ops-v2 #p-cargar .entry-tabs{display:flex;flex-wrap:wrap;gap:4px;padding:4px;border:1px solid var(--line);border-radius:14px;background:var(--rib,var(--surface));overflow:visible}
body.ops-v2 #p-cargar .entry-tabs button{flex:1 1 auto;min-height:36px;padding:6px 14px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-weight:500;box-shadow:none;white-space:nowrap}
body.ops-v2 #p-cargar .entry-tabs button[aria-selected=true]{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(11,13,18,.08),0 0 0 1px var(--line)}
body.ops-v2 #p-cargar .entry-tabs button:hover:not([aria-selected=true]){color:var(--ink)}
body.ops-v2 #p-cargar .entry-tabs button:focus-visible{outline:2px solid var(--w-accent);outline-offset:2px}
body.ops-v2 #p-cargar [data-entry-panel]>h3{font-size:15px;font-weight:700}
body.ops-v2 #p-cargar [data-entry-panel] .actions{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
/* ===== Rediseño E: animaciones ===== */
/* Sistema de movimiento del panel: entrada de sección, escalonado de tarjetas y filas (solo al entrar a la página,
   con .motion-in que pone animarEntrada() en controller.js), barras que crecen, hover/press y diálogos.
   Todo bajo no-preference: con reduce no hay animaciones ni count-up. */
@media (prefers-reduced-motion:no-preference){
:root{--e-ease:cubic-bezier(.2,.8,.2,1)}
@keyframes e-rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes e-fade{from{opacity:0}to{opacity:1}}
@keyframes e-grow-x{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes e-grow-y{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes e-slide-in{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
@keyframes e-pop{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
@keyframes e-toast{from{opacity:0;translate:0 10px}to{opacity:1;translate:none}}
@keyframes e-now{0%,100%{opacity:1}50%{opacity:.62}}
/* 1. Entrada de sección */
.pane.on:not([hidden]){animation:e-rise .32s var(--e-ease) both}
/* 2. Escalonado: animarEntrada() marca hasta 12 elementos por grupo con .m-in y --i */
.pane.motion-in .m-in{animation:e-rise .38s var(--e-ease) calc(var(--i,0)*35ms) both}
/* 3. Barras que crecen (solo al entrar) y la etapa actual con pulso suave */
.pane.motion-in .ped-barra span,.pane.motion-in .ot-pago-bar span,.pane.motion-in .mes-goal .meter>span{transform-origin:left center;animation:e-grow-x .45s var(--e-ease) .12s both}
.pane.motion-in .mes-chart rect{transform-box:fill-box;transform-origin:50% 100%;animation:e-grow-y .45s var(--e-ease) .1s both}
body.ops-v2 .ot-rail span.now{animation:e-now 2.4s ease-in-out infinite}
/* 4. Hover y press */
body.ops-v2 .ped-kpi,.mes-goal,body.ops-v2 #fp-e .ped-et{transition:transform .18s var(--e-ease),box-shadow .18s var(--e-ease),border-color .18s var(--e-ease),background-color .18s var(--e-ease)}
body.ops-v2 .ped-kpi:hover,.mes-goal:hover{transform:translateY(-2px);box-shadow:0 10px 24px -16px rgba(11,13,18,.35)}
body.ops-v2 #fp-e .ped-et:hover{transform:translateY(-1px)}
body.ops-v2 #fp-e .ped-et:not(.active):hover{box-shadow:0 8px 18px -14px rgba(11,13,18,.35)}
.kc:hover{box-shadow:0 10px 24px -16px rgba(11,13,18,.35)}
.w-btn{transition:background-color .18s var(--e-ease),border-color .18s var(--e-ease),color .18s var(--e-ease),box-shadow .18s var(--e-ease),transform .15s var(--e-ease)}
.w-btn:active:not(:disabled){transform:scale(.98)}
.chip,.w-chip,.w-seg button,.w-seg [role=tab],[role=tab]{transition:background-color .18s var(--e-ease),border-color .18s var(--e-ease),color .18s var(--e-ease),box-shadow .18s var(--e-ease)}
.chip:active:not(:disabled),.w-seg button:active:not(:disabled){transform:scale(.98)}
body.ops-v2 .orders-v3 tbody tr,.ops-table tbody tr{transition:background-color .15s var(--e-ease)}
/* 6. Diálogos y aviso */
#ops-detail:not([hidden]){animation:e-fade .2s var(--e-ease) both}
#ops-detail:not([hidden]) .ops-dialog{animation:e-pop .28s var(--e-ease) both}
#ops-detail.side:not([hidden]) .ops-dialog{animation:e-slide-in .3s var(--e-ease) both}
/* translate (no transform) para no pisar el centrado translateX(-50%) del toast */
#aviso.toast.show{animation:e-toast .28s var(--e-ease) both}
}

/* Pedidos: barra de búsqueda y filtros en una sola línea, compacta; los filtros avanzados se abren como panel desplegable. */
body.ops-v2 #p-pedidos .orders-filters{padding:8px 10px;margin:0 0 12px;border-radius:16px}
body.ops-v2 #p-pedidos .orders-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;margin:0}
body.ops-v2 #p-pedidos .orders-toolbar .orders-search{flex:1 1 auto;min-width:160px;max-width:none;height:40px;border:0;background:none;box-shadow:none;padding:0 6px}
body.ops-v2 #p-pedidos .orders-toolbar .orders-search .w-input{border:0;box-shadow:none;background:none;height:40px}
body.ops-v2 #p-pedidos .orders-toolbar>*:not(.orders-search){flex:none}
body.ops-v2 #p-pedidos .orders-toolbar .w-field,body.ops-v2 #p-pedidos .orders-toolbar label:has(select){margin:0}
body.ops-v2 #p-pedidos .orders-toolbar select,body.ops-v2 #p-pedidos .orders-toolbar .ops-combo-tr{height:40px;min-height:40px}
body.ops-v2 #p-pedidos .orders-toolbar .w-btn,body.ops-v2 #p-pedidos .orders-toolbar .chip{height:40px;min-height:40px}
body.ops-v2 #p-pedidos #fp-advanced{position:relative;margin:0}
body.ops-v2 #p-pedidos #fp-advanced>summary{height:40px;display:flex;align-items:center;gap:6px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);white-space:nowrap;cursor:pointer;list-style:none}
body.ops-v2 #p-pedidos #fp-advanced>summary::-webkit-details-marker{display:none}
body.ops-v2 #p-pedidos #fp-advanced[open]>summary{border-color:var(--w-accent)}
body.ops-v2 #p-pedidos #fp-advanced>.advanced-grid{position:absolute;right:0;top:calc(100% + 8px);z-index:30;width:min(640px,90vw);padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-float,0 14px 34px -12px rgba(11,13,18,.3))}
@media(max-width:900px){body.ops-v2 #p-pedidos .orders-toolbar{flex-wrap:wrap}body.ops-v2 #p-pedidos .orders-toolbar .orders-search{flex-basis:100%}}
/* Pedidos: «Logística» y «Nuevo pedido» en el lugar de la cuarta cifra; el total sin recuadro gris. */
body.ops-v2 .ped-kpi-acciones{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:8px}
body.ops-v2 .ped-kpi-acciones .w-btn{width:100%;justify-content:center;height:44px}
body.ops-v2 #p-pedidos .view-heading>.actions:empty,body.ops-v2 #p-pedidos .view-heading:not(:has(.actions>*)){display:none}
body.ops-v2 .orders-v3 tbody td.numeric,body.ops-v2 .orders-v3 tbody td,body.ops-v2 .orders-v3 .ot-total{background:none!important}

/* Proveedores (2026-11-04): la tabla como grilla para que encabezados y columnas queden alineados; sin cifras cortadas. */
@media(min-width:641px){
  body.ops-v2 #p-proveedores .pv-table>.w-table,body.ops-v2 #p-proveedores .pv-table>.w-table>thead,body.ops-v2 #p-proveedores .pv-table>.w-table>tbody{display:block;width:100%}
  body.ops-v2 #p-proveedores .pv-table>.w-table>tbody{display:grid;gap:8px}
  body.ops-v2 #p-proveedores .pv-table tr{display:grid!important;grid-template-columns:minmax(0,2.6fr) 90px minmax(150px,1.2fr) minmax(0,1.3fr) minmax(130px,1fr) 60px;align-items:center}
  body.ops-v2 #p-proveedores .pv-table th,body.ops-v2 #p-proveedores .pv-table td{display:block!important;width:auto!important;min-width:0;max-width:none!important;border:0!important;border-radius:0!important;background:none!important;overflow:visible!important;text-overflow:clip!important;white-space:normal!important}
  body.ops-v2 #p-proveedores .pv-table tbody tr{border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 1px 2px rgba(11,13,18,.04)}
  body.ops-v2 #p-proveedores .pv-table tbody tr:hover{border-color:color-mix(in srgb,var(--w-accent) 35%,var(--line))}
  body.ops-v2 #p-proveedores .pv-table td{padding:12px 14px}
  body.ops-v2 #p-proveedores .pv-table th{padding:0 14px 4px}
  body.ops-v2 #p-proveedores .pv-table :is(th,td).numeric{text-align:right}
  body.ops-v2 #p-proveedores .pv-table td:last-child{display:flex!important;justify-content:flex-end}
  body.ops-v2 #p-proveedores .pv-usd{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
  body.ops-v2 #p-proveedores .pv-usd b{white-space:nowrap}
  body.ops-v2 #p-proveedores .pv-usd-bar{width:100%;max-width:150px}
  body.ops-v2 #p-proveedores .pv-ult{display:flex;flex-direction:column;gap:2px}
  body.ops-v2 #p-proveedores .pv-ult b{white-space:nowrap}
}
body.ops-v2 .pv-estado{display:flex;flex-wrap:wrap;gap:6px}
body.ops-v2 .pv-nada{color:var(--muted)}
/* Perfil del proveedor: cabecera con logo (y su botón), nombre, datos clave, enlaces y Editar; menos espacio vacío. */
body.ops-v2 .pv-perfil{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:start;margin:0 0 14px;padding-right:36px}
body.ops-v2 .pv-perfil-logo{display:flex;flex-direction:column;align-items:center;gap:8px}
body.ops-v2 .pv-perfil-logo .kg-av{width:72px!important;height:72px!important;border-radius:16px!important;font-size:22px;display:grid;place-items:center;object-fit:contain;background:#fff;border:1px solid var(--line)}
body.ops-v2 .pv-perfil-logo .w-btn{font-size:12px;height:30px;padding:0 10px;white-space:nowrap}
body.ops-v2 .pv-perfil-txt h1{margin:2px 0 4px;font-size:22px;line-height:28px}
body.ops-v2 .pv-perfil-txt .hint{margin:0}
body.ops-v2 .pv-perfil-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
body.ops-v2 .pv-perfil-links .w-btn{height:32px;font-size:13px;padding:0 12px}
body.ops-v2 .pv-sub{margin:14px 0 6px;font-size:12.5px;font-weight:600;color:var(--muted)}
body.ops-v2 #ops-detail .xp-estados{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 24px;margin:0}
body.ops-v2 #ops-detail .xp-estados>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}
body.ops-v2 #ops-detail .xp-estados dt{color:var(--muted);font-size:12.5px}
body.ops-v2 #ops-detail .xp-estados dd{margin:0;font-size:13.5px}
/* Tablas dentro de las fichas: encabezados quietos (no se superponen al bajar) y montos sin cortar. */
body.ops-v2 #ops-detail .ops-table thead th{position:static!important;top:auto!important}
body.ops-v2 #ops-detail .ops-table td.numeric,body.ops-v2 #ops-detail .ops-table th.numeric{white-space:nowrap!important}
body.ops-v2 #ops-detail .ops-tabs{margin-bottom:12px}
@media(max-width:640px){body.ops-v2 .pv-perfil{grid-template-columns:auto minmax(0,1fr)}body.ops-v2 .pv-perfil-edit{grid-column:1 / -1}body.ops-v2 #ops-detail .xp-estados{grid-template-columns:1fr}}
/* Logo de la empresa de logística: botón de cámara sobre el avatar; logo chico en las pestañas de empresas. */
body.ops-v2 .imp-head{position:relative}
body.ops-v2 .imp-head>.kg-av{width:48px;height:48px;border-radius:12px;object-fit:contain;background:#fff}
body.ops-v2 .imp-logo-btn{position:absolute;left:34px;top:34px;width:26px;height:26px;border-radius:50%;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;cursor:pointer;color:var(--ink-2);box-shadow:0 2px 6px rgba(11,13,18,.12)}
body.ops-v2 .imp-logo-btn svg{width:13px;height:13px}
body.ops-v2 .imp-logo-btn:hover{color:var(--w-accent);border-color:var(--w-accent)}
body.ops-v2 .lg-logo{width:18px;height:18px;border-radius:5px;object-fit:contain;background:#fff;margin-right:6px;vertical-align:-4px}
/* Formulario de tarifa: filas alineadas abajo (etiquetas cortas) y números sin flechitas. */
body.ops-v2 #tar-form .xp-row2,body.ops-v2 #tar-form .xp-row3{align-items:end}
body.ops-v2 #tar-form input[type=number]{-moz-appearance:textfield}
body.ops-v2 #tar-form input[type=number]::-webkit-outer-spin-button,body.ops-v2 #tar-form input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* Ruta del producto animada (restaurada 2026-11-04): tarjeta con el mismo radio y aire que el resto del Resumen. */
body.ops-v2 #p-inicio .ruta{padding:18px 20px;margin:0 0 14px;border-radius:18px}
/* Encabezado: buscador más largo. */
body.ops-v2 .ops-search{flex:1 1 420px;max-width:620px;min-width:260px}
@media(max-width:1100px){body.ops-v2 .ops-search{flex-basis:300px;max-width:440px}}

/* Ruta del producto con iconos y A Paraguay por mar / por aire */
.ruta-node b{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:2px;line-height:1}
.ruta-node b svg{width:17px;height:17px;opacity:.75}
.ruta-node b em{font-style:normal;font-size:15px;font-weight:700}
.ruta-node.z-cn b svg{color:var(--ops-cn)}.ruta-node.z-tr b svg{color:var(--ops-tr)}.ruta-node.z-py b svg{color:var(--ops-py)}
.ruta-node.vacio b svg{opacity:.4}
/* Iniciales del proveedor o empresa: siempre centradas en el recuadro */
body.ops-v2 span.kg-av{display:inline-flex!important;align-items:center!important;justify-content:center!important;text-align:center;line-height:1!important;padding:0!important;vertical-align:middle}

/* Pipeline: «Mover a» más compacto, el texto de la etapa entra entero */
body.ops-v2 #p-pipeline .kc-move .ops-combo-ico{width:20px!important;height:20px!important;border-radius:6px!important}
body.ops-v2 #p-pipeline .kc-move .ops-combo-ico svg{width:12px;height:12px}
body.ops-v2 #p-pipeline .kc-move .ops-combo button{gap:6px;padding-left:6px;padding-right:6px}
/* Cifras compactas en la fila del encabezado (Decisiones y otras páginas) */
body.ops-v2 .kpi-fila{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;margin-right:auto}
body.ops-v2 .heading .actions,body.ops-v2 .ui-heading .actions{align-items:center}
body.ops-v2 .kpi-mini{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:12.5px;font-weight:500;color:var(--ink-2);white-space:nowrap}
body.ops-v2 .kpi-mini i{width:7px;height:7px;border-radius:50%;background:var(--muted-2)}
body.ops-v2 .kpi-mini b{font-size:14px;font-weight:700;color:var(--ink)}
body.ops-v2 .kpi-mini[data-tone=warn] i{background:#EA580C}body.ops-v2 .kpi-mini[data-tone=bad] i{background:#DC2626}body.ops-v2 .kpi-mini[data-tone=ok] i{background:#16A34A}
body.ops-v2 .kpi-mini[data-tone=bad] b{color:#DC2626}
/* Negociaciones: todos los filtros en una sola fila */
body.ops-v2 .ff-bar{padding:10px 12px!important}
body.ops-v2 .ff-bar .filters{display:flex;flex-direction:row!important;flex-wrap:wrap!important;align-items:center!important;gap:8px}
body.ops-v2 .ff-bar .filter-row,body.ops-v2 .ff-bar .filter-grid{display:contents}
body.ops-v2 .ff-bar #ff-q{flex:2 1 220px!important;min-width:180px;height:36px!important}
body.ops-v2 .ff-bar .w-field{flex:1 1 130px!important;width:auto!important;display:flex;align-items:center;gap:0;position:relative;margin:0}
body.ops-v2 .ff-bar .w-field .w-label{position:absolute;left:11px;top:-7px;padding:0 4px;font-size:10px;line-height:12px;background:var(--surface);color:var(--muted);z-index:1;pointer-events:none}
body.ops-v2 .ff-bar .w-field select{height:36px;width:100%;font-size:13px}
body.ops-v2 .ff-bar .hint{order:8;margin:0;font-size:12px;color:var(--muted);white-space:nowrap}
body.ops-v2 .ff-bar #ff-reset{order:9;height:36px;padding:0 12px}
/* Proveedores y Clientes: cifras-filtro en pastillas finas, en la misma fila que la búsqueda (solo esas dos páginas) */
body.ops-v2 :is(#p-proveedores,#p-clientes) .view-heading .kpi-compact{flex:0 0 auto!important;flex-wrap:wrap!important;width:auto!important;justify-content:flex-start;gap:6px}
body.ops-v2 :is(#p-proveedores,#p-clientes) .kpi-compact>.kpi{flex:0 0 auto!important;width:auto!important;min-width:0!important;max-width:none!important;flex-direction:row!important;display:inline-flex!important;align-items:center!important;gap:7px!important;height:36px;min-height:0!important;padding:0 12px!important;border-radius:10px;overflow:visible!important;container-type:normal!important}
body.ops-v2 :is(#p-proveedores,#p-clientes) .kpi-compact>.kpi .label{font-size:12.5px!important;line-height:1!important;font-weight:500;white-space:nowrap}
body.ops-v2 :is(#p-proveedores,#p-clientes) .kpi-compact>.kpi .value{font-size:14px!important;line-height:1!important;font-weight:700}
body.ops-v2 :is(#p-proveedores,#p-clientes) .kpi-compact>.kpi .sub{display:none!important}
body.ops-v2 :is(#p-proveedores,#p-clientes) .view-heading .ops-toolbar{flex:1 1 260px;min-width:220px}

/* Ajustes: token en una fila; valores del modelo en dos columnas con nombre claro */
body.ops-v2 #p-config .tk-crear{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
body.ops-v2 #p-config .tk-crear .tk-form{flex:1 1 420px;margin:0}
body.ops-v2 #p-config .tk-crear #tk-new{height:40px;flex:none}
body.ops-v2 #p-config .cfg-find{max-width:420px}
body.ops-v2 #p-config .cfg-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:0!important;background:none!important}
body.ops-v2 #p-config .cfg-list .cfg-row{display:grid!important;grid-template-columns:minmax(0,1fr) 112px auto;align-items:center;gap:10px;padding:10px 12px!important;border:1px solid var(--line)!important;border-radius:12px;background:var(--surface)}
body.ops-v2 #p-config .cfg-row .msg{grid-column:1/-1}body.ops-v2 #p-config .cfg-row .msg:empty{display:none}
body.ops-v2 #p-config .cfg-row .cfg-k b{font-size:13.5px;font-weight:600}
body.ops-v2 #p-config .cfg-row .cfg-clave{font-size:10.5px;font-weight:500;color:var(--muted);margin-left:6px}
body.ops-v2 #p-config .cfg-row .cfg-k small{display:block;font-size:11.5px;line-height:1.35;color:var(--muted);margin-top:2px}
body.ops-v2 #p-config .cfg-row :is(input.w-input,.monto-input,.w-monto){width:112px!important;min-width:0;height:36px}
@media(max-width:1100px){body.ops-v2 #p-config .cfg-list{grid-template-columns:1fr}}
/* Ideas de inversión: filas compactas en dos columnas; la abierta ocupa todo el ancho */
body.ops-v2 #p-inversion .inv-list:not(.vista-grid){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
body.ops-v2 #p-inversion .inv-list:not(.vista-grid) .xp-inv{padding:10px 14px!important;margin:0}
body.ops-v2 #p-inversion .inv-list:not(.vista-grid) .xp-inv[open]{grid-column:1/-1}
body.ops-v2 #p-inversion .inv-list:not(.vista-grid) .xp-inv>summary.xp-inv-head .product-photo{width:52px;height:52px}
body.ops-v2 #p-inversion .xp-inv-head .xp-line-body>b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.ops-v2 #p-inversion .xp-inv-head .xp-inv-res b{display:inline}
@media(max-width:900px){body.ops-v2 #p-inversion .inv-list:not(.vista-grid){grid-template-columns:1fr}}
/* Favoritos: barra de búsqueda y rubros más fina */
body.ops-v2 #p-favoritos .w-card.ui-panel:first-of-type{padding-top:10px;padding-bottom:10px}
/* Favoritos: búsqueda, rubros, orden y restablecer en una sola fila; tarjetas más densas */
body.ops-v2 .fav-filters>.orders-toolbar{flex-wrap:nowrap!important;align-items:center}
body.ops-v2 .fav-filters #fv-cat{flex:1 1 auto;min-width:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:6px;margin:0}
body.ops-v2 .fav-filters #fv-cat::-webkit-scrollbar{display:none}
body.ops-v2 .fav-filters #fv-cat .chip{flex:none;min-height:32px;padding:0 10px;font-size:12.5px}
body.ops-v2 .fav-filters .orders-search{flex:0 1 280px!important;min-width:180px}
@media(max-width:1100px){body.ops-v2 .fav-filters>.orders-toolbar{flex-wrap:wrap!important}body.ops-v2 .fav-filters #fv-cat{order:9;flex-basis:100%}}
body.ops-v2 .cards.fav-grid:not(.vista-lista){grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
body.ops-v2 .cards.fav-grid:not(.vista-lista)>.fav-card{padding:10px}
body.ops-v2 .cards.fav-grid:not(.vista-lista)>.fav-card>.product-photo{aspect-ratio:4/3;object-fit:contain}
body.ops-v2 .fav-grid .fav-links .w-btn{min-height:30px;height:30px;font-size:11.5px;padding-inline:6px}

/* Contadores del menú: vacíos hasta que llegan los datos, sin el guion de espera. */
#nav .n:empty{display:none}
/* Muestras (issue #224): los pasos con su fecha en una fila que se acomoda, fotos de la revisión en miniatura. */
.mu-pasos{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:10px 0;padding:0}
.mu-pasos li{display:flex;flex-direction:column;min-width:88px;padding:6px 8px;border:1px solid var(--ui-border,#ddd);border-radius:8px;opacity:.55}
.mu-pasos li.on{opacity:1}
.mu-pasos li.actual{border-color:var(--ui-accent,#0a7);box-shadow:inset 0 0 0 1px var(--ui-accent,#0a7)}
.mu-pasos small{font-variant-numeric:tabular-nums}
.mu-alerta{margin:8px 0 0;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,var(--ui-danger,#c0392b) 12%,transparent);color:var(--ui-danger,#c0392b);font-weight:600}
.mu-fotos{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.mu-fotos .product-photo{width:72px;height:72px}
.mu-check{border:0;margin:8px 0;padding:0}
.mu-check legend{font-weight:600;margin-bottom:6px}

/* ===== Más movimiento (2026-11-07) ===== */
/* Menú, pestañas, ruta del producto, cifras y tarjetas clicables: hover, entrada y pulso suave. Todo bajo no-preference. */
@media (prefers-reduced-motion:no-preference){
@keyframes e-ico{0%{transform:scale(.7) rotate(-8deg)}60%{transform:scale(1.12) rotate(2deg)}100%{transform:none}}
@keyframes e-badge{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
@keyframes e-tab{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@keyframes e-glow{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 0%,transparent)}50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}}
@keyframes e-sheen{from{background-position:-160% 0}to{background-position:260% 0}}
/* Menú lateral */
#nav .nav-item{transition:background-color .2s var(--e-ease),color .2s var(--e-ease),box-shadow .2s var(--e-ease),transform .2s var(--e-ease)}
#nav .nav-item svg{transition:transform .25s var(--e-ease),color .2s var(--e-ease)}
#nav .nav-item:hover:not(.active){transform:translateX(3px)}
#nav .nav-item:hover svg{transform:scale(1.12)}
#nav .nav-item.active svg{animation:e-ico .45s var(--e-ease) both}
#nav .n:not(:empty){animation:e-badge .35s var(--e-ease) both}
/* Pestañas de la sección */
#ops-subnav:not([hidden]) .ops-subnav-tab{animation:e-tab .3s var(--e-ease) calc(var(--t,0)*40ms) both;transition:background-color .2s var(--e-ease),color .2s var(--e-ease),box-shadow .2s var(--e-ease)}
#ops-subnav .ops-subnav-tab:nth-child(2){--t:1}#ops-subnav .ops-subnav-tab:nth-child(3){--t:2}
/* Ruta del producto: cada etapa se levanta y su ícono rebota al pasar el mouse; la etapa con pedidos late suave */
.ruta-node{transition:transform .22s var(--e-ease),box-shadow .22s var(--e-ease)}
.ruta-node:hover{transform:translateY(-3px)}
.ruta-node:hover b svg{animation:e-ico .45s var(--e-ease) both}
/* Tarjetas y cifras clicables */
.kpi-mini,.act-item,.fk-card,.ot-row,body.ops-v2 .kpi{transition:transform .18s var(--e-ease),box-shadow .18s var(--e-ease),border-color .18s var(--e-ease),background-color .18s var(--e-ease)}
.kpi-mini:hover,.fk-card:hover,body.ops-v2 button.kpi:hover{transform:translateY(-2px);box-shadow:0 10px 24px -16px rgba(11,13,18,.35)}
.act-item:hover,.ot-row:hover{transform:translateX(2px)}
.kc{transition:transform .18s var(--e-ease),box-shadow .18s var(--e-ease)}
.kc:hover{transform:translateY(-2px)}
/* Botón principal: brillo que cruza al pasar el mouse */
.w-btn--primary{background-image:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.22) 50%,transparent 70%);background-size:200% 100%;background-repeat:no-repeat;background-position:-160% 0}
.w-btn--primary:hover:not(:disabled){animation:e-sheen .8s var(--e-ease) both;box-shadow:0 8px 20px -12px var(--accent)}
/* Campos: el foco aparece con un halo suave */
.w-input,.w-select,textarea.w-input{transition:border-color .18s var(--e-ease),box-shadow .2s var(--e-ease)}
/* Decisiones urgentes: pulso suave para que se vean */
.kpi-mini[data-tone="bad"]{animation:e-glow 2.4s ease-in-out infinite}
}
/* #216: «Completar empresa» junto a Editar en la cabecera del perfil del proveedor. */
body.ops-v2 span.pv-perfil-edit{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}

/* Historial de cambios (#231) */
.hist-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:0}.hist-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px 16px;align-items:center;padding:10px 0;border-top:1px solid var(--w-border,rgba(0,0,0,.08))}.hist-main small{display:block;margin-top:2px}.hist-who{font-size:.9em}@media (max-width:600px){.hist-item{grid-template-columns:1fr}}

/* #218: vista previa del shipping mark (150 × 100 mm). */
.sm-canvas{display:block;width:100%;max-width:640px;height:auto;aspect-ratio:425/283;border:1px solid var(--line);border-radius:8px;margin:12px 0;background:#fff}
/* #226: estrellas de la calificación del proveedor (las vacías más tenues). */
body.ops-v2 .pv-stars{color:var(--ui-warning,#c80);letter-spacing:1px;white-space:nowrap}body.ops-v2 .pv-stars i{font-style:normal;opacity:.25}
/* Escenarios de inversión (issue #235): matriz ocupación × alquiler y sensibilidad al flete dentro de la idea. */
.esc-box{margin:10px 0;border-top:1px solid var(--ui-border,#ddd);padding-top:8px}
.esc-box summary{cursor:pointer;font-weight:600}
.esc-tabla{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.esc-tabla th,.esc-tabla td{padding:6px 8px;border-bottom:1px solid var(--ui-border,#ddd);text-align:right}
.esc-tabla th:first-child{text-align:left}
.esc-tabla td small{display:block;color:var(--muted)}
.esc-flete{display:flex;flex-wrap:wrap;gap:6px}
/* #234: alertas de fraude dentro del aviso del proveedor. */
body.ops-v2 .pv-fraudes{margin:6px 0 0;padding-left:18px}body.ops-v2 .pv-fraudes li{margin:2px 0}
.av-prev{white-space:pre-wrap;font-family:inherit;font-size:.92em;margin:0}
.av-checks{display:flex;flex-wrap:wrap;gap:8px 20px;margin:12px 0}.av-checks label{display:inline-flex;gap:8px;align-items:center}
/* Certificados por producto (#215) y alertas de cotización (#215, #228). */
body.ops-v2 .fk-certs{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:8px 0;padding:0}
body.ops-v2 .fk-certs li{border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:12px;color:var(--muted)}
body.ops-v2 .fk-certs li.si{color:var(--ink);border-color:currentColor}
body.ops-v2 .alerta-chip{white-space:nowrap}
/* #223: plantillas de mensajes en Fondo y reglas. */
body.ops-v2 .pl-panel .pl-texto{font-size:.92em;line-height:1.45;resize:vertical}body.ops-v2 .pl-panel .pl-vars{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
/* #232: rubros con su etiqueta de Alibaba en Ajustes. */
body.ops-v2 .rub-fila{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,220px) auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--ui-border,#e5e5e5)}body.ops-v2 .rub-fila small{display:block;opacity:.7}@media(max-width:600px){body.ops-v2 .rub-fila{grid-template-columns:1fr auto}body.ops-v2 .rub-fila>div{grid-column:1 / -1}}
/* #271/#272/#275: matriz de variantes, calculadora de combos y biblioteca de adjuntos. */
body.ops-v2 .mx-cell small{display:block;color:var(--ui-text-muted,#667);font-size:.82em;line-height:1.35}body.ops-v2 .mx-cell b,body.ops-v2 .mx-cell>span{white-space:nowrap}
body.ops-v2 .adj-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin:0 0 10px}body.ops-v2 .adj-foto{display:block;aspect-ratio:1;border-radius:10px;overflow:hidden;border:1px solid var(--ui-border,#e5e5e5);background:var(--ui-surface-2,#f4f4f4)}body.ops-v2 .adj-foto img{width:100%;height:100%;object-fit:cover;display:block}body.ops-v2 .adj-precios:not(:empty){margin-top:8px}
body.ops-v2 .cc-form{display:grid;gap:12px}body.ops-v2 .cc-fila{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;border:1px solid var(--ui-border,#e5e5e5);border-radius:12px;padding:10px 12px;margin:0;min-width:0}body.ops-v2 .cc-fila legend{padding:0 4px;font-weight:600}body.ops-v2 .cc-fila .hint{grid-column:1/-1;margin:0}body.ops-v2 .cc-res{margin-top:14px}

/* Bandeja (#282, #283, #286) */
.bj-horas{flex-direction:row;align-items:center;gap:6px;margin:0}
.bj-horas .w-input{width:auto}
.bj-alertas{display:grid;gap:8px;margin:0 0 12px}
.bj-alerta{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 12px;border-radius:10px;border:1px solid var(--ui-danger,#c0392b);background:color-mix(in srgb,var(--ui-danger,#c0392b) 10%,transparent)}
.bj-alerta b{display:block;color:var(--ui-danger,#c0392b)}
.bj-alerta small,.bj-alerta p{display:block;margin:2px 0 0}
.bj-layout{display:grid;gap:12px;margin-top:12px}
.bj-layout h3 small{font-weight:400;opacity:.7;margin-left:6px}
.bj-lista{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.bj-item{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid var(--ui-border,#e5e5e5)}
.bj-item:last-child{border-bottom:0}
.bj-item-body{flex:1;min-width:0}
.bj-item-body b,.bj-item-body small,.bj-cola small{display:block}
.bj-item-body small{opacity:.8;overflow-wrap:anywhere}
.bj-acc{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.bj-agentes{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.bj-agentes li{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.bj-agentes li small{flex:1;opacity:.75}
/* #268 Pagos con links de pago: cinco cifras-filtro. */
body.ops-v2 .kpi-row.kpi-5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1200px){body.ops-v2 .kpi-row.kpi-5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){body.ops-v2 .kpi-row.kpi-5{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){body.ops-v2 .kpi-row.kpi-5{grid-template-columns:minmax(0,1fr)}}
body.ops-v2 .lp-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 12px}
body.ops-v2 .lp-acc{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
body.ops-v2 .lp-cand{margin-top:16px}
body.ops-v2 .lp-cand .xp-tx{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--line,rgba(0,0,0,.08))}
body.ops-v2 .lp-cand .xp-tx small{display:block;overflow-wrap:anywhere}
/* #269 Dirección de la orden */
body.ops-v2 .dir-card.is-alerta{border-color:var(--bad,#DC2626)}
body.ops-v2 .dir-card .dir-ok{color:var(--ok,#16A34A);font-weight:600}
body.ops-v2 .dir-card .dir-orden{margin-top:8px}
body.ops-v2 .dir-card textarea{width:100%;font-family:inherit}
body.ops-v2 .dirchk-row select{min-width:170px}
body.ops-v2 .dirchk-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto auto;gap:8px;align-items:center}
body.ops-v2 .dirchk-row .msg{grid-column:1/-1}
body.ops-v2 .dirchk-on{display:flex;align-items:center;gap:6px;white-space:nowrap}
@media(max-width:720px){body.ops-v2 .dirchk-row{grid-template-columns:minmax(0,1fr)}}
/* #277 Vencimientos */
body.ops-v2 .ven-row.is-bad td:first-child{box-shadow:inset 3px 0 0 var(--bad,#DC2626)}
body.ops-v2 .ven-row.is-warn td:first-child{box-shadow:inset 3px 0 0 var(--warn,#EA580C)}
/* #276 Activos de marca */
body.ops-v2 .marca-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
body.ops-v2 .marca-card.is-falta{border-style:dashed}
body.ops-v2 .marca-file{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line,rgba(0,0,0,.08))}
body.ops-v2 .marca-file small{display:block}
body.ops-v2 .marca-file b{overflow-wrap:anywhere}
body.ops-v2 .marca-file .actions{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap}
body.ops-v2 .marca-prev{width:64px;height:64px;object-fit:contain;border-radius:8px;background:#fff;border:1px solid var(--line,rgba(0,0,0,.08))}
body.ops-v2 .marca-ext{display:flex;align-items:center;justify-content:center;font:600 12px/1 ui-monospace,monospace;color:var(--muted,#64748B)}
/* #278/#279/#280: calidad, rango de negociación e historial de precios en la ficha. */
body.ops-v2 .cal-lista,body.ops-v2 .rg-campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}body.ops-v2 .rg-conc{grid-column:1/-1}body.ops-v2 .cal-editar{margin:8px 0}body.ops-v2 .cal-editar summary{cursor:pointer;font-weight:600}body.ops-v2 .cal-editar .w-field{margin-top:8px}body.ops-v2 .hp-box small{line-height:1.5}

/* ---- Mensajes con autor (#270), recomendada (#273) y contactos de la misma empresa (#274) ---- */
.ms-box{margin-top:16px;display:grid;gap:10px}
.ms-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}
.ms-head h3{margin:0}
.ms-filtros{display:flex;flex-wrap:wrap;gap:6px}
.ms-f{cursor:pointer;border:1px solid var(--line,rgba(0,0,0,.12));background:transparent;font:inherit}
.ms-f b{margin-left:4px;font-weight:600}
.ms-f.is-on{background:var(--accent-soft,rgba(194,65,12,.12));border-color:var(--accent,#C2410C)}
.ms-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ms-item{border-left:3px solid var(--line,rgba(0,0,0,.12));padding:4px 0 4px 10px}
.ms-item[data-autor=dario]{border-left-color:#15803D}
.ms-item[data-autor=agente]{border-left-color:#0E7490}
.ms-item[data-autor=alibaba]{border-left-color:#C2410C}
.ms-item[data-autor=proveedor]{border-left-color:#4F46E5}
.ms-item p{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.ms-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.85em}
.ms-nuevo summary{cursor:pointer;font-weight:600}
.ms-form{display:grid;gap:8px;margin-top:8px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.ms-form .ms-texto{grid-column:1/-1}
.ms-form button{justify-self:start}
.dc2-rec small{display:block;font-size:.7em;font-weight:500;opacity:.85}
.dc2-rec-txt{margin:6px 0 0;font-size:.9em}
.pv-unir{margin-bottom:16px}
.pv-unir-g{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line,rgba(0,0,0,.08));flex-wrap:wrap}
.pv-unir-g>div{display:grid;gap:2px;min-width:0}
.pv-unir-g small{overflow-wrap:anywhere}
/* #285 freno por pago fuera de Trade Assurance y #287 presupuesto */
body.ops-v2 .ta-freno{margin:0 0 10px}
body.ops-v2 .ta-freno p{margin:4px 0 8px}
body.ops-v2 .pre-ctrl{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}
body.ops-v2 .pre-ctrl .w-field{min-width:160px}
body.ops-v2 .ops-data-bar .ops-subnav:not([hidden]){flex-shrink:0;margin-right:12px}
