:root{--bg-primary:#f4f5f9;--bg-secondary:#fff;--bg-elevated:#f8f9fc;--bg-hover:#0000000a;--bg-active:#00000014;--border-color:#e5e7eb;--border-light:#f0f1f3;--border-strong:#d1d5db;--text-primary:#111827;--text-secondary:#6b7280;--text-muted:#9ca3af;--accent:#4169e8;--accent-hover:#3558d4;--accent-dim:#4169e81f;--sidebar-bg:#1c2235;--sidebar-hover:#252d45;--sidebar-active:#2a3452;--sidebar-text:#8892aa;--sidebar-text-active:#fff;--appt-blue-bg:#dbeafe;--appt-blue-border:#3b82f6;--appt-blue-text:#1e40af;--appt-yellow-bg:#fef9c3;--appt-yellow-border:#ca8a04;--appt-blocked-bg:#f3f4f6;--cat-retorno:#7c3aed;--cat-prof:#3b82f6;--cat-paciente:#10b981;--cat-espontaneo:#f59e0b;--color-success:#10b981;--color-success-bg:#d1fae5;--color-warning:#f59e0b;--color-warning-bg:#fef3c7;--color-error:#ef4444;--color-error-bg:#fee2e2;--color-info:#3b82f6;--color-info-bg:#dbeafe;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--text-xs:11px;--text-sm:13px;--text-base:14px;--text-md:15px;--text-lg:18px;--text-xl:24px;--text-2xl:30px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--topbar-h:56px;--sidebar-w:220px;--time-gutter-w:64px;--hour-height:72px;--radius-sm:4px;--radius:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--shadow-sm:0 1px 3px #00000012;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 24px #0000001f;--shadow-xl:0 8px 40px #00000026;--t-fast:.12s ease;--t-base:.2s ease;--t-slow:.35s ease;--z-base:0;--z-sticky:10;--z-header:20;--z-sidebar:100;--z-modal-backdrop:40;--z-modal:50;--z-toast:60}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:14px}body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.5}input,button,select,textarea,optgroup{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}img,svg{max-width:100%;display:block}fieldset{border:none;min-width:0;margin:0;padding:0}legend{max-width:100%;padding:0;display:table}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}
.btn{padding:8px var(--space-4);border-radius:var(--radius);font-size:var(--text-sm);white-space:nowrap;transition:background-color var(--t-fast), box-shadow var(--t-fast);cursor:pointer;border:none;justify-content:center;align-items:center;gap:7px;font-weight:500;display:inline-flex}.btn svg{flex-shrink:0;width:15px;height:15px}.btn-primary{background-color:var(--accent);color:#fff}.btn-primary:hover{background-color:var(--accent-hover);box-shadow:0 2px 8px #4169e866}.btn-secondary{background-color:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color)}.btn-secondary:hover{background-color:var(--bg-elevated)}.btn-ghost{color:var(--text-secondary);background-color:#0000}.btn-ghost:hover{background-color:var(--bg-elevated)}.btn-lg{padding:10px var(--space-5);font-size:var(--text-base)}.btn-sm{padding:5px var(--space-3);font-size:var(--text-xs)}.icon-btn{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;transition:background-color var(--t-fast), color var(--t-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background-color:var(--bg-elevated);color:var(--text-primary)}.icon-btn svg{pointer-events:none;width:18px;height:18px}.btn-offer{padding:5px var(--space-4);border-radius:var(--radius);font-size:var(--text-xs);background-color:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border-color);white-space:nowrap;transition:background-color var(--t-fast), color var(--t-fast), border-color var(--t-fast);flex-shrink:0;font-weight:500}.btn-offer:hover{background-color:var(--accent);color:#fff;border-color:var(--accent)}.fab{bottom:var(--space-6);right:var(--space-6);border-radius:var(--radius-full);background-color:var(--accent);color:#fff;width:52px;height:52px;box-shadow:var(--shadow-lg);cursor:pointer;z-index:var(--z-sticky);transition:background-color var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);border:none;justify-content:center;align-items:center;display:flex;position:fixed}.fab:hover{background-color:var(--accent-hover);box-shadow:var(--shadow-xl);transform:scale(1.05)}.fab svg{pointer-events:none;width:22px;height:22px}.avatar,.user-avatar{border-radius:var(--radius-full);width:36px;height:36px;font-size:var(--text-xs);color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;letter-spacing:.03em;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.avatar-lg{width:40px;height:40px;font-size:var(--text-base)}.avatar-am{background-color:#f97316}.avatar-rs{background-color:#8b5cf6}.avatar-bp{background-color:#ec4899}.avatar-gc{background-color:var(--color-success)}.avatar-lm{background-color:var(--color-info)}.avatar:not([class*=avatar-]),.user-avatar{background-color:var(--accent)}.badge{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);letter-spacing:.02em;font-weight:600;display:inline-flex}.badge-success{background-color:var(--color-success-bg);color:var(--color-success)}.badge-warning{background-color:var(--color-warning-bg);color:#92400e}.badge-danger{background-color:var(--color-error-bg);color:var(--color-error)}.badge-info{background-color:var(--color-info-bg);color:var(--color-info)}.badge-gray{color:var(--text-secondary);background-color:#f3f4f6}.badge-purple{color:#6d28d9;background-color:#ede9fe}.badge-blue{background-color:var(--color-info-bg);color:var(--color-info)}.badge-green{background-color:var(--color-success-bg);color:var(--color-success)}.badge-yellow{background-color:var(--color-warning-bg);color:#92400e}.badge-red{background-color:var(--color-error-bg);color:var(--color-error)}.badge-neutral{color:var(--text-secondary);background-color:#f3f4f6}.badge-dot:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px;display:inline-block}.wl-badge{font-size:var(--text-xs);border-radius:var(--radius-full);padding:2px 10px;font-weight:600}.wl-badge.retorno{color:var(--cat-retorno);background-color:#ede9fe}.wl-badge.prof{background-color:var(--color-info-bg);color:var(--cat-prof)}.wl-badge.paciente{background-color:var(--color-success-bg);color:var(--cat-paciente)}.wl-badge.espontaneo{background-color:var(--color-warning-bg);color:#92400e}.toggle-wrapper{align-items:center;gap:var(--space-3);display:flex}.toggle{flex-shrink:0;width:44px;height:24px;position:relative}.toggle input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{background-color:var(--border-strong);border-radius:var(--radius-full);transition:background-color var(--t-base);cursor:pointer;position:absolute;inset:0}.toggle-slider:before{content:"";width:18px;height:18px;transition:transform var(--t-base);box-shadow:var(--shadow-sm);background-color:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.toggle input:checked+.toggle-slider{background-color:var(--accent)}.toggle input:checked+.toggle-slider:before{transform:translate(20px)}.form-group{flex-direction:column;gap:6px;display:flex}.form-group+.form-group{margin-top:18px}.form-grid-2 .form-group,.form-grid-3 .form-group,.form-grid-4 .form-group{margin-top:0}.form-label{font-size:var(--text-sm);color:var(--text-primary);font-weight:500}.form-label .required{color:var(--color-error);margin-left:2px}.form-hint{font-size:var(--text-xs);color:var(--text-muted);line-height:1.4}.form-input,.form-select,.form-textarea,.input{width:100%;height:40px;padding:0 var(--space-3);background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-primary);font-size:var(--text-sm);transition:border-color var(--t-fast), box-shadow var(--t-fast);outline:none}.form-input:hover,.form-select:hover,.input:hover{border-color:var(--border-strong)}.form-input:focus,.form-select:focus,.form-textarea:focus,.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4169e81f}.form-input::placeholder,.input::placeholder{color:var(--text-muted)}.form-select,select.input{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:36px}.form-textarea{height:auto;min-height:80px;padding:var(--space-2) var(--space-3);resize:vertical}.input-icon-wrap{align-items:center;display:flex;position:relative}.input-icon-wrap svg{width:16px;height:16px;color:var(--text-muted);pointer-events:none;position:absolute;left:10px}.input-icon-wrap .input{padding-left:34px}.input-with-prefix{border:1px solid var(--border-color);border-radius:var(--radius);background-color:var(--bg-secondary);transition:border-color var(--t-fast), box-shadow var(--t-fast);align-items:center;display:flex;overflow:hidden}.input-with-prefix:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #4169e81f}.input-prefix{color:var(--text-muted);font-size:var(--text-sm);border-right:1px solid var(--border-color);background-color:var(--bg-elevated);flex-shrink:0;align-items:center;height:40px;padding:0 10px;display:flex}.input-with-prefix .input{box-shadow:none;border:none;flex:1}.input-with-prefix .input:focus{box-shadow:none}.time-input-wrap{border:1px solid var(--border-color);border-radius:var(--radius);background-color:var(--bg-secondary);height:40px;padding:0 var(--space-3);align-items:center;gap:var(--space-2);transition:border-color var(--t-fast);display:flex}.time-input-wrap:focus-within{border-color:var(--accent)}.time-input-wrap svg{width:15px;height:15px;color:var(--text-muted);flex-shrink:0}.time-input-wrap input{font-size:var(--text-sm);color:var(--text-primary);background:0 0;border:none;outline:none;width:60px}.time-range-row{align-items:center;gap:10px;display:flex}.time-range-sep{font-size:var(--text-sm);color:var(--text-secondary);white-space:nowrap}.date-range-wrap{border:1px solid var(--border-color);border-radius:var(--radius);background-color:var(--bg-secondary);height:40px;transition:border-color var(--t-fast);align-items:center;display:flex;overflow:hidden}.date-range-wrap:focus-within{border-color:var(--accent)}.date-range-wrap input[type=date]{font-size:var(--text-sm);color:var(--text-primary);background:0 0;border:none;outline:none;height:100%;padding:0 10px}.date-range-sep{color:var(--text-muted);font-size:var(--text-sm);padding:0 2px}.date-range-icon{border-left:1px solid var(--border-color);height:100%;color:var(--text-muted);align-items:center;padding:0 10px;display:flex}.date-range-icon svg{width:16px;height:16px}.checkbox-group{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.checkbox-item{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;display:flex}.checkbox-item input[type=checkbox]{border:1.5px solid var(--border-strong);width:16px;height:16px;accent-color:var(--accent);cursor:pointer;border-radius:3px}.checkbox-item span{font-size:var(--text-sm);color:var(--text-primary)}.section-title,.section-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding-bottom:var(--space-2);border-bottom:1px solid var(--border-color);margin-bottom:var(--space-4);width:100%;font-weight:700;display:block}.card{background-color:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);padding:var(--space-6)}.card+.card{margin-top:var(--space-5)}.toolbar{margin-bottom:var(--space-5);justify-content:space-between;align-items:center;display:flex}.toolbar-left{align-items:center;gap:var(--space-2);display:flex}.toolbar-actions{align-items:center;gap:6px;display:flex}.result-count{font-size:var(--text-lg);color:var(--text-primary);align-items:center;gap:10px;font-weight:700;display:flex}.result-count:before{content:"";background-color:var(--accent);border-radius:2px;width:4px;height:22px;display:inline-block}.filter-bar{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);align-items:flex-end;gap:var(--space-4);margin-bottom:28px;display:flex}.filter-field{flex-direction:column;flex:1;gap:6px;display:flex}.filter-label{font-size:var(--text-xs);color:var(--text-muted);letter-spacing:.07em;text-transform:uppercase;font-weight:700}.table-wrap{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden}.data-table{border-collapse:collapse;width:100%}.data-table thead tr{background-color:var(--bg-elevated);border-bottom:1px solid var(--border-color)}.data-table th{padding:11px var(--space-4);font-size:var(--text-xs);color:var(--text-muted);letter-spacing:.07em;text-transform:uppercase;text-align:left;white-space:nowrap;font-weight:700}.data-table th.align-right,.data-table td.align-right{text-align:right}.data-table tbody tr{border-bottom:1px solid var(--border-color);transition:background-color var(--t-fast)}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody tr:hover{background-color:var(--bg-elevated)}.data-table td{padding:14px var(--space-4);font-size:var(--text-sm);color:var(--text-primary);vertical-align:middle}.patient-cell{align-items:center;gap:var(--space-3);display:flex}.patient-cell-info .name{font-weight:600;font-size:var(--text-sm)}.patient-cell-info .id-text{font-size:var(--text-xs);color:var(--text-muted)}.date-cell .date{font-weight:500}.date-cell .time{font-size:var(--text-xs);color:var(--text-muted)}.col-value{font-size:var(--text-base);color:var(--text-primary);font-weight:700}.table-footer{padding:var(--space-3) var(--space-4);background-color:var(--bg-elevated);border-top:1px solid var(--border-color);font-size:var(--text-xs);color:var(--text-muted)}.waitlist-grid{gap:var(--space-5);grid-template-columns:1fr 1fr;display:grid}.waitlist-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden}.waitlist-card-header{height:5px}.waitlist-card-header.retorno{background-color:var(--cat-retorno)}.waitlist-card-header.prof{background-color:var(--cat-prof)}.waitlist-card-header.paciente{background-color:var(--cat-paciente)}.waitlist-card-header.espontaneo{background-color:var(--cat-espontaneo)}.waitlist-card-title-row{padding:var(--space-4) var(--space-5) 14px;border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.waitlist-card-title{font-size:var(--text-md);color:var(--text-primary);align-items:center;gap:10px;font-weight:600;display:flex}.waitlist-card-title svg{width:20px;height:20px}.waitlist-patients{flex-direction:column;display:flex}.patient-row{padding:14px var(--space-5);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:var(--space-3);transition:background-color var(--t-fast);display:flex}.patient-row:last-child{border-bottom:none}.patient-row:hover{background-color:var(--bg-elevated)}.patient-info{flex:1;min-width:0}.patient-name{font-size:var(--text-sm);color:var(--text-primary);margin-bottom:2px;font-weight:600}.patient-meta{font-size:var(--text-xs);color:var(--text-muted);line-height:1.6}.empty-state{padding:40px var(--space-5);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.empty-state svg{width:40px;height:40px;color:var(--text-muted)}.empty-state-text{font-size:var(--text-sm);color:var(--text-muted);text-align:center}.text-muted{color:var(--text-muted)}.text-sm{font-size:var(--text-sm)}.font-medium{font-weight:500}.font-bold{font-weight:700}.flex{display:flex}.items-center{align-items:center}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.w-full{width:100%}.justify-end{justify-content:flex-end}
.app,.app-layout{min-height:100vh;display:flex}.app-body,.app-content,.main-content{margin-left:var(--sidebar-w);flex-direction:column;flex:1;min-width:0;min-height:100vh;display:flex;overflow:hidden}.page-container{padding:var(--space-8) 36px;flex:1;overflow-y:auto}.page-header{margin-bottom:28px}.page-title{font-size:var(--text-2xl);color:var(--text-primary);letter-spacing:-.02em;font-weight:700}.page-subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin-top:var(--space-1)}
.sidebar{width:var(--sidebar-w);background-color:var(--sidebar-bg);padding:var(--space-6) 0;z-index:var(--z-sidebar);flex-direction:column;flex-shrink:0;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.sidebar-logo{padding:0 var(--space-5) 28px;align-items:center;gap:10px;display:flex}.sidebar-logo-icon{background-color:var(--accent);border-radius:var(--radius-sm);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.sidebar-logo-text{color:#fff;font-size:var(--text-md);letter-spacing:-.01em;font-weight:600}.sidebar-nav{padding:0 var(--space-2);flex-direction:column;flex:1;gap:2px;display:flex}.nav-item{padding:10px var(--space-3);border-radius:var(--radius);color:var(--sidebar-text);font-size:var(--text-sm);transition:background-color var(--t-fast), color var(--t-fast);border:none;outline:none;align-items:center;gap:10px;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background-color:var(--sidebar-hover);color:#fff}.nav-item.active{background-color:var(--sidebar-active);color:var(--sidebar-text-active)}.nav-item svg{opacity:.75;flex-shrink:0;width:18px;height:18px}.nav-item.active svg,.nav-item:hover svg{opacity:1}.mini-cal{-webkit-user-select:none;user-select:none;padding:var(--space-4) var(--space-3) 0}.mini-cal-header{margin-bottom:var(--space-2);padding:0 var(--space-1);justify-content:space-between;align-items:center;display:flex}.mini-cal-title{font-size:var(--text-sm);color:#fffc;font-weight:500}.mini-cal-nav{align-items:center;display:flex}.mini-cal-nav .icon-btn{width:28px;height:28px;color:var(--sidebar-text)}.mini-cal-nav .icon-btn svg{width:16px;height:16px}.mini-cal-nav .icon-btn:hover{background-color:var(--sidebar-hover);color:#fff}.mini-cal-grid{grid-template-columns:repeat(7,1fr);gap:1px 0;display:grid}.mini-cal-day-name{font-size:var(--text-xs);color:var(--sidebar-text);text-align:center;padding:var(--space-1) 0;font-weight:500;text-decoration:none}.mini-cal-day{border-radius:var(--radius-full);width:28px;height:28px;font-size:var(--text-xs);color:var(--sidebar-text);cursor:pointer;transition:background-color var(--t-fast), color var(--t-fast);background:0 0;border:none;justify-content:center;align-items:center;margin:1px auto;display:flex}.mini-cal-day:hover{background-color:var(--sidebar-hover);color:#fff}.mini-cal-day.in-view-week{color:#ffffffd9;background-color:#4169e833;border-radius:0;width:100%;margin:1px 0}.mini-cal-day.week-start{border-radius:var(--radius-full) 0 0 var(--radius-full)}.mini-cal-day.week-end{border-radius:0 var(--radius-full) var(--radius-full) 0}.mini-cal-day.today{font-weight:600;background-color:var(--accent)!important;color:#fff!important;border-radius:var(--radius-full)!important;width:28px!important;margin:1px auto!important}.mini-cal-day.other-month{color:#8892aa73}
.topbar{height:var(--topbar-h);padding:0 var(--space-6);background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);z-index:var(--z-header);align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.topbar-left{align-items:center;gap:var(--space-1);flex-shrink:0;display:flex}.topbar-title,.topbar-date{font-size:var(--text-base);color:var(--text-primary);white-space:nowrap;margin:0 var(--space-2);-webkit-user-select:none;user-select:none;font-weight:600}.topbar-nav,.topbar-nav-arrows{align-items:center;gap:var(--space-1);display:flex}.topbar-spacer{flex:1}.topbar-right,.topbar-actions{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.topbar-divider{background-color:var(--border-color);width:1px;height:20px;margin:0 var(--space-1)}.topbar-today-btn,.btn-outlined{height:32px;padding:0 var(--space-4);border-radius:var(--radius);border:1px solid var(--border-color);color:var(--text-primary);font-size:var(--text-sm);background:var(--bg-secondary);cursor:pointer;transition:background-color var(--t-fast);align-items:center;font-weight:500;display:inline-flex}.topbar-today-btn:hover,.btn-outlined:hover{background-color:var(--bg-elevated)}.view-toggle{border:1px solid var(--border-color);border-radius:var(--radius);display:flex;overflow:hidden}.view-toggle-btn{padding:5px var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);background:var(--bg-secondary);border-right:1px solid var(--border-color);transition:background-color var(--t-fast), color var(--t-fast)}.view-toggle-btn:last-child{border-right:none}.view-toggle-btn:hover{background-color:var(--bg-elevated)}.view-toggle-btn.active{background-color:var(--bg-elevated);color:var(--text-primary);font-weight:500}.dropdown-btn{align-items:center;gap:var(--space-1);padding:0 var(--space-3);border-radius:var(--radius);border:1px solid var(--border-color);height:32px;color:var(--text-primary);font-size:var(--text-sm);background:var(--bg-secondary);cursor:pointer;transition:background-color var(--t-fast);display:inline-flex}.dropdown-btn:hover{background-color:var(--bg-elevated)}.dropdown-btn svg{width:16px;height:16px;color:var(--text-secondary);pointer-events:none}
.calendar-main,.calendar-wrapper{background-color:var(--bg-secondary);flex-direction:column;flex:1;display:flex;overflow:hidden}.calendar-day-header,.calendar-header{grid-template-columns:var(--time-gutter-w) repeat(7, 1fr);border-bottom:1px solid var(--border-color);background-color:var(--bg-secondary);z-index:var(--z-sticky);flex-shrink:0;display:grid;position:sticky;top:0}.cal-header-gutter,.cal-header-empty{border-right:1px solid var(--border-color)}.cal-header-day,.cal-day-header{padding:10px 0 var(--space-3);border-right:1px solid var(--border-color);cursor:pointer;transition:background-color var(--t-fast);flex-direction:column;align-items:center;display:flex}.cal-header-day:last-child,.cal-day-header:last-child{border-right:none}.cal-header-day:hover,.cal-day-header:hover{background-color:var(--bg-elevated)}.cal-day-name{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-1);font-weight:600}.cal-day-num,.cal-day-number{color:var(--text-primary);border-radius:var(--radius-full);width:30px;height:30px;transition:background-color var(--t-fast), color var(--t-fast);justify-content:center;align-items:center;margin:0 auto;font-size:15px;font-weight:600;display:flex}.cal-header-day:hover .cal-day-num{background-color:var(--bg-active)}.cal-header-day.today .cal-day-name,.cal-day-header.today .cal-day-name{color:var(--accent)}.cal-header-day.today .cal-day-num,.cal-day-header.today .cal-day-number{background-color:var(--sidebar-bg);color:#fff;font-weight:600}.calendar-body-scroll{scrollbar-width:thin;scrollbar-color:var(--border-color) transparent;flex:1;overflow:hidden auto}.calendar-body-scroll::-webkit-scrollbar{width:6px}.calendar-body-scroll::-webkit-scrollbar-thumb{background-color:var(--border-strong);border-radius:3px}.calendar-body-scroll::-webkit-scrollbar-track{background:0 0}.calendar-body{grid-template-columns:var(--time-gutter-w) repeat(7, 1fr);height:calc(17 * var(--hour-height));background-color:var(--bg-secondary);flex:1;display:grid;position:relative;overflow-y:auto}.time-gutter{width:var(--time-gutter-w);border-right:1px solid var(--border-color);background-color:var(--bg-secondary);z-index:5;flex-direction:column;flex-shrink:0;display:flex;position:sticky;left:0}.time-slot,.time-label{height:var(--hour-height);border-right:1px solid var(--border-color);flex-shrink:0;justify-content:flex-end;align-items:flex-start;padding:6px 10px 0 0;display:flex}.time-slot span,.time-label{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;position:relative;top:0}.cal-day-columns{flex:1;grid-template-columns:repeat(7,1fr);display:grid;position:relative}.day-column,.cal-col{border-right:1px solid var(--border-color);height:100%;position:relative}.day-column:last-child,.cal-col:last-child{border-right:none}.day-column:before{content:"";background-image:repeating-linear-gradient(to bottom, transparent 0px, transparent calc(var(--hour-height) - 1px), var(--border-color) calc(var(--hour-height) - 1px), var(--border-color) var(--hour-height));pointer-events:none;z-index:0;position:absolute;inset:0}.day-column:after{content:"";background-image:repeating-linear-gradient(to bottom, transparent 0px, transparent calc(var(--hour-height) / 2 - 1px), var(--border-light) calc(var(--hour-height) / 2 - 1px), var(--border-light) calc(var(--hour-height) / 2), transparent calc(var(--hour-height) / 2), transparent var(--hour-height));pointer-events:none;z-index:0;position:absolute;inset:0}.hour-lines{pointer-events:none;position:absolute;inset:0}.hour-line{background:var(--border-color);height:1px;position:absolute;left:0;right:0}.appt,.cal-event{border-radius:var(--radius-sm);padding:6px var(--space-2);cursor:pointer;z-index:3;transition:filter var(--t-fast), box-shadow var(--t-fast);text-align:left;background:0 0;border:none;position:absolute;left:4px;right:4px;overflow:hidden}.appt:hover,.cal-event:hover{filter:brightness(.96);box-shadow:var(--shadow-md);z-index:4}.appt-blue,.cal-event-blue{background-color:var(--appt-blue-bg);border-left:3px solid var(--appt-blue-border);color:var(--appt-blue-text)}.cal-event-green{background-color:var(--color-success-bg);border-left:3px solid var(--color-success);color:#065f46}.cal-event-yellow{background-color:var(--appt-yellow-bg);border-left:3px solid var(--appt-yellow-border);color:#78350f}.appt-title,.cal-event-title{font-size:var(--text-xs);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;justify-content:space-between;align-items:center;gap:var(--space-1);font-weight:700;line-height:1.3;display:flex;overflow:hidden}.appt-time,.cal-event-time{font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;overflow:hidden}.cal-event-icon{width:12px;height:12px;color:var(--text-muted);flex-shrink:0}.cal-blocked{background-color:var(--appt-blocked-bg);justify-content:center;align-items:center;gap:var(--space-1);z-index:2;flex-direction:column;display:flex;position:absolute;left:0;right:0}.cal-blocked svg{width:18px;height:18px;color:var(--text-muted)}.cal-blocked-label{letter-spacing:.07em;color:var(--text-muted);text-transform:uppercase;font-size:9px;font-weight:700}.cal-lunch{justify-content:center;align-items:center;gap:var(--space-2);z-index:4;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);background:#f8f9fceb;display:flex;position:absolute;left:0;right:0}.cal-lunch-text{font-size:var(--text-xs);letter-spacing:.1em;color:var(--text-muted);text-transform:uppercase;font-weight:700}.now-indicator,.current-time{pointer-events:none;z-index:6;position:absolute;left:0;right:0}.now-indicator-line,.current-time-line{background-color:var(--color-error);height:1px;position:relative}.now-indicator-line:before,.current-time-dot{content:"";background-color:var(--color-error);border-radius:50%;width:8px;height:8px;position:absolute;top:-4px;left:-4px}
.modal-overlay{z-index:var(--z-modal-backdrop);padding:var(--space-4);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-overlay.hidden{display:none}.modal{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);width:100%;max-width:740px;max-height:90vh;box-shadow:var(--shadow-lg);z-index:var(--z-modal);flex-direction:column;display:flex;overflow:hidden}.modal-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:flex-start;display:flex}.modal-header-text{flex-direction:column;gap:2px;display:flex}.modal-title{font-size:var(--text-md);color:var(--text-primary);font-weight:600}.modal-subtitle{font-size:var(--text-sm);color:var(--text-secondary)}.modal-close{border-radius:var(--radius);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:background-color var(--t-fast), color var(--t-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin-top:-2px;display:flex}.modal-close:hover{background-color:var(--bg-elevated);color:var(--text-primary)}.modal-close svg{pointer-events:none;width:18px;height:18px}.modal-body{padding:var(--space-6);scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex:1;overflow-y:auto}.modal-body::-webkit-scrollbar{width:5px}.modal-body::-webkit-scrollbar-thumb{background-color:var(--border-strong);border-radius:3px}.form-section{margin-bottom:var(--space-6)}.form-section:last-child{margin-bottom:0}.form-grid{gap:var(--space-4);display:grid}.form-grid-2{grid-template-columns:1fr 1fr}.form-grid-3{grid-template-columns:1fr 1fr 1fr}.form-row{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.col-span-2{grid-column:span 2}.col-span-3{grid-column:span 3}@media (max-width:600px){.form-grid-2,.form-grid-3,.form-row{grid-template-columns:1fr}.col-span-2,.col-span-3{grid-column:span 1}}.status-indicator{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background-color:var(--bg-elevated);border-radius:var(--radius);border:1px solid var(--border-color);height:40px;display:flex}.status-indicator-text{font-size:var(--text-sm);color:var(--text-secondary)}.status-indicator-value{font-size:var(--text-sm);color:var(--text-primary);font-weight:500}.custom-fields-toggle{align-items:center;gap:var(--space-2);color:var(--accent);font-size:var(--text-sm);cursor:pointer;padding:var(--space-1) 0;transition:opacity var(--t-fast);background:0 0;border:none;font-weight:500;display:inline-flex}.custom-fields-toggle:hover{opacity:.75}.custom-fields-toggle svg{width:16px;height:16px;transition:transform var(--t-base);pointer-events:none}.custom-fields-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.custom-fields-body{margin-top:var(--space-4);padding:var(--space-4);background-color:var(--bg-elevated);border-radius:var(--radius);border:1px solid var(--border-color);display:none}.custom-fields-body.open{display:block}.custom-fields-placeholder{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.info-box{background-color:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--text-secondary);line-height:1.6}.modal-footer{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-color);flex-shrink:0;display:flex}
html,body{height:100%}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}.scrollable-page{flex:1;min-height:0;overflow:hidden auto}
