@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: #333;--color-text-secondary: #666;--color-text-muted: #999;--color-bg-primary: #ffffff;--color-bg-secondary: #f5f5f5;--color-bg-tertiary: #fafafa;--color-border: #e0e0e0;--color-border-light: #f0f0f0;--header-bg: linear-gradient(135deg, #1976d2 0%, #1565c0 100%);--header-text: #ffffff;--header-hover: rgba(255, 255, 255, .1);--header-active: rgba(255, 255, 255, .15);--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(0,0,0,.05);--shadow-md: 0 2px 8px rgba(0,0,0,.1);--shadow-lg: 0 4px 12px rgba(0,0,0,.15);--shadow-xl: 0 8px 24px rgba(0,0,0,.2);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--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: #e0e0e0;--color-text-secondary: #b0b0b0;--color-text-muted: #808080;--color-bg-primary: #1e1e1e;--color-bg-secondary: #252525;--color-bg-tertiary: #2a2a2a;--color-border: #3a3a3a;--color-border-light: #2f2f2f;--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,.3);--shadow-md: 0 2px 8px rgba(0,0,0,.4);--shadow-lg: 0 4px 12px rgba(0,0,0,.5);--shadow-xl: 0 8px 24px rgba(0,0,0,.6)}*{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:.6;cursor:not-allowed;transform:none}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}::-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-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-lg);transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-lg)}.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:0 0 0 3px #1976d21a}.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}}
