:root{--brand-50: #ecfdf7;--brand-100: #d1fae5;--brand-200: #a7f3d5;--brand-400: #34d3aa;--brand-500: #17ab88;--brand-600: #149677;--brand-700: #0f7a61;--brand: var(--brand-500);--brand-strong: var(--brand-600);--brand-soft: rgba(23, 171, 136, .1);--brand-soft-2: rgba(23, 171, 136, .16);--brand-glow: rgba(23, 171, 136, .3);--brand-gradient: linear-gradient(135deg, #1cc79c 0%, #12967a 100%);--nav-900: #0a101f;--nav-800: #0f1729;--nav-700: #17203a;--nav-line: rgba(255, 255, 255, .08);--nav-text: rgba(255, 255, 255, .72);--nav-text-dim: rgba(255, 255, 255, .55);--bg: #f3f5f9;--surface: #ffffff;--surface-2: #f8fafc;--surface-3: #f1f5f9;--border: #e7ebf1;--border-strong: #d7dde7;--text: #0f172a;--text-2: #475569;--text-3: #8a94a6;--success: #16a34a;--success-soft: #dcfce7;--warning: #d97706;--warning-soft: #fef3c7;--danger: #e11d48;--danger-soft: #ffe4e6;--info: #2563eb;--info-soft: #dbeafe;--shadow-xs: 0 1px 2px rgba(16, 24, 40, .06);--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);--shadow-md: 0 2px 6px rgba(16, 24, 40, .05), 0 6px 16px rgba(16, 24, 40, .08);--shadow-lg: 0 4px 12px rgba(16, 24, 40, .06), 0 16px 34px rgba(16, 24, 40, .1);--shadow-xl: 0 24px 56px -16px rgba(16, 24, 40, .24);--r-xs: 6px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 20px;--r-pill: 999px;--ease: cubic-bezier(.4, 0, .2, 1);--t-fast: .15s var(--ease);--t: .22s var(--ease);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--bg);color:var(--text);font-family:inherit;letter-spacing:-.006em}h1,h2,h3,h4,h5{letter-spacing:-.02em}a{font-weight:500;color:var(--brand-600);text-decoration:inherit;transition:color var(--t-fast)}a:hover{color:var(--brand-700)}button{font-family:inherit;font-size:1em;font-weight:500;cursor:pointer;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:inherit;transition:background-color var(--t-fast),border-color var(--t-fast),color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast)}:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px}button:focus:not(:focus-visible){outline:none}::selection{background:var(--brand-soft-2);color:var(--brand-700)}*{scrollbar-width:thin;scrollbar-color:#c7cfdb transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:#c7cfdb;border-radius:var(--r-pill);border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background-color:#aab4c4}.page-datetime{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;font-weight:600;color:var(--text-2);background:var(--surface);border:1px solid var(--border);padding:.5rem .9rem;border-radius:var(--r-pill);box-shadow:var(--shadow-xs);white-space:nowrap}.page-datetime-icon{color:var(--brand-600);flex-shrink:0}.page-datetime-sep{color:var(--text-3)}.page-datetime-time{color:var(--brand-700);font-weight:700}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;appearance:textfield}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.login-container{width:100%;min-height:100dvh;min-height:100vh;display:flex;background-color:#000;background-repeat:no-repeat;background-size:cover;background-position:center}.overlay{flex:1;background-color:#0006;display:flex;justify-content:center;align-items:center;padding:1.5rem}.login-wrapper{width:100%;max-width:420px;display:flex;flex-direction:column}.login-card{background-color:#1e1e1ed9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:2.5rem 2rem;border-radius:16px;border:1px solid rgba(255,255,255,.15);width:100%;max-width:420px;box-shadow:0 25px 50px -12px #00000080}.logo{width:140px;height:140px;display:block;margin:0 auto 1.5rem;object-fit:contain}.input-group{margin-bottom:1.25rem}.label{font-size:.9rem;font-weight:600;color:#f8fafc;margin-bottom:.5rem;display:block}.input{width:100%;height:50px;border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:0 1rem;font-size:1rem;background-color:#fffffff2;color:#0f172a;transition:all .2s}.input:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px #17ab884d}.input::placeholder{color:#64748b}.password-input-wrapper{position:relative;width:100%}.password-toggle-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;color:#64748b;transition:color .2s;z-index:10;outline:none!important;box-shadow:none!important;border:none!important}.password-toggle-btn:focus,.password-toggle-btn:focus-visible,.password-toggle-btn:active{outline:none!important;box-shadow:none!important;border:none!important}.password-toggle-btn:hover{color:var(--brand-600)}.sign-in-button{width:100%;margin-top:1rem;height:50px;background:var(--brand-gradient);border-radius:10px;border:none;cursor:pointer;transition:opacity .2s,transform .1s;display:flex;justify-content:center;align-items:center}.sign-in-button:hover{opacity:.9}.sign-in-button:active{transform:scale(.98)}.sign-in-text{color:#fff;font-size:1rem;font-weight:600;letter-spacing:.5px}@media(min-width:1024px){.login-container{background-size:100% 100%;background-position:center center}.overlay{justify-content:flex-start;padding-left:8%}}.error-message{background-color:#fee2e2;color:#dc2626;padding:12px;border-radius:8px;margin-bottom:16px;font-size:14px;text-align:center}.dashboard-container{display:flex;height:100dvh;height:100vh;background-color:var(--bg);overflow:hidden}.sidebar{width:264px;background:linear-gradient(185deg,var(--nav-800) 0%,var(--nav-900) 100%);border-right:1px solid rgba(255,255,255,.04);box-shadow:1px 0 #ffffff05,8px 0 24px -12px #00000059;display:flex;flex-direction:column;height:100dvh;height:100vh;flex-shrink:0;overflow:hidden;position:relative;transition:transform .3s ease,width .2s ease;z-index:1001;-ms-overflow-style:auto;scrollbar-width:thin}@media(max-width:1024px){.sidebar{position:fixed;left:0;top:0;bottom:0;transform:translate(-100%)}.sidebar.open{transform:translate(0);box-shadow:10px 0 30px #00000080}.sidebar.open .sidebar-close-btn{display:block}}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background-color:#fff3;border-radius:3px}.sidebar-header{display:flex;align-items:center;gap:10px;padding:20px 12px 16px}.sidebar-logo{width:46px;height:46px;object-fit:contain;background-color:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-radius:13px;padding:6px;flex-shrink:0}.sidebar-title-section{flex:1;min-width:0}.sidebar-title{font-size:15px;font-weight:800;color:#fff;margin:0;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-subtitle{font-size:11.5px;color:#ffffff80;margin:3px 0 0;font-weight:500;letter-spacing:.02em}.sidebar-divider{height:1px;background-color:var(--nav-line);margin:4px 16px 10px}.sidebar-collapse-toggle{flex-shrink:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:9px;color:#ffffffb3;cursor:pointer;transition:background-color var(--t-fast),color var(--t-fast)}.sidebar-collapse-toggle:hover{background:#ffffff21;color:#fff}@media(max-width:1024px){.sidebar-collapse-toggle{display:none}}@media(min-width:1025px){.sidebar.collapsed{width:76px}.sidebar.collapsed .sidebar-header{flex-direction:column;align-items:center;padding:18px 8px 14px;gap:12px}.sidebar.collapsed .sidebar-logo{width:44px;height:44px}.sidebar.collapsed .sidebar-title-section{display:none}.sidebar.collapsed .sidebar-divider{margin:4px 12px 10px}.sidebar.collapsed .sidebar-menu{padding:0 12px}.sidebar.collapsed .sidebar-item{justify-content:center;gap:0;padding:12px 0}.sidebar.collapsed .sidebar-text{display:none}.sidebar.collapsed .sidebar-footer{padding:12px 10px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.sidebar.collapsed .user-card{display:none}.sidebar.collapsed .logout-btn{justify-content:center;gap:0;padding:11px 0}.sidebar.collapsed .logout-text,.sidebar.collapsed .sidebar-credit{display:none}}.sidebar-menu{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 12px;min-height:0;-ms-overflow-style:auto;scrollbar-width:thin}.sidebar-menu::-webkit-scrollbar{width:6px}.sidebar-menu::-webkit-scrollbar-thumb{background-color:#fff3;border-radius:3px}.dashboard-main::-webkit-scrollbar{width:6px}.dashboard-main::-webkit-scrollbar-track{background:transparent}.dashboard-main::-webkit-scrollbar-thumb{background-color:#00000026;border-radius:3px}.dashboard-main::-webkit-scrollbar-thumb:hover{background-color:#00000040}.dashboard-content::-webkit-scrollbar{display:none}.dashboard-content{-ms-overflow-style:none;scrollbar-width:none}.sidebar-item{position:relative;display:flex;align-items:center;gap:13px;padding:11px 14px;border-radius:10px;margin-bottom:3px;cursor:pointer;transition:background-color var(--t-fast),color var(--t-fast);color:var(--nav-text)}.sidebar-item:hover{background-color:#ffffff0f;color:#fff}.sidebar-item-active,.sidebar-item-active:hover{background:var(--brand-gradient);box-shadow:0 6px 16px -4px var(--brand-glow),inset 0 1px #ffffff26;color:#fff}.sidebar-icon{font-size:20px;color:inherit}.sidebar-text{font-size:15px;font-weight:500;color:inherit}.sidebar-text-active{font-weight:600;color:#fff}.sidebar-icon{font-size:20px}.sidebar-text{font-size:15px;font-weight:500}.sidebar-text-active{font-weight:600}.sidebar-footer{padding:12px 16px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid rgba(255,255,255,.1);flex-shrink:0}.user-card{background-color:#ffffff0d;padding:13px 14px;border-radius:12px;margin-bottom:10px;border:1px solid rgba(255,255,255,.07)}.user-name{font-size:14.5px;font-weight:700;color:#fff;margin:0 0 3px;letter-spacing:-.01em}.user-email{font-size:12.5px;color:#ffffff8c;margin:0 0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role{display:inline-block;font-size:11px;color:var(--brand-400);font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin:0;padding:2px 8px;background:#34d3aa1f;border-radius:var(--r-pill)}.logout-btn{display:flex;align-items:center;gap:10px;padding:10px 16px;background-color:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:6px;cursor:pointer;width:100%;transition:all .2s}.logout-btn:hover{background-color:#ef444426;border-color:#ef44444d}.logout-text{font-size:15px;color:#fca5a5;font-weight:500}.sidebar-close-btn{display:none;position:absolute;top:20px;right:20px;background:#ffffff1a;border:none;cursor:pointer;padding:8px;border-radius:8px;color:#fff;transition:background-color .2s;z-index:1001}.sidebar-close-btn:hover{background-color:#ffffff26}.logout-btn{display:flex;align-items:center;gap:10px;padding:11px 14px;background-color:#f43f5e14;border:1px solid rgba(244,63,94,.16);border-radius:10px;cursor:pointer;width:100%;color:#fb7185;transition:background-color var(--t-fast),border-color var(--t-fast)}.logout-btn:hover{background-color:#f43f5e24;border-color:#f43f5e47}.logout-text{font-size:14.5px;color:#fb7185;font-weight:600}.sidebar-credit{display:block;text-align:center;margin-top:10px;font-size:11px;font-weight:500;letter-spacing:.01em;color:#ffffff61;text-decoration:none;transition:color var(--t-fast)}.sidebar-credit span{color:var(--brand-400);font-weight:700}.sidebar-credit:hover{color:#fff9}.sidebar-credit:hover span{color:var(--brand-200)}.dashboard-main{flex:1;overflow-y:auto;background-color:var(--bg);min-width:0}.dashboard-content{padding:26px 28px 32px;min-height:100%;display:flex;flex-direction:column}.dashboard-header{display:flex;flex-direction:column;margin-bottom:20px;flex-shrink:0;gap:16px}.dashboard-heading-row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.dashboard-toolbar{display:flex;justify-content:flex-start;align-items:center;gap:12px;flex-wrap:wrap;width:100%}.dashboard-branch{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:0 12px;height:44px;box-shadow:var(--shadow-xs)}.dashboard-branch-icon{color:var(--text-3);flex-shrink:0}.dashboard-branch-select{border:none;outline:none;background:transparent;color:var(--text);font-size:13.5px;font-weight:600;cursor:pointer;min-width:150px;height:100%}.dashboard-page-title{font-size:29px;font-weight:600;color:var(--text);margin:0;letter-spacing:-.025em;display:flex;align-items:center;gap:12px}.dashboard-page-title .dashboard-title-bar{width:5px;height:.92em;border-radius:3px;background:var(--brand-gradient);flex-shrink:0}.dashboard-date{font-size:14px;color:var(--text-3);margin:4px 0 0;font-weight:500}.dashboard-filters{display:flex;align-items:center;flex-shrink:0}.filter-input-group{display:flex;align-items:center;height:44px;background:var(--surface);padding:0 8px 0 12px;border-radius:var(--r-md);box-shadow:var(--shadow-xs);border:1px solid var(--border);gap:8px;transition:border-color var(--t),box-shadow var(--t)}.filter-input-group:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.filter-input-wrapper{display:flex;align-items:center;gap:10px;color:#64748b}.dashboard-date-input{border:none;background:transparent;color:#1e293b;font-size:13px;font-weight:600;outline:none;cursor:pointer;width:100px;padding:2px 0}.dashboard-date-input::-webkit-calendar-picker-indicator{position:absolute;width:100%;height:100%;opacity:0;cursor:pointer}.filter-input-wrapper{position:relative}.filter-separator{color:#94a3b8;font-weight:700;font-size:16px}.filter-clear-btn{background:#f1f5f9;border:none;color:#475569;padding:6px 12px;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s;margin-left:4px}.filter-clear-btn:hover{background:#e2e8f0;color:#0f172a;transform:translateY(-1px)}.filter-clear-btn:active{transform:translateY(0)}.filter-field{display:flex;flex-direction:row;align-items:center;gap:5px}.filter-label{font-size:11px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.03em}.filter-btn{display:inline-flex;align-items:center;gap:6px;background:var(--brand-gradient);border:none;color:#fff;padding:8px 16px;border-radius:var(--r-sm);font-size:13px;font-weight:700;cursor:pointer;box-shadow:0 4px 12px -3px var(--brand-glow);transition:transform var(--t-fast),box-shadow var(--t-fast),filter var(--t-fast);white-space:nowrap}.filter-btn:hover{filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 6px 16px -3px var(--brand-glow)}.filter-btn:active{transform:translateY(0)}@media(max-width:768px){.dashboard-header{flex-direction:column;align-items:flex-start}.dashboard-filters{width:100%}.filter-input-group{width:100%;justify-content:space-between}}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:26px}@media(max-width:640px){.stats-grid{grid-template-columns:1fr;gap:14px}}.stat-card{background:var(--surface);padding:16px 18px;border-radius:var(--r-lg);border:1px solid var(--border);box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:14px;min-height:84px;transition:transform var(--t),box-shadow var(--t),border-color var(--t)}.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--border-strong)}.stat-icon{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.stat-content{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.stat-header{display:flex;align-items:center;gap:8px;margin-bottom:3px}.stat-value{font-size:26px;font-weight:600;color:var(--text);margin:0;line-height:1.1;letter-spacing:-.03em}.stat-growth{font-size:11.5px;font-weight:700;color:var(--success);background-color:var(--success-soft);padding:2px 8px;border-radius:var(--r-pill);white-space:nowrap;line-height:1.5}.stat-label{font-size:13.5px;color:var(--text-3);margin:0;font-weight:600;line-height:1.25}.charts-grid-full{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;flex:1;min-height:0}.chart-card{background:var(--surface);padding:20px 22px;border-radius:var(--r-lg);border:1px solid var(--border);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;min-height:0;overflow:hidden}.chart-title{font-size:17px;font-weight:700;color:var(--text);margin:0 0 14px;flex-shrink:0;letter-spacing:-.01em}.dashboard-search{position:relative;flex:1 1 auto;min-width:220px}.dashboard-search-box{display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:0 12px;height:44px;box-shadow:var(--shadow-xs);transition:border-color var(--t),box-shadow var(--t)}.dashboard-search-box:focus-within{border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-soft)}.dashboard-search-icon{color:var(--text-3);flex-shrink:0}.dashboard-search-input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:14px;font-weight:500;color:var(--text)}.dashboard-search-input::placeholder{color:var(--text-3);font-weight:500}.dashboard-search-clear{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:50%;background:var(--surface-2);color:var(--text-2);cursor:pointer;flex-shrink:0;transition:background var(--t-fast)}.dashboard-search-clear:hover{background:var(--border);color:var(--text)}.dashboard-search-results{position:absolute;top:calc(100% + 8px);left:0;z-index:40;width:max(100%,360px);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:6px;max-height:380px;overflow-y:auto}.dashboard-search-result{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:none;background:transparent;border-radius:var(--r-sm);cursor:pointer;text-align:left;transition:background var(--t-fast)}.dashboard-search-result:hover{background:var(--brand-soft)}.dashboard-search-avatar{width:40px;height:40px;border-radius:50%;flex-shrink:0;background:var(--brand-soft-2);color:var(--brand-600);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;overflow:hidden}.dashboard-search-avatar img{width:100%;height:100%;object-fit:cover}.dashboard-search-meta{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.dashboard-search-name{font-size:14.5px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-search-sub{font-size:12.5px;color:var(--text-3);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-search-status{font-size:11px;font-weight:700;text-transform:capitalize;padding:3px 10px;border-radius:var(--r-pill);flex-shrink:0}.dashboard-search-status.is-active{background:var(--success-soft);color:var(--success)}.dashboard-search-status.is-inactive{background:var(--danger-soft);color:var(--danger)}.dashboard-search-empty{padding:22px;text-align:center;color:var(--text-3);font-size:13.5px;font-weight:500}.chart-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-shrink:0}.chart-card-head .chart-title{margin:0}.chart-viewall-btn{display:inline-flex;align-items:center;gap:3px;background:var(--brand-soft);color:var(--brand-600);border:none;border-radius:var(--r-pill);padding:6px 8px 6px 14px;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background var(--t-fast),transform var(--t-fast)}.chart-viewall-btn:hover{background:var(--brand-soft-2);transform:translateY(-1px)}.chart-refresh-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text-2);cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast)}.chart-refresh-btn:hover{background:var(--surface-2);border-color:var(--border-strong)}.checkins-inline-body{flex:1;min-height:0;overflow-y:auto;margin:0 -6px;padding:0 2px}.checkins-inline-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;margin-top:4px;border-top:1px solid var(--border);flex-shrink:0}@keyframes gm-spin{to{transform:rotate(360deg)}}.gm-spin{animation:gm-spin .8s linear infinite}.sidebar-search-trigger{display:flex;align-items:center;gap:10px;margin:2px 16px 14px;padding:9px 12px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#ffffffb8;cursor:pointer;font-size:13.5px;font-weight:500;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast)}.sidebar-search-trigger:hover{background:#ffffff1c;border-color:#fff3;color:#fff}.sidebar-search-icon{flex-shrink:0;opacity:.85}.sidebar-search-label{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-search-kbd{font-size:11px;font-weight:700;padding:2px 6px;border-radius:5px;background:#ffffff1a;color:#ffffffb3;flex-shrink:0}.sidebar.collapsed .sidebar-search-label,.sidebar.collapsed .sidebar-search-kbd{display:none}.sidebar.collapsed .sidebar-search-trigger{justify-content:center;margin:2px auto 14px;width:44px;padding:9px 0}.palette-overlay{position:fixed;inset:0;z-index:4000;background:#0f172a8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding:11vh 20px 20px;animation:paletteFade .15s ease}@keyframes paletteFade{0%{opacity:0}to{opacity:1}}.palette{width:100%;max-width:580px;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column;max-height:72vh;animation:palettePop .16s cubic-bezier(.16,1,.3,1)}@keyframes palettePop{0%{transform:translateY(-8px);opacity:0}to{transform:none;opacity:1}}.palette-input-row{display:flex;align-items:center;gap:12px;padding:15px 18px;border-bottom:1px solid var(--border);flex-shrink:0}.palette-search-icon{color:var(--text-3);flex-shrink:0}.palette-input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:15.5px;color:var(--text);font-weight:500}.palette-input::placeholder{color:var(--text-3)}.palette-close{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:50%;background:var(--surface-2);color:var(--text-2);cursor:pointer;flex-shrink:0}.palette-close:hover{background:var(--border);color:var(--text)}.palette-results{overflow-y:auto;padding:8px;flex:1}.palette-hint{padding:34px 20px;text-align:center;color:var(--text-3);font-size:14px;font-weight:500}.palette-result{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:none;background:transparent;border-radius:10px;cursor:pointer;text-align:left;transition:background var(--t-fast)}.palette-result.is-active{background:var(--brand-soft)}.palette-avatar{width:40px;height:40px;border-radius:50%;flex-shrink:0;background:var(--brand-soft-2);color:var(--brand-600);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;overflow:hidden}.palette-avatar img{width:100%;height:100%;object-fit:cover}.palette-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.palette-name{font-size:14.5px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:8px}.palette-sub{font-size:12.5px;color:var(--text-3);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-type{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:var(--r-pill);flex-shrink:0}.palette-type.member{background:var(--brand-soft);color:var(--brand-600)}.palette-type.enquiry{background:#eff6ff;color:#1d4ed8}.palette-status{font-size:11px;font-weight:700;text-transform:capitalize;padding:3px 10px;border-radius:var(--r-pill);flex-shrink:0}.palette-status.is-active{background:var(--success-soft);color:var(--success)}.palette-status.is-pending{background:#fef3c7;color:#b45309}.palette-status.is-inactive{background:var(--danger-soft);color:var(--danger)}.palette-enter{color:var(--brand-600);flex-shrink:0}.palette-footer{display:flex;gap:18px;padding:10px 18px;border-top:1px solid var(--border);font-size:12px;color:var(--text-3);flex-shrink:0}.palette-footer kbd{font-family:inherit;background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:11px;margin-right:3px;color:var(--text-2)}@media(max-width:640px){.palette-status,.palette-footer{display:none}}.checkins-overlay{position:fixed;inset:0;z-index:1000;background:#0f172a8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px;animation:checkinsFade .18s ease}@keyframes checkinsFade{0%{opacity:0}to{opacity:1}}.checkins-modal{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);width:100%;max-width:540px;max-height:82vh;display:flex;flex-direction:column;overflow:hidden;animation:checkinsPop .2s cubic-bezier(.16,1,.3,1)}@keyframes checkinsPop{0%{transform:translateY(10px) scale(.98);opacity:0}to{transform:none;opacity:1}}.checkins-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 22px;border-bottom:1px solid var(--border);flex-shrink:0}.checkins-modal-title{font-size:18px;font-weight:800;color:var(--text);margin:0 0 2px;letter-spacing:-.02em}.checkins-modal-sub{font-size:13px;color:var(--text-3);font-weight:500}.checkins-modal-close{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:50%;background:var(--surface-2);color:var(--text-2);cursor:pointer;flex-shrink:0;transition:background var(--t-fast)}.checkins-modal-close:hover{background:var(--border);color:var(--text)}.checkins-modal-body{overflow-y:auto;padding:8px;flex:1}.checkins-modal-state{padding:48px 20px;text-align:center;color:var(--text-3);font-weight:500}.checkins-row{display:flex;align-items:center;gap:12px;width:100%;padding:11px 14px;border:none;background:transparent;border-radius:var(--r-md);cursor:pointer;text-align:left;transition:background var(--t-fast)}.checkins-row:hover{background:var(--brand-soft)}.checkins-row-avatar{width:42px;height:42px;border-radius:50%;flex-shrink:0;background:var(--brand-soft-2);color:var(--brand-600);display:flex;align-items:center;justify-content:center;font-weight:700;overflow:hidden}.checkins-row-avatar img{width:100%;height:100%;object-fit:cover}.checkins-row-meta{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.checkins-row-name{font-size:14.5px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.checkins-row-sub{font-size:12.5px;color:var(--text-3);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.checkins-row-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.checkins-row-time{font-size:13px;font-weight:700;color:var(--text-2);font-variant-numeric:tabular-nums}.checkins-row-badge{font-size:10.5px;font-weight:700;color:#b45309;background:#fef3c7;padding:3px 8px;border-radius:var(--r-pill);white-space:nowrap}.checkins-row-status{font-size:10.5px;font-weight:700;text-transform:capitalize;padding:3px 9px;border-radius:var(--r-pill)}.checkins-row-status.is-active{background:var(--success-soft);color:var(--success)}.checkins-row-status.is-inactive{background:var(--danger-soft);color:var(--danger)}.checkins-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 22px;border-top:1px solid var(--border);flex-shrink:0}.checkins-page-btn{display:inline-flex;align-items:center;gap:4px;background:var(--surface-2);border:1px solid var(--border);color:var(--text);padding:7px 14px;border-radius:var(--r-sm);font-size:13px;font-weight:700;cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast)}.checkins-page-btn:hover:not(:disabled){background:var(--border);border-color:var(--border-strong)}.checkins-page-btn:disabled{opacity:.45;cursor:not-allowed}.checkins-page-info{font-size:13px;font-weight:600;color:var(--text-3);font-variant-numeric:tabular-nums}@media(max-width:640px){.checkins-row-status,.dashboard-search-status{display:none}}.chart-placeholder{flex:1;min-height:0;display:flex;flex-direction:column}.chart-with-scale{display:flex;gap:10px;flex:1;min-height:0}.y-axis{display:flex;flex-direction:column;justify-content:space-between;padding-right:8px;min-width:35px;padding-top:10px;padding-bottom:30px}.y-axis-label{font-size:11px;color:#6b7280;text-align:right;line-height:1}.bar-chart-container{flex:1;display:flex;flex-direction:column;min-width:0}.bar-chart{display:flex;align-items:flex-end;justify-content:space-around;flex:1;padding:10px 10px 0;gap:4px}.bar-group{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;min-width:0}.bar-stack{display:flex;flex-direction:column-reverse;align-items:center;gap:2px;width:100%;max-width:45px}.bar{width:100%;border-radius:4px 4px 0 0;transition:opacity .2s;min-height:2px}.bar:hover{opacity:.8;cursor:pointer}.bar-present{background-color:#3b82f6}.bar-absent{background-color:#ef4444}.bar-label{font-size:11px;color:#6b7280;font-weight:500}.line-chart{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;padding:10px 0}.line-chart svg{width:100%;height:100%;max-height:300px}.chart-legend{display:flex;gap:20px;justify-content:center;margin-top:10px;padding-top:10px;border-top:1px solid #e5e7eb;flex-shrink:0}.legend-item{display:flex;align-items:center;gap:6px;font-size:13px;color:#6b7280}.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}@media(max-width:1320px){.stats-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:1200px){.charts-grid-full{grid-template-columns:1fr;height:auto}.chart-card{min-height:400px}}@media(max-width:1024px){.dashboard-content{padding:16px}}@media(max-width:768px){.stats-grid{grid-template-columns:1fr}.stat-card{padding:14px}.stat-icon{width:45px;height:45px;font-size:20px}.stat-value{font-size:20px}.stat-label{font-size:12px}.dashboard-page-title{font-size:24px}.chart-card{min-height:350px}}@media(max-width:480px){.dashboard-page-title{font-size:22px}.dashboard-date{font-size:12px}.stat-value{font-size:18px}.chart-title{font-size:16px}}.dashboard-mobile-header{display:none;padding:16px;background-color:#fff;border-bottom:1px solid #e5e7eb;align-items:center;gap:16px;position:sticky;top:0;z-index:100}.hamburger-btn{background:none;border:none;cursor:pointer;padding:8px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background-color .2s;color:#111827}.hamburger-btn:hover{background-color:#f3f4f6}.dashboard-mobile-title{font-size:18px;font-weight:700;color:#111827;margin:0}.sidebar-close-btn{display:none;position:absolute;top:20px;right:20px;background:none;border:none;cursor:pointer;padding:8px;border-radius:8px;color:#111827;transition:background-color .2s;z-index:1001}.sidebar-close-btn:hover{background-color:#f3f4f6}.sidebar-overlay{display:none;position:fixed;inset:0;background-color:#00000080;z-index:998;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(max-width:800px){.dashboard-mobile-header{display:flex}.sidebar{overflow-y:auto;-webkit-overflow-scrolling:touch}.dashboard-content{padding:16px;width:100%;overflow-x:hidden}.stats-grid{grid-template-columns:1fr}.stat-card{padding:14px}.stat-icon{width:45px;height:45px;font-size:20px}.stat-value{font-size:20px}.stat-label{font-size:12px}.charts-grid-full{grid-template-columns:1fr}.chart-card{min-height:350px}.dashboard-page-title{font-size:24px}.dashboard-header{margin-bottom:16px}}@media(max-width:480px){.dashboard-page-title{font-size:20px}.dashboard-date{font-size:11px}.stat-value{font-size:18px}.chart-title,.dashboard-mobile-title{font-size:16px}}@media(max-width:800px){.dashboard-main{margin-left:0!important}.mobile-menu-btn{display:block!important}}.sidebar-overlay{display:none}@media(max-width:1024px){.sidebar-overlay.open{display:block;position:fixed;inset:0;background-color:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000}}.dashboard-mobile-header{display:none;align-items:center;gap:16px;padding:12px 20px;background-color:#fff;border-bottom:1px solid #e5e7eb}@media(max-width:1024px){.dashboard-mobile-header{display:flex}}.responsive-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}@media(max-width:768px){.responsive-form-grid{grid-template-columns:1fr}}.plan-tabs-container{display:flex;justify-content:flex-start;gap:.5rem;padding:0;margin:0 0 1.6rem;flex-wrap:wrap}.plan-tab-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.62rem 1.25rem;border-radius:var(--r-pill);border:1px solid var(--border);cursor:pointer;font-weight:600;font-size:.9rem;transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast),box-shadow var(--t-fast);background:var(--surface);color:var(--text-2);white-space:nowrap}.plan-tab-btn:hover{border-color:var(--brand-500);color:var(--brand-600)}.plan-tab-btn-active{background:var(--brand-gradient)!important;color:#fff!important;border-color:transparent;box-shadow:0 4px 12px -3px var(--brand-glow)}@media(max-width:768px){.plan-tabs-container{gap:.5rem;padding:0 .5rem}.plan-tab-btn{padding:.6rem 1rem;font-size:.85rem;flex:1;min-width:140px;border-radius:8px;text-align:center}}@media(max-width:480px){.plan-tab-btn{min-width:calc(50% - .5rem);padding:.6rem .5rem}}
