.loading-panel{display:grid;justify-items:center;gap:8px;min-height:150px;align-content:center;border:1px solid #b5bbc4;background:#f8fafc;color:#111827;padding:18px;text-align:center}.loading-panel-spinner{width:30px;height:30px;border:3px solid #d1d5db;border-top-color:#475569;border-radius:999px;animation:loading-panel-spin .8s linear infinite}.loading-panel strong{font-size:.92rem}.loading-panel span:last-child{color:#4b5563;font-size:.8rem}.load-error-panel{display:grid;justify-items:center;gap:10px;min-height:150px;align-content:center;border:1px solid #fecaca;background:#fef2f2;color:#991b1b;padding:18px;text-align:center}.load-error-panel span{color:#7f1d1d;font-size:.86rem}.load-error-panel-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}@keyframes loading-panel-spin{to{transform:rotate(360deg)}}.follow-up-calendar-screen{min-height:100vh;padding:24px;background:#eef2f7;color:#111827;overflow-x:clip}.follow-up-calendar-screen.embedded{min-height:0;padding:0;background:transparent}.follow-up-calendar-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;border-bottom:1px solid #cbd5e1;padding-bottom:10px}.follow-up-calendar-header.embedded{grid-template-columns:minmax(0,1fr) auto;border:1px solid #cbd5e1;border-radius:8px;background:#ffffff;padding:10px}.follow-up-calendar-header.embedded .follow-up-calendar-title-block{justify-items:start}.follow-up-calendar-title-block{display:grid;gap:4px;justify-items:center;min-width:0}.follow-up-calendar-month-controls{display:flex;align-items:center;gap:8px;min-width:0}.calendar-month-button{width:auto;min-width:36px;padding:5px 9px}.follow-up-calendar-filter-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center}.follow-up-calendar-filters{display:flex;flex-wrap:wrap;gap:6px;flex:1 1 auto;min-width:0}.follow-up-calendar-filters label{display:inline-flex;align-items:center;gap:4px;border:1px solid #cbd5e1;border-radius:4px;background:#ffffff;padding:4px 7px;color:#1f2937;font-size:.74rem;font-weight:800;line-height:1.1;white-space:nowrap}.follow-up-calendar-filters input{width:13px;height:13px;flex:0 0 auto}.follow-up-calendar-filters .calendar-utility-filter{background:#ffffff;border-color:#94a3b8}.calendar-search-result-table button:not(.main-menu-button){border:0;background:transparent;color:#1d4ed8;font:inherit;font-weight:900;text-align:left;cursor:pointer;overflow-wrap:anywhere}.follow-up-calendar-grid{margin-top:14px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid #cbd5e1;background:#ffffff}.calendar-day{min-height:110px;border:1px solid #e2e8f0;padding:8px}.calendar-day.today{background:#fff7ed}.calendar-day>strong{display:block;margin-bottom:6px}.calendar-item{display:grid;width:100%;margin-top:6px;padding:4px 6px;border-radius:4px;border:1px solid rgba(15,23,42,.2);font-size:.78rem;font-weight:800;text-align:left;color:#111827;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease,filter .12s ease}.calendar-item:hover,.calendar-item:focus-visible{border-color:#1d4ed8;box-shadow:0 0 0 2px #1d4ed838;filter:saturate(1.05);outline:none;text-decoration:underline}.calendar-item:active{transform:translateY(1px)}.calendar-item small,.calendar-item span{overflow-wrap:anywhere}.calendar-item.referral{background:#dbeafe}.calendar-item.order{background:#dcfce7}.calendar-item.install{background:#e9d5ff}.calendar-item.custom{background:#fef3c7}.calendar-range-lanes{display:grid;grid-auto-rows:38px;gap:4px;margin:0 -9px 6px}.calendar-range-lane-spacer{display:block;height:38px}.calendar-item.calendar-range-item{height:38px;min-height:38px;margin-top:0;align-content:center;gap:1px;padding-top:3px;padding-bottom:3px;position:relative;overflow:hidden}.calendar-item.custom.range-start,.calendar-item.custom.range-middle,.calendar-item.custom.range-end{border-radius:4px}.calendar-item.custom.range-start{border-top-right-radius:0;border-bottom-right-radius:0;width:calc(100% + 9px);border-right-color:transparent}.calendar-item.custom.range-middle{border-radius:0;width:100%;padding-left:0;padding-right:0;border-left-color:transparent;border-right-color:transparent;text-align:center}.calendar-item.custom.range-end{border-top-left-radius:0;border-bottom-left-radius:0;justify-self:end;width:calc(100% + 9px);border-left-color:transparent}.calendar-item.custom.range-start small,.calendar-item.custom.range-end small,.calendar-range-connector{color:#92400e;font-size:.68rem;font-weight:900;letter-spacing:0;white-space:nowrap}.calendar-item.custom.range-middle .calendar-range-connector{display:block;width:100%;overflow:hidden}.calendar-item.overdue{border-color:#dc2626;box-shadow:inset 3px 0 #dc2626}.follow-up-calendar-legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.calendar-event-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:18px;background:rgba(15,23,42,.42);overflow:hidden}.calendar-event-dialog,.calendar-event-dialog *{box-sizing:border-box}.calendar-event-dialog{width:min(900px,calc(100vw - 36px));min-height:min(680px,92vh);max-height:92vh;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border-radius:8px;background:#ffffff;border:1px solid #cbd5e1;box-shadow:0 18px 40px #0f172a38;padding:18px;min-width:0}.calendar-event-dialog-header,.calendar-event-actions,.calendar-event-date-grid{display:flex;gap:12px;align-items:center}.calendar-event-dialog-header{justify-content:space-between;border-bottom:1px solid #e2e8f0;padding-bottom:10px;min-width:0}.calendar-event-dialog-header>div{min-width:0}.calendar-event-dialog-header h1{margin:0;font-size:1.15rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event-dialog-header p{margin:3px 0 0;color:#64748b;font-size:.82rem;font-weight:800}.calendar-event-form{display:flex;flex-direction:column;align-content:flex-start;gap:12px;margin-top:14px;min-height:0;overflow-x:hidden;overflow-y:auto;padding:0 2px 18px 0}.calendar-event-dialog-header-actions{display:flex;flex:0 0 auto;gap:8px;align-items:center}.calendar-manage-filterbar,.calendar-wizard-header,.calendar-wizard-steps,.calendar-weekday-picker{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.calendar-wizard-header{align-items:flex-start}.calendar-dialog-create-button{width:auto;min-width:112px;padding:7px 12px}.calendar-dialog-close-button{display:inline-grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border:1px solid #cbd5e1;border-radius:4px;background:#ffffff;color:#111827;font:inherit;font-size:.9rem;font-weight:900;line-height:1;cursor:pointer}.calendar-dialog-close-button:disabled{cursor:not-allowed;opacity:.55}.calendar-filter-chip{width:auto;flex:0 0 auto;border:1px solid #cbd5e1;border-radius:999px;background:#ffffff;color:#1f2937;padding:6px 10px;font:inherit;font-size:.8rem;font-weight:900;line-height:1;cursor:pointer}.calendar-filter-chip.active{border-color:#1d4ed8;background:#dbeafe;color:#1e3a8a}.calendar-wizard-steps .active{border-color:#1d4ed8;background:#dbeafe}.calendar-wizard-steps{min-width:0}.calendar-wizard-steps button{width:auto;max-width:160px;flex:0 1 auto;white-space:normal;text-align:center;line-height:1.15;padding:7px 9px}.calendar-wizard-steps .completed{border-color:#16a34a}.calendar-wizard-steps button:disabled{cursor:not-allowed;opacity:.55}.calendar-manage-list{display:grid;gap:8px}.calendar-managed-event-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #cbd5e1;border-radius:6px;padding:10px;background:#f8fafc;min-width:0}.calendar-managed-event-row div{display:grid;gap:3px;min-width:0}.calendar-managed-event-row span,.calendar-managed-event-row small{color:#475569;font-weight:800}.calendar-event-form label,.calendar-event-form fieldset,.calendar-event-member-list,.calendar-event-meta{display:grid;gap:6px;font-size:.85rem;font-weight:800;color:#1f2937;min-width:0}.calendar-event-actions{position:sticky;bottom:0;justify-content:space-between;align-items:center;flex-wrap:wrap;border-top:1px solid #e2e8f0;background:#ffffff;padding-top:10px}.calendar-event-actions-left,.calendar-event-actions-right{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.calendar-event-actions-right{justify-content:flex-end}.calendar-event-actions .main-menu-button{width:auto;min-width:82px;flex:0 0 auto;padding:7px 12px}.calendar-event-form input,.calendar-event-form textarea,.calendar-event-form select{width:100%;border:1px solid #cbd5e1;border-radius:4px;padding:8px 9px;font:inherit;min-width:0}.calendar-event-form input[type=date]{width:min(180px,100%)}.calendar-event-form .calendar-number-input{width:min(10rem,100%);min-width:9rem}.calendar-event-form textarea{min-height:86px;resize:vertical}.calendar-event-form fieldset{border:1px solid #cbd5e1;border-radius:6px;padding:10px;min-width:0}.calendar-event-form fieldset label,.calendar-event-member-list label{display:flex;align-items:flex-start;gap:8px;font-weight:700}.calendar-event-form label small,.calendar-event-form fieldset small,.calendar-event-member-list small{display:block;margin-top:2px;color:#64748b;font-size:.76rem;font-weight:700;line-height:1.25}.calendar-event-form fieldset input,.calendar-event-member-list input{width:16px;height:16px}.calendar-event-error,.calendar-event-message{color:#b91c1c;font-size:.78rem;font-weight:800}.calendar-required-note,.calendar-helper-text{margin:0;color:#475569;font-size:.8rem;font-weight:800}.calendar-required-star,.calendar-required-note span{color:#dc2626;font-weight:900}.calendar-field-label{display:inline-flex;gap:3px;align-items:baseline;width:fit-content;max-width:100%;white-space:nowrap}.calendar-input-invalid,.calendar-fieldset-invalid{border-color:#dc2626!important;box-shadow:0 0 0 2px #dc26261f}.calendar-event-message{margin:0}.calendar-event-meta{border:1px solid #e2e8f0;border-radius:6px;padding:9px;background:#f8fafc}.calendar-event-review{display:grid;gap:10px}.calendar-event-review article{display:grid;gap:5px;border:1px solid #e2e8f0;border-radius:6px;padding:10px;background:#f8fafc;min-width:0}.calendar-event-review header{display:flex;justify-content:space-between;gap:8px;align-items:center}.calendar-event-review button{width:auto;border:0;background:transparent;color:#1d4ed8;font:inherit;font-weight:900;cursor:pointer}.calendar-event-history{display:grid;gap:8px;border:1px solid #e2e8f0;border-radius:6px;padding:10px;background:#f8fafc}.calendar-event-history article{display:grid;gap:3px;border-top:1px solid #e2e8f0;padding-top:6px}.calendar-event-history article:first-of-type{border-top:0;padding-top:0}.calendar-event-history span{font-weight:900;text-transform:capitalize}.calendar-event-history small,.calendar-event-history p{margin:0;color:#475569;overflow-wrap:anywhere}@media (max-width: 760px){.follow-up-calendar-screen{padding:16px}.follow-up-calendar-header{grid-template-columns:1fr auto;align-items:start}.follow-up-calendar-title-block{order:3;grid-column:1 / -1;justify-items:start}.follow-up-calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-event-date-grid,.calendar-event-actions,.calendar-search-result{grid-template-columns:1fr}.calendar-event-date-grid,.calendar-event-actions,.calendar-event-actions-left,.calendar-event-actions-right{align-items:stretch;flex-direction:column}.calendar-event-actions .main-menu-button,.calendar-dialog-create-button{width:100%}.calendar-event-dialog{width:min(900px,calc(100vw - 24px));padding:14px}.calendar-event-dialog-header{gap:8px}.calendar-event-dialog-header h1{white-space:normal}}
