:root{ --crema:#F8F6E6;
--crema-2:#FDFCF4;
--sol:#F5D661;
--sol-suave:#FAEBB0;
--tinta:#030405;
--tinta-suave:#5A5850;
--terracota:#BB3C05;
--rule:#D9D5BE;
--rule-fine:#E8E4D2;
--paper:var(--crema);
--paper-2:var(--crema-2);
--ink:var(--tinta);
--ink-soft:var(--tinta-suave);
--sea:var(--terracota);
--flag:var(--terracota);
--display:"Montserrat",system-ui,sans-serif;
--body:"Newsreader",Georgia,serif;
--mono:"IBM Plex Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
margin:0;
background:var(--paper);
color:var(--ink);
font-family:var(--body);
font-size:17px;
line-height:1.55;
}
.sheet{max-width:1040px;margin:0 auto;padding:40px 28px 80px}
.brandbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:30px}
.brandbar img.pm{width:168px;height:auto;display:block}
.brandbar .byline{text-align:right}
.brandbar .byline span{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-bottom:7px}
.brandbar .byline img{width:104px;height:auto;display:block;margin-left:auto}
.sunrule{height:3px;background:var(--sol);border:0;margin:0 0 26px}
.endmark{display:flex;justify-content:center;margin:56px 0 0}
.endmark img{width:52px;height:auto;opacity:.5} .eyebrow{
font-family:var(--mono);
font-size:11px;
letter-spacing:.14em;
text-transform:uppercase;
color:var(--ink-soft);
}
.mono{font-family:var(--mono)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.1;margin:0}
h1{font-size:clamp(32px,5.2vw,52px);font-weight:400;letter-spacing:.01em;text-transform:uppercase}
h2{font-size:clamp(21px,3vw,28px);font-weight:500;letter-spacing:.005em}
h3{font-size:17px;font-weight:600;letter-spacing:-.005em}
p{margin:0 0 14px}
a{color:var(--sea)} .masthead{border-bottom:2px solid var(--ink);padding-bottom:22px}
.coords{
font-family:var(--mono);
font-size:13px;
letter-spacing:.04em;
color:var(--terracota);
display:block;
margin-bottom:14px;
}
.masthead .lede{
font-size:19px;
max-width:62ch;
margin-top:18px;
color:var(--ink-soft);
}
.stamp{
display:flex;flex-wrap:wrap;gap:6px 22px;
margin-top:20px;
font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);
} section{margin-top:56px}
.sec-head{display:flex;align-items:baseline;gap:14px;border-bottom:1px solid var(--rule);padding-bottom:10px;margin-bottom:26px}
.sec-head .eyebrow{white-space:nowrap} .rail{position:relative;padding-left:104px}
.rail::before{
content:"";position:absolute;left:72px;top:6px;bottom:6px;width:1px;background:var(--rule);
}
.stop{position:relative;padding:14px 0;border-bottom:1px solid var(--rule-fine)}
.stop:last-child{border-bottom:0}
.stop .km{
position:absolute;left:-104px;top:16px;width:60px;text-align:right;
font-family:var(--mono);font-size:13px;font-weight:500;color:var(--ink-soft);
}
.stop::before{
content:"";position:absolute;left:-34px;top:23px;width:13px;height:1px;background:var(--rule);
}
.stop::after{
content:"";position:absolute;left:-36px;top:20px;width:7px;height:7px;border-radius:50%;
background:var(--paper);border:1px solid var(--ink-soft);
} .stop.self{background:linear-gradient(90deg,rgba(245,214,97,.28),rgba(245,214,97,0));margin-left:-14px;padding-left:14px}
.stop.self::after{background:var(--sea);border-color:var(--sea);width:11px;height:11px;left:-24px;top:18px}
.stop.self::before{left:-20px}
.stop.self .km{color:var(--terracota);font-weight:600;left:-90px}
.stop.ref::after{border-style:dashed;border-color:var(--rule)}
.stop h3{margin-bottom:3px}
.stop .note{font-size:15px;color:var(--ink-soft)}
.stop .tag{
font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
color:var(--ink-soft);border:1px solid var(--rule);border-radius:2px;padding:2px 6px;margin-left:8px;white-space:nowrap;
}
.stop.self .tag{color:var(--terracota);border-color:var(--terracota)} .mapwrap{border:1px solid var(--rule);background:var(--paper-2);padding:8px;position:relative} #zonamap{height:560px;width:100%;background:var(--paper-2);display:none}
.mapwrap.ok #zonamap{display:block}
#zonamap.leaflet-container{font-family:var(--body)}
.leaflet-popup-content{font-family:var(--body);font-size:13px;line-height:1.45;margin:12px 14px}
.leaflet-popup-content b{font-family:var(--display);font-size:14px}
.leaflet-popup-content .pp{font-family:var(--mono);font-size:11.5px;color:var(--ink-soft);display:block;margin-top:5px}
.leaflet-popup-content .pk{font-family:var(--mono);font-size:11.5px;color:var(--terracota);font-weight:600;display:block;margin-top:5px} .maplab{font-family:var(--mono);font-size:10px;font-weight:600;color:var(--ink);white-space:nowrap;width:max-content;text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff}
.maplab.mine{color:var(--terracota);font-size:11px}
.maplab.izq{transform:translateX(-100%)}
.maplegend{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:16px;font-family:var(--mono);font-size:11px;color:var(--ink-soft)}
.maplegend span{display:flex;align-items:center;gap:7px}
.maplegend i{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--ink);display:inline-block;background:#fff}
.maplegend i.mine{background:var(--terracota);border-color:var(--terracota)}
.maplegend i.area{border-style:dashed;border-color:var(--ink-soft);background:rgba(3,4,5,.10)}
.mapfallback{
display:block;border:1px dashed var(--rule);padding:26px 20px;
font-family:var(--mono);font-size:12px;line-height:1.7;color:var(--ink-soft);text-align:center;
}
.mapwrap.ok .mapfallback{display:none}
@media print{
.mapwrap.ok #zonamap{display:none}
.mapwrap.ok .mapfallback{display:block}
} .lanes{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule-fine);border:1px solid var(--rule-fine)}
.lane{background:var(--paper-2);padding:22px 20px}
.lane .idx{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--ink-soft);display:block;margin-bottom:10px}
.lane h3{margin-bottom:8px}
.lane p{font-size:15px;color:var(--ink-soft);margin:0}
.lane.mine{background:var(--sol);}
.lane.mine .idx{color:rgba(3,4,5,.72)}
.lane.mine h3,.lane.mine p{color:var(--tinta)}
.lane.mine p{color:rgba(3,4,5,.78)} .tablewrap{overflow-x:auto;border:1px solid var(--rule)}
.tablewrap:focus-visible{outline:2px solid var(--terracota);outline-offset:2px}
table{border-collapse:separate;border-spacing:0;width:100%;min-width:840px;background:var(--paper-2)}
th,td{
text-align:left;vertical-align:top;
padding:13px 14px;
border-bottom:1px solid var(--rule-fine);
font-size:14px;line-height:1.45;
}
thead th{
font-family:var(--display);font-size:15px;font-weight:600;letter-spacing:-.01em;
border-bottom:1px solid var(--ink);background:var(--paper-2);
}
thead th small{display:block;font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-top:4px} tbody th,thead th:first-child{
position:sticky;left:0;z-index:2;
background:var(--paper-2);
border-right:1px solid var(--rule-fine);
}
thead th:first-child{z-index:3}
tbody th{
font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;
color:var(--ink-soft);width:150px;
}
caption{
caption-side:top;text-align:left;padding:0 0 12px;
font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);
}
td.mine{background:rgba(245,214,97,.20);border-left:2px solid var(--terracota);border-right:2px solid var(--terracota)}
thead th.mine{background:var(--sol);border-left:2px solid var(--terracota);border-right:2px solid var(--terracota);color:var(--tinta)}
tbody tr:last-child td.mine{border-bottom:2px solid var(--terracota)}
td .fig{font-family:var(--mono);font-size:13px;font-weight:500}
.na{color:var(--ink-soft);font-style:italic} .split{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule-fine);border:1px solid var(--rule-fine)}
.half{background:var(--paper-2);padding:24px 22px}
.half h3{margin-bottom:14px}
.half ul{margin:0;padding-left:0;list-style:none}
.half li{
font-size:15px;padding:8px 0 8px 22px;position:relative;border-bottom:1px solid var(--rule-fine);
}
.half li:last-child{border-bottom:0}
.half li::before{
position:absolute;left:0;top:8px;font-family:var(--mono);font-size:13px;
}
.half.yes li::before{content:"+";color:var(--terracota)}
.half.no li::before{content:"—";color:var(--flag)} .note-block{border-left:2px solid var(--flag);padding:4px 0 4px 20px;margin-top:26px}
.note-block .eyebrow{color:var(--flag)}
.note-block p{font-size:15px;margin-top:8px;max-width:70ch} .years{display:flex;gap:1px;background:var(--rule-fine);border:1px solid var(--rule-fine);overflow-x:auto}
.year{background:var(--paper-2);padding:16px 18px;flex:1;min-width:118px}
.year .y{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--ink-soft);display:block}
.year .v{font-family:var(--display);font-size:19px;font-weight:600;margin-top:6px;display:block;white-space:nowrap}
.year.now{background:var(--sol)}
.year.now .y{color:rgba(3,4,5,.72)}
.year.now .v{color:var(--tinta)} .closing{margin-top:56px;border-top:2px solid var(--ink);padding-top:26px}
.closing h3{font-size:20px;margin-bottom:10px}
.closing p{font-size:16px;color:var(--ink-soft);max-width:62ch}
.closing .ways{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:16px;font-family:var(--mono);font-size:13px}
.closing .ways a{color:var(--terracota);text-decoration:none;border-bottom:1px solid var(--rule)}
.closing .ways a:hover,.closing .ways a:focus{border-bottom-color:var(--terracota)} footer{margin-top:64px;border-top:1px solid var(--rule);padding-top:20px}
footer p{font-family:var(--mono);font-size:11px;line-height:1.7;color:var(--ink-soft);max-width:88ch}
@media (max-width:760px){
body{font-size:16px}
.sheet{padding:32px 18px 56px}
.lanes,.split{grid-template-columns:1fr}
.rail{padding-left:64px}
.rail::before{left:44px}
.stop .km{left:-64px;width:40px;font-size:12px}
.stop::before{left:-22px;width:9px}
.stop::after{left:-24px}
.stop.self::after{left:-12px}
.stop.self::before{left:-8px}
.stop.self .km{left:-50px} #zonamap{height:360px} .years{display:grid;grid-template-columns:1fr 1fr;overflow:visible}
.year{min-width:0;padding:14px 16px}
.year.now{grid-column:1 / -1}
}
@media print{
body{background:#fff}
.brandbar{margin-bottom:22px}
.endmark{display:none}
.sheet{padding:0} .lane,.half,.note-block,.year,.stop,.mapwrap{break-inside:avoid}
.sec-head{break-after:avoid} *{-webkit-print-color-adjust:exact;print-color-adjust:exact} .tablewrap{overflow:visible;border:0}
table{min-width:0;width:100%}
th,td{font-size:10.5px;padding:7px 8px}
thead th{font-size:12px}
thead th small{font-size:8.5px}
td .fig{font-size:10.5px}
tbody th,thead th:first-child{position:static}
thead{display:table-header-group}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}