/* ตัวเชื่อม PHP: ทำให้แท็ก a/details มีรูปลักษณ์เดียวกับ button ของเว็บไซต์ต้นแบบ */
a{text-decoration:none;color:inherit}.nav-group a,.sidebar nav>a{width:100%;display:flex;align-items:center;gap:12px;padding:10px 12px;color:#c4d6dd;background:transparent;border:0;border-radius:10px;text-align:left;font-size:13px;transition:.2s}.nav-group a>span,.sidebar nav>a>span{width:22px;color:#8db0bc;font-size:18px;text-align:center}.nav-group a:hover,.sidebar nav>a:hover{color:white;background:#102f50}.nav-group a.active,.sidebar nav>a.active{color:#0a1f3b;background:white;box-shadow:0 8px 22px #020d1b66}.nav-group a.active>span,.sidebar nav>a.active>span{color:#173f70}.sidebar nav>.nav-title{margin:8px 12px;color:#7899a6;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase}
summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}.account-menu[open] .menu-caret{transform:rotate(180deg)}.account-dropdown .role-current{margin:0 0 9px;padding:8px 9px;color:var(--navy);background:#f5f7fa;border:1px solid var(--line);border-radius:9px;font-size:10px;font-weight:700}
.quick-grid a{min-height:78px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#385b70;background:#f7fafb;border:1px solid #e7edf1;border-radius:10px;font-size:10px;font-weight:700}.quick-grid a:hover{border-color:#8fc9ce;background:#eff9fa}.quick-grid a span{color:var(--teal);font-size:19px}.task-list a{width:100%;display:flex;align-items:center;gap:10px;padding:12px;color:var(--ink);background:white;border-bottom:1px solid var(--line);text-align:left}.task-list a:hover{background:#f5f8fb}.task-list a>span{width:30px;height:30px;display:grid;place-items:center;color:white;background:var(--navy);border-radius:8px;font-size:10px;font-weight:800}.task-list a div{flex:1}.task-list a b,.task-list a small{display:block}.task-list a b{font-size:10px}.task-list a small{margin-top:3px;color:var(--muted);font-size:8px}
.stock-alert a{color:#9a5819;font-size:8px;font-weight:700}.outline-button,.text-button,.primary-button{display:inline-flex;align-items:center;justify-content:center}.login-error{margin:-8px 0 16px;padding:11px 13px;color:#a23b3b;background:#fff0f0;border:1px solid #f5d2d2;border-radius:9px;font-size:11px}.auth-screen[hidden],.booking-pane[hidden],.toast[hidden]{display:none!important}.spaced{margin-top:24px}

.flash-message{padding:12px 16px;border-radius:10px;margin-bottom:16px;font-weight:600}
.flash-message.success{background:#dcfce7;color:#166534;border:1px solid #86efac}
.flash-message.error{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}
.inline-form{display:inline-flex;gap:6px;align-items:center}
.crud-form{margin-bottom:20px}
.crud-form summary{cursor:pointer;font-weight:700;color:#173b70;padding:8px 0}
.crud-form[open] summary{margin-bottom:12px}
.table-actions{display:flex;gap:6px;flex-wrap:wrap}
.auth-register-link{text-align:center;margin:12px 0 0;color:#64748b}
.auth-register-link a{color:#1d4ed8;font-weight:700}
.register-panel{overflow:auto;padding-top:40px;padding-bottom:40px}
.register-card{max-width:720px}
.register-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.register-grid label{display:flex;flex-direction:column;gap:7px;font-weight:600}
.register-grid .full{grid-column:1/-1}
.register-errors{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5;padding:12px 16px;border-radius:10px;margin-bottom:16px}
.register-errors ul{margin:6px 0 0;padding-left:20px}
@media(max-width:700px){.register-grid{grid-template-columns:1fr}.register-grid .full{grid-column:auto}}
.form-stack label .password-input-wrap,.register-grid label .password-input-wrap{position:relative!important;display:block!important;width:100%!important}
.form-stack label .password-input-wrap>input,.register-grid label .password-input-wrap>input{display:block!important;width:100%!important;padding-right:58px!important;margin:0!important}
.form-stack label .password-input-wrap>.password-toggle,.register-grid label .password-input-wrap>.password-toggle{position:absolute!important;right:12px!important;top:50%!important;transform:translateY(-50%)!important;width:38px!important;height:38px!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;cursor:pointer!important;border-radius:10px!important;display:grid!important;place-items:center!important;z-index:3!important}
.password-toggle svg{width:22px;height:22px;fill:none;stroke:#385b70;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.password-toggle .eye-slash{display:none}
.password-toggle.showing .eye-slash{display:block}
.password-toggle:hover,.password-toggle:focus-visible{background:#e8f2ff!important;outline:2px solid #67c7d1!important}

/* Appointment calendar */
.calendar-panel{overflow:hidden}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.calendar-toolbar>div{text-align:center}.calendar-toolbar h3{margin:0;color:#0a1f3b;font-size:18px}.calendar-toolbar p{margin:4px 0 0;color:#64748b;font-size:11px}.calendar-scroll{overflow-x:auto;padding-bottom:4px}.appointment-calendar{min-width:900px;display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid #e5edf2;border-left:1px solid #e5edf2}.calendar-weekday{padding:10px;text-align:center;background:#f6f9fb;color:#385b70;font-size:11px;font-weight:800;border-right:1px solid #e5edf2;border-bottom:1px solid #e5edf2}.calendar-day{min-height:132px;padding:8px;background:#fff;border-right:1px solid #e5edf2;border-bottom:1px solid #e5edf2}.calendar-empty{background:#fafcfd}.calendar-today{background:#f0fbfc}.calendar-date{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;color:#173b70;font-weight:800}.calendar-date>b{min-width:20px;height:20px;display:grid;place-items:center;border-radius:10px;background:#e8f5f6;color:#277d84;font-size:9px}.calendar-events{display:flex;flex-direction:column;gap:5px}.calendar-event{display:block;padding:6px 7px;border-radius:7px;border-left:3px solid #94a3b8;background:#f8fafc;line-height:1.25}.calendar-event strong,.calendar-event span,.calendar-event small{display:block}.calendar-event strong{font-size:10px;color:#0f172a}.calendar-event span{margin-top:2px;font-size:9px;font-weight:700;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event small{margin-top:2px;font-size:8px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event.status-pending{border-left-color:#f59e0b;background:#fffbeb}.calendar-event.status-approved{border-left-color:#0ea5e9;background:#f0f9ff}.calendar-event.status-completed{border-left-color:#22c55e;background:#f0fdf4}.calendar-event.status-cancelled{border-left-color:#94a3b8;background:#f8fafc;opacity:.65}.calendar-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:14px;color:#64748b;font-size:10px}.calendar-legend span{display:flex;align-items:center;gap:6px}.legend-dot{width:9px;height:9px;border-radius:50%;background:#94a3b8}.legend-dot.pending{background:#f59e0b}.legend-dot.approved{background:#0ea5e9}.legend-dot.completed{background:#22c55e}.legend-dot.cancelled{background:#94a3b8}@media(max-width:700px){.calendar-toolbar{align-items:stretch}.calendar-toolbar .outline-button{padding:8px}.calendar-toolbar h3{font-size:14px}}

/* Dentist availability workflow inside Admin/Staff/Dentist calendars */
.schedule-calendar-event{border-left-width:4px}.schedule-calendar-event.schedule-dentist_submitted{border-left-color:#f59e0b;background:#fffbeb}.schedule-calendar-event.schedule-staff_reviewed{border-left-color:#0ea5e9;background:#f0f9ff}.schedule-calendar-event.schedule-available{border-left-color:#22c55e;background:#f0fdf4}.schedule-calendar-event.schedule-reserved{border-left-color:#8b5cf6;background:#f5f3ff}.schedule-calendar-event.schedule-rejected,.schedule-calendar-event.schedule-unavailable{border-left-color:#94a3b8;background:#f8fafc;opacity:.75}.calendar-inline-actions{display:flex;gap:4px;margin-top:6px;flex-wrap:wrap}.calendar-inline-actions form{margin:0;flex:1}.calendar-action{width:100%;border:0;border-radius:6px;padding:5px 6px;font-size:8px;font-weight:800;cursor:pointer}.calendar-action.approve{background:#dff7e9;color:#13724f}.calendar-action.reject{background:#feecec;color:#a33434}.calendar-action:hover{filter:brightness(.97)}.legend-dot.dentist-submitted{background:#f59e0b}.legend-dot.staff-reviewed{background:#0ea5e9}.legend-dot.slot-available{background:#22c55e}.legend-dot.slot-reserved{background:#8b5cf6}.legend-dot.slot-rejected{background:#94a3b8}.schedule-calendar-legend{padding-bottom:10px;border-bottom:1px solid #edf2f5}.calendar-day{min-height:150px}

/* Unified calendar/schedule + 3-day appointment changes */
.deadline-note{display:block;color:#9a5b16;font-size:10px;margin:6px 0}.appointment-change-actions{display:flex;gap:6px;align-items:flex-start;flex-wrap:wrap}.inline-reschedule summary{list-style:none;cursor:pointer}.inline-reschedule summary::-webkit-details-marker{display:none}.reschedule-form{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px;padding:8px;background:#f8fafc;border:1px solid #e5edf2;border-radius:8px}.reschedule-form select{min-width:250px}.schedule-edit-box{margin-top:6px}.schedule-edit-box summary{cursor:pointer;font-size:8px;font-weight:800;color:#277d84}.schedule-edit-form{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:5px}.schedule-edit-form input[type=date]{grid-column:1/-1}.schedule-edit-box form+form{margin-top:4px}@media(max-width:700px){.reschedule-form select{min-width:100%;width:100%}}
