.spd-master{max-width:850px;margin:2rem auto;padding:1rem;font-family:inherit;color:#322e29}.spd-master h1{font-size:clamp(1.8rem,5vw,2.5rem)}.spd-master h2{font-size:1.45rem;margin:2rem 0 1rem}.spd-master-card{background:#faf8f4;border:1px solid #e0d8ce;border-radius:14px;padding:1.1rem;margin:0 0 12px;box-shadow:0 2px 10px #00000008}.spd-master-card p{margin:.4rem 0}.spd-master-card label{display:block;margin-bottom:12px}.spd-master-card input{display:block;min-height:44px;width:100%;max-width:320px;padding:8px;border:1px solid #aaa;border-radius:8px}.spd-master button{background:#42564c;color:white;border:0;border-radius:9px;min-height:44px;padding:10px 17px;cursor:pointer;font-size:1rem}.spd-master button:hover{background:#2e4036}.spd-master-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}.spd-master-actions button:last-child,.spd-master-window button{background:#746e68}.spd-master-window{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.spd-master-notice{padding:12px 16px;border-left:4px solid #42564c;background:#edf2ed}.spd-master a{color:#345e4a}@media(max-width:520px){.spd-master{padding:.75rem}.spd-master-card{padding:1rem}.spd-master-actions button{flex:1}.spd-master-window button{width:100%}}
.spd-master-calendar{max-width:850px;margin:1.5rem auto 2rem;padding:1rem;color:#322e29}.spd-calendar-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.spd-calendar-heading h2{margin:0;font-size:1.6rem}.spd-calendar-heading nav{display:flex;gap:15px;align-items:center}.spd-calendar-heading nav a{display:grid;place-items:center;min-width:44px;min-height:44px;border:1px solid #ddd2c5;border-radius:9px;text-decoration:none;font-size:1.6rem;color:#42564c}.spd-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:1rem 0}.spd-calendar-weekday{text-align:center;font-size:.85rem;color:#746e68;padding:7px 0}.spd-calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:68px;padding:6px 2px;border:1px solid #e2d9cd;border-radius:10px;text-decoration:none!important;color:#322e29!important;background:#faf8f4}.spd-calendar-day small{font-size:.72rem;white-space:nowrap}.spd-calendar-day.is-selected{background:#42564c;color:#fff!important}.spd-calendar-day.is-today:not(.is-selected){border:2px solid #42564c}.spd-calendar-detail{background:#faf8f4;border:1px solid #e0d8ce;border-radius:14px;padding:1rem}.spd-calendar-detail h3{margin:0 0 10px}.spd-calendar-appointment{display:flex;flex-wrap:wrap;gap:8px 15px;border-top:1px solid #e0d8ce;padding:12px 0}.spd-calendar-appointment span{color:#625d56}@media(max-width:540px){.spd-master-calendar{padding:.6rem}.spd-calendar-grid{gap:3px}.spd-calendar-day{min-height:55px;border-radius:7px}.spd-calendar-day small{font-size:.59rem}.spd-calendar-heading h2{font-size:1.35rem}.spd-calendar-heading nav{gap:7px}}

.spd-calendar-legend{display:flex;flex-wrap:wrap;gap:10px 20px;margin:14px 0;font-size:.82rem;color:#625d56}.spd-calendar-legend span{display:inline-flex;align-items:center;gap:6px}.spd-dot{width:11px;height:11px;border-radius:50%;display:inline-block;border:1px solid #ccc}.spd-dot.is-free{background:#a4cbb5;border-color:#7caa8f}.spd-dot.is-booked{background:#d9a879;border-color:#c49265}.spd-dot.is-empty{background:#e7e3df}.spd-calendar-day.has-free{background:#e6f1e9;border-color:#b6d2c0}.spd-calendar-day.has-bookings{box-shadow:inset 0 0 0 2px #d9a879}.spd-calendar-day.is-selected{background:#42564c;color:white!important}.spd-calendar-day.has-free.is-selected{background:#42564c}.spd-calendar-day small{white-space:normal;text-align:center;line-height:1.15}

/* High-contrast calendar statuses: selected day is outlined, never painted over. */
.spd-master-calendar .spd-calendar-day{min-height:92px;gap:7px;padding:9px 4px;background:#f1efec;border:2px solid #d4d0cb;box-shadow:none;color:#48443e!important}
.spd-master-calendar .spd-calendar-day.has-free{background:#d7efdd;border-color:#27814b;color:#18482b!important}
.spd-master-calendar .spd-calendar-day.has-bookings:not(.has-free){background:#ffead5;border-color:#c87520;color:#6b3708!important}
.spd-master-calendar .spd-calendar-day.has-bookings.has-free{background:linear-gradient(135deg,#d7efdd 0%,#d7efdd 49%,#ffead5 51%,#ffead5 100%);border-color:#27814b}
.spd-master-calendar .spd-calendar-day.is-selected{outline:4px solid #233d31;outline-offset:1px;color:#202c24!important}
.spd-master-calendar .spd-calendar-day.is-today:not(.is-selected){border-style:dashed}
.spd-master-calendar .spd-day-number{font-size:1.25rem;font-weight:650;line-height:1}
.spd-master-calendar .spd-day-tags{display:flex;flex-direction:column;align-items:center;gap:3px;width:100%}
.spd-master-calendar .spd-day-tag{font-size:.73rem;line-height:1.2;font-weight:650;border-radius:5px;padding:3px 5px;text-align:center;max-width:100%}
.spd-master-calendar .spd-day-free{background:#207443;color:white}
.spd-master-calendar .spd-day-booked{background:#b96313;color:white}
.spd-master-calendar .spd-day-empty{color:#77716b;background:#e5e1dd}
.spd-master-calendar .spd-dot.is-free{background:#27814b;border-color:#27814b}.spd-master-calendar .spd-dot.is-booked{background:#c87520;border-color:#c87520}
@media(max-width:540px){.spd-master-calendar .spd-calendar-day{min-height:76px;padding:5px 1px;gap:5px}.spd-master-calendar .spd-day-number{font-size:1rem}.spd-master-calendar .spd-day-tag{font-size:.56rem;padding:3px 1px}.spd-master-calendar .spd-calendar-day.is-selected{outline-width:2px}}

.spd-master-calendar .spd-calendar-appointment{align-items:center}.spd-calendar-cancel{margin-left:auto}.spd-calendar-cancel button{background:#fff3ed;border:1px solid #ad5d35;color:#8d3f20;border-radius:8px;padding:9px 12px;min-height:42px;cursor:pointer;font-size:.88rem;font-weight:600}.spd-calendar-cancel button:hover{background:#ffe1d2}@media(max-width:540px){.spd-calendar-cancel{margin:6px 0 0;width:100%}.spd-calendar-cancel button{width:100%}}

.spd-move-link{display:inline-flex;align-items:center;justify-content:center;border:1px solid #42564c;color:#2b5140!important;text-decoration:none!important;border-radius:8px;padding:9px 12px;min-height:42px;font-weight:650}.spd-move-panel{background:#edf3ed;border:2px solid #9db8a5;border-radius:14px;padding:18px;margin:20px 0}.spd-move-panel h4{margin:0 0 15px;font-size:1.25rem}.spd-move-panel input[type=date]{padding:9px;min-height:44px;border:1px solid #aaa;border-radius:8px}.spd-move-panel button{background:#42564c;color:white;border:0;border-radius:8px;padding:10px 15px;min-height:44px;cursor:pointer}.spd-move-slots{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}.spd-move-slots label{border:1px solid #a9b6ab;border-radius:8px;padding:9px;background:white}.spd-move-slots button{width:100%;margin-top:10px}

.spd-move-panel .spd-move-slots{display:block}.spd-move-help{font-size:.95rem;margin:12px 0}.spd-move-time-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:8px;margin:12px 0 18px}.spd-move-time-grid .spd-move-time{display:block;position:relative;margin:0;padding:0;cursor:pointer}.spd-move-time input{position:absolute;opacity:0;width:1px;height:1px}.spd-move-time span{display:flex;align-items:center;justify-content:center;min-height:47px;background:#fff;border:2px solid #b4c2b7;border-radius:9px;color:#294b38;font-weight:600}.spd-move-time input:checked+span{background:#1f6c41;border-color:#174f30;color:#fff;box-shadow:0 0 0 2px #a9d2b8}.spd-move-time input:focus-visible+span{outline:3px solid #b96313;outline-offset:2px}.spd-move-time:hover span{border-color:#1f6c41}@media(max-width:540px){.spd-move-time-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.spd-move-panel{padding:12px}}

.spd-window-warning{margin:7px 0 0;color:#9c481c;font-weight:650;font-size:.9rem}.spd-window-occupied{margin:7px 0 0;color:#46604e;font-size:.9rem}.spd-window-locked{display:inline-block;background:#e2e7e2;color:#445c49;border-radius:8px;padding:10px 14px;font-weight:650;white-space:nowrap}

.spd-master-services{margin-top:36px}.spd-master-services>p{max-width:660px}.spd-service-edit,.spd-service-new{border:1px solid #d9ded8;border-radius:15px;background:#fffdf9;padding:18px;margin:14px 0}.spd-service-edit-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.spd-service-edit-head span{color:#536d5c;font-size:.88rem}.spd-service-edit label,.spd-service-new label{display:flex;flex-direction:column;gap:5px;font-size:.88rem;font-weight:600}.spd-service-edit input,.spd-service-new input{width:100%;box-sizing:border-box;min-height:43px;border:1px solid #c6cdc4;border-radius:8px;padding:9px;background:white;color:#25372b}.spd-service-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0}.spd-service-buttons{display:flex;gap:10px;flex-wrap:wrap}.spd-service-buttons button,.spd-service-new button{min-height:42px;padding:9px 16px;border-radius:9px;cursor:pointer}.spd-service-buttons button:nth-child(2){background:#f1f0eb;color:#3e5043;border:1px solid #cbd0c9}.spd-service-new summary{cursor:pointer;font-weight:700}.spd-service-new form{margin-top:16px}@media(max-width:560px){.spd-service-fields{grid-template-columns:1fr 1fr}.spd-service-fields label:first-child{grid-column:1/-1}.spd-service-edit,.spd-service-new{padding:14px}}
