:root{--color-primary: #667eea;--color-primary-dark: #764ba2;--color-primary-light: #8b9eff;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-info: #3b82f6;--color-white: #ffffff;--color-black: #000000;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-2xl: 32px;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 30px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .1);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--transition-fast: .15s ease-out;--transition-normal: .3s ease-out;--transition-slow: .5s ease-out}*{box-sizing:border-box}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-gray-900);background:var(--color-gray-50);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{scroll-behavior:smooth}h1,h2,h3,h4,h5,h6{margin:0;font-weight:700;line-height:1.2;letter-spacing:-.5px}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}p{margin:0}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-dark)}button{font-family:inherit;cursor:pointer;border:none;transition:all var(--transition-fast)}button:disabled{opacity:.6;cursor:not-allowed}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.btn-primary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:#fff;box-shadow:var(--shadow-md)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-secondary{background:var(--color-gray-100);color:var(--color-gray-900);border:1px solid var(--color-gray-300)}.btn-secondary:hover:not(:disabled){background:var(--color-gray-200)}.btn-danger{background:var(--color-error);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.card{background:#fff;border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-sm);transition:all var(--transition-normal)}.card:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-header{margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-gray-100);padding-bottom:var(--spacing-lg)}.card-title{font-size:var(--font-size-xl);font-weight:700;color:var(--color-gray-900)}.card-description{font-size:var(--font-size-sm);color:var(--color-gray-600);margin-top:var(--spacing-xs)}.card-content{font-size:var(--font-size-sm);color:var(--color-gray-700)}input,select,textarea{font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-md) var(--spacing-lg);border:2px solid var(--color-gray-200);border-radius:var(--radius-md);transition:all var(--transition-fast);background:#fff}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #667eea1a;background:#f8faff}input:disabled,select:disabled,textarea:disabled{background:var(--color-gray-50);color:var(--color-gray-400);cursor:not-allowed}input::-moz-placeholder{color:var(--color-gray-400)}input::placeholder{color:var(--color-gray-400)}.badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.3px}.badge-info{background:#dbeafe;color:#1e40af}.table-wrapper{overflow-x:auto;border-radius:var(--radius-lg)}table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}thead{background:var(--color-gray-50);border-bottom:2px solid var(--color-gray-200)}th{padding:var(--spacing-lg);text-align:left;font-weight:700;color:var(--color-gray-900);white-space:nowrap}td{padding:var(--spacing-lg);border-bottom:1px solid var(--color-gray-100);color:var(--color-gray-700)}tbody tr:hover{background:var(--color-gray-50)}.alert{padding:var(--spacing-lg);border-radius:var(--radius-md);border-left:4px solid;display:flex;align-items:center;gap:var(--spacing-md);animation:slideDown .3s ease-out}.alert-success{background:#d1fae5;color:#065f46;border-color:var(--color-success)}.alert-error{background:#fee2e2;color:#991b1b;border-color:var(--color-error)}.alert-warning{background:#fef3c7;color:#92400e;border-color:var(--color-warning)}.alert-info{background:#dbeafe;color:#1e40af;border-color:var(--color-info)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn var(--transition-fast)}.modal{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:500px;width:90%;max-height:90vh;overflow-y:auto;animation:slideUp var(--transition-normal)}.modal-header{padding:var(--spacing-xl);border-bottom:1px solid var(--color-gray-200);display:flex;justify-content:space-between;align-items:center}.modal-body{padding:var(--spacing-xl)}.modal-footer{padding:var(--spacing-xl);border-top:1px solid var(--color-gray-200);display:flex;gap:var(--spacing-md);justify-content:flex-end}@media(max-width:768px){:root{--font-size-base: 15px;--font-size-lg: 17px;--font-size-xl: 19px;--font-size-2xl: 22px;--font-size-3xl: 26px}.card{padding:var(--spacing-lg)}.btn{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-xs)}th,td{padding:var(--spacing-md);font-size:var(--font-size-xs)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(prefers-color-scheme:dark){body{background:var(--color-gray-900);color:var(--color-gray-50)}.card{background:var(--color-gray-800);border-color:var(--color-gray-700)}input,select,textarea{background:var(--color-gray-800);border-color:var(--color-gray-700);color:var(--color-gray-50)}table{color:var(--color-gray-300)}thead{background:var(--color-gray-700)}td{border-color:var(--color-gray-700)}tbody tr:hover{background:var(--color-gray-700)}}.app-layout{display:flex;min-height:100vh;background:var(--color-gray-50);font-family:var(--font-family)}.sidebar{width:280px;background:linear-gradient(180deg,#1f2937,#111827);color:#fff;overflow-y:auto;border-right:1px solid rgba(255,255,255,.1);position:relative;z-index:100;transition:transform .3s ease}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.layout-header{background:#fff;border-bottom:1px solid #e5e7eb;padding:1rem 2rem;box-shadow:0 1px 3px #0000000d;display:flex;align-items:center;justify-content:space-between;height:60px}.layout-body{flex:1;overflow-y:auto;overflow-x:hidden}.page-container{padding:2rem;max-width:1400px;margin:0 auto;width:100%}.sidebar-header{padding:1.5rem;display:flex;align-items:center;gap:.75rem;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:1.5rem}.sidebar-logo{width:32px;height:32px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1.25rem}.sidebar-title{font-size:1rem;font-weight:700;margin:0}.sidebar-menu{list-style:none;padding:0;margin:0}.sidebar-menu-section{padding:1rem 0}.sidebar-menu-section-title{padding:0 1.5rem;margin:0;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#ffffff80;margin-bottom:.75rem}.sidebar-menu-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;margin:.25rem .75rem;cursor:pointer;border-radius:8px;font-size:.875rem;font-weight:500;color:#fffc;transition:all .3s ease;text-decoration:none}.sidebar-menu-item:hover{background:#ffffff1a;color:#fff;transform:translate(4px)}.sidebar-menu-item.active{background:linear-gradient(90deg,#667eea33,#667eea1a);color:#667eea;border-left:3px solid #667eea;padding-left:calc(1.5rem - 3px);font-weight:600}.sidebar-submenu{list-style:none;padding:0;margin:0;max-height:0;overflow:hidden;transition:max-height .3s ease}.sidebar-menu-item.expanded+.sidebar-submenu{max-height:500px}.sidebar-submenu-item{display:flex;align-items:center;gap:.75rem;padding:.5rem 1.5rem .5rem 2.5rem;cursor:pointer;font-size:.8125rem;color:#fff9;transition:all .3s ease;text-decoration:none}.sidebar-submenu-item:hover{color:#ffffffe6;transform:translate(4px)}.sidebar-submenu-item.active{color:#667eea;font-weight:600}.sidebar-footer{position:absolute;bottom:0;left:0;right:0;padding:1rem 1.5rem;border-top:1px solid rgba(255,255,255,.1);background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.2) 100%)}.header-content{display:flex;align-items:center;justify-content:space-between;width:100%;gap:2rem}.header-left{display:flex;align-items:center;gap:1rem;flex:1}.header-menu-toggle{display:none;background:none;border:none;color:#1f2937;font-size:1.5rem;cursor:pointer;padding:0}.header-breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#6b7280}.header-breadcrumb-item{color:#6b7280}.header-breadcrumb-item.active{color:#1f2937;font-weight:600}.header-breadcrumb-separator{color:#d1d5db}.header-right{display:flex;align-items:center;gap:1.5rem}.header-search{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:8px;font-size:.875rem}.header-search input{border:none;background:transparent;outline:none;width:200px;color:#1f2937}.header-search input::-moz-placeholder{color:#9ca3af}.header-search input::placeholder{color:#9ca3af}.header-actions{display:flex;align-items:center;gap:1rem}.header-action-btn{background:none;border:none;color:#6b7280;cursor:pointer;font-size:1.25rem;transition:color .3s ease;padding:0;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:8px}.header-action-btn:hover{background:var(--color-gray-100);color:#1f2937}.header-user{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;cursor:pointer;border-radius:8px;transition:background-color .3s ease}.header-user:hover{background:var(--color-gray-100)}.header-user-avatar{width:32px;height:32px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.875rem}.header-user-name{font-size:.875rem;font-weight:600;color:#1f2937;display:none}.breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#6b7280;margin-bottom:1.5rem}.breadcrumb-item{display:flex;align-items:center;gap:.5rem;color:#6b7280;text-decoration:none;transition:color .3s ease}.breadcrumb-item:hover{color:#667eea}.breadcrumb-item.active{color:#1f2937;font-weight:600}.breadcrumb-separator{color:#d1d5db}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-gray-100)}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}@media(max-width:1024px){.sidebar{width:240px}.page-container{padding:1.5rem}.header-search,.header-user-name{display:none}}@media(max-width:768px){.app-layout{flex-direction:column}.sidebar{width:100%;height:auto;position:fixed;left:-280px;top:60px;z-index:99;border-right:none;border-bottom:1px solid rgba(255,255,255,.1);transition:left .3s ease;max-height:calc(100vh - 60px);overflow-y:auto}.sidebar.open{left:0}.main-content{width:100%}.layout-header{height:60px;padding:0 1rem}.header-menu-toggle{display:block}.page-container{padding:1rem}.header-search input{width:120px}.header-search{display:flex}.sidebar-footer{position:static;border-top:1px solid rgba(255,255,255,.1);background:none}}@media(max-width:640px){.layout-header{flex-direction:column;align-items:stretch;gap:.75rem}.header-content{gap:1rem}.header-breadcrumb{display:none}.header-search{order:2}.sidebar{left:-100%}.page-container{padding:.75rem}}@media print{.sidebar,.layout-header,.page-actions{display:none}.app-layout{flex-direction:column}.main-content{width:100%}.page-container{padding:0;max-width:100%}}.card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem;box-shadow:0 1px 3px #0000000d;transition:all .3s ease}.card:hover{border-color:#667eea;box-shadow:0 10px 25px #667eea1a;transform:translateY(-4px)}.card-header{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #f3f4f6}.card-title{margin:0;font-size:1.25rem;font-weight:700;color:#1f2937;letter-spacing:-.3px}.card-description{margin:.5rem 0 0;font-size:.875rem;color:#6b7280}.card-content{font-size:.875rem;color:#374151;line-height:1.6}.card-footer{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #f3f4f6;display:flex;gap:.75rem;justify-content:flex-end}.btn-group{display:flex;gap:.75rem;flex-wrap:wrap}.btn-outline{background:transparent;color:#667eea;border:2px solid #667eea}.btn-outline:hover:not(:disabled){background:#f8faff}.btn-success{background:#d1fae5;color:#065f46;border:2px solid #a7f3d0}.btn-success:hover:not(:disabled){background:#a7f3d0}.btn-sm{padding:.5rem 1rem;font-size:.75rem}.btn-lg{padding:1rem 2rem;font-size:1rem}.badge{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .875rem;border-radius:6px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.badge-primary{background:#667eea1a;color:#667eea;border:1px solid rgba(102,126,234,.2)}.badge-success{background:#d1fae5;color:#065f46;border:1px solid #a7f3d0}.badge-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.badge-warning{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.badge-info{background:#dbeafe;color:#1e40af;border:1px solid #bfdbfe}.alert{display:flex;align-items:flex-start;gap:1rem;padding:1rem 1.5rem;border-radius:8px;border-left:4px solid;animation:slideDown .3s ease-out}.alert-success{background:#d1fae5;color:#065f46;border-color:#10b981}.alert-error{background:#fee2e2;color:#991b1b;border-color:#ef4444}.alert-warning{background:#fef3c7;color:#92400e;border-color:#f59e0b}.alert-info{background:#dbeafe;color:#1e40af;border-color:#3b82f6}.alert-close{margin-left:auto;background:none;border:none;cursor:pointer;color:inherit;font-weight:700;padding:0;opacity:.7;transition:opacity .2s;flex-shrink:0}.alert-close:hover{opacity:1}.input-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.input-label{font-size:.875rem;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.3px}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],select,textarea{padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:8px;font-size:.875rem;font-family:inherit;transition:all .3s ease;background:#fff;color:#1f2937}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input[type=date]:focus,select:focus,textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;background:#f8faff}input[type=text]:disabled,input[type=email]:disabled,input[type=password]:disabled,input[type=number]:disabled,input[type=date]:disabled,select:disabled,textarea:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed;border-color:#e5e7eb}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af}input::placeholder,textarea::placeholder{color:#9ca3af}.input-error{border-color:#ef4444;background:#fef2f2}.input-error:focus{box-shadow:0 0 0 3px #ef44441a}.input-error-text{font-size:.75rem;color:#ef4444;margin-top:.25rem;font-weight:600}.checkbox-group{display:flex;align-items:center;gap:.75rem;padding:.75rem;cursor:pointer;border-radius:6px;transition:background-color .2s ease}.checkbox-group:hover{background:#f9fafb}.checkbox-group input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#667eea}.checkbox-label{font-size:.875rem;color:#374151;cursor:pointer}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:12px;padding-right:2.5rem}.tabs-container{border-bottom:2px solid #e5e7eb;margin-bottom:1.5rem}.tabs-list{display:flex;gap:0;list-style:none;padding:0;margin:0}.tabs-trigger{padding:1rem 1.5rem;border:none;background:transparent;color:#6b7280;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.3px;border-bottom:3px solid transparent;margin-bottom:-2px}.tabs-trigger:hover{color:#1f2937}.tabs-trigger[data-state=active]{color:#667eea;border-bottom-color:#667eea}.tabs-content{animation:fadeIn .3s ease-out}.spinner{display:inline-block;width:1rem;height:1rem;animation:spin 1s linear infinite}.divider{height:1px;background:#e5e7eb;margin:1.5rem 0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}@media(max-width:768px){.card{padding:1rem}.btn{padding:.625rem 1.25rem;font-size:.75rem}.btn-sm{padding:.375rem .875rem}.btn-lg{padding:.875rem 1.75rem}.alert{flex-direction:column}.alert-close{margin-left:0;align-self:flex-end}.modal-footer{flex-direction:column-reverse}.modal-footer .btn{width:100%}}.masters-page{display:flex;flex-direction:column;gap:2rem;animation:slideUp .6s ease-out}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.5rem;margin-bottom:1rem}.page-header-content{display:flex;flex-direction:column;gap:.5rem}.page-title{margin:0;font-size:2rem;font-weight:700;color:#1f2937;letter-spacing:-.5px}.page-subtitle{margin:0;font-size:.875rem;color:#6b7280;font-weight:500}.page-actions{display:flex;gap:1rem;flex-wrap:wrap}.filter-section{display:flex;align-items:center;gap:1rem;padding:1.5rem;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000000d;animation:slideUp .6s ease-out .1s both}.filter-label{font-size:.875rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.filter-select{flex:1;min-width:200px;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:8px;font-size:.875rem;color:#1f2937;background:#fff;cursor:pointer;transition:all .3s ease;font-family:inherit}.filter-select:hover{border-color:#d1d5db;background:#f9fafb}.filter-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;background:#f8faff}.filter-info{padding:.5rem 1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:8px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.notification{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;border-radius:8px;border-left:4px solid;animation:slideDown .3s ease-out}.notification-success{background:#d1fae5;color:#065f46;border-color:#10b981}.notification-error{background:#fee2e2;color:#991b1b;border-color:#ef4444}.notification-info{background:#dbeafe;color:#1e40af;border-color:#3b82f6}.notification-close{margin-left:auto;background:none;border:none;cursor:pointer;color:inherit;font-weight:700;padding:0;opacity:.7;transition:opacity .2s}.notification-close:hover{opacity:1}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-out}.modal{background:#fff;border-radius:12px;box-shadow:0 20px 25px #00000026;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease-out}.modal-header{padding:1.5rem;border-bottom:1px solid #e5e7eb;background:linear-gradient(135deg,#f8faff,#f3f4f6);display:flex;justify-content:space-between;align-items:center}.modal-title{margin:0;font-size:1.25rem;font-weight:700;color:#1f2937}.modal-close{background:none;border:none;cursor:pointer;color:#6b7280;font-size:1.5rem;padding:0;transition:color .2s}.modal-close:hover{color:#1f2937}.modal-footer{padding:1.5rem;border-top:1px solid #e5e7eb;display:flex;gap:1rem;justify-content:flex-end}.form-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.form-label{font-size:.875rem;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.3px}.form-input{padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:8px;font-size:.875rem;font-family:inherit;transition:all .3s ease;background:#fff}.form-input:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.form-input-error{border-color:#ef4444;background:#fef2f2}.form-input-error:focus{box-shadow:0 0 0 3px #ef44441a}.form-error{font-size:.75rem;color:#ef4444;margin-top:.25rem;font-weight:600}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.form-checkbox{display:flex;align-items:center;gap:.75rem;padding:.75rem;cursor:pointer}.form-checkbox input{cursor:pointer;width:18px;height:18px;accent-color:#667eea}.form-checkbox-label{font-size:.875rem;color:#374151;cursor:pointer}.table-container{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000000d;animation:slideUp .6s ease-out}.table-responsive{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.875rem}thead{background:linear-gradient(135deg,#f8faff,#f3f4f6);border-bottom:2px solid #e5e7eb}th{padding:1rem;text-align:left;font-weight:700;color:#1f2937;white-space:nowrap;text-transform:uppercase;letter-spacing:.3px;font-size:.75rem}td{padding:1rem;border-bottom:1px solid #f3f4f6;color:#374151}tbody tr{transition:background-color .2s ease}tbody tr:hover{background:#f9fafb}tbody tr:last-child td{border-bottom:none}.status-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .875rem;border-radius:6px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.status-active{background:#d1fae5;color:#065f46}.status-blocked{background:#fee2e2;color:#991b1b}.status-deleted{background:#e5e7eb;color:#374151}.status-pending{background:#fef3c7;color:#92400e}.actions-cell{display:flex;gap:.5rem;align-items:center}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;color:#6b7280;background:transparent}.btn-icon:hover{background:#f3f4f6;color:#1f2937}.btn-icon-edit{color:#3b82f6}.btn-icon-edit:hover{background:#dbeafe}.btn-icon-delete{color:#ef4444}.btn-icon-delete:hover{background:#fee2e2}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;cursor:pointer;transition:all .3s ease;font-family:inherit}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 15px #667eea33}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea4d}.btn-secondary{background:#f3f4f6;color:#1f2937;border:2px solid #e5e7eb}.btn-secondary:hover:not(:disabled){background:#e5e7eb;border-color:#d1d5db}.btn-danger{background:#fee2e2;color:#991b1b;border:2px solid #fecaca}.btn-danger:hover:not(:disabled){background:#fecaca}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.page-header{flex-direction:column;align-items:flex-start;gap:1rem}.page-actions{width:100%}.page-actions .btn{flex:1}.filter-section{flex-direction:column;align-items:stretch}.filter-select{width:100%}.form-row{grid-template-columns:1fr}.modal{width:95%}th,td{padding:.75rem .5rem;font-size:.75rem}.status-badge{font-size:.65rem;padding:.25rem .625rem}.actions-cell{flex-wrap:wrap;gap:.25rem}.btn-icon{width:28px;height:28px;font-size:.875rem}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking: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-outline-style:solid;--tw-duration:initial;--tw-ease: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-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-purple-600:oklch(55.8% .288 302.321);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--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-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-2xl:42rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--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);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--shadow-sm:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--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%;-moz-tab-size:4;-o-tab-size:4;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}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::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]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance: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{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.left-3{left:calc(var(--spacing)*3)}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.m-1{margin:calc(var(--spacing)*1)}.m-2{margin:calc(var(--spacing)*2)}.m-4{margin:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.ml-1{margin-left:calc(var(--spacing)*1)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-2{height:calc(var(--spacing)*2)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.h-12{height:calc(var(--spacing)*12)}.h-20{height:calc(var(--spacing)*20)}.h-auto{height:auto}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-2{width:calc(var(--spacing)*2)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-8{width:calc(var(--spacing)*8)}.w-10{width:calc(var(--spacing)*10)}.w-20{width:calc(var(--spacing)*20)}.w-64{width:calc(var(--spacing)*64)}.w-\[50px\]{width:50px}.w-\[60px\]{width:60px}.w-\[80px\]{width:80px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[200px\]{max-width:200px}.max-w-md{max-width:var(--container-md)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.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)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*0)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*0)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*3)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-x-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-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-blue-200{border-color:var(--color-blue-200)}.border-green-200{border-color:var(--color-green-200)}.border-red-200{border-color:var(--color-red-200)}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300{border-color:var(--color-slate-300)}.border-yellow-200{border-color:var(--color-yellow-200)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-600{background-color:var(--color-red-600)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-200{background-color:var(--color-slate-200)}.bg-white{background-color:var(--color-white)}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-blue-500{--tw-gradient-from:var(--color-blue-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-blue-600{--tw-gradient-to:var(--color-blue-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.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)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-8{padding-top:calc(var(--spacing)*8)}.pl-8{padding-left:calc(var(--spacing)*8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--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))}.leading-none{--tw-leading:1;line-height:1}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-purple-600{color:var(--color-purple-600)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-900{color:var(--color-slate-900)}.text-slate-950{color:var(--color-slate-950)}.text-white{color:var(--color-white)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.underline-offset-4{text-underline-offset:4px}.shadow{--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)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px 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)}.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)}.ring{--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)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,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-all{transition-property:all;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))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.placeholder\:text-slate-500::-moz-placeholder{color:var(--color-slate-500)}.placeholder\:text-slate-500::placeholder{color:var(--color-slate-500)}@media(hover:hover){.hover\:bg-blue-100:hover{background-color:var(--color-blue-100)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-green-100:hover{background-color:var(--color-green-100)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-slate-50:hover{background-color:var(--color-slate-50)}.hover\:bg-slate-100:hover{background-color:var(--color-slate-100)}.hover\:bg-slate-300:hover{background-color:var(--color-slate-300)}.hover\:bg-yellow-100:hover{background-color:var(--color-yellow-100)}.hover\:text-slate-900:hover{color:var(--color-slate-900)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + 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-visible\:ring-blue-500:focus-visible{--tw-ring-color:var(--color-blue-500)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[state\=selected\]\:bg-slate-100[data-state=selected]{background-color:var(--color-slate-100)}@media(min-width:40rem){.sm\:px-6{padding-inline:calc(var(--spacing)*6)}}@media(min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(min-width:64rem){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:px-8{padding-inline:calc(var(--spacing)*8)}}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\]\:border-slate-200 tr{border-color:var(--color-slate-200)}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing)*0)}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:top-4>svg{top:calc(var(--spacing)*4)}.\[\&\>svg\]\:left-4>svg{left:calc(var(--spacing)*4)}.\[\&\>svg\]\:text-blue-600>svg{color:var(--color-blue-600)}.\[\&\>svg\]\:text-current>svg{color:currentColor}.\[\&\>svg\]\:text-green-600>svg{color:var(--color-green-600)}.\[\&\>svg\]\:text-yellow-600>svg{color:var(--color-yellow-600)}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:calc(var(--spacing)*7)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}:root{--spacing:.25rem;--color-slate-50:#f8fafc;--color-slate-100:#f1f5f9;--color-slate-200:#e2e8f0;--color-slate-300:#cbd5e1;--color-slate-400:#94a3b8;--color-slate-500:#64748b;--color-slate-600:#475569;--color-slate-700:#334155;--color-slate-800:#1e293b;--color-slate-900:#0f172a;--color-blue-500:#3b82f6;--color-blue-600:#2563eb;--color-blue-700:#1d4ed8;--color-red-600:#dc2626;--color-green-600:#16a34a;--color-white:#fff}html,body,:root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%}body{color:#1e293b;background-color:#fff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;line-height:1.5}*{border-color:#e2e8f0}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}input,select,textarea,button{font-family:inherit}@keyframes slideInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.3s ease-out fadeIn}.animate-slide-in-up{animation:.3s ease-out slideInUp}.animate-spin{animation:1s linear infinite spin}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{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-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}.app-root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial;width:100%;min-height:100vh}@keyframes slideInUp{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideDown{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.page-header{background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.page-title{font-size:1.875rem;font-weight:700;color:#1e293b;margin:0}.page-subtitle{font-size:.875rem;color:#64748b;margin:.25rem 0 0}.card{background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;overflow:hidden;transition:all .2s ease}.card:hover{box-shadow:0 4px 6px -1px #0000001a}.card-header{padding:1.5rem;border-bottom:1px solid #e2e8f0;background:#f8fafc}.card-content{padding:1.5rem}.card-footer{padding:1.5rem;border-top:1px solid #e2e8f0;background:#f8fafc}.table-container{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th{background:#f8fafc;padding:.75rem;text-align:left;font-weight:600;color:#475569;font-size:.875rem;border-bottom:1px solid #e2e8f0;text-transform:uppercase;letter-spacing:.05em}.table td{padding:.75rem;border-bottom:1px solid #e2e8f0;color:#1e293b}.table tbody tr:hover{background:#f1f5f9;transition:background-color .15s ease}.table tbody tr:last-child td{border-bottom:none}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-size:.875rem;font-weight:600;color:#1e293b;margin-bottom:.5rem}.form-group .required{color:#dc2626;margin-left:.25rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.625rem .75rem;font-size:.875rem;border:1px solid #cbd5e1;border-radius:.375rem;font-family:inherit;transition:all .2s;background:#fff}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:#f1f5f9;color:#94a3b8;cursor:not-allowed}.form-group input::-moz-placeholder{color:#94a3b8}.form-group input::placeholder{color:#94a3b8}.form-group textarea{resize:vertical;min-height:100px}.helper-text{font-size:.75rem;color:#64748b;margin-top:.25rem}.error-message{font-size:.75rem;color:#dc2626;margin-top:.25rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.625rem 1rem;font-size:.875rem;font-weight:500;border-radius:.375rem;border:none;cursor:pointer;transition:all .2s;gap:.5rem;font-family:inherit}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary:hover:not(:disabled){background-color:#2563eb;box-shadow:0 4px 6px -1px #3b82f64d}.btn-primary:active:not(:disabled){background-color:#1d4ed8}.btn-secondary{background-color:#fff;color:#1e293b;border:1px solid #cbd5e1}.btn-secondary:hover:not(:disabled){background-color:#f1f5f9;border-color:#94a3b8}.btn-destructive{background-color:#dc2626;color:#fff}.btn-destructive:hover:not(:disabled){background-color:#b91c1c}.btn-outline{background-color:#fff;color:#1e293b;border:1px solid #e2e8f0}.btn-outline:hover:not(:disabled){background-color:#f8fafc;border-color:#cbd5e1}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn-lg{padding:.75rem 1.5rem;font-size:.9375rem}.btn-full{width:100%}.btn-icon{padding:.625rem;width:2.5rem;height:2.5rem}.alert{padding:1rem;border-radius:.375rem;margin-bottom:1rem;display:flex;gap:.75rem;animation:slideInUp .3s ease-out}.alert-success{background-color:#dcfce7;border:1px solid #bbf7d0;color:#166534}.alert-error{background-color:#fee2e2;border:1px solid #fecaca;color:#991b1b}.alert-warning{background-color:#fef3c7;border:1px solid #fde68a;color:#92400e}.alert-info{background-color:#dbeafe;border:1px solid #bfdbfe;color:#0c4a6e}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;gap:.375rem}.badge-success{background-color:#dcfce7;color:#166534;border:1px solid #bbf7d0}.badge-error{background-color:#fee2e2;color:#991b1b;border:1px solid #fecaca}.badge-warning{background-color:#fef3c7;color:#92400e;border:1px solid #fde68a}.badge-info{background-color:#dbeafe;color:#0c4a6e;border:1px solid #bfdbfe}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:50;animation:fadeIn .2s ease-out}.modal{background:#fff;border-radius:.5rem;box-shadow:0 20px 25px -5px #0000001a;max-width:500px;width:90vw;max-height:90vh;overflow-y:auto;animation:slideInUp .3s ease-out}.modal-header{padding:1.5rem;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between}.modal-header h2{margin:0;font-size:1.25rem;font-weight:600;color:#1e293b}.modal-close-btn{background:none;border:none;font-size:1.5rem;color:#64748b;cursor:pointer;transition:color .2s;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center}.modal-close-btn:hover{color:#1e293b}.modal-body{padding:1.5rem}.modal-footer{padding:1.5rem;border-top:1px solid #e2e8f0;background:#f8fafc;display:flex;gap:.75rem;justify-content:flex-end}.notification{display:flex;align-items:center;gap:.75rem;padding:1rem;border-radius:.375rem;margin-bottom:1rem;animation:slideInUp .3s ease-out}.notification-success{background-color:#dcfce7;border-left:4px solid #16a34a;color:#166534}.notification-error{background-color:#fee2e2;border-left:4px solid #dc2626;color:#991b1b}.spinner{width:1rem;height:1rem;border:2px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:768px){.page-title{font-size:1.5rem}.card{border-radius:.375rem}.modal{width:95vw;max-height:95vh}.table{font-size:.8125rem}.table th,.table td{padding:.5rem}.btn{min-height:44px;min-width:44px}input,select,textarea{font-size:16px}}.empty-state{text-align:center;padding:3rem 1rem;color:#64748b}.empty-state-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.empty-state-title{font-size:1.25rem;font-weight:600;color:#475569;margin-bottom:.5rem}.empty-state-description{font-size:.875rem;margin-bottom:1.5rem}.grid-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}@media(max-width:640px){.grid-container{grid-template-columns:1fr}}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.transition-smooth{transition:all .2s cubic-bezier(.4,0,.2,1)}.hover-lift:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a}.login-screen{display:grid;grid-template-columns:1fr 1fr;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.login-branding-section{display:flex;align-items:center;justify-content:center;padding:40px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;position:relative;overflow:hidden}.login-branding-section:before{content:"";position:absolute;top:-50%;right:-20%;width:500px;height:500px;background:#ffffff1a;border-radius:50%;animation:float 6s ease-in-out infinite}.login-branding-section:after{content:"";position:absolute;bottom:-30%;left:-10%;width:300px;height:300px;background:#ffffff0d;border-radius:50%;animation:float 8s ease-in-out infinite reverse}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(20px)}}.branding-content{position:relative;z-index:2;text-align:center;max-width:400px}.branding-logo{margin-bottom:24px}.logo-circle{width:80px;height:80px;margin:0 auto;background:#fff3;border:3px solid rgba(255,255,255,.4);border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:700;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 32px #1f26875e;animation:slideDown .6s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.branding-content h1{font-size:42px;font-weight:700;margin:0 0 8px;letter-spacing:-.5px}.branding-content>p{font-size:16px;color:#ffffffd9;margin:0 0 40px;font-weight:300}.branding-features{display:flex;flex-direction:column;gap:16px}.feature-item{display:flex;align-items:center;gap:12px;font-size:14px;color:#ffffffe6}.feature-icon{width:24px;height:24px;background:#fff3;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:12px;flex-shrink:0}.login-form-section{display:flex;align-items:center;justify-content:center;padding:40px;background:#fafbfc}.form-container{width:100%;max-width:420px;animation:slideUp .6s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.form-header{margin-bottom:32px}.form-header h2{font-size:28px;font-weight:700;color:#1a1a1a;margin:0 0 8px;letter-spacing:-.5px}.form-header p{font-size:14px;color:#666;margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.alert{padding:12px 16px;border-radius:8px;font-size:14px;font-weight:500;display:flex;align-items:center;gap:8px;animation:slideDown .3s ease-out}.alert-success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.alert-error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.form-field{display:flex;flex-direction:column;gap:8px}.form-field label{font-size:13px;font-weight:600;color:#1a1a1a;text-transform:uppercase;letter-spacing:.5px}.input-group{position:relative;display:flex;align-items:center;gap:0}.input-icon{position:absolute;left:14px;color:#999;pointer-events:none;z-index:1}.form-input{width:100%;padding:11px 14px 11px 44px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;font-family:inherit;transition:all .2s;background:#fff}.form-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;background:#f8faff}.form-input.error{border-color:#dc3545;background:#fff5f5}.form-input:disabled{background:#f5f5f5;color:#ccc;cursor:not-allowed}.toggle-password{position:absolute;right:12px;background:none;border:none;cursor:pointer;color:#999;padding:4px 6px;display:flex;align-items:center;justify-content:center;transition:color .2s}.toggle-password:hover:not(:disabled){color:#667eea}.toggle-password:disabled{cursor:not-allowed;opacity:.5}.error-text{font-size:12px;color:#dc3545;display:flex;align-items:center;gap:4px;animation:slideDown .2s ease-out}.btn-login{padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 4px 15px #667eea4d}.btn-login:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.btn-login:active:not(:disabled){transform:translateY(0)}.btn-login:disabled{opacity:.7;cursor:not-allowed}.spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.form-footer{text-align:center;margin-top:24px;font-size:12px;color:#999}.form-footer a{color:#667eea;text-decoration:none;font-weight:600;transition:color .2s}.form-footer a:hover{color:#764ba2;text-decoration:underline}@media(max-width:1024px){.login-screen{grid-template-columns:1fr}.login-branding-section{display:none}.login-form-section{background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.form-container{background:#fff;padding:32px;border-radius:16px;box-shadow:0 10px 40px #0000001a}}@media(max-width:640px){.form-container{max-width:100%;padding:24px}.form-header h2{font-size:24px}.login-form{gap:16px}.btn-login{padding:12px 20px;font-size:14px}}@media(prefers-reduced-motion:reduce){.logo-circle,.form-container,.alert,.error-text{animation:none}.login-branding-section:before,.login-branding-section:after{animation:none}.btn-login:hover:not(:disabled){transform:none}.spinner{animation:none}}.dashboard-sidebar{--sidebar-bg: #081a2f;--sidebar-bg-elevated: #0f2237;--sidebar-border: rgba(148, 163, 184, .14);--sidebar-text: #e5edf6;--sidebar-text-muted: #90a4bd;--sidebar-accent: #dbeafe;--sidebar-accent-soft: rgba(148, 163, 184, .08);position:fixed;left:0;top:0;width:256px;height:100vh;background:radial-gradient(circle at top left,rgba(125,211,252,.08),transparent 24%),linear-gradient(180deg,#0b1d31 0%,var(--sidebar-bg) 48%,#071320 100%);border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;z-index:40;transform:translate(-100%);transition:transform .32s ease,box-shadow .32s ease;box-shadow:0 0 0 1px #ffffff05,10px 0 32px #020c1b2e;color:var(--sidebar-text);font-family:Inter,Segoe UI,Helvetica Neue,Arial,sans-serif}.dashboard-sidebar.open{transform:translate(0)}.dashboard-sidebar-header{padding:.85rem .8rem .65rem;position:sticky;top:0;z-index:10;background:linear-gradient(180deg,#081a2ffc,#081a2ff0);border-bottom:1px solid var(--sidebar-border)}.dashboard-sidebar-workspace{width:100%;display:flex;align-items:center;gap:.7rem;padding:.55rem .6rem;background:#ffffff05;border:1px solid rgba(148,163,184,.08);border-radius:.9rem;color:inherit;text-align:left}.dashboard-sidebar-brand-mark{width:2rem;height:2rem;border-radius:.7rem;background:linear-gradient(180deg,#1d4ed8,#2563eb);border:1px solid rgba(147,197,253,.2);display:flex;align-items:center;justify-content:center;color:#eff6ff;font-weight:700;font-size:.85rem;flex-shrink:0;box-shadow:0 6px 16px #2563eb2e}.dashboard-sidebar-workspace-chevron{margin-left:auto;color:#7e96b0}.dashboard-sidebar-brand-copy{min-width:0}.dashboard-sidebar-title{font-size:.88rem;font-weight:600;color:var(--sidebar-text);margin:0;line-height:1.15;letter-spacing:-.03em}.dashboard-sidebar-caption{margin:.15rem 0 0;font-size:.64rem;color:var(--sidebar-text-muted);letter-spacing:.08em;text-transform:uppercase}.dashboard-sidebar-nav{flex:1;overflow-y:auto;padding:.9rem .7rem;scrollbar-width:thin;scrollbar-color:rgba(141,164,191,.22) transparent}.dashboard-sidebar-group+.dashboard-sidebar-group{margin-top:1rem}.dashboard-sidebar-group-label{padding:0 .65rem .45rem;font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#68819d}.dashboard-sidebar-group-content{display:flex;flex-direction:column;gap:.2rem}.dashboard-sidebar-nav::-webkit-scrollbar{width:6px}.dashboard-sidebar-nav::-webkit-scrollbar-track{background:transparent}.dashboard-sidebar-nav::-webkit-scrollbar-thumb{background:#8da4bf38;border-radius:3px}.dashboard-sidebar-nav::-webkit-scrollbar-thumb:hover{background:#8da4bf52}.dashboard-sidebar-menu-item{margin-bottom:.18rem}.dashboard-sidebar-menu-button{width:100%;display:flex;align-items:center;gap:.6rem;min-height:2.25rem;padding:.55rem .72rem;border:none;background:transparent;color:var(--sidebar-text-muted);cursor:pointer;border-radius:.7rem;font-size:.81rem;font-weight:520;transition:background-color .2s ease,color .2s ease,transform .2s ease;text-align:left;text-decoration:none;font-family:inherit;border:1px solid transparent}.dashboard-sidebar-menu-button:hover{background:#ffffff0b;color:var(--sidebar-text);border-color:#94a3b814}.dashboard-sidebar-menu-button.active{background:#e2e8f01a;color:#f8fbff;border-color:#e2e8f01f;font-weight:600;box-shadow:inset 0 0 0 1px #ffffff0a}.dashboard-sidebar-menu-button.active:hover{background:#e2e8f01f}.dashboard-sidebar-menu-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:#9db1c9;transition:color .2s ease;font-size:.95rem}.dashboard-sidebar-menu-button:hover .dashboard-sidebar-menu-icon{color:#d8e7f7}.dashboard-sidebar-menu-button.active .dashboard-sidebar-menu-icon{color:#f8fbff}.dashboard-sidebar-menu-label{font-size:.8rem;font-weight:520;letter-spacing:-.01em}.dashboard-sidebar-menu-button.submenu-button{justify-content:space-between}.chevron{transition:transform .2s ease;color:#6f88a4;font-size:.75rem}.chevron.expanded{transform:rotate(180deg)}.dashboard-sidebar-menu-sub{position:relative;margin-top:.2rem;margin-left:1rem;padding-left:.7rem;border-left:1px solid rgba(148,163,184,.12);animation:slideDown .3s ease-out}.dashboard-sidebar-menu-sub .dashboard-sidebar-menu-button{min-height:2rem;padding:.45rem .6rem;font-size:.77rem;border-radius:.6rem}.dashboard-sidebar-menu-sub .dashboard-sidebar-menu-icon{color:#7890a8}@keyframes slideDown{0%{opacity:0;transform:translateY(-.35rem)}to{opacity:1;transform:translateY(0)}}.dashboard-sidebar-footer{padding:.7rem;border-top:1px solid var(--sidebar-border);background:linear-gradient(180deg,#06152633,#061526eb);margin-top:auto}.dashboard-sidebar-user-card{padding:.45rem;border-radius:.95rem;background:#ffffff08;border:1px solid rgba(148,163,184,.08)}.dashboard-sidebar-user-summary{display:flex;align-items:center;gap:.65rem;margin-bottom:.45rem;padding:.45rem .5rem;border-radius:.8rem;border:1px solid transparent;text-decoration:none;transition:background-color .2s ease,border-color .2s ease,transform .2s ease}.dashboard-sidebar-user-summary:hover{background:#ffffff0d;border-color:#94a3b81f}.dashboard-sidebar-user-summary.active{background:#e2e8f017;border-color:#e2e8f01f}.dashboard-sidebar-user-avatar{width:2rem;height:2rem;border-radius:9999px;background:#3b82f629;color:#dbeafe;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;flex-shrink:0}.dashboard-sidebar-user-copy{min-width:0}.dashboard-sidebar-user-name{margin:0;font-size:.78rem;font-weight:600;color:var(--sidebar-text);letter-spacing:-.01em}.dashboard-sidebar-user-email{margin:.2rem 0 0;font-size:.68rem;color:var(--sidebar-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-sidebar-logout{width:100%;justify-content:flex-start;min-height:2.1rem;background:transparent;color:var(--sidebar-text);border:1px solid transparent;font-size:.74rem;border-radius:.75rem}.dashboard-sidebar-logout:hover{background:#ffffff0d;color:#f8fbff}.dashboard-sidebar-overlay{position:fixed;inset:0;background:#020c1b7a;z-index:30;animation:fadeIn .2s ease-out}.dashboard-sidebar-toggle{position:fixed;top:1rem;left:1rem;z-index:50;width:2.1rem;height:2.1rem;min-width:2.1rem;min-height:2.1rem;border-radius:.65rem;background:#ffffffeb;color:#334155;border:1px solid rgba(203,213,225,.9);box-shadow:0 8px 24px #0f172a14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:left .32s ease,background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}.dashboard-sidebar-toggle:hover{background:#fff;color:#0f172a;border-color:#94a3b880}.dashboard-sidebar-toggle.is-open{left:15rem}.dashboard-sidebar-toggle.is-closed{left:1rem}.dashboard-sidebar-toggle-icon{transition:transform .2s ease}.dashboard-sidebar-toggle-icon.is-open{transform:scaleX(-1)}.dashboard-sidebar-rail{position:fixed;top:0;left:256px;z-index:39;display:none;width:12px;height:100vh;background:transparent;border:0}.dashboard-sidebar-rail:after{content:"";position:absolute;top:0;bottom:0;left:5px;width:2px;border-radius:9999px;background:transparent;transition:background-color .2s ease}.dashboard-sidebar-rail:hover:after{background:#94a3b852}.dashboard-sidebar-rail.is-closed{display:none}@media(min-width:1025px){.dashboard-sidebar-overlay{display:none}.dashboard-sidebar-rail.is-open{display:block}}@media(max-width:1024px){.dashboard-sidebar{width:min(16rem,calc(100vw - 1.25rem))}.dashboard-sidebar.open{transform:translate(0);box-shadow:12px 0 32px #020c1b52}.dashboard-sidebar-overlay{display:block}.dashboard-sidebar-toggle.is-open{left:calc(min(16rem,calc(100vw - 1.25rem)) - 1.1rem)}.dashboard-sidebar-rail{display:none}}@media(max-width:640px){.dashboard-sidebar-menu-label{font-size:.875rem}.dashboard-sidebar-menu-button{padding:.7rem .75rem;font-size:.8rem}.dashboard-sidebar-header{padding:.9rem .75rem .7rem}.dashboard-sidebar-nav{padding:.85rem .65rem}.dashboard-sidebar-footer{padding:.65rem .65rem .8rem}.dashboard-sidebar-toggle{top:.75rem;left:.75rem}.dashboard-sidebar-toggle.is-closed{left:.75rem}.dashboard-sidebar-toggle.is-open{left:calc(min(16rem,calc(100vw - 1.25rem)) - 1.05rem)}}.dashboard-layout-shell{display:flex;min-height:100vh;background:linear-gradient(180deg,#edf2f7,#f8fafc)}.dashboard-layout-main{flex:1;margin-left:0;min-height:100vh;overflow-y:auto;display:flex;flex-direction:column;transition:margin-left .32s ease}.dashboard-layout-main.sidebar-open{margin-left:256px}.dashboard-layout-content{flex:1;padding:1rem;max-width:100%}.dashboard-layout-content>*{min-height:calc(100vh - 2rem);border-radius:1.5rem;border:1px solid rgba(226,232,240,.9);background:#ffffffd6;box-shadow:0 18px 40px #0f172a0d;overflow:hidden}@media(max-width:1024px){.dashboard-layout-main,.dashboard-layout-main.sidebar-open{margin-left:0}.dashboard-layout-content{padding:5rem 1rem 1.5rem}.dashboard-layout-content>*{min-height:calc(100vh - 6.5rem);border-radius:1.1rem}}@media(max-width:640px){.dashboard-layout-content{padding:1rem .75rem}.dashboard-layout-content>*{min-height:calc(100vh - 2rem);border-radius:1rem}}.dashboard-layout-main::-webkit-scrollbar{width:8px}.dashboard-layout-main::-webkit-scrollbar-track{background:#f1f5f9}.dashboard-layout-main::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.dashboard-layout-main::-webkit-scrollbar-thumb:hover{background:#94a3b8}.table-container{width:100%;overflow-x:auto;border-radius:8px;border:1px solid #e5e7eb;background-color:#fff}.client-table{width:100%;border-collapse:collapse;font-size:14px}.client-table thead{background-color:#f9fafb;border-bottom:2px solid #e5e7eb}.client-table th{padding:12px 16px;text-align:left;font-weight:600;color:#374151;background-color:#f3f4f6;white-space:nowrap}.table-sort-indicator{font-size:11px;color:#6b7280;letter-spacing:.5px}.client-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .2s ease}.client-table tbody tr:hover{background-color:#f9fafb}.client-table tbody tr:last-child{border-bottom:none}.client-table td{padding:12px 16px;color:#374151}.status-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500}.status-badge.active{background-color:#d1fae5;color:#065f46}.status-badge.inactive{background-color:#fee2e2;color:#991b1b}.actions-cell{display:flex;gap:8px}.action-btn{display:inline-flex;align-items:center;justify-content:center;padding:6px;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;background-color:#f3f4f6;color:#374151}.action-btn:hover{background-color:#e5e7eb}.edit-btn:hover{background-color:#dbeafe;color:#1e40af}.delete-btn:hover{background-color:#fee2e2;color:#991b1b}.table-loading,.table-empty{padding:32px;text-align:center;color:#6b7280;background-color:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.table-empty p{margin:0;font-size:16px}@media(max-width:768px){.client-table{font-size:12px}.client-table th,.client-table td{padding:10px 8px}.action-btn{padding:4px}}.client-form{display:flex;flex-direction:column;gap:20px}.form-group label{font-weight:500;color:#374151;font-size:14px}.form-group input[type=text],.form-group input[type=date],.form-group select{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-family:inherit;transition:all .2s ease}.form-group input[type=text]:focus,.form-group input[type=date]:focus,.form-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group input[type=text]:disabled,.form-group input[type=date]:disabled,.form-group select:disabled{background-color:#f3f4f6;color:#9ca3af;cursor:not-allowed}.form-group.error input,.form-group.error select{border-color:#dc2626;background-color:#fef2f2}.form-group .error-message{font-size:12px;color:#dc2626}.form-group.checkbox{flex-direction:row;align-items:center}.form-group.checkbox label{display:flex;align-items:center;gap:8px;margin:0;cursor:pointer;font-weight:400}.form-group.checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.form-actions{display:flex;gap:12px;margin-top:12px}.btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-primary:hover:not(:disabled){background-color:#2563eb;box-shadow:0 4px 6px #3b82f64d}.btn-primary:disabled{background-color:#93c5fd;cursor:not-allowed}@media(max-width:768px){.client-form{gap:16px}.form-group input,.form-group select{font-size:16px}}.client-master-page{display:flex;flex-direction:column;gap:24px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.page-header div:first-child{display:flex;flex-direction:column;gap:4px}.page-title{margin:0;font-size:28px;font-weight:700;color:#111827}.page-subtitle{margin:0;font-size:14px;color:#6b7280}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-primary:hover{background-color:#2563eb;box-shadow:0 4px 6px #3b82f64d}.btn-secondary{background-color:#6b7280;color:#fff}.btn-secondary:hover{background-color:#4b5563}.btn-lg{padding:12px 24px;font-size:15px}.notification{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:6px;font-size:14px;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.notification-success{background-color:#d1fae5;color:#065f46;border:1px solid #6ee7b7}.notification-error{background-color:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.error-card{display:flex;align-items:center;gap:16px;padding:20px;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px}.error-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background-color:#fee2e2;border-radius:6px;color:#991b1b;flex-shrink:0}.error-content{flex:1}.error-content h3{margin:0 0 4px;font-size:16px;font-weight:600;color:#991b1b}.error-content p{margin:0 0 12px;font-size:14px;color:#dc2626}.card{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.modal{background-color:#fff;border-radius:8px;box-shadow:0 20px 25px #00000026;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid #e5e7eb}.modal-header h2{margin:0;font-size:20px;font-weight:600;color:#111827}.modal-close-btn{background:none;border:none;font-size:28px;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s ease}.modal-close-btn:hover{background-color:#f3f4f6;color:#111827}.modal-body{padding:20px}@media(max-width:768px){.page-header{flex-direction:column;align-items:flex-start;gap:16px}.page-title{font-size:24px}.btn-lg{width:100%}.modal{max-width:100%}}.vessel-table{width:100%;border-collapse:collapse;font-size:14px}.vessel-table thead{background:#f5f7fa;border-bottom:2px solid #e1e8ed}.vessel-table th{padding:12px 16px;text-align:left;font-weight:600;color:#2c3e50;white-space:nowrap}.table-sort-button{display:inline-flex;align-items:center;gap:6px;width:100%;padding:0;border:none;background:transparent;color:inherit;font:inherit;cursor:pointer}.table-sort-indicator{font-size:11px;color:#7f8c8d;letter-spacing:.5px}.vessel-table tbody tr{border-bottom:1px solid #e1e8ed;transition:background-color .2s}.vessel-table tbody tr:hover{background-color:#f9fafb}.vessel-table td{padding:12px 16px;color:#555}.vessel-id{font-family:Monaco,Courier New,monospace;font-size:12px;color:#7f8c8d;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500;text-align:center;min-width:70px}.status-active{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.status-blocked{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.status-deleted{background-color:#e2e3e5;color:#383d41;border:1px solid #d6d8db}.status-unknown{background-color:#e7e7e7;color:#666;border:1px solid #d3d3d3}@media(max-width:768px){.vessel-table{font-size:12px}.vessel-table th,.vessel-table td{padding:8px 12px}.vessel-id{max-width:100px}}.vessel-form{display:flex;flex-direction:column;gap:16px;max-width:600px}.form-group.checkbox{flex-direction:row;align-items:center;gap:0}@media(max-width:768px){.vessel-form{gap:12px}.form-group input,.form-group select,.form-group textarea{font-size:16px}}.vessel-page{padding:20px;background:#f5f7fa;min-height:100vh}.filter-select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background-color:#fff;cursor:pointer;transition:all .2s;min-width:220px}.filter-error-banner{margin:0 16px 16px}.dialog-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.dialog{background:#fff;border-radius:8px;box-shadow:0 20px 25px -5px #0000001a;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;animation:slideInUp .3s ease}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e1e8ed}@media(max-width:768px){.vessel-page{padding:12px}.page-header{flex-direction:column;gap:16px}.dialog{width:95%}}.table-container{width:100%;overflow-x:auto;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.offline-installation-table{width:100%;border-collapse:collapse;font-size:14px}.offline-installation-table thead{background:#f5f7fa;border-bottom:2px solid #e1e8ed}.offline-installation-table th{padding:12px 16px;text-align:left;font-weight:600;color:#2c3e50;white-space:nowrap}.offline-installation-table tbody tr{border-bottom:1px solid #e1e8ed;transition:background-color .2s}.offline-installation-table tbody tr:hover{background-color:#f9fafb}.offline-installation-table td{padding:12px 16px;color:#555}.version-cell{font-family:Monaco,Courier New,monospace;font-size:13px;color:#7f8c8d;font-weight:500}.update-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500;text-align:center;min-width:70px}.update-major{background-color:#fff3cd;color:#856404;border:1px solid #ffeaa7}.update-small{background-color:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}.system-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500;text-align:center;min-width:80px}.system-badge.complete{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.system-badge.pending{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.display-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500;text-align:center;min-width:50px}.display-badge.active{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.display-badge.inactive{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.actions-cell{display:flex;gap:8px;justify-content:center}.action-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;cursor:pointer;transition:all .2s;background-color:#f0f2f5;color:#2c3e50}.action-btn:hover{transform:translateY(-2px);box-shadow:0 2px 8px #0000001a}.action-btn.edit-btn:hover{background-color:#e3f2fd;color:#1976d2}.action-btn.delete-btn:hover{background-color:#ffebee;color:#d32f2f}.table-loading,.table-empty{padding:40px 20px;text-align:center;color:#7f8c8d;font-size:14px;background:#fff;border-radius:8px}.table-empty p{margin:0}@media(max-width:1024px){.offline-installation-table{font-size:12px}.offline-installation-table th,.offline-installation-table td{padding:10px 12px}}@media(max-width:768px){.offline-installation-table{font-size:11px}.offline-installation-table th,.offline-installation-table td{padding:8px 10px}}.offline-installation-form{display:flex;flex-direction:column;gap:16px;max-width:700px}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:14px;font-weight:500;color:#2c3e50}.form-group input[type=text],.form-group input[type=date],.form-group input[type=email],.form-group select,.form-group textarea{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-family:inherit;transition:all .2s;background-color:#fff}.form-group input[type=text]:focus,.form-group input[type=date]:focus,.form-group input[type=email]:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;background-color:#f0f9ff}.form-group.checkbox{flex-direction:row;align-items:center;gap:0;margin-top:4px}.form-group.checkbox label{display:flex;align-items:center;gap:8px;margin:0;font-weight:400;cursor:pointer}.form-group.checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#3b82f6}.form-actions{display:flex;gap:8px;margin-top:8px}.btn{padding:10px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;text-align:center}.btn-primary{background-color:#3b82f6;color:#fff}.btn-primary:hover:not(:disabled){background-color:#2563eb;box-shadow:0 2px 8px #3b82f64d;transform:translateY(-1px)}.btn:disabled{opacity:.6;cursor:not-allowed}.form-group.error input,.form-group.error select,.form-group.error textarea{border-color:#dc2626;background-color:#fef2f2}.form-group.error .error-message{font-size:12px;color:#dc2626;margin-top:-2px}@media(max-width:768px){.offline-installation-form{gap:12px}.form-row{grid-template-columns:1fr}.form-group input,.form-group select,.form-group textarea{font-size:16px}}.offline-installation-page{padding:20px;background:#f5f7fa;min-height:100vh}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;background:#fff;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000000d}.page-header h1{font-size:28px;font-weight:700;margin:0;color:#2c3e50}.page-header p{margin:4px 0 0;color:#7f8c8d;font-size:14px}.btn-add{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-add:hover{background:#2563eb;box-shadow:0 4px 12px #3b82f64d;transform:translateY(-2px)}.page-content{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000000d}.filter-section{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid #e1e8ed;background:#f9fafb}.filter-label{font-size:14px;font-weight:500;color:#2c3e50;white-space:nowrap}.filter-select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background-color:#fff;cursor:pointer;transition:all .2s;min-width:250px}.filter-select:hover{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.filter-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.filter-info{margin-left:auto;font-size:12px;color:#7f8c8d;padding:4px 12px;background:#fff;border-radius:4px;border:1px solid #e1e8ed;white-space:nowrap}.notification{display:flex;align-items:center;padding:12px 16px;margin-bottom:16px;border-radius:6px;border-left:4px solid;animation:slideInUp .3s ease}.notification-content{display:flex;align-items:center;gap:12px;width:100%}.notification-success{background:#d4edda;color:#155724;border-color:#28a745}.notification-error{background:#f8d7da;color:#721c24;border-color:#dc3545}.error-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;margin-bottom:16px;background:#f8d7da;color:#721c24;border-radius:6px;border:1px solid #f5c6cb}.dialog-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease;overflow-y:auto}.dialog{background:#fff;border-radius:8px;box-shadow:0 20px 25px -5px #0000001a;max-width:700px;width:90%;max-height:90vh;overflow-y:auto;animation:slideInUp .3s ease;margin:auto}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e1e8ed;position:sticky;top:0;background:#fff}.dialog-header h2{margin:0;font-size:20px;font-weight:600;color:#2c3e50}.close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:#7f8c8d;transition:color .2s;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.close-btn:hover{color:#2c3e50}.dialog-body{padding:20px}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(max-width:768px){.offline-installation-page{padding:12px}.page-header{flex-direction:column;gap:16px}.dialog{width:95%}}.dashboard{min-height:100vh;background:linear-gradient(135deg,#f9fafb,#f3f4f6,#e5e7eb)}.dashboard-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:2rem 1rem;box-shadow:0 10px 30px #667eea33;position:relative;overflow:hidden}.dashboard-header:before{content:"";position:absolute;top:-50%;right:-10%;width:500px;height:500px;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);animation:float 8s ease-in-out infinite}.dashboard-header-content{max-width:1280px;margin:0 auto;position:relative;z-index:1}.dashboard-title{font-size:2.5rem;font-weight:700;margin-bottom:.5rem;letter-spacing:-.5px;animation:slideDown .6s ease-out}.dashboard-subtitle{font-size:1rem;opacity:.9;animation:slideDown .6s ease-out .1s both}.dashboard-header-actions{display:flex;align-items:center;gap:1rem;animation:slideDown .6s ease-out .2s both}.dashboard-container{max-width:1280px;margin:0 auto;padding:2rem 1rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem;box-shadow:0 1px 3px #0000000d;transition:all .3s ease-out;animation:slideUp .6s ease-out}.stat-card:hover{border-color:#667eea;box-shadow:0 10px 25px #667eea1a;transform:translateY(-4px)}.stat-card-content{display:flex;align-items:flex-start;justify-content:space-between}.stat-card-info{flex:1}.stat-card-label{font-size:.875rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.3px;margin-bottom:.5rem}.stat-card-value{font-size:2rem;font-weight:700;color:#1f2937;line-height:1}.stat-card-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:10px;color:#fff;font-weight:600}.stat-card-icon.primary{background:linear-gradient(135deg,#667eea,#764ba2)}.stat-card-icon.success{background:linear-gradient(135deg,#10b981,#059669)}.stat-card-icon.warning{background:linear-gradient(135deg,#f59e0b,#d97706)}.stat-card-icon.error{background:linear-gradient(135deg,#ef4444,#dc2626)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:2rem;margin-bottom:2rem}.dashboard-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000000d;transition:all .3s ease-out;animation:slideUp .6s ease-out}.dashboard-card:hover{border-color:#667eea;box-shadow:0 10px 25px #667eea1a;transform:translateY(-4px)}.dashboard-card-header{padding:1.5rem;border-bottom:1px solid #f3f4f6;background:linear-gradient(135deg,#fafbff,#f3f4f6)}.dashboard-card-title{font-size:1.25rem;font-weight:700;color:#1f2937;margin-bottom:.25rem}.dashboard-card-description{font-size:.875rem;color:#6b7280}.dashboard-card-content{padding:1.5rem}.dashboard-card-footer{padding:1.5rem;border-top:1px solid #f3f4f6;display:flex;gap:1rem;justify-content:flex-end}.info-list{list-style:none;padding:0;margin:0}.info-list-item{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;border-bottom:1px solid #f3f4f6;font-size:.875rem}.info-list-item:last-child{border-bottom:none}.info-list-label{color:#6b7280;font-weight:600}.info-list-value{color:#1f2937;font-weight:600;max-width:50%;text-align:right;word-break:break-all}.feature-list{list-style:none;padding:0;margin:0}.feature-list-item{display:flex;align-items:flex-start;gap:1rem;padding:1rem 0;font-size:.875rem;border-bottom:1px solid #f3f4f6}.feature-list-item:last-child{border-bottom:none}.feature-list-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:700;flex-shrink:0;margin-top:2px}.feature-list-text{color:#374151;line-height:1.5}.badge{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .875rem;border-radius:6px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.badge-primary{background:#e7e7eb1a;color:#fff}.badge-success{background:#d1fae5;color:#065f46}.badge-warning{background:#fef3c7;color:#92400e}.badge-error{background:#fee2e2;color:#991b1b}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.dashboard-header{padding:1.5rem 1rem}.dashboard-title{font-size:2rem}.stats-grid,.dashboard-grid{grid-template-columns:1fr}.dashboard-header-actions{flex-direction:column;width:100%}.dashboard-card-content,.dashboard-card-header{padding:1rem}}@media(prefers-reduced-motion:reduce){.dashboard-header:before,.dashboard-card,.stat-card{animation:none}.dashboard-title,.dashboard-subtitle,.dashboard-header-actions{animation:none}}
