@import"https://fonts.googleapis.com/css2?family=Inter:wght@200;300;400;500;600;700&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--cf-brand-primary: #3F0FB7;--cf-brand-dark: #1E1C67;--cf-action-blue: #2563EB;--cf-action-blue-hover: #397FF9;--cf-blue-pale: #C2E7FF;--cf-ink-darkest: #0F172A;--cf-ink-dark: #111827;--cf-ink-base: #1F1F22;--cf-ink-soft: #212529;--cf-gray-900: #0F172A;--cf-gray-800: #1E293B;--cf-gray-700: #334155;--cf-gray-600: #475569;--cf-gray-500: #64748B;--cf-gray-400: #94A3B8;--cf-gray-300: #686868;--cf-gray-200: #999999;--cf-gray-100: #BDBDBD;--cf-gray-50: #F8F9FB;--cf-border-heavy: #D9D9D9;--cf-border-base: #DBDBDB;--cf-border-light: #E1E5EB;--cf-border-lighter: #E2E8F0;--cf-border-subtle: #E6E6E6;--cf-border-ghost: #E9EBEE;--cf-border-input: #CED4DA;--cf-success: #009900;--cf-warning: #c27803;--cf-danger: #CC0000;--cf-danger-alt: #E2202C;--cf-error-bg: #FCEEEF;--cf-shadow-soft: 0 1px 3px rgba(64, 64, 64, .1);--cf-shadow: 0 1px 3px rgba(64, 64, 64, .2);--cf-shadow-medium: 0 4px 12px rgba(64, 64, 64, .25);--cf-shadow-strong: 0 8px 24px rgba(64, 64, 64, .3);--cf-overlay-dark: rgba(0, 0, 0, .5);--cf-overlay-brand: rgba(63, 15, 183, .2);--cf-font-primary: "Inter", Arial, sans-serif;--cf-font-size-xs: 8px;--cf-font-size-sm: 10px;--cf-font-size-base: 12px;--cf-font-size-body: 14px;--cf-font-size-md: 16px;--cf-font-size-lg: 18px;--cf-font-size-xl: 20px;--cf-font-size-2xl: 22px;--cf-font-size-3xl: 24px;--cf-font-size-4xl: 36px;--cf-surface: #FFFFFF;--cf-surface-raised: #FFFFFF;--cf-radius: 8px;--cf-radius-sm: 6px;--cf-sidebar-width: 240px}[data-theme=dark]{--cf-ink-darkest: #F1F5F9;--cf-ink-dark: #E2E8F0;--cf-ink-base: #CBD5E1;--cf-ink-soft: #94A3B8;--cf-gray-50: #0F172A;--cf-gray-100: #1E293B;--cf-gray-200: #334155;--cf-gray-300: #475569;--cf-gray-400: #64748B;--cf-gray-500: #94A3B8;--cf-gray-600: #CBD5E1;--cf-gray-700: #E2E8F0;--cf-gray-800: #F1F5F9;--cf-gray-900: #F8FAFC;--cf-border-heavy: #334155;--cf-border-base: #334155;--cf-border-light: #1E293B;--cf-border-lighter: #1E293B;--cf-border-subtle: #1E293B;--cf-border-ghost: #1E293B;--cf-border-input: #475569;--cf-surface: #1E293B;--cf-surface-raised: #273548;--cf-error-bg: #450a0a;--cf-shadow-soft: 0 1px 3px rgba(0, 0, 0, .3);--cf-shadow: 0 1px 3px rgba(0, 0, 0, .4);--cf-shadow-medium: 0 4px 12px rgba(0, 0, 0, .5);--cf-shadow-strong: 0 8px 24px rgba(0, 0, 0, .6)}[data-theme=dark] .badge.active{background:#064e3b;color:#6ee7b7}[data-theme=dark] .badge.on_hold,[data-theme=dark] .badge.pending{background:#78350f;color:#fcd34d}[data-theme=dark] .badge.completed{background:#064e3b;color:#6ee7b7}[data-theme=dark] .badge.admin{background:#312e81;color:#a5b4fc}[data-theme=dark] .badge.manager{background:#4c1d95;color:#c4b5fd}[data-theme=dark] .badge.counselor{background:#1e3a5f;color:#93c5fd}[data-theme=dark] .sidebar{background:#0b1120}[data-theme=dark] .data-table tbody tr:hover,[data-theme=dark] .btn-secondary:hover{background:var(--cf-surface-raised)}.theme-toggle{background:none;border:1px solid var(--cf-border-input);border-radius:var(--cf-radius-sm);padding:4px 8px;cursor:pointer;font-size:18px;line-height:1;color:var(--cf-ink-soft);margin-left:auto;transition:border-color .2s ease,color .2s ease}.theme-toggle:hover{border-color:var(--cf-action-blue);color:var(--cf-action-blue)}body{font-family:var(--cf-font-primary);font-size:var(--cf-font-size-body);font-weight:400;color:var(--cf-ink-dark);background:var(--cf-gray-50);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--cf-action-blue);text-decoration:none}a:hover{color:var(--cf-action-blue-hover);text-decoration:underline}.app-layout{display:flex;min-height:100vh}.sidebar{width:var(--cf-sidebar-width);background:var(--cf-ink-darkest);color:#fff;display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-brand{padding:20px 16px;font-size:var(--cf-font-size-3xl);font-weight:700;letter-spacing:-.5px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-brand small{display:block;font-size:11px;font-weight:400;color:var(--cf-gray-500);margin-top:2px}.sidebar-nav{flex:1;padding:8px 0}.sidebar-nav a{display:block;padding:10px 16px;color:var(--cf-gray-400);font-size:var(--cf-font-size-body);font-weight:500;text-decoration:none;transition:background .15s,color .15s}.sidebar-nav a:hover{background:#ffffff14;color:#fff;text-decoration:none}.sidebar-nav a.active{background:var(--cf-brand-primary);color:#fff}.sidebar-user{padding:12px 16px;border-top:1px solid rgba(255,255,255,.1);font-size:13px;color:var(--cf-gray-400)}.sidebar-user strong{display:block;color:#fff}.sidebar-user button{background:none;border:none;color:var(--cf-gray-500);cursor:pointer;font-size:var(--cf-font-size-base);padding:0;margin-top:4px}.sidebar-user button:hover{color:var(--cf-danger)}.main-content{flex:1;padding:24px 32px;min-width:0}.card{background:var(--cf-surface);border:1px solid var(--cf-border-light);border-radius:var(--cf-radius);box-shadow:var(--cf-shadow-soft);padding:20px;margin-bottom:16px}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-header h2{font-size:var(--cf-font-size-md);font-weight:600;color:var(--cf-ink-darkest)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--cf-surface);border:1px solid var(--cf-border-light);border-radius:var(--cf-radius);box-shadow:var(--cf-shadow-soft);padding:16px 20px}.stat-card .label{font-size:13px;color:var(--cf-gray-500);margin-bottom:4px}.stat-card .value{font-size:28px;font-weight:700;color:var(--cf-ink-darkest)}.stat-card .value.danger{color:var(--cf-danger)}.data-table{width:100%;border-collapse:collapse;font-size:var(--cf-font-size-body)}.data-table th{text-align:left;padding:10px 12px;color:var(--cf-gray-500);font-weight:600;font-size:var(--cf-font-size-base);text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--cf-border-base)}.data-table td{padding:10px 12px;border-bottom:1px solid var(--cf-border-ghost)}.data-table tbody tr:hover{background:var(--cf-gray-50);cursor:pointer}.badge{display:inline-block;padding:2px 8px;border-radius:9999px;font-size:var(--cf-font-size-base);font-weight:500}.badge.active{background:#d1fae5;color:#065f46}.badge.on_hold{background:#fef3c7;color:#92400e}.badge.closed{background:var(--cf-border-ghost);color:var(--cf-gray-500)}.badge.terminated{background:var(--cf-error-bg);color:#991b1b}.badge.pending{background:#fef3c7;color:#92400e}.badge.completed{background:#d1fae5;color:#065f46}.badge.overdue{background:var(--cf-error-bg);color:#991b1b}.badge.admin{background:#eef2ff;color:var(--cf-brand-primary)}.badge.manager{background:#ede9fe;color:#5b21b6}.badge.counselor{background:var(--cf-border-ghost);color:var(--cf-gray-700)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:var(--cf-radius-sm);font-family:var(--cf-font-primary);font-size:var(--cf-font-size-body);font-weight:500;border:none;cursor:pointer;transition:background .2s ease,opacity .2s ease}.btn-primary{background:var(--cf-brand-primary);color:#fff}.btn-primary:hover{background:var(--cf-brand-dark)}.btn-secondary{background:var(--cf-surface);color:var(--cf-gray-700);border:1px solid var(--cf-border-base)}.btn-secondary:hover{background:var(--cf-gray-50)}.btn-action{background:var(--cf-action-blue);color:#fff}.btn-action:hover{background:var(--cf-action-blue-hover)}.btn-outline{background:transparent;color:var(--cf-brand-primary);border:1px solid var(--cf-brand-primary)}.btn-outline:hover{background:var(--cf-overlay-brand)}.btn-ghost{background:transparent;color:var(--cf-gray-500);border:1px solid var(--cf-border-base)}.btn-ghost:hover{background:var(--cf-gray-50)}.btn-danger{background:var(--cf-danger);color:#fff}.btn-danger:hover{background:var(--cf-danger-alt)}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:var(--cf-font-size-body);font-weight:500;margin-bottom:4px;color:var(--cf-gray-700)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:8px 12px;border:1px solid var(--cf-border-input);border-radius:var(--cf-radius-sm);font-size:var(--cf-font-size-body);font-family:var(--cf-font-primary);color:var(--cf-ink-dark);background:var(--cf-surface);transition:border-color .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--cf-action-blue);box-shadow:0 0 0 3px #2563eb1a}.form-group input::placeholder{color:var(--cf-gray-300)}.form-error{color:var(--cf-danger);font-size:13px;margin-top:4px}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--cf-gray-50)}.login-card{background:var(--cf-surface);border:1px solid var(--cf-border-light);border-radius:var(--cf-radius);box-shadow:var(--cf-shadow-medium);padding:40px;width:100%;max-width:400px}.login-card h1{font-size:var(--cf-font-size-3xl);font-weight:600;color:var(--cf-ink-darkest);margin-bottom:4px}.login-card .subtitle{color:var(--cf-gray-500);margin-bottom:24px;font-size:var(--cf-font-size-body)}.login-card .btn{width:100%;justify-content:center;padding:10px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-header h1{font-size:var(--cf-font-size-3xl);font-weight:700;color:var(--cf-ink-darkest)}.tabs{display:flex;border-bottom:2px solid var(--cf-border-lighter);margin-bottom:20px}.tabs button{padding:10px 16px;background:none;border:none;font-size:var(--cf-font-size-body);font-weight:500;color:var(--cf-gray-500);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s}.tabs button:hover{color:var(--cf-gray-700)}.tabs button.active{color:var(--cf-brand-primary);border-bottom-color:var(--cf-brand-primary)}.fin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.loading,.empty-state{text-align:center;padding:40px;color:var(--cf-gray-500)}.empty-state p{margin-top:8px}.back-link{display:inline-flex;align-items:center;gap:4px;color:var(--cf-gray-500);font-size:var(--cf-font-size-body);margin-bottom:16px}.back-link:hover{color:var(--cf-brand-primary);text-decoration:none}.text-muted{color:var(--cf-gray-500)}.text-subtle{color:var(--cf-gray-400)}.text-brand{color:var(--cf-brand-primary)}.text-success{color:var(--cf-success)}.text-error{color:var(--cf-danger)}.context-bar{display:flex;align-items:center;gap:8px;padding:8px 0;margin-bottom:16px;font-size:var(--cf-font-size-body);color:var(--cf-gray-500);border-bottom:1px solid var(--cf-border-ghost)}.context-org{font-weight:600;font-size:var(--cf-font-size-lg);color:var(--cf-ink-darkest)}.context-separator{color:var(--cf-gray-300)}.context-counselor{color:var(--cf-gray-600)}.caseload-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:12px}.caseload-toolbar input{padding:6px 12px;border:1px solid var(--cf-border-input);border-radius:var(--cf-radius-sm);font-size:var(--cf-font-size-body);font-family:var(--cf-font-primary);background:var(--cf-surface);color:var(--cf-ink-dark);width:260px}.caseload-toolbar input:focus{outline:none;border-color:var(--cf-action-blue);box-shadow:0 0 0 2px var(--cf-overlay-brand)}.caseload-toolbar select{padding:6px 12px;border:1px solid var(--cf-border-input);border-radius:var(--cf-radius-sm);font-size:var(--cf-font-size-body);font-family:var(--cf-font-primary);background:var(--cf-surface);color:var(--cf-ink-dark)}.date-range-picker{display:flex;align-items:center;gap:8px}.date-range-picker label{font-size:var(--cf-font-size-body);color:var(--cf-gray-500);font-weight:500}.date-range-picker input[type=date]{padding:6px 12px;border:1px solid var(--cf-border-input);border-radius:var(--cf-radius-sm);font-size:var(--cf-font-size-body);font-family:var(--cf-font-primary);background:var(--cf-surface);color:var(--cf-ink-dark)}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.status-dot.active{background:var(--cf-success)}.status-dot.inactive{background:var(--cf-gray-400)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--cf-surface);border-radius:var(--cf-radius-md);padding:24px;max-width:520px;width:95%;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px #00000040}.modal-content h3{font-size:var(--cf-font-size-xl);font-weight:600;margin-bottom:16px;color:var(--cf-ink-darkest)}.modal-content label{display:block;font-size:var(--cf-font-size-sm);font-weight:500;color:var(--cf-gray-700);margin-bottom:12px}.modal-content input,.modal-content select,.modal-content textarea{display:block;width:100%;padding:8px 12px;margin-top:4px;border:1px solid var(--cf-border-input);border-radius:var(--cf-radius-sm);font-size:var(--cf-font-size-body);font-family:var(--cf-font-primary);color:var(--cf-ink-dark);background:var(--cf-surface)}.modal-content input:focus,.modal-content select:focus,.modal-content textarea:focus{outline:none;border-color:var(--cf-action-blue);box-shadow:0 0 0 3px #2563eb1a}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.calendar-page{padding:24px}.page-header-actions{display:flex;align-items:center;gap:12px}.premium-badge{display:inline-flex;align-items:center;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:4px 10px;border-radius:var(--cf-radius-sm);background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#78350f}.calendar-wrapper{background:var(--cf-surface);border-radius:var(--cf-radius-md);padding:16px;border:1px solid var(--cf-border-light)}.calendar-loading{text-align:center;padding:12px;color:var(--cf-gray-400);font-size:var(--cf-font-size-sm)}.fc{--fc-border-color: var(--cf-border-lighter);--fc-button-bg-color: var(--cf-surface);--fc-button-border-color: var(--cf-border-base);--fc-button-text-color: var(--cf-gray-700);--fc-button-hover-bg-color: var(--cf-gray-50);--fc-button-hover-border-color: var(--cf-border-base);--fc-button-active-bg-color: var(--cf-brand-primary);--fc-button-active-border-color: var(--cf-brand-primary);--fc-today-bg-color: rgba(63, 15, 183, .04);--fc-now-indicator-color: var(--cf-brand-primary);--fc-event-border-color: transparent;font-family:var(--cf-font-primary)}.fc .fc-toolbar-title{font-size:var(--cf-font-size-xl);font-weight:600;color:var(--cf-ink-darkest)}.fc .fc-button{font-family:var(--cf-font-primary);font-size:var(--cf-font-size-sm);font-weight:500;padding:6px 14px;border-radius:var(--cf-radius-sm)}.fc .fc-col-header-cell-cushion{font-weight:600;color:var(--cf-gray-600);font-size:var(--cf-font-size-sm)}.fc .fc-daygrid-day-number{font-size:var(--cf-font-size-sm);color:var(--cf-gray-600);padding:4px 8px}.fc .fc-event{border-radius:4px;padding:2px 4px;font-size:12px;cursor:pointer}.fc-event-inner{display:flex;flex-direction:column;gap:1px;overflow:hidden}.fc-event-client{font-weight:600;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fc-event-meta{font-size:10px;opacity:.85}.event-popover{max-width:420px}.event-popover-header{padding-left:12px;margin-bottom:16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.event-popover-header h3{margin-bottom:0}.event-popover-body p{margin-bottom:8px;font-size:var(--cf-font-size-body);color:var(--cf-gray-700)}.event-popover-body a{color:var(--cf-action-blue)}.badge.stage{background:#ede9fe;color:#5b21b6}.badge.scheduled{background:var(--cf-blue-pale);color:var(--cf-action-blue)}.badge.in_progress{background:#fef3c7;color:#92400e}.badge.no_show{background:var(--cf-error-bg);color:#991b1b}.badge.cancelled{background:var(--cf-border-ghost);color:var(--cf-gray-500)}.alert{padding:12px 16px;border-radius:var(--cf-radius-sm);margin-bottom:16px}.alert-error{background:var(--cf-error-bg);color:#991b1b}.fc .fc-resource-area{background:var(--cf-surface)}.fc .fc-datagrid-cell-frame{padding:6px 10px;font-size:var(--cf-font-size-sm);font-weight:500;color:var(--cf-ink-darkest)}.fc .fc-resource-area .fc-datagrid-header .fc-datagrid-cell-frame{font-weight:600;color:var(--cf-gray-600);text-transform:uppercase;font-size:11px;letter-spacing:.5px}.fc-timeline .fc-timeline-slot-frame{font-size:11px}.fc .fc-timeline-lane:nth-child(2n),.fc .fc-datagrid-row:nth-child(2n){background:#00000004}.fc .fc-resource-header{font-weight:600;font-size:var(--cf-font-size-sm);color:var(--cf-ink-darkest);padding:8px 6px}
