/* Opaque weekly agenda and a quiet silver starfield. */
.hero::before,.primary::before,.week-time.chosen::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='250' viewBox='0 0 480 250'%3E%3Cg fill='%23e2ebff'%3E%3Ccircle cx='18' cy='28' r='.8'/%3E%3Ccircle cx='78' cy='90' r='.7'/%3E%3Ccircle cx='116' cy='20' r='1.1'/%3E%3Ccircle cx='154' cy='180' r='.7'/%3E%3Ccircle cx='202' cy='62' r='.8'/%3E%3Ccircle cx='248' cy='222' r='1'/%3E%3Ccircle cx='280' cy='112' r='.6'/%3E%3Ccircle cx='322' cy='32' r='1'/%3E%3Ccircle cx='367' cy='172' r='.7'/%3E%3Ccircle cx='435' cy='73' r='1.2'/%3E%3Ccircle cx='464' cy='228' r='.8'/%3E%3Ccircle cx='50' cy='219' r='.7'/%3E%3Ccircle cx='221' cy='151' r='.9'/%3E%3Ccircle cx='403' cy='240' r='.5'/%3E%3C/g%3E%3Cg stroke='%23d4e3ff' stroke-width='.8'%3E%3Cpath d='M43 133h8m-4-4v8M354 96h10m-5-5v10M412 191h6m-3-3v6M184 232h8m-4-4v8'/%3E%3C/g%3E%3C/svg%3E");
  background-size:480px 250px;opacity:.8;
}
.hero{isolation:isolate;background:radial-gradient(ellipse at 78% 40%,#303c51 0,#171d2a 40%,#090d16 90%)}
.hero::before{z-index:-1}
.primary{position:relative;isolation:isolate;overflow:hidden;border:1px solid #8498b65c;background:linear-gradient(115deg,#101723,#2a354d 60%,#182233);box-shadow:inset 0 1px 0 #c7d8f22b,0 6px 18px #17243a1a}
.primary::before{z-index:-1;background-size:280px 145px;opacity:.85}
.primary:hover{background:linear-gradient(115deg,#1b263a,#3b4b69)}
.primary:disabled{box-shadow:none}
.week-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}
.week-heading h3{font-size:21px;margin:0 0 5px}
.week-heading p{font-size:12px;color:var(--muted);margin:0}
.month-toggle{background:#e7edf6;border:1px solid #c9d4e4;color:#35445d;border-radius:12px;padding:10px 13px;min-height:44px;font-size:11px;display:flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}
.month-toggle span{font-size:20px;line-height:1}
.month-toggle:hover{background:#dbe5f4}
.week-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.week-toolbar>span{font-size:12px;color:#67748a;text-align:center}
.week-arrow{width:38px;height:38px;background:#fff;border:1px solid var(--line);border-radius:12px;color:#3b485d;font-size:22px;flex-shrink:0}
.week-list{background:#fff;border:1px solid #dfe4ed;border-radius:22px;padding:2px 22px;box-shadow:0 8px 30px #25324a04}
.week-day-row{display:grid;grid-template-columns:75px minmax(0,1fr);gap:20px;padding:22px 0;border-bottom:1px solid #edf0f5;align-items:start}
.week-day-row:last-child{border-bottom:0}
.date-tile{min-height:76px;width:75px;background:#eef1f6;color:#303c50;border:1px solid #e1e6ee;border-radius:16px;padding:10px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}
.date-tile strong{font-size:19px;font-weight:500;letter-spacing:-.04em;line-height:1.3}
.date-tile span{font-size:11px;color:#768398;text-transform:uppercase;letter-spacing:.12em}
.day-selected .date-tile{background:#202a3d;color:#f3f7fe;border-color:#202a3d;box-shadow:0 3px 12px #2a385b18}
.day-selected .date-tile span{color:#bfcee6}
.date-tile:hover{border-color:#8b9fbd}
.day-options{min-width:0;align-self:center}
.week-times{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.week-time{font-size:13px;color:#38465c;background:#f7f9fc;border:1px solid #e1e7f0;border-radius:10px;padding:10px 2px;min-height:42px;position:relative;isolation:isolate;overflow:hidden}
.week-time:hover{background:#e9eff8;border-color:#aabbd4}
.week-time.chosen{background:#202b40;color:#f7f9ff;border-color:#202b40}
.week-time.chosen::before{z-index:-1;opacity:.8;background-size:240px 125px}
.more-times{background:none;color:#6d7c94;padding:7px 0 0;font-size:10px;display:flex;align-items:center;gap:10px;min-height:30px}
.more-times:hover{color:#303f59}
.day-empty{font-size:11px;color:#929baa;margin:0;padding:14px 0}
.availability-foot{display:flex;align-items:center;gap:7px;font-size:10px;color:#768499;margin-top:16px;flex-wrap:wrap}
.availability-foot button{margin-left:auto;font-size:10px;background:none;color:#667995;padding:7px 0}
.live-indicator{width:5px;height:5px;background:#95a9c6;border-radius:50%;box-shadow:0 0 0 3px #e6edf7}
.chosen-visit{display:flex;align-items:center;gap:13px;padding:17px 18px;margin:0 0 24px;background:#e9eef6;color:#3c4e6b;border:1px solid #dce4f0;border-radius:14px;font-size:14px}
.chosen-visit>span:first-child{font-size:22px;color:#899dbd}
.chosen-visit small{display:block;font-size:10px;margin-top:3px}
.week-loading{min-height:230px;border:1px solid #e0e6ef;border-radius:20px;background:white;display:grid;place-items:center;font-size:13px;color:#78869c}
dialog .calendar{border:0;padding:0}
@media(max-width:850px) and (min-width:641px){.week-heading{align-items:flex-start;flex-direction:column}.week-times{grid-template-columns:repeat(3,minmax(0,1fr))}.week-list{padding:2px 15px}.week-day-row{gap:12px;grid-template-columns:65px minmax(0,1fr)}.date-tile{width:65px}}
@media(max-width:640px){
  .week-heading{gap:9px;margin-bottom:18px}.week-heading h3{font-size:17px}.week-heading p{font-size:10px;max-width:160px}
  .month-toggle{padding:8px 9px;font-size:9px;gap:5px;min-height:42px;white-space:normal;max-width:118px;text-align:left;line-height:1.4}
  .month-toggle span{font-size:22px}.week-toolbar{margin-bottom:14px}.week-toolbar>span{font-size:11px}.week-arrow{height:34px;width:34px;border-radius:10px}
  .week-list{padding:0 13px;border-radius:18px}.week-day-row{grid-template-columns:62px minmax(0,1fr);gap:12px;padding:18px 0}.date-tile{width:62px;min-height:76px;border-radius:13px;padding:8px 3px}.date-tile strong{font-size:18px}.date-tile span{font-size:10px}
  .week-times{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.week-time{font-size:11px;min-height:41px;padding:9px 1px;border-radius:8px}.more-times{font-size:9px;padding-top:7px;min-height:32px}
  .availability-foot{font-size:9px;gap:6px}.availability-foot button{font-size:9px}.chosen-visit{font-size:13px;margin-bottom:22px}.day-empty{font-size:10px}
}
@media(max-width:370px){.wrap{padding:0 16px}.week-list{padding:0 11px}.week-day-row{gap:9px;grid-template-columns:58px minmax(0,1fr)}.date-tile{width:58px}.week-times{gap:5px}.week-time{font-size:10px}.week-heading h3{font-size:16px}}
