@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--brand-purple:#5b1f6a;--brand-purple-mid:#7b2f8a;--brand-purple-bg:#f5eef8;--brand-blue:#29abe2;--brand-blue-bg:#ebf7fd;--brand-gold:#f7941d;--brand-gold-bg:#fef3e7;--brand-green:#8dc63f;--brand-green-bg:#f2f9e8;--brand-green-dark:#5e8a29;--sidebar-bg:#1a0a1e;--sidebar-width:248px;--sidebar-collapsed:64px;--app-bg:#f4f6f8;--surface:#fff;--surface-2:#f9fafb;--text-primary:#111827;--text-secondary:#374151;--text-muted:#6b7280;--text-subtle:#9ca3af;--text-on-dark:#f9fafb;--border:#e5e7eb;--border-light:#f3f4f6;--border-strong:#d1d5db;--success-bg:#ecfdf5;--success-text:#065f46;--success-dot:#10b981;--warning-bg:#fffbeb;--warning-text:#92400e;--warning-dot:#f59e0b;--info-bg:#eff6ff;--info-text:#1d4ed8;--info-dot:#3b82f6;--purple-bg:var(--brand-purple-bg);--purple-text:var(--brand-purple);--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #00000012, 0 1px 2px -1px #0000000d;--shadow-md:0 4px 6px -1px #0000000f, 0 2px 4px -2px #0000000a;--shadow-lg:0 10px 15px -3px #00000012, 0 4px 6px -4px #0000000a;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--ease:cubic-bezier(.4, 0, .2, 1);--duration:.15s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--app-bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;line-height:1.5}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);z-index:200;min-height:100vh;transition:width var(--duration) var(--ease);background:linear-gradient(#1a0a1e 0%,#291035 100%);border-right:1px solid #ffffff0a;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden auto}.sidebar.collapsed{width:var(--sidebar-collapsed)}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-track{background:0 0}.sidebar::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.sidebar-logo{border-bottom:1px solid #ffffff0f;flex-shrink:0;justify-content:center;align-items:center;min-height:80px;padding:20px 16px;display:flex}.sidebar-logo img{object-fit:contain;border-radius:var(--radius-md);width:auto;max-height:52px;transition:all var(--duration) var(--ease);background:#fff;padding:6px 10px;display:block}.sidebar.collapsed .sidebar-logo img{max-height:36px;padding:4px}.sidebar-nav{flex:1;padding:12px 8px;overflow-y:auto}.nav-section{margin-bottom:4px}.nav-section+.nav-section{border-top:1px solid #ffffff0d;margin-top:16px;padding-top:16px}.nav-section-label{text-transform:uppercase;letter-spacing:.12em;color:#ffffff4d;white-space:nowrap;transition:opacity var(--duration) var(--ease);padding:0 12px 8px;font-size:10px;font-weight:600;display:block;overflow:hidden}.sidebar.collapsed .nav-section-label{opacity:0}.nav-item{border-radius:var(--radius-md);color:#fff9;transition:all var(--duration) var(--ease);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:12px;width:100%;margin-bottom:2px;padding:9px 12px;font-size:13.5px;font-weight:500;text-decoration:none;display:flex;position:relative;overflow:hidden}.nav-item svg{transition:color var(--duration) var(--ease);flex-shrink:0}.nav-item:hover{color:#fff;background:#ffffff14}.sidebar-footer{border-top:1px solid #ffffff0f;flex-shrink:0;padding:12px 8px}.sidebar-user{border-radius:var(--radius-md);transition:background var(--duration) var(--ease);cursor:pointer;align-items:center;gap:10px;padding:8px 12px;display:flex}.sidebar-user:hover{background:#ffffff0f}.sidebar-user-info{flex:1;overflow:hidden}.sidebar-user-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.sidebar-user-role{color:#fff6;text-transform:capitalize;font-size:11px}.sidebar.collapsed .sidebar-user-info,.sidebar.collapsed .nav-item span{display:none}.main-content{margin-left:var(--sidebar-width);min-height:100vh;transition:margin-left var(--duration) var(--ease);flex-direction:column;flex:1;display:flex}.main-content.sidebar-collapsed{margin-left:var(--sidebar-collapsed)}.header{background:var(--surface);border-bottom:1px solid var(--border);z-index:100;justify-content:space-between;align-items:center;height:60px;padding:0 32px;display:flex;position:sticky;top:0}.header-breadcrumb{color:var(--text-muted);align-items:center;gap:6px;font-size:13px;display:flex}.header-breadcrumb strong{color:var(--text-primary);font-weight:600}.header-actions{align-items:center;gap:12px;display:flex}.btn-icon{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text-muted);cursor:pointer;transition:all var(--duration) var(--ease);justify-content:center;align-items:center;display:flex}.btn-icon:hover{background:var(--surface-2);border-color:var(--border-strong);color:var(--text-secondary)}.avatar{background:linear-gradient(135deg, var(--brand-purple), var(--brand-purple-mid));color:#fff;cursor:pointer;letter-spacing:.02em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:flex}.page-content{flex:1;padding:32px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.page-header-left h1{color:var(--text-primary);letter-spacing:-.025em;margin-bottom:4px;font-size:22px;font-weight:700;line-height:1.2}.page-header-left p{color:var(--text-muted);font-size:14px;font-weight:400}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration) var(--ease);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:7px;padding:8px 16px;font-family:inherit;font-size:13.5px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.btn:focus-visible{outline:2px solid var(--brand-purple);outline-offset:2px}.btn-primary{background:linear-gradient(135deg, var(--brand-purple), var(--brand-blue));color:#fff;border:none;box-shadow:0 4px 10px #5b1f6a40}.btn-primary:hover{background:linear-gradient(135deg, var(--brand-purple-mid), #1a8cff);transform:translateY(-1px);box-shadow:0 6px 14px #29abe259}.btn-secondary{background:var(--surface);color:var(--text-secondary);border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.btn-secondary:hover{background:var(--surface-2);color:var(--text-primary)}.btn-danger{background:var(--surface);color:#b91c1c;border-color:#fecaca}.btn-danger:hover{background:#fef2f2;border-color:#fca5a5}.btn-sm{padding:6px 12px;font-size:12.5px}.btn-xs{padding:4px 10px;font-size:12px}.btn:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:28px;display:grid}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--duration) var(--ease);flex-direction:column;gap:12px;padding:24px;display:flex;position:relative;overflow:hidden}.kpi-card.vibrant-purple{background:linear-gradient(135deg, var(--brand-purple), var(--brand-purple-mid));color:#fff;border:none}.kpi-card.vibrant-blue{background:linear-gradient(135deg, var(--brand-blue), #1a8cff);color:#fff;border:none}.kpi-card.vibrant-gold{background:linear-gradient(135deg, var(--brand-gold), #e67a00);color:#fff;border:none}.kpi-card.vibrant-green{background:linear-gradient(135deg, var(--brand-green), var(--brand-green-dark));color:#fff;border:none}.kpi-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.kpi-card.vibrant-purple:hover{box-shadow:0 10px 20px #5b1f6a4d}.kpi-card.vibrant-blue:hover{box-shadow:0 10px 20px #29abe24d}.kpi-card.vibrant-gold:hover{box-shadow:0 10px 20px #f7941d4d}.kpi-card.vibrant-green:hover{box-shadow:0 10px 20px #8dc63f4d}.kpi-header{z-index:2;justify-content:space-between;align-items:center;display:flex;position:relative}.kpi-icon{border-radius:var(--radius-md);color:#fff;background:#fff3;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.kpi-label{opacity:.9;text-transform:uppercase;letter-spacing:.05em;z-index:2;font-size:13px;font-weight:600;position:relative}.kpi-value{letter-spacing:-.02em;z-index:2;font-size:36px;font-weight:800;line-height:1;position:relative}.kpi-change{z-index:2;background:#fff3;border-radius:20px;align-items:center;gap:4px;width:fit-content;padding:4px 10px;font-size:13px;font-weight:600;display:inline-flex;position:relative}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);overflow:hidden}.card-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:12px;padding:18px 24px;display:flex}.card-title{color:var(--text-primary);font-size:15px;font-weight:700}.card-subtitle{color:var(--text-muted);margin-top:2px;font-size:13px}.card-body{padding:24px}.card-footer{background:var(--surface-2);border-top:1px solid var(--border-light);justify-content:flex-end;align-items:center;gap:10px;padding:14px 24px;display:flex}.charts-grid{grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:28px;display:grid}.table-container{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13.5px}thead{background:var(--surface-2)}th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border);white-space:nowrap;padding:11px 20px;font-size:11px;font-weight:700}td{border-bottom:1px solid var(--border-light);color:var(--text-secondary);vertical-align:middle;padding:14px 20px}td strong{color:var(--text-primary);font-weight:600}tbody tr{transition:background var(--duration) var(--ease)}tbody tr:hover{background:var(--surface-2)}tbody tr:last-child td{border-bottom:none}.badge{letter-spacing:.01em;white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.badge:before{content:"";opacity:.75;background:currentColor;border-radius:50%;width:6px;height:6px}.badge-annulee{color:#dc2626;background:#fef2f2;border:1px solid #fecaca}.badge-reportee{color:#d97706;background:#fef3e7;border:1px solid #fde68a}.badge-effectuee{background:var(--brand-green-bg);color:var(--brand-green-dark)}.badge-planifiee{background:var(--brand-blue-bg);color:#006ca5}.badge-complete{background:var(--brand-green-bg);color:var(--brand-green-dark)}.badge-brouillon{background:var(--brand-gold-bg);color:#9a5b00}.badge-suivi_planifie{background:var(--brand-blue-bg);color:#006ca5}.badge-suivi_effectue{color:#047857;background:#ecfdf5}.form-group{margin-bottom:18px}.form-grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}label,.form-label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.form-label.required:after{content:" *";color:#b91c1c}.form-control{border:1px solid var(--border-strong);border-radius:var(--radius-md);width:100%;color:var(--text-primary);background:var(--surface);transition:all var(--duration) var(--ease);padding:9px 12px;font-family:inherit;font-size:13.5px;line-height:1.5}.form-control::placeholder{color:var(--text-subtle)}.form-control:hover{border-color:#9ca3af}.form-control:focus{border-color:var(--brand-purple);outline:none;box-shadow:0 0 0 3px #5b1f6a1a}select.form-control{cursor:pointer}textarea.form-control{resize:vertical;min-height:90px}.input-with-icon{position:relative}.input-with-icon .input-icon{color:var(--text-subtle);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-with-icon .form-control{padding-left:38px}.search-bar{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);height:36px;transition:all var(--duration) var(--ease);align-items:center;gap:8px;padding:0 12px;display:flex}.search-bar:focus-within{border-color:var(--brand-purple);box-shadow:0 0 0 3px #5b1f6a1a}.search-bar input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;min-width:160px;font-family:inherit;font-size:13.5px}.search-bar input::placeholder{color:var(--text-subtle)}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1000;animation:fadeIn .12s var(--ease);background:#11182780;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:var(--radius-xl);border:1px solid var(--border);width:100%;max-width:680px;max-height:90vh;animation:slideUp .18s var(--ease);overflow-y:auto;box-shadow:0 20px 40px -8px #0000002e,0 4px 16px -4px #0000001a}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:20px 28px;display:flex}.modal-title{color:var(--text-primary);font-size:17px;font-weight:700}.modal-body{padding:24px 28px}.modal-footer{border-top:1px solid var(--border-light);background:var(--surface-2);justify-content:flex-end;gap:10px;padding:16px 28px;display:flex}.login-page{background:var(--sidebar-bg);align-items:stretch;min-height:100vh;display:flex}.login-branding{flex-direction:column;flex:1;justify-content:center;align-items:center;padding:60px;display:flex;position:relative;overflow:hidden}.login-branding:before{content:"";pointer-events:none;background:radial-gradient(circle,#d4a0171f 0%,#0000 70%);border-radius:50%;width:60%;height:60%;position:absolute;top:-20%;left:-10%}.login-branding:after{content:"";pointer-events:none;background:radial-gradient(circle,#5b1f6a66 0%,#0000 70%);border-radius:50%;width:50%;height:50%;position:absolute;bottom:-15%;right:-10%}.login-brand-logo{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:#fff;margin-bottom:32px;padding:16px 24px}.login-brand-logo img{width:auto;height:60px;display:block}.login-brand-title{color:#fff;text-align:center;letter-spacing:-.03em;margin-bottom:12px;font-size:28px;font-weight:800;line-height:1.2}.login-brand-subtitle{color:#ffffff80;text-align:center;max-width:320px;font-size:15px;line-height:1.6}.login-form-panel{background:var(--surface);flex-direction:column;justify-content:center;align-items:center;width:460px;padding:60px 48px;display:flex}.login-form-title{color:var(--text-primary);letter-spacing:-.02em;margin-bottom:6px;font-size:22px;font-weight:700}.login-form-sub{color:var(--text-muted);margin-bottom:32px;font-size:14px}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:440px;box-shadow:var(--shadow-lg);padding:36px 40px}.calendar-toolbar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:12px 18px;display:flex}.calendar-nav{align-items:center;gap:8px;display:flex}.calendar-nav-btn{border-color:var(--border);transition:all var(--duration) var(--ease)}.calendar-nav-btn:hover{background:var(--brand-blue-bg);border-color:var(--brand-blue);color:var(--brand-blue)}.calendar-month-label{color:var(--text-primary);letter-spacing:-.02em;justify-content:center;align-items:center;gap:8px;min-width:200px;font-size:17px;font-weight:700;display:flex}.calendar-filters{align-items:center;gap:10px;display:flex}.calendar-layout{grid-template-columns:1fr 340px;align-items:start;gap:20px;display:grid}.calendar-container{overflow:hidden}.calendar-grid{grid-template-columns:repeat(7,1fr);display:grid}.calendar-weekdays{border-bottom:1px solid var(--border);background:var(--surface-2)}.calendar-weekday{text-align:center;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding:12px 8px;font-size:11px;font-weight:700}.calendar-day{border-right:1px solid var(--border-light);border-bottom:1px solid var(--border-light);cursor:pointer;min-height:110px;transition:all var(--duration) var(--ease);background:var(--surface);padding:6px;position:relative}.calendar-day:nth-child(7n){border-right:none}.calendar-day.empty{background:var(--surface-2);cursor:default;opacity:.5}.calendar-day:not(.empty):hover{z-index:2;background:#29abe20a}.calendar-day.has-visits{background:#29abe205}.calendar-day.has-visits:hover{background:#29abe212}.calendar-day.today{background:#29abe20f}.calendar-day.today:after{content:"";background:var(--brand-blue);height:2px;position:absolute;bottom:0;left:0;right:0}.calendar-day.selected{box-shadow:inset 0 0 0 2px var(--brand-purple);background:#5b1f6a0f}.calendar-day-number{width:26px;height:26px;color:var(--text-secondary);transition:all var(--duration) var(--ease);border-radius:50%;justify-content:center;align-items:center;margin-bottom:4px;font-size:13px;font-weight:600;display:inline-flex}.calendar-day-number.today-number{background:var(--brand-blue);color:#fff;font-weight:700}.calendar-day-visits{flex-direction:column;gap:2px;display:flex}.calendar-visit-pill{background:color-mix(in srgb, var(--pill-color) 10%, transparent);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;transition:all var(--duration) var(--ease);border-radius:4px;align-items:center;gap:4px;padding:2px 6px;font-size:10.5px;font-weight:500;display:flex;overflow:hidden}.calendar-visit-pill:hover{background:color-mix(in srgb, var(--pill-color) 20%, transparent)}.calendar-visit-dot{background:var(--pill-color);border-radius:50%;flex-shrink:0;width:5px;height:5px}.calendar-visit-text{text-overflow:ellipsis;overflow:hidden}.calendar-visit-more{color:var(--text-subtle);text-align:center;padding:1px 6px;font-size:10px;font-weight:600}.calendar-legend{border-top:1px solid var(--border-light);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:20px;padding:14px 20px;display:flex}.legend-item{color:var(--text-muted);text-transform:capitalize;align-items:center;gap:6px;font-size:11.5px;font-weight:500;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.calendar-loading-spinner{border:3px solid var(--border);border-top-color:var(--brand-blue);border-radius:50%;width:32px;height:32px;margin:0 auto 12px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.calendar-detail-panel{min-height:400px;transition:all .2s var(--ease);flex-direction:column;display:flex;position:sticky;top:92px;overflow:hidden}.calendar-detail-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.calendar-detail-date{color:var(--text-primary);font-size:16px;font-weight:700}.calendar-detail-count{color:var(--text-muted);margin-top:2px;font-size:12px}.calendar-detail-list{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.calendar-detail-empty{text-align:center;color:var(--text-muted);padding:40px 20px}.calendar-detail-empty p{color:var(--text-subtle);font-size:13px}.calendar-detail-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);transition:all var(--duration) var(--ease);display:flex;overflow:hidden}.calendar-detail-card:hover{box-shadow:var(--shadow-sm);border-color:var(--border-strong)}.detail-card-accent{background:var(--accent);flex-shrink:0;width:4px}.detail-card-content{flex-direction:column;flex:1;gap:6px;min-width:0;padding:12px 14px;display:flex}.detail-card-time{color:var(--text-muted);align-items:center;gap:5px;font-size:12px;font-weight:600;display:flex}.detail-card-title{color:var(--text-primary);align-items:center;gap:6px;font-size:14px;font-weight:700;display:flex}.detail-card-meta{flex-wrap:wrap;gap:12px;display:flex}.detail-meta-item{color:var(--text-muted);align-items:center;gap:4px;font-size:12px;display:flex}.detail-card-visitor{color:var(--text-subtle);align-items:center;gap:4px;font-size:11.5px;font-style:italic;display:flex}.detail-card-nature{text-transform:capitalize;border-radius:999px;align-self:flex-start;margin-top:2px;padding:2px 10px;font-size:10.5px;font-weight:600;display:inline-flex}.sync-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:280px;box-shadow:var(--shadow-lg);z-index:500;animation:slideUp .18s var(--ease);position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.sync-dropdown-header{border-bottom:1px solid var(--border-light);color:var(--text-primary);justify-content:space-between;align-items:center;padding:14px 16px;font-size:13px;font-weight:700;display:flex}.sync-close-btn{cursor:pointer;color:var(--text-subtle);transition:all var(--duration) var(--ease);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:2px;display:flex}.sync-close-btn:hover{background:var(--surface-2);color:var(--text-primary)}.sync-option{cursor:pointer;text-align:left;width:100%;transition:all var(--duration) var(--ease);background:0 0;border:none;align-items:center;gap:12px;padding:12px 16px;font-family:inherit;display:flex}.sync-option:hover{background:var(--surface-2)}.sync-icon{border-radius:var(--radius-md);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:800;display:flex}.sync-option-title{color:var(--text-primary);font-size:13.5px;font-weight:600}.sync-option-sub{color:var(--text-subtle);margin-top:1px;font-size:11px}.sync-dropdown-footer{border-top:1px solid var(--border-light);background:var(--surface-2);color:var(--text-subtle);text-align:center;padding:10px 16px;font-size:11px}.divider{border:none;border-top:1px solid var(--border-light);margin:20px 0}.alert{border-radius:var(--radius-md);border:1px solid #0000;margin-bottom:16px;padding:12px 16px;font-size:13.5px;font-weight:500}.alert-error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.alert-success{background:var(--success-bg);color:var(--success-text);border-color:#a7f3d0}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.skeleton{background:var(--border-light);border-radius:var(--radius-sm);animation:skeleton-pulse 1.5s var(--ease) infinite}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-subtle)}@media (width<=1024px){.login-branding{display:none}.login-form-panel{width:100%}.charts-grid{grid-template-columns:1fr}.page-content{padding:20px}.calendar-layout{grid-template-columns:1fr}.calendar-detail-panel{position:static}}@media (width<=768px){.sidebar{transform:translate(-100%)}.main-content{margin-left:0}.kpi-grid{grid-template-columns:repeat(2,1fr)}.calendar-day{min-height:70px}.calendar-visit-pill{display:none}.calendar-day.has-visits .calendar-day-number:after{content:"";background:var(--brand-blue);border-radius:50%;width:6px;height:6px;display:block;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}.calendar-toolbar{flex-direction:column;align-items:stretch}}.hover-row:hover{background-color:#f5eef8!important}
