@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-800:oklch(27.8% .033 256.848);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-0{top:calc(var(--spacing) * 0)}.right-0\.5{right:calc(var(--spacing) * .5)}.left-0\.5{left:calc(var(--spacing) * .5)}.z-10{z-index:10}.z-\[1\]{z-index:1}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.flex{display:flex}.grid{display:grid}.h-16{height:calc(var(--spacing) * 16)}.h-full{height:100%}.w-20{width:calc(var(--spacing) * 20)}.w-full{width:100%}.min-w-\[640px\]{min-width:640px}.flex-1{flex:1}.border-collapse{border-collapse:collapse}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-\[\#22c55e\]{border-color:#22c55e}.border-\[\#55b9d4\]{border-color:#55b9d4}.border-\[\#ef4444\]{border-color:#ef4444}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.bg-\[\#4ade80\]{background-color:#4ade80}.bg-\[\#6CCAE3\]{background-color:#6ccae3}.bg-\[\#e8f7fc\]{background-color:#e8f7fc}.bg-\[\#f7fdff\]{background-color:#f7fdff}.bg-\[\#f87171\]{background-color:#f87171}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-50\/50{background-color:#f9fafb80}@supports (color:color-mix(in lab,red,red)){.bg-gray-50\/50{background-color:color-mix(in oklab,var(--color-gray-50) 50%,transparent)}}.bg-white{background-color:var(--color-white)}.p-4{padding:calc(var(--spacing) * 4)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.text-center{text-align:center}.align-top{vertical-align:top}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-\[\#2a8fa8\]{color:#2a8fa8}.text-\[\#6CCAE3\]{color:#6ccae3}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-800{color:var(--color-gray-800)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.opacity-90{opacity:.9}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.group-hover\:bg-gray-50\/60:is(:where(.group):hover *){background-color:#f9fafb99}@supports (color:color-mix(in lab,red,red)){.group-hover\:bg-gray-50\/60:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-gray-50) 60%,transparent)}}.hover\:bg-\[\#55b9d4\]:hover{background-color:#55b9d4}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.focus\:border-\[\#6CCAE3\]:focus{border-color:#6ccae3}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-\[\#6CCAE3\]:focus{--tw-ring-color:#6ccae3}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}@media(min-width:40rem){.sm\:mx-0{margin-inline:calc(var(--spacing) * 0)}.sm\:mb-5{margin-bottom:calc(var(--spacing) * 5)}.sm\:min-w-\[800px\]{min-width:800px}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}}}:root{color-scheme:light;color:#1a1a2e;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;background-color:#fff;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}a{color:#6ccae3;-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}a:hover{color:#4fb5d0}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}h1{font-size:3.2em;line-height:1.1}button{color:#fff;cursor:pointer;background-color:#6ccae3;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;transition:background .25s}button:hover{background:#4fb5d0}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}input,select,textarea{font-size:16px}*,:before,:after{box-sizing:border-box}.overflow-auto,.overflow-x-auto{-webkit-overflow-scrolling:touch}@media(prefers-color-scheme:light){:root{color:#1a1a2e;background-color:#fff}a{color:#6ccae3}a:hover{color:#4fb5d0}button{color:#fff;background-color:#6ccae3}button:hover{background:#4fb5d0}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:#fff}.login-card{background:#fff;padding:2.5rem;border-radius:12px;border:#55b9d4 1px solid;box-shadow:0 8px 32px #55b9d466;width:100%;max-width:400px}.login-card .logo{width:150px;height:auto;display:block;margin:0 auto 1.5rem;border-radius:8px}.login-card h1{margin:0 0 .25rem;font-size:1.8rem;color:#1a1a2e;text-align:center}.login-subtitle{text-align:center;color:#666;margin:0 0 1.5rem;font-size:.95rem}.form-group{margin-bottom:1.2rem}.form-group label{display:block;margin-bottom:.4rem;font-size:.9rem;color:#333}.form-group input{width:100%;padding:.7rem .8rem;border:1px solid #ddd;border-radius:8px;background:#f9f9f9;color:#333;font-size:1rem;box-sizing:border-box;outline:none;transition:border-color .2s}.form-group input:focus{border-color:#6ccae3}.form-group input::placeholder{color:#666}.error-message{color:#ff6b6b;font-size:.85rem;margin:0 0 1rem;text-align:center}.login-button{width:100%;padding:.75rem;background:#6ccae3;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.login-button:hover{background:#4fb5d0}@media(max-width:480px){.login-card{margin:0 1rem;padding:2rem 1.5rem;box-shadow:0 8px 32px #55b9d466}.login-card h1{font-size:1.5rem}.login-card .logo{width:90px;margin-bottom:1rem}}.home-layout{display:flex;min-height:100vh}.mobile-topbar{display:none}.sidebar{width:240px;background:#fff;color:#1a1a2e;display:flex;flex-direction:column;padding:1.5rem 0;flex-shrink:0;border-right:1px solid #e0e0e0;height:100vh;position:sticky;top:0;overflow:hidden}.sidebar-header{display:flex;align-items:center;gap:.75rem;padding:0 1.25rem 1.5rem;border-bottom:1px solid #e0e0e0}.sidebar-logo{width:40px;height:40px;border-radius:6px;object-fit:cover}.sidebar-title{font-size:1.1rem;font-weight:600;letter-spacing:.02em}.nav-links{list-style:none;padding:1rem 0;margin:0;overflow-y:auto;flex:1}.nav-link{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;color:#555;text-decoration:none;font-size:.95rem;transition:background .2s,color .2s}.nav-link:hover{background:#f0fafe;color:#1a1a2e}.nav-link.active{background:#e8f7fc;color:#1a1a2e;border-left:3px solid #6CCAE3;font-weight:600}.nav-icon{font-size:1.1rem}.nav-folder{list-style:none}.nav-folder-btn{display:flex;align-items:center;gap:.5rem;width:100%;padding:.75rem 1.25rem;background:none;border:none;color:#555;font-size:.95rem;cursor:pointer;transition:background .2s,color .2s;text-align:left}.nav-folder-btn:hover{background:#f0fafe;color:#1a1a2e}.nav-folder-chevron{margin-left:auto;font-size:.85rem;color:#888}.nav-folder-children{list-style:none;padding:0;margin:0}.nav-folder-children .nav-link{padding-left:2.5rem;font-size:.9rem}.sidebar-footer{margin-top:auto;padding:0;border-top:1px solid #e0e0e0}.logout-btn{display:flex;align-items:center;gap:.5rem;width:100%;padding:.75rem 1.25rem;background:none;border:none;color:#555;font-size:.95rem;cursor:pointer;transition:background .2s,color .2s}.logout-btn:hover{background:#fdecea;color:#e74c3c}.main-content{flex:1;background:#fafbfd;overflow-y:auto}.sidebar-overlay{display:none}.welcome-content{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;background:#fff}.welcome-logo{width:150px;height:auto;margin-bottom:2rem;border-radius:8px}.welcome-content h1{font-size:2.5rem;color:#1a1a2e}@media(max-width:768px){.home-layout{flex-direction:column}.mobile-topbar{display:flex;align-items:center;gap:.75rem;padding:.65rem 1rem;background:#fff;border-bottom:1px solid #e0e0e0;position:sticky;top:0;z-index:1001}.hamburger-btn{background:none;border:none;padding:.25rem;font-size:1.5rem;color:#1a1a2e;cursor:pointer;display:flex;align-items:center;justify-content:center}.mobile-topbar-brand{display:flex;align-items:center;gap:.5rem}.mobile-topbar-logo{width:32px;height:32px;border-radius:5px;object-fit:cover}.mobile-topbar-title{font-size:1rem;font-weight:600;color:#1a1a2e}.sidebar{position:fixed;top:0;left:0;bottom:0;width:260px;height:100vh;z-index:1002;transform:translate(-100%);transition:transform .25s ease;box-shadow:none}.sidebar.sidebar-open{transform:translate(0);box-shadow:4px 0 20px #00000026}.sidebar-overlay{display:block;position:fixed;inset:0;background:#0006;z-index:1001}.main-content{min-height:calc(100vh - 56px)}}.dashboard-page{padding:2rem;max-width:1400px;margin:0 auto}.dashboard-loading{text-align:center;padding:4rem;color:#888;font-size:1.1rem}.dashboard-error{background:#fdecea;color:#d32f2f;padding:1rem;border-radius:8px;text-align:center;margin-bottom:1rem}.dashboard-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:1.5rem}.dashboard-header h2{font-size:1.75rem;color:#1a1a2e;margin:0}.dashboard-date{font-size:.95rem;color:#777}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:1.5rem}.todays-appointments-card{grid-column:1 / 2;grid-row:1 / 2}.tomorrows-appointments-card{grid-column:1 / 2;grid-row:2 / 3}.clockin-card{grid-column:2 / 3;grid-row:1 / 2}.info-card{grid-column:2 / 3;grid-row:2 / 3}.dashboard-card{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000000f;overflow:hidden;display:flex;flex-direction:column}.card-header{display:flex;align-items:center;gap:.6rem;padding:1rem 1.25rem;color:#fff;font-weight:600}.card-header h3{margin:0;font-size:1.1rem}.card-header-icon{font-size:1.2rem}.card-badge{margin-left:auto;background:#ffffff40;padding:.15rem .6rem;border-radius:12px;font-size:.85rem}.appointments-header{background:linear-gradient(135deg,#6ccae3,#6ccae3)}.clockin-header{background:linear-gradient(135deg,#93d4aa,#93d4aa)}.info-header{background:linear-gradient(135deg,#bbaee4,#bbaee4)}.card-body{padding:1rem 1.25rem;flex:1}.empty-message{color:#999;text-align:center;padding:1.5rem 0}.table-wrapper{overflow-x:auto}.dashboard-table{width:100%;border-collapse:collapse;font-size:.9rem}.dashboard-table thead th{text-align:left;padding:.6rem .75rem;background:#f0f4f8;color:#4a5568;font-weight:600;font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;border-bottom:2px solid #e2e8f0;white-space:nowrap}.dashboard-table tbody tr{border-bottom:1px solid #edf2f7;transition:background .15s}.dashboard-table tbody tr:hover{background:#f7fafc}.dashboard-table tbody td{padding:.65rem .75rem;color:#2d3748}.appt-time{font-weight:600;color:#4a90d9;white-space:nowrap}.appt-model{font-weight:600}.status-chip{display:inline-block;padding:.2rem .6rem;border-radius:10px;font-size:.78rem;font-weight:600;white-space:nowrap}.status-scheduled{background:#e0f2fe;color:#0284c7}.status-completed{background:#dcfce7;color:#16a34a}.status-no-show{background:#fef2f2;color:#dc2626}.clockin-list{list-style:none;padding:0;margin:0}.clockin-item{display:flex;align-items:center;gap:.6rem;padding:.55rem 0;border-bottom:1px solid #f0f0f0}.clockin-item:last-child{border-bottom:none}.clockin-icon{font-size:1.1rem;flex-shrink:0}.clockin-name{font-weight:600;color:#2d3748}.clockin-time{margin-left:auto;font-size:.85rem;color:#666}.clockin-time.absent{color:#dc2626;font-style:italic}.info-list{list-style:none;padding:0;margin:0}.info-item{display:flex;align-items:center;gap:.6rem;padding:.6rem 0;border-bottom:1px solid #f0f0f0;font-size:.92rem;color:#2d3748}.info-item:last-child{border-bottom:none}.info-icon{font-size:1.1rem;flex-shrink:0}@media(max-width:960px){.dashboard-grid{grid-template-columns:1fr}.appointments-card,.clockin-card,.info-card{grid-column:1;grid-row:auto}}@media(max-width:600px){.dashboard-page{padding:.75rem}.dashboard-header{flex-direction:column;gap:.25rem}.dashboard-table{font-size:.78rem}.dashboard-table thead th{padding:.5rem;font-size:.72rem}.dashboard-table tbody td{padding:.5rem}.card-header,.card-body{padding:.75rem 1rem}}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-container{background:#fff;border-radius:10px;width:90%;max-width:580px;max-height:96vh;overflow-y:auto;box-shadow:0 8px 32px #0000002e;animation:modalSlideIn .2s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #eee}.modal-title{font-size:1.15rem;font-weight:700;color:#1a1a2e;margin:0}.modal-close{background:none;border:none;font-size:1.5rem;color:#888;cursor:pointer;padding:0;line-height:1;transition:color .15s}.modal-close:hover{color:#333}.modal-body{padding:1.25rem 1.5rem 1.5rem}.modal-form-group{margin-bottom:1rem}.modal-form-group:last-of-type{margin-bottom:0}.modal-form-label{display:block;font-size:.85rem;font-weight:600;color:#333;margin-bottom:.35rem}.modal-form-label .required{color:#e94560}.modal-form-input,.modal-form-select,.modal-form-textarea{width:100%;padding:.6rem .75rem;border:1px solid #d0d0d0;border-radius:6px;font-size:.9rem;font-family:inherit;transition:border-color .2s;box-sizing:border-box}.modal-form-input:focus,.modal-form-select:focus,.modal-form-textarea:focus{outline:none;border-color:#6ccae3;box-shadow:0 0 0 2px #6ccae333}.modal-form-textarea{resize:vertical;min-height:60px}.modal-form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.modal-form-row>.modal-form-group{min-width:0}.modal-form-row.modal-form-row-3{grid-template-columns:1fr 1fr 1fr}.modal-form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #eee}.modal-btn-cancel{background:#fff;color:#555;border:1px solid #d0d0d0;padding:.55rem 1.2rem;border-radius:6px;font-size:.9rem;cursor:pointer;transition:background .2s}.modal-btn-cancel:hover{background:#f5f5f5}.modal-btn-submit{background:#1a1a2e;color:#fff;border:none;padding:.55rem 1.2rem;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s}.modal-btn-submit:hover{background:#2d2d4a}.modal-btn-submit:disabled{opacity:.6;cursor:not-allowed}.modal-error{color:#e94560;background:#ffeef1;padding:.75rem;border-radius:6px;margin-bottom:1rem;font-size:.85rem}@media(max-width:768px){.modal-container{width:95%;max-height:90vh}.modal-header{padding:1rem 1.15rem}.modal-body{padding:1rem 1.15rem 1.15rem}.modal-form-row,.modal-form-row.modal-form-row-3{grid-template-columns:1fr}.modal-form-actions{flex-wrap:wrap}}@media(max-width:480px){.modal-container{width:100%;max-width:100%;border-radius:12px 12px 0 0;max-height:85vh}.modal-overlay{align-items:flex-end}.modal-form-actions{gap:.5rem}.modal-btn-cancel,.modal-btn-submit{flex:1;text-align:center}}.client-details-page{padding:2rem}.client-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.client-header h2{font-size:1.75rem;color:#1a1a2e;margin:0}.btn-add-client{background:#6ccae3;color:#fff;border:none;padding:.6rem 1.2rem;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-add-client:hover{background:#55b9d4}.client-error{color:#e94560;background:#ffeef1;padding:1rem;border-radius:6px;margin-bottom:1rem}.client-loading{color:#666;font-size:1rem}.client-card-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.client-card{display:flex;align-items:center;padding:1rem 1.25rem;background:#fff;border-radius:8px;border:#55b9d4 1px solid;box-shadow:0 1px 4px #00000014;transition:background .15s,box-shadow .15s}.client-card:hover{background:#e8f7fc;box-shadow:0 2px 8px #0000001f;cursor:pointer}.client-card-avatar{width:44px;height:44px;border-radius:50%;background:#55b9d4;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:600;flex-shrink:0;margin-right:1rem}.client-card-info{flex:1;min-width:0}.client-card-name{font-size:.95rem;font-weight:600;color:#1a1a2e;margin-bottom:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.client-card-detail{font-size:.82rem;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-clients{text-align:center;padding:2rem;color:#888}.modal-btn-delete{background:#e94560;color:#fff;border:none;padding:.6rem 1.2rem;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s;margin-right:auto}.checkbox-group{display:flex;flex-direction:column;gap:.5rem;margin-top:.25rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#333;cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:#6CCAE3;cursor:pointer}@media(max-width:768px){.client-details-page{padding:1rem}.client-card-list{grid-template-columns:1fr}}@media(max-width:480px){.client-details-page{padding:.75rem}.client-card{padding:.75rem 1rem}}.appointments-page{padding:2rem}.appointments-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.appointments-header h2{font-size:1.75rem;color:#1a1a2e;margin:0}.btn-add-appointment{background:#6ccae3;color:#fff;border:none;padding:.6rem 1.2rem;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-add-appointment:hover{background:#55b9d4}.appointments-search-bar{margin-bottom:1.5rem}.appointments-search-input{width:100%;max-width:480px;padding:.6rem 1rem;border:1px solid #d0d0d0;border-radius:6px;font-size:.9rem;outline:none;transition:border-color .2s;box-sizing:border-box}.appointments-search-input:focus{border-color:#6ccae3}.appointment-error{color:#e94560;background:#ffeef1;padding:1rem;border-radius:6px;margin-bottom:1rem}.appointment-loading{color:#666;font-size:1rem}.appointment-card-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem}.appointment-card{display:flex;align-items:flex-start;gap:1rem;padding:1rem 1.25rem;background:#fff;border-radius:8px;border:1px solid #55b9d4;box-shadow:0 1px 4px #00000014;cursor:pointer;transition:background .15s,box-shadow .15s}.appointment-card:hover{background:#e8f7fc;box-shadow:0 2px 8px #0000001f}.appointment-card-date-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:48px;height:52px;background:#6ccae3;border-radius:8px;color:#fff;flex-shrink:0}.appt-month{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.appt-day{font-size:1.3rem;font-weight:700;line-height:1.2}.appointment-card-info{flex:1;min-width:0}.appointment-card-title{font-size:.95rem;font-weight:600;color:#1a1a2e;margin-bottom:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appointment-card-meta{font-size:.8rem;color:#777;margin-bottom:.4rem}.appointment-card-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.35rem}.appt-tag{display:inline-block;padding:.15rem .55rem;border-radius:12px;font-size:.75rem;font-weight:500}.appt-tag-service{background:#e0f4fb;color:#1a95bb}.appt-tag-area{background:#eef3ff;color:#4062c8}.appt-tag-student{background:#f0faf5;color:#27874f}.appt-tag-status{background:#fff5e0;color:#b07800}.appointment-card-notes{font-size:.8rem;color:#555;font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-appointments{text-align:center;padding:2rem;color:#888}.modal-form-textarea{width:100%;padding:.55rem .75rem;border:1px solid #d0d0d0;border-radius:6px;font-size:.9rem;font-family:inherit;resize:vertical;outline:none;box-sizing:border-box;transition:border-color .2s}.modal-form-textarea:focus{border-color:#6ccae3}.modal-checkbox-group{display:flex;gap:1rem;flex-wrap:wrap;padding:.3rem 0}.modal-checkbox-label{display:flex;align-items:center;gap:.4rem;font-size:.9rem;color:#333;cursor:pointer}.modal-checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:#6CCAE3;cursor:pointer}.modal-form-inline{display:flex;flex-direction:row;align-items:center;gap:.5rem;overflow:hidden}.modal-form-inline .modal-form-label{margin-bottom:0;white-space:nowrap}@media(max-width:768px){.appointments-page{padding:1rem}.appointment-card-list{grid-template-columns:1fr}.appointments-search-input{max-width:100%}}@media(max-width:480px){.appointments-page{padding:.75rem}.appointment-card{padding:.75rem 1rem}}.students-page{padding:2rem}.students-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.students-header h2{font-size:1.75rem;color:#1a1a2e;margin:0}.btn-add-student{background:#6ccae3;color:#fff;border:none;padding:.6rem 1.2rem;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-add-student:hover{background:#55b9d4}.students-error{color:#e94560;background:#ffeef1;padding:1rem;border-radius:6px;margin-bottom:1rem}.students-loading{color:#666;font-size:1rem}.student-card-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.student-card{display:flex;align-items:center;padding:1rem 1.25rem;background:#fff;border-radius:8px;border:#55b9d4 1px solid;box-shadow:0 1px 4px #00000014;transition:background .15s,box-shadow .15s}.student-card:hover{background:#e8f7fc;box-shadow:0 2px 8px #0000001f;cursor:pointer}.student-card-avatar{width:44px;height:44px;border-radius:50%;background:#55b9d4;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:600;flex-shrink:0;margin-right:1rem}.student-card-info{flex:1;min-width:0}.student-card-name{font-size:.95rem;font-weight:600;color:#1a1a2e;margin-bottom:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-card-detail{font-size:.82rem;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-students{text-align:center;padding:2rem;color:#888}.modal-delete-content{padding:1rem 0}.modal-delete-content p{margin-bottom:1.5rem;color:#333;line-height:1.5}.modal-btn-delete{background:#e94560;color:#fff;border:none;padding:.6rem 1.2rem;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s}.modal-btn-delete:hover{background:#d63850}.modal-btn-delete:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.students-page{padding:1rem}.student-card-list{grid-template-columns:1fr}}@media(max-width:480px){.students-page{padding:.75rem}.student-card{padding:.75rem 1rem}}.attendance-page{padding:2rem}.tracker-header{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1.5rem}.tracker-clock-icon{width:40px;height:40px;color:#1a3a5c}.attendance-title{font-size:1.75rem;color:#1a3a5c;margin:0;font-weight:700}.tracker-controls{display:flex;align-items:center;gap:2rem;margin-bottom:1.5rem;flex-wrap:wrap;padding:1rem 1.25rem;background:#fff;border-radius:10px;box-shadow:0 1px 4px #0000000f}.tracker-control-group{display:flex;align-items:center;gap:.5rem}.tracker-control-group label{font-size:.9rem;font-weight:600;color:#374151;white-space:nowrap}.tracker-select{padding:.55rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;color:#374151;background:#fff;outline:none;min-width:200px;transition:border-color .2s}.tracker-select:focus{border-color:#55b9d4;box-shadow:0 0 0 3px #55b9d426}.tracker-date-display{font-size:.9rem;color:#6b7280;font-weight:500}.tracker-total-badge{margin-left:auto;font-size:.95rem;color:#1a3a5c}.tracker-total-badge strong{font-size:1.1rem}.btn-add-entry{background:#1a3a5c;color:#fff;border:none;padding:.55rem 1.2rem;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s;margin-bottom:1rem}.btn-add-entry:hover{background:#15314d}.attendance-error{color:#e94560;background:#ffeef1;padding:1rem;border-radius:6px;margin-bottom:1rem}.attendance-loading{color:#666;font-size:1rem}.attendance-empty-message{text-align:center;color:#6b7280;font-size:1rem;margin-top:2rem}.attendance-table-wrapper{background:#e8f4fa;border-radius:12px;overflow:hidden;box-shadow:0 1px 6px #0000000f;border:1px solid #c8e2ee}.attendance-table{width:100%;border-collapse:collapse}.attendance-table thead th{text-align:center;padding:1rem 1.25rem;font-size:.85rem;font-weight:700;color:#1a3a5c;border-bottom:2px solid #b8d6e6;background:#d6eaf5}.attendance-table tbody tr{border-bottom:1px dashed #c8e2ee;transition:background .15s}.attendance-table tbody tr:last-child{border-bottom:none}.attendance-table tbody tr:hover{background:#daeef7}.attendance-table tbody td{padding:.85rem 1.25rem;font-size:.9rem;color:#374151;vertical-align:middle;text-align:center}.time-display{font-weight:700;font-size:.95rem;color:#1a3a5c}.time-placeholder{font-weight:600;font-size:.95rem;color:#b0b8c1;letter-spacing:.5px}.hours-cell{font-weight:700;color:#1a3a5c;font-size:1rem!important}.live-timer{font-weight:700;font-size:1rem;color:#27ae60;font-variant-numeric:tabular-nums}.active-row{background:#eafaf1!important}.active-row:hover{background:#d5f5e3!important}.actions-cell{min-width:130px}.btn-clock-in{background:#27ae60;color:#fff;border:none;padding:.5rem 1.2rem;border-radius:6px;font-size:.875rem;font-weight:700;cursor:pointer;transition:background .2s,transform .1s}.btn-clock-in:hover:not(:disabled){background:#219a52;transform:translateY(-1px)}.btn-clock-in:disabled{opacity:.6;cursor:not-allowed}.btn-clock-out{background:#e74c3c;color:#fff;border:none;padding:.5rem 1.2rem;border-radius:6px;font-size:.875rem;font-weight:700;cursor:pointer;transition:background .2s,transform .1s}.btn-clock-out:hover:not(:disabled){background:#c0392b;transform:translateY(-1px)}.btn-clock-out:disabled{opacity:.6;cursor:not-allowed}.entry-complete-badge{display:inline-block;background:#d6eaf5;color:#1a3a5c;font-size:.8rem;font-weight:700;padding:.3rem .85rem;border-radius:20px;letter-spacing:.3px}.tracker-total-row{text-align:center;padding:.85rem 1.25rem;font-size:1rem;color:#1a3a5c;background:#cce5f0;border-top:2px solid #b8d6e6;font-weight:600}.tracker-total-row strong{font-size:1.15rem}@media(max-width:768px){.attendance-page{padding:1rem}.tracker-controls{flex-direction:column;align-items:flex-start;gap:1rem}.tracker-total-badge{margin-left:0}.tracker-select{width:100%}.attendance-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.attendance-table{min-width:520px}.time-picker{flex-wrap:wrap}}@media(max-width:480px){.attendance-page{padding:.75rem}.tracker-controls{padding:.75rem 1rem}.attendance-table thead th{padding:.75rem;font-size:.78rem}.attendance-table tbody td{padding:.65rem .75rem}}.admin-attendance-page{padding:2rem}.admin-att-controls{display:flex;align-items:center;gap:2rem;margin-bottom:1.5rem;flex-wrap:wrap;padding:1rem 1.25rem;background:#fff;border-radius:10px;box-shadow:0 1px 4px #0000000f}.admin-att-control-group{display:flex;align-items:center;gap:.5rem}.admin-att-control-group label{font-size:.9rem;font-weight:600;color:#374151;white-space:nowrap}.admin-att-select{padding:.55rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;color:#374151;background:#fff;outline:none;min-width:200px;transition:border-color .2s}.admin-att-select:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf626}.admin-att-date{padding:.55rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;color:#374151;background:#fff;outline:none;transition:border-color .2s}.admin-att-date:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf626}.admin-att-date-label{font-size:.9rem;color:#6b7280;font-weight:500}.admin-att-error{color:#e94560;background:#ffeef1;padding:1rem;border-radius:6px;margin-bottom:1rem}.admin-att-success{color:#27ae60;background:#eafaf1;padding:1rem;border-radius:6px;margin-bottom:1rem}.admin-att-loading{color:#666;font-size:1rem}.admin-att-empty{text-align:center;color:#6b7280;font-size:1rem;margin-top:2rem}.admin-att-form-card{background:#fff;border-radius:10px;box-shadow:0 1px 6px #0000000f;padding:1.25rem 1.5rem;margin-bottom:1.5rem;border-left:4px solid #8b5cf6}.admin-att-form-title{font-size:1rem;font-weight:700;color:#1a1a2e;margin:0 0 1rem}.admin-att-form{display:flex;align-items:flex-end;gap:1.5rem;flex-wrap:wrap}.admin-att-form-group{display:flex;flex-direction:column;gap:.35rem}.admin-att-form-group label{font-size:.82rem;font-weight:600;color:#4a5568;text-transform:uppercase;letter-spacing:.03em}.admin-att-form-group input[type=time]{padding:.55rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;color:#374151;outline:none;transition:border-color .2s}.admin-att-form-group input[type=time]:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf626}.admin-att-btn-add{background:#8b5cf6;color:#fff;border:none;padding:.55rem 1.4rem;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s}.admin-att-btn-add:hover:not(:disabled){background:#7c3aed}.admin-att-btn-add:disabled{opacity:.6;cursor:not-allowed}.admin-att-table-wrapper{background:#f5f0ff;border-radius:12px;overflow:hidden;box-shadow:0 1px 6px #0000000f;border:1px solid #e0d4f5}.admin-att-table{width:100%;border-collapse:collapse}.admin-att-table thead th{text-align:center;padding:1rem 1.25rem;font-size:.85rem;font-weight:700;color:#4a2d8a;border-bottom:2px solid #d4c5f0;background:#ebe0fa}.admin-att-table tbody tr{border-bottom:1px dashed #e0d4f5;transition:background .15s}.admin-att-table tbody tr:last-child{border-bottom:none}.admin-att-table tbody tr:hover{background:#ede5fa}.admin-att-table tbody td{padding:.85rem 1.25rem;font-size:.9rem;color:#374151;vertical-align:middle;text-align:center}.admin-att-rank{width:40px;color:#888;font-weight:600}.admin-att-time{font-weight:700;font-size:.95rem;color:#4a2d8a}.admin-att-time-placeholder{font-weight:600;font-size:.95rem;color:#b0b8c1;letter-spacing:.5px}.admin-att-hours{font-weight:700;color:#4a2d8a;font-size:1rem}.admin-att-edit-input{padding:.4rem .6rem;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;color:#374151;outline:none;width:120px}.admin-att-edit-input:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf626}.admin-att-actions{min-width:150px;display:flex;justify-content:center;gap:.5rem}.admin-att-btn-edit{background:#8b5cf6;color:#fff;border:none;padding:.4rem 1rem;border-radius:6px;font-size:.82rem;font-weight:700;cursor:pointer;transition:background .2s}.admin-att-btn-edit:hover{background:#7c3aed}.admin-att-btn-save{background:#27ae60;color:#fff;border:none;padding:.4rem 1rem;border-radius:6px;font-size:.82rem;font-weight:700;cursor:pointer;transition:background .2s}.admin-att-btn-save:hover:not(:disabled){background:#219a52}.admin-att-btn-save:disabled{opacity:.6;cursor:not-allowed}.admin-att-btn-cancel{background:#e5e7eb;color:#374151;border:none;padding:.4rem 1rem;border-radius:6px;font-size:.82rem;font-weight:700;cursor:pointer;transition:background .2s}.admin-att-btn-cancel:hover:not(:disabled){background:#d1d5db}.admin-att-total-row{text-align:center;padding:.85rem 1.25rem;font-size:1rem;color:#4a2d8a;background:#ddd0f5;border-top:2px solid #d4c5f0;font-weight:600}.admin-att-total-row strong{font-size:1.15rem}@media(max-width:768px){.admin-attendance-page{padding:1rem}.admin-att-controls{flex-direction:column;align-items:flex-start;gap:1rem}.admin-att-select{width:100%}.admin-att-form{flex-direction:column;align-items:stretch}.admin-att-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-att-table{min-width:560px}}@media(max-width:480px){.admin-attendance-page{padding:.75rem}.admin-att-controls{padding:.75rem 1rem}.admin-att-table thead th{padding:.75rem;font-size:.78rem}.admin-att-table tbody td{padding:.65rem .75rem}}.reports-page{padding:2rem;max-width:1400px;margin:0 auto}.reports-title{font-size:1.75rem;color:#1a1a2e;margin:0 0 1.5rem}.reports-loading{text-align:center;padding:4rem;color:#888;font-size:1.1rem}.reports-error{background:#fdecea;color:#d32f2f;padding:1rem;border-radius:8px;text-align:center;margin-bottom:1rem}.reports-kpi-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem}.kpi-card{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000000f;overflow:hidden}.kpi-header{display:flex;align-items:center;gap:.6rem;padding:.9rem 1.25rem;color:#fff;font-weight:600}.kpi-header h3{margin:0;font-size:1.05rem}.kpi-icon{font-size:1.2rem}.kpi-header-blue{background:linear-gradient(135deg,#4a90d9,#6ccae3)}.kpi-header-green{background:linear-gradient(135deg,#45a866,#8bc96b)}.kpi-body{padding:1.25rem;text-align:center}.kpi-big-number{font-size:2.8rem;font-weight:700;color:#4a90d9;margin-bottom:.5rem}.kpi-big-number.kpi-green{color:#45a866}.kpi-details{display:flex;justify-content:center;gap:2rem;font-size:.92rem;color:#555}.reports-charts-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem}.chart-card{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000000f;overflow:hidden}.chart-header{display:flex;align-items:center;gap:.6rem;padding:.9rem 1.25rem;color:#fff;font-weight:600}.chart-header h3{margin:0;font-size:1.05rem}.chart-icon{font-size:1.2rem}.chart-header-blue{background:linear-gradient(135deg,#4a90d9,#6ccae3)}.chart-header-purple{background:linear-gradient(135deg,#8b7fc7,#a89bd4)}.chart-body{padding:1rem .75rem .75rem}.hours-card{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000000f;overflow:hidden;margin-bottom:1.5rem}.hours-header{display:flex;align-items:center;gap:.6rem;padding:.9rem 1.25rem;color:#fff;font-weight:600;background:linear-gradient(135deg,#d48a3b,#e6b85c)}.hours-header h3{margin:0;font-size:1.05rem}.hours-icon{font-size:1.2rem}.hours-body{padding:1rem 1.25rem}.empty-msg{color:#999;text-align:center;padding:1.5rem 0}.hours-table{width:100%;border-collapse:collapse;font-size:.92rem}.hours-table thead th{text-align:left;padding:.6rem .75rem;background:#f0f4f8;color:#4a5568;font-weight:600;font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;border-bottom:2px solid #e2e8f0}.hours-table tbody tr{border-bottom:1px solid #edf2f7;transition:background .15s}.hours-table tbody tr:hover{background:#f7fafc}.hours-table tbody td{padding:.65rem .75rem;color:#2d3748}.rank{width:40px;text-align:center;color:#888;font-weight:600}.student-name{font-weight:600}.hours-val{white-space:nowrap;font-weight:600;color:#d48a3b}.bar-col{width:35%}.hours-bar-bg{background:#edf2f7;border-radius:8px;height:14px;overflow:hidden}.hours-bar-fill{background:linear-gradient(90deg,#d48a3b,#e6b85c);height:100%;border-radius:8px;transition:width .4s ease}.hours-bar-complete{background:linear-gradient(90deg,#28a745,#56c46e)}.hours-pct{font-size:.8rem;font-weight:400;color:#888;margin-left:.25rem}.hours-remaining{display:block;font-size:.75rem;color:#888;margin-top:.2rem}.appt-hours-card{margin-top:1.5rem}.appt-hours-header{background:linear-gradient(135deg,#4a90d9,#6ccae3)}.appt-hours-val{color:#4a90d9}.appt-bar-fill{background:linear-gradient(90deg,#4a90d9,#6ccae3)}@media(max-width:960px){.reports-kpi-row,.reports-charts-row{grid-template-columns:1fr}.appt-report-filters{grid-template-columns:1fr 1fr}}@media(max-width:600px){.reports-page{padding:.75rem}.kpi-big-number{font-size:2rem}.kpi-details{flex-direction:column;gap:.25rem}.appt-report-filters{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:1rem;padding-bottom:.5rem}.filter-group{min-width:180px;flex:0 0 auto}.filter-actions{min-width:200px;flex:0 0 auto;display:flex;gap:.5rem}.appt-report-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.appt-report-table{min-width:600px}.hours-table{font-size:.82rem}.appt-report-summary{flex-direction:column;gap:.5rem}}.appt-report-card{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000000f;overflow:hidden;margin-bottom:1.5rem}.appt-report-header{display:flex;align-items:center;gap:.6rem;padding:.9rem 1.25rem;color:#fff;font-weight:600;background:linear-gradient(135deg,#3b7dd8,#5ba3e6)}.appt-report-header h3{margin:0;font-size:1.05rem}.appt-report-icon{font-size:1.2rem}.appt-report-toggle{margin-left:auto;background:#fff3;border:1px solid rgba(255,255,255,.4);color:#fff;padding:.35rem 1rem;border-radius:6px;font-size:.85rem;cursor:pointer;transition:background .2s}.appt-report-toggle:hover{background:#ffffff59}.appt-report-body{padding:1.25rem}.appt-report-filters{display:grid;grid-template-columns:repeat(5,1fr) auto;gap:1rem;align-items:end;margin-bottom:1rem}.filter-group{display:flex;flex-direction:column;gap:.3rem}.filter-group label{font-size:.82rem;font-weight:600;color:#4a5568;text-transform:uppercase;letter-spacing:.03em}.filter-group select,.filter-group input{padding:.5rem .6rem;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;color:#2d3748;background:#fff;transition:border-color .2s}.filter-group select:focus,.filter-group input:focus{outline:none;border-color:#5ba3e6;box-shadow:0 0 0 2px #5ba3e626}.filter-actions{display:flex;gap:.5rem;align-items:end}.btn-clear-filters{padding:.5rem .9rem;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#555;font-size:.88rem;cursor:pointer;transition:background .2s,color .2s;white-space:nowrap}.btn-clear-filters:hover{background:#f0f0f0;color:#333}.btn-export-excel{padding:.5rem 1rem;border:none;border-radius:6px;background:linear-gradient(135deg,#1d804f,#28a745);color:#fff;font-size:.88rem;font-weight:600;cursor:pointer;transition:opacity .2s;white-space:nowrap}.btn-export-excel:hover{opacity:.9}.btn-export-excel:disabled{opacity:.5;cursor:not-allowed}.appt-report-summary{display:flex;gap:2rem;padding:.6rem 0;font-size:.92rem;color:#555;border-bottom:1px solid #edf2f7;margin-bottom:.75rem}.appt-report-table-wrap{overflow-x:auto}.appt-report-table{width:100%;border-collapse:collapse;font-size:.9rem}.appt-report-table thead th{text-align:left;padding:.6rem .75rem;background:#f0f4f8;color:#4a5568;font-weight:600;font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;border-bottom:2px solid #e2e8f0;white-space:nowrap}.appt-report-table tbody tr{border-bottom:1px solid #edf2f7;transition:background .15s}.appt-report-table tbody tr:hover{background:#f7fafc}.appt-report-table tbody td{padding:.6rem .75rem;color:#2d3748}.appt-rpt-time{white-space:nowrap;font-weight:600;color:#4a90d9}.appt-rpt-price{font-weight:600;color:#45a866}.rpt-status{display:inline-block;padding:.2rem .55rem;border-radius:10px;font-size:.78rem;font-weight:600;white-space:nowrap}.rpt-status-scheduled{background:#e0f2fe;color:#0284c7}.rpt-status-completed{background:#dcfce7;color:#16a34a}.rpt-status-no-show{background:#fef2f2;color:#dc2626}
