@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;600;700;800&display=swap');
:root{font-family:'DM Sans',Arial,sans-serif;color:#102a27;background:#f6f7f2}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}.top{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,24px);background:#fbfcf8;border-bottom:1px solid #dce5de}.brand{font:800 20px Manrope,Arial;color:#143d36;letter-spacing:.08em}.brand small{font:600 9px Manrope,Arial;letter-spacing:.15em;margin-left:5px}.top nav{display:flex;gap:28px;font-size:14px}.top nav a:hover{color:#e26537}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:580px;background:#123b34;color:white}.hero>div:first-child{padding:100px 7vw 70px}.eyebrow{display:block;color:#dc773e;letter-spacing:.16em;font-size:11px;font-weight:800;margin-bottom:17px}.hero .eyebrow{color:#ffb879}h1,h2,h3{font-family:Manrope,Arial;margin:0}h1{font-size:clamp(42px,5vw,75px);line-height:1.1;letter-spacing:-.055em}h1 em{font-style:normal;color:#ffad72}.hero p{max-width:440px;font-size:18px;line-height:1.7;color:#d8e7df}.button{display:inline-block;cursor:pointer;background:#e67b42;color:#132922;border:0;border-radius:7px;padding:14px 22px;font-weight:800;font-size:14px}.button:hover{background:#ffaa73}.button:disabled{opacity:.5;cursor:wait}.muted{font-size:13px!important;color:#a6b9b0!important;margin-top:22px}.hero-art{position:relative;overflow:hidden;background:radial-gradient(circle at 52% 42%,#527869,#214d42 65%,#173d36);min-height:420px}.road{position:absolute;background:#d7e2d0;opacity:.12;width:120%;height:160px;transform:rotate(-32deg);top:52%;left:-10%;border-block:4px dashed white}.car{position:absolute;font-size:clamp(130px,17vw,300px);top:22%;left:17%;filter:drop-shadow(12px 20px 12px #0a2c25)}.badge{position:absolute;bottom:33px;right:35px;padding:17px 24px;border:1px solid #b5ddc9;color:white;border-radius:50%;text-align:center;transform:rotate(8deg);font-size:13px}.section{max-width:1280px;margin:auto;padding:95px 5vw}.section h2{font-size:clamp(30px,3.5vw,48px);letter-spacing:-.04em;line-height:1.2}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:38px}.cards article{background:white;padding:35px;min-height:260px;border:1px solid #e0e6dc;border-radius:10px;display:flex;flex-direction:column}.cards article span{color:#e27840;font-weight:800}.cards h3{font-size:23px;margin:25px 0 5px}.cards p{line-height:1.6;color:#61736a}.cards b{margin-top:auto;color:#2f725e}.booking{display:grid;grid-template-columns:1fr 1.1fr;gap:8vw}.booking p{line-height:1.7;color:#52685d}.notice{border-left:3px solid #e67b42;padding:12px 18px;background:#fff3e9;font-size:13px;margin-top:35px}.booking form,.admin-login{background:white;border:1px solid #dce5de;border-radius:12px;padding:30px;box-shadow:0 15px 55px #163f3010}.booking label,.admin-controls label{display:block;font-size:13px;font-weight:700;margin-bottom:18px}.booking input,.booking select,.admin input{width:100%;height:46px;margin-top:9px;border:1px solid #cad9d0;border-radius:6px;background:white;padding:0 12px;font:inherit;color:#102a27}.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}#feedback,#message{font-weight:700;color:#216b55;line-height:1.6}#feedback a{text-decoration:underline}footer{background:#112e2a;color:#d3dfd8;padding:35px 5vw;display:flex;justify-content:space-between;font-size:13px}.admin{min-height:75vh}.admin h1{font-size:48px}.admin-login{display:flex;gap:12px;max-width:580px;margin:30px 0}.admin-login input{margin:0}.admin-controls{display:flex;flex-wrap:wrap;align-items:end;gap:20px;margin:35px 0}.admin-controls form{display:flex;align-items:end;gap:10px}.admin-controls label{margin:0}.admin-controls input{max-width:190px}.secondary{background:#dce9e2;margin:5px}.appointment{background:white;border:1px solid #dce5de;border-radius:8px;padding:18px;margin:10px 0}.appointment h3{font-size:17px}.appointment p{color:#566d61}@media(max-width:760px){.top{height:auto;min-height:72px;display:block;padding:20px}.top nav{margin-top:14px;gap:15px;flex-wrap:wrap;font-size:12px}.hero,.booking{grid-template-columns:1fr}.hero>div:first-child{padding:75px 25px}.hero-art{min-height:290px}.car{top:2%;left:32%;font-size:160px}.section{padding:65px 24px}.cards{grid-template-columns:1fr}.cards article{min-height:210px}.row{grid-template-columns:1fr;gap:0}footer{gap:12px;flex-wrap:wrap}.admin-login{flex-wrap:wrap}}
.config{border-top:1px solid #dce5de;padding:30px 0;margin-top:35px}.config h2{font-size:25px;margin:24px 0}.config>p{color:#536b60}.schedule-row{display:flex;align-items:end;gap:10px;flex-wrap:wrap;border-bottom:1px solid #dce5de;padding:13px 0}.schedule-row strong{min-width:95px}.schedule-row label{font-size:11px;font-weight:700}.schedule-row input[type=time],.schedule-row select{display:block;width:115px;height:38px;padding:5px;margin-top:5px}.schedule-row input[type=checkbox]{width:auto;height:auto}.schedule-row button{margin:0}#specialtyForm{display:flex;gap:10px;max-width:500px}#specialtyForm input{margin:0}
#technicianForm{display:flex;gap:10px;max-width:510px}#technicianForm input{margin:0}.assignment{display:inline-block;margin:8px 14px;font-size:13px}.assignment input{accent-color:#287458}

.specialty-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:9px 0}.specialty-row input{max-width:300px;margin:0}.specialty-row button{margin:0}

.header-qr{display:flex;align-items:center;gap:9px;margin-left:28px;color:#143d36;font-size:11px;line-height:1.3;font-weight:700;white-space:nowrap}.header-qr img{width:54px;height:54px;border:3px solid white;border-radius:5px;image-rendering:pixelated}.header-qr:hover span{text-decoration:underline}@media(max-width:760px){.header-qr{display:none}}

/* Encabezado persistente y QR legible en escritorio. */
.top{position:sticky;top:0;z-index:100;height:138px;gap:24px;box-shadow:0 5px 20px #102a2718}.top nav{margin-left:auto}.header-qr{margin-left:0;gap:12px;font-size:13px}.header-qr img{width:110px;height:110px;border:5px solid white;box-shadow:0 2px 12px #102a2726}.hero-art{background:#214d42 url("/hero-taller.webp") center center/cover no-repeat}.hero-art::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,#0e29258a,transparent 40%);pointer-events:none}.hero-art .badge{z-index:1;background:#123b3477}.road,.car{display:none}@media(max-width:760px){.top{height:auto;min-height:72px;gap:0}.top nav{margin-left:0}.header-qr{display:none}.hero-art{background-position:45% center}}

/* Marca destacada y portada compacta. */
.top{height:120px}.brand{font-size:clamp(24px,2.1vw,34px);letter-spacing:.035em;line-height:1.05;white-space:nowrap}.brand small{display:block;margin:5px 0 0 24px;font-size:10px;letter-spacing:.18em}.header-qr img{width:94px;height:94px}.hero{min-height:410px}.hero>div:first-child{padding:65px 7vw 48px}.hero h1{font-size:clamp(35px,3.5vw,54px)}.hero p{font-size:16px;line-height:1.55}.hero-art{min-height:410px}.section{padding-top:72px;padding-bottom:72px}@media(max-width:760px){.top{height:auto}.brand{font-size:25px}.brand small{font-size:9px}.hero{min-height:0}.hero>div:first-child{padding:42px 24px 35px}.hero h1{font-size:38px}.hero-art{min-height:230px}.section{padding-top:52px;padding-bottom:52px}}

/* QR dentro de la portada, entre el mensaje y la fotografía. */
.hero{grid-template-columns:minmax(0,1fr) 220px minmax(0,1fr)}.hero-qr{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:#123b34;padding:24px 18px}.hero-qr h2{font-size:16px;line-height:1.35;color:white;letter-spacing:0;margin-bottom:17px}.hero-qr a{display:block;background:white;padding:9px;border-radius:10px;box-shadow:0 9px 28px #08231c66}.hero-qr img{display:block;width:150px;height:150px;image-rendering:pixelated}.hero-qr p{font-size:12px;line-height:1.5;color:#d8e7df;margin:16px 0 0}@media(max-width:760px){.hero{grid-template-columns:1fr}.hero-qr{padding:28px 24px}.hero-qr h2{margin-bottom:12px}.hero-qr img{width:145px;height:145px}.hero-qr p{max-width:260px;margin-top:12px}}

/* Tarjetas creadas desde las especialidades activas del taller. */
.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:28px}.service-card{min-height:196px;border:0;border-radius:12px;padding:20px;color:white;text-align:left;background-color:#22594f;background-position:center;background-size:cover;cursor:pointer;display:flex;flex-direction:column;justify-content:end;gap:9px;box-shadow:0 3px 14px #193e321c;transition:transform .18s,box-shadow .18s}.service-card strong{font:800 18px Manrope,Arial,sans-serif;line-height:1.2;text-shadow:0 1px 5px #072621}.service-card span{font-size:12px;font-weight:700;color:#ffcb9e}.service-card:hover,.service-card:focus-visible{transform:translateY(-3px);box-shadow:0 8px 25px #193e3240}.service-card:focus-visible{outline:3px solid #f6a46d;outline-offset:3px}@media(max-width:980px){.service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.service-card{min-height:154px;padding:14px}.service-card strong{font-size:15px}}@media(max-width:420px){.service-grid{grid-template-columns:1fr 1fr}}

/* Servicios ocupa el ancho disponible en escritorio. */
#servicios{max-width:none;padding-left:clamp(24px,4vw,80px);padding-right:clamp(24px,4vw,80px)}#servicios .service-grid{grid-template-columns:repeat(4,minmax(0,1fr))}@media(min-width:1500px){#servicios .service-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-width:980px){#servicios .service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){#servicios .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.specialty-row input[aria-label^="Ruta de imagen"]{max-width:270px}.service-preview{width:64px;height:50px;object-fit:cover;border-radius:6px;border:1px solid #cad9d0}

.whatsapp-link{background:#2b7c5b;margin:5px}.whatsapp-link:hover{background:#3d9872}

.policy-check{display:flex;align-items:center;gap:10px;margin:14px 0;font-size:14px}.policy-check input{width:auto;flex:0 0 auto}.cancel-page{max-width:620px;margin:45px auto;padding:25px}.cancel-page .notice{margin:18px 0}.cancel-page button{margin-top:15px}

.stats-filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.stats-filters label{font-size:13px;font-weight:700}.stats-filters input,.stats-filters select{display:block;min-width:150px}.stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:18px 0}.stat-card{background:#fff;border:1px solid #dce5de;border-radius:10px;padding:18px}.stat-card strong{display:block;font-size:26px;color:#176149}.stat-card span{font-size:13px}.stats-table{width:100%;border-collapse:collapse;background:#fff}.stats-table th,.stats-table td{padding:11px;border-bottom:1px solid #dce5de;text-align:left}.stats-table th{font-size:13px}

.stats-report-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px}.print-only{display:none}@media print{
 @page{size:A4 landscape;margin:12mm}
 html,body{height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important}
 body>header,body>footer,body>script{display:none!important}
 body>main.admin.section{display:block!important;max-width:none!important;min-height:0!important;margin:0!important;padding:0!important}
 main.admin.section>*:not(#dashboard){display:none!important}
 #dashboard>*:not(#statsAccordion){display:none!important} #statsAccordion{display:block!important;border:0!important;padding:0!important;margin:0!important} #statsAccordion>summary{display:none!important} #statsAccordion>.accordion-content{display:block!important;margin:0!important;padding:0!important}
 #statsSection{display:block!important;border:0!important;margin:0!important;padding:0!important}
 #statsSection>*:not(#printableAssignmentReport){display:none!important}
 #printableAssignmentReport{display:block!important;position:static!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;background:#fff!important;color:#111!important;font:10pt Arial,sans-serif!important}
 #printableAssignmentReport .print-only{display:block!important;font-size:16pt!important;margin:0 0 12px!important}
 #printableAssignmentReport p{margin:8px 0!important}
 #printableAssignmentReport h4{margin:16px 0 7px!important}
 #printableAssignmentReport .stats-table{width:100%;border-collapse:collapse}
 #printableAssignmentReport .stats-table th,#printableAssignmentReport .stats-table td{padding:6px 7px;border:1px solid #888;color:#111;overflow-wrap:anywhere}
 #printableAssignmentReport .stats-table thead{display:table-header-group}
 #printableAssignmentReport .stats-table tr{break-inside:avoid;page-break-inside:avoid}
}

/* Gráficos del panel de estadísticas. */
.stats-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0 28px}
.chart-panel{min-width:0;background:white;border:1px solid #dce5de;border-radius:10px;padding:18px}
.chart-panel:last-child{grid-column:1/-1}
.chart-panel h3{font-size:17px;margin-bottom:16px}
.status-pie{width:180px;height:180px;border-radius:50%;margin:4px auto 18px;display:grid;place-items:center;position:relative}
.status-pie::after{content:'';position:absolute;inset:32px;background:white;border-radius:50%}
.status-pie strong{z-index:1;font-size:30px}
.chart-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 16px;font-size:12px}
.chart-legend-item{display:inline-flex;align-items:center;gap:6px}
.chart-legend-item i{display:inline-block;width:12px;height:12px;border-radius:2px}
.bars-viewport{overflow-x:auto;padding-bottom:8px}
.bars-chart{display:flex;min-width:max-content;align-items:start;gap:10px}
.bar-column{width:100px;flex:0 0 100px;text-align:center;font-size:11px}
.bar-half{height:106px;display:flex;justify-content:center}
.bar-half-up{align-items:end;border-bottom:2px solid #76877d}
.bar-half-down{align-items:start}
.bar{width:36px;min-height:0;border-radius:3px 3px 0 0}
.bar-positive{background:#258160}
.bar-negative{background:#b85353;border-radius:0 0 3px 3px}
.bar-column small{display:block;font-size:11px;font-weight:700;margin:6px 0}
.bar-label{display:block;overflow-wrap:anywhere;line-height:1.25;min-height:32px}
.chart-panel .chart-legend{margin:14px 0}
.chart-panel .stats-table{font-size:12px}
@media(max-width:760px){.stats-charts{grid-template-columns:1fr}.chart-panel:last-child{grid-column:auto}.status-pie{width:155px;height:155px}}
@media print{.stats-charts{display:none!important}}

/* Administración: secciones plegables. */
.admin-accordion{border:1px solid #dce5de;border-radius:11px;background:#fff;margin:16px 0;overflow:clip}
.admin-accordion>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 22px;font:800 21px Manrope,Arial,sans-serif;color:#163e36}
.admin-accordion>summary::-webkit-details-marker{display:none}
.admin-accordion>summary::after{content:'▸';font-size:23px;color:#287458;line-height:1}
.admin-accordion[open]>summary::after{content:'▾'}
.admin-accordion>summary:hover,.admin-accordion>summary:focus-visible{background:#eef5ef}
.accordion-content{padding:0 22px 22px}
.accordion-content>.config{border:0;margin:0;padding:0}
.accordion-content>p:first-child{margin-top:0}
@media(max-width:760px){.admin-accordion>summary{padding:16px;font-size:18px}.accordion-content{padding:0 16px 18px}}
@media print{#statsAccordion{overflow:visible!important;background:#fff!important}#statsAccordion>.accordion-content{overflow:visible!important}.admin-accordion{box-shadow:none!important}}
[hidden]{display:none!important}

/* Identidad visual de la clínica: tonos azul y jade, portada ilustrada sin foto de terceros. */
:root{color:#19344b;background:#f5f9fb}.top{background:#fff;border-bottom-color:#d7e7ef}.brand,.header-qr{color:#204b69}.eyebrow{color:#167a84}.hero,.hero-qr{background:#133d59}.hero .eyebrow{color:#82eadb}h1 em{color:#91ded2}.button{background:#8cddce;color:#103b4c}.button:hover{background:#adefe1}.notice{background:#ebf8f7;border-left-color:#3baba5}.service-card{background-color:#275875}.clinic-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.clinic-art{min-height:410px;display:grid;place-content:center;gap:12px;text-align:center;background:radial-gradient(circle at 65% 40%,#9de0d3 0 12%,transparent 12.5%),radial-gradient(circle at 45% 55%,#2d8297,#184f6a 65%,#163d5c);color:white}.clinic-art-icon{font-size:clamp(130px,17vw,260px);font-weight:800;line-height:1;color:#c5f3eb;text-shadow:0 18px 48px #082f49a1}.clinic-art-label{font-size:20px;line-height:1.4}.clinic-art-label strong{font-size:27px}.clinic-hero .muted{color:#cce8ed!important}@media(max-width:760px){.clinic-hero{grid-template-columns:1fr}.clinic-art{min-height:240px}.clinic-art-icon{font-size:130px}}

/* Portada de clínica con fotografía y QR. */
.clinic-hero{grid-template-columns:minmax(0,1fr) 205px minmax(0,1fr)}.clinic-hero .hero-qr{background:#133d59}.clinic-art{display:block;background:#24647b url('/hero-clinica.webp') center center/cover no-repeat;min-height:410px}.clinic-art::after{content:none}.clinic-hero .hero-qr a{background:#fff}.clinic-hero .hero-qr p{font-size:12px;color:#d8e7df}@media(max-width:800px){.clinic-hero{grid-template-columns:1fr}.clinic-hero .hero-qr{padding:24px}.clinic-art{min-height:265px;background-position:center 39%}}
