/* Itinerarios a Medida · estilos */
@font-face{font-family:'Overpass';font-style:normal;font-weight:400;font-display:swap;src:url(fuentes/overpass-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Overpass';font-style:normal;font-weight:400;font-display:swap;src:url(fuentes/overpass-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Overpass';font-style:normal;font-weight:600;font-display:swap;src:url(fuentes/overpass-latin-ext-600-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Overpass';font-style:normal;font-weight:600;font-display:swap;src:url(fuentes/overpass-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Overpass';font-style:normal;font-weight:700;font-display:swap;src:url(fuentes/overpass-latin-ext-700-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Overpass';font-style:normal;font-weight:700;font-display:swap;src:url(fuentes/overpass-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Overpass';font-style:normal;font-weight:800;font-display:swap;src:url(fuentes/overpass-latin-ext-800-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Overpass';font-style:normal;font-weight:800;font-display:swap;src:url(fuentes/overpass-latin-800-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Overpass Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fuentes/overpass-mono-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Overpass Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fuentes/overpass-mono-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Overpass Mono';font-style:normal;font-weight:600;font-display:swap;src:url(fuentes/overpass-mono-latin-ext-600-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Overpass Mono';font-style:normal;font-weight:600;font-display:swap;src:url(fuentes/overpass-mono-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Literata';font-style:normal;font-weight:400;font-display:swap;src:url(fuentes/literata-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Literata';font-style:normal;font-weight:400;font-display:swap;src:url(fuentes/literata-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Literata';font-style:italic;font-weight:400;font-display:swap;src:url(fuentes/literata-latin-ext-400-italic.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Literata';font-style:italic;font-weight:400;font-display:swap;src:url(fuentes/literata-latin-400-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Literata';font-style:normal;font-weight:600;font-display:swap;src:url(fuentes/literata-latin-ext-600-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Literata';font-style:normal;font-weight:600;font-display:swap;src:url(fuentes/literata-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Literata';font-style:italic;font-weight:600;font-display:swap;src:url(fuentes/literata-latin-ext-600-italic.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Literata';font-style:italic;font-weight:600;font-display:swap;src:url(fuentes/literata-latin-600-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* Base (antes la ponía el visor de Claude) */
:root{color-scheme:light}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;min-height:100vh}
img{max-width:100%}
[hidden]{display:none!important}

/* Layout: a road-sign header over a two-pane workbench (list | detail); every itinerary is drawn as a transit-style route strip, one stop per day. */
:root{
  --paper:#EDF1EE; --surface:#FAFCFB; --surface-2:#E2E9E5; --ink:#14201B; --muted:#53625B; --line:#C8D2CC;
  --sign:#0E5A43; --sign-ink:#FFFFFF; --sign-soft:#D5E8DE; --accent-text:#0E5A43;
  --marker:#C98A06; --marker-soft:#F6E5BC; --new:#2B5FA8; --new-soft:#DCE6F5;
  --ok:#256B42; --ok-soft:#DCEFE2; --warn:#855400; --warn-soft:#F6E6C4; --bad:#AE3828; --bad-soft:#F6DCD6;
  --focus:#2B5FA8; --scrim:rgba(12,22,18,.45); --shadow:0 12px 36px rgba(12,22,18,.20);
  --f-display:"Overpass","Helvetica Neue",Arial,sans-serif;
  --f-read:"Literata",Georgia,"Times New Roman",serif;
  --f-mono:"Overpass Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --rail:58px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#0C1411; --surface:#131D19; --surface-2:#1B2722; --ink:#E2EAE5; --muted:#93A39B; --line:#2B3933;
  --sign:#1C6F53; --sign-ink:#FFFFFF; --sign-soft:#163A2D; --accent-text:#6FCBA4;
  --marker:#E3A72A; --marker-soft:#3A2D10; --new:#86AEEC; --new-soft:#1A2943;
  --ok:#66C28D; --ok-soft:#163224; --warn:#E6B04E; --warn-soft:#3A2B0F; --bad:#EF8170; --bad-soft:#3F1D18;
  --focus:#8DB3F0; --scrim:rgba(0,0,0,.62); --shadow:0 12px 36px rgba(0,0,0,.55);
  color-scheme:dark;
}}
:root[data-theme="dark"]{
  --paper:#0C1411; --surface:#131D19; --surface-2:#1B2722; --ink:#E2EAE5; --muted:#93A39B; --line:#2B3933;
  --sign:#1C6F53; --sign-ink:#FFFFFF; --sign-soft:#163A2D; --accent-text:#6FCBA4;
  --marker:#E3A72A; --marker-soft:#3A2D10; --new:#86AEEC; --new-soft:#1A2943;
  --ok:#66C28D; --ok-soft:#163224; --warn:#E6B04E; --warn-soft:#3A2B0F; --bad:#EF8170; --bad-soft:#3F1D18;
  --focus:#8DB3F0; --scrim:rgba(0,0,0,.62); --shadow:0 12px 36px rgba(0,0,0,.55);
  color-scheme:dark;
}
*{box-sizing:border-box}
body{background:var(--paper);color:var(--ink);font-family:var(--f-display);font-size:15px;line-height:1.45}
body.sheet-open{overflow:hidden}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{text-wrap:balance}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.wrap{max-width:1320px;margin:0 auto;padding-inline:clamp(16px,3vw,32px);padding-block:16px 64px}
.mono{font-family:var(--f-mono)}
.muted{color:var(--muted)}
.small{font-size:13px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.eyebrow{margin:0;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

/* Road-sign header */
.sign{background:var(--sign);color:var(--sign-ink);border-radius:14px;padding:5px}
.sign-inner{border:2px solid var(--sign-ink);border-radius:10px;padding:12px 16px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand-mark{flex:none;width:34px;height:34px}
.brand h1{margin:0;font-weight:800;font-size:clamp(20px,2.4vw,26px);line-height:1.05;letter-spacing:.005em}
.brand p{margin:3px 0 0;font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;opacity:.88}
.nav{display:flex;flex-wrap:wrap;gap:6px}
.nav button{background:transparent;border:2px solid transparent;border-radius:7px;padding:7px 12px 5px;font-weight:700;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;color:var(--sign-ink)}
.nav button:hover{border-color:currentColor}
.nav button[aria-current="page"]{background:var(--sign-ink);color:var(--sign)}
.nav .count{font-family:var(--f-mono);font-size:12px;font-weight:600;padding:1px 5px 0;border-radius:4px;border:1.5px solid currentColor;font-variant-numeric:tabular-nums}
.banner{margin:12px 0 0;padding:10px 14px;border-radius:8px;background:var(--warn-soft);color:var(--warn);font-weight:600;font-size:14px}

/* Controls */
input[type=text],input[type=search],input[type=number],input[type=date],input[type=email],input[type=password],select,textarea{background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:8px 10px;min-width:0;width:100%}
textarea{resize:vertical;line-height:1.5}
input:disabled,select:disabled,textarea:disabled{opacity:.7}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;padding:9px 14px 7px;font-weight:700;font-size:14px;line-height:1.2;cursor:pointer;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);white-space:nowrap}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--sign);border-color:var(--sign);color:var(--sign-ink)}
.btn.primary:hover{filter:brightness(1.1)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--accent-text);padding-inline:8px}
.btn.ghost:hover{border-color:var(--line)}
.btn.danger{color:var(--bad);border-color:var(--bad-soft);background:transparent}
.btn.danger-solid{background:var(--bad);border-color:var(--bad);color:var(--surface)}
.btn.small{padding:6px 10px 4px;font-size:13px}
.btn[disabled]{opacity:.45;cursor:not-allowed;filter:none}
.danger-text{color:var(--bad)!important}
.linkish{background:none;border:0;padding:0;color:var(--accent-text);cursor:pointer;text-decoration:underline;text-underline-offset:3px;font-size:14px;text-align:left}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.row-gap{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.field{display:grid;gap:5px;min-width:0;align-content:start}
.field label{font-size:13px;font-weight:700}
.field .hint{margin:0;font-size:12.5px;color:var(--muted)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:12px}
.grid5{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}
.form-error{margin:0;padding:10px 12px;border-radius:8px;background:var(--bad-soft);color:var(--bad);font-weight:600;font-size:14px}
.tier{display:inline-flex;align-items:center;gap:8px}
.tier select,.estado-select{width:auto}
.estado-select{font-weight:700;font-size:13px;padding:6px 8px}

/* Workbench */
.bench{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:24px;margin-top:20px;align-items:start}
.list-col{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;min-width:0}
.detail-col{min-width:0}
.col-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 14px 10px}
.col-head h2{margin:0;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.filters{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 10px}
.fchip{border:1px solid var(--line);background:transparent;border-radius:999px;padding:4px 10px 2px;font-size:13px;cursor:pointer;display:inline-flex;gap:6px;align-items:baseline}
.fchip .num{font-family:var(--f-mono);font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.fchip[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.fchip[aria-pressed="true"] .num{color:inherit;opacity:.75}
.fchip[disabled]{opacity:.45;cursor:not-allowed}
.search{padding:0 14px 12px}
.items{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.item{width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);padding:12px 14px;cursor:pointer;display:grid;gap:3px}
.items li:last-child .item{border-bottom:0}
.item:hover{background:var(--surface-2)}
.item[aria-current="true"]{background:var(--sign-soft)}
.item-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.item-name{font-weight:700;font-size:15px;min-width:0;overflow-wrap:anywhere}
.item-meta{font-size:13px;color:var(--muted)}
.item-tags{font-size:12px;color:var(--muted);font-family:var(--f-mono)}
.list-empty{margin:0;padding:16px 14px;color:var(--muted);font-size:14px;border-top:1px solid var(--line)}
.back{display:none;justify-self:start;padding-inline:0}
.placeholder{border:1.5px dashed var(--line);border-radius:12px;padding:28px 24px;display:grid;gap:8px;color:var(--muted)}
.placeholder p{margin:0;max-width:52ch}
@media (max-width:880px){
  .bench{grid-template-columns:minmax(0,1fr)}
  .bench.has-sel .list-col{display:none}
  .bench:not(.has-sel) .detail-col{display:none}
  .back{display:inline-flex}
}

/* Pills and chips */
.pill{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:3px 8px 1px;border-radius:5px;white-space:nowrap}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;margin-top:-2px}
.st-nueva{background:var(--new-soft);color:var(--new)}
.st-propuesta{background:var(--marker-soft);color:var(--warn)}
.st-enviada{background:var(--surface-2);color:var(--ink)}
.st-aceptada{background:var(--ok-soft);color:var(--ok)}
.st-descartada{background:transparent;color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}
.tag-demo{flex:none;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px dashed var(--muted);border-radius:4px;padding:2px 6px 0}
.ochip{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:3px 7px 1px;border-radius:4px;white-space:nowrap}
.ochip.base{color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}
.ochip.ajustada{background:var(--marker-soft);color:var(--warn)}
.ochip.catalogo{background:var(--sign-soft);color:var(--accent-text)}
.ochip.nueva{background:var(--new-soft);color:var(--new)}

/* Detail */
.detail{display:grid;gap:20px;min-width:0}
.d-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px 20px}
.d-title{display:grid;gap:6px;min-width:0;flex:1 1 320px}
.d-title h2{margin:0;font-size:clamp(24px,3vw,32px);font-weight:800;line-height:1.1;overflow-wrap:anywhere}
.d-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.meta-line{margin:0;font-family:var(--f-mono);font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;gap:2px 14px;font-variant-numeric:tabular-nums}
.byline{margin:0;font-size:13px;color:var(--muted)}
.letter{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px clamp(16px,2.5vw,24px);display:grid;gap:12px;min-width:0}
.letter-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 16px}
.letter .text{margin:0;font-family:var(--f-read);font-size:16.5px;line-height:1.62;white-space:pre-wrap;overflow-wrap:anywhere;max-width:68ch}
.internal{margin:0;font-size:14px;padding:10px 12px;border-radius:8px;background:var(--surface-2)}
.lede{margin:0;font-family:var(--f-read);font-size:16.5px;line-height:1.6;max-width:68ch}
.notes{margin:0;font-size:14px;max-width:80ch}
.tags-row{display:flex;flex-wrap:wrap;gap:6px}
.tags-row span{font-family:var(--f-mono);font-size:12px;padding:2px 8px 0;border-radius:4px;background:var(--surface-2)}

/* Agent */
.agent-area{display:grid;gap:16px;min-width:0}
.agent{background:var(--surface);border:1.5px dashed var(--sign);border-radius:12px;padding:18px clamp(16px,2.5vw,24px);display:grid;gap:10px;min-width:0}
.agent h3{margin:0;font-size:19px;font-weight:800;line-height:1.2}
.agent-text{margin:0;max-width:70ch}
.agent.running{border-style:solid}
.agent.error{border-style:solid;border-color:var(--bad)}
.agent.adjust{border-style:solid;border-color:var(--line)}
.gen-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px}
.gen-ctl{display:flex;align-items:center;gap:10px}
.clock{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
.gen-status{margin:0;font-size:14px}
.track{position:relative;height:14px}
.track::before{content:"";position:absolute;left:0;right:0;top:6px;border-top:2px dashed var(--line)}
.train{position:absolute;top:1px;left:0;width:12px;height:12px;border-radius:50%;background:var(--sign);box-shadow:0 0 0 3px var(--sign-soft);animation:ride 2.6s ease-in-out infinite alternate}
@keyframes ride{from{left:0}to{left:calc(100% - 12px)}}
@media (prefers-reduced-motion:reduce){.train{animation:none;left:50%}}
.log{list-style:none;margin:0;padding:0;font-family:var(--f-mono);font-size:13px;color:var(--muted);display:grid;gap:3px}
.log li::before{content:"→ ";color:var(--accent-text)}
.ai-off{display:grid;gap:8px;font-size:14px}
.ai-off p{margin:0}
.loading{padding:48px 0;display:grid;gap:12px;max-width:440px}
.loading p{margin:0;color:var(--muted)}

/* Versions */
.vview{display:grid;gap:14px;min-width:0}
.vbar{display:grid;gap:8px}
.versions{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}
.vtab{flex:none;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:6px 10px 4px;cursor:pointer;font-size:13px;display:inline-flex;gap:8px;align-items:baseline}
.vtab b{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.vtab[aria-pressed="true"]{border-color:var(--sign);box-shadow:inset 0 0 0 1px var(--sign);background:var(--sign-soft)}
.vmeta{margin:0;font-size:13px;color:var(--muted);overflow-wrap:anywhere}

/* Itinerary */
.itin{display:grid;gap:16px;min-width:0}
.itin-head{display:grid;gap:8px}
.itin-head h3{margin:0;font-size:clamp(21px,2.6vw,27px);font-weight:800;line-height:1.15}
.stats{margin:0;font-family:var(--f-mono);font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.nights{display:grid;gap:8px;margin-top:4px}
.nights-bar{display:flex;gap:3px;height:12px}
.nights-bar span{border-radius:3px;min-width:4px;background:var(--sign)}
.nights-bar span.alt,.nights-legend i.alt{background:var(--sign-soft);box-shadow:inset 0 0 0 1.5px var(--sign)}
.nights-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-family:var(--f-mono);font-size:12.5px;font-variant-numeric:tabular-nums}
.nights-legend span{display:inline-flex;align-items:center;gap:6px}
.nights-legend i{width:10px;height:10px;border-radius:2px;background:var(--sign)}
.review{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px}
.rbox{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;min-width:0;display:grid;gap:8px;align-content:start}
.rbox h4{margin:0;font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.rbox ul{margin:0;padding:0;list-style:none;display:grid;gap:8px;font-size:14px}
.rbox p{margin:0;font-size:14px}
.chg{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:baseline}
.chg-t{font:600 10.5px/1 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;padding:4px 5px 2px;border-radius:4px;background:var(--surface-2);color:var(--muted)}
.t-add{background:var(--new-soft);color:var(--new)}
.t-del{background:var(--bad-soft);color:var(--bad)}
.t-mod{background:var(--marker-soft);color:var(--warn)}
.t-mov{background:var(--surface-2);color:var(--ink)}
.chk{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;align-items:start}
.chk-i{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font:800 12px/1 var(--f-display);padding-top:2px}
.chk.ok .chk-i{background:var(--ok-soft);color:var(--ok)}
.chk.aviso .chk-i{background:var(--warn-soft);color:var(--warn)}
.qs{list-style:disc!important;padding-left:18px!important}
.price{font:800 20px/1.2 var(--f-display)!important}
.legend{margin:0;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:12.5px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.dot-mini{width:12px;height:12px;border-radius:50%;border:3px solid var(--sign);background:var(--surface)}
.o-ajustada .dot-mini{background:var(--marker)}
.o-catalogo .dot-mini{background:var(--sign)}
.o-nueva .dot-mini{background:var(--new);border-color:var(--new)}

/* Route strip */
.route{list-style:none;margin:0;padding:6px 0;background:var(--surface);border:1px solid var(--line);border-radius:12px;min-width:0}
.stop{display:grid;grid-template-columns:var(--rail) minmax(0,1fr)}
.stop-rail{position:relative}
.stop-rail::before{content:"";position:absolute;left:calc(var(--rail) / 2 - 2px);width:4px;top:0;bottom:0;background:var(--sign)}
.stop:first-child .stop-rail::before{top:26px}
.stop:last-child .stop-rail::before{bottom:auto;height:26px}
.stop:only-child .stop-rail::before{display:none}
.dot{position:absolute;left:calc(var(--rail) / 2 - 10px);top:16px;width:20px;height:20px;border-radius:50%;background:var(--surface);border:4px solid var(--sign)}
.o-ajustada .dot{background:var(--marker)}
.o-catalogo .dot{background:var(--sign)}
.o-nueva .dot{background:var(--new);border-color:var(--new)}
.dcode{position:absolute;left:0;width:var(--rail);top:42px;text-align:center;font:600 12px/1 var(--f-mono);color:var(--muted);background:var(--surface);padding:3px 0 2px}
.stop-body{padding:14px 20px 18px 6px;min-width:0;border-bottom:1px solid var(--line);display:grid;gap:6px}
.stop:last-child .stop-body{border-bottom:0}
.stop-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.place{font-weight:800;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text)}
.src{font-family:var(--f-mono);font-size:12px;color:var(--muted)}
.stop h4{margin:0;font-size:18px;font-weight:700;line-height:1.25}
.desc{margin:0;font-family:var(--f-read);font-size:15.5px;line-height:1.6;max-width:68ch}
.acts{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 0;padding:0;list-style:none}
.acts li{font-size:13px;border:1px solid var(--line);border-radius:5px;padding:2px 8px 0}
.facts{display:flex;flex-wrap:wrap;gap:2px 18px;margin:2px 0 0;font-size:13.5px}
.facts div{display:flex;gap:6px;min-width:0}
.facts dt{color:var(--muted)}
.facts dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.facts abbr{text-decoration:none;font-family:var(--f-mono)}
.leg{margin:0;display:flex;flex-wrap:wrap;gap:2px 12px;font:400 12.5px/1.45 var(--f-mono);color:var(--muted)}
.leg .leg-route{color:var(--ink);font-weight:600}
.why{margin:2px 0 0;font-size:13.5px;background:var(--surface-2);border-radius:7px;padding:8px 10px;max-width:72ch}
@media (max-width:520px){:root{--rail:44px}.stop-body{padding-right:14px}}

/* Editors */
.editor{display:grid;gap:14px;min-width:0}
.edit-note{margin:0;padding:10px 12px;border-radius:8px;background:var(--marker-soft);color:var(--warn);font-weight:600;font-size:14px}
.ed-days{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.stage-ed{border:1px solid var(--line);border-radius:10px;padding:12px;display:grid;gap:10px;background:var(--surface);min-width:0}
.stage-ed-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ed-sep{display:flex;justify-content:space-between;align-items:baseline;gap:8px;border-top:1px solid var(--line);padding-top:12px}
.ed-sep h3{margin:0;font-size:17px;font-weight:800}
.tr-fs{border:1px solid var(--line);border-radius:8px;padding:8px 10px 10px;margin:0;min-width:0}
.tr-fs legend{font-size:13px;font-weight:700;padding:0 4px}
.sticky-actions{position:sticky;bottom:calc(env(safe-area-inset-bottom,0px) + 8px);background:var(--paper);padding:10px 0;border-top:1px solid var(--line)}

/* Onboarding and rules */
.onboard{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:clamp(18px,3vw,32px);display:grid;gap:22px;margin-top:20px}
.onboard h2{margin:6px 0 0;font-size:clamp(22px,3vw,30px);font-weight:800;line-height:1.15;max-width:30ch}
.onboard .lede{margin-top:10px}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.steps li{display:grid;gap:6px;align-content:start;border-top:4px solid var(--sign);padding-top:10px}
.steps .n{font-family:var(--f-mono);font-weight:600;font-size:12.5px;color:var(--accent-text);letter-spacing:.04em}
.steps b{font-size:16px}
.steps p{margin:0;font-size:14px;color:var(--muted)}
.rules{display:grid;gap:20px;margin-top:20px;max-width:900px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px clamp(16px,3vw,28px);display:grid;gap:14px;min-width:0}
.panel h2{margin:0;font-size:20px;font-weight:800}
.panel > p{margin:0}
.facts-list{margin:0;padding-left:18px;display:grid;gap:6px;font-size:14px;max-width:75ch}
.how{display:grid;gap:12px}

/* Import */
.tabs{display:flex;flex-wrap:wrap;gap:6px}
.imp-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.imp-item{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid;gap:6px}
.imp-check{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.imp-check input{margin-top:4px;flex:none}
.imp-item summary{cursor:pointer;font-size:13px;color:var(--accent-text)}
.imp-days{margin:6px 0 0;padding-left:0;list-style:none;display:grid;gap:3px;font-size:13px}
.imp-run{display:grid;gap:6px}
.imp-run p{margin:0}

/* Sheet and toast */
.scrim{position:fixed;inset:0;background:var(--scrim);display:flex;flex-direction:column;align-items:center;padding:calc(env(safe-area-inset-top,0px) + 16px) 16px calc(env(safe-area-inset-bottom,0px) + 16px);overflow-y:auto;z-index:50}
.sheet{background:var(--surface);color:var(--ink);border-radius:14px;box-shadow:var(--shadow);width:100%;max-width:720px;margin:auto 0;display:grid}
.sheet.wide{max-width:900px}
.sheet-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
.sheet-head h2{margin:0;font-size:20px;font-weight:800}
.sheet-body{padding:18px 20px;display:grid;gap:14px;min-width:0}
.sheet-body p{margin:0}
.sheet-foot{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--line)}
#toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:10px 16px 8px;border-radius:8px;font-size:14px;font-weight:600;box-shadow:var(--shadow);z-index:60;max-width:calc(100% - 32px)}

/* Cuenta en la cabecera */
.nav .me{border-color:rgba(255,255,255,.45)}
.nav .me:hover{border-color:currentColor}

/* Acceso */
.login{max-width:440px;margin:40px auto 0;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px clamp(18px,4vw,28px);display:grid;gap:14px}
.login h2{margin:0;font-size:24px;font-weight:800;line-height:1.15}
.login p{margin:0}
.login form{display:grid;gap:12px}
.login .btn{justify-self:start}

/* Equipo */
.team{display:grid;gap:20px;margin-top:20px;max-width:1000px}
.people{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--line)}
.person{display:grid;grid-template-columns:minmax(0,1fr) 290px 230px;gap:8px 16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.person .who{display:grid;gap:2px;min-width:0}
.person .who b{overflow-wrap:anywhere}
.person .who span{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.person .ctl{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;min-width:0}
.person .acts{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.person.off .who b{color:var(--muted);text-decoration:line-through}
@media (max-width:760px){.person{grid-template-columns:minmax(0,1fr)}.person .acts{justify-content:flex-start}}
.chk-inline{display:inline-flex;gap:6px;align-items:center;font-size:14px;cursor:pointer}
.secret{margin:0;font-family:var(--f-mono);font-size:15px;background:var(--surface-2);padding:10px 12px;border-radius:8px;overflow-wrap:anywhere;user-select:all;white-space:pre-wrap}
.role-help{margin:0;font-size:13px;color:var(--muted);max-width:75ch}
.tag-you{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text);margin-left:6px}

/* Uso de la IA */
.kpis{display:flex;flex-wrap:wrap;gap:12px 32px}
.kpi{display:grid;gap:2px}
.kpi b{font-size:26px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}
.kpi span{font-size:13px;color:var(--muted)}
.table-wrap{overflow-x:auto}
.usage{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
.usage th,.usage td{text-align:right;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.usage th:first-child,.usage td:first-child{text-align:left;padding-left:0}
.usage th{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700}
.file-label{position:relative;overflow:hidden}
.file-label input{position:absolute;inset:0;opacity:0;cursor:pointer}
