.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;line-height:1.4;text-decoration:none;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:all .2s ease;white-space:nowrap;box-sizing:border-box}.btn:focus{outline:none;box-shadow:0 0 0 3px #0f7c7c40}.btn:disabled,.btn.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background:#0f7c7c;color:#fff;border-color:#0f7c7c}.btn-primary:hover:not(:disabled){background:#0c6363;border-color:#0c6363}.btn-secondary{background:#fff;color:#1a1a1a;border-color:#e0e0d8}.btn-secondary:hover:not(:disabled){background:#f7f5f0;border-color:#888}.btn-success{background:#8cb8b0;color:#fff;border-color:#8cb8b0}.btn-success:hover:not(:disabled){background:#528b81;border-color:#528b81}.btn-warning{background:#d4af37;color:#1a1a1a;border-color:#d4af37}.btn-warning:hover:not(:disabled){background:#8a7022;border-color:#8a7022;color:#fff}.btn-danger{background:#dc3545;color:#fff;border-color:#dc3545}.btn-danger:hover:not(:disabled){background:#a71d2a;border-color:#a71d2a}.btn-outline{background:transparent;color:#0f7c7c;border-color:#0f7c7c}.btn-outline:hover:not(:disabled){background:#0f7c7c;color:#fff}.btn-ghost{background:transparent;color:#888;border-color:transparent}.btn-ghost:hover:not(:disabled){background:#f7f5f0;color:#1a1a1a}.btn-link{background:transparent;color:#0f7c7c;border-color:transparent;padding:0}.btn-link:hover:not(:disabled){text-decoration:underline}.btn-xs{padding:4px 10px;font-size:12px;gap:4px;border-radius:6px}.btn-sm{padding:6px 14px;font-size:13px;gap:6px}.btn-lg{padding:14px 28px;font-size:16px;gap:10px}.btn-xl{padding:18px 36px;font-size:18px;gap:12px;border-radius:10px}.btn-block{display:flex;width:100%}.btn-rounded{border-radius:50px}.btn-loading{position:relative;color:transparent!important;pointer-events:none}.btn-loading:after{content:"";position:absolute;width:16px;height:16px;top:50%;left:50%;margin-top:-8px;margin-left:-8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:btn-spin .6s linear infinite;opacity:.8}.btn-loading.btn-primary:after,.btn-loading.btn-success:after,.btn-loading.btn-danger:after{border-color:#fff;border-right-color:transparent}@keyframes btn-spin{to{transform:rotate(360deg)}}.form-group{margin-bottom:20px}.form-group:last-child{margin-bottom:0}.form-row{display:flex;gap:16px;flex-wrap:wrap}.form-row .form-group{flex:1;min-width:200px}.form-label,label{display:block;margin-bottom:6px;font-size:14px;font-weight:500;color:#1a1a1a}.form-label .required,label .required{color:#dc3545;margin-left:2px}.form-control,input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=url],input[type=search],input[type=date],input[type=time],input[type=datetime-local],textarea,select{display:block;width:100%;padding:10px 14px;font-size:14px;font-family:inherit;line-height:1.5;color:#1a1a1a;background-color:#fff;border:1px solid #E0E0D8;border-radius:8px;transition:border-color .2s,box-shadow .2s}.form-control::placeholder,input[type=text]::placeholder,input[type=email]::placeholder,input[type=password]::placeholder,input[type=number]::placeholder,input[type=tel]::placeholder,input[type=url]::placeholder,input[type=search]::placeholder,input[type=date]::placeholder,input[type=time]::placeholder,input[type=datetime-local]::placeholder,textarea::placeholder,select::placeholder{color:#aaa}.form-control:hover:not(:disabled):not(:focus),input[type=text]:hover:not(:disabled):not(:focus),input[type=email]:hover:not(:disabled):not(:focus),input[type=password]:hover:not(:disabled):not(:focus),input[type=number]:hover:not(:disabled):not(:focus),input[type=tel]:hover:not(:disabled):not(:focus),input[type=url]:hover:not(:disabled):not(:focus),input[type=search]:hover:not(:disabled):not(:focus),input[type=date]:hover:not(:disabled):not(:focus),input[type=time]:hover:not(:disabled):not(:focus),input[type=datetime-local]:hover:not(:disabled):not(:focus),textarea:hover:not(:disabled):not(:focus),select:hover:not(:disabled):not(:focus){border-color:#888}.form-control:focus,input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input[type=tel]:focus,input[type=url]:focus,input[type=search]:focus,input[type=date]:focus,input[type=time]:focus,input[type=datetime-local]:focus,textarea:focus,select:focus{outline:none;border-color:#0f7c7c;box-shadow:0 0 0 3px #0f7c7c40}.form-control:disabled,.form-control[readonly],input[type=text]:disabled,input[type=text][readonly],input[type=email]:disabled,input[type=email][readonly],input[type=password]:disabled,input[type=password][readonly],input[type=number]:disabled,input[type=number][readonly],input[type=tel]:disabled,input[type=tel][readonly],input[type=url]:disabled,input[type=url][readonly],input[type=search]:disabled,input[type=search][readonly],input[type=date]:disabled,input[type=date][readonly],input[type=time]:disabled,input[type=time][readonly],input[type=datetime-local]:disabled,input[type=datetime-local][readonly],textarea:disabled,textarea[readonly],select:disabled,select[readonly]{background-color:#e5e5e5;color:#aaa;cursor:not-allowed}.form-control.is-invalid,.form-control.ng-invalid.ng-touched,input[type=text].is-invalid,input[type=text].ng-invalid.ng-touched,input[type=email].is-invalid,input[type=email].ng-invalid.ng-touched,input[type=password].is-invalid,input[type=password].ng-invalid.ng-touched,input[type=number].is-invalid,input[type=number].ng-invalid.ng-touched,input[type=tel].is-invalid,input[type=tel].ng-invalid.ng-touched,input[type=url].is-invalid,input[type=url].ng-invalid.ng-touched,input[type=search].is-invalid,input[type=search].ng-invalid.ng-touched,input[type=date].is-invalid,input[type=date].ng-invalid.ng-touched,input[type=time].is-invalid,input[type=time].ng-invalid.ng-touched,input[type=datetime-local].is-invalid,input[type=datetime-local].ng-invalid.ng-touched,textarea.is-invalid,textarea.ng-invalid.ng-touched,select.is-invalid,select.ng-invalid.ng-touched{border-color:#dc3545}.form-control.is-invalid:focus,.form-control.ng-invalid.ng-touched:focus,input[type=text].is-invalid:focus,input[type=text].ng-invalid.ng-touched:focus,input[type=email].is-invalid:focus,input[type=email].ng-invalid.ng-touched:focus,input[type=password].is-invalid:focus,input[type=password].ng-invalid.ng-touched:focus,input[type=number].is-invalid:focus,input[type=number].ng-invalid.ng-touched:focus,input[type=tel].is-invalid:focus,input[type=tel].ng-invalid.ng-touched:focus,input[type=url].is-invalid:focus,input[type=url].ng-invalid.ng-touched:focus,input[type=search].is-invalid:focus,input[type=search].ng-invalid.ng-touched:focus,input[type=date].is-invalid:focus,input[type=date].ng-invalid.ng-touched:focus,input[type=time].is-invalid:focus,input[type=time].ng-invalid.ng-touched:focus,input[type=datetime-local].is-invalid:focus,input[type=datetime-local].ng-invalid.ng-touched:focus,textarea.is-invalid:focus,textarea.ng-invalid.ng-touched:focus,select.is-invalid:focus,select.ng-invalid.ng-touched:focus{box-shadow:0 0 0 3px #dc354540}.form-control.is-valid,.form-control.ng-valid.ng-touched,input[type=text].is-valid,input[type=text].ng-valid.ng-touched,input[type=email].is-valid,input[type=email].ng-valid.ng-touched,input[type=password].is-valid,input[type=password].ng-valid.ng-touched,input[type=number].is-valid,input[type=number].ng-valid.ng-touched,input[type=tel].is-valid,input[type=tel].ng-valid.ng-touched,input[type=url].is-valid,input[type=url].ng-valid.ng-touched,input[type=search].is-valid,input[type=search].ng-valid.ng-touched,input[type=date].is-valid,input[type=date].ng-valid.ng-touched,input[type=time].is-valid,input[type=time].ng-valid.ng-touched,input[type=datetime-local].is-valid,input[type=datetime-local].ng-valid.ng-touched,textarea.is-valid,textarea.ng-valid.ng-touched,select.is-valid,select.ng-valid.ng-touched{border-color:#8cb8b0}.form-control.is-valid:focus,.form-control.ng-valid.ng-touched:focus,input[type=text].is-valid:focus,input[type=text].ng-valid.ng-touched:focus,input[type=email].is-valid:focus,input[type=email].ng-valid.ng-touched:focus,input[type=password].is-valid:focus,input[type=password].ng-valid.ng-touched:focus,input[type=number].is-valid:focus,input[type=number].ng-valid.ng-touched:focus,input[type=tel].is-valid:focus,input[type=tel].ng-valid.ng-touched:focus,input[type=url].is-valid:focus,input[type=url].ng-valid.ng-touched:focus,input[type=search].is-valid:focus,input[type=search].ng-valid.ng-touched:focus,input[type=date].is-valid:focus,input[type=date].ng-valid.ng-touched:focus,input[type=time].is-valid:focus,input[type=time].ng-valid.ng-touched:focus,input[type=datetime-local].is-valid:focus,input[type=datetime-local].ng-valid.ng-touched:focus,textarea.is-valid:focus,textarea.ng-valid.ng-touched:focus,select.is-valid:focus,select.ng-valid.ng-touched:focus{box-shadow:0 0 0 3px #8cb8b040}.form-control-sm{padding:6px 12px;font-size:13px;border-radius:6px}.form-control-lg{padding:14px 18px;font-size:16px;border-radius:10px}textarea{resize:vertical;min-height:100px}textarea.no-resize{resize:none}select{appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888888' 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;cursor:pointer}.form-check{display:flex;align-items:center;gap:10px;margin-bottom:8px;cursor:pointer}.form-check:last-child{margin-bottom:0}.form-check-input{width:18px;height:18px;flex-shrink:0;margin:0;cursor:pointer;accent-color:#0F7C7C}.form-check-input:focus{outline:none;box-shadow:0 0 0 3px #0f7c7c40}.form-check-input:disabled{cursor:not-allowed;opacity:.5}.form-check-label{margin:0;font-size:14px;color:#1a1a1a;cursor:pointer;-webkit-user-select:none;user-select:none}.form-text,.help-text{display:block;margin-top:6px;font-size:13px;color:#888}.invalid-feedback,.error-text{display:block;margin-top:6px;font-size:13px;color:#dc3545}.valid-feedback{display:block;margin-top:6px;font-size:13px;color:#8cb8b0}.form-switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer}.switch-input{position:relative;width:44px;height:24px;appearance:none;background-color:#e0e0d8;border-radius:12px;cursor:pointer;transition:background-color .2s}.switch-input:before{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background-color:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px #0003}.switch-input:checked{background-color:#0f7c7c}.switch-input:checked:before{transform:translate(20px)}.switch-input:focus{outline:none;box-shadow:0 0 0 3px #0f7c7c40}.switch-input:disabled{opacity:.5;cursor:not-allowed}.switch-label{font-size:14px;color:#1a1a1a;-webkit-user-select:none;user-select:none}.card{background:#fff;border:1px solid #E0E0D8;border-radius:12px;overflow:hidden}.card.card-hoverable{transition:transform .2s,box-shadow .2s;cursor:pointer}.card.card-hoverable:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000014}.card.card-flat{border:none;box-shadow:none}.card.card-elevated{border:none;box-shadow:0 4px 12px #00000014}.card-header{padding:16px 20px;border-bottom:1px solid #E0E0D8;background:#f7f5f0}.card-header h2,.card-header h3,.card-header h4{margin:0;font-size:16px;font-weight:600;color:#1a1a1a}.card-header p{margin:4px 0 0;font-size:13px;color:#888}.card-body{padding:20px}.card-body.card-body-sm{padding:16px}.card-body.card-body-lg{padding:24px}.card-body.card-body-flush{padding:0}.card-footer{padding:16px 20px;border-top:1px solid #E0E0D8;background:#f7f5f0}.card-footer.card-footer-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.card-primary{border-color:#99d3d3}.card-primary .card-header{background:#e6f4f4;border-color:#99d3d3}.stat-card{padding:20px;background:#fff;border:1px solid #E0E0D8;border-radius:12px}.stat-card .stat-icon{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;background:#e6f4f4;color:#0f7c7c;font-size:24px}.stat-card .stat-value{font-size:28px;font-weight:700;color:#1a1a1a;line-height:1.2;margin-bottom:4px}.stat-card .stat-label{font-size:14px;color:#888}.table{width:100%;border-collapse:collapse;font-size:14px}.table th,.table td{padding:12px 16px;text-align:left;vertical-align:middle}.table th{font-weight:600;color:#888;background:#f7f5f0;border-bottom:2px solid #E0E0D8;white-space:nowrap}.table td{color:#1a1a1a;border-bottom:1px solid #EAEAE4}.table tbody tr{transition:background .2s}.table tbody tr:hover{background:#f7f5f0}.table tbody tr:last-child td{border-bottom:none}.table-striped tbody tr:nth-child(odd){background:#f7f5f0}.table-striped tbody tr:hover{background:#eaeae4}.table-bordered{border:1px solid #E0E0D8;border-radius:8px;overflow:hidden}.table-bordered th,.table-bordered td{border:1px solid #E0E0D8}.table-bordered th{border-bottom-width:2px}.table-compact th,.table-compact td{padding:8px 12px}.table-relaxed th,.table-relaxed td{padding:16px 20px}.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive .table{min-width:600px}.cell-numeric{text-align:right;font-variant-numeric:tabular-nums}.cell-center{text-align:center}.cell-nowrap{white-space:nowrap}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;border-radius:20px}.status-badge .status-dot{width:6px;height:6px;border-radius:50%}.status-badge.status-success{background:#f3f8f7;color:#528b81}.status-badge.status-success .status-dot{background:#8cb8b0}.status-badge.status-warning{background:#fffbeb;color:#8a7022}.status-badge.status-warning .status-dot{background:#d4af37}.status-badge.status-danger{background:#fef2f2;color:#a71d2a}.status-badge.status-danger .status-dot{background:#dc3545}.status-badge.status-info{background:#e6f4f4;color:#094a4a}.status-badge.status-info .status-dot{background:#0f7c7c}:root{--color-primary: #0F7C7C;--color-primary-light: #129393;--color-primary-dark: #0C6363;--color-secondary: #8CB8B0;--color-accent: #D4AF37;--color-background: #F7F5F0;--color-surface: #FFFFFF;--color-surface-elevated: #FFFBF7;--color-text-primary: #1A1A1A;--color-text-secondary: #888888;--color-text-muted: #AAAAAA;--color-text-inverse: #FFFFFF;--color-border: #E0E0D8;--color-border-light: #EAEAE4;--color-border-focus: #0F7C7C;--color-success: #8CB8B0;--color-success-bg: #F3F8F7;--color-success-dark: #528B81;--color-warning: #D4AF37;--color-warning-bg: #FFFBEB;--color-warning-dark: #8A7022;--color-error: #DC3545;--color-error-bg: #FEF2F2;--color-error-dark: #A71D2A;--color-info: #0F7C7C;--color-info-bg: #E6F4F4;--color-info-dark: #094A4A}:root{--brand: var(--color-primary);--brand-light: var(--color-primary-light);--brand-dark: var(--color-primary-dark);--brand-50: #E6F4F4;--brand-100: #CCE9E9;--secondary: var(--color-secondary);--secondary-soft: #E7F1EF;--accent: var(--color-accent);--accent-soft: #FDF9E8;--bg: var(--color-background);--surface: var(--color-surface);--surface-2: var(--color-surface-elevated);--surface-3: #F0EDE6;--border: var(--color-border);--border-light: var(--color-border-light);--text: var(--color-text-primary);--muted: var(--color-text-secondary);--muted-2: var(--color-text-muted);--green: var(--color-primary);--green-soft: var(--color-info-bg);--red: var(--color-error);--red-soft: var(--color-error-bg);--amber: #B8962E;--amber-soft: #FDF9E8;--shadow-sm: 0 1px 2px rgba(26, 26, 26, .04);--shadow: 0 1px 3px rgba(26, 26, 26, .06), 0 1px 2px rgba(26, 26, 26, .04);--shadow-md: 0 4px 12px rgba(26, 26, 26, .08);--radius: 14px}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--brand)}h1,h2,h3,h4{color:var(--text)}button{cursor:pointer;border:none;border-radius:10px;padding:9px 16px;font-family:inherit;font-size:14px;font-weight:600;background:var(--brand);color:#fff;transition:background .15s ease,box-shadow .15s ease}button:hover{background:var(--brand-dark)}button:disabled{opacity:.45;cursor:not-allowed}button.ghost{background:transparent;border:1px solid var(--border);color:var(--text)}button.ghost:hover{background:var(--surface-3)}label{display:inline;margin:0;font-weight:inherit;font-size:inherit}input,select{background:#fff;border:1px solid var(--border);border-radius:10px;color:var(--text);padding:9px 12px;font-size:14px;width:100%}input::placeholder{color:var(--muted-2)}input:focus,select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #0f7c7c26}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--border-light);font-size:14px}th{color:var(--muted);font-weight:600;text-transform:uppercase;font-size:11px;letter-spacing:.05em}tbody tr:hover td{background:var(--surface-2)}code{background:var(--surface-3);padding:2px 6px;border-radius:6px;font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);overflow:visible}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge.green{background:var(--green-soft);color:var(--brand-dark)}.badge.red{background:var(--red-soft);color:var(--red)}.badge.amber{background:var(--amber-soft);color:var(--amber)}.badge.muted{background:var(--surface-3);color:var(--muted)}ui-spinner{display:flex;justify-content:center;padding:28px 0}.muted{color:var(--muted)}.error{color:var(--red)}.success{color:var(--brand)}.row{display:flex;gap:12px;align-items:center}.spacer{flex:1}
