.calendar-page{max-width:1400px;margin:0 auto}.calendar-header{display:flex;flex-direction:column;gap:.5rem;margin-bottom:2rem}.calendar-header-top{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1rem}.calendar-header h1{margin:0;font-size:2rem;color:var(--text-primary)}.calendar-controls{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.sync-alerts{display:flex;gap:8px;flex-wrap:wrap}.sync-alert{padding:4px 10px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500}.sync-alert-error{background:#e53e3e14;color:#c53030;border:1px solid rgba(229,62,62,.2)}.sync-alert-info{background:#71809614;color:#4a5568;border:1px solid rgba(113,128,150,.2)}.month-navigation{display:flex;align-items:center;gap:1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.5rem 1rem;box-shadow:var(--shadow-sm)}.nav-button{background:transparent;border:none;color:var(--text-primary);cursor:pointer;padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:1.5rem;transition:all .2s;display:flex;align-items:center;justify-content:center}.nav-button:hover{background:var(--color-primary-light);color:var(--color-primary)}.current-month{font-size:1.25rem;font-weight:600;min-width:200px;text-align:center;color:var(--text-primary)}.event-type-filter{display:flex;align-items:center;gap:.5rem}.event-type-filter label{font-size:.85rem;color:var(--text-secondary);font-weight:500}.event-type-filter select{padding:.5rem 1rem;border:1px solid var(--border-input);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-input);font-size:.9rem;cursor:pointer;min-width:200px}.event-type-filter select:focus{outline:none;border-color:var(--border-input-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.calendar-grid{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:var(--bg-table-header);border-bottom:2px solid var(--border-color)}.weekday{padding:1rem;text-align:center;font-weight:600;color:var(--text-secondary);font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(120px,auto)}.calendar-day{border-right:1px solid var(--border-color-light);border-bottom:1px solid var(--border-color-light);padding:.5rem;min-height:120px;background:var(--bg-card);transition:background .2s}.calendar-day:nth-child(7n){border-right:none}.calendar-day.other-month{background:var(--bg-surface);opacity:.5}.calendar-day:hover:not(.other-month){background:var(--color-primary-light)}.day-number{font-size:.9rem;font-weight:600;color:var(--text-secondary);margin-bottom:.5rem}.calendar-day.today .day-number{background:var(--color-primary);color:#fff;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;margin-bottom:.5rem}.day-events{display:flex;flex-direction:column;gap:.25rem}.event-tile{background:var(--color-primary);border-radius:var(--radius-sm);padding:.25rem .5rem;font-size:.75rem;cursor:pointer;transition:all .2s;border-left:3px solid var(--color-primary-hover);color:#fff}.event-tile:hover{opacity:.9;transform:translate(2px)}.event-tile.arraignment{background:#4a5568;border-left-color:#2d3748}.event-tile.trial,.event-tile.jury-trial{background:#e53e3e;border-left-color:#c53030}.event-tile.hearing{background:#38a169;border-left-color:#2f855a}.event-tile.pre-trial-conference,.event-tile.trial-readiness{background:#d69e2e;border-left-color:#b7791f}.event-tile.preliminary-hearing{background:#805ad5;border-left-color:#6b46c1}.event-tile.sync-failed{border-right:3px solid #e53e3e}.event-tile.sync-unlinked{border-right:3px solid #718096;opacity:.85}.event-tile-header{display:flex;justify-content:space-between;align-items:center;gap:2px}.event-time{font-weight:600;margin-bottom:.125rem}.event-type-label{font-weight:500;opacity:.9;font-size:.7rem}.event-client{opacity:.8;font-size:.7rem;margin-top:.125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-details{padding:1.5rem}.detail-row{display:grid;grid-template-columns:150px 1fr;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color-light)}.detail-row:last-child{border-bottom:none}.detail-row label{font-weight:600;color:var(--text-secondary);text-transform:uppercase;font-size:.8rem;letter-spacing:.5px}.detail-row p{margin:0;color:var(--text-primary);font-weight:500}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color-light)}.badge-scheduled{background:#48bb78;color:#fff}.badge-cancelled{background:#e53e3e;color:#fff}.badge-rescheduled{background:#d69e2e;color:#fff}.badge-completed{background:#718096;color:#fff}@media (max-width: 1024px){.calendar-days{grid-auto-rows:minmax(100px,auto)}.calendar-day{min-height:100px}.event-tile{font-size:.7rem;padding:.2rem .4rem}}@media (max-width: 768px){.calendar-header{flex-direction:column;align-items:flex-start}.calendar-controls{width:100%;flex-direction:column;align-items:stretch}.month-navigation{width:100%;justify-content:space-between}.event-type-filter,.event-type-filter select{width:100%}.weekday{padding:.5rem;font-size:.75rem}.calendar-days{grid-auto-rows:minmax(80px,auto)}.calendar-day{min-height:80px;padding:.25rem}.day-number{font-size:.8rem}.event-tile{font-size:.65rem;padding:.15rem .3rem}.event-client{display:none}}.app-layout{display:flex;min-height:100vh}.main-content{flex:1;padding:2rem;overflow-y:auto;background:var(--bg-page);min-height:100vh}.sidebar{width:var(--sidebar-width);min-height:100vh;background:var(--bg-sidebar);border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;flex-shrink:0}.sidebar-logo{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color-light);display:flex;align-items:center;gap:.75rem}.sidebar-logo-text{font-size:.85rem;font-weight:700;color:var(--text-primary);line-height:1.2}.sidebar-logo-text .com{color:var(--color-primary);font-style:italic}.sidebar-nav{flex:1;padding:.75rem;display:flex;flex-direction:column;gap:2px}.sidebar-nav-item{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;border-radius:var(--radius-md);color:var(--sidebar-text);text-decoration:none;font-size:.85rem;font-weight:500;transition:all .2s;cursor:pointer;border:none;background:none;width:100%;text-align:left}.sidebar-nav-item:hover:not(.disabled){background:var(--color-primary-light);color:var(--color-primary)}.sidebar-nav-item.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text)}.sidebar-nav-item.active .sidebar-nav-icon{color:var(--sidebar-active-text)}.sidebar-nav-item.disabled{opacity:.45;cursor:not-allowed}.sidebar-nav-icon{flex-shrink:0;color:var(--sidebar-icon);transition:color .2s}.sidebar-nav-item:hover:not(.disabled) .sidebar-nav-icon{color:var(--color-primary)}.sidebar-user{padding:1rem 1.5rem;border-top:1px solid var(--border-color-light);display:flex;align-items:center;gap:.75rem}.sidebar-user-avatar{width:36px;height:36px;border-radius:50%;background:var(--bg-surface);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);overflow:hidden}.sidebar-user-avatar img{width:100%;height:100%;object-fit:cover}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{font-size:.85rem;font-weight:600;color:var(--text-primary)}.sidebar-logout-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem;display:flex;align-items:center;transition:color .2s}.sidebar-logout-btn:hover{color:var(--sync-failed)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-header h1{margin:0;font-size:2rem;color:var(--text-primary)}.header-actions{display:flex;gap:1rem}.stats,.stats-grid,.category-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.5rem;text-align:left;box-shadow:var(--shadow-sm)}.stat-card h2,.stat-card h3{margin:0 0 .25rem;color:var(--text-primary);font-size:1.75rem}.stat-card p{margin:0;color:var(--text-secondary);font-size:.85rem}.stat-card .stat-subtitle{margin-top:.25rem;font-size:.8rem;color:var(--text-muted)}.stat-card.large h2{font-size:2.5rem}.stat-card.featured{background:var(--color-primary-gradient);border:none}.stat-card.featured h2,.stat-card.featured h3{color:var(--text-inverse)}.stat-card.featured p{color:#ffffffd9}.stat-card.featured .stat-subtitle{color:#ffffffb3}.data-table{width:100%;border-collapse:collapse;background:var(--bg-card);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}.data-table th{background:var(--bg-table-header);padding:.875rem 1rem;text-align:left;color:var(--text-secondary);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-table)}.data-table td{padding:.875rem 1rem;border-top:1px solid var(--border-color-light);color:var(--text-primary)}.data-table tbody tr:hover{background:var(--bg-table-row-hover)}.search-input,.filter-select{padding:.5rem 1rem;border:1px solid var(--border-input);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-input);font-size:.9rem}.search-input:focus,.filter-select:focus{outline:none;border-color:var(--border-input-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:500;color:#fff}.badge-traffic{background:var(--badge-traffic)}.badge-dui{background:var(--badge-dui)}.badge-criminal{background:var(--badge-criminal)}.badge-dmv{background:var(--badge-dmv)}.badge-other{background:var(--badge-other)}.badge-open{background:var(--badge-open)}.badge-closed{background:var(--badge-closed)}.badge-uploaded{background:var(--badge-uploaded)}.badge-pending{background:var(--badge-pending)}.badge-failed{background:var(--badge-failed)}.btn-link{color:var(--color-primary);text-decoration:none;font-weight:500}.btn-link:hover{text-decoration:underline}.btn-primary{padding:.625rem 1.25rem;background:var(--btn-primary-bg);color:var(--btn-primary-text);border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--btn-primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{padding:.625rem 1.25rem;background:var(--btn-secondary-bg);color:var(--btn-secondary-text);border:1px solid var(--btn-secondary-border);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:var(--btn-secondary-hover-bg)}.loading,.error,.no-results{text-align:center;padding:3rem;color:var(--text-secondary)}.error{color:var(--sync-failed)}.error-message{background:#e53e3e14;border:1px solid rgba(229,62,62,.3);border-radius:var(--radius-md);padding:1rem;margin-bottom:1rem;color:#c53030}.dashboard h1{margin-bottom:.25rem;color:var(--text-primary)}.dashboard-subtitle{color:var(--text-secondary);font-size:.95rem;margin-bottom:1.5rem}.dashboard h2{margin:2rem 0 1rem;font-size:1.5rem;color:var(--text-primary)}.section-title{color:var(--color-primary);font-weight:600;font-size:1rem;margin-bottom:1rem}.revenue-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}.revenue-overview-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem;box-shadow:var(--shadow-sm)}.revenue-overview-card .revenue-amount{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.revenue-overview-card .revenue-label{font-size:.9rem;font-weight:600;color:var(--text-primary);margin-bottom:.15rem}.revenue-overview-card .revenue-sublabel{font-size:.8rem;color:var(--text-muted)}.dashboard-bottom{display:grid;grid-template-columns:2fr 1fr;gap:1.5rem;margin-bottom:2rem}.dashboard-right-panels{display:flex;flex-direction:column;gap:1.5rem}.alert-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem;box-shadow:var(--shadow-sm)}.alert-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.25rem}.alert-card-header h3{font-size:.95rem;font-weight:600;color:var(--text-primary);margin:0}.alert-card-subtitle{font-size:.8rem;color:var(--text-muted);margin-bottom:1rem}.alert-card-body{font-size:.85rem;color:var(--text-secondary)}.btn-outline-sm{padding:.35rem .75rem;font-size:.75rem;font-weight:500;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;transition:all .2s}.btn-outline-sm:hover{border-color:var(--color-primary);color:var(--color-primary)}.revenue-chart-container{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.5rem;margin-bottom:2rem;box-shadow:var(--shadow-sm)}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.chart-header h2{margin:0;font-size:1.25rem;color:var(--text-primary)}.chart-controls{display:flex;align-items:center;gap:1.5rem}.dropdown-group{display:flex;align-items:center;gap:.5rem}.dropdown-group label{font-size:.85rem;color:var(--text-secondary);font-weight:500}.toggle-buttons{display:flex;gap:.25rem;background:var(--bg-surface);padding:.25rem;border-radius:var(--radius-md);border:1px solid var(--border-color-light)}.toggle-btn{padding:.4rem .85rem;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;transition:all .2s}.toggle-btn:hover{background:var(--color-primary-light);color:var(--color-primary)}.toggle-btn.active{background:var(--color-primary);color:#fff}.total-revenue{display:flex;align-items:center;gap:.5rem;font-size:1.1rem}.total-revenue .label{color:var(--text-secondary);font-weight:500}.total-revenue .amount{color:var(--sync-success);font-weight:700;font-size:1.25rem}.chart-category-filters{display:flex;align-items:center;gap:1rem}.chart-category-filter{display:flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--text-secondary);cursor:pointer}.chart-category-filter input[type=checkbox]{accent-color:var(--color-primary)}.upcoming-events{margin-bottom:2rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-header h2{margin:0;font-size:1.25rem;color:var(--text-primary)}.case-detail h1{margin-top:.5rem;margin-bottom:2rem;color:var(--text-primary)}.case-detail h2{margin:2rem 0 1rem;font-size:1.5rem;color:var(--text-primary)}.details-table{margin-bottom:2rem}.details-table .field-label{font-weight:600;color:var(--text-secondary);width:250px;text-transform:uppercase;font-size:.8rem;letter-spacing:.5px}.details-table .field-value{font-weight:500;color:var(--text-primary)}.table-scroll-container{max-height:600px;overflow-y:auto;border-radius:var(--radius-md)}.table-scroll-container .data-table{margin-bottom:0}.table-scroll-container thead th{position:sticky;top:0;z-index:10;background:var(--bg-table-header)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--bg-modal);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:90%;max-width:700px;max-height:90vh;overflow-y:auto;padding:0;box-shadow:var(--shadow-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border-color-light)}.modal-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.close-btn{background:none;border:none;color:var(--text-muted);font-size:1.75rem;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all .2s}.close-btn:hover{background:var(--bg-surface);color:var(--text-primary)}.client-form{padding:1.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-label);font-size:.85rem;font-weight:500}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;background:var(--bg-input);border:1px solid var(--border-input);border-radius:var(--radius-md);color:var(--text-input);font-size:.9rem}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--border-input-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.form-group textarea{resize:vertical;font-family:inherit}.form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color-light)}.client-detail h1,.client-detail h2{color:var(--text-primary)}.client-detail h2{margin:2rem 0 1rem;font-size:1.5rem}.back-link{color:var(--color-primary);text-decoration:none;font-size:.9rem;font-weight:500}.back-link:hover{text-decoration:underline}.client-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:2rem}.info-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem 1.25rem;box-shadow:var(--shadow-sm)}.info-card label{display:block;font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.25rem}.info-card p{margin:0;font-size:1rem;font-weight:500;color:var(--text-primary)}.info-card p.highlight{color:var(--color-primary);font-weight:700}.info-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem 1.25rem;margin-bottom:1rem;box-shadow:var(--shadow-sm)}.info-section label{display:block;font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.25rem}.info-section p{margin:0;color:var(--text-primary)}.chart-container{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.5rem;margin-bottom:2rem;box-shadow:var(--shadow-sm)}@media (max-width: 1024px){.sidebar{width:60px}.sidebar-nav-item span,.sidebar-logo-text,.sidebar-user-info{display:none}.revenue-overview{grid-template-columns:repeat(2,1fr)}.dashboard-bottom{grid-template-columns:1fr}}@media (max-width: 768px){.main-content{padding:1rem}.stats-grid{grid-template-columns:repeat(2,1fr)}.revenue-overview{grid-template-columns:1fr 1fr}.form-row{grid-template-columns:1fr}}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg-page: #f5f5f5;--bg-card: #ffffff;--bg-card-hover: #fafafa;--bg-surface: #f9f9f9;--bg-sidebar: #ffffff;--sidebar-width: 260px;--sidebar-border: #e8e8e8;--sidebar-text: #555555;--sidebar-icon: #999999;--sidebar-active-bg: #e8734a;--sidebar-active-text: #ffffff;--color-primary: #e8734a;--color-primary-hover: #d4623c;--color-primary-light: rgba(232, 115, 74, .1);--color-primary-gradient: linear-gradient(135deg, #e8734a 0%, #f09966 100%);--text-primary: #2d3748;--text-secondary: #718096;--text-muted: #a0aec0;--text-inverse: #ffffff;--border-color: #e2e8f0;--border-color-light: #edf2f7;--bg-table-header: #f7fafc;--bg-table-row-hover: #f7fafc;--border-table: #e2e8f0;--bg-input: #ffffff;--border-input: #e2e8f0;--border-input-focus: #e8734a;--text-input: #2d3748;--text-label: #4a5568;--bg-input-disabled: #edf2f7;--bg-modal: #ffffff;--bg-overlay: rgba(0, 0, 0, .4);--btn-primary-bg: #e8734a;--btn-primary-hover: #d4623c;--btn-primary-text: #ffffff;--btn-secondary-bg: transparent;--btn-secondary-border: #e2e8f0;--btn-secondary-text: #4a5568;--btn-secondary-hover-bg: #f7fafc;--badge-traffic: #4a5568;--badge-dui: #e53e3e;--badge-criminal: #d69e2e;--badge-dmv: #38a169;--badge-other: #718096;--badge-open: #48bb78;--badge-closed: #718096;--badge-uploaded: #2f855a;--badge-pending: #975a16;--badge-failed: #c53030;--chart-grid: #e2e8f0;--chart-axis: #718096;--chart-tooltip-bg: #ffffff;--chart-tooltip-border: #e2e8f0;--chart-tooltip-text: #2d3748;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--sync-success: #48bb78;--sync-pending: #d69e2e;--sync-failed: #e53e3e;--sync-conflict: #dd6b20;--sync-unlinked: #718096}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;color:var(--text-primary);background-color:var(--bg-page)}#root{width:100%;min-height:100vh}
