:root{font-family:system-ui,-apple-system,sans-serif;color:#34281f;background:#fffaf4;line-height:1.6}*{box-sizing:border-box}body{margin:0}header,main,footer{max-width:1180px;margin:auto;padding:24px}header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e8d8c5;gap:20px}header img{max-width:100%;height:auto}header nav{display:flex;gap:14px}a{color:#884008}a[aria-current]{font-weight:800;text-decoration-thickness:3px}h1{font-family:Georgia,serif;font-size:clamp(30px,5vw,48px);line-height:1.2}h2{font-family:Georgia,serif}h3{font-size:1rem}.intro{max-width:760px;color:#675747}.booking-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px}.panel,.record{background:white;border:1px solid #eadbc9;border-radius:18px;padding:24px;margin-bottom:20px;min-width:0}.panel h2{margin-top:0}.month{display:flex;justify-content:space-between;align-items:center}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.weekday{text-align:center;font-size:.8rem}.day{padding:8px 0;min-width:0}.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.legend{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0;font-size:.8rem}.legend span{padding:3px 7px;border-radius:5px}button,.button{font:inherit;cursor:pointer;border:1px solid #b96b34;background:#fff4e8;color:#68320e;border-radius:9px;padding:10px 14px;text-decoration:none;display:inline-block;line-height:1.4}button:hover,.button:hover{filter:brightness(.94)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #6546ad;outline-offset:3px}button:disabled{opacity:.4;cursor:default}.available{background:#e5f4e9;color:#17532a;border-color:#9ccbaa}.blocked,.danger,.cancelled,.rejected{background:#ffe5e3;color:#8b1d19;border-color:#e4a09b}.pending{background:#fff0c7;color:#714d00;border-color:#ddc26d}.reserved,.approved{background:#ffe5e3;color:#8b1d19}.selected{box-shadow:0 0 0 3px #6b3a1b inset;font-weight:800}label{display:block;margin-bottom:16px;font-weight:600}input,textarea,select{font:inherit;color:inherit;display:block;width:100%;padding:11px;border:1px solid #cdb99f;background:#fff;border-radius:8px;min-height:44px}textarea{min-height:85px;resize:vertical}.consent{display:flex;align-items:start;gap:12px;font-size:.9rem}.consent input{width:20px;min-height:20px;flex-shrink:0}.primary{display:block;width:100%;background:#bc5416;color:white;margin-top:20px}.chosen{display:grid;grid-template-columns:1fr 1fr;gap:10px}.honeypot{position:absolute;left:-9999px}.feedback:empty{display:none}.feedback{padding:16px;background:#e5f4e9;border-radius:10px}.feedback.bad{background:#ffe5e3}.toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.badge{font-family:system-ui;font-size:.8rem;padding:5px 8px;border-radius:8px}footer{font-size:.9rem;border-top:1px solid #e8d8c5;margin-top:25px}#login,#password-form{max-width:420px;background:white;padding:24px;border-radius:18px}.record p{overflow-wrap:anywhere}.slot{padding:10px 4px}[hidden]{display:none!important}@media(max-width:750px){.booking-layout{grid-template-columns:1fr}.panel{padding:16px}header,main,footer{padding:16px}header img{width:175px}.slots{grid-template-columns:repeat(4,1fr)}}

.notification-panel{margin:20px 0}.notification-panel.has-pending{border:2px solid #d5a53b;background:#fff8e4}.notification-panel h2{margin-bottom:8px}.notification-count{display:inline-grid;place-items:center;min-width:32px;padding:2px 9px;border-radius:20px;background:#714d00;color:#fff;font:700 16px system-ui}.notification-list{list-style:none;padding:0;margin:0;max-height:320px;overflow:auto}.notification-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid #e4d1a1}.notification-list span{overflow-wrap:anywhere;min-width:0}.notification-list button{flex-shrink:0}@media(max-width:600px){.notification-list li{align-items:flex-start;flex-direction:column}}

.slot.elapsed,.legend .elapsed{background:#e5e7eb;color:#60656e;border-color:#c5c9d0}.slot.elapsed:disabled{opacity:1;cursor:not-allowed;box-shadow:none}

.appointment-list{margin:20px 0}.appointment-list .records{max-height:420px;overflow:auto}.appointment-list .record{padding:14px 0;border:0;border-bottom:1px solid #eadbc9;border-radius:0;margin:0}.record-summary{display:flex;align-items:center;justify-content:space-between;gap:16px}.record-summary h3{margin:0 0 8px}.record-summary>div{min-width:0;overflow-wrap:anywhere}.record-summary button{flex-shrink:0}.record details{margin-top:10px}.record summary{cursor:pointer;color:#884008;font-size:.9rem}.opened-appointment{padding:12px;margin:12px 0;background:#fff0dc;border:2px solid #b65b1c;border-radius:9px}.opened-appointment strong,.opened-appointment span{display:block}.slot.appointment-selected{box-shadow:inset 0 0 0 3px #884008}.slot.elapsed.appointment-selected{box-shadow:inset 0 0 0 2px #6f737a}#calendar-panel{scroll-margin-top:16px}@media(max-width:600px){.record-summary{align-items:flex-start;flex-direction:column}.record-summary button{width:100%}}

.day.available[data-date="2026-11-15"]{background:#ffe0a3;color:#754000;border-color:#dc982d}
