:root{--color-primary-dark:#0b2d4d;--color-primary-dark-hover:#123f68;--color-primary-action:#0d6efd;--color-primary-action-hover:#0b5ed7;--color-secondary-bg:#f1f5f9;--color-secondary-border:#cbd5e1;--color-secondary-text:#0b2d4d;--color-danger:#dc3545;--color-danger-hover:#bb2d3b;--color-danger-soft:#fde8eb;--color-success:#198754;--color-success-hover:#157347;--color-success-soft:#dff6e8;--color-warning:#f59e0b;--color-warning-soft:#fff4d6;--color-info:#0ea5e9;--color-info-soft:#e0f2fe;--color-bg:#f4f6f9;--color-surface:#fff;--color-surface-border:#e5ebf2;--color-row-hover:#f8fafc;--color-border:#dbe3ed;--color-text:#1d2b3a;--color-table-text:#334155;--color-label:#283746;--color-muted:#657386;--color-disabled-text:#667085;--color-danger-text:#9f1f2f;--color-success-border:#a9dfbf;--color-danger-border:#f7b4bd;--color-info-border:#bae6fd;--color-info-text:#0369a1;--color-warning-border:#fed7aa;--color-warning-text:#92400e;--radius-control:8px;--asb-blue:var(--color-primary-dark);--asb-blue-action:var(--color-primary-action);--asb-red:var(--color-danger);--asb-gray:var(--color-bg);--asb-border:var(--color-border);--asb-text:var(--color-text)}.page-header{display:flex;justify-content:space-between;grid-gap:16px;gap:16px;margin-bottom:20px}.page-header h2{color:var(--color-primary-dark);font-size:28px;margin:0 0 6px}.page-header p{color:var(--color-muted);margin:0}.grid-layout{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);grid-gap:20px;gap:20px;align-items:start}.card{background:var(--color-surface);border:1px solid var(--color-surface-border);border-radius:10px;box-shadow:0 12px 30px #0b234114}.form-card{align-self:start;display:grid;grid-gap:9px;gap:9px;padding:22px}.form-card h3{color:var(--color-primary-dark);margin:0 0 8px}.form-note{color:var(--color-info);background:var(--color-info-soft);border-radius:var(--radius-control);font-size:13px;line-height:1.4;margin:-2px 0 8px;padding:8px 10px}label{color:var(--color-label);font-weight:700}input,select{background:var(--color-surface);border:1px solid var(--color-secondary-border);border-radius:var(--radius-control);color:var(--color-text);font-size:14px;min-height:42px;padding:11px 12px;outline:none;width:100%}input:focus,select:focus{border-color:var(--color-primary-action);box-shadow:0 0 0 3px #0d6efd1f}input.ng-invalid.ng-touched,select.ng-invalid.ng-touched{border-color:var(--color-danger);box-shadow:0 0 0 3px #dc35451a}input:disabled,select:disabled{background:var(--color-secondary-bg);color:var(--color-disabled-text);cursor:not-allowed}small{color:var(--color-danger);font-weight:600}.checkbox{align-items:center;display:flex;grid-gap:8px;gap:8px;justify-content:flex-start;margin-top:2px;min-height:28px;width:-moz-fit-content;width:fit-content}.checkbox input[type=checkbox]{min-height:auto;width:16px;height:16px;padding:0;margin:0;accent-color:var(--color-primary-action)}.actions,.form-actions{display:flex;grid-gap:10px;gap:10px;flex-wrap:wrap}.form-actions{margin-top:8px}.form-grid{display:grid;grid-gap:12px;gap:12px}.grid-3{grid-template-columns:repeat(3,minmax(170px,1fr))}.inline-action{display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(0,1fr) auto}.table-card{min-width:0;padding:18px}.table-toolbar{align-items:center;display:flex;grid-gap:16px;gap:16px;justify-content:space-between;margin-bottom:16px}.table-toolbar h3{color:var(--color-primary-dark);margin:0 0 4px}.table-toolbar span{color:var(--color-muted);font-size:13px;font-weight:700}.search-input{max-width:360px}.messages{display:grid;grid-gap:10px;gap:10px;margin-bottom:12px}.alert{border-radius:var(--radius-control);font-weight:600;padding:12px}.alert-error{background:var(--color-danger-soft);border:1px solid var(--color-danger-border);color:var(--color-danger-text)}.alert-success{background:var(--color-success-soft);border:1px solid var(--color-success-border);color:var(--color-success)}.alert-info{background:var(--color-info-soft);border:1px solid var(--color-info-border);color:var(--color-info-text)}.alert-warning{background:var(--color-warning-soft);border:1px solid var(--color-warning-border);color:var(--color-warning-text)}.table-wrapper{overflow-x:auto}table{border-collapse:collapse;min-width:760px;width:100%}td,th{border-bottom:1px solid #e9eef5;padding:13px 12px;text-align:left;vertical-align:middle}th{color:var(--color-primary-dark);font-size:13px;text-transform:uppercase}td{color:var(--color-table-text)}tbody tr{transition:background .2s ease}tbody tr:hover{background:var(--color-row-hover)}.empty-state{color:var(--color-muted);font-weight:700;height:96px;text-align:center}.status{background:var(--color-success-soft);border-radius:999px;color:var(--color-success);display:inline-block;font-size:12px;font-weight:800;padding:5px 10px}.status.inactive{background:var(--color-secondary-bg);color:var(--color-disabled-text)}.status.warning{background:var(--color-warning-soft);color:var(--color-warning-text)}.page-indicator,.photo-state{color:var(--color-muted);font-weight:700}.photo-input input{display:none}.toolbar-actions{align-items:center;display:flex;grid-gap:10px;gap:10px}.import-actions,.tab-nav{display:flex;flex-wrap:wrap;grid-gap:10px;gap:10px;margin-bottom:16px}.massive-layout,.result-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.info-box{background:var(--color-info-soft)}.info-box ul{color:var(--color-text);margin:0;padding-left:18px}.file-name{align-self:center;color:var(--color-muted);font-weight:700}.result-grid div{background:var(--color-secondary-bg);border-radius:var(--radius-control);display:grid;grid-gap:4px;gap:4px;padding:14px}.result-grid strong{color:var(--color-primary-dark);font-size:24px}.actions{justify-content:flex-start;min-width:170px}.pagination{display:flex;grid-gap:8px;gap:8px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}@media (max-width: 1020px){.grid-layout{grid-template-columns:1fr}}@media (max-width: 680px){.page-header{margin-bottom:14px}.table-toolbar{align-items:stretch;flex-direction:column}.search-input{max-width:none}.form-actions,.pagination{justify-content:stretch}.form-actions .btn,.pagination .btn{flex:1 1 auto}.grid-3,.massive-layout,.result-grid{grid-template-columns:1fr}}*{box-sizing:border-box}body,html{min-height:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:Arial,Helvetica,sans-serif}button,input,select{font-family:inherit}.btn{align-items:center;border:1px solid #0000;border-radius:var(--radius-control);cursor:pointer;display:inline-flex;font-size:14px;font-weight:800;justify-content:center;min-height:40px;padding:10px 16px;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{cursor:not-allowed;opacity:.65}.btn-primary{background:var(--color-primary-action);border-color:var(--color-primary-action);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-action-hover);border-color:var(--color-primary-action-hover)}.btn-secondary{background:var(--color-secondary-bg);border-color:var(--color-secondary-border);color:var(--color-secondary-text)}.btn-secondary:hover:not(:disabled){background:#e2e8f0}.btn-outline{background:var(--color-surface);border-color:var(--color-border);color:var(--color-primary-dark)}.btn-outline:hover:not(:disabled){border-color:var(--color-primary-action);color:var(--color-primary-action)}.btn-danger{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--color-danger-hover);border-color:var(--color-danger-hover)}.btn-success{background:var(--color-success);border-color:var(--color-success);color:#fff}.btn-success:hover:not(:disabled){background:var(--color-success-hover);border-color:var(--color-success-hover)}.btn-small{font-size:12px;min-height:32px;padding:7px 10px}