.appointment-folio-content{width:min(100%,1040px);margin:0 auto}.appointment-folio-head{grid-template-columns:minmax(0,1fr) minmax(230px,.38fr);align-items:end;gap:clamp(24px,4vw,48px);display:grid}.appointment-folio-head h1{max-width:16ch;color:var(--folio-ink);font-family:var(--display);letter-spacing:-.04em;text-wrap:balance;margin:0;font-size:clamp(2.35rem,3.6vw,3.6rem);font-weight:400;line-height:1.02}.appointment-folio-head p{color:var(--folio-muted);margin:0;font-size:.96rem;line-height:1.62}.appointment-ledger{border-top:1px solid var(--folio-line);margin-top:clamp(24px,4vh,42px)}.appointment-ledger-section+.appointment-ledger-section{margin-top:28px}.appointment-ledger-title{border-bottom:1px solid var(--folio-line);justify-content:space-between;align-items:baseline;gap:20px;padding:18px 0;display:flex}.appointment-ledger-title h2{font-family:var(--display);margin:0;font-size:1.6rem;font-weight:400}.appointment-ledger-title span{color:var(--folio-muted);letter-spacing:.1em;font-size:.75rem}.appointment-row{border-bottom:1px solid var(--folio-line);min-height:78px;color:inherit;grid-template-columns:minmax(190px,.8fr) minmax(180px,1fr) minmax(140px,.7fr) auto;align-items:center;gap:18px;padding:14px 0;text-decoration:none;display:grid;position:relative}.appointment-row:hover .appointment-row-name,.appointment-row:focus-visible .appointment-row-name{color:var(--folio-clay-deep)}.appointment-row:focus-visible{outline:2px solid var(--folio-clay);outline-offset:5px}.appointment-row-date,.appointment-row-name{font-family:var(--display);font-size:1.28rem;line-height:1.2}.appointment-row small,.appointment-row-state{color:var(--folio-muted);letter-spacing:.06em;text-transform:uppercase;margin-top:6px;font-size:.76rem;line-height:1.4;display:block}.appointment-row-arrow{color:var(--folio-clay);font-size:1.25rem}.appointment-detail-grid{border-top:1px solid var(--folio-line);grid-template-columns:repeat(2,minmax(0,1fr));gap:0 38px;margin-top:clamp(34px,6vh,58px);display:grid}.appointment-fact{border-bottom:1px solid var(--folio-line);min-height:92px;padding:20px 0}.appointment-fact dt{color:var(--folio-muted);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem}.appointment-fact dd{color:var(--folio-ink);font-family:var(--display);margin:9px 0 0;font-size:1.32rem;line-height:1.25}.appointment-status-line{border:1px solid var(--folio-line);grid-template-columns:repeat(3,minmax(0,1fr));margin-top:34px;display:grid}.appointment-status-step{border-right:1px solid var(--folio-line);min-height:84px;padding:14px 16px}.appointment-status-step:last-child{border-right:0}.appointment-status-step span{color:var(--folio-clay);letter-spacing:.1em;font-size:.7rem}.appointment-status-step strong{font-family:var(--display);margin-top:10px;font-size:1.05rem;font-weight:400;display:block}.appointment-status-step.is-muted{color:var(--folio-muted);background:#6f676009}.appointment-preparation-list{border-top:1px solid var(--folio-line);grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin:24px 0 0;padding:0;list-style:none;display:grid}.appointment-preparation-list li{border-bottom:1px solid var(--folio-line);grid-template-columns:24px 1fr auto;align-items:center;gap:12px;min-height:58px;display:grid}.appointment-preparation-list i{border:1px solid var(--folio-clay);border-radius:50%;width:12px;height:12px}.appointment-preparation-list li.is-ready i{background:var(--folio-clay);box-shadow:inset 0 0 0 3px var(--folio-paper-light)}.appointment-preparation-list small{color:var(--folio-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem}.appointment-waiting-status{border-top:1px solid var(--folio-line);border-bottom:1px solid var(--folio-line);grid-template-columns:22px 1fr;gap:20px;margin-top:0;padding:20px 0;display:grid}.appointment-waiting-signal{border:1px solid var(--folio-clay);width:14px;height:14px;box-shadow:inset 0 0 0 4px var(--folio-paper-light);background:var(--folio-clay);border-radius:50%;margin-top:8px}.appointment-waiting-status h2{font-family:var(--display);margin:0;font-size:clamp(1.9rem,3vw,3rem);font-weight:400;line-height:1.05}.appointment-waiting-status p,.appointment-device-check p{color:var(--folio-muted);margin:10px 0 0;line-height:1.55}.appointment-device-check{border-top:1px solid var(--folio-line);grid-template-columns:1fr;align-items:start;gap:18px;margin-top:26px;padding-top:24px;display:grid}.appointment-device-result{color:var(--folio-clay-deep);grid-column:1;font-size:.84rem;font-weight:650}.appointment-prejoin{border-top:1px solid var(--folio-line);grid-template-columns:minmax(0,1.42fr) minmax(300px,.82fr);align-items:stretch;gap:clamp(22px,3vw,40px);margin-top:clamp(22px,3.5vh,36px);padding-top:18px;display:grid}.appointment-prejoin--compact{grid-template-columns:minmax(0,760px)}.appointment-local-preview{color:#fffaf5;background:#211b18;min-height:320px;position:relative;overflow:hidden}.appointment-local-preview video,.appointment-preview-empty{object-fit:cover;background:#372b26;width:calc(100% - 36px);height:calc(100% - 90px);position:absolute;inset:18px 18px 72px}.appointment-preview-empty{place-items:center;display:grid}.appointment-preview-empty>span{background:#4c3a31;border-radius:50%;width:120px;height:120px;position:relative}.appointment-preview-empty>span:before,.appointment-preview-empty>span i{content:"";background:#997b69;position:absolute;left:50%;transform:translate(-50%)}.appointment-preview-empty>span:before{border-radius:50%;width:38px;height:38px;top:22px}.appointment-preview-empty>span i{border-radius:50px 50px 8px 8px;width:76px;height:38px;bottom:17px}.appointment-local-preview--checking .appointment-preview-empty>span{animation:1.35s ease-in-out infinite appointment-preview-pulse}.appointment-preview-caption{gap:4px;display:grid;position:absolute;inset:auto 18px 16px}.appointment-preview-caption span{letter-spacing:.14em;text-transform:uppercase;font-size:.74rem;font-weight:650}.appointment-preview-caption small{color:#cdbdb2;font-size:.72rem}.appointment-prejoin-panel{flex-direction:column;min-width:0;display:flex}.appointment-prejoin-panel .appointment-waiting-status h2{font-size:clamp(1.55rem,2vw,2.15rem)}.appointment-prejoin-panel .patient-folio-contract{margin-top:16px;padding:14px 16px}.appointment-prejoin-panel .patient-folio-contract strong{font-size:1.08rem;line-height:1.35}.appointment-prejoin-panel .patient-folio-actions{margin-top:auto;padding-top:20px}.appointment-prejoin-panel .appointment-device-check{gap:14px;margin-top:16px;padding-top:16px}@keyframes appointment-preview-pulse{0%,to{opacity:.5;transform:scale(.96)}50%{opacity:1;transform:scale(1)}}.appointment-room-live{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.appointment-prejoin.is-room-open{outline:2px solid color-mix(in srgb, var(--folio-clay,#a84927) 45%, transparent);outline-offset:4px}.appointment-prejoin-panel .patient-folio-primary.is-room-open{box-shadow:0 0 0 0 color-mix(in srgb, var(--folio-clay,#a84927) 35%, transparent);animation:1.2s ease-out 2 appointment-room-open}@keyframes appointment-room-open{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--folio-clay,#a84927) 40%, transparent)}70%{box-shadow:0 0 0 12px color-mix(in srgb, var(--folio-clay,#a84927) 0%, transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--folio-clay,#a84927) 0%, transparent)}}@media (prefers-reduced-motion:reduce){.appointment-prejoin-panel .patient-folio-primary.is-room-open{animation:none}}@media (max-width:900px){.appointment-folio-head{grid-template-columns:1fr}.appointment-row{grid-template-columns:1fr 1fr auto}.appointment-row-state{grid-column:1/-2}.appointment-prejoin{grid-template-columns:1fr}}@media (max-width:680px){.appointment-row,.appointment-detail-grid,.appointment-status-line,.appointment-preparation-list,.appointment-device-check{grid-template-columns:1fr}.appointment-row{gap:10px;padding:22px 0}.appointment-row-state{grid-column:auto}.appointment-row-arrow{position:absolute;right:26px}.appointment-status-step{border-right:0;border-bottom:1px solid var(--folio-line)}.appointment-status-step:last-child{border-bottom:0}}
