.appointment-shell{min-height:100vh;background:#101310;color:#f5f7f3;font:16px/1.5 system-ui,Arial,sans-serif;padding:20px 20px 80px}.appointment-shell *{box-sizing:border-box}.appointment-wrap{max-width:1080px;margin:auto}.appointment-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #455744;padding:10px 0 24px}.appointment-top strong{color:#d8fb50;font-weight:900;font-size:24px}.appointment-shell a,.appointment-top a{color:#d8fb50}.appointment-hero{padding:52px 0 20px}.appointment-hero span{color:#d8fb50;letter-spacing:.18em;font-weight:800}.appointment-hero h1{font-size:clamp(44px,8vw,86px);line-height:1;margin:12px 0}.appointment-hero p{max-width:680px;color:#cbd5c8}.appointment-card{background:#202820;border:1px solid #51624e;padding:clamp(16px,4vw,34px)}.appointment-card h2{font-size:32px;margin:0}.appointment-card>p{max-width:760px}.appointment-card .appointment-note{border-left:4px solid #d8fb50;padding:12px 18px;background:#172017}.appointment-day{border-top:1px solid #536450;padding:16px 0}.appointment-day h3{margin:0 0 12px;font-size:21px}.appointment-day h3 span{font-weight:400;color:#bbcbb6;margin-left:8px}.appointment-hours{display:flex;flex-wrap:wrap;gap:9px}.appointment-hours button{background:#111911;border:1px solid #81947c;color:#fff;padding:9px 14px;min-width:112px;min-height:62px;cursor:pointer;text-align:left}.appointment-hours button:hover:not(:disabled){border-color:#d8fb50;background:#2d3d23}.appointment-hours button:disabled{cursor:default;opacity:.68}.appointment-hours button.pending{border-color:#e2b869}.appointment-hours button.approved{border-color:#d8fb50}.appointment-hours small,.appointment-hours strong{display:block}.appointment-hours small{font-size:12px;color:#d8fb50}.appointment-day .no-hours{color:#aeb9aa;margin:0}.appointment-error{color:#ffc8ba}.appointment-error button{padding:6px 10px;margin-left:10px}.appointment-admin{border:1px solid #547244;padding:24px;border-radius:14px;margin:24px 0}.appointment-admin button{cursor:pointer}.appointment-grid{display:grid;grid-template-columns:55px repeat(7,minmax(72px,1fr));gap:5px;overflow-x:auto}.appointment-grid>span{text-align:center;font-size:13px}.appointment-grid button{border:1px solid #60715d;background:#121a12;color:#ddd;padding:7px 2px;min-width:72px}.appointment-grid button.open{background:#d8fb50;color:#152114;font-weight:700}.appointment-grid button:disabled{opacity:.5}.appointment-requests article{border:1px solid #647862;margin-top:10px;padding:14px}.appointment-requests button{padding:8px 14px;margin:4px 8px 0 0}.appointment-requests small{display:block;color:#bacab5}@media(max-width:750px){.appointment-grid{grid-template-columns:50px repeat(7,72px)}.appointment-admin{overflow-x:auto}.appointment-hours button{min-width:105px}}.calendar-date{border-block:1px solid #506047;padding-block:18px;margin:22px 0}.calendar-navigation{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.calendar-date button,.calendar-filters button,.calendar-sync button,.request-actions button{font:inherit;border:1px solid #788b70;border-radius:9px;background:#172314;color:#f5f7ef;padding:10px 14px;cursor:pointer;min-height:44px}.calendar-date button:disabled{opacity:.45;cursor:default}.calendar-date label{display:flex;align-items:center;gap:12px;font-size:14px}.calendar-date input{font:inherit;max-width:100%;background:#111a10;color:#fff;color-scheme:dark;border:1px solid #788b70;border-radius:8px;padding:10px}.calendar-date h3{font-size:20px;margin-bottom:0}.hour-tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.hour-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;min-height:78px!important;border:1px solid #657a5b!important;border-radius:12px!important;background:#182314!important;color:#d9e3d2!important;padding:12px 5px!important;font:inherit;cursor:pointer}.hour-tile strong{font-size:20px;line-height:1.3}.hour-tile small{font-size:11px}.hour-tile.available{background:#cdeb76!important;color:#19250f!important;border-color:#d8fb50!important}.hour-tile.closed{background:#151c13!important;color:#9aaa93!important}.hour-tile.pending{background:#4a3820!important;color:#ffdc94!important;border-color:#cca965!important}.hour-tile.approved{background:#215238!important;color:#d2ffe5!important;border-color:#60b987!important}.hour-tile.selected{outline:3px solid #fff;outline-offset:2px}.hour-tile:hover:not(:disabled){filter:brightness(1.1)}.hour-tile:disabled{cursor:default;opacity:.7}.admin-hour-tiles .hour-tile>span{position:absolute;right:8px;top:4px;font-size:13px}.slot-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;margin:16px 0;color:#c7d7bd}.appointment-selection{padding:18px;border:1px solid #d8fb50;border-radius:12px;margin-top:20px}.calendar-primary{border:0;border-radius:9px;padding:14px 18px;background:#d8fb50;color:#142010;font:700 15px system-ui;cursor:pointer}.calendar-sync{font-size:12px;color:#b5c3ad}.calendar-sync button{padding:6px 10px;font-size:12px}.calendar-filters,.request-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.calendar-filters button[aria-pressed=true]{background:#d8fb50;color:#142010}.booking-status{display:inline-block;font-size:12px;border:1px solid #788b70;border-radius:20px;padding:4px 10px;margin:8px 0}.booking-status.approved{color:#a6e9bd}.booking-status.pending{color:#ffe095}.appointment-admin{overflow:visible}.appointment-error{overflow-wrap:anywhere}@media(max-width:650px){.hour-tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.hour-tile strong{font-size:18px}.hour-tile small{font-size:10px}.appointment-admin{padding:16px}.calendar-date h3{font-size:17px}}@media(max-width:350px){.hour-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}.week-days{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.week-days button{padding:12px;border:1px solid #67785d;background:#162113;color:#fff;border-radius:10px;font:inherit;cursor:pointer}.week-days button[aria-pressed=true]{background:#d8fb50;color:#152010}.booking-hours{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-hours .hour-tile{min-height:110px!important;cursor:default}.booking-hours button.hour-tile:not(:disabled){cursor:pointer}.booking-hours .hour-tile small{font-size:15px}.appointment-top{gap:14px;flex-wrap:wrap}.appointment-top strong{font-size:clamp(18px,4vw,24px)}@media(min-width:800px){.booking-hours{grid-template-columns:repeat(4,minmax(0,1fr))}}