:root{--color-bg:#09090b;--color-surface:#0e0e11;--color-surface-raised:#17171a;--color-text:#f4f4f5;--color-text-muted:#a1a1aa;--color-border:#27272a;--color-border-strong:#3f3f46;--color-accent:#3b82f6;--color-accent-hover:#2563eb;--color-accent-muted:#17233f;--color-danger:#ef4444;--color-danger-muted:#3a1a1a;--color-success:#22c55e;--color-success-muted:#14291d;--color-warning:#eab308;--color-warning-muted:#2e2610;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--max-width:1100px;--sidebar-width:240px;--sidebar-width-collapsed:68px;--radius-md:8px;--radius-lg:12px}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);flex-direction:column;min-height:100vh;font-size:15px;line-height:1.5;display:flex}a{color:var(--color-accent)}h1,h2,h3{margin:0 0 .5em;font-weight:600;line-height:1.25}p{margin:0 0 1em}button,input,select,textarea{color:inherit;font-family:inherit;font-size:.95rem}.page-shell{max-width:var(--max-width);width:100%;margin:0 auto;padding:0 1.5rem}.btn{border:1px solid var(--color-accent);border-radius:var(--radius-md);background:var(--color-accent);color:#fff;cursor:pointer;align-items:center;gap:.4rem;padding:.55rem 1.05rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-secondary{color:var(--color-text);border-color:var(--color-border-strong);background:0 0}.btn-secondary:hover{background:var(--color-surface-raised)}.btn-danger{border-color:var(--color-danger);color:var(--color-danger);background:0 0}.btn-danger:hover{background:var(--color-danger-muted)}.btn-sm{padding:.35rem .7rem;font-size:.82rem}.icon-btn{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);width:1.9rem;height:1.9rem;color:var(--color-text-muted);cursor:pointer;vertical-align:middle;background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:hover{background:var(--color-surface-raised);color:var(--color-text);border-color:var(--color-accent)}.field-label-row{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.field-label-row label{margin-bottom:0}.profile-row{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 0;display:flex}.profile-row:last-child{border-bottom:none;padding-bottom:0}.profile-row:first-child{padding-top:0}.btn:disabled{opacity:.5;cursor:not-allowed}.field{margin-bottom:1rem}.field label{color:var(--color-text-muted);margin-bottom:.35rem;font-size:.85rem;font-weight:500;display:block}.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=number],.field input[type=tel],.field input[type=datetime-local],.field input:not([type]),.field textarea{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);width:100%;color:var(--color-text);outline:none;padding:.55rem .7rem;transition:border-color .12s}.field input:focus,.field textarea:focus{border-color:var(--color-accent)}.checkbox-field{align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.9rem;display:flex}.checkbox-field input{width:auto}.card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);margin-bottom:1rem;padding:1.25rem}.muted{color:var(--color-text-muted);font-size:.88rem}.error-text{color:var(--color-danger);font-size:.85rem}.badge{text-transform:uppercase;letter-spacing:.02em;border-radius:999px;align-items:center;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-upcoming{background:var(--color-accent-muted);color:var(--color-accent)}.badge-in_progress{background:var(--color-warning-muted);color:var(--color-warning)}.badge-completed{background:var(--color-success-muted);color:var(--color-success)}.badge-cancelled,.badge-no_show{background:var(--color-danger-muted);color:var(--color-danger)}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--color-border);padding:.65rem .6rem;font-size:.88rem}th{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.78rem;font-weight:500}tr:hover td{background:#ffffff05}nav.site-nav{border-bottom:1px solid var(--color-border);background:var(--color-bg)}nav.site-nav .page-shell{justify-content:space-between;align-items:center;padding-top:1.1rem;padding-bottom:1.1rem;display:flex}nav.site-nav .brand{color:var(--color-text);font-size:1.05rem;font-weight:700;text-decoration:none}footer.site-footer{border-top:1px solid var(--color-border);margin-top:auto;padding:1.5rem 0}.search-input{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);width:100%;max-width:320px;color:var(--color-text);outline:none;padding:.5rem .8rem}.search-input:focus{border-color:var(--color-accent)}.filter-bar{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1.25rem;display:flex}.app-shell{flex:1;width:100%;min-height:100vh;display:flex}.app-sidebar{width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;flex-shrink:0;padding:1.25rem 1rem;transition:width .15s;display:flex}.app-sidebar.collapsed{width:var(--sidebar-width-collapsed);padding:1.25rem .65rem}.app-sidebar-brand-row{justify-content:space-between;align-items:center;padding:0 .5rem 1.5rem;display:flex}.app-sidebar.collapsed .app-sidebar-brand-row{justify-content:center;padding:0 0 1.5rem}.app-sidebar-brand{color:var(--color-text);white-space:nowrap;align-items:center;gap:.55rem;font-size:1rem;font-weight:700;text-decoration:none;display:flex;overflow:hidden}.app-sidebar.collapsed .app-sidebar-brand span{display:none}.app-sidebar-nav{flex-direction:column;flex:1;gap:.2rem;display:flex}.app-sidebar-link{border-radius:var(--radius-md);color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:.65rem;padding:.55rem .7rem;font-size:.9rem;font-weight:500;text-decoration:none;display:flex}.app-sidebar.collapsed .app-sidebar-link{justify-content:center;padding:.55rem}.app-sidebar.collapsed .app-sidebar-link span{display:none}.app-sidebar-link:hover{background:var(--color-surface-raised);color:var(--color-text)}.app-sidebar-link.active{background:var(--color-accent-muted);color:var(--color-accent)}.app-sidebar-footer{border-top:1px solid var(--color-border);padding-top:1rem}.app-sidebar.collapsed .app-sidebar-footer{display:none}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-topbar{border-bottom:1px solid var(--color-border);background:var(--color-bg);flex-shrink:0;align-items:center;gap:.75rem;height:56px;padding:0 1.5rem;display:flex}.app-topbar-title{color:var(--color-text-muted);font-size:.9rem}.app-content{flex:1;width:100%;padding:2rem 2.5rem}.app-footer-bar{border-top:1px solid var(--color-border);padding:1rem 2.5rem;font-size:.82rem}.greeting-header{margin-bottom:2rem}.greeting-header h1{margin-bottom:.2rem;font-size:1.6rem}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.stat-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:1rem 1.1rem}.stat-card .stat-value{font-size:1.8rem;font-weight:700}.stat-card .stat-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.82rem}.auth-page{background-image:url(/assets/loginsplash.jpg);background-position:50%;background-size:cover;flex:1;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:2rem 1.5rem;display:flex}.auth-card{width:100%;max-width:380px}.auth-card .card{padding:2rem 1.75rem}.auth-card h1{text-align:center;font-size:1.35rem}.auth-card>p{text-align:center}.auth-help-row{text-align:center;margin-top:1.25rem}.auth-help-link{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;text-decoration:underline}.auth-help-link:hover{color:var(--color-text)}.ui-select-trigger{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);width:100%;color:var(--color-text);cursor:pointer;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .7rem;font-size:.95rem;display:flex}.ui-select-trigger:hover{border-color:var(--color-accent)}.ui-select-trigger[data-placeholder]{color:var(--color-text-muted)}.ui-select-content{background:var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);z-index:60;padding:.3rem;box-shadow:0 8px 24px #00000080}.ui-select-item{cursor:pointer;border-radius:5px;outline:none;align-items:center;padding:.5rem .7rem;font-size:.9rem;display:flex}.ui-select-item[data-highlighted]{background:var(--color-accent-muted);color:var(--color-accent)}.ui-dialog-overlay{z-index:70;background:#0009;position:fixed;inset:0}.ui-dialog-content{background:var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);z-index:71;width:100%;max-width:420px;max-height:85vh;padding:1.5rem;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.ui-dialog-title{margin-bottom:.5rem;font-size:1.1rem}.ui-dialog-description{color:var(--color-text-muted);white-space:pre-line;margin-bottom:1.25rem;font-size:.9rem}.ui-dialog-actions{justify-content:flex-end;gap:.6rem;display:flex}.ui-combobox{position:relative}.ui-combobox-popover{background:var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);z-index:60;width:var(--radix-popover-trigger-width);max-height:260px;padding:.3rem;overflow-y:auto;box-shadow:0 8px 24px #00000080}.ui-combobox-search{border-bottom:1px solid var(--color-border);color:var(--color-text-muted);align-items:center;gap:.5rem;margin-bottom:.3rem;padding:.4rem .5rem;display:flex}.ui-combobox-search input{color:var(--color-text);background:0 0;border:none;outline:none;flex:1}.ui-combobox-item{cursor:pointer;border-radius:5px;padding:.5rem .7rem;font-size:.9rem}.ui-combobox-item:hover,.ui-combobox-item.active{background:var(--color-accent-muted);color:var(--color-accent)}.tabs{border-bottom:1px solid var(--color-border);gap:1rem;margin-bottom:1.5rem;display:flex}.tabs a{color:var(--color-text-muted);border-bottom:2px solid #0000;padding:.6rem 0;font-size:.9rem;text-decoration:none}.tabs a.active{color:var(--color-text);border-bottom-color:var(--color-accent)}.section-title{margin-top:2rem;font-size:1.1rem}@media (max-width:900px){.auth-image-col{display:none}}@media (max-width:720px){.app-shell{flex-direction:column}.app-sidebar,.app-sidebar.collapsed{border-right:none;border-bottom:1px solid var(--color-border);flex-direction:row;align-items:center;width:100%;padding:.75rem 1rem;overflow-x:auto}.app-sidebar-nav{flex-direction:row}.app-sidebar-footer{border-top:none;padding-top:0}.app-content{padding:1.5rem}}
