@charset "UTF-8";:root{color-scheme:light;--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--brand: #17541f;--brand-600: #1e6a29;--brand-500: #2b7a37;--brand-50: #eaf3ec;--entity: #2f6b35;--nav-bg: #113a17;--nav-text: #ffffff;--nav-text-2: #ffffff;--nav-muted: #cfe0d2;--nav-hover: #1a4a20;--nav-border: #22502a;--nav-active-bg: #e3f1e5;--nav-active-text: #17541f;--nav-logo: #2a7a35;--nav-focus: #9fd8a8;--bg: #ffffff;--bg-page: #ffffff;--bg-sidebar: #f6f7f9;--bg-muted: #f3f4f6;--bg-hover: #eceef1;--bg-thumb: #eceef0;--surface: #ffffff;--surface-2: #fafbfc;--text: #1f2328;--text-2: #4b525b;--text-muted: #6b727c;--border: #d5d9de;--border-strong: #b6bcc4;--danger: #c62f2f;--danger-bg: #fdecec;--warning: #9a6500;--warning-bg: #fff4dc;--success: #116b1b;--success-bg: #e6f4e8;--info: #1f5fad;--info-bg: #e8f1fc;--series-1: #2a78d6;--grid: #e1e0d9;--axis: #c3c2b7;--mark-hl: #ffe58f;--radius: 10px;--radius-sm: 7px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);--shadow-lg: 0 12px 32px rgba(16, 24, 40, .18);--sidebar-w: 264px}:root[data-theme=dark]{color-scheme:dark;--brand: #4caf5a;--brand-600: #5cbf69;--brand-500: #3f9a4b;--brand-50: #1d2b1f;--entity: #7fcf89;--nav-bg: #0e2312;--nav-hover: #173419;--nav-border: #1f3d24;--nav-active-bg: #1f4d26;--nav-active-text: #e6f5e8;--nav-logo: #1f6a2a;--nav-focus: #74cc80;--bg: #161718;--bg-page: #161718;--bg-sidebar: #1d1f21;--bg-muted: #222427;--bg-hover: #2a2d31;--bg-thumb: #2a2d31;--surface: #1d1f21;--surface-2: #222427;--text: #eceef0;--text-2: #c3c7cc;--text-muted: #9097a0;--border: #363a3f;--border-strong: #4a4f56;--danger: #f07171;--danger-bg: #3a1f1f;--warning: #f2c35b;--warning-bg: #3a3020;--success: #6fd27b;--success-bg: #1f3322;--info: #7fb2f0;--info-bg: #1d2a3b;--series-1: #3987e5;--grid: #2c2c2a;--axis: #383835;--mark-hl: #6b5a12;--shadow: 0 1px 2px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .5)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font);font-size:15px;line-height:1.45;color:var(--text);background:var(--bg-page);-webkit-font-smoothing:antialiased}a{color:var(--brand-600);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.25}h1{font-size:1.6rem}h2{font-size:1.2rem}h3{font-size:1.02rem}.muted{color:var(--text-muted)}.small{font-size:.85rem}.nowrap{white-space:nowrap}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em}.num{font-variant-numeric:tabular-nums}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.spacer{flex:1}.row{display:flex;align-items:center;gap:.5rem}.wrap{flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:.75rem}.page{padding:1.5rem 2rem 3rem;max-width:1600px}.page-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.page-header h1{display:flex;align-items:center;gap:.6rem}.page-header .subtitle{color:var(--text-muted);font-size:.92rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.card-body{padding:1.1rem 1.25rem}.card-header{padding:.85rem 1.25rem;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.75rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;height:36px;padding:0 .9rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;font-size:.9rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s}.btn:hover:not(:disabled){background:var(--bg-hover);text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus-visible,.input:focus-visible,.select:focus-visible,textarea:focus-visible{outline:2px solid var(--brand-500);outline-offset:1px}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-600)}.btn-danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,var(--border))}.btn-danger:hover:not(:disabled){background:var(--danger-bg)}.btn-danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.btn-ghost{border-color:transparent;background:transparent}.btn-sm{height:30px;padding:0 .65rem;font-size:.84rem}.btn-icon{width:36px;padding:0}.btn-sm.btn-icon{width:30px}.btn-group{display:inline-flex}.btn-group>.btn{border-radius:0;margin-left:-1px}.btn-group>.btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm);margin-left:0}.btn-group>.btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.btn-group>.btn.active{background:var(--brand-50);color:var(--brand-600);border-color:var(--brand-500);z-index:1}.field{display:flex;flex-direction:column;gap:.3rem}.field>label,.label{font-size:.84rem;font-weight:600;color:var(--text-2)}.field .hint{font-size:.8rem;color:var(--text-muted)}.field .error{font-size:.8rem;color:var(--danger)}.input,.select,textarea.input{height:36px;padding:0 .7rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;font-size:.92rem;width:100%}.input:disabled,.select:disabled,textarea.input:disabled{background:var(--bg-muted);color:var(--text-muted);cursor:not-allowed}textarea.input{height:auto;min-height:90px;padding:.55rem .7rem;resize:vertical;line-height:1.45}.input.ng-invalid.ng-touched{border-color:var(--danger)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.1rem}.form-grid .full{grid-column:1/-1}.check{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.92rem}.check input{width:16px;height:16px;accent-color:var(--brand)}.switch{position:relative;display:inline-flex;align-items:center;gap:.6rem;cursor:pointer;font-size:.92rem}.switch input{appearance:none;width:36px;height:20px;border-radius:20px;background:var(--border-strong);position:relative;cursor:pointer;transition:background .15s;margin:0}.switch input:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}.switch input:checked{background:var(--brand)}.switch input:checked:after{transform:translate(16px)}.table-wrap{overflow-x:auto}table.table{width:100%;border-collapse:collapse;font-size:.9rem}.table th{text-align:left;font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:.65rem .9rem;border-bottom:1px solid var(--border);background:var(--surface-2)}.table td{padding:.65rem .9rem;border-bottom:1px solid var(--border);vertical-align:middle}.table tbody tr:hover{background:var(--bg-muted)}.table td.actions{text-align:right;white-space:nowrap}.table .num{text-align:right}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.12rem .5rem;border-radius:999px;font-size:.76rem;font-weight:600;background:var(--bg-muted);color:var(--text-2);white-space:nowrap}.badge.success{background:var(--success-bg);color:var(--success)}.badge.danger{background:var(--danger-bg);color:var(--danger)}.badge.warning{background:var(--warning-bg);color:var(--warning)}.badge.info{background:var(--info-bg);color:var(--info)}.badge.brand{background:var(--brand-50);color:var(--brand-600)}.alert{padding:.75rem 1rem;border-radius:var(--radius-sm);font-size:.9rem;display:flex;gap:.6rem;align-items:flex-start}.alert.danger{background:var(--danger-bg);color:var(--danger)}.alert.warning{background:var(--warning-bg);color:var(--warning)}.alert.info{background:var(--info-bg);color:var(--info)}.alert.success{background:var(--success-bg);color:var(--success)}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);margin-bottom:1rem;overflow-x:auto}.tabs button{border:0;background:none;font:inherit;font-size:.92rem;padding:.65rem .9rem;color:var(--text-muted);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;display:inline-flex;gap:.4rem;align-items:center}.tabs button:hover{color:var(--text)}.tabs button.active{color:var(--brand-600);border-bottom-color:var(--brand-500);font-weight:600}.modal-backdrop{position:fixed;inset:0;background:#0f141973;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:5vh 1rem;overflow-y:auto}.modal{background:var(--surface);border-radius:12px;box-shadow:var(--shadow-lg);width:100%;max-width:640px;display:flex;flex-direction:column;max-height:90vh}.modal.lg{max-width:920px}.modal.xl{max-width:1200px;height:88vh}.modal-header{padding:1rem 1.25rem;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.75rem}.modal-header h2{font-size:1.1rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-body{padding:1.25rem;overflow-y:auto;flex:1}.modal-footer{padding:.85rem 1.25rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.6rem}.empty{text-align:center;padding:3rem 1rem;color:var(--text-muted);display:flex;flex-direction:column;align-items:center;gap:.6rem}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--brand-500);animation:spin .8s linear infinite;display:inline-block;flex:none}@keyframes spin{to{transform:rotate(360deg)}}.loading-bar{height:3px;background:linear-gradient(90deg,transparent,var(--brand-500),transparent);background-size:200% 100%;animation:slide 1.2s linear infinite;border-radius:3px}@keyframes slide{0%{background-position:200% 0}to{background-position:-200% 0}}mark,.hl{background:var(--mark-hl);color:inherit;border-radius:2px;padding:0 1px}.kv{display:grid;grid-template-columns:minmax(140px,max-content) 1fr;gap:.45rem 1.25rem;font-size:.9rem}.kv dt{color:var(--text-muted)}.kv dd{margin:0;word-break:break-word}@media(max-width:760px){.page{padding:1rem}.form-grid{grid-template-columns:1fr}}.file-badge{width:34px;height:40px;border-radius:7px;display:grid;place-items:center;flex:none;font-size:.62rem;font-weight:800;letter-spacing:.03em;background:var(--bg-muted);color:var(--text-2)}.file-badge.lg{width:40px;height:48px;font-size:.66rem}.file-badge.pdf{background:#fdecec;color:#a32020}.file-badge.img{background:#e8f1fc;color:#1f5fad}.file-badge.doc{background:#e8eefc;color:#2846a8}:root[data-theme=dark] .file-badge.pdf{background:#3a1a1a;color:#ff9b9b}:root[data-theme=dark] .file-badge.img{background:#16273d;color:#8ab8ef}:root[data-theme=dark] .file-badge.doc{background:#1b2340;color:#9fb1f2}.status-chip{display:inline-flex;align-items:center;gap:.3rem;height:24px;padding:0 .6rem;border-radius:999px;font-size:.76rem;font-weight:650;white-space:nowrap}.status-chip.good{background:var(--success-bg);color:var(--success)}.status-chip.warn{background:var(--warning-bg);color:var(--warning)}.status-chip.crit{background:var(--danger-bg);color:var(--danger)}.ref-page{display:flex;flex-direction:column;gap:1.1rem;max-width:1360px}.ref-head{display:flex;align-items:flex-end;gap:.75rem;flex-wrap:wrap}.ref-head h1{font-size:1.65rem;font-weight:700;letter-spacing:-.015em}.ref-head .lead{margin:.25rem 0 0;color:var(--text-muted);max-width:680px}.ref-card{border-radius:14px}.ref-tools{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;padding:.85rem 1rem;border-bottom:1px solid var(--border)}.ref-filter{flex:0 1 340px;min-width:220px;height:38px;display:flex;align-items:center;gap:.5rem;padding:0 .75rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text-muted)}.ref-filter:focus-within{border-color:var(--brand-500)}.ref-filter input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:.9rem;color:var(--text)}.ref-seg{display:inline-flex;border:1px solid var(--border);border-radius:10px;padding:2px;background:var(--bg-muted)}.ref-seg button{height:32px;padding:0 .75rem;border:0;border-radius:8px;background:transparent;color:var(--text-2);font:inherit;font-size:.82rem;font-weight:550;cursor:pointer}.ref-seg button.on{background:var(--surface);color:var(--text);box-shadow:0 0 0 1px var(--border)}.ref-table{width:100%;border-collapse:collapse}.ref-table th{font-size:.76rem;font-weight:600;color:var(--text-muted);text-align:left;padding:.7rem 1rem;border-bottom:1px solid var(--border);background:var(--bg-muted);white-space:nowrap}.ref-table td{padding:.8rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle;font-size:.9rem}.ref-table tbody tr:hover td{background:var(--surface-2)}.ref-table tbody tr:last-child td{border-bottom:0}.ref-table .num{text-align:right;font-variant-numeric:tabular-nums}.ref-table .acts{display:flex;gap:2px;justify-content:flex-end}.ref-table .name{font-weight:600}.ref-table .desc{font-size:.82rem;color:var(--text-muted)}.ref-empty{padding:2.5rem 1rem;text-align:center;color:var(--text-muted)}.ref-foot{padding:.75rem 1rem;border-top:1px solid var(--border);font-size:.82rem;color:var(--text-muted)}.code-pill{display:inline-flex;align-items:center;height:26px;padding:0 .5rem;border-radius:7px;background:var(--bg-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;font-weight:600;color:var(--text-2)}.count-link{font-weight:650;color:var(--text)!important}.count-link.zero{color:var(--text-muted)!important;font-weight:500}.state-chip{display:inline-flex;align-items:center;gap:.4rem;height:24px;padding:0 .6rem;border-radius:999px;font-size:.76rem;font-weight:650}.state-chip:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.state-chip.on{background:var(--brand-50);color:var(--brand-600)}.state-chip.off{background:var(--bg-muted);color:var(--text-muted)}.state-chip.inbox{background:var(--info-bg);color:var(--info)}.state-chip.inbox:before{display:none}.toggle-row{display:flex;gap:.85rem;align-items:flex-start;padding:.85rem;border:1px solid var(--border);border-radius:12px}.toggle{position:relative;flex:none;width:44px;height:26px;border:0;border-radius:999px;background:var(--border-strong);padding:0;cursor:pointer}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000040;transition:left .15s}.toggle.on{background:var(--brand-500)}.toggle.on:after{left:21px}.toggle:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.toggle-title{font-weight:600}.toggle-hint{font-size:.8rem;color:var(--text-muted)}
