@charset "UTF-8";
:root{--ink:#2d2d2d;--brand-dark:#142e65;--brand-hover:#0d214b;--brand-yellow:#dbe7ff;--paper:#f7f7f5;--line:#e2e2dc;--muted:#686863;--white:#fff;--orange:#a35b13;--red:#a62e31;--radius:18px;--shadow:0 12px 38px #24242410;color-scheme:light;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}a{color:var(--brand-dark);text-underline-offset:4px}button,.button{border:1px solid transparent;background:var(--brand-dark);color:white;border-radius:10px;min-height:46px;padding:11px 19px;font-weight:650;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:12px;transition:background .15s,transform .15s}button:hover,.button:hover{background:var(--brand-hover)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary,.button.secondary{color:var(--brand-dark);background:white;border-color:var(--line)}button.secondary:hover,.button.secondary:hover{background:#f4f3ef;border-color:#a5a49d}.danger-link{color:var(--red);background:transparent;padding:8px}.danger-link:hover{background:#fae8e7}.small{padding:7px 11px;min-height:38px;font-size:13px}input,select,textarea{display:block;width:100%;min-height:47px;border:1px solid #c8c8bf;border-radius:9px;background:white;color:var(--ink);padding:11px 12px;max-width:100%}textarea{resize:vertical}label{display:block;font-size:13px;font-weight:650;line-height:1.6}label input,label select,label textarea{margin-top:6px;font-size:15px;font-weight:400}input[type=checkbox]{width:19px;min-height:19px;height:19px;accent-color:var(--brand-dark);margin:0;flex-shrink:0}.check{display:flex;align-items:center;gap:9px;font-weight:500}.check input{display:inline-block}.check.full{margin-top:2px}h1,h2,h3,p{margin:0 0 15px}h1{font-size:46px;line-height:1.08;letter-spacing:-1.9px;font-weight:650}h2{font-size:29px;line-height:1.2;letter-spacing:-.75px;font-weight:650}h3{font-size:19px;line-height:1.35;font-weight:650}.muted,.hint{color:var(--muted)}.hint{font-size:13px;line-height:1.6;margin:14px 0 0}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:750;display:block;margin-bottom:13px}.prewrap{white-space:pre-wrap;overflow-wrap:anywhere}.full{grid-column:1/-1}.site-header{max-width:1280px;margin:auto;height:104px;padding:24px 44px;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{text-decoration:none;display:flex;align-items:center;gap:12px;font-size:20px;letter-spacing:-.4px;font-weight:750}.brand small{display:block;font-size:11px;font-weight:500;letter-spacing:.3px;color:var(--muted)}nav{display:flex;align-items:center;gap:25px}nav a{font-size:13px;text-decoration:none;font-weight:600}nav a:hover{text-decoration:underline}.admin-link{color:var(--muted)}main{max-width:1192px;margin:auto;padding:0 24px 60px}.hero{position:relative;background:var(--brand-dark);color:white;border-radius:25px;min-height:328px;padding:49px 46px 88px;display:flex;justify-content:space-between;overflow:hidden}.hero h1{font-size:53px;letter-spacing:-2.4px;margin-bottom:20px}.hero p{font-size:15px;color:#e8e7df;margin-bottom:0}.hero .eyebrow{color:var(--brand-yellow)}.hero-copy{z-index:1}.route-art{width:310px;position:relative;margin:4px 35px 0 20px;color:var(--brand-yellow);align-self:stretch;padding-top:15px}.art-point{display:inline-block;border:1px solid #dbe7ff80;background:#ffffff07;border-radius:50px;padding:9px 18px;font-size:13px;position:absolute;top:14px;left:0}.art-point:nth-of-type(2){top:183px;left:174px}.art-line{position:absolute;left:55px;top:58px;width:180px;height:133px;border:2px dashed #dbe7ff;border-top:0;border-left:0;border-radius:0 0 80px 0;transform:rotate(-15deg)}.art-line i{position:absolute;display:block;width:10px;height:10px;border:2px solid var(--brand-yellow);background:var(--brand-dark);border-radius:100%;left:15px;bottom:-6px}.art-line i:nth-child(2){left:102px;bottom:8px}.art-line i:nth-child(3){left:auto;right:-6px;bottom:92px}.art-bus{position:absolute;left:91px;top:91px;font-size:44px;background:var(--brand-yellow);color:var(--brand-dark);width:68px;height:63px;line-height:1.2;text-align:center;border-radius:19px;transform:rotate(-13deg);box-shadow:0 10px 35px #16161640}.search-panel{position:relative;background:white;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--radius);padding:27px 30px;margin:-44px 22px 0;z-index:2}.search-panel h2{font-size:23px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px}.section-head h2,.section-head h3,.section-head p{margin-bottom:0}.section-head .muted{font-size:12px}.search-grid{display:grid;grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr) 165px 170px;gap:12px;align-items:end}.search-grid .swap{width:40px;min-height:46px;padding:0}.search-grid .full{grid-column:1/-1}.search-panel .hint{font-size:11px;max-width:900px}.section{margin:49px 0}.filter-label{width:270px}.route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.route-card{display:block;text-align:left;background:white;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:24px;width:100%;font-weight:400;transition:transform .18s,box-shadow .18s;min-height:221px}.route-card:hover{background:white;transform:translateY(-3px);box-shadow:var(--shadow);border-color:#c5b46d}.route-card>div{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;color:var(--muted)}.route-card h3{font-size:18px;min-height:49px}.route-card p{color:var(--muted);font-size:12px}.card-link{font-size:12px;font-weight:650}.line-badge{display:inline-block;font-size:11px;font-weight:750;padding:5px 10px;border:1px solid #ead58c;border-radius:6px;background:#fff6d5;color:var(--brand-dark);white-space:nowrap}.trip{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:23px 26px;margin-bottom:17px}.trip-top{display:flex;gap:14px;align-items:center;font-size:13px;color:var(--muted)}.trip-times{display:grid;grid-template-columns:1fr 160px 1fr auto;align-items:center;gap:25px;margin:23px 0}.trip-times>div>strong{font-size:33px;line-height:1.2;display:block;font-weight:650;letter-spacing:-.8px}.trip-times>div>span{display:block;font-size:13px;margin-top:6px}.duration{text-align:center;color:var(--muted);font-size:12px}.journey-line{border-top:1px solid #bcb08a;position:relative;margin:9px 0}.journey-line:before,.journey-line:after{content:"";position:absolute;top:-4px;width:7px;height:7px;border-radius:50%;background:#bcb08a;left:0}.journey-line:after{left:auto;right:0}.conditions{margin-top:18px;border-top:1px solid var(--line);padding-top:13px;font-size:13px}.conditions summary{cursor:pointer;color:var(--orange);font-weight:600}.conditions p{margin:16px 0 0}.notice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.notice{border:1px solid #e1d9b6;background:#fbf7e9;border-radius:12px;padding:18px;color:#624c21;font-size:14px}.notice h3{font-size:17px}.notice p:last-child{margin-bottom:0}.empty{grid-column:1/-1;border:1px dashed #cac7bd;text-align:center;padding:36px 20px;border-radius:var(--radius);color:var(--muted)}.status{font-size:14px;margin:20px 0;overflow-wrap:anywhere}.status:empty{display:none}.error{background:#fff0ed;color:#a12b27;border:1px solid #edc4bb;border-radius:10px;padding:14px}.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:12px;background:white}table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}th,td{border-bottom:1px solid #e9e8e2;padding:15px 17px;vertical-align:middle}thead{background:#f4f1e7}thead th{font-size:12px;color:#656158;font-weight:650}tbody tr:last-child>*{border-bottom:0}tbody th{font-weight:500;min-width:230px}td{font-variant-numeric:tabular-nums}tbody tr:hover{background:#fdfbf5}.stop-num{display:inline-flex;align-items:center;justify-content:center;border:1px solid #e8dab0;background:#fff8e3;border-radius:50%;width:26px;height:26px;font-size:11px;font-weight:650;color:var(--brand-dark);flex-shrink:0;margin-right:10px}footer{max-width:1144px;margin:0 auto;border-top:1px solid var(--line);padding:28px 0 36px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:18px;font-size:11px;color:var(--muted)}.embed .site-header,.embed footer{display:none}.embed main{padding-top:20px}.embed .hero{min-height:250px}.embed .hero h1{font-size:42px}.embed .route-art{display:none}.embed .search-panel{margin-left:12px;margin-right:12px}.login-wrap{max-width:500px;margin:60px auto}.panel{padding:27px;border:1px solid var(--line);background:white;border-radius:var(--radius)}.panel h1{font-size:35px;letter-spacing:-1px}.stack{display:grid;gap:17px}.admin-body main{padding-top:15px}.admin-title{display:flex;justify-content:space-between;align-items:center;gap:25px;margin:23px 0 30px}.admin-title h1{font-size:42px;margin-bottom:10px}.admin-title p{color:var(--muted);margin:0}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:32px}.stats>div{background:white;border:1px solid var(--line);border-radius:14px;padding:22px}.stats strong{display:block;font-size:31px;line-height:1.2}.stats span{font-size:12px;color:var(--muted)}.tabs{border-bottom:1px solid var(--line);gap:6px;padding-bottom:12px;margin-bottom:30px;overflow:auto;white-space:nowrap}.tabs button{background:none;color:var(--muted);font-size:13px}.tabs button.selected{background:var(--brand-dark);color:white}.pill{font-size:11px;display:inline-block;border-radius:20px;background:#f1f0eb;padding:4px 9px;white-space:nowrap}.pill.live{background:#e4f3dc;color:#28582c}.pill.draft{background:#f5eedb;color:#7e6427}.actions{min-width:270px}.actions button,.actions a{margin:2px}.actions a{font-size:12px}.settings-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:24px}.settings-grid h2{font-size:22px}.settings-grid p{font-size:14px;color:var(--muted)}.settings-grid h3{margin-top:30px}.settings-grid textarea{margin-bottom:14px;font-family:monospace;font-size:12px}.inline-form{display:flex;align-items:end;gap:17px;margin:20px 0}.inline-form label{flex:1}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px}dialog{width:min(980px,calc(100% - 36px));max-height:90vh;border:1px solid var(--line);border-radius:20px;padding:28px;color:var(--ink);background:var(--paper);box-shadow:0 30px 100px #0003}dialog::backdrop{background:#22222299;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.modal-head h2{margin:0}.modal-head .eyebrow{margin-bottom:7px}.modal-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:25px;padding-top:20px;border-top:1px solid var(--line)}.modal-footer p{font-size:12px;margin:0}#route-form>.section-head{margin-top:33px;margin-bottom:10px}#route-form>.hint{margin:0 0 16px}.stop-editor{display:grid;grid-template-columns:26px minmax(0,1fr) 85px 130px;align-items:center;gap:13px;margin-bottom:9px;padding:12px 13px;background:white;border:1px solid var(--line);border-radius:12px}.stop-editor input{margin:0}.minute-field{position:relative}.minute-field span{display:block;font-size:10px;color:var(--muted);margin-bottom:2px}.row-buttons{display:flex;gap:5px;justify-content:end}.departure-editor{display:flex;gap:25px;align-items:end;margin-bottom:10px;padding:16px;background:white;border:1px solid var(--line);border-radius:12px}.day-checks{border:0;margin:0;padding:0;display:flex;gap:6px;flex:1}.day-checks legend{font-size:11px;margin-bottom:6px;color:var(--muted)}.day-checks label{position:relative;cursor:pointer}.day-checks input{position:absolute;opacity:0;width:1px}.day-checks span{display:flex;width:35px;height:41px;border:1px solid var(--line);align-items:center;justify-content:center;border-radius:8px;background:white;color:var(--muted)}.day-checks input:checked+span{background:var(--brand-dark);color:white;border-color:var(--brand-dark)}.day-checks input:focus-visible+span{outline:3px solid #a36c00;outline-offset:3px}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.skip{position:fixed;left:15px;top:-80px;z-index:10;background:white;padding:10px 15px}.skip:focus{top:15px}:focus-visible{outline:3px solid #a36c00;outline-offset:3px}[hidden]{display:none!important}code{overflow-wrap:anywhere;font-size:12px}#detail{scroll-margin-top:22px}
@media(max-width:1000px){.site-header{padding:20px 24px}.hero{padding-left:32px;padding-right:32px}.route-art{margin-right:0;width:260px}.search-grid{grid-template-columns:1fr 40px 1fr}.search-grid>label:nth-of-type(3){grid-column:1}.search-grid>button[type=submit]{grid-column:3}.route-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trip-times{grid-template-columns:1fr 100px 1fr;gap:15px}.trip-times button{grid-column:1/-1;justify-self:start}.search-panel{margin-left:16px;margin-right:16px}.departure-editor{gap:14px}.settings-grid{grid-template-columns:1fr}footer{margin-left:24px;margin-right:24px}}
@media(max-width:650px){main{padding:0 16px 35px}.site-header{height:85px;padding:18px 16px;gap:12px}.brand{font-size:17px;gap:9px}.brand img{width:36px;height:36px}.brand small{font-size:9px}.site-header nav{gap:12px}.site-header nav a{font-size:11px}.site-header nav a.admin-link{display:none}.hero{padding:32px 23px 74px;border-radius:20px;min-height:auto}.hero h1{font-size:38px;letter-spacing:-1.6px}.hero p{font-size:13px}.hero .eyebrow{font-size:9px}.route-art{display:none}.search-panel{padding:22px 17px;margin:-39px 9px 0;border-radius:15px}.search-panel>.section-head>.muted{display:none}.search-panel h2{font-size:20px}.search-grid{grid-template-columns:1fr 40px;gap:15px 9px}.search-grid>label:first-child{grid-column:1}.search-grid>label:nth-of-type(2){grid-column:1/-1}.search-grid>label:nth-of-type(3){grid-column:1/-1}.search-grid>button[type=submit]{grid-column:1/-1;width:100%}.search-grid .check{font-size:11px}.section{margin:35px 0}.section-head{align-items:flex-start;flex-wrap:wrap;gap:14px}.filter-label{width:100%}h2{font-size:25px}.route-grid,.notice-grid{grid-template-columns:1fr}.route-card{padding:22px;min-height:190px}.route-card h3{min-height:0}.route-card>div{margin-bottom:16px}.trip{padding:18px}.trip-top{align-items:start}.trip-times{grid-template-columns:1fr 64px 1fr;gap:10px}.trip-times>div>strong{font-size:27px}.trip-times>div>span{font-size:11px}.duration small{font-size:10px}.trip-times button{width:100%}.conditions{font-size:12px}footer{display:block;font-size:10px}footer>*{display:block;margin-bottom:10px}.admin-title{align-items:flex-start;flex-direction:column}.admin-title h1{font-size:37px}.stats{grid-template-columns:1fr 1fr;gap:10px}.stats>div{padding:17px}.stats strong{font-size:27px}.stats span{font-size:11px}.tabs{gap:4px}.tabs button{padding:9px 13px;font-size:12px}.panel{padding:22px}.inline-form{display:grid}.form-grid{grid-template-columns:1fr}.full{grid-column:1}.login-wrap{margin-top:30px}.login-wrap h1{font-size:31px}dialog{padding:18px;width:calc(100% - 16px);max-height:94vh}.modal-head h2{font-size:23px}.modal-head .eyebrow{font-size:9px}.stop-editor{grid-template-columns:23px minmax(0,1fr) 68px;gap:9px;padding:11px}.row-buttons{grid-column:2/-1}.departure-editor{display:grid;grid-template-columns:1fr auto;gap:14px}.day-checks{grid-column:1/-1;grid-row:2;gap:5px}.day-checks span{width:31px;height:39px}.departure-editor>button{grid-column:2;grid-row:1}.modal-footer{align-items:stretch;flex-direction:column}.modal-footer button{width:100%}.modal-head button{min-height:40px;padding:8px 13px}.embed .hero h1{font-size:35px}.embed .hero{min-height:0}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{body{background:white;font-size:10pt}.site-header,.hero,.search-panel,footer,.filter-label,.print-button,#status,.route-grid,#close-detail,.button,button{display:none!important}main{max-width:none;padding:0}#routes{display:none}.section{margin:18px 0}.table-scroll{overflow:visible}table{font-size:9pt}th,td{padding:5px}.trip{break-inside:avoid}.conditions{display:block}.conditions p{display:block}.conditions:not([open])>p{display:block}.trip-times{grid-template-columns:1fr 100px 1fr}h2{font-size:18pt}.notice-grid{display:block}}

/* Identidad Urbano Antequera — v1.0.2. Logo original sin recorte ni deformación. */
.site-header{height:112px;padding-top:10px;padding-bottom:10px}
.brand{gap:20px}
.brand .brand-logo{display:block;width:160px;height:80px;object-fit:contain;flex-shrink:0}
.brand-copy{border-left:1px solid var(--line);padding-left:20px;line-height:1.3}
.brand-copy small{margin-top:6px}
button,.button{background:var(--brand-yellow);color:var(--ink)}
button:hover,.button:hover{background:#efb918}
button.secondary,.button.secondary{background:#fff;color:var(--brand-dark)}
button.secondary:hover,.button.secondary:hover{background:#f5f3e9}
button.danger-link{background:transparent;color:var(--red)}
button.danger-link:hover{background:#fae8e7}
.hero{background:var(--brand-dark);border-top:5px solid var(--brand-yellow)}
.hero .eyebrow{color:var(--brand-yellow)}
.art-bus{background:var(--brand-yellow);color:#0d214b}
.route-card{background:#fff;color:var(--ink);border-top:3px solid var(--brand-yellow)}
.route-card:hover{background:#fff}
.card-link{color:#51471f}
.line-badge{color:#534214;background:#fff5cf;border-color:#e7d17c}
.tabs button{background:transparent;color:var(--muted)}
.tabs button.selected{background:var(--brand-dark);color:#fff}
.tabs button:not(.selected):hover{background:#f2eddb;color:var(--ink)}
.day-checks input:checked+span{background:var(--brand-yellow);border-color:#d9ab27;color:#0d214b}
input[type=checkbox]{accent-color:#756019}
@media(max-width:850px){.brand{gap:14px}.brand .brand-logo{width:140px;height:70px}.brand-copy{font-size:16px;padding-left:14px}.brand-copy small{font-size:10px}}
@media(max-width:650px){.site-header{height:86px;padding-top:8px;padding-bottom:8px}.brand .brand-logo{width:120px;height:60px}.brand-copy{display:none}.site-header nav{gap:10px}.site-header nav a{font-size:11px}.site-header nav button{padding:8px 12px;min-height:40px}.hero{padding-top:27px}.route-card{border-top-width:3px}}
@media print{.route-card{border-top:1px solid #ddd}}

/* Instalación móvil — v1.0.3 */
.install-card{display:flex;align-items:center;gap:18px;padding:22px 25px;margin:24px 22px 0;background:#fff9e5;border:1px solid #e7d99f;border-radius:16px}
.install-card>img{border-radius:12px;flex-shrink:0}.install-card>div{flex:1}.install-card h2{font-size:19px;letter-spacing:-.3px;margin:0 0 5px}.install-card p{font-size:13px;color:#686354;line-height:1.5;margin:0}.install-card>button,.install-card>a{flex-shrink:0;font-size:13px}
.install-help{max-width:620px}.install-help h2{font-size:25px}.install-help h3{font-size:18px;margin:23px 0 10px}.install-help>p{font-size:14px;color:var(--muted)}.install-help ol{padding-left:23px}.install-help li{padding:5px 0;font-size:15px;line-height:1.65}.connection-notice{margin-top:22px}.connection-notice p{margin-bottom:12px}
@media(max-width:650px){.install-card{margin:20px 9px 0;padding:18px;display:grid;grid-template-columns:44px minmax(0,1fr);gap:13px}.install-card>img{width:44px;height:44px;border-radius:10px}.install-card h2{font-size:17px}.install-card p{font-size:12px}.install-card>button,.install-card>a{grid-column:1/-1;width:100%}.install-help .modal-head{align-items:flex-start}.install-help h2{font-size:23px}}
@media(display-mode:standalone){.site-header .admin-link{display:none}}
@media print{.install-card,.install-help,.connection-notice{display:none!important}}

/* 1.0.7: directorio navegable y selección de avisos */
a.route-card{display:block;color:inherit;text-decoration:none}a.route-card:hover{text-decoration:none}.alert-route-options{display:grid;gap:.65rem;max-height:22rem;overflow:auto;padding:.5rem}.alert-route-options .check{justify-content:flex-start}.prewrap{white-space:pre-wrap}fieldset[hidden],label[hidden]{display:none!important}

.rich-notes{line-height:1.65;overflow-wrap:anywhere;white-space:pre-wrap}.rich-notes p,.rich-notes div{margin:0 0 .65em}.rich-notes strong,.rich-notes b{font-weight:750}.rich-notes .note-red{color:#a62e31}.rich-notes .note-blue{color:#175ca4}.rich-notes .note-green{color:#286835}.rich-notes .note-orange{color:#9b4c0d}.rich-notes .note-gray{color:#62625e}.rich-notes .note-black{color:#2d2d2d}.note-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:7px;padding:10px;border:1px solid #c8c8bf;border-bottom:0;border-radius:9px 9px 0 0;background:#f4f1e7}.note-toolbar label{display:flex;gap:7px;align-items:center}.note-toolbar select{width:auto;margin:0;min-height:38px;padding:6px;font-size:13px}.note-editor #notes-editor{background:white;min-height:180px;max-height:480px;overflow:auto;padding:14px;border:1px solid #c8c8bf;border-radius:0 0 9px 9px;font-size:15px;font-weight:400}.note-editor #notes-editor:focus{outline:3px solid #ead58c;outline-offset:1px}

.line-badge{background:#edf2fc;border-color:#c7d4ee;color:#142e65}.stop-num{background:#edf2fc;border-color:#c7d4ee}.route-card:hover{border-color:#9cafd5}.notice{background:#f1f5fd;border-color:#ccd8ee;color:#142e65}.brand-logo{object-fit:contain}
