@charset "UTF-8";:root,:root.light-theme{--color-primary: #1976d2;--color-primary-dark: #1565c0;--color-primary-light: #42a5f5;--color-success: #4caf50;--color-success-dark: #45a049;--color-warning: #ff9800;--color-danger: #f44336;--color-info: #2196f3;--color-error: #c62828;--color-text-primary: #1a2233;--color-text-secondary: #5a6677;--color-text-muted: #94a0b1;--color-bg-primary: #ffffff;--color-bg-secondary: #f4f6fb;--color-bg-tertiary: #f9fafc;--color-border: #e5e9f0;--color-border-light: #eef1f6;--color-surface-hover: #f5f8fd;--color-primary-tint: #eaf2fd;--header-bg: linear-gradient(135deg, #1e88e5 0%, #1565c0 100%);--header-text: #ffffff;--header-hover: rgba(255, 255, 255, .12);--header-active: rgba(255, 255, 255, .18);--search-backdrop: rgba(0, 0, 0, .5);--submenu-bg: #ffffff;--submenu-text: #333;--submenu-hover: #f5f5f5;--submenu-active: #e3f2fd;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);--shadow-md: 0 4px 8px -2px rgba(16, 24, 40, .08), 0 2px 4px -2px rgba(16, 24, 40, .04);--shadow-lg: 0 12px 16px -4px rgba(16, 24, 40, .08), 0 4px 6px -2px rgba(16, 24, 40, .04);--shadow-xl: 0 20px 24px -4px rgba(16, 24, 40, .1), 0 8px 8px -4px rgba(16, 24, 40, .04);--shadow-focus: 0 0 0 3px rgba(25, 118, 210, .18);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 999px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--modal-overlay-duration: .2s;--modal-content-duration: .3s;--modal-easing: cubic-bezier(.16, 1, .3, 1);--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, 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: 28px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700}:root.dark-theme{--color-primary: #42a5f5;--color-primary-dark: #1976d2;--color-primary-light: #64b5f6;--color-success: #66bb6a;--color-success-dark: #4caf50;--color-warning: #ffb74d;--color-danger: #ef5350;--color-info: #42a5f5;--color-error: #e57373;--color-text-primary: #e6e9ef;--color-text-secondary: #aab3c2;--color-text-muted: #7b8696;--color-bg-primary: #1c2230;--color-bg-secondary: #141925;--color-bg-tertiary: #232a3a;--color-border: #313a4d;--color-border-light: #2a3243;--color-surface-hover: #232c3d;--color-primary-tint: rgba(66, 165, 245, .14);--header-bg: linear-gradient(135deg, #1565c0 0%, #0d47a1 100%);--header-text: #ffffff;--header-hover: rgba(255, 255, 255, .1);--header-active: rgba(255, 255, 255, .15);--search-backdrop: rgba(0, 0, 0, .7);--submenu-bg: #2a2a2a;--submenu-text: #e0e0e0;--submenu-hover: #353535;--submenu-active: #1e3a5f;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow-md: 0 4px 8px -2px rgba(0, 0, 0, .45), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 12px 16px -4px rgba(0, 0, 0, .5), 0 4px 6px -2px rgba(0, 0, 0, .35);--shadow-xl: 0 20px 24px -4px rgba(0, 0, 0, .55), 0 8px 8px -4px rgba(0, 0, 0, .4);--shadow-focus: 0 0 0 3px rgba(66, 165, 245, .25)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:var(--font-family-base);font-size:var(--font-size-sm);line-height:1.6;color:var(--color-text-primary);background-color:var(--color-bg-secondary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{margin:0 0 var(--spacing-md) 0;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:1.2}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-base)}table{border-collapse:collapse;width:100%}button{cursor:pointer;border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-family:inherit;transition:all var(--transition-base);background:var(--color-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs)}button:hover:not(:disabled){background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}button:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}button:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}button:focus-visible{outline:none;box-shadow:var(--shadow-focus)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px;-webkit-transition:background var(--transition-fast);transition:background var(--transition-fast)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.container{max-width:1600px;margin:0 auto;padding:0 var(--spacing-lg)}.card{background:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-lg);transition:box-shadow var(--transition-base),transform var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.modal-overlay{background:var(--search-backdrop, rgba(16, 24, 40, .55));backdrop-filter:blur(4px);animation:modalOverlayIn var(--modal-overlay-duration) ease}.modal-overlay .modal-content{box-shadow:var(--shadow-xl);border:1px solid var(--color-border-light);animation:modalContentIn var(--modal-content-duration) var(--modal-easing)}@keyframes modalOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes modalContentIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:3px 10px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:1.5;letter-spacing:.2px}.badge.badge-success{background:rgba(76,175,80,.14);color:var(--color-success-dark)}.badge.badge-warning{background:rgba(255,152,0,.16);color:#b25e00}.badge.badge-danger{background:rgba(244,67,54,.14);color:var(--color-error)}.badge.badge-info{background:var(--color-primary-tint);color:var(--color-primary-dark)}.badge.badge-neutral{background:var(--color-bg-secondary);color:var(--color-text-secondary)}.loading-skeleton{background:linear-gradient(90deg,var(--color-bg-secondary) 25%,var(--color-border-light) 50%,var(--color-bg-secondary) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:var(--radius-md)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}*:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}a,button,input,select,textarea{transition:all var(--transition-base)}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-dark);text-decoration:underline}.form-group{position:relative;margin-bottom:var(--spacing-md)}.form-group label{display:block;margin-bottom:var(--spacing-xs);font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-sm)}.form-group label .required{color:var(--color-danger);margin-left:2px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);transition:all var(--transition-base);background:var(--color-bg-primary);color:var(--color-text-primary);font-family:var(--font-family-base)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.form-group input:hover:not(:focus):not(:disabled):not([readonly]),.form-group select:hover:not(:focus):not(:disabled):not([readonly]),.form-group textarea:hover:not(:focus):not(:disabled):not([readonly]){border-color:var(--color-text-muted)}.form-group input:disabled,.form-group input[readonly],.form-group select:disabled,.form-group select[readonly],.form-group textarea:disabled,.form-group textarea[readonly]{background:var(--color-bg-tertiary);cursor:not-allowed;opacity:.7}.form-group input.ng-invalid.ng-touched:not(:focus),.form-group input.ng-invalid.ng-dirty:not(:focus),.form-group select.ng-invalid.ng-touched:not(:focus),.form-group select.ng-invalid.ng-dirty:not(:focus),.form-group textarea.ng-invalid.ng-touched:not(:focus),.form-group textarea.ng-invalid.ng-dirty:not(:focus){border-color:var(--color-danger);box-shadow:0 0 0 3px #f443361a}.form-group input.ng-valid.ng-touched:not(:focus),.form-group select.ng-valid.ng-touched:not(:focus),.form-group textarea.ng-valid.ng-touched:not(:focus){border-color:var(--color-success)}.form-group small{display:block;margin-top:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:1.4}.form-group .validation-error{display:block;margin-top:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-danger);font-weight:var(--font-weight-medium);display:flex;align-items:center;gap:var(--spacing-xs);animation:slideDown .2s ease-out}.form-group .validation-success{display:block;margin-top:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-success);font-weight:var(--font-weight-medium);display:flex;align-items:center;gap:var(--spacing-xs)}.form-group.has-error input,.form-group.has-error select,.form-group.has-error textarea{border-color:var(--color-danger)}.form-group.has-error input:focus,.form-group.has-error select:focus,.form-group.has-error textarea:focus{box-shadow:0 0 0 3px #f443361a}.form-group.has-success input,.form-group.has-success select,.form-group.has-success textarea{border-color:var(--color-success)}.form-error-message{display:block;margin-top:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-danger);font-weight:var(--font-weight-medium);display:flex;align-items:center;gap:var(--spacing-xs);animation:slideDown .2s ease-out}.form-error-message:before{content:"\26a0\fe0f";font-size:14px}.form-help-text{display:block;margin-top:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:1.4}.required-indicator{color:var(--color-danger);margin-left:2px}@keyframes slideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1024px){:root{--font-size-3xl: 24px;--font-size-2xl: 20px;--font-size-xl: 18px;--spacing-lg: 20px;--spacing-xl: 28px}.container{padding:0 var(--spacing-md)}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-lg)}}@media (max-width: 768px){:root{--font-size-3xl: 20px;--font-size-2xl: 18px;--font-size-xl: 16px;--font-size-lg: 15px;--spacing-lg: 16px;--spacing-xl: 24px}.container{padding:0 var(--spacing-sm)}.card{padding:var(--spacing-md);border-radius:var(--radius-md)}.form-group{margin-bottom:var(--spacing-sm)}.form-group input,.form-group select,.form-group textarea{padding:var(--spacing-sm) var(--spacing-sm);font-size:var(--font-size-base)}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}table{min-width:600px}.button-group{flex-direction:column;gap:var(--spacing-sm)}.button-group button{width:100%}.modal-overlay{padding:var(--spacing-sm)}.modal-content{max-height:90vh;border-radius:var(--radius-lg)}.modal-header,.modal-body{padding:var(--spacing-md)}.modal-footer{padding:var(--spacing-md);flex-direction:column-reverse;gap:var(--spacing-sm)}.modal-footer button{width:100%}}@media (max-width: 480px){:root{--font-size-3xl: 18px;--font-size-2xl: 16px;--font-size-xl: 15px;--font-size-lg: 14px;--font-size-base: 14px;--font-size-sm: 13px;--font-size-xs: 11px}body{font-size:var(--font-size-sm)}button{padding:var(--spacing-sm) var(--spacing-sm);font-size:var(--font-size-xs)}}@media (pointer: coarse){button,.btn,a.nav-link,input[type=checkbox],input[type=radio],select{min-height:44px;min-width:44px}.btn-small{min-height:36px;padding:8px 12px}}@media (pointer: coarse){button,.btn,.nav-link,.clickable{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}}@media (max-width: 768px){::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{background:var(--color-text-muted)}}.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 768px){table{min-width:600px}.table-container,.licenses-table-container,.devices-table-container,.customers-table-container,.invoices-table-container,.quotes-table-container{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -15px;padding:0 15px}.table-card-mobile tbody tr{display:block;margin-bottom:16px;padding:16px;background:var(--color-bg-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.table-card-mobile tbody td{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border:none;border-bottom:1px solid var(--color-border-light)}.table-card-mobile tbody td:last-child{border-bottom:none}.table-card-mobile tbody td:before{content:attr(data-label);font-weight:600;color:var(--color-text-secondary);font-size:12px;text-transform:uppercase}.table-card-mobile thead{display:none}}@media (max-width: 768px){.header,.page-header,.section-header{flex-direction:row!important;flex-wrap:wrap;gap:12px;padding:16px!important}.header h1,.page-header h1,h1{font-size:20px!important;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header h2,.page-header h2,h2{font-size:18px!important}.header-actions,.page-header-actions{display:flex;flex-wrap:wrap;gap:8px;width:100%;justify-content:flex-start}.header-actions button,.page-header-actions button,.header-actions .btn,.page-header-actions .btn{flex:1;min-width:120px;max-width:200px;font-size:13px;padding:8px 12px}}@media (max-width: 480px){.header h1,.page-header h1,h1{font-size:18px!important}.header h2,.page-header h2,h2{font-size:16px!important}.header-actions button,.page-header-actions button{min-width:100px;font-size:12px;padding:6px 10px}}@media (max-width: 768px){.filters{flex-direction:column;gap:10px}.filters input,.filters select{width:100%;min-width:auto!important}.filter-row{flex-direction:column;gap:10px}}@media (max-width: 768px){.modal-content{width:95%!important;max-width:none!important;margin:10px;max-height:90vh}.modal-body{padding:16px!important}.form-row{flex-direction:column;gap:16px}.form-group{width:100%}}@media (max-width: 768px){.stats-grid,.cards-grid{grid-template-columns:1fr 1fr!important;gap:12px}.stat-card{padding:16px!important}.stat-card h3{font-size:12px!important}.stat-card .stat-number{font-size:24px!important}}@media (max-width: 480px){.stats-grid,.cards-grid{grid-template-columns:1fr!important}}html{scroll-behavior:smooth}.table-responsive,.table-container{border-radius:var(--radius-lg)}@supports (padding: max(0px)){@media (max-width: 768px){header{padding-left:max(15px,env(safe-area-inset-left));padding-right:max(15px,env(safe-area-inset-right))}}}@media (max-width: 600px){.modal-overlay{align-items:flex-end!important;padding:0!important}.modal-overlay .modal-content{width:100%!important;max-width:100%!important;margin:0!important;max-height:92vh;display:flex;flex-direction:column;border-radius:var(--radius-xl) var(--radius-xl) 0 0!important;animation:modalSheetIn var(--modal-content-duration) var(--modal-easing)}.modal-overlay .modal-body{overflow-y:auto;-webkit-overflow-scrolling:touch}}@keyframes modalSheetIn{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){input,select,textarea{font-size:16px}}
