.appointment-calendar,.schedule-workspace,.appointment-assignment{--appointment-paper:var(--surface,#f6f5f1);--appointment-ink:var(--ink,#272b29);--appointment-bronze:var(--bronze,#937353);--appointment-bronze-soft:var(--bronze-soft,#f2ece3);--appointment-sage:var(--sage,#e9eee3);--appointment-line:var(--line,#e7e7e3);font-family:var(--font-interface);font-variant-numeric:tabular-nums;min-width:0}.appointment-calendar{background:var(--canvas);border:1px solid var(--appointment-line);box-shadow:var(--shadow-xs);border-radius:24px;margin-top:28px;padding:24px}.appointment-kicker{color:var(--appointment-bronze);align-items:center;gap:8px;font-size:11px;font-weight:650;line-height:1.8;display:inline-flex}.appointment-calendar-head,.schedule-week-head,.schedule-team>header{justify-content:space-between;align-items:center;gap:16px;display:flex}.appointment-calendar-head h3{margin:8px 0 0;font-size:24px;font-weight:800}.appointment-calendar-head h3 span{color:var(--muted);margin-inline-start:12px;font-size:11px;font-weight:500}.appointment-day-rail{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:24px;display:grid}.appointment-day{background:var(--appointment-paper);cursor:pointer;min-width:0;min-height:118px;transition:transform .18s var(--ease),background .18s,color .18s,border-color .18s;border:1px solid #0000;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:12px 4px;display:flex}.appointment-day span{font-size:10px}.appointment-day strong{font-size:26px;line-height:1.4}.appointment-day small{color:var(--muted);font-size:9px}.appointment-day i{background:var(--line-strong);border-radius:50%;width:4px;height:4px;margin-top:5px}.appointment-day i.has-capacity{background:var(--success)}.appointment-day:hover{border-color:var(--appointment-bronze);transform:translateY(-2px)}.appointment-day:active{transform:scale(.97)}.appointment-day.selected{background:var(--appointment-ink);color:var(--inverse);box-shadow:var(--shadow-sm)}.appointment-day.selected small{color:color-mix(in srgb,var(--inverse) 70%,transparent)}.appointment-day.selected i.has-capacity{background:var(--mint)}.appointment-date-heading{justify-content:space-between;align-items:center;gap:12px;margin:24px 0 16px;display:flex}.appointment-date-heading>div{gap:5px;display:grid}.appointment-date-heading strong{font-size:12px}.appointment-date-heading>div>span{color:var(--muted);font-size:10px}.appointment-capacity{white-space:nowrap;background:var(--soft);width:fit-content;color:var(--muted);border-radius:8px;align-items:center;gap:5px;padding:6px 9px;font-size:9px;line-height:1.6;display:inline-flex}.appointment-capacity.free{color:var(--success);background:var(--success-soft)}.appointment-capacity.free:before{content:"";background:currentColor;border-radius:50%;flex:none;width:4px;height:4px}.appointment-time-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.appointment-time{border:1px solid var(--line);background:var(--canvas);text-align:right;cursor:pointer;min-width:0;min-height:84px;animation:appointment-arrive .24s var(--ease) both;transition:transform .16s var(--ease),border-color .16s,background .16s;border-radius:12px;gap:12px;padding:14px 12px;display:grid}.appointment-time>span,.appointment-time>small{justify-content:space-between;align-items:center;gap:6px;display:flex}.appointment-time>span{direction:rtl;justify-content:flex-start}.appointment-time>span>svg{color:var(--appointment-bronze);flex:none}.appointment-time strong{white-space:nowrap;font-size:12px;font-weight:700}.appointment-time small{color:var(--success);font-size:9px}.appointment-time:not(:disabled):hover{border-color:var(--appointment-bronze);transform:translateY(-2px)}.appointment-time:not(:disabled):active{transform:scale(.98)}.appointment-time:disabled{background:var(--appointment-paper);color:var(--muted);cursor:not-allowed;border-color:#0000}.appointment-time:disabled>span>svg,.appointment-time:disabled small{color:var(--muted-2)}.appointment-time.selected{border-color:var(--appointment-bronze);background:var(--appointment-bronze-soft)}.appointment-time.selected small{color:var(--appointment-bronze)}.appointment-note{border-top:1px solid var(--line);color:var(--muted);align-items:flex-start;gap:10px;margin:16px 0 0;padding:16px 0 0;font-size:11px;line-height:1.9;display:flex}.appointment-note>svg{color:var(--appointment-bronze);flex:none;margin-top:3px}.appointment-note p{color:var(--muted);margin:0;font-size:11px;line-height:1.9}.appointment-selection{background:var(--appointment-sage);animation:appointment-arrive .22s var(--ease) both;border-radius:12px;align-items:center;gap:12px;margin-top:18px;padding:16px;display:flex}.appointment-check{background:var(--canvas);width:34px;height:34px;color:var(--success);border-radius:50%;flex:none;place-items:center;display:grid}.appointment-selection>div{gap:5px;display:grid}.appointment-selection small{color:var(--muted);font-size:10px}.appointment-selection strong{font-size:12px;line-height:1.9}.appointment-feedback{background:var(--soft);color:var(--muted);border-radius:12px;margin:16px 0 0;padding:12px 14px;font-size:11px;line-height:1.9}.appointment-feedback.error{background:var(--danger-soft);color:var(--danger)}.appointment-feedback.success{background:var(--success-soft);color:var(--success)}.appointment-refreshing{animation:1s linear infinite appointment-spin}.schedule-workspace{gap:24px;display:grid}.schedule-intro{background:var(--appointment-paper);border:1px solid var(--line);border-radius:24px;justify-content:space-between;align-items:center;gap:32px;padding:32px 36px;display:flex}.schedule-intro h2{letter-spacing:0;margin:14px 0;font-size:clamp(26px,3vw,36px);line-height:1.55}.schedule-intro p{max-width:530px;color:var(--muted);margin:0;font-size:12px;line-height:2}.schedule-summary{border-inline-start:1px solid var(--line);min-width:180px;color:var(--muted);gap:9px;padding-inline-start:32px;font-size:11px;display:grid}.schedule-summary>strong{color:var(--ink);font-size:54px;font-weight:800;line-height:1.2}.schedule-summary small{color:var(--muted);margin:8px 0 12px;font-size:11px;font-weight:500;display:block}.schedule-summary>span{align-items:center;gap:8px;display:flex}.schedule-columns{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:24px;display:grid}.schedule-editor,.schedule-agenda,.schedule-policy,.schedule-team{background:var(--canvas);border:1px solid var(--line);min-width:0;box-shadow:var(--shadow-xs);border-radius:24px;overflow:hidden}.schedule-week-head{padding:24px}.schedule-week-head h3{margin:8px 0 0;font-size:17px}.schedule-days{border-top:1px solid var(--line)}.schedule-day-row{border-bottom:1px solid var(--line);grid-template-columns:85px minmax(0,1fr) 66px;align-items:center;gap:16px;min-height:106px;padding:20px 24px;display:grid}.schedule-day-row.past{background:var(--surface)}.schedule-day-title{gap:6px;display:grid}.schedule-day-title strong{font-size:13px}.schedule-day-title span{color:var(--muted);font-size:10px}.schedule-day-off{color:var(--muted-2);font-size:11px}.schedule-windows{gap:12px;min-width:0;display:grid}.schedule-window{align-items:center;gap:8px;min-width:0;display:flex}.schedule-window label{flex:1;gap:6px;min-width:0;max-width:130px;display:grid}.schedule-window label>span{color:var(--muted);font-size:9px}.schedule-window .control{width:100%;min-height:44px;padding:7px 10px;font-size:12px}.schedule-range-line{background:var(--line-strong);flex:none;width:12px;height:1px;margin-top:20px}.schedule-remove{width:32px;min-width:32px;height:44px;color:var(--muted);background:0 0;border:0;margin-top:20px}.schedule-remove:hover{color:var(--danger);background:var(--danger-soft)}.schedule-add{background:var(--appointment-bronze-soft);min-height:44px;color:var(--appointment-bronze);cursor:pointer;transition:transform .16s var(--ease);border:0;border-radius:10px;justify-content:center;align-items:center;gap:4px;font-size:10px;display:inline-flex}.schedule-add:active{transform:scale(.97)}.schedule-add:disabled{opacity:.4;cursor:not-allowed}.schedule-save{justify-content:space-between;align-items:center;gap:16px;padding:24px;display:flex}.schedule-save>div{color:var(--muted);align-items:center;gap:7px;font-size:10px;display:flex}.schedule-save-dot{background:var(--success);border-radius:50%;flex:none;width:6px;height:6px}.schedule-save-dot.dirty{background:var(--warning)}.schedule-editor>.appointment-feedback{margin:0 24px 24px}.schedule-agenda{padding:24px}.schedule-agenda header h3{margin:10px 0 22px;font-size:16px}.schedule-visit{border-top:1px solid var(--line);gap:9px;padding:20px 0;display:grid}.schedule-visit>span:first-child{color:var(--muted);font-size:11px}.schedule-visit>strong{font-size:20px}.schedule-visit small{color:var(--muted);font-size:10px}.schedule-visit a{min-height:44px;color:var(--appointment-bronze);align-items:center;gap:8px;font-size:11px;display:flex}.schedule-empty{justify-items:start;gap:12px;padding:24px 0;display:grid}.schedule-empty>svg{color:var(--appointment-bronze)}.schedule-empty strong{font-size:13px}.schedule-empty p{color:var(--muted);margin:0;font-size:11px;line-height:2}.schedule-admin-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:24px;display:grid}.schedule-admin-layout>.appointment-calendar{margin-top:0}.schedule-policy{padding:24px}.schedule-policy h3{margin:10px 0;font-size:20px}.schedule-policy header p{color:var(--muted);font-size:11px;line-height:1.9}.schedule-policy form{gap:20px;margin-top:24px;display:grid}.schedule-policy .field-label{font-size:11px}.schedule-policy .control{width:100%;font-size:12px}.schedule-policy-hours{grid-template-columns:1fr 1fr;gap:12px;display:grid}.schedule-policy-example{background:var(--appointment-paper);border-radius:12px;align-items:center;gap:10px;padding:14px;font-size:11px;line-height:1.9;display:flex}.schedule-policy-example>svg{color:var(--appointment-bronze);flex:none}.schedule-policy-example p{color:var(--muted);margin:0}.schedule-team>header{padding:24px}.schedule-team h3{margin:8px 0 0;font-size:20px}.schedule-team>header>.muted{font-size:11px}.schedule-team-scroll{overflow:auto}.schedule-team table{border-collapse:collapse;text-align:right;width:100%;min-width:780px}.schedule-team th,.schedule-team td{border-top:1px solid var(--line);vertical-align:top;min-width:96px;padding:20px 14px;font-size:11px}.schedule-team thead{background:var(--appointment-paper)}.schedule-team th:first-child{min-width:150px;padding-inline-start:24px}.schedule-team small{color:var(--muted);white-space:nowrap;margin-top:7px;font-size:9px;font-weight:400;display:block}.schedule-team td strong{font-size:10px}.schedule-team .free{color:var(--success)}.schedule-unpublished{color:var(--muted-2);font-size:10px}.appointment-assignment>h3{margin:10px 0 14px}.assignment-visit{background:var(--appointment-paper);border-radius:12px;align-items:flex-start;gap:9px;padding:14px;line-height:2;display:flex}.assignment-visit>svg{color:var(--appointment-bronze);flex:none;margin-top:3px}.assignment-visit strong{font-size:11px;font-weight:600}.appointment-assignment fieldset{border:0;gap:8px;min-width:0;margin:18px 0;padding:0;display:grid}.assignment-expert{border:1px solid var(--line);cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:14px 12px;transition:border-color .16s,background .16s;display:flex;position:relative}.assignment-expert input{opacity:0;width:1px;height:1px;position:absolute}.assignment-expert:has(input:focus-visible){outline:2px solid var(--appointment-bronze);outline-offset:3px}.assignment-expert.selected{border-color:var(--appointment-bronze);background:var(--appointment-bronze-soft)}.assignment-expert.unavailable{background:var(--surface);color:var(--muted);cursor:default}.assignment-expert-avatar{background:var(--appointment-paper);width:34px;height:34px;color:var(--appointment-bronze);border-radius:50%;flex:none;place-items:center;font-size:15px;font-weight:700;display:grid}.assignment-expert-info{flex:1;gap:6px;min-width:0;display:grid}.assignment-expert-info strong{flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.assignment-expert-info i{background:var(--canvas);color:var(--appointment-bronze);border-radius:5px;padding:3px 6px;font-size:8px;font-style:normal;font-weight:500}.assignment-expert-info small,.assignment-expert-info>span{color:var(--muted);font-size:9px;line-height:1.8}.assignment-expert.selected>svg{color:var(--appointment-bronze);flex:none}.appointment-assignment>.btn{width:100%;font-size:11px}@keyframes appointment-arrive{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes appointment-spin{to{transform:rotate(360deg)}}@media (min-width:721px){.schedule-admin-layout .appointment-day-rail:has(>.appointment-day:nth-child(4):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}.schedule-admin-layout .appointment-day-rail:has(>.appointment-day:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:1200px){.schedule-columns{grid-template-columns:minmax(0,1fr)}.schedule-agenda{grid-template-columns:1fr 1fr;gap:0 24px;display:grid}.schedule-agenda>header,.schedule-agenda>.appointment-note{grid-column:1/-1}.schedule-admin-layout{grid-template-columns:minmax(0,1fr) 290px}.appointment-time-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.schedule-admin-layout{grid-template-columns:1fr}.schedule-policy form{grid-template-columns:1fr 1fr}.schedule-policy form>.btn{align-self:end}.schedule-policy-hours{grid-column:1/-1}}@media (max-width:600px){.appointment-calendar{border-radius:18px;margin-top:24px;padding:16px}.appointment-day-rail{scroll-snap-type:x proximity;grid-template-columns:repeat(7,68px);gap:5px;padding:3px 0 10px;overflow-x:auto}.appointment-day{scroll-snap-align:start;min-height:112px}.appointment-calendar-head h3{font-size:21px}.appointment-calendar-head h3 span{margin:6px 0 0;font-size:10px;display:block}.appointment-date-heading{align-items:flex-start;margin-top:16px}.appointment-date-heading strong{font-size:11px}.appointment-time{min-height:82px;padding:12px 10px}.appointment-time strong{font-size:11px}.appointment-time>span>svg{width:14px}.appointment-selection{padding:12px}.appointment-selection strong{font-size:11px}.schedule-intro{flex-direction:column;align-items:flex-start;gap:24px;padding:24px}.schedule-intro h2{font-size:27px}.schedule-summary{border-inline-start:0;border-top:1px solid var(--line);grid-template-columns:1fr 1fr;column-gap:20px;width:100%;padding:20px 0 0}.schedule-summary>strong{grid-row:1/3;font-size:42px}.schedule-summary small{margin-bottom:0}.schedule-summary>span{font-size:10px}.schedule-workspace,.schedule-columns{gap:16px}.schedule-week-head{padding:20px 16px}.schedule-week-head h3{font-size:15px}.schedule-day-row{grid-template-columns:70px minmax(0,1fr) 40px;gap:8px;min-height:102px;padding:16px 12px}.schedule-day-title strong{font-size:11px}.schedule-day-title span{font-size:9px}.schedule-window{flex-wrap:wrap;gap:5px;padding-inline-end:26px;position:relative}.schedule-window label{max-width:none}.schedule-window .control{min-height:44px;padding:7px 4px;font-size:12px}.schedule-range-line{width:6px}.schedule-remove{inset-inline-end:-5px;width:28px;min-width:28px;margin:0;position:absolute;bottom:0}.schedule-add{width:40px;height:44px}.schedule-add span{display:none}.schedule-save{flex-direction:column;align-items:stretch;padding:20px 16px}.schedule-save>.btn{width:100%}.schedule-save>div{font-size:10px}.schedule-agenda{padding:20px;display:block}.schedule-policy{padding:20px}.schedule-policy form{grid-template-columns:1fr}.schedule-policy-hours{grid-column:auto}.schedule-team>header{flex-direction:column;align-items:flex-start;padding:20px}.schedule-team th,.schedule-team td{padding:16px 12px}.schedule-editor>.appointment-feedback{margin:0 16px 20px}}@media (prefers-reduced-motion:reduce){.appointment-time,.appointment-selection,.appointment-refreshing{animation:none}.appointment-day,.appointment-time,.schedule-add{transition:none}.appointment-day:hover,.appointment-day:active,.appointment-time:not(:disabled):hover,.appointment-time:not(:disabled):active,.schedule-add:active{transform:none}}.appointment-time.available:disabled{background:var(--canvas);color:var(--ink);border-color:var(--line);cursor:default}.appointment-time.available:disabled small{color:var(--success)}.appointment-time.available:disabled>span>svg{color:var(--appointment-bronze)}
