.app-header{height:var(--header-height,64px);border-bottom:1px solid var(--border-color,#e2e8f0);z-index:800;background:#fff;flex-shrink:0;justify-content:space-between;align-items:center;width:100%;min-width:0;padding:0 20px;transition:all .2s;display:flex;position:sticky;top:0;box-shadow:0 1px 2px #0f172a08}.header-main-bar{align-items:center;gap:16px;width:100%;min-width:0;display:flex}.header-left-col{flex-shrink:0;align-items:center;gap:12px;min-width:0;display:flex}.header-menu-btn{border-radius:var(--radius-sm,6px);color:var(--text-main,#0f172a);cursor:pointer;background:0 0;border:1px solid #e2e8f0;flex-shrink:0;justify-content:center;align-items:center;padding:6px;transition:all .15s;display:none}.header-menu-btn:hover{background-color:var(--bg-subtle,#f1f5f9);border-color:#cbd5e1}.header-brand-title{color:#0f172a;letter-spacing:-.015em;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1.15rem;font-weight:700;line-height:1.25;overflow:hidden}.header-context-strip{flex-shrink:0;align-items:center;gap:6px;min-width:0;display:inline-flex}.header-context-pill-wrap{align-items:center;display:inline-flex;position:relative}.header-context-pill{color:#334155;cursor:pointer;-webkit-user-select:none;user-select:none;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;outline:none;align-items:center;gap:5px;max-width:240px;height:27px;padding:0 9px;font-size:.76rem;font-weight:500;transition:all .15s cubic-bezier(.4,0,.2,1);display:inline-flex}.header-context-pill:hover:not(.disabled){color:#0f172a;background:#fff;border-color:#cbd5e1;box-shadow:0 1px 3px #0000000d}.header-context-pill.active{border-color:var(--primary,#3f929a);color:#0f172a;background:#fff;box-shadow:0 0 0 2px #3f929a26}.header-context-pill.disabled{cursor:default;color:#475569;background:#f8fafc;border-color:#e2e8f0}.header-pill-text{text-overflow:ellipsis;white-space:nowrap;line-height:1;overflow:hidden}.header-pill-icon{flex-shrink:0}.header-pill-icon.company{color:var(--primary,#3f929a)}.header-pill-icon.branch{color:var(--logo-orange,#f5a532)}.header-pill-chevron{color:#94a3b8;flex-shrink:0;margin-left:2px;transition:transform .2s}.header-pill-chevron.rotated{transform:rotate(180deg)}.header-context-sep{color:#cbd5e1;-webkit-user-select:none;user-select:none;align-items:center;font-size:.75rem;line-height:1;display:inline-flex}.header-dropdown-menu{z-index:1000;background:#fff;border:1px solid #e2e8f0;border-radius:8px;min-width:250px;max-width:320px;padding:6px;animation:.14s ease-out headerDropdownFadeIn;position:absolute;top:calc(100% + 5px);left:0;box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000000a}@keyframes headerDropdownFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.header-dropdown-header{text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;margin-bottom:4px;padding:4px 8px 6px;font-size:.68rem;font-weight:700;display:flex}.header-dropdown-list{flex-direction:column;gap:2px;max-height:240px;display:flex;overflow-y:auto}.header-dropdown-item{color:#334155;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;outline:none;justify-content:space-between;align-items:center;width:100%;padding:7px 9px;font-size:.8125rem;font-weight:500;transition:all .12s;display:flex}.header-dropdown-item:hover{color:#0f172a;background-color:#f1f5f9}.header-dropdown-item.selected{background-color:var(--primary-light,#edf7f8);color:var(--primary,#3f929a);font-weight:600}.header-dropdown-item-left{align-items:center;gap:7px;min-width:0;display:flex;overflow:hidden}.header-dropdown-item-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.header-badge-tag{color:#475569;background:#e2e8f0;border-radius:4px;flex-shrink:0;margin-left:4px;padding:1px 5px;font-size:.68rem;font-weight:500}.header-dropdown-footer-btn{border:1px dashed var(--primary-border,#b1dce1);background:var(--primary-light,#edf7f8);width:100%;color:var(--primary,#3f929a);cursor:pointer;border-radius:6px;align-items:center;gap:6px;margin-top:6px;padding:7px 10px;font-size:.775rem;font-weight:600;transition:all .12s;display:flex}.header-dropdown-footer-btn:hover{background:var(--primary-subtle,#dcf0f2);color:var(--primary-hover,#337a82);border-style:solid}.header-right-col{flex-shrink:0;align-items:center;gap:10px;margin-left:auto;display:flex}.header-user-btn{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;outline:none;align-items:center;gap:9px;padding:4px 8px 4px 4px;transition:all .15s;display:flex}.header-user-btn:hover{background:#f8fafc;border-color:#e2e8f0}.header-user-avatar{background:linear-gradient(135deg, var(--primary,#3f929a) 0%, var(--primary-active,#276269) 100%);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:35px;height:35px;font-size:.825rem;font-weight:700;display:flex;box-shadow:0 1px 2px #00000014}.header-user-info{text-align:left;flex-direction:column;line-height:1.25;display:flex}.header-user-name{color:#0f172a;white-space:nowrap;font-size:.85rem;font-weight:600}.header-user-role{color:#64748b;white-space:nowrap;font-size:.72rem;font-weight:500}.header-logout-btn{cursor:pointer;color:#ef4444;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;flex-shrink:0;justify-content:center;align-items:center;width:35px;height:35px;transition:all .15s;display:flex}.header-logout-btn:hover{color:#dc2626;background:#fef2f2;border-color:#fecaca;transform:translateY(-1px);box-shadow:0 1px 2px #dc26261a}.header-logout-btn:active{transform:translateY(0)}@media (width<=991px){.header-menu-btn{display:inline-flex}}@media (width<=768px){.app-header{flex-direction:column;justify-content:flex-start;align-items:stretch;min-height:84px;height:auto!important;padding:0!important}.header-main-bar{flex-wrap:wrap;align-items:center;gap:0;width:100%;display:flex}.header-left-col{flex:auto;order:1;align-items:center;gap:8px;min-width:0;height:50px;padding:0 8px 0 12px;display:flex}.header-brand-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:none!important;font-size:1.05rem!important;font-weight:700!important}.header-right-col{flex:none;order:2;align-items:center;gap:8px;height:50px;margin-left:auto;padding:0 12px 0 4px;display:flex}.header-user-btn{padding:2px!important}.header-user-info{display:none!important}.header-user-avatar,.header-logout-btn{flex-shrink:0!important;width:35px!important;height:35px!important}.header-context-strip{white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;background:#f8fafc;border-top:1px solid #f1f5f9;order:3;align-items:center;gap:8px;min-height:34px;padding:0 12px;overflow-x:auto;width:100%!important;height:34px!important;display:flex!important}.header-context-strip::-webkit-scrollbar{display:none}.header-context-pill{box-shadow:0 1px 2px #00000008;background:#fff!important;flex-shrink:0!important;max-width:200px!important;height:25px!important;padding:0 8px!important;font-size:.74rem!important}.header-context-sep{flex-shrink:0!important}.header-dropdown-menu{z-index:1200!important;width:auto!important;max-width:calc(100vw - 24px)!important;position:fixed!important;top:86px!important;left:12px!important;right:12px!important;box-shadow:0 20px 25px -5px #00000026,0 10px 10px -5px #00000014!important}}@media (width<=480px){.header-brand-title{font-size:.98rem!important}.header-context-pill{max-width:170px!important}}.mobile-bottom-nav{height:calc(60px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);-webkit-backdrop-filter:blur(16px);z-index:1000;background:#fffffff0;border-top:1px solid #e2e8f0d9;justify-content:space-around;align-items:center;display:none;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #0f172a0f}@media (width<=768px){.mobile-bottom-nav{display:flex}.app-main{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))!important}.app-content{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))!important}}.mobile-nav-item{color:#64748b;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;outline:none;flex-direction:column;flex:1;justify-content:center;align-items:center;height:100%;padding:4px 2px;text-decoration:none;transition:all .15s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.mobile-nav-item:active{transform:scale(.92)}.mobile-nav-icon-wrap{border-radius:14px;justify-content:center;align-items:center;width:32px;height:28px;transition:all .2s;display:flex;position:relative}.mobile-nav-label{letter-spacing:-.01em;white-space:nowrap;margin-top:2px;font-size:.68rem;font-weight:500;transition:all .2s}.mobile-nav-item.active{color:var(--primary,#3f929a)}.mobile-nav-item.active .mobile-nav-icon-wrap{background:var(--primary-light,#edf7f8);color:var(--primary,#3f929a)}.mobile-nav-item.active .mobile-nav-label{color:var(--primary,#3f929a);font-weight:700}.mobile-nav-item.active:after{content:"";background:var(--primary,#3f929a);border-radius:50%;width:4px;height:4px;position:absolute;top:3px}:root{--primary:#3f929a;--primary-hover:#337a82;--primary-active:#276269;--primary-light:#edf7f8;--primary-subtle:#dcf0f2;--primary-border:#b1dce1;--primary-ring:#3f929a40;--logo-teal:#3f929a;--logo-teal-hover:#337a82;--logo-teal-active:#276269;--logo-teal-light:#edf7f8;--logo-teal-subtle:#dcf0f2;--logo-teal-border:#b1dce1;--logo-teal-ring:#3f929a40;--logo-orange:#f5a532;--logo-orange-hover:#df9023;--logo-orange-active:#c77e1b;--logo-orange-light:#fef8ee;--logo-orange-subtle:#fdf0dc;--logo-orange-border:#fbd69f;--logo-orange-ring:#f5a53240;--logo-green:#8bc54a;--logo-green-hover:#77ae3c;--logo-green-active:#669731;--logo-green-light:#f4f9ed;--logo-green-subtle:#e7f4d8;--logo-green-border:#c8e6a0;--logo-green-ring:#8bc54a40;--success:#16a34a;--success-light:#f0fdf4;--success-border:#bbf7d0;--warning:#f5a532;--warning-light:#fef8ee;--warning-border:#fbd69f;--danger:#dc2626;--danger-light:#fef2f2;--danger-border:#fecaca;--info:#3f929a;--info-light:#edf7f8;--info-border:#b1dce1;--bg-app:#f8fafc;--bg-surface:#fff;--bg-subtle:#f1f5f9;--bg-card:#fff;--border-color:#e2e8f0;--border-light:#edf2f7;--border-dark:#cbd5e1;--text-main:#1e293b;--text-muted:#64748b;--text-light:#94a3b8;--text-white:#fff;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--sidebar-width:260px;--sidebar-collapsed-width:72px;--header-height:64px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow-md:0 4px 6px -1px #00000014, 0 2px 4px -1px #0000000a;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -2px #0000000a;--shadow-modal:0 20px 25px -5px #00000026, 0 10px 10px -5px #0000000a;--transition-fast:.15s ease;--transition-normal:.25s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0;font-family:inherit}html,body{height:100%;font-family:var(--font-family);color:var(--text-main);background-color:var(--bg-app);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}input,button,select,textarea,optgroup,option,table,th,td,h1,h2,h3,h4,h5,h6,p,span,a,label{font-family:var(--font-family)}code,pre,kbd,samp,.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{color:var(--text-main);font-weight:600;line-height:1.3}h1{font-size:1.75rem}h2{font-size:1.4rem}h3{font-size:1.15rem}h4{font-size:1rem}p{color:var(--text-muted)}a{color:var(--primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--primary-hover)}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-family:inherit;font-size:.9rem;font-weight:500;display:inline-flex}.btn:disabled{opacity:.6;pointer-events:none;cursor:not-allowed!important}.btn-primary{background-color:var(--primary);color:var(--text-white);border-color:var(--primary);box-shadow:0 1px 3px #3f929a33}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover);border-color:var(--primary-hover);transform:translateY(-1px);box-shadow:0 3px 8px #3f929a59}.btn-primary:active:not(:disabled){background-color:var(--primary-active);border-color:var(--primary-active);transform:translateY(0)}.btn-accent,.btn-orange{background-color:var(--logo-orange);color:var(--text-white);border-color:var(--logo-orange);box-shadow:0 1px 3px #f5a53233}.btn-accent:hover:not(:disabled),.btn-orange:hover:not(:disabled){background-color:var(--logo-orange-hover);border-color:var(--logo-orange-hover);transform:translateY(-1px);box-shadow:0 3px 8px #f5a53259}.btn-accent:active:not(:disabled),.btn-orange:active:not(:disabled){background-color:var(--logo-orange-active);border-color:var(--logo-orange-active);transform:translateY(0)}.btn-success{background-color:var(--logo-green);color:var(--text-white);border-color:var(--logo-green);box-shadow:0 1px 3px #8bc54a33}.btn-success:hover:not(:disabled){background-color:var(--logo-green-hover);border-color:var(--logo-green-hover);transform:translateY(-1px);box-shadow:0 3px 8px #8bc54a59}.btn-secondary{background-color:var(--bg-surface);color:var(--text-main);border-color:var(--border-color)}.btn-secondary:hover:not(:disabled){background-color:var(--primary-light);border-color:var(--primary-border);color:var(--primary)}.btn-light{background-color:var(--primary-light);color:var(--primary);border-color:var(--primary-border)}.btn-light:hover:not(:disabled){background-color:var(--primary-subtle);border-color:var(--primary)}.btn-danger{background-color:var(--danger);color:var(--text-white);border-color:var(--danger)}.btn-danger:hover:not(:disabled){background-color:#b91c1c}.btn-outline-danger{color:var(--danger);border-color:var(--danger-border);background-color:#0000}.btn-outline-danger:hover:not(:disabled){background-color:var(--danger-light)}.btn-sm{border-radius:var(--radius-sm);padding:5px 10px;font-size:.8rem}.btn-lg{padding:12px 24px;font-size:1rem}.btn-icon-only,.btn-icon{border-radius:var(--radius-sm);cursor:pointer;width:28px;min-width:28px;height:28px;min-height:28px;transition:all var(--transition-fast);border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-icon svg,.btn-icon-only svg{flex-shrink:0}.btn-icon-warning{background-color:var(--warning-light,#fffbeb);border-color:var(--warning-border,#fde68a);color:var(--warning,#d97706)}.btn-icon-warning:hover:not(:disabled){background-color:#fef3c7;border-color:#fcd34d}.btn-icon-danger{background-color:var(--danger-light,#fef2f2);border-color:var(--danger-border,#fecaca);color:var(--danger,#dc2626)}.btn-icon-danger:hover:not(:disabled){background-color:#fee2e2;border-color:#fca5a5}.btn-icon-primary{background-color:var(--primary-light,#edf7f8);border-color:var(--primary-border,#b1dce1);color:var(--primary,#3f929a)}.btn-icon-primary:hover:not(:disabled){background-color:var(--primary-subtle,#dcf0f2);border-color:var(--primary,#3f929a)}.form-group{margin-bottom:16px;margin-bottom:var(--spacing-sm,12px);flex-direction:column;gap:6px;display:flex}.form-label{color:var(--text-main,#1e293b);-webkit-user-select:none;user-select:none;align-items:center;gap:4px;margin-bottom:5px;font-size:.825rem;font-weight:600;display:flex}.form-label .required{color:#ef4444;margin-left:2px;font-weight:700}.form-control,input.form-control,select.form-control,textarea.form-control,input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=url],input[type=search],input[type=date],input[type=datetime-local],input[type=time],input[type=month]{width:100%;height:38px;min-height:38px;color:var(--text-main,#1e293b);background-color:var(--bg-surface,#fff);border:1.5px solid var(--border-dark,#cbd5e1);border-radius:var(--radius-md,8px);box-sizing:border-box;transition:border-color var(--transition-fast,.15s ease), box-shadow var(--transition-fast,.15s ease), background-color var(--transition-fast,.15s ease);outline:none;padding:8px 12px;font-family:inherit;font-size:.875rem;font-weight:400}textarea.form-control,textarea{resize:vertical;min-height:80px;padding:8px 12px;font-family:inherit;font-size:.875rem;line-height:1.5;height:auto!important}.form-control::placeholder,input::placeholder,textarea::placeholder{color:var(--text-light,#94a3b8);opacity:1}select,select.form-control{appearance:none;color:var(--text-main,#1e293b);cursor:pointer;box-sizing:border-box;background-color:#fff;outline:none;font-family:inherit;font-size:.875rem;font-weight:500;transition:border-color .15s,box-shadow .15s;border:1.5px solid var(--border-dark,#cbd5e1)!important;border-radius:var(--radius-md,8px)!important;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233f929a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e")!important;background-position:right 10px center!important;background-repeat:no-repeat!important;background-size:15px 15px!important;height:38px!important;min-height:38px!important;padding:7px 34px 7px 12px!important}.form-control:hover:not(:disabled):not(:focus),input:hover:not(:disabled):not(:focus),select:hover:not(:disabled):not(:focus),textarea:hover:not(:disabled):not(:focus),.custom-select-trigger:hover:not(.disabled){border-color:var(--primary-border,#b1dce1)!important}.form-control:focus,.form-control:focus-visible,input:focus,input:focus-visible,select:focus,select:focus-visible,textarea:focus,textarea:focus-visible,.custom-select-trigger.open,.custom-select-trigger:focus-visible{border-color:var(--primary,#3f929a)!important;box-shadow:0 0 0 3px var(--primary-ring,#3f929a33)!important;outline:none!important}.form-control.error,input.error,select.error,textarea.error,.custom-select-trigger.error{border-color:var(--danger,#dc2626)!important;box-shadow:0 0 0 3px #dc262626!important}.form-control:disabled,input:disabled,select:disabled,textarea:disabled,.custom-select-trigger.disabled{cursor:not-allowed;opacity:.65;background-color:var(--bg-app,#f8fafc)!important;color:var(--text-light,#94a3b8)!important}select option{color:var(--text-main,#1e293b);background-color:#fff;padding:8px 12px;font-size:.875rem}.form-error{color:var(--danger,#dc2626);margin-top:4px;font-size:.78rem}.form-hint{color:var(--text-muted,#64748b);margin-top:4px;font-size:.78rem}.card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);overflow:visible}.card-header{border-bottom:1px solid var(--border-light);background:#fff;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.card-title{color:var(--text-main);font-size:1.05rem;font-weight:600}.card-body{padding:20px}.card-footer{background-color:var(--bg-subtle);border-top:1px solid var(--border-light);justify-content:flex-end;align-items:center;gap:12px;padding:12px 20px;display:flex}.table-responsive{-webkit-overflow-scrolling:touch;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-surface);width:100%;overflow-x:auto}.table{border-collapse:collapse;text-align:left;width:100%;font-size:.88rem}.table th{color:var(--text-muted);border-bottom:1px solid var(--border-color);white-space:nowrap;background-color:#f8fafc;padding:12px 16px;font-weight:600}.table td{border-bottom:1px solid var(--border-light);color:var(--text-main);vertical-align:middle;padding:12px 16px}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background-color:var(--primary-light)}.badge{text-transform:capitalize;white-space:nowrap;border-radius:9999px;align-items:center;gap:4px;padding:3px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.badge-success{background-color:var(--success-light);color:var(--success);border:1px solid var(--success-border)}.badge-warning{background-color:var(--warning-light);color:var(--warning);border:1px solid var(--warning-border)}.badge-danger{background-color:var(--danger-light);color:var(--danger);border:1px solid var(--danger-border)}.badge-info{background-color:var(--info-light);color:var(--info);border:1px solid var(--info-border)}.badge-primary{background-color:var(--primary-light);color:var(--primary);border:1px solid var(--primary-border)}.badge-neutral{background-color:var(--bg-subtle);color:var(--text-muted);border:1px solid var(--border-color)}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;background-color:#0f172a8c;justify-content:center;align-items:center;padding:16px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-dialog{background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);flex-direction:column;width:100%;max-width:580px;max-height:90vh;animation:.25s slideUp;display:flex;overflow:hidden}.modal-dialog.modal-lg{max-width:840px}.modal-dialog.modal-xl{max-width:1100px}.modal-dialog.modal-2xl{max-width:1240px}.modal-dialog.modal-full{width:96vw;max-width:96vw}.modal-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-title{color:var(--text-main);font-size:1.15rem;font-weight:600}.modal-close{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex}.modal-close:hover{background:var(--bg-subtle);color:var(--text-main)}.modal-body{flex:1;padding:20px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border-light);background-color:var(--bg-subtle);justify-content:flex-end;align-items:center;gap:10px;padding:14px 20px;display:flex}.toast-container{z-index:2000;flex-direction:column;gap:10px;max-width:380px;display:flex;position:fixed;top:20px;right:20px}.toast{border-radius:var(--radius-md);box-shadow:var(--shadow-lg);border:1px solid var(--border-color);background:#fff;align-items:flex-start;gap:12px;padding:12px 16px;animation:.25s slideInRight;display:flex}.toast-success{border-left:4px solid var(--success)}.toast-error{border-left:4px solid var(--danger)}.toast-warning{border-left:4px solid var(--warning)}.toast-info{border-left:4px solid var(--info)}.toast-message{color:var(--text-main);flex:1;font-size:.88rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInDropdown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUpward{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:.85s linear infinite spin!important}.spinner-ring{border:2px solid var(--primary);vertical-align:middle;border-top-color:#0000;border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.85s linear infinite spin;display:inline-block}::-webkit-scrollbar{width:0;height:0;display:none}*{scrollbar-width:none;-ms-overflow-style:none}.module-subnav{border-bottom:1px solid var(--border-color);align-items:center;gap:8px;margin-bottom:20px;padding:4px 0 8px;display:flex;overflow-x:auto}.module-subnav-tab{border-radius:var(--radius-md);color:var(--text-muted);background-color:var(--bg-surface);border:1px solid var(--border-color);transition:all var(--transition-fast);white-space:nowrap;align-items:center;gap:8px;padding:8px 16px;font-size:.88rem;font-weight:500;text-decoration:none;display:inline-flex}.module-subnav-tab:hover{color:var(--primary);border-color:var(--primary-border);background-color:var(--primary-light)}.module-subnav-tab.active{color:var(--primary);background-color:var(--primary-light);border-color:var(--primary);font-weight:600;box-shadow:0 1px 3px #2e7b851f}.login-input-with-icon,#login-email,#login-password,#forgot-email,#reset-token,#reset-new-password,#reset-confirm-password{padding-left:42px!important}#login-password,#reset-new-password,#reset-confirm-password{padding-right:44px!important}*,:before,:after{box-sizing:border-box}img,video,canvas{max-width:100%;height:auto}svg.lucide,.lucide{vertical-align:middle;flex-shrink:0;display:inline-block}.app-layout{width:100%;max-width:100vw;height:100vh;display:flex;position:relative;overflow:hidden}.app-main{background-color:var(--bg-app);-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;width:100%;min-width:0;height:100vh;display:flex;overflow:hidden auto}.app-content{flex:1;width:100%;min-width:0;max-width:1600px;margin:0 auto;padding:24px}.app-sidebar{width:var(--sidebar-width);border-right:1px solid var(--border-color);height:100vh;max-height:100vh;transition:width var(--transition-normal), transform var(--transition-normal);z-index:900;background:#fff;flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.sidebar-backdrop{display:none}.app-header{height:var(--header-height);border-bottom:1px solid var(--border-color);z-index:800;background:#fff;flex-shrink:0;justify-content:space-between;align-items:center;width:100%;min-width:0;padding:0 24px;display:flex;position:sticky;top:0}.header-menu-btn{border-radius:var(--radius-sm);color:var(--text-main);cursor:pointer;transition:background-color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;margin-right:4px;padding:8px;display:none}.header-menu-btn:hover{background-color:var(--bg-subtle)}.grid-2,.form-grid-2{grid-template-columns:repeat(2,1fr);gap:16px;width:100%;display:grid}.grid-3,.form-grid-3{grid-template-columns:repeat(3,1fr);gap:16px;width:100%;display:grid}.grid-4,.form-grid-4{grid-template-columns:repeat(4,1fr);gap:16px;width:100%;display:grid}.grid-5{grid-template-columns:repeat(5,1fr);gap:14px;width:100%;display:grid}.grid-6{grid-template-columns:repeat(6,1fr);gap:12px;width:100%;display:grid}.responsive-split-2{grid-template-columns:1fr 1fr;gap:16px;width:100%;display:grid}.filter-toolbar{flex-wrap:wrap;align-items:center;gap:12px;width:100%;display:flex}.filter-item{flex:160px;min-width:130px}.filter-search{flex:2 240px;min-width:180px}.filter-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dashboard-stats-grid{grid-template-columns:repeat(4,1fr);gap:14px;width:100%;display:grid}@media (width<=1200px){.dashboard-stats-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=768px){.dashboard-stats-grid{grid-template-columns:repeat(2,1fr)}}.dashboard-overview-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;width:100%;display:grid}.dashboard-shortcuts-grid{grid-template-columns:repeat(2,1fr);gap:10px;width:100%;display:grid}.roles-checkbox-grid{flex:1;grid-template-columns:repeat(5,1fr);gap:6px;width:100%;min-width:0;display:grid}@media (width<=991px){.roles-checkbox-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=575px){.roles-checkbox-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.dashboard-stats-grid{grid-template-columns:repeat(2,1fr);gap:10px}.dashboard-stats-grid .card{padding:12px 14px!important}.dashboard-shortcuts-grid{grid-template-columns:1fr}}@media (width<=360px){.dashboard-stats-grid{grid-template-columns:1fr}}.login-card{background-color:#fff;border:1px solid #e2e8f0;border-radius:16px;width:100%;max-width:420px;padding:40px 32px;box-shadow:0 10px 25px -5px #0000000f,0 8px 10px -6px #0000000a}@media (width<=480px){.login-card{border-radius:12px!important;padding:26px 18px!important}}.page-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;width:100%;margin-bottom:4px;display:flex}.page-header-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.table-responsive{-webkit-overflow-scrolling:touch;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-surface);width:100%;max-width:100%;position:relative;overflow-x:auto}.table-responsive::-webkit-scrollbar{height:6px;display:block}.table-responsive::-webkit-scrollbar-thumb{background-color:var(--border-dark);border-radius:4px}.table{border-collapse:collapse;width:100%;min-width:600px}.tabs-scroll-container{-webkit-overflow-scrolling:touch;white-space:nowrap;border-bottom:1px solid var(--border-color);align-items:center;gap:4px;margin-bottom:16px;padding-bottom:2px;display:flex;overflow-x:auto}.tabs-scroll-container::-webkit-scrollbar{height:3px;display:block}.tabs-scroll-container::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:3px}.tab-scroll-btn{cursor:pointer;white-space:nowrap;background:0 0;border:none;flex-shrink:0;padding:10px 14px;font-size:.86rem}@media (width<=1199px){.app-content{padding:20px}.grid-4,.form-grid-4,.grid-5,.grid-6{grid-template-columns:repeat(3,1fr)}}@media (width<=1024px){.header-menu-btn{display:inline-flex}.grid-4,.form-grid-4,.grid-3,.form-grid-3,.grid-5,.grid-6{grid-template-columns:repeat(2,1fr)}.app-sidebar{width:280px;box-shadow:var(--shadow-modal);z-index:1050;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.app-sidebar.mobile-open{transform:translate(0)}.sidebar-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1040;background:#0f172a73;display:block;position:fixed;inset:0}.app-header{padding:0 16px}.app-content{padding:16px}}@media (width<=768px){.grid-4,.form-grid-4,.grid-3,.form-grid-3,.grid-2,.form-grid-2,.grid-5,.grid-6,.responsive-split-2{grid-template-columns:1fr!important;gap:12px!important}.app-content{padding:12px}.page-header-row{flex-direction:column;align-items:stretch;gap:10px}.page-header-actions{flex-direction:column;align-items:stretch;gap:8px;width:100%}.page-header-actions .btn{width:100%}.card-header{flex-direction:column;align-items:flex-start;gap:10px;padding:12px 16px}.card-body{padding:14px}.card-footer{flex-direction:column-reverse;align-items:stretch;gap:8px;padding:10px 14px}.card-footer .btn{width:100%}.modal-overlay,.modal-backdrop{justify-content:center!important;align-items:flex-end!important;padding:0!important;display:flex!important}.modal-dialog,.modal-content{width:100vw!important;max-width:100vw!important;max-height:90vh!important;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))!important;border-radius:20px 20px 0 0!important;margin:0!important;animation:.24s cubic-bezier(.16,1,.3,1) slideUpSheet!important;box-shadow:0 -10px 30px #0000002e!important}@keyframes slideUpSheet{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{border-bottom:1px solid #f1f5f9!important;padding:16px 18px 12px!important;position:relative!important}.modal-header:before{content:"";background:#cbd5e1;border-radius:2px;width:40px;height:4px;position:absolute;top:6px;left:50%;transform:translate(-50%)}.modal-body{-webkit-overflow-scrolling:touch;max-height:calc(90vh - 130px)!important;padding:16px 18px!important;overflow-y:auto!important}.modal-footer{border-top:1px solid #f1f5f9!important;flex-direction:column-reverse!important;align-items:stretch!important;gap:8px!important;padding:12px 18px!important}.modal-footer .btn{justify-content:center!important;width:100%!important;min-height:44px!important;font-size:.95rem!important;font-weight:600!important}.form-group{width:100%!important;margin-bottom:14px!important}.form-group label,form label{color:#334155!important;margin-bottom:5px!important;font-size:.82rem!important;font-weight:600!important;display:block!important}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=time],input[type=datetime-local],input[type=tel],input[type=url],input[type=search],select,textarea,.form-control{background-color:#fff;border:1px solid #cbd5e1;transition:border-color .15s,box-shadow .15s;box-sizing:border-box!important;border-radius:8px!important;width:100%!important;min-height:42px!important;padding-top:8px!important;padding-bottom:8px!important;font-size:16px!important}input:not([style*="38px"]):not([style*="40px"]):not([style*="30px"]):not([class*=icon]):not([class*=search]):not([type=checkbox]):not([type=radio]),select,textarea{padding-left:12px;padding-right:12px}.input-with-icon input,.login-input-icon,.login-input-with-icon,#login-email,#login-password,#forgot-email,#reset-token,#reset-new-password,#reset-confirm-password,input.login-input-with-icon,input[style*="38px"],input[style*="40px"],input[style*="42px"]{padding-left:42px!important}div:has(>svg:first-child)>input{padding-left:42px!important}div:has(>svg[style*=absolute])>input{padding-left:42px!important}div:has(>.input-icon)>input{padding-left:42px!important}#login-password,#reset-new-password,#reset-confirm-password{padding-right:44px!important}input:focus,select:focus,textarea:focus,.form-control:focus{border-color:var(--primary,#2e7b85)!important;outline:none!important;box-shadow:0 0 0 3px #2e7b8526!important}textarea{resize:vertical;min-height:75px!important}.form-grid-2,.form-grid-3,.form-grid-4,.grid-2,.grid-3,.grid-4,.grid-5,.grid-6,.form-row{flex-direction:column!important;gap:12px!important;width:100%!important;display:flex!important}form button[type=submit],form .btn-primary{min-height:44px!important;font-size:.95rem!important;font-weight:600!important}.btn{touch-action:manipulation;min-height:40px}.attendance-nav-tabs,.tabs-scroll-container,.sub-nav-tabs,[role=tablist]{white-space:nowrap!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:none!important;-ms-overflow-style:none!important;flex-wrap:nowrap!important;width:100%!important;max-width:100%!important;padding-bottom:2px!important;overflow-x:auto!important}.attendance-nav-tabs::-webkit-scrollbar{display:none!important}.tabs-scroll-container::-webkit-scrollbar{display:none!important}.sub-nav-tabs::-webkit-scrollbar{display:none!important}.attendance-nav-tabs button,.tabs-scroll-container button,.sub-nav-tabs button{white-space:nowrap!important;flex-shrink:0!important}.filter-toolbar{flex-direction:column!important;align-items:stretch!important;gap:10px!important;width:100%!important}.filter-item,.filter-search{flex:100%!important;width:100%!important}.toast-container{max-width:none;top:12px;left:12px;right:12px}}@media (width<=575px){.app-content{padding:10px 8px}h1{font-size:1.3rem!important}h2{font-size:1.15rem!important}h3{font-size:1rem!important}.table th,.table td{padding:8px 10px!important;font-size:.8rem!important}.badge{padding:2px 6px!important;font-size:.7rem!important}.card .btn-group,.card .actions-row{flex-direction:column!important;width:100%!important}.card .btn-group .btn,.card .actions-row .btn{width:100%!important}}
