@charset "UTF-8";:root{--surface: #ffffff;--ground: #f4f4f2;--border: #e6e5e0;--ink: #14130f;--muted: #5c5b54;--faint: #8a8981;--disabled: #c9c8c2;--action: #1b3a6b;--action-hover: #152e56;--serve: #0f7b3c;--refuse: #b3261e;--pending: #a85a00;--ease: cubic-bezier(.2, 0, 0, 1);--fast: .12s;--normal: .22s;--radius: 12px;--radius-lg: 20px;--space: 16px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--ground);color:var(--ink);font-family:IBM Plex Sans,system-ui,sans-serif;font-size:15px;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;letter-spacing:-.02em}a{color:var(--action)}.num{font-variant-numeric:tabular-nums}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;font-weight:600}.field input,.field select{height:46px;padding:0 14px;border:1.5px solid var(--border);border-radius:var(--radius);font:inherit;color:var(--ink);background:var(--surface);outline:none;transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}.field input.ng-invalid.ng-touched,.field select.ng-invalid.ng-touched{border-color:var(--refuse)}.field input:focus,.field select:focus{box-shadow:0 0 0 3px #1b3a6b1f;border-color:var(--action)}.field .hint{font-size:12px;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 20px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--ink);font:inherit;font-weight:600;cursor:pointer;text-decoration:none;transition:background-color var(--fast) var(--ease),border-color var(--fast) var(--ease),color var(--fast) var(--ease),transform var(--fast) var(--ease)}.btn:hover{background:var(--ground)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{cursor:default;opacity:.5}.btn.primary{border-color:var(--action);background:var(--action);color:#fff}.btn.primary:hover:not(:disabled){background:var(--action-hover)}.btn.ghost{border-color:transparent;background:transparent;color:var(--muted)}.btn.ghost:hover{background:var(--ground)}.btn.block{width:100%}.alert{animation:fade-in var(--normal) var(--ease);padding:12px 14px;border-radius:var(--radius);font-size:14px;line-height:1.4}.alert.error{background:#fbeceb;color:var(--refuse)}.alert.info{background:var(--ground);color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px}.brand{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:17px;letter-spacing:-.02em}.brand .mark{width:28px;height:28px;border-radius:8px;background:var(--action);color:#fff;display:grid;place-items:center}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}.page-head h1{font-size:28px}.page-head .sub{margin:6px 0 0;color:var(--muted);font-size:14px}.page-head .actions{display:flex;flex-wrap:wrap;gap:8px}.crumb{display:inline-flex;align-items:center;gap:6px;margin-bottom:12px;color:var(--muted);font-size:14px;text-decoration:none}.crumb:hover{color:var(--ink)}.section-title{margin:32px 0 12px;font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.rows{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.row{display:grid;align-items:center;gap:12px;min-height:60px;padding:12px 20px;border-top:1px solid var(--border);color:inherit;text-decoration:none;transition:background-color var(--fast) var(--ease)}.row:first-child{border-top:0}.row.head{min-height:44px;background:var(--ground);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.row.link{cursor:pointer}.row.link:hover{background:#fafaf8}.row .main{font-weight:600}.row .muted{color:var(--muted);font-size:14px}@media(max-width:720px){.row{grid-template-columns:1fr!important;gap:4px}.row.head{display:none}.row [data-label]:before{content:attr(data-label) " \b7  ";color:var(--faint);font-size:12px}}.badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:999px;background:var(--ground);color:var(--muted);font-size:12px;font-weight:600;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge.ok{color:var(--serve);background:#e9f5ee}.badge.warn{color:var(--pending);background:#fbf1e5}.badge.off{color:var(--faint)}.empty{padding:48px 24px;text-align:center;color:var(--muted)}.empty strong{display:block;margin-bottom:6px;color:var(--ink);font-size:17px}.skeleton{height:60px;border-top:1px solid var(--border);background:linear-gradient(90deg,#f7f7f5 25%,#efefec 37%,#f7f7f5 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;border-radius:var(--radius);background:var(--ground)}.segmented button{height:40px;border:0;border-radius:9px;background:transparent;font:inherit;font-weight:600;color:var(--muted);cursor:pointer}.segmented button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #00000014}.form-stack{display:flex;flex-direction:column;gap:16px}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}@media(max-width:480px){.form-actions{flex-direction:column-reverse}.form-actions .btn{width:100%}}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}}app-shell main>router-outlet+*{display:block;animation:rise-in var(--normal) var(--ease)}.rows>.row:not(.head){animation:fade-in var(--normal) var(--ease)}.card{transition:border-color var(--fast) var(--ease)}a{transition:color var(--fast) var(--ease)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.badge.err{color:var(--refuse);background:#fbeceb}.alert.success{background:#e9f5ee;color:var(--serve)}.alert.warn{background:#fbf1e5;color:var(--pending)}.tabs{display:flex;gap:4px;margin:8px 0 20px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.tabs button{position:relative;height:44px;padding:0 14px;border:0;background:transparent;font:inherit;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;transition:color var(--fast) var(--ease)}.tabs button:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px;background:transparent;transition:background-color var(--fast) var(--ease)}.tabs button:hover,.tabs button[aria-selected=true]{color:var(--ink)}.tabs button[aria-selected=true]:after{background:var(--action)}@media print{@page{size:A4;margin:14mm 12mm}html,body{background:#fff!important}app-shell .topbar,app-shell aside,app-shell .scrim,.no-print{display:none!important}app-shell,app-shell>*{display:block!important;grid-template-columns:none!important}app-shell main{padding:0!important;margin:0!important;max-width:none!important}.rows .row{break-inside:avoid}*{-webkit-print-color-adjust:exact;print-color-adjust:exact;box-shadow:none!important}}
