:root{--bs-blue: #5e72e4;--bs-indigo: #6610f2;--bs-purple: #BB6BD9;--bs-pink: #e83e8c;--bs-red: #EE3232;--bs-orange: #ff9900;--bs-yellow: #FFFA6F;--bs-green: #297F00;--bs-teal: #20c997;--bs-cyan: #3065D0;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-primary: #000000;--bs-primary-rgb: 0, 0, 0;--bs-secondary: #f6d868;--bs-secondary-rgb: 246, 216, 104;--bs-success: #a4b37a;--bs-info: #bbcdec;--bs-warning: #ff7a01;--bs-danger: #ff2625;--bs-light: #F4F5F9;--bs-dark: #000000;--bs-body-bg: #fcf8f0;--bs-body-color: #111827;--console-primary: #000000;--console-primary-600: #1f1f1f;--console-text: #000000;--console-muted: #6b7280;--console-border: #ddd3bf;--console-surface: #f4f0e7;--console-surface-soft: #fcf8f0;--console-shadow: 0 12px 30px rgba(15, 23, 42, .08);--console-sidebar-width: 272px}body{background-color:var(--bs-body-bg);color:var(--console-text);font-family:Noto Sans HK,sans-serif;font-size:14px}.collapse{visibility:visible}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}.console-app-shell,.console-guest-shell,.console-shell{min-height:100vh}.console-sidebar-backdrop{position:fixed;inset:0;background:#0f172a57;opacity:0;visibility:hidden;transition:opacity .22s ease;z-index:1035}.console-sidebar{position:fixed;inset:0 auto 0 0;width:var(--console-sidebar-width);max-width:86vw;display:flex;flex-direction:column;gap:1.25rem;padding:1.4rem 1rem;background:var(--console-surface);border-right:1px solid var(--console-border);box-shadow:var(--console-shadow);transform:translate(calc(var(--console-sidebar-width) * -1 - 20px));transition:transform .24s ease;z-index:1040}body.console-sidebar-open .console-sidebar{transform:translate(0)}body.console-sidebar-open .console-sidebar-backdrop{opacity:1;visibility:visible}.console-brand-wrap{padding:.45rem .55rem .2rem}.console-brand{color:var(--console-text);text-decoration:none;font-size:1.15rem;font-weight:800;letter-spacing:.01em}.console-brand-subtitle{font-size:.76rem;color:var(--console-muted)}.console-nav{display:grid;gap:.3rem}.console-nav-link{display:block;padding:.62rem .75rem;border-radius:.72rem;border:1px solid transparent;color:#374151;text-decoration:none;font-weight:600;font-size:.93rem}.console-nav-link:hover,.console-nav-link:focus{color:#111827;background:var(--console-surface-soft)}.console-nav-link.active{color:var(--console-primary-600);border-color:#3b82f633;background:#3b82f61a}.console-nav-group{border:1px solid transparent;border-radius:.72rem}.console-nav-group[open]{border-color:#3b82f633;background:#3b82f60f}.console-nav-group-toggle{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.62rem .75rem;color:#374151;font-weight:600;font-size:.93rem;cursor:pointer;-webkit-user-select:none;user-select:none}.console-nav-group-toggle::-webkit-details-marker{display:none}.console-nav-group-caret{transition:transform .2s ease}.console-nav-group[open] .console-nav-group-caret{transform:rotate(180deg)}.console-nav-submenu{display:grid;gap:.2rem;padding:0 .38rem .38rem}.console-nav-sublink{display:block;padding:.48rem .62rem;border-radius:.58rem;border:1px solid transparent;color:#4b5563;text-decoration:none;font-weight:600;font-size:.88rem}.console-nav-sublink:hover,.console-nav-sublink:focus{color:#111827;background:var(--console-surface-soft)}.console-nav-sublink.active{color:var(--console-primary-600);border-color:#3b82f633;background:#3b82f61f}.console-main{min-width:0;min-height:100vh}.console-topbar{position:sticky;top:0;z-index:1020;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.95rem 1rem;border-bottom:1px solid var(--console-border);background:#ffffffdb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.console-sidebar-toggle{width:2.25rem;height:2.25rem;padding:0;font-size:2rem;color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center}.console-page-title{font-size:1.04rem;font-weight:700;color:var(--console-text)}.console-content{padding:1rem}.console-card,.card{border:1px solid var(--console-border);border-radius:.95rem;background:var(--console-surface);box-shadow:0 1px 2px #0f172a0a}.console-title{color:var(--console-text);font-weight:700}.console-subtitle{color:var(--console-muted)}.console-metric-label{font-size:.74rem;color:#64748b;text-transform:uppercase;letter-spacing:.06em;font-weight:700}.console-metric-value{font-size:1.04rem;font-weight:700;color:#0f172a;line-height:1.35}.console-controls .btn{min-height:2rem}.console-chip{display:inline-flex;align-items:center;padding:.34rem .64rem;border-radius:999px;border:1px solid var(--console-border);background:var(--console-surface-soft);color:#334155;font-size:.8rem;font-weight:700}.console-spark-card{color:var(--console-primary)}.console-sparkline{width:100%;height:44px;color:var(--console-primary);opacity:.95}.console-form .form-label{color:#1f2937;font-weight:600;margin-bottom:.35rem}.console-form .form-control,.console-form .form-select{border-color:#d1d9e6;border-radius:.62rem;min-height:2.7rem}.console-form .form-control:focus,.console-form .form-select:focus{border-color:#93c5fd;box-shadow:0 0 0 .2rem #3b82f62e}.btn-primary{--bs-btn-bg: var(--console-primary);--bs-btn-border-color: var(--console-primary);--bs-btn-hover-bg: var(--console-primary-600);--bs-btn-hover-border-color: var(--console-primary-600);--bs-btn-active-bg: #1d4ed8;--bs-btn-active-border-color: #1d4ed8;--bs-btn-disabled-bg: var(--console-primary);--bs-btn-disabled-border-color: var(--console-primary);--bs-btn-focus-shadow-rgb: 59, 130, 246;border-radius:.62rem;font-weight:600;font-size:.76rem;display:inline-flex;align-items:center}.btn-outline-secondary{--bs-btn-color: #334155;--bs-btn-border-color: #cbd5e1;--bs-btn-hover-bg: #f1f5f9;--bs-btn-hover-border-color: #cbd5e1;--bs-btn-hover-color: #0f172a;--bs-btn-active-bg: #e2e8f0;--bs-btn-active-border-color: #cbd5e1;--bs-btn-active-color: #0f172a;border-radius:.62rem;font-weight:600;font-size:.76rem;display:inline-flex;align-items:center}.console-badge{background:#f8fafc;color:#334155;border:1px solid #dbe3ef;font-weight:600;padding:.6rem 1.6rem}.console-table-wrap{overflow-x:auto;overflow-y:visible;background:var(--console-surface);margin-top:4rem;margin-bottom:2rem}.console-table-wrap .dropdown-menu{z-index:1080;font-size:.76rem}.console-table-wrap .table>:not(caption)>*>*{padding-top:.74rem;padding-bottom:.74rem;border-bottom-color:#edf2f7}.console-table-wrap thead th{background:#f8fafc;color:#475569;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #e2e8f0}.console-table-wrap table[data-datatable] th.dt-action-column,.console-table-wrap table[data-datatable] td.dt-action-column,.console-table-wrap table[data-datatable] th:last-child,.console-table-wrap table[data-datatable] td:last-child{width:60px;min-width:60px;max-width:60px;text-align:end;white-space:nowrap}.console-table-wrap table[data-datatable] td .btn.btn-transparent[data-bs-toggle=dropdown]{width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;transition:background-color .15s ease,color .15s ease}.console-table-wrap table[data-datatable] td .btn.btn-transparent[data-bs-toggle=dropdown]:hover,.console-table-wrap table[data-datatable] td .btn.btn-transparent[data-bs-toggle=dropdown]:focus-visible{background:color-mix(in srgb,var(--console-primary) 10%,transparent);color:var(--console-primary)}.dataTables_wrapper .dataTables_filter input,.dataTables_wrapper .dataTables_length select{border:1px solid var(--console-border);border-radius:.56rem;min-height:2.25rem;color:var(--console-text);background:var(--console-surface)}.dataTables_wrapper .dataTables_filter input:focus,.dataTables_wrapper .dataTables_length select:focus{border-color:color-mix(in srgb,var(--console-primary) 35%,white);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--console-primary) 18%,transparent);outline:none}.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_paginate{color:var(--console-muted)}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{background:color-mix(in srgb,var(--console-primary) 12%,white)!important;border:1px solid color-mix(in srgb,var(--console-primary) 30%,white)!important;color:var(--console-primary)!important}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{background:color-mix(in srgb,var(--console-primary) 8%,white)!important;border:1px solid color-mix(in srgb,var(--console-primary) 22%,white)!important;color:var(--console-primary)!important}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover{color:color-mix(in srgb,var(--console-muted) 60%,white)!important;border:1px solid transparent!important;background:transparent!important}.active>.page-link,.page-link.active{color:#fff;background-color:var(--console-primary);border-color:var(--console-primary)}.active>.page-link:hover,.page-link.active:hover{background-color:var(--console-primary-600);border-color:var(--console-primary-600)}.alert-success{--bs-alert-bg: #ecfdf3;--bs-alert-border-color: #bbf7d0;--bs-alert-color: #166534}.alert-danger{--bs-alert-bg: #fef2f2;--bs-alert-border-color: #fecaca;--bs-alert-color: #991b1b}.alert{border-radius:.72rem}.console-kv dt{color:#374151;font-weight:600}.console-kv dd{color:#111827}.console-guest-shell{background:radial-gradient(1200px 420px at 50% -10%,rgba(246,216,104,.22),transparent),var(--bs-body-bg)}.console-guest-card{max-width:720px;margin:0 auto}.console-guest-brand{display:inline-block;padding:.2rem .52rem;border-radius:.48rem;background:#eff6ff;color:#1d4ed8;font-size:.78rem;font-weight:700}@media(min-width:992px){.console-topbar{padding-inline:1.35rem}.console-content{padding:1.3rem 1.35rem 1.8rem}}
