/* Shared interaction language: halos, real booking progress, and a calendar. */
@property --halo-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
.halo-host{position:relative;isolation:isolate}
.tap-beam{position:absolute;inset:-3px;border-radius:inherit;border:2px solid transparent;background:conic-gradient(from var(--halo-angle),transparent 25%,#d6fa4255 55%,#d6fa42 72%,#fafee8 78%,transparent 86%) border-box;mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0);mask-composite:exclude;pointer-events:none;z-index:4;animation:halo-orbit 1.05s ease-out forwards}
.halo-hit{animation:halo-click 1.05s ease-out}
@keyframes halo-orbit{0%{--halo-angle:0deg;opacity:0}15%{opacity:1}80%{opacity:1}100%{--halo-angle:360deg;opacity:0}}
@keyframes halo-click{0%,100%{outline:0 solid #d6fa4200;outline-offset:0}25%{outline:4px solid #b6dd5266;outline-offset:4px}}
button,a,label.compact-package,summary{touch-action:manipulation}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #8ea82e;outline-offset:5px}
@media(hover:hover){button:not(:disabled):hover,.compact-package:hover{box-shadow:0 0 0 3px #c7e8772b;transition:box-shadow .2s}}
.orb.thinking-orb{position:relative;overflow:visible!important;background:radial-gradient(circle,#42622b1f,transparent 67%)!important;border-radius:50%!important;box-shadow:none!important;animation:none!important;transform:none!important}
.orb.thinking-orb:after,.orb.thinking-orb:before{display:none!important}
.thinking-canvas{display:block;width:100%;height:100%;filter:drop-shadow(0 0 5px #d6fa4240)}
.assistant-launcher .thinking-orb{width:64px;height:64px}.assistant-launcher{padding:2px 22px 2px 3px!important;background:#121810!important;border:1px solid #4d5942!important}
.assistant-header .thinking-orb{width:50px;height:50px;flex-shrink:0;background:#161e13!important}.app-nav-orb.thinking-orb{background:#16200e!important;border-radius:50%;width:28px;height:28px}
.booking-progress{margin:-4px 0 28px;padding:0 0 18px;border-bottom:1px solid var(--line)}
.booking-progress>div:first-child{display:flex;align-items:center;gap:8px;font-size:11px}.booking-progress strong{font-weight:650}.progress-symbol{color:#74922a;font-size:20px}.booking-progress #steps-count{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--muted);font-size:11px}.progress-track{height:4px;margin-top:10px;border-radius:8px;overflow:hidden;background:#e8ecdf}.progress-track i{display:block;width:33.33%;height:100%;border-radius:8px;background:linear-gradient(90deg,#7e9f29,#d6fa42);transition:width .4s cubic-bezier(.2,.8,.2,1)}.booking-progress p{font-size:10px;color:var(--muted);margin:8px 0 0}
.xp-card{display:flex;align-items:center;gap:14px;padding:18px 20px;border-radius:15px;background:#192015;color:#fff;margin-bottom:20px;border:1px solid #34472a;box-shadow:0 10px 25px #1d35101a}.xp-badge{display:grid;place-items:center;width:46px;height:46px;color:var(--lime);background:#d6fa4210;border:1px solid #d6fa4235;border-radius:14px;font-size:31px}.xp-rank{display:block;font-size:10px;color:#c6d5b4;margin-bottom:3px}.xp-total{display:block;line-height:1;font-size:22px;letter-spacing:-.6px}.xp-card p{font-size:9px;line-height:1.5;color:#b8c2ad;margin:7px 0 0}.xp-level{margin-left:auto;color:#d6fa42;font-size:8px;letter-spacing:1px;white-space:nowrap}.booking-section>.xp-card{grid-column:1;margin:0;align-self:start}
.calendar-card{position:relative;overflow:hidden;background:linear-gradient(145deg,#1c271b,#101610);border:1px solid #39492e;border-radius:18px;padding:22px;color:#eef5e6;box-shadow:0 15px 35px #14200e19;margin:18px 0 12px;font-family:inherit}.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:23px}.calendar-kicker{display:block;color:#adc299;font-size:8px;letter-spacing:1.25px;margin-bottom:6px}.calendar-heading strong{font-size:23px;line-height:1.1;font-weight:600;letter-spacing:-.8px}.duration-pill{font-size:9px;letter-spacing:.6px;background:#d6fa4212;border:1px solid #d6fa422b;color:#d6fa42;border-radius:30px;padding:7px 9px;white-space:nowrap}.calendar-month{display:flex;align-items:center;justify-content:space-between;margin:0 0 16px}.calendar-month strong{font-size:13px;font-weight:550}.calendar-month button{width:30px;height:30px;border:1px solid #425238;background:#273222;color:#d6fa42;border-radius:50%;font-size:17px;padding:0}.calendar-month button:disabled{opacity:.25;cursor:default}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}.calendar-weekdays{color:#8e9e84;font-size:10px;margin-bottom:9px}.calendar-days button,.calendar-blank{display:grid;place-items:center;aspect-ratio:1;min-height:40px;max-height:46px;position:relative;border:1px solid transparent;border-radius:10px;background:transparent;font-size:12px;color:#ebf4e4;padding:0}.calendar-days button:hover:not(:disabled){background:#ffffff10}.calendar-days button.is-today:after{content:'';position:absolute;bottom:5px;width:3px;height:3px;border-radius:50%;background:currentColor}.calendar-days button.selected{background:#d6fa42!important;color:#192015;border-color:#e9ffa4;box-shadow:0 0 20px #b8dc4927;font-weight:700}.calendar-days button:disabled{color:#4f6047;cursor:default}.slot-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:19px;border-top:1px solid #34422c;padding-top:17px;font-size:10px}.slot-heading>span:last-child{color:#99ab8b;font-size:9px}.slots-status{font-size:10px;line-height:1.6;color:#b5c7a6;margin:9px 0 12px}.slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:220px;overflow:auto;padding:3px}.slot-chip{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;border:1px solid #425537;background:#23301e;color:#ecf6e3;border-radius:9px;padding:12px 5px;font-size:11px;font-weight:500}.slot-chip.selected{background:#d6fa42;color:#131d0b;border-color:#d6fa42;box-shadow:0 0 18px #d6fa4220}.slot-chip small{font-size:9px;opacity:.7}.slot-photographer{display:flex;align-items:center;gap:10px;padding:13px 0 0;margin-top:12px;border-top:1px solid #34422c}.photographer-avatar{display:grid;place-items:center;width:38px;height:38px;object-fit:cover;border-radius:50%;background:#d6fa42;color:#16220e;font-size:12px;font-weight:700;flex-shrink:0}.slot-photographer strong{display:block;font-size:12px}.slot-photographer small{display:block;font-size:9px;line-height:1.5;color:#a7b998;margin-top:4px}.calendar-foot{display:flex;align-items:center;gap:6px;font-size:8px;color:#9db28d;margin-top:20px}.live-dot{width:5px;height:5px;background:#c0e970;border-radius:50%;box-shadow:0 0 8px #c0e97555}.calendar-foot button{margin-left:auto;background:none;border:0;color:#d6fa42;font-size:9px;padding:5px}.calendar-native-fields{display:none!important}.calendar-card[aria-busy=true] .live-dot{animation:signal 1s ease-in-out infinite}@keyframes signal{50%{opacity:.3}}
@media(min-width:761px){.booking-section:has(>.xp-card){position:relative}.booking-section>.xp-card{grid-row:2}.booking-section>.booking-panel{grid-column:2;grid-row:1/span 2}}
@media(max-width:400px){.calendar-card{padding:17px 14px;border-radius:14px}.calendar-heading strong{font-size:21px}.calendar-days{gap:3px}.slot-heading{font-size:9px}.xp-card{padding:15px;gap:10px}.xp-level{font-size:7px}.assistant-launcher .thinking-orb{width:51px;height:51px}}
@media(prefers-reduced-motion:reduce){.tap-beam,.halo-hit{animation:none!important}.halo-hit{outline:2px solid #a8c443;outline-offset:3px}.progress-track i{transition:none}.calendar-card .live-dot{animation:none!important}}
