.calendar{background:var(--color-white);font-family:var(--font-body);border-radius:14px;overflow:hidden;box-shadow:0 1px 4px #38251b0a}.calendar-header{border-bottom:1px solid #38251b14;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex}.calendar-nav{align-items:center;gap:.5rem;display:flex}.calendar-nav-btn{cursor:pointer;width:36px;height:36px;color:var(--color-brown-dark);transition:background var(--duration-fast),border-color var(--duration-fast);font-size:1rem;font-family:var(--font-body);background:0 0;border:1px solid #38251b1f;border-radius:8px;justify-content:center;align-items:center;display:flex}.calendar-nav-btn:hover{background:#38251b0a;border-color:#38251b33}.calendar-today-btn{cursor:pointer;font-size:.813rem;font-weight:500;font-family:var(--font-body);color:var(--color-brown-dark);transition:background var(--duration-fast),border-color var(--duration-fast);background:0 0;border:1px solid #38251b1f;border-radius:8px;padding:.375rem .875rem}.calendar-today-btn:hover{background:var(--color-accent-teal-light);border-color:var(--color-accent-teal);color:var(--color-accent-teal)}.calendar-title{font-family:var(--font-display);color:var(--color-brown-dark);text-align:center;min-width:180px;font-size:1.25rem;font-weight:600}.calendar-view-toggle{background:#38251b0a;border-radius:8px;gap:.25rem;padding:3px;display:flex}.calendar-view-btn{cursor:pointer;font-size:.75rem;font-weight:500;font-family:var(--font-body);color:var(--color-brown-light,#8a7668);transition:all var(--duration-fast);text-transform:uppercase;letter-spacing:.04em;background:0 0;border:none;border-radius:6px;padding:.375rem .75rem}.calendar-view-btn:hover{color:var(--color-brown-dark)}.calendar-view-btn.active{background:var(--color-white);color:var(--color-brown-dark);font-weight:600;box-shadow:0 1px 3px #38251b1a}.calendar-month-grid{grid-template-columns:repeat(7,1fr);display:grid}.calendar-weekday-header{text-align:center;text-transform:uppercase;letter-spacing:.06em;color:var(--color-brown-light,#8a7668);background:#38251b05;border-bottom:1px solid #38251b0f;padding:.625rem .25rem;font-size:.688rem;font-weight:600}.calendar-day-cell{cursor:pointer;min-height:90px;transition:background var(--duration-fast);border-bottom:1px solid #38251b0d;border-right:1px solid #38251b0d;padding:.375rem;position:relative}.calendar-day-cell:nth-child(7n){border-right:none}.calendar-day-cell:hover{background:#3d6e7a08}.calendar-day-cell.other-month{background:#38251b04}.calendar-day-cell.other-month .calendar-day-number{color:#38251b40}.calendar-day-cell.today{background:#3d6e7a0f}.calendar-day-cell.today .calendar-day-number{background:var(--color-accent-teal);color:var(--color-white)}.calendar-day-cell.selected{background:#38251b0f}.calendar-day-cell.selected .calendar-day-number{background:var(--color-brown-dark);color:var(--color-white)}.calendar-day-cell.weekend{background:#38251b03}.calendar-day-number{width:28px;height:28px;color:var(--color-brown-dark);transition:background var(--duration-fast),color var(--duration-fast);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.25rem;font-size:.813rem;font-weight:500;display:inline-flex}.calendar-day-events{flex-direction:column;gap:2px;display:flex}.calendar-event-pill{white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:opacity var(--duration-fast);border-radius:4px;padding:2px 6px;font-size:.625rem;font-weight:500;line-height:1.5;overflow:hidden}.calendar-event-pill:hover{opacity:.85}.calendar-event-pill.type-counselling,.calendar-event-pill.type-coaching,.calendar-event-pill.type-business{color:var(--color-accent-teal);background:#3d6e7a1f}.calendar-event-pill.type-intake{color:var(--color-brown-accent);background:#a0785e1f}.calendar-event-pill.type-follow_up{color:var(--color-success);background:#4a7a5e1a}.calendar-event-pill.type-crisis{color:var(--color-error);background:#9e4a4a1a}.calendar-event-pill.type-review{color:var(--color-brown-dark);background:#38251b14}.calendar-event-pill.type-discovery_call,.calendar-event-pill.type-discovery{color:var(--color-accent-teal);background:#3d6e7a14}.calendar-event-pill.type-regular{color:var(--color-accent-teal);background:#3d6e7a1f}.calendar-event-pill.type-blocked{color:#38251b80;background:#38251b0f;font-style:italic}.calendar-more-events{color:var(--color-accent-teal);cursor:pointer;padding:1px 6px;font-size:.625rem;font-weight:500}.calendar-week-container{grid-template-columns:60px repeat(7,1fr);max-height:600px;display:grid;overflow-y:auto}.calendar-week-header{border-bottom:1px solid #38251b14;grid-template-columns:60px repeat(7,1fr);display:grid}.calendar-week-header-cell{text-align:center;color:var(--color-brown-light,#8a7668);border-right:1px solid #38251b0d;padding:.75rem .25rem;font-size:.75rem;font-weight:500}.calendar-week-header-cell:last-child{border-right:none}.calendar-week-header-cell.today{color:var(--color-accent-teal);font-weight:600}.calendar-week-header-day{color:var(--color-brown-dark);margin-top:.125rem;font-size:1.25rem;font-weight:600;display:block}.calendar-week-header-cell.today .calendar-week-header-day{color:var(--color-accent-teal)}.calendar-week-corner{border-right:1px solid #38251b0d;padding:.75rem .25rem}.calendar-time-label{text-align:right;color:var(--color-brown-light,#8a7668);border-right:1px solid #38251b0d;justify-content:flex-end;align-items:flex-start;height:60px;padding:0 .5rem;font-size:.688rem;display:flex;position:relative;top:-6px}.calendar-week-cell{cursor:pointer;height:60px;transition:background var(--duration-fast);border-bottom:1px solid #38251b0a;border-right:1px solid #38251b0d;position:relative}.calendar-week-cell:last-child{border-right:none}.calendar-week-cell:hover{background:#3d6e7a08}.calendar-week-cell.today-col{background:#3d6e7a05}.calendar-time-event{cursor:pointer;z-index:2;transition:opacity var(--duration-fast),box-shadow var(--duration-fast);border-left:3px solid;border-radius:4px;padding:3px 6px;font-size:.688rem;font-weight:500;line-height:1.4;position:absolute;left:2px;right:2px;overflow:hidden}.calendar-time-event:hover{opacity:.9;box-shadow:0 2px 6px #38251b1f}.calendar-time-event.type-counselling,.calendar-time-event.type-coaching,.calendar-time-event.type-business{color:var(--color-accent-teal);border-left-color:var(--color-accent-teal);background:#3d6e7a1a}.calendar-time-event.type-intake{color:var(--color-brown-accent);border-left-color:var(--color-brown-accent);background:#a0785e1a}.calendar-time-event.type-follow_up{color:var(--color-success);border-left-color:var(--color-success);background:#4a7a5e14}.calendar-time-event.type-crisis{color:var(--color-error);border-left-color:var(--color-error);background:#9e4a4a14}.calendar-time-event.type-review{color:var(--color-brown-dark);border-left-color:var(--color-brown-dark);background:#38251b0f}.calendar-time-event.type-discovery_call,.calendar-time-event.type-discovery{color:var(--color-accent-teal);border-left-color:var(--color-accent-teal);background:#3d6e7a0f}.calendar-time-event.type-regular{color:var(--color-accent-teal);border-left-color:var(--color-accent-teal);background:#3d6e7a1a}.calendar-time-event-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.calendar-time-event-time{opacity:.8;font-size:.625rem;font-weight:400}.calendar-day-container{grid-template-columns:60px 1fr;max-height:600px;display:grid;overflow-y:auto}.calendar-day-header{border-bottom:1px solid #38251b14;grid-template-columns:60px 1fr;display:grid}.calendar-day-header-cell{font-family:var(--font-display);color:var(--color-brown-dark);border-right:1px solid #38251b0d;padding:.75rem 1rem;font-size:1.125rem;font-weight:600}.calendar-day-header-cell.today{color:var(--color-accent-teal)}.calendar-day-time-cell{cursor:pointer;height:60px;transition:background var(--duration-fast);border-bottom:1px solid #38251b0a;position:relative}.calendar-day-time-cell:hover{background:#3d6e7a08}.event-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;animation:modalFadeIn .2s var(--ease-out-expo);background:#38251b66;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.event-modal{background:var(--color-white);width:100%;max-width:560px;max-height:90vh;box-shadow:var(--shadow-2xl);animation:modalSlideIn .25s var(--ease-out-expo);border-radius:14px;overflow-y:auto}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.event-modal-header{border-bottom:1px solid #38251b14;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.event-modal-title{font-family:var(--font-display);color:var(--color-brown-dark);font-size:1.125rem;font-weight:600}.event-modal-close{cursor:pointer;width:44px;height:44px;color:var(--color-brown-light,#8a7668);transition:background var(--duration-fast),color var(--duration-fast);background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;display:flex}.event-modal-close:hover{color:var(--color-brown-dark);background:#38251b0f}.event-modal-body{flex-direction:column;gap:1rem;padding:1.5rem;display:flex}.event-modal-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.event-modal-field{flex-direction:column;gap:.375rem;display:flex}.event-modal-field.full-width{grid-column:1/-1}.event-modal-label{color:var(--color-brown-light,#8a7668);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;gap:.5rem;font-size:.75rem;font-weight:600;display:flex}.event-modal-regen-btn{text-transform:none;letter-spacing:0;border:1px solid var(--color-accent-teal,#2a9d8f);color:var(--color-accent-teal,#2a9d8f);cursor:pointer;transition:background var(--duration-fast);background:0 0;border-radius:4px;padding:.1875rem .5rem;font-family:inherit;font-size:.6875rem;font-weight:500}.event-modal-regen-btn:hover{background:#3d6e7a14}.event-modal-lineage{color:var(--color-brown-dark);background:#3d6e7a0f;border:1px solid #3d6e7a2e;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.8125rem;display:flex}.event-modal-lineage-icon{flex-shrink:0;font-size:1rem}.event-modal-input,.event-modal-select,.event-modal-textarea{font-family:var(--font-body);color:var(--color-text-body);background:var(--color-white);transition:border-color var(--duration-fast),box-shadow var(--duration-fast);border:1px solid #38251b26;border-radius:8px;padding:.625rem .875rem;font-size:.875rem}.event-modal-input:focus,.event-modal-textarea:focus{border-color:var(--color-accent-teal);box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.event-modal-select:focus{border-color:#38251b59;outline:none;box-shadow:0 0 0 3px #38251b14}.event-modal-textarea{resize:vertical;min-height:80px}.event-modal-hint{font-family:var(--font-body);color:var(--color-text-muted);margin-top:.25rem;font-size:.72rem;line-height:1.4}.event-modal-footer{border-top:1px solid #38251b14;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.5rem;display:flex}.event-modal-confirm-cancel{background:#c0392b12;border:1px solid #c0392b38;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:.75rem 1.5rem;padding:1rem 1.25rem;display:flex}.event-modal-confirm-cancel-text{color:var(--color-brown-dark,#38251b);flex-direction:column;flex:280px;gap:.25rem;font-size:.8125rem;display:flex}.event-modal-confirm-cancel-text strong{color:#c0392b;font-weight:600}.event-modal-confirm-cancel-text span{color:#38251bbf;line-height:1.45}.event-modal-confirm-cancel-actions{flex-shrink:0;gap:.5rem;display:flex}.event-modal-footer-left{display:flex}.event-modal-footer-right{gap:.5rem;display:flex}.event-modal-btn{font-family:var(--font-body);cursor:pointer;transition:all var(--duration-fast);border:1px solid #0000;border-radius:8px;padding:.5rem 1rem;font-size:.813rem;font-weight:500}.event-modal-btn.primary{background:var(--color-accent-teal);color:var(--color-white);border-color:var(--color-accent-teal)}.event-modal-btn.primary:hover{background:#35616c}.event-modal-btn.secondary{color:var(--color-brown-dark);background:0 0;border-color:#38251b26}.event-modal-btn.secondary:hover{background:#38251b0a}.event-modal-btn.danger{color:var(--color-error);background:0 0;border-color:#9e4a4a33}.event-modal-btn.danger:hover{background:#9e4a4a0f}.event-modal-confirm-cancel .event-modal-btn.danger{color:#fff;background:#c0392b;border-color:#c0392b}.event-modal-confirm-cancel .event-modal-btn.danger:hover{background:#a82e22;border-color:#a82e22}.event-modal-confirm-cancel .event-modal-btn.secondary{background:#fff;border-color:#38251b33}.event-modal-btn.live{background:var(--color-accent-teal,#2a9d8f);color:#fff;border-color:var(--color-accent-teal,#2a9d8f);align-items:center;gap:6px;text-decoration:none;display:inline-flex}.event-modal-btn.live:hover{opacity:.9}.event-modal-locked-banner{color:#8a6c2c;background:#fdf6e7;border:1px solid #f0d9a3;border-radius:8px;align-items:center;gap:.625rem;padding:.625rem .875rem;font-size:.8125rem;display:flex}.event-modal-locked-banner svg{color:#b88c3a;flex-shrink:0}.event-modal-locked-banner span{flex:1;line-height:1.4}.event-modal-unlock-btn{color:#8a6c2c;cursor:pointer;transition:background var(--duration-fast);background:#fff;border:1px solid #f0d9a3;border-radius:6px;flex-shrink:0;padding:.375rem .625rem;font-family:inherit;font-size:.75rem;font-weight:500}.event-modal-unlock-btn:hover{background:#faf0d9}.event-modal-cancelled-banner{color:#8a3a3a;background:#fdf2f2;border:1px solid #e9c4c4;border-left:3px solid #b94a4a;border-radius:4px;align-items:center;gap:.625rem;padding:.625rem .875rem;font-size:.8125rem;line-height:1.4;display:flex}.event-modal-cancelled-tag{letter-spacing:.04em;text-transform:uppercase;color:#fff;background:#b94a4a;border-radius:3px;flex-shrink:0;padding:.1875rem .5rem;font-size:.6875rem;font-weight:600}.event-modal-payment-toggle,.event-modal-backfill-toggle{color:var(--color-brown-dark,#3d2e22);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;display:flex}.event-modal-payment-toggle input[type=checkbox],.event-modal-backfill-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-accent-teal,#2a9d8f);cursor:pointer}.event-modal-backfill-toggle{background:#38251b0a;border:1px solid #38251b14;border-radius:8px;padding:.5rem .75rem}.event-modal-payment-box{background:#f0f7f6;border:1px solid #c9e3df;border-radius:8px;flex-direction:column;gap:.5rem;margin-top:.625rem;padding:.875rem;display:flex}.event-modal-payment-row{align-items:center;gap:.75rem;display:flex}.event-modal-payment-amount-label{color:var(--color-brown-dark,#3d2e22);min-width:60px;font-size:.8125rem;font-weight:500}.event-modal-payment-amount-wrap{flex:1;max-width:160px;position:relative}.event-modal-payment-currency{color:var(--color-brown-light,#8a7668);pointer-events:none;font-size:.875rem;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.event-modal-payment-amount{width:100%;padding-left:1.75rem}.event-modal-client-selected-card{background:#f0f7f6;border:1px solid #c9e3df;border-radius:8px;align-items:center;gap:10px;padding:8px 12px;display:flex}.event-modal-client-selected-card .event-modal-client-avatar{background:var(--color-accent-teal,#2a9d8f)}.event-modal-client-selected-card .event-modal-client-name{flex:1;font-weight:500}.event-modal-client-change-btn{color:var(--color-brown-dark,#3d2e22);cursor:pointer;transition:background var(--duration-fast);background:#fff;border:1px solid #38251b26;border-radius:6px;padding:.375rem .625rem;font-family:inherit;font-size:.75rem;font-weight:500}.event-modal-client-change-btn:hover{background:#f8f7f5}.event-modal-client-selected{color:var(--color-accent-teal,#2a9d8f);font-weight:400}.event-modal-client-list{background:#fff;border:1px solid #e8e3de;border-radius:8px;max-height:180px;margin-top:6px;overflow-y:auto}.event-modal-client-option{width:100%;color:var(--color-brown-dark,#3d2e22);cursor:pointer;text-align:left;background:0 0;border:none;border-bottom:1px solid #f5f2ef;align-items:center;gap:10px;padding:8px 12px;font-family:inherit;font-size:.8125rem;transition:background .1s;display:flex}.event-modal-client-option:last-child{border-bottom:none}.event-modal-client-option:hover{background:#f8f7f5}.event-modal-client-option--selected{background:#f0f7f6;font-weight:500}.event-modal-client-option--selected .event-modal-client-avatar{background:var(--color-accent-teal,#2a9d8f)}.event-modal-client-option svg{color:var(--color-accent-teal,#2a9d8f);flex-shrink:0}.event-modal-client-avatar{background:var(--color-brown-dark,#3d2e22);color:#fff;letter-spacing:.02em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:.6875rem;font-weight:600;display:flex}.event-modal-client-name{flex:1}.event-modal-client-status{text-transform:uppercase;letter-spacing:.04em;color:var(--color-brown-light,#8a7668);opacity:.7;margin-left:.375rem;font-size:.625rem;font-weight:600}.event-modal-client-empty{color:var(--color-brown-light,#8a7668);text-align:center;padding:16px 12px;font-size:.8125rem}.event-modal-client-list::-webkit-scrollbar{width:4px}.event-modal-client-list::-webkit-scrollbar-thumb{background:#d4cdc6;border-radius:2px}@media (max-width:768px){.calendar-header{flex-direction:column;align-items:stretch;gap:.75rem;padding:1rem}.calendar-nav{justify-content:center}.calendar-title{text-align:center;min-width:unset;font-size:1.125rem}.calendar-view-toggle{justify-content:center}.calendar-day-cell{min-height:60px;padding:.25rem}.calendar-day-number{width:24px;height:24px;font-size:.75rem}.calendar-event-pill{padding:1px 4px;font-size:.563rem}.calendar-week-container,.calendar-day-container{max-height:450px}.event-modal-overlay{align-items:stretch;padding:0}.event-modal{border-radius:0;max-width:100%;height:100%;max-height:100vh;animation:none}.event-modal-header{background:var(--color-white);z-index:1;padding:.75rem 1rem;position:sticky;top:0}.event-modal-body{flex:1;padding:1rem}.event-modal-row{grid-template-columns:1fr}.event-modal-input,.event-modal-select,.event-modal-textarea{padding:.75rem 1rem;font-size:1rem}.event-modal-client-option{min-height:44px}.event-modal-footer{background:var(--color-white);flex-direction:column;gap:.5rem;padding:.75rem 1rem;position:sticky;bottom:0}.event-modal-footer-left,.event-modal-footer-right{width:100%}.event-modal-footer-right{flex-direction:row}.event-modal-btn{flex:1;min-height:44px;font-size:.875rem}}.event-modal-hint{color:var(--color-brown-light,#8a7668);margin-top:.25rem;font-size:.75rem;font-style:italic;display:block}
