:root{--primary: #1976D2;--primary-dark: #1565C0;--primary-light: #42A5F5;--secondary: #00897B;--secondary-dark: #00695C;--secondary-light: #4DB6AC;--success: #4CAF50;--success-light: #E8F5E9;--warning: #FF9800;--warning-light: #FFF3E0;--error: #F44336;--error-light: #FFEBEE;--info: #2196F3;--info-light: #E3F2FD;--color-expired: #D32F2F;--color-critical: #F57C00;--color-warning: #FBC02D;--color-info: #1976D2;--color-success: #4CAF50;--bg-expired: #FFEBEE;--bg-critical: #FFF3E0;--bg-warning: #FFFDE7;--bg-info: #E3F2FD;--bg-success: #E8F5E9;--text-primary: #212121;--text-secondary: #757575;--text-disabled: #BDBDBD;--text-inverse: #FFFFFF;--background: #FAFAFA;--surface: #FFFFFF;--border: #E0E0E0;--hover: #F5F5F5;--header-height: 64px;--sidebar-width: 260px;--sidebar-collapsed-width: 72px;--content-max-width: 1200px;--content-padding: 24px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-xxl: 48px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24);--shadow-md: 0 3px 6px rgba(0, 0, 0, .15), 0 2px 4px rgba(0, 0, 0, .12);--shadow-lg: 0 10px 20px rgba(0, 0, 0, .15), 0 3px 6px rgba(0, 0, 0, .1);--transition-fast: .15s ease-in-out;--transition-normal: .25s ease-in-out;--transition-slow: .35s ease-in-out;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--z-toast: 1080}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;font-size:.875rem;line-height:1.5;color:var(--text-primary);background-color:var(--background)}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;line-height:1.3;color:var(--text-primary)}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1rem}h5{font-size:.875rem}h6{font-size:.75rem}p{margin:0 0 1rem}a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-dark)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-disabled{color:var(--text-disabled)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-error{color:var(--error)}.text-info{color:var(--info)}.bg-surface{background-color:var(--surface)}.bg-background{background-color:var(--background)}.bg-success-light{background-color:var(--success-light)}.bg-warning-light{background-color:var(--warning-light)}.bg-error-light{background-color:var(--error-light)}.bg-info-light{background-color:var(--info-light)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--background)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--text-disabled)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;padding:0}input,textarea,select{font-family:inherit;font-size:inherit}.card{background-color:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--spacing-lg)}.badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:.75rem;font-weight:500;border-radius:9999px;white-space:nowrap}.badge.badge-success{background-color:var(--success-light);color:var(--success)}.badge.badge-warning{background-color:var(--warning-light);color:#e65100}.badge.badge-error{background-color:var(--error-light);color:var(--error)}.badge.badge-info{background-color:var(--info-light);color:var(--primary)}.badge.badge-neutral{background-color:var(--hover);color:var(--text-secondary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:.875rem;font-weight:500;line-height:1.5;border-radius:var(--radius-sm);transition:all var(--transition-fast);cursor:pointer}.btn-primary{background-color:var(--primary);color:var(--text-inverse)}.btn-primary:hover:not(:disabled){background-color:var(--primary-dark)}.btn-secondary{background-color:var(--surface);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background-color:var(--hover)}.btn-text{background-color:transparent;color:var(--primary)}.btn-text:hover:not(:disabled){background-color:var(--info-light)}.btn-icon{padding:var(--spacing-sm);border-radius:var(--radius-sm)}.btn-icon svg{width:20px;height:20px}.form-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:.875rem;line-height:1.5;color:var(--text-primary);background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input::placeholder{color:var(--text-disabled)}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1976d21a;outline:none}.form-input:disabled{background-color:var(--hover);cursor:not-allowed}.form-input.is-invalid{border-color:var(--error)}.form-input.is-invalid:focus{box-shadow:0 0 0 3px #f443361a}.form-label{display:block;margin-bottom:var(--spacing-xs);font-size:.875rem;font-weight:500;color:var(--text-primary)}.form-error{margin-top:var(--spacing-xs);font-size:.75rem;color:var(--error)}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--border)}.table th{font-weight:600;color:var(--text-secondary);background-color:var(--hover)}.table tbody tr{transition:background-color var(--transition-fast)}.table tbody tr:hover{background-color:var(--hover)}.spinner{display:inline-block;width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.spinner.spinner-sm{width:16px;height:16px;border-width:2px}.spinner.spinner-md{width:24px;height:24px}.spinner.spinner-lg{width:32px;height:32px;border-width:3px}.spinner.spinner-white{border-color:#ffffff4d;border-top-color:#fff}.spinner.spinner-primary{border-color:#2563eb33;border-top-color:var(--primary)}.spinner.spinner-button{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}.alert{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;line-height:1.4}.alert svg,.alert mat-icon{flex-shrink:0;margin-top:2px;width:18px;height:18px}.alert.alert-error{background-color:#fef2f2;border:1px solid #fecaca;color:#dc2626;animation:shake .4s ease-in-out}.alert.alert-error svg,.alert.alert-error mat-icon{color:#dc2626}.alert.alert-success{background-color:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a}.alert.alert-success svg,.alert.alert-success mat-icon{color:#16a34a}.alert.alert-warning{background-color:#fffbeb;border:1px solid #fde68a;color:#d97706}.alert.alert-warning svg,.alert.alert-warning mat-icon{color:#d97706}.alert.alert-info{background-color:#eff6ff;border:1px solid #bfdbfe;color:#2563eb}.alert.alert-info svg,.alert.alert-info mat-icon{color:#2563eb}.error-alert{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);background-color:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-md);color:#dc2626;font-size:.875rem;font-weight:500;line-height:1.4;animation:shake .4s ease-in-out}.error-alert svg,.error-alert mat-icon{flex-shrink:0;margin-top:2px;width:18px;height:18px;color:#dc2626}.success-alert{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--radius-md);color:#16a34a;font-size:.875rem;font-weight:500;line-height:1.4}.success-alert svg,.success-alert mat-icon{flex-shrink:0;margin-top:2px;color:#16a34a}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fade-in{animation:fadeIn .3s ease-out}.animate-fade-in-up{animation:fadeInUp .3s ease-out}.animate-fade-in-down{animation:fadeInDown .3s ease-out}.animate-shake{animation:shake .4s ease-in-out}.animate-pulse{animation:pulse 2s infinite}.btn-block{width:100%;padding:var(--spacing-md);font-size:1rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s ease}.btn-block:disabled{opacity:.7;cursor:not-allowed}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.form-page{padding:24px;max-width:900px;margin:0 auto}.form-section{background:#fff;border-radius:16px;padding:24px;margin-bottom:20px;border:1px solid #e5e7eb;box-shadow:0 1px 3px #0000000a}.section-header{display:flex;align-items:flex-start;gap:14px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #f3f4f6}.section-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:linear-gradient(135deg,#eff6ff,#dbeafe);border-radius:12px;flex-shrink:0}.section-icon mat-icon{color:#2563eb;font-size:22px;width:22px;height:22px}.section-icon.permit,.section-icon.icon-green{background:linear-gradient(135deg,#ecfdf5,#d1fae5)}.section-icon.permit mat-icon,.section-icon.icon-green mat-icon{color:#059669}.section-icon.statutory,.section-icon.icon-purple{background:linear-gradient(135deg,#f5f3ff,#ede9fe)}.section-icon.statutory mat-icon,.section-icon.icon-purple mat-icon{color:#7c3aed}.section-icon.financial,.section-icon.icon-amber{background:linear-gradient(135deg,#fffbeb,#fef3c7)}.section-icon.financial mat-icon,.section-icon.icon-amber mat-icon{color:#d97706}.section-icon.contact,.section-icon.icon-teal{background:linear-gradient(135deg,#f0fdfa,#ccfbf1)}.section-icon.contact mat-icon,.section-icon.icon-teal mat-icon{color:#0d9488}.section-icon.danger,.section-icon.icon-red{background:linear-gradient(135deg,#fef2f2,#fee2e2)}.section-icon.danger mat-icon,.section-icon.icon-red mat-icon{color:#dc2626}.section-title h2{margin:0;font-size:16px;font-weight:600;color:#111827}.section-title p{margin:4px 0 0;font-size:13px;color:#6b7280}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}@media(max-width:640px){.form-grid{grid-template-columns:1fr}}.form-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}@media(max-width:960px){.form-grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.form-grid-3{grid-template-columns:1fr}}.form-group{display:flex;flex-direction:column;gap:6px}.form-group.full-width{grid-column:1/-1}.form-group label{font-size:13px;font-weight:500;color:#374151}.form-group label .required{color:#ef4444;margin-left:2px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 14px;font-size:14px;font-family:inherit;color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:10px;transition:all .2s ease;outline:none}.form-group input::placeholder,.form-group select::placeholder,.form-group textarea::placeholder{color:#9ca3af}.form-group input:hover:not(:focus):not(:disabled),.form-group select:hover:not(:focus):not(:disabled),.form-group textarea:hover:not(:focus):not(:disabled){border-color:#9ca3af}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#ef4444}.form-group input.error:focus,.form-group select.error:focus,.form-group textarea.error:focus{box-shadow:0 0 0 3px #ef44441a}.form-group select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:40px;cursor:pointer}.form-group textarea{resize:vertical;min-height:60px;line-height:1.5}.form-group input[type=date]{cursor:pointer}.form-group input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6;transition:opacity .2s}.form-group input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.form-group input[type=number]{-moz-appearance:textfield}.form-group input[type=number]::-webkit-outer-spin-button,.form-group input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.form-group .error-text{font-size:12px;color:#ef4444;margin-top:2px}.form-group .hint-text{font-size:11px;color:#9ca3af;margin-top:4px;line-height:1.4}.form-group .char-count{font-size:12px;color:#9ca3af;text-align:right;margin-top:4px}.input-with-prefix{display:flex;align-items:center;border:1px solid #d1d5db;border-radius:10px;overflow:hidden;transition:all .2s ease}.input-with-prefix:hover{border-color:#9ca3af}.input-with-prefix:focus-within{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.input-with-prefix .prefix{padding:12px 14px;background:#f9fafb;color:#6b7280;font-size:14px;font-weight:500;border-right:1px solid #e5e7eb;-webkit-user-select:none;user-select:none}.input-with-prefix input{flex:1;border:none;border-radius:0}.input-with-prefix input:focus{box-shadow:none}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:32px;padding-top:24px;border-top:1px solid #e5e7eb}@media(max-width:640px){.form-actions{flex-direction:column-reverse}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;font-size:14px;font-weight:500;font-family:inherit;border-radius:10px;cursor:pointer;transition:all .2s ease;border:none;min-width:140px}.btn mat-icon{font-size:18px;width:18px;height:18px}.btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:640px){.btn{width:100%}}.btn-primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;box-shadow:0 2px 4px #2563eb33}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#1e40af);box-shadow:0 4px 8px #2563eb4d;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:#fff;color:#374151;border:1px solid #d1d5db}.btn-secondary:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 2px 4px #ef444433}.btn-danger:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 4px 8px #ef44444d;transform:translateY(-1px)}.form-error-banner{display:flex;align-items:center;gap:10px;padding:14px 18px;background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #fca5a5;border-radius:12px;margin-top:20px;color:#b91c1c;font-size:14px;font-weight:500}.form-error-banner mat-icon{color:#dc2626;font-size:20px;width:20px;height:20px}.loading-banner{display:flex;align-items:center;gap:12px;padding:14px 18px;background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #93c5fd;border-radius:12px;margin-bottom:24px;color:#1e40af;font-size:14px;font-weight:500}.page-header{display:flex;align-items:center;gap:16px;margin-bottom:32px}.page-header .back-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:#fff;border:1px solid #e5e7eb;cursor:pointer;transition:all .2s}.page-header .back-btn mat-icon{color:#6b7280;font-size:20px;width:20px;height:20px}.page-header .back-btn:hover{background:#f9fafb;border-color:#d1d5db}.page-header .back-btn:hover mat-icon{color:#374151}.page-header .header-content h1{margin:0;font-size:24px;font-weight:600;color:#111827}.page-header .header-content .subtitle{margin:4px 0 0;font-size:14px;color:#6b7280}@media(max-width:1279px){:root{--sidebar-width: var(--sidebar-collapsed-width)}}@media(max-width:959px){:root{--sidebar-width: 0px;--content-padding: 16px}}@media(max-width:599px){:root{--content-padding: 12px}}.mat-mdc-form-field{width:100%}
