/* Ηλεκτρονικά ραντεβού */
.rv-tabs { display: flex; flex-wrap: wrap; gap: .25rem; border-bottom: 2px solid var(--c-border, #dde3ea); margin: 0 0 1.5rem; }
.rv-tab { padding: .7rem 1.1rem; font-weight: 600; text-decoration: none; color: var(--c-muted, #556274); border-bottom: 3px solid transparent; margin-bottom: -2px; }
.rv-tab:hover { color: var(--c-primary, #196f8f); }
.rv-tab.is-active { color: var(--c-primary, #196f8f); border-bottom-color: var(--c-primary, #196f8f); }
.rv-filter { max-width: 32rem; margin-bottom: 1.5rem; }
.rv-dir { margin-bottom: 2rem; }
.rv-dir > h2 { font-size: 1.3rem; margin: 0 0 .75rem; padding-bottom: .4rem; border-bottom: 1px solid var(--c-border, #dde3ea); }
.rv-dep { font-size: 1rem; margin: 1rem 0 .5rem; color: var(--c-muted, #556274); }
.rv-services { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); gap: .5rem; }
.rv-services a { display: flex; gap: .6rem; align-items: flex-start; padding: .75rem .9rem; border: 1px solid var(--c-border, #dde3ea); border-radius: 10px; text-decoration: none; color: inherit; background: #fff; height: 100%; }
.rv-services a:hover, .rv-services a:focus-visible { border-color: var(--c-primary, #196f8f); box-shadow: 0 2px 8px rgba(25, 111, 143, .12); }
.rv-services .fx-icon { flex: none; color: var(--c-primary, #196f8f); margin-top: .1rem; }
.rv-crumb { margin: .5rem 0 0; font-size: .9rem; }
.rv-title { margin: .2rem 0 1rem; }
.rv-card { border: 1px solid var(--c-border, #dde3ea); border-radius: 12px; padding: 1rem 1.25rem; margin: 0 0 1.25rem; background: #fff; }
.rv-card > h3, .rv-card > h2 { margin-top: 0; }
.rv-card > summary { cursor: pointer; }
.rv-card > summary + form { margin-top: 1rem; }
.rv-papers { max-height: 28rem; overflow: auto; }
.rv-cal__nav { display: grid; grid-template-columns: 2.5rem 1fr 2.5rem; align-items: center; text-align: center; margin-bottom: .5rem; font-size: 1.1rem; }
.rv-cal__nav a { font-size: 1.6rem; text-decoration: none; }
.rv-cal { width: 100%; border-collapse: separate; border-spacing: 4px; table-layout: fixed; }
.rv-cal th { font-size: .8rem; color: var(--c-muted, #556274); font-weight: 600; }
.rv-cal td { padding: 0; }
.rv-day { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 3.6rem; border-radius: 8px; text-decoration: none; color: inherit; padding: .2rem; background: #f4f6f8; color: #8a96a3; }
.rv-day__n { font-weight: 700; font-size: 1.05rem; }
.rv-day__l { font-size: .68rem; line-height: 1.1; text-align: center; overflow: hidden; max-width: 100%; }
a.rv-day.is-free { background: #e3f4e6; color: #1d5b2a; }
a.rv-day.is-few { background: #fff2d6; color: #7a5300; }
a.rv-day:hover, a.rv-day:focus-visible { outline: 2px solid var(--c-primary, #196f8f); outline-offset: 1px; }
.rv-day.is-full, .rv-day.is-off { background: #fbe4e4; color: #8f2d2d; }
.rv-day.is-none { background: transparent; }
.rv-day.is-selected { background: var(--c-primary, #196f8f) !important; color: #fff !important; }
.rv-legend { display: flex; flex-wrap: wrap; gap: .4rem 1rem; align-items: center; font-size: .85rem; color: var(--c-muted, #556274); }
.rv-key { display: inline-block; width: .9rem; height: .9rem; border-radius: 3px; vertical-align: middle; margin-right: -.6rem; }
.rv-key.is-free { background: #e3f4e6; border: 1px solid #9fd3aa; }
.rv-key.is-few { background: #fff2d6; border: 1px solid #e8c77a; }
.rv-key.is-full { background: #fbe4e4; border: 1px solid #e4a5a5; }
.rv-hours { display: grid; grid-template-columns: repeat(auto-fill, minmax(5.5rem, 1fr)); gap: .5rem; }
.rv-hour { display: flex; flex-direction: column; align-items: center; padding: .55rem .4rem; border: 1px solid var(--c-primary, #196f8f); border-radius: 8px; text-decoration: none; color: var(--c-primary, #196f8f); }
.rv-hour small { font-size: .72rem; color: var(--c-muted, #556274); }
a.rv-hour:hover, a.rv-hour:focus-visible { background: var(--c-primary, #196f8f); color: #fff; }
a.rv-hour:hover small, a.rv-hour:focus-visible small { color: #fff; }
.rv-hour.is-full { border-color: var(--c-border, #dde3ea); color: #9aa5b1; background: #f4f6f8; }
.rv-when { padding: .85rem 1.1rem; background: var(--c-primary-soft, #e5f0f4); border-radius: 12px; margin: 0 0 1.25rem; }
.rv-when .fx-icon { vertical-align: -3px; }
.rv-person { margin: 0 0 1rem; }
.rv-subhead { margin: .75rem 0 0; font-size: 1rem; }
.rv-subhead__link { margin-left: .75rem; font-size: .9rem; font-weight: 500; }
.rv-inline { display: inline; margin: 0; }
.rv-small { padding: .3rem .7rem !important; font-size: .85rem !important; min-height: 0 !important; }
.rv-num { width: 4.5rem; }
.rv-actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin: 1rem 0; }
.rv-picker { margin-bottom: 1rem; }
.fx-table td .rv-inline + .rv-inline, .fx-table td .fx-link + .rv-inline { margin-left: .5rem; }
@media (max-width: 600px) {
	.rv-cal { border-spacing: 2px; }
	.rv-day { min-height: 2.8rem; }
	.rv-day__l { display: none; }
}
@media print {
	.site-header, .site-footer, .fx-userbar, .rv-tabs, .rv-actions, nav, .fx-notice { display: none !important; }
	.rv-ticket { border: 0; padding: 0; }
}
