:root{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, Helvetica, Arial, sans-serif;--color-background-primary: #FFFFFF;--color-background-secondary: #F7F6F3;--color-background-tertiary: #F0EEE9;--color-text-primary: #23211D;--color-text-secondary: #5F5E5A;--color-text-tertiary: #9C9A94;--color-border-tertiary: #E5E2DA;--border-radius-md: 8px;--border-radius-lg: 12px;--brand: #0F6E56;--brand-hover: #085041;--brand-tint: #E1F5EE;--brand-tint-strong: #5DCAA5;--info: #185FA5;--info-tint: #E6F1FB;--info-dot: #378ADD;--warning: #854F0B;--warning-tint: #FAEEDA;--warning-border: #EF9F27;--danger: #A32D2D;--danger-tint: #FCEBEB;--danger-border: #F09595;--accent: #534AB7;--accent-tint: #EEEDFE;--success: #3B6D11;--success-tint: #EAF3DE;--alert: #D85A30}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-sans);background:var(--color-background-tertiary);color:var(--color-text-primary)}button,input,select,textarea{font-family:inherit}a{text-decoration:none;color:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.hidden{display:none!important}.route-loading{width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;color:var(--brand);font-size:22px}.route-loading i{animation:spin .8s linear infinite}.app{display:flex;height:100vh;min-height:600px;background:var(--color-background-tertiary)}.main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.main.scrolls{overflow-y:auto}.content{padding:20px 24px;flex:1;overflow-y:auto}.body{display:flex;flex:1;overflow:hidden}.sidebar{width:220px;background:var(--color-background-primary);border-right:.5px solid var(--color-border-tertiary);display:flex;flex-direction:column;flex-shrink:0}.logo{padding:20px 20px 16px;border-bottom:.5px solid var(--color-border-tertiary)}.logo-mark{display:flex;align-items:center;gap:10px}.logo-icon{width:32px;height:32px;background:var(--brand);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--brand-tint);font-size:16px}.logo-text{font-size:15px;font-weight:500;color:var(--color-text-primary)}.logo-sub{font-size:11px;color:var(--color-text-tertiary)}.nav{padding:12px 10px;flex:1;overflow-y:auto}.nav-section{font-size:10px;font-weight:500;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.08em;padding:8px 10px 4px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--border-radius-md);cursor:pointer;font-size:13.5px;color:var(--color-text-secondary);margin-bottom:1px}.nav-item:hover{background:var(--color-background-secondary);color:var(--color-text-primary)}.nav-item.active{background:var(--brand-tint);color:var(--brand);font-weight:500}.nav-item.active i{color:var(--brand)}.nav-item i{font-size:17px;color:var(--color-text-tertiary);width:17px;text-align:center}.nav-item.disabled{cursor:default;color:var(--color-text-tertiary);opacity:.7}.nav-item.disabled:hover{background:none}.nav-badge{margin-left:auto;background:var(--brand);color:var(--brand-tint);font-size:10px;font-weight:500;padding:1px 6px;border-radius:10px}.nav-soon{margin-left:auto;background:var(--color-background-secondary);color:var(--color-text-tertiary);font-size:9px;font-weight:500;padding:1px 6px;border-radius:10px;letter-spacing:.03em}.sidebar-footer{padding:12px;border-top:.5px solid var(--color-border-tertiary)}.doctor-card{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--border-radius-md)}.doctor-name{font-size:13px;font-weight:500;color:var(--color-text-primary)}.doctor-role{font-size:11px;color:var(--color-text-tertiary)}.doctor-info{flex:1;min-width:0}.sidebar{transition:width .15s ease;overflow:hidden}.logo{display:flex;align-items:center;justify-content:space-between;gap:8px}.logo-mark{min-width:0}.logo-mark>div:not(.logo-icon){white-space:nowrap}.sidebar-toggle{border-color:transparent;color:var(--color-text-tertiary)}.nav-label{white-space:nowrap}.sidebar.collapsed{width:64px}.sidebar.collapsed .logo{flex-direction:column;padding:16px 0 12px;gap:10px}.sidebar.collapsed .logo-mark>div:not(.logo-icon),.sidebar.collapsed .nav-label,.sidebar.collapsed .doctor-info,.sidebar.collapsed .alert-banner span{display:none}.sidebar.collapsed .nav{padding:12px 8px}.sidebar.collapsed .nav-section{font-size:0;padding:0;margin:8px 6px;border-top:.5px solid var(--color-border-tertiary)}.sidebar.collapsed .nav-section:first-child{display:none}.sidebar.collapsed .nav-item{justify-content:center;padding:9px 0;position:relative}.sidebar.collapsed .nav-badge{position:absolute;top:4px;right:6px;font-size:0;padding:0;width:7px;height:7px}.sidebar.collapsed .sidebar-footer{padding:12px 8px}.sidebar.collapsed .alert-banner{justify-content:center;padding:8px 0!important}.sidebar.collapsed .doctor-card{flex-direction:column;padding:4px 0;gap:6px}.topbar{background:var(--color-background-primary);border-bottom:.5px solid var(--color-border-tertiary);padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;gap:16px}.topbar-left{display:flex;align-items:center;gap:16px;min-width:0}.topbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.page-title{font-size:15px;font-weight:500;color:var(--color-text-primary);white-space:nowrap}.date-badge{font-size:12px;color:var(--color-text-secondary);background:var(--color-background-secondary);padding:3px 10px;border-radius:var(--border-radius-md);border:.5px solid var(--color-border-tertiary);white-space:nowrap}.back-btn{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-secondary);cursor:pointer;padding:6px 10px;border-radius:var(--border-radius-md);border:.5px solid var(--color-border-tertiary);background:transparent}.back-btn:hover{background:var(--color-background-secondary)}.btn-primary{display:flex;align-items:center;gap:6px;background:var(--brand);color:var(--brand-tint);border:none;border-radius:var(--border-radius-md);padding:8px 14px;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap}.btn-primary:hover{background:var(--brand-hover)}.btn-secondary{padding:8px 16px;border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);background:transparent;color:var(--color-text-secondary);font-size:13px;cursor:pointer;display:flex;align-items:center;gap:6px}.btn-secondary:hover{background:var(--color-background-secondary)}.icon-btn{width:34px;height:34px;border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-secondary);font-size:17px;flex-shrink:0}.icon-btn:hover{background:var(--color-background-secondary);color:var(--color-text-primary)}.icon-btn.icon-btn-sm{width:28px;height:28px;font-size:14px}.icon-btn.icon-btn-borderless{border:none}.icon-btn.icon-btn-danger:hover{background:var(--danger-tint);color:var(--danger)}.notif-dot{position:relative}.notif-dot:after{content:"";position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--alert);border:1.5px solid var(--color-background-primary)}.avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;flex-shrink:0;background:var(--brand-tint);color:var(--brand)}.avatar.avatar-sm{width:28px;height:28px;font-size:10px}.avatar.avatar-md{width:40px;height:40px;font-size:14px}.avatar.avatar-lg{width:48px;height:48px;font-size:16px}.avatar.avatar-xl{width:60px;height:60px;font-size:20px}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.stat-card{background:var(--color-background-secondary);border-radius:var(--border-radius-md);padding:14px 16px}.stat-label{font-size:11px;color:var(--color-text-tertiary);margin-bottom:6px;display:flex;align-items:center;gap:6px}.stat-label i{font-size:14px}.stat-num{font-size:26px;font-weight:500;color:var(--color-text-primary);line-height:1}.stat-sub{font-size:11px;color:var(--color-text-tertiary);margin-top:4px}.stat-up{color:var(--brand)}.panel{background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);overflow:hidden}.panel-header{padding:14px 18px;border-bottom:.5px solid var(--color-border-tertiary);display:flex;align-items:center;justify-content:space-between;gap:10px}.panel-title{font-size:13.5px;font-weight:500;color:var(--color-text-primary);display:flex;align-items:center;gap:8px}.panel-title i{font-size:16px;color:var(--brand)}.panel-action{font-size:12px;color:var(--brand);cursor:pointer;background:none;border:none}.panel-meta{font-size:12px;color:var(--color-text-tertiary);white-space:nowrap}.date-navigator{margin-bottom:16px;overflow:hidden;border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);background:var(--color-background-primary)}.date-navigator-head{min-height:88px;padding:8px 12px;display:grid;grid-template-columns:minmax(72px,auto) minmax(0,1fr) auto;align-items:center;gap:10px}.date-navigator-title-row{display:flex;align-items:baseline;gap:7px}.date-navigator-month{color:var(--color-text-primary);font-size:15px;font-weight:500}.date-navigator-controls{display:flex;align-items:center;gap:7px}.date-navigator-controls>button:not(.date-navigator-today){width:28px;height:28px;padding:0;border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);background:var(--color-background-primary);color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer}.date-navigator-controls>button:not(.date-navigator-today):hover{background:var(--color-background-secondary)}.date-navigator-today{height:28px;padding:0 4px;border:0;background:transparent;color:var(--brand);font-size:11px;font-weight:500;cursor:pointer}.date-navigator-today:hover{text-decoration:underline}.date-navigator-scroll{min-width:0;overflow-x:auto}.date-navigator-days{min-width:420px;display:grid;grid-template-columns:repeat(7,minmax(52px,1fr));gap:4px}.date-navigator-day{min-height:70px;padding:7px 3px 6px;border:0;border-top:2px solid transparent;border-radius:var(--border-radius-md);background:transparent;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer}.date-navigator-day:hover{background:var(--color-background-secondary)}.date-navigator-day:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.date-navigator-day.active{border-top-color:var(--brand);background:var(--brand-tint)}.date-navigator-weekday{color:var(--color-text-tertiary);font-size:9px;font-weight:500}.date-navigator-day.active .date-navigator-weekday{color:var(--brand)}.date-navigator-number{width:34px;height:34px;border-radius:var(--border-radius-md);background:var(--color-background-tertiary);color:var(--color-text-primary);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500}.date-navigator-day.active .date-navigator-number{background:var(--brand);color:var(--brand-tint)}.schedule-empty{min-height:150px;padding:24px;color:var(--color-text-tertiary);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:12px}.schedule-empty i{font-size:22px}.toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:10px;flex-wrap:wrap}.toolbar-left{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.search-wrap{display:flex;align-items:center;gap:8px;background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);padding:0 10px;height:34px;min-width:220px}.search-wrap.search-wrap-sm{height:32px;background:var(--color-background-secondary);min-width:0}.search-wrap i{font-size:15px;color:var(--color-text-tertiary)}.search-wrap input{border:none;background:transparent;outline:none;font-size:13px;color:var(--color-text-primary);width:100%}.filter-select{height:34px;border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);background:var(--color-background-primary);color:var(--color-text-secondary);font-size:13px;padding:0 10px;cursor:pointer;outline:none}.filter-select.filter-select-sm{height:30px;font-size:12px;padding:0 8px}.view-tabs{display:flex;border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);overflow:hidden;flex-shrink:0}.view-tab{padding:6px 12px;font-size:12px;cursor:pointer;background:var(--color-background-primary);color:var(--color-text-secondary);border:none;border-right:.5px solid var(--color-border-tertiary)}.view-tab:last-child{border-right:none}.view-tab.active{background:var(--brand-tint);color:var(--brand);font-weight:500}.tab-row{display:flex;gap:4px;flex-wrap:wrap}.tab-pill{padding:5px 10px;border-radius:var(--border-radius-md);font-size:12px;cursor:pointer;color:var(--color-text-secondary);border:none;background:transparent}.tab-pill.active{background:var(--brand-tint);color:var(--brand);font-weight:500}.tab-pill:hover:not(.active){background:var(--color-background-secondary)}.badge{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500;white-space:nowrap;display:inline-block}.badge.badge-sm{font-size:10px;padding:2px 7px}.badge-neutral{background:var(--color-background-secondary);color:var(--color-text-tertiary)}.badge-active{background:var(--brand-tint);color:var(--brand)}.badge-pending,.badge-warning{background:var(--warning-tint);color:var(--warning)}.badge-info{background:var(--info-tint);color:var(--info)}.badge-danger{background:var(--danger-tint);color:var(--danger)}.badge-accent{background:var(--accent-tint);color:var(--accent)}.badge-success{background:var(--success-tint);color:var(--success)}.code-badge{font-size:11px;font-weight:500;padding:2px 7px;border-radius:6px;background:var(--info-tint);color:var(--info);white-space:nowrap;flex-shrink:0}.chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:10px;font-size:12px;font-weight:500;margin:3px}.chip-danger{background:var(--danger-tint);color:var(--danger)}.chip-warning{background:var(--warning-tint);color:var(--warning)}.data-table{width:100%;border-collapse:collapse}.table-head-cell{padding:9px 14px;font-size:11px;font-weight:500;color:var(--color-text-tertiary);text-align:left;border-bottom:.5px solid var(--color-border-tertiary);background:var(--color-background-secondary)}.table-cell{padding:11px 14px;font-size:13px;color:var(--color-text-primary);border-bottom:.5px solid var(--color-border-tertiary);vertical-align:middle}.table-row:last-child .table-cell{border-bottom:none}.table-row:hover .table-cell{background:var(--color-background-secondary);cursor:pointer}.cell-avatar{display:flex;align-items:center;gap:10px}.cell-name{font-size:13px;font-weight:500;color:var(--color-text-primary)}.cell-sub{font-size:11px;color:var(--color-text-tertiary)}.row-actions{display:flex;gap:6px}.list-row{display:flex;align-items:center;gap:12px;padding:11px 18px;border-bottom:.5px solid var(--color-border-tertiary);cursor:pointer}.list-row:last-child{border-bottom:none}.list-row:hover{background:var(--color-background-secondary)}.schedule-status-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-shrink:0}.appointment-checkin-btn{height:28px;padding:0 9px;border:1px solid #B5D4F4;border-radius:var(--border-radius-md);background:var(--info-tint);color:var(--info);display:flex;align-items:center;gap:5px;font-size:11px;font-weight:500;white-space:nowrap;cursor:pointer}.appointment-checkin-btn:hover{background:var(--info);color:var(--color-background-primary)}.appointment-checkin-btn:disabled{cursor:wait;opacity:.65}.appointment-checkin-btn .ti-loader-2{animation:spin .8s linear infinite}.form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.form-group:last-child{margin-bottom:0}.form-label{font-size:12px;font-weight:500;color:var(--color-text-secondary)}.form-input,.form-select,.form-textarea{border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);background:var(--color-background-primary);color:var(--color-text-primary);font-size:13px;outline:none;width:100%}.form-input,.form-select{height:36px;padding:0 10px}.form-select{cursor:pointer}.form-textarea{padding:10px;resize:vertical;min-height:80px;line-height:1.6}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--brand)}.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:14px}.form-row-5{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.form-row-2:last-child,.form-row-3:last-child{margin-bottom:0}.time-picker{position:relative;width:100%}.time-picker-trigger{width:100%;height:36px;padding:0 10px;border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);background:var(--color-background-primary);color:var(--color-text-primary);display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;cursor:pointer}.time-picker-trigger:hover{border-color:var(--color-text-tertiary)}.time-picker-trigger:focus-visible,.time-picker-trigger.open{border-color:var(--brand);outline:2px solid var(--brand-tint);outline-offset:1px}.time-picker-trigger i{color:var(--color-text-tertiary);font-size:16px}.time-picker-popover{position:fixed;z-index:100;width:244px;overflow:hidden;border:1px solid #B5D4F4;border-radius:var(--border-radius-md);background:#f2f8fd;box-shadow:0 12px 32px #185fa533}.time-picker-heading{display:grid;grid-template-columns:1fr 1fr 72px;padding:8px 8px 7px;border-bottom:1px solid #B5D4F4;background:var(--info-tint)}.time-picker-heading span{color:var(--info);font-size:10px;font-weight:500;text-align:center;text-transform:uppercase}.time-picker-columns{display:grid;grid-template-columns:1fr 1fr 72px;padding:6px}.time-picker-options{height:172px;overflow-y:auto;padding:0 3px;scrollbar-color:var(--color-border-tertiary) transparent;scrollbar-width:thin}.time-picker-options+.time-picker-options{border-left:1px solid #C8DFF4}.time-picker-options button{width:100%;min-height:32px;border:0;border-radius:var(--border-radius-md);background:transparent;color:var(--color-text-secondary);font-size:12px;cursor:pointer}.time-picker-options button:hover{background:var(--info-tint);color:var(--info)}.time-picker-options button.selected{background:var(--brand);color:var(--brand-tint);font-weight:500}.time-picker-period{overflow:hidden}.time-picker-footer{min-height:40px;padding:6px 9px;border-top:1px solid #B5D4F4;background:var(--info-tint);display:flex;align-items:center;justify-content:space-between}.time-picker-footer span{color:var(--color-text-secondary);font-size:12px;font-weight:500}.time-picker-footer button{height:28px;padding:0 10px;border:0;border-radius:var(--border-radius-md);background:var(--brand);color:var(--brand-tint);font-size:11px;font-weight:500;cursor:pointer}.time-picker-footer button:hover{background:var(--brand-hover)}.vital-input{display:flex;flex-direction:column;gap:5px}.vital-input-label{font-size:11px;font-weight:500;color:var(--color-text-secondary)}.vital-input-label i{font-size:13px;vertical-align:-1px;color:var(--brand);margin-right:3px}.vital-input-wrap{display:flex;align-items:center;border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);overflow:hidden}.vital-input-wrap:focus-within{border-color:var(--brand)}.vital-input-wrap input{flex:1;border:none;background:var(--color-background-primary);color:var(--color-text-primary);font-size:14px;font-weight:500;padding:0 10px;height:40px;outline:none;width:0}.vital-input-wrap.readonly input{background:var(--color-background-secondary);color:var(--color-text-secondary)}.vital-input-unit{font-size:10px;color:var(--color-text-tertiary);padding:0 10px;background:var(--color-background-secondary);height:40px;display:flex;align-items:center;border-left:.5px solid var(--color-border-tertiary);white-space:nowrap}.alert-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--border-radius-md);font-size:12px;margin-bottom:12px}.alert-banner i{font-size:16px;flex-shrink:0}.alert-banner-danger{background:var(--danger-tint);border:.5px solid var(--danger-border);color:var(--danger)}.alert-banner-info{background:var(--info-tint);border:.5px solid #B5D4F4;color:var(--info)}.alert-banner-warning{background:var(--warning-tint);border:.5px solid var(--warning-border);color:var(--warning)}.alert-banner-success{background:var(--brand-tint);border:.5px solid var(--brand-tint-strong);color:var(--brand-hover)}.alert-banner-success .alert-banner-title{font-weight:500;color:var(--brand-hover)}.alert-banner-success .alert-banner-sub{color:var(--brand);font-size:11px}.modal-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;padding:24px;z-index:20}.modal{background:var(--color-background-primary);border-radius:var(--border-radius-lg);border:.5px solid var(--color-border-tertiary);width:100%;max-width:520px;max-height:100%;display:flex;flex-direction:column}.modal-header{padding:16px 20px;border-bottom:.5px solid var(--color-border-tertiary);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.modal-title{font-size:14px;font-weight:500;color:var(--color-text-primary);display:flex;align-items:center;gap:8px}.modal-title i{color:var(--brand);font-size:15px}.modal-body{padding:20px;overflow-y:auto}.modal-footer{padding:14px 20px;border-top:.5px solid var(--color-border-tertiary);display:flex;justify-content:flex-end;gap:8px;flex-shrink:0}.drawer-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:flex-start;justify-content:flex-end;z-index:20}.drawer-panel{width:380px;max-width:100%;height:100%;background:var(--color-background-primary);border-left:.5px solid var(--color-border-tertiary);display:flex;flex-direction:column}.drawer-header{padding:16px 20px;border-bottom:.5px solid var(--color-border-tertiary);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.drawer-body{padding:20px;flex:1;overflow-y:auto}.drawer-section{margin-bottom:18px}.drawer-section-title{font-size:11px;font-weight:500;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.07em;margin-bottom:10px}.drawer-field{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:.5px solid var(--color-border-tertiary);gap:12px}.drawer-field:last-child{border-bottom:none}.drawer-field-key{font-size:12px;color:var(--color-text-tertiary)}.drawer-field-val{font-size:12px;color:var(--color-text-primary);font-weight:500;text-align:right}.action-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.action-tile{background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:14px;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.action-tile:hover{border-color:var(--brand)}.action-tile-icon{font-size:20px;color:var(--brand);margin-bottom:6px}.action-tile-label{font-size:13px;font-weight:500;color:var(--color-text-primary)}.action-tile-sub{font-size:11px;color:var(--color-text-tertiary)}.action-tile.action-tile-center{align-items:center;text-align:center}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:400px;gap:10px;text-align:center;padding:24px}.empty-state i{font-size:36px;color:var(--color-text-tertiary)}.empty-state-text{font-size:14px;font-weight:500;color:var(--color-text-secondary)}.empty-state-sub{font-size:12px;color:var(--color-text-tertiary);max-width:260px}.list-col{width:320px;border-right:.5px solid var(--color-border-tertiary);background:var(--color-background-primary);display:flex;flex-direction:column;flex-shrink:0}.list-col.list-col-narrow{width:300px}.list-col-header{padding:12px 14px;border-bottom:.5px solid var(--color-border-tertiary);display:flex;flex-direction:column;gap:8px;flex-shrink:0}.list-col-body{flex:1;overflow-y:auto}.list-item{padding:11px 14px;border-bottom:.5px solid var(--color-border-tertiary);cursor:pointer}.list-item:hover{background:var(--color-background-secondary)}.list-item.active{background:var(--brand-tint);border-left:3px solid var(--brand)}.list-item-top{display:flex;align-items:center;gap:10px;margin-bottom:6px}.list-item-name{font-size:13px;font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-item-meta{font-size:11px;color:var(--color-text-tertiary)}.list-item-sub{font-size:12px;color:var(--color-text-secondary);margin-bottom:4px;padding-left:42px}.list-item-tags{display:flex;gap:4px;padding-left:42px;flex-wrap:wrap}.detail-col{flex:1;overflow-y:auto;background:var(--color-background-tertiary);position:relative}.detail-inner{padding:20px 22px}.detail-header{background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:16px 20px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.detail-header-left{display:flex;align-items:center;gap:14px;min-width:0}.detail-header-right{display:flex;align-items:center;gap:8px}.detail-name{font-size:16px;font-weight:500;color:var(--color-text-primary)}.detail-meta{font-size:12px;color:var(--color-text-tertiary);margin-top:2px}.detail-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.detail-cell{background:var(--color-background-secondary);border-radius:var(--border-radius-md);padding:10px 12px}.detail-cell-label{font-size:10px;color:var(--color-text-tertiary);margin-bottom:3px}.detail-cell-val{font-size:13px;font-weight:500;color:var(--color-text-primary)}.record-tabs{display:flex;border-bottom:.5px solid var(--color-border-tertiary);overflow-x:auto}.record-tab{padding:10px 16px;font-size:12px;font-weight:500;color:var(--color-text-tertiary);cursor:pointer;border:none;background:transparent;border-bottom:2px solid transparent;white-space:nowrap}.record-tab.active{color:var(--brand);border-bottom-color:var(--brand)}.record-tab:hover:not(.active){color:var(--color-text-secondary)}.record-tab-wrap{background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);overflow:hidden;margin-bottom:14px}.vitals-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:16px}.vital-card{background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);padding:12px 14px;text-align:center}.vital-card-icon{font-size:18px;color:var(--brand);margin-bottom:6px}.vital-card-value{font-size:18px;font-weight:500;color:var(--color-text-primary);line-height:1}.vital-card-unit{font-size:10px;color:var(--color-text-tertiary)}.vital-card-label{font-size:11px;color:var(--color-text-secondary);margin-top:4px}.vital-card.alert .vital-card-value{color:var(--alert)}.soap-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.soap-card{background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);overflow:hidden}.soap-head{padding:10px 14px;border-bottom:.5px solid var(--color-border-tertiary);display:flex;align-items:center;gap:8px}.soap-letter{width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;flex-shrink:0}.soap-letter.soap-letter-lg{width:24px;height:24px;border-radius:7px;font-size:13px}.soap-title{font-size:13px;font-weight:500;color:var(--color-text-primary)}.soap-body{padding:12px 14px;font-size:12px;color:var(--color-text-secondary);line-height:1.6}.dx-list{background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);overflow:hidden;margin-bottom:16px}.dx-head{padding:12px 16px;border-bottom:.5px solid var(--color-border-tertiary);display:flex;align-items:center;justify-content:space-between}.dx-title{font-size:13px;font-weight:500;color:var(--color-text-primary);display:flex;align-items:center;gap:6px}.dx-title i{color:var(--brand);font-size:15px}.dx-item{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:.5px solid var(--color-border-tertiary)}.dx-item:last-child{border-bottom:none}.dx-name{font-size:13px;color:var(--color-text-primary);flex:1}.dx-type{font-size:11px;color:var(--color-text-tertiary)}.dx-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:.5px solid var(--color-border-tertiary)}.dx-row:last-child{border-bottom:none}.dx-row .form-select{width:110px;height:30px;font-size:11px;padding:0 6px}.remove-btn{width:24px;height:24px;border:none;background:transparent;cursor:pointer;color:var(--color-text-tertiary);font-size:14px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-md);flex-shrink:0}.remove-btn:hover{background:var(--danger-tint);color:var(--danger)}.add-dx-row{display:flex;gap:8px;margin-top:12px}.cal-nav{display:flex;align-items:center;gap:12px}.cal-nav span{font-size:13px;font-weight:500;color:var(--color-text-primary)}.cal-nav button{width:26px;height:26px;border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);background:transparent;cursor:pointer;color:var(--color-text-secondary);font-size:14px;display:flex;align-items:center;justify-content:center}.cal-nav button:hover{background:var(--color-background-secondary)}.calendar{padding:14px 18px}.cal-days-header{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:6px}.cal-day-label{text-align:center;font-size:11px;color:var(--color-text-tertiary);font-weight:500;padding:4px 0}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-md);font-size:12px;color:var(--color-text-secondary);cursor:pointer;position:relative}.cal-cell:hover{background:var(--color-background-secondary)}.cal-cell.other-month{color:var(--color-text-tertiary)}.cal-cell.today{background:var(--brand);color:var(--brand-tint);font-weight:500}.cal-cell.has-appt:after{content:"";position:absolute;bottom:3px;width:4px;height:4px;border-radius:50%;background:var(--brand)}.cal-cell.today.has-appt:after{background:var(--brand-tint)}.cal-cell.selected{border:1.5px solid var(--brand);color:var(--brand);font-weight:500}.mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px 18px;border-bottom:.5px solid var(--color-border-tertiary)}.mini-stat{background:var(--color-background-secondary);border-radius:var(--border-radius-md);padding:10px 12px}.mini-stat-label{font-size:10px;color:var(--color-text-tertiary);margin-bottom:4px}.mini-stat-num{font-size:20px;font-weight:500;color:var(--color-text-primary)}.upcoming-item{display:flex;align-items:center;gap:10px;padding:10px 18px;border-bottom:.5px solid var(--color-border-tertiary);cursor:pointer}.upcoming-item:last-child{border-bottom:none}.upcoming-item:hover{background:var(--color-background-secondary)}.upcoming-time{font-size:11px;font-weight:500;color:var(--color-text-tertiary);width:36px;flex-shrink:0}.upcoming-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--info-dot)}.upcoming-name{font-size:12px;font-weight:500;color:var(--color-text-primary)}.upcoming-type{font-size:11px;color:var(--color-text-tertiary)}.queue-num{width:24px;height:24px;border-radius:50%;background:var(--color-background-secondary);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;color:var(--color-text-secondary);flex-shrink:0}.queue-num.active{background:var(--brand);color:var(--brand-tint)}.queue-info{flex:1;min-width:0}.queue-name{font-size:13px;font-weight:500;color:var(--color-text-primary)}.queue-detail{font-size:11px;color:var(--color-text-tertiary)}.queue-wait{font-size:11px;color:var(--color-text-secondary);flex-shrink:0}.queue-row-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--brand);flex-shrink:0;animation:pulse 2s infinite}.queue-done-btn{width:28px;height:28px;border:1px solid var(--brand-tint-strong);border-radius:var(--border-radius-md);background:var(--brand-tint);color:var(--brand);display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer}.queue-done-btn:hover{background:var(--brand);color:var(--brand-tint)}.queue-room-btn{width:28px;height:28px;border:1px solid #B5D4F4;border-radius:var(--border-radius-md);background:var(--info-tint);color:var(--info);display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer}.queue-room-btn:hover{background:var(--info);color:var(--color-background-primary)}.queue-done-btn:disabled,.queue-room-btn:disabled{cursor:wait;opacity:.65}.queue-done-btn .ti-loader-2,.queue-room-btn .ti-loader-2{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px 18px}.qa-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);cursor:pointer;background:transparent;font-size:11px;color:var(--color-text-secondary)}.qa-btn:hover{background:var(--color-background-secondary);color:var(--color-text-primary)}.qa-btn i{font-size:20px;color:var(--brand)}.grid-view{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.patient-card{background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:16px;cursor:pointer;transition:border-color .15s}.patient-card:hover{border-color:var(--brand)}.patient-card-top{display:flex;flex-direction:column;align-items:center;margin-bottom:12px}.patient-card-top .avatar{margin-bottom:8px}.patient-card-name{font-size:13px;font-weight:500;color:var(--color-text-primary);text-align:center}.patient-card-id{font-size:11px;color:var(--color-text-tertiary);text-align:center}.patient-card-divider{border:none;border-top:.5px solid var(--color-border-tertiary);margin:10px 0}.patient-card-row{display:flex;justify-content:space-between;font-size:11px;margin-bottom:4px}.patient-card-row-label{color:var(--color-text-tertiary)}.patient-card-row-val{color:var(--color-text-secondary);font-weight:500}.patient-card-actions{display:flex;gap:6px;margin-top:10px}.patient-card-btn{flex:1;padding:5px 0;border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);background:transparent;font-size:11px;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px}.patient-card-btn:hover{background:var(--color-background-secondary)}.patient-card-btn.primary{background:var(--brand);color:var(--brand-tint);border-color:var(--brand)}.patient-card-btn.primary:hover{background:var(--brand-hover)}.timeline-item{display:flex;gap:14px;padding:14px 16px;border-bottom:.5px solid var(--color-border-tertiary)}.timeline-item:last-child{border-bottom:none}.tl-left{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:56px}.tl-date{font-size:10px;font-weight:500;color:var(--color-text-tertiary);text-align:center}.tl-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin:4px auto}.tl-line{flex:1;width:1px;background:var(--color-border-tertiary)}.tl-right{flex:1;min-width:0}.tl-title-row{display:flex;align-items:center;gap:8px;margin-bottom:3px}.tl-title{font-size:13px;font-weight:500;color:var(--color-text-primary)}.tl-meta{font-size:11px;color:var(--color-text-tertiary);margin-bottom:6px}.tl-body{font-size:12px;color:var(--color-text-secondary);line-height:1.6}.lab-row{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:.5px solid var(--color-border-tertiary)}.lab-row:last-child{border-bottom:none}.lab-name{font-size:13px;color:var(--color-text-primary);flex:1}.lab-val{font-size:13px;font-weight:500;min-width:80px;text-align:right}.lab-val.normal{color:var(--success)}.lab-val.abnormal{color:var(--danger)}.lab-range{font-size:11px;color:var(--color-text-tertiary);min-width:100px;text-align:right}.rx-record-item{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-bottom:.5px solid var(--color-border-tertiary)}.rx-record-item:last-child{border-bottom:none}.rx-record-icon{width:32px;height:32px;border-radius:var(--border-radius-md);background:var(--accent-tint);display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--accent);flex-shrink:0}.rx-record-drug{font-size:13px;font-weight:500;color:var(--color-text-primary)}.rx-record-dose{font-size:11px;color:var(--color-text-secondary)}.rx-record-date{font-size:11px;color:var(--color-text-tertiary);margin-left:auto;flex-shrink:0}.doc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:14px 16px}.doc-card{border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);padding:12px;cursor:pointer;display:flex;flex-direction:column;gap:6px}.doc-card:hover{border-color:var(--brand)}.doc-icon{font-size:22px;color:var(--brand)}.doc-name{font-size:12px;font-weight:500;color:var(--color-text-primary)}.doc-meta{font-size:10px;color:var(--color-text-tertiary)}.step-bar{display:flex;align-items:center;overflow-x:auto}.step{display:flex;align-items:center;gap:6px;padding:0 14px;height:56px;font-size:12px;color:var(--color-text-tertiary);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}.step.active{color:var(--brand);font-weight:500;border-bottom-color:var(--brand)}.step.done{color:var(--color-text-secondary)}.step-num{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--color-border-tertiary);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:500}.step.active .step-num{background:var(--brand);color:var(--brand-tint);border-color:var(--brand)}.step.done .step-num{background:var(--brand-tint);color:var(--brand);border-color:var(--brand)}.step-dots{display:flex;gap:6px}.step-dot{width:6px;height:6px;border-radius:3px;background:var(--color-border-tertiary);transition:all .2s}.step-dot.current{width:20px;background:var(--brand)}.step-dot.past{background:var(--brand-tint-strong)}.form-wrap{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.section{background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);overflow:hidden}.sec-head{padding:14px 18px;border-bottom:.5px solid var(--color-border-tertiary);display:flex;align-items:center;gap:10px}.sec-icon{width:28px;height:28px;border-radius:var(--border-radius-md);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}.sec-title{font-size:13.5px;font-weight:500;color:var(--color-text-primary)}.sec-sub{font-size:11px;color:var(--color-text-tertiary);margin-left:auto}.sec-body{padding:18px}.footer-bar{background:var(--color-background-primary);border-top:.5px solid var(--color-border-tertiary);padding:12px 24px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.pat-found{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--color-background-secondary);border-radius:var(--border-radius-md);border:.5px solid var(--color-border-tertiary);margin-bottom:14px}.pat-found .avatar{flex-shrink:0}.pat-info{flex:1;min-width:0}.pat-name{font-size:13px;font-weight:500;color:var(--color-text-primary)}.pat-detail{font-size:11px;color:var(--color-text-tertiary)}.pat-change{font-size:12px;color:var(--brand);cursor:pointer;text-decoration:underline;flex-shrink:0}.review-cell{background:var(--color-background-secondary);border-radius:var(--border-radius-md);padding:12px 14px}.review-cell-label{font-size:10px;color:var(--color-text-tertiary);margin-bottom:4px}.review-cell-val{font-size:13px;font-weight:500;color:var(--color-text-primary)}.review-cell-sub{font-size:11px;color:var(--color-text-tertiary)}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.rx-slip{background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);overflow:hidden;margin-bottom:14px}.slip-header{padding:16px 20px;border-bottom:.5px solid var(--color-border-tertiary);display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.clinic-name{font-size:14px;font-weight:500;color:var(--color-text-primary)}.clinic-sub{font-size:11px;color:var(--color-text-tertiary);margin-top:2px}.rx-symbol{font-size:28px;font-weight:500;color:var(--brand);line-height:1;text-align:right}.slip-patient{padding:12px 20px;border-bottom:.5px solid var(--color-border-tertiary);display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;background:var(--color-background-secondary)}.sp-field{display:flex;flex-direction:column;gap:2px}.sp-label{font-size:10px;color:var(--color-text-tertiary)}.sp-val{font-size:12px;font-weight:500;color:var(--color-text-primary)}.slip-drugs{padding:16px 20px}.drug-entry{display:flex;gap:14px;padding:12px 14px;border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);margin-bottom:10px;background:var(--color-background-primary)}.drug-entry:last-child{margin-bottom:0}.drug-num{width:22px;height:22px;border-radius:50%;background:var(--brand-tint);color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;flex-shrink:0;margin-top:1px}.drug-info{flex:1}.drug-name{font-size:13px;font-weight:500;color:var(--color-text-primary);margin-bottom:2px}.drug-sig{font-size:12px;color:var(--color-text-secondary)}.drug-note{font-size:11px;color:var(--color-text-tertiary);margin-top:3px}.drug-qty{font-size:11px;font-weight:500;color:var(--brand);background:var(--brand-tint);padding:2px 8px;border-radius:8px;align-self:flex-start;flex-shrink:0}.slip-footer{padding:14px 20px;border-top:.5px solid var(--color-border-tertiary);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.sig-line{border-top:.5px solid var(--color-border-tertiary);padding-top:6px;font-size:11px;color:var(--color-text-tertiary);text-align:center;min-width:160px}.instructions-card{background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);overflow:hidden;margin-bottom:14px}.ic-head{padding:12px 16px;border-bottom:.5px solid var(--color-border-tertiary);display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--color-text-primary)}.ic-head i{color:var(--brand);font-size:15px}.ic-body{padding:14px 16px;display:flex;flex-direction:column;gap:8px}.ic-row{display:flex;align-items:flex-start;gap:10px;font-size:12px;color:var(--color-text-secondary)}.ic-row i{font-size:15px;color:var(--brand);flex-shrink:0;margin-top:1px}.drug-form-row{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);margin-bottom:8px;background:var(--color-background-secondary)}.drug-form-num{width:20px;height:20px;border-radius:50%;background:var(--brand);color:var(--brand-tint);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:500;flex-shrink:0;margin-top:2px}.add-drug-btn{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--brand);background:none;border:.5px dashed var(--brand-tint-strong);border-radius:var(--border-radius-md);padding:7px 12px;cursor:pointer;width:100%;justify-content:center;margin-top:4px}.line-item{display:flex;align-items:center;gap:14px;padding:12px 14px;border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);margin-bottom:10px;background:var(--color-background-primary)}.line-item:last-child{margin-bottom:0}.line-item-num{width:22px;height:22px;border-radius:50%;background:var(--brand-tint);color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;flex-shrink:0}.line-item-info{flex:1;min-width:0}.line-item-name{font-size:13px;font-weight:500;color:var(--color-text-primary);margin-bottom:2px}.line-item-desc{font-size:11px;color:var(--color-text-tertiary)}.line-item-amount{font-size:13px;font-weight:500;color:var(--color-text-primary);flex-shrink:0}.invoice-totals{padding:14px 20px;background:var(--color-background-secondary)}.invoice-total-row{display:flex;justify-content:space-between;font-size:12px;color:var(--color-text-secondary);padding:3px 0}.invoice-total-row.grand{font-size:15px;font-weight:500;color:var(--color-text-primary);padding-top:10px;margin-top:6px;border-top:.5px solid var(--color-border-tertiary)}.invoice-total-row.balance{color:var(--danger);font-weight:500}.invoice-total-row.paid-amt{color:var(--brand)}.chart-bars{display:flex;align-items:flex-end;gap:14px;padding:18px;height:190px}.chart-bar-col{flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;position:relative;cursor:default;border-radius:var(--border-radius-md)}.chart-bar-value{font-size:11px;font-weight:500;color:var(--color-text-secondary)}.chart-bar-track{width:100%;max-width:28px;flex:1;display:flex;align-items:flex-end}.chart-bar-fill{width:100%;border-radius:4px 4px 0 0;background:var(--brand-tint-strong);transition:background .15s}.chart-bar-col.current .chart-bar-fill{background:var(--brand)}.chart-bar-col.current .chart-bar-value{color:var(--brand);font-weight:600}.chart-bar-col:hover .chart-bar-fill,.chart-bar-col:focus-visible .chart-bar-fill{background:var(--brand-hover)}.chart-bar-label{font-size:11px;color:var(--color-text-tertiary)}.chart-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--color-text-primary);color:var(--color-background-primary);font-size:11px;padding:4px 8px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;z-index:5}.chart-bar-col:hover .chart-tooltip,.chart-bar-col:focus-visible .chart-tooltip{opacity:1}.hbar-list{padding:6px 18px 16px;display:flex;flex-direction:column;gap:12px}.hbar-row{display:flex;align-items:center;gap:10px;border-radius:var(--border-radius-md);padding:4px}.hbar-row:hover{background:var(--color-background-secondary)}.hbar-label{width:128px;flex-shrink:0;font-size:12px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbar-track{flex:1;height:16px;background:var(--color-background-secondary);border-radius:4px;overflow:hidden}.hbar-fill{height:100%;border-radius:4px;background:var(--brand-tint-strong)}.hbar-value{width:34px;flex-shrink:0;text-align:right;font-size:12px;font-weight:500;color:var(--color-text-primary)}.hbar-value.hbar-value-wide{width:72px}.hbar-sub{font-size:10px;color:var(--color-text-tertiary)}.status-mix-bar{display:flex;height:20px;border-radius:4px;overflow:hidden;gap:2px;margin:4px 18px 14px}.status-mix-seg{height:100%;cursor:default}.status-mix-legend{display:flex;flex-wrap:wrap;gap:14px;padding:0 18px 16px}.status-mix-key{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-secondary)}.status-mix-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.status-mix-key strong{color:var(--color-text-primary);font-weight:500}.meter-ring{width:128px;height:128px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.meter-ring-inner{width:96px;height:96px;border-radius:50%;background:var(--color-background-primary);display:flex;flex-direction:column;align-items:center;justify-content:center}.meter-ring-value{font-size:22px;font-weight:600;color:var(--color-text-primary);line-height:1}.meter-ring-label{font-size:10px;color:var(--color-text-tertiary);margin-top:3px}.report-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-hint{font-size:11px;color:var(--color-text-tertiary)}.form-hint-warning{display:flex;align-items:center;gap:5px;color:var(--warning)}.form-hint-warning i{font-size:12px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:.5px solid var(--color-border-tertiary)}.toggle-row:last-child{border-bottom:none}.toggle-row-label{font-size:13px;font-weight:500;color:var(--color-text-primary)}.toggle-row-sub{font-size:11px;color:var(--color-text-tertiary);margin-top:2px}.toggle-switch{position:relative;width:38px;height:22px;flex-shrink:0;display:inline-block}.toggle-switch input{opacity:0;width:100%;height:100%;margin:0;cursor:pointer;position:absolute;z-index:1}.toggle-track{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-border-tertiary);border-radius:11px;transition:background .15s}.toggle-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;background:var(--color-background-primary);border-radius:50%;transition:transform .15s;box-shadow:0 1px 2px #00000026}.toggle-switch input:checked~.toggle-track{background:var(--brand)}.toggle-switch input:checked~.toggle-thumb{transform:translate(16px)}.toggle-switch input:focus-visible~.toggle-track{outline:2px solid var(--brand);outline-offset:2px}.hours-row{display:flex;align-items:center;gap:14px;padding:10px 0;border-bottom:.5px solid var(--color-border-tertiary)}.hours-row:last-child{border-bottom:none}.hours-day{width:96px;flex-shrink:0;font-size:13px;font-weight:500;color:var(--color-text-primary)}.hours-row.closed .hours-time{opacity:.4;pointer-events:none}.hours-time{display:flex;align-items:center;gap:8px;flex:1}.hours-time span{font-size:12px;color:var(--color-text-tertiary)}.hours-closed-toggle{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}.hours-closed-label{font-size:12px;color:var(--color-text-tertiary)}.session-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:.5px solid var(--color-border-tertiary)}.session-row:last-child{border-bottom:none}.session-icon{width:36px;height:36px;border-radius:var(--border-radius-md);background:var(--color-background-secondary);display:flex;align-items:center;justify-content:center;font-size:17px;color:var(--color-text-secondary);flex-shrink:0}.session-icon.current{background:var(--brand-tint);color:var(--brand)}.session-icon.danger{background:var(--danger-tint);color:var(--danger)}.session-name{font-size:13px;font-weight:500;color:var(--color-text-primary)}.session-meta{font-size:11px;color:var(--color-text-tertiary)}.trend-chart-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;padding:14px 18px 18px}.trend-chart-card{border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);padding:10px 12px 6px;background:var(--color-background-primary)}.trend-chart-title{font-size:12px;font-weight:500;color:var(--color-text-primary)}.trend-chart-range{font-size:10px;color:var(--color-text-tertiary);margin-bottom:2px}.trend-legend{display:flex;gap:16px;padding:12px 18px 0}.auth-page{min-height:100vh;display:flex;background:var(--color-background-tertiary)}.auth-brand-panel{flex:1 1 46%;position:relative;display:flex;align-items:center;justify-content:center;padding:56px;overflow:hidden;color:var(--brand-tint);background:linear-gradient(155deg,var(--brand) 0%,var(--brand-hover) 100%)}.auth-brand-panel.admin-brand-panel{color:#cbd5e1;background:linear-gradient(155deg,#1f2937,#0f172a)}.auth-brand-panel.admin-brand-panel .logo-icon,.auth-brand-panel.admin-brand-panel .auth-brand-features i{background:#ffffff1a}.admin-sidebar .logo-icon{background:#1f2937;color:#cbd5e1}.admin-sidebar .nav-item.active{background:#e2e8f0;color:#1f2937}.auth-brand-panel:before,.auth-brand-panel:after{content:"";position:absolute;border-radius:50%;background:#ffffff12;pointer-events:none}.auth-brand-panel:before{width:440px;height:440px;top:-160px;right:-140px}.auth-brand-panel:after{width:300px;height:300px;bottom:-120px;left:-90px;background:#ffffff0d}.auth-brand-content{position:relative;z-index:1;max-width:380px}.auth-brand-logo{display:flex;align-items:center;gap:10px;margin-bottom:44px}.auth-brand-logo .logo-icon{width:36px;height:36px;font-size:17px;border-radius:9px;background:#ffffff29;color:#fff}.auth-brand-wordmark{font-size:15px;font-weight:600;color:#fff}.auth-brand-heading{font-size:26px;font-weight:600;line-height:1.3;color:#fff;margin:0 0 12px}.auth-brand-copy{font-size:13.5px;line-height:1.6;color:var(--brand-tint);margin:0 0 32px}.auth-brand-features{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.auth-brand-features li{display:flex;align-items:center;gap:10px;font-size:13px;color:#fff}.auth-brand-features i{width:26px;height:26px;border-radius:8px;background:#ffffff29;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}.auth-form-panel{flex:1 1 54%;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{width:100%;max-width:400px;background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:32px 28px;box-shadow:0 1px 3px #23211d0a,0 8px 24px #23211d0d}.auth-logo{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:22px}.auth-logo .logo-icon{width:48px;height:48px;font-size:22px;border-radius:12px}.auth-logo-text{font-size:16px;font-weight:500;color:var(--color-text-primary);text-align:center}.auth-logo-sub{font-size:11px;color:var(--color-text-tertiary);text-align:center}.auth-title{font-size:18px;font-weight:600;color:var(--color-text-primary);text-align:center}.auth-subtitle{font-size:13px;color:var(--color-text-tertiary);text-align:center;margin-top:4px;margin-bottom:24px}.auth-row{display:flex;align-items:center;justify-content:space-between;margin:2px 0 20px;font-size:12px;gap:10px}.auth-checkbox{display:flex;align-items:center;gap:6px;color:var(--color-text-secondary);cursor:pointer}.auth-checkbox input{margin:0;cursor:pointer}.auth-link{color:var(--brand);cursor:pointer;text-decoration:none;background:none;border:none;font-size:12px;padding:0}.auth-link:hover{text-decoration:underline}.auth-footer{text-align:center;font-size:11px;color:var(--color-text-tertiary);margin-top:22px}.input-with-icon,.input-with-icon-left{position:relative}.input-with-icon-left .form-input{padding-left:34px}.input-with-icon-left .input-icon-leading{position:absolute;left:0;top:0;height:36px;width:34px;display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary);font-size:15px;pointer-events:none}.input-with-icon input{padding-right:40px}.input-icon-btn{position:absolute;right:0;top:0;height:36px;width:36px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--color-text-tertiary);font-size:16px}.input-icon-btn:hover{color:var(--color-text-secondary)}.user-menu{position:relative;flex-shrink:0}.user-menu-trigger{width:34px;height:34px;border-radius:50%;border:.5px solid var(--color-border-tertiary);background:var(--brand-tint);color:var(--brand);font-size:12px;font-weight:500;display:flex;align-items:center;justify-content:center;cursor:pointer}.user-menu-trigger:hover{border-color:var(--brand)}.user-menu-panel{position:absolute;top:calc(100% + 8px);right:0;width:230px;background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);box-shadow:0 8px 24px #00000024;overflow:hidden;z-index:40;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .15s ease,transform .15s ease}.user-menu-panel.open{opacity:1;transform:translateY(0);pointer-events:auto}.user-menu-header{display:flex;align-items:center;gap:10px;padding:14px;border-bottom:.5px solid var(--color-border-tertiary)}.user-menu-name{font-size:13px;font-weight:500;color:var(--color-text-primary)}.user-menu-email{font-size:11px;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu-items{padding:6px}.user-menu-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--border-radius-md);font-size:13px;color:var(--color-text-secondary);cursor:pointer}.user-menu-item:hover{background:var(--color-background-secondary);color:var(--color-text-primary)}.user-menu-item i{font-size:16px;color:var(--color-text-tertiary);width:16px;text-align:center}.user-menu-item.danger:hover{background:var(--danger-tint);color:var(--danger)}.user-menu-item.danger:hover i{color:var(--danger)}.user-menu-divider{height:.5px;background:var(--color-border-tertiary);margin:6px 0}@media (max-width: 900px){.sidebar{position:absolute;z-index:30;height:100%}.stats-row{grid-template-columns:repeat(2,1fr)}.form-row-3,.form-row-5{grid-template-columns:1fr 1fr}.report-grid-2{grid-template-columns:1fr}.auth-brand-panel{display:none}.auth-form-panel{flex:1 1 100%}}
