.sidebar[data-v-1cf9c286]{position:fixed;top:0;bottom:0;left:0;width:var(--sidebar-w);background:var(--navy-800);color:var(--text-on-dark);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;z-index:40;-webkit-transition:-webkit-transform .2s ease;transition:-webkit-transform .2s ease;transition:transform .2s ease;transition:transform .2s ease,-webkit-transform .2s ease}.sidebar-brand[data-v-1cf9c286]{height:var(--topbar-h);-ms-flex-negative:0;flex-shrink:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:var(--sp-3);padding:0 var(--sp-5);background:var(--navy-900);border-bottom:1px solid hsla(0,0%,100%,.06)}.brand-mark[data-v-1cf9c286]{width:30px;height:30px;border-radius:var(--radius-sm);background:var(--accent);color:#fff;display:grid;place-items:center;font-size:14px}.brand-name[data-v-1cf9c286]{font-size:var(--fs-md);font-weight:600;color:#fff;letter-spacing:.01em}.sidebar-nav[data-v-1cf9c286]{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow-y:auto;padding:var(--sp-2) var(--sp-3) var(--sp-4)}.nav-section[data-v-1cf9c286]{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-on-dark-2);opacity:.75;margin:var(--sp-4) var(--sp-3) var(--sp-2)}.nav-item[data-v-1cf9c286]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:var(--sp-3);padding:9px var(--sp-3);border-radius:var(--radius-sm);color:var(--text-on-dark-2);font-size:var(--fs-base);font-weight:500;text-decoration:none;margin-bottom:2px;-webkit-transition:background var(--transition),color var(--transition);transition:background var(--transition),color var(--transition)}.nav-item i[data-v-1cf9c286]{width:18px;text-align:center;font-size:14px}.nav-item[data-v-1cf9c286]:hover{background:hsla(0,0%,100%,.06);color:#fff;text-decoration:none}.nav-item.active[data-v-1cf9c286]{background:var(--navy-700);color:#fff;-webkit-box-shadow:inset 3px 0 0 var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.sidebar-footer[data-v-1cf9c286]{padding:var(--sp-3) var(--sp-5);font-size:var(--fs-xs);color:var(--text-on-dark-2);border-top:1px solid hsla(0,0%,100%,.06)}@media (max-width:991px){.sidebar[data-v-1cf9c286]{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.sidebar.open[data-v-1cf9c286]{-webkit-transform:none;transform:none;-webkit-box-shadow:var(--shadow-lg);box-shadow:var(--shadow-lg)}}.topbar[data-v-3242e09d]{position:sticky;top:0;z-index:30;height:var(--topbar-h);background:var(--bg-surface);border-bottom:1px solid var(--border);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:var(--sp-3);padding:0 var(--sp-6)}.menu-btn[data-v-3242e09d]{display:none}.breadcrumbs[data-v-3242e09d]{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm)}.crumb[data-v-3242e09d]{color:var(--text-3)}a.crumb[data-v-3242e09d]:hover{color:var(--accent);text-decoration:none}.crumb.actual[data-v-3242e09d]{color:var(--text);font-weight:500}.sep[data-v-3242e09d]{font-size:9px;color:var(--border-strong)}.user-menu[data-v-3242e09d]{position:relative}.user-btn[data-v-3242e09d]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:var(--sp-2);background:transparent;border:1px solid transparent;border-radius:var(--radius);padding:4px 8px 4px 4px;cursor:pointer;color:var(--text)}.user-btn[data-v-3242e09d]:hover{background:var(--bg-hover)}.user-name[data-v-3242e09d]{font-size:var(--fs-sm);font-weight:500;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.caret[data-v-3242e09d]{font-size:10px;color:var(--text-3)}.dropdown[data-v-3242e09d]{position:absolute;right:0;top:calc(100% + 6px);width:260px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);-webkit-box-shadow:var(--shadow-lg);box-shadow:var(--shadow-lg);padding:var(--sp-1);z-index:50}.dropdown-head[data-v-3242e09d]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:2px;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;padding:var(--sp-3);border-bottom:1px solid var(--border);margin-bottom:var(--sp-1)}.dropdown-head strong[data-v-3242e09d]{font-size:var(--fs-base);max-width:100%}.dropdown-head span.truncate[data-v-3242e09d]{font-size:var(--fs-xs);color:var(--text-3);max-width:100%}.dropdown-head .badge-soft[data-v-3242e09d]{margin-top:var(--sp-2)}.dropdown-item[data-v-3242e09d]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:var(--sp-3);width:100%;padding:8px var(--sp-3);font-size:var(--fs-sm);color:var(--text);background:transparent;border:0;border-radius:var(--radius-sm);text-align:left;cursor:pointer}.dropdown-item i[data-v-3242e09d]{width:16px;color:var(--text-3)}.dropdown-item[data-v-3242e09d]:hover{background:var(--bg-hover);color:var(--text);text-decoration:none}@media (max-width:991px){.menu-btn[data-v-3242e09d]{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.topbar[data-v-3242e09d]{padding:0 var(--sp-4)}}@media (max-width:575px){.caret[data-v-3242e09d],.user-name[data-v-3242e09d]{display:none}}.with-shell .shell-main{margin-left:var(--sidebar-w);min-height:100vh;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.content{-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;max-width:1440px;padding:var(--sp-6)}.backdrop{position:fixed;inset:0;background:rgba(15,34,56,.45);z-index:35}@media (max-width:991px){.with-shell .shell-main{margin-left:0}.content{padding:var(--sp-4)}}:root{--navy-950:#0f2238;--navy-900:#172f4d;--navy-800:#1e3a5f;--navy-700:#284c78;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-soft:#eef3fe;--accent-border:#c7d7fb;--bg-app:#f3f5f8;--bg-surface:#fff;--bg-subtle:#f8f9fb;--bg-hover:#f1f4f8;--border:#e1e5eb;--border-strong:#cdd4de;--text:#1a2332;--text-2:#475467;--text-3:#6b7686;--text-on-dark:#e8eef6;--text-on-dark-2:#a9b8cc;--success:#15803d;--success-bg:#ecfdf3;--success-border:#b7e4c7;--warning:#b45309;--warning-bg:#fff8eb;--warning-border:#f7d9a8;--danger:#b91c1c;--danger-bg:#fef2f2;--danger-border:#f5c2c2;--info:var(--accent);--info-bg:var(--accent-soft);--info-border:var(--accent-border);--fs-xs:12px;--fs-sm:13px;--fs-base:14px;--fs-md:16px;--fs-lg:20px;--fs-xl:24px;--font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-mono:"JetBrains Mono","Cascadia Code",Consolas,monospace;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--radius-sm:4px;--radius:6px;--radius-lg:8px;--shadow-sm:0 1px 2px rgba(16,24,40,.06);--shadow:0 1px 3px rgba(16,24,40,.08),0 1px 2px rgba(16,24,40,.04);--shadow-lg:0 12px 32px rgba(16,24,40,.14);--focus-ring:0 0 0 3px rgba(37,99,235,.22);--transition:0.15s ease;--sidebar-w:248px;--topbar-h:56px}html{font-size:14px}body{font-size:var(--fs-base);line-height:1.5;background:var(--bg-app);-webkit-font-smoothing:antialiased}body,h1,h2,h3,h4,h5,h6{margin:0;font-family:var(--font);color:var(--text)}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3}a{color:var(--accent)}a:hover{color:var(--accent-hover)}::-moz-selection{background:var(--accent-soft)}::selection{background:var(--accent-soft)}:focus-visible{outline:none;-webkit-box-shadow:var(--focus-ring);box-shadow:var(--focus-ring)}.muted,.text-muted{color:var(--text-3)!important}.mono{font-family:var(--font-mono)}.tabular{font-variant-numeric:tabular-nums}.page-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:var(--sp-4);-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:var(--sp-6)}.page-title{font-size:var(--fs-lg);font-weight:600}.page-subtitle{font-size:var(--fs-sm);color:var(--text-3);margin:var(--sp-1) 0 0}.page-actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:var(--sp-2);-ms-flex-wrap:wrap;flex-wrap:wrap}.panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);-webkit-box-shadow:var(--shadow-sm);box-shadow:var(--shadow-sm);margin-bottom:var(--sp-6);min-width:0}.panel-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:var(--sp-3);-ms-flex-wrap:wrap;flex-wrap:wrap;padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border);min-height:52px}.panel-title{font-size:var(--fs-md);font-weight:600}.panel-title small{font-size:var(--fs-sm);font-weight:400;color:var(--text-3);margin-left:var(--sp-1)}.panel-body{padding:var(--sp-5)}.panel-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border);background:var(--bg-subtle);border-radius:0 0 var(--radius) var(--radius)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-bottom:var(--sp-6)}.stat,.stats{gap:var(--sp-4)}.stat{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:var(--bg-surface);border:1px solid var(--border);-webkit-box-shadow:var(--shadow-sm);box-shadow:var(--shadow-sm);padding:var(--sp-4) var(--sp-5)}.stat,.stat-icon{border-radius:var(--radius)}.stat-icon{width:40px;height:40px;display:grid;place-items:center;-ms-flex-negative:0;flex-shrink:0;background:var(--accent-soft);color:var(--accent)}.stat-icon.tone-success{background:var(--success-bg);color:var(--success)}.stat-icon.tone-warning{background:var(--warning-bg);color:var(--warning)}.stat-icon.tone-danger{background:var(--danger-bg);color:var(--danger)}.stat-icon.tone-navy{background:#e8eef6;color:var(--navy-800)}.stat-value{font-size:var(--fs-xl);font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums}.stat-label{font-size:var(--fs-xs);color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;font-weight:500}.btn{font-family:var(--font);font-size:var(--fs-base);font-weight:500;border-radius:var(--radius-sm);padding:7px 14px;line-height:1.4;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;gap:var(--sp-2);-webkit-transition:background var(--transition),border-color var(--transition),color var(--transition);transition:background var(--transition),border-color var(--transition),color var(--transition);-webkit-box-shadow:none!important;box-shadow:none!important}.btn:focus-visible{-webkit-box-shadow:var(--focus-ring)!important;box-shadow:var(--focus-ring)!important}.btn-sm{font-size:var(--fs-sm);padding:4px 10px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover,.btn-primary:not(:disabled):active{background:var(--accent-hover)!important;border-color:var(--accent-hover)!important}.btn-primary:disabled{background:var(--accent);border-color:var(--accent);opacity:.5}.btn-light,.btn-outline-light,.btn-outline-secondary,.btn-secondary{background:var(--bg-surface);border:1px solid var(--border-strong);color:var(--text)}.btn-light:hover,.btn-outline-light:hover,.btn-outline-secondary:hover,.btn-secondary:hover,.btn-secondary:not(:disabled):active{background:var(--bg-hover)!important;border-color:var(--border-strong)!important;color:var(--text)!important}.btn-danger{background:var(--danger);border-color:var(--danger)}.btn-ghost{background:transparent;border:1px solid transparent;color:var(--text-2)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text)}.btn-icon{width:32px;height:32px;padding:0;border-radius:var(--radius-sm)}.btn-icon.danger:hover{background:var(--danger-bg);color:var(--danger)}.form-label,label{display:block;font-size:var(--fs-sm);font-weight:500;color:var(--text);margin-bottom:var(--sp-1)}.form-hint{color:var(--text-3)}.form-error,.form-hint{font-size:var(--fs-xs);margin-top:var(--sp-1)}.form-error{color:var(--danger)}.form-group{margin-bottom:var(--sp-4)}.custom-select,.form-control{font-family:var(--font);font-size:var(--fs-base);color:var(--text);background-color:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);height:36px;padding:6px 10px;-webkit-transition:border-color var(--transition),-webkit-box-shadow var(--transition);transition:border-color var(--transition),-webkit-box-shadow var(--transition);transition:border-color var(--transition),box-shadow var(--transition);transition:border-color var(--transition),box-shadow var(--transition),-webkit-box-shadow var(--transition)}.custom-select{padding-right:28px}.custom-select-sm,.form-control-sm{height:32px;font-size:var(--fs-sm)}textarea.form-control{height:auto}.form-control::-webkit-input-placeholder{color:#98a2b3}.form-control::-moz-placeholder{color:#98a2b3}.form-control:-ms-input-placeholder{color:#98a2b3}.form-control::-ms-input-placeholder{color:#98a2b3}.form-control::placeholder{color:#98a2b3}.custom-select:focus,.form-control:focus{border-color:var(--accent);-webkit-box-shadow:var(--focus-ring);box-shadow:var(--focus-ring)}.form-control.is-invalid{border-color:var(--danger)}.input-icon{position:relative}.input-icon>i{position:absolute;left:10px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);color:var(--text-3);font-size:var(--fs-sm);pointer-events:none}.input-icon>.form-control{padding-left:32px}.segmented{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius);padding:2px;gap:2px}.segmented button{border:0;background:transparent;color:var(--text-2);font-size:var(--fs-sm);font-weight:500;padding:5px 12px;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap}.segmented button:hover{color:var(--text)}.segmented button.active{background:var(--bg-surface);color:var(--text);-webkit-box-shadow:var(--shadow);box-shadow:var(--shadow)}.segmented .count{color:var(--text-3);font-weight:400;margin-left:4px}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.data-table th{font-size:var(--fs-xs);font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;text-align:left;background:var(--bg-subtle);white-space:nowrap}.data-table td,.data-table th{padding:10px var(--sp-4);border-bottom:1px solid var(--border)}.data-table td{vertical-align:middle;color:var(--text)}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover td{background:var(--bg-subtle)}.data-table .col-actions{width:1%;white-space:nowrap;text-align:right}.data-table .num{text-align:right;font-variant-numeric:tabular-nums}.check{width:18px;height:18px;border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);display:grid;place-items:center;padding:0;cursor:pointer;color:#fff;font-size:10px}.check:hover{border-color:var(--accent)}.check.on{background:var(--success);border-color:var(--success)}.badge-soft{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:4px;font-size:var(--fs-xs);font-weight:500;line-height:1;padding:4px 8px;border-radius:999px;border:1px solid var(--border);background:var(--bg-subtle);color:var(--text-2);white-space:nowrap;text-decoration:none!important}.badge-soft.tone-accent{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent-hover)}.badge-soft.tone-success{background:var(--success-bg);border-color:var(--success-border);color:var(--success)}.badge-soft.tone-warning{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning)}.badge-soft.tone-danger{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}a.badge-soft:hover{-webkit-filter:brightness(.97);filter:brightness(.97)}.alert-inline{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;gap:var(--sp-2);font-size:var(--fs-sm);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);border:1px solid var(--info-border);background:var(--info-bg);color:var(--accent-hover);margin-bottom:var(--sp-4)}.alert-inline i{margin-top:3px}.alert-inline.tone-success{border-color:var(--success-border);background:var(--success-bg);color:var(--success)}.alert-inline.tone-warning{border-color:var(--warning-border);background:var(--warning-bg);color:var(--warning)}.alert-inline.tone-danger{border-color:var(--danger-border);background:var(--danger-bg);color:var(--danger)}.empty-state{text-align:center;padding:var(--sp-8) var(--sp-4);color:var(--text-3)}.empty-state>i{font-size:28px;color:var(--border-strong);margin-bottom:var(--sp-3)}.empty-state h4{font-size:var(--fs-base);color:var(--text);margin-bottom:var(--sp-1)}.empty-state p{font-size:var(--fs-sm);margin:0 auto;max-width:420px}.empty-state .btn{margin-top:var(--sp-4)}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;-webkit-animation:spin .7s linear infinite;animation:spin .7s linear infinite;display:inline-block}@-webkit-keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.loading-block{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-8) var(--sp-4);color:var(--text-3);font-size:var(--fs-sm)}.avatar{border-radius:50%;-o-object-fit:cover;object-fit:cover;background:var(--bg-hover);border:1px solid var(--border);-ms-flex-negative:0;flex-shrink:0}.swal2-popup{font-family:var(--font)!important;border-radius:var(--radius-lg)!important}.swal2-title{font-size:var(--fs-md)!important;color:var(--text)!important}.swal2-html-container{font-size:var(--fs-base)!important;color:var(--text-2)!important}.swal2-styled.swal2-confirm{background:var(--accent)!important;border-radius:var(--radius-sm)!important;font-size:var(--fs-base)!important}.swal2-styled.swal2-cancel{background:var(--bg-surface)!important;color:var(--text)!important;border:1px solid var(--border-strong)!important;border-radius:var(--radius-sm)!important;font-size:var(--fs-base)!important}.swal2-styled.swal2-confirm.btn-confirm-danger{background:var(--danger)!important}.swal2-toast{-webkit-box-shadow:var(--shadow-lg)!important;box-shadow:var(--shadow-lg)!important}.swal2-toast .swal2-title{font-size:var(--fs-sm)!important}.stack-sm>*+*{margin-top:var(--sp-2)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2,.grid-main-side{display:grid;gap:var(--sp-6)}.grid-main-side{grid-template-columns:minmax(0,1fr) 320px;-webkit-box-align:start;-ms-flex-align:start;align-items:start}@media (max-width:1100px){.grid-main-side{grid-template-columns:minmax(0,1fr)}}@media (max-width:860px){.grid-2{grid-template-columns:minmax(0,1fr)}}