/* 2026-10 doctor finder and physician profiles. Existing clinic hours stay intact. */
.roster-finder,.doctor-roster-v2{color:#28473c}
.roster-finder{margin-top:22px;padding:24px;border:1px solid #dce9d9;border-radius:22px;background:#fbfcf6;box-shadow:0 10px 30px rgba(47,92,69,.055)}
.roster-finder-heading{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 16px}
.roster-finder-heading h3{margin:4px 0 0;font-size:clamp(19px,2vw,24px);color:#245c4b}
.roster-asof,.doctor-roster-v2 .doctor-roster-date{color:#587365;font-size:13px;font-weight:700}
.roster-intro{margin:9px 0 17px;font-size:14px;line-height:1.7}
.roster-control{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px}
.roster-control label{font-size:14px;font-weight:700}
.roster-control select{min-height:44px;padding:8px 36px 8px 12px;max-width:100%;border:1px solid #bdd2c2;border-radius:10px;background:#fff;color:#244b3c;font:inherit}
.roster-week-note{margin:9px 0 14px;font-size:12px;line-height:1.6;color:#51685a}
.roster-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin:0 0 17px}
.roster-tabs button{min-width:0;min-height:46px;border:1px solid #d1e0cf;border-radius:11px;background:#fff;color:#285444;font:700 15px/1.25 var(--round);cursor:pointer}
.roster-tabs button[aria-selected="true"]{color:#fff;background:#286a53;border-color:#286a53;box-shadow:0 4px 11px rgba(36,92,75,.14)}
.roster-finder :is(button,select,a,summary):focus-visible,.doctor-roster-v2 :is(a,summary):focus-visible,.roster-page-nav a:focus-visible{outline:3px solid #b9702a;outline-offset:3px}
.roster-day-panel{min-height:155px}
.roster-selected-day{margin:0 0 10px;font-size:19px;color:#245c4b}
.roster-periods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:13px}
.roster-period{min-width:0;padding:16px 17px;border:1px solid #e1e9de;border-radius:14px;background:#fff}
.roster-period h5{margin:0 0 7px;padding:0 0 9px;border-bottom:1px solid #e1e9de;font-size:16px}
.roster-time{margin-left:6px;font-size:13px;font-weight:500;white-space:nowrap}
.roster-period ul{margin:0;padding:0;list-style:none}
.roster-period li{display:grid;grid-template-columns:38px minmax(0,1fr);gap:8px;align-items:start;padding:10px 0;border-bottom:1px solid #edf2eb;line-height:1.55}
.roster-period li:last-child{border-bottom:0}
.roster-room{color:#65766a;font-size:13px}
.roster-period li strong{min-width:0;font-size:14px}
.roster-period li a,.roster-weekly-table a{color:#245c4b;text-underline-offset:3px}
.roster-weeks{display:block;font-size:12px;font-weight:500;color:#536d5c}
.roster-period-note{margin:2px 0 0;color:#536a5d;font-size:12px;line-height:1.6;font-weight:400}
.roster-period h5 .roster-period-note{display:block;margin-top:4px;font-size:13px}
.roster-no-duty{padding:10px;color:#596e61;font-size:13px}
.roster-weekly{margin-top:14px;border-top:1px solid #d5e1d3}
.roster-weekly summary,.roster-profile-details summary{position:relative;display:block;padding:12px 30px 12px 2px;min-height:44px;color:#245c4b;font-weight:700;cursor:pointer;list-style:none}
.roster-weekly summary::-webkit-details-marker,.roster-profile-details summary::-webkit-details-marker{display:none}
.roster-weekly summary::after,.roster-profile-details summary::after{content:'＋';position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:19px;font-weight:400}
.roster-weekly[open] summary::after,.roster-profile-details[open] summary::after{content:'−'}
.roster-weekly-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border-radius:10px}
.roster-weekly-table{width:100%;min-width:640px;border-collapse:separate;border-spacing:0;font-size:12px;line-height:1.5}
.roster-weekly-table caption{padding:7px;text-align:left;font-weight:700}
.roster-weekly-table th,.roster-weekly-table td{border:1px solid #e1e9de;padding:8px 6px;vertical-align:top;background:#fff}
.roster-weekly-table th{background:#eff6ee;white-space:nowrap}
.roster-weekly-table th:first-child{min-width:84px}
.roster-weekly-table .roster-weeks{margin:3px 0}
.roster-update-note{margin:13px 0 0;color:#486353;font-size:13px;line-height:1.7}
.roster-update-note a{font-weight:700;color:#245c4b}
#doctors,#weekday-doctors,#saturday-doctors,#doctor-roster,.roster-profile,#doctor-masaki,#doctor-ogasawara,#roster-masaki{scroll-margin-top:125px}
.roster-page-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 17px}
.roster-page-nav a{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border:1px solid #cbdacb;border-radius:12px;background:#f3f8ef;color:#245c4b;font-size:14px;font-weight:700;text-decoration:none}
.doctor-roster-v2{padding:22px 24px;background:#f8fbf5}
.doctor-roster-v2 .doctor-roster-head{margin-bottom:22px}
.doctor-roster-v2 .doctor-roster-head h2{margin:5px 0 9px}
.doctor-roster-v2 .doctor-roster-head p{margin:7px 0;line-height:1.7}
.doctor-roster-v2 .doctor-roster-head a,.roster-profile-visit a,.roster-back-link,.roster-sources a{color:#245c4b;text-underline-offset:3px}
.roster-profile-group-heading{margin:24px 0 12px;font-size:20px;color:#245c4b}
.roster-profile{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:22px;min-width:0;margin:0 0 11px;padding:18px 20px;border:1px solid #dfe8d9;border-radius:15px;background:#fffdfa}
.roster-profile>*{min-width:0}
.roster-profile h3{margin:0 0 9px;font-size:clamp(19px,2vw,22px);color:#204e3f;line-height:1.5}
.roster-profile-identity figure{width:min(100%,290px);margin:0 0 14px}
.roster-profile-identity figure img{display:block;max-width:100%;height:auto;border-radius:12px}
.roster-profile-identity figcaption{color:#5d7368;font-size:12px}
.roster-profile-specialty{display:flex;flex-wrap:wrap;gap:4px 10px;margin:4px 0;color:#315e4b;font-size:14px;line-height:1.65}
.roster-profile-specialty span{color:#64776a;font-size:12px;font-weight:700;white-space:nowrap}
.roster-profile-affiliation{margin:6px 0 0;font-size:14px;line-height:1.6;color:#536c5b}
.roster-profile-duty h4{margin:0 0 5px;font-size:14px;color:#536a5a}
.roster-profile-duty ul{margin:0;padding:0;list-style:none}
.roster-profile-duty li{display:grid;grid-template-columns:82px minmax(0,1fr);gap:9px;padding:8px 0;border-bottom:1px solid #e5eae0;font-size:14px;line-height:1.6}
.roster-profile-duty li:last-child{border-bottom:0}
.roster-profile-duty li a{color:#2b6b51;font-weight:700;text-underline-offset:3px}
.roster-profile-duty li div span{display:block}
.roster-profile-details{margin-top:8px;border-top:1px solid #e1e9de;font-size:14px}
.roster-profile-details ul{margin:4px 0 10px;padding-left:20px;line-height:1.75}
.roster-profile-details li{margin:2px 0}
.roster-profile-expanded{padding-bottom:5px;line-height:1.85}
.roster-profile-expanded h4,.roster-profile-expanded h5{margin:10px 0 5px;font-size:15px;color:#245c4b}
.roster-profile-expanded p{margin:8px 0 12px}
.roster-profile-expanded :is(.doctor_carr,.doctor_carr_sec1,.text,.h240){float:none;width:auto;height:auto;min-height:0;margin:7px 0}
.roster-profile-expanded figure{float:none;max-width:320px;margin:8px 0 12px}
.roster-profile-expanded figure img{display:block;width:100%;height:auto}
.roster-profile-visit{margin:0;font-size:13px;line-height:1.7}
.roster-back-link{display:inline-flex;align-items:center;min-height:44px;margin-top:8px;font-size:13px;font-weight:700}
.roster-sources{margin:17px 0;font-size:12px;line-height:1.7}
.roster-anchor-alias{position:absolute;top:0;left:0}
@media(max-width:767px){
 .roster-finder{margin-top:18px;padding:16px 13px;border-radius:16px}
 .roster-finder-heading h3{font-size:19px}
 .roster-control{align-items:stretch}
 .roster-control label{align-self:center}
 .roster-control select{flex:1 1 160px;font-size:13px}
 .roster-tabs{gap:5px}
 .roster-tabs button{min-height:44px;font-size:14px;border-radius:9px}
 .roster-selected-day{font-size:18px}
 .roster-periods{grid-template-columns:1fr;gap:9px}
 .roster-period{padding:13px 14px}
 .roster-weekly-table{min-width:640px}
 .doctor-roster-v2{padding:18px 13px}
 .roster-page-nav{gap:7px}
 .roster-page-nav a{font-size:13px}
 .roster-profile{grid-template-columns:1fr;gap:12px;padding:16px 14px}
 .roster-profile h3{font-size:19px}
 .roster-profile-duty li{grid-template-columns:76px minmax(0,1fr)}
 #doctors,#weekday-doctors,#saturday-doctors,#doctor-roster,.roster-profile,#doctor-masaki,#doctor-ogasawara,#roster-masaki{scroll-margin-top:80px}
}
@media(prefers-reduced-motion:reduce){.roster-finder :is(button,select,summary),.roster-profile,.roster-page-nav a{transition:none;animation:none}}
