:root{--bg:#0f1923;--surface:#162231;--surface-hover:#1e2c3c;--border:#263548;--border-light:#36455c;--text:#d0d6de;--text-bright:#eef1f6;--text-dim:#8b99ab;--accent:#5d9ce8;--green:#0dbb60;--red:#f24949;--gold:#d0ac53;--gold-dim:rgba(208,172,83,0.15);--sidebar-w:210px;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html{scrollbar-gutter:stable}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;display:flex;flex-direction:column;font-variant-numeric:tabular-nums}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border-light);display:flex;flex-direction:column;z-index:100;overflow-y:auto}.sidebar-brand{padding:20px 18px 14px;border-bottom:1px solid var(--border)}.sidebar-brand h2{font-size:16px;font-weight:700;color:var(--text);letter-spacing:0.5px}.sidebar-brand .brand-line{width:24px;height:2px;background:var(--gold);margin-top:6px}.sidebar-nav{flex:1;padding:8px 0}.nav-tree{display:flex;flex-direction:column}.nav-tree-node{display:flex;align-items:center;gap:4px;padding:5px 8px;color:var(--text-dim);text-decoration:none;font-size:12px;border-left:2px solid transparent;transition:background 0.12s,color 0.12s,border-color 0.12s;cursor:pointer;user-select:none;white-space:nowrap;position:relative}.nav-tree-node:hover{color:var(--text);background:rgba(255,255,255,0.03)}.nav-tree-node.active{color:var(--gold);background:rgba(212,168,83,0.06);border-left-color:var(--gold);font-weight:500}.nav-tree-node.disabled{color:var(--text-dim);cursor:not-allowed;pointer-events:none;opacity:0.45}.nav-tree-node[data-level="0"]{padding-left:12px;font-size:13px;padding-top:7px;padding-bottom:7px;gap:8px}.nav-tree-node[data-level="1"]{padding-left:4px;font-size:12px;padding-top:6px;padding-bottom:6px}.nav-tree-node[data-level="2"]{padding-left:4px;font-size:11.5px;font-weight:600;color:var(--text-bright)}.nav-tree-node[data-level="3"]{padding-left:4px;font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.3px}.nav-tree-node[data-level="4"]{padding-left:4px;font-size:11.5px}.nav-tree-node[data-level="5"]{padding-left:4px;font-size:11px;color:var(--text-dim)}.nav-tree-node[data-level="6"]{padding-left:4px;font-size:11px;color:var(--text-dim)}.nav-tree-toggle{width:16px;height:16px;line-height:16px;text-align:center;font-size:13px;font-weight:700;color:var(--text-dim);flex-shrink:0;cursor:pointer;border-radius:2px;background:rgba(255,255,255,0.04);position:relative;z-index:1;transition:background 0.15s,color 0.15s}.nav-tree-toggle:hover{color:var(--text);background:rgba(255,255,255,0.10)}.nav-tree-icon{width:16px;text-align:center;flex-shrink:0;font-size:12px}.nav-tree-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-tree-meta{font-size:10px;color:var(--text-dim);flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-left:auto}.nav-tree-children{display:block;position:relative;margin-left:0;padding-left:12px;border-left:1px solid rgba(255,255,255,0.08)}.nav-tree-children.collapsed{display:none}.nav-tree-children>.nav-tree-node::before{content:'';position:absolute;left:-6px;top:50%;width:5px;border-top:1px solid rgba(255,255,255,0.08)}.nav-tree-children>.nav-tree-node:last-child::after{content:'';position:absolute;left:-14px;top:50%;bottom:-8px;width:1px;background:var(--bg)}.nav-tree-children .nav-tree-children{border-left:1px solid rgba(255,255,255,0.10)}.nav-tree-node.drop-zone{outline:2px dashed var(--accent);outline-offset:-2px;background:rgba(93,156,232,0.08)}.nav-tree-node.drop-zone-reject{outline:2px dashed var(--red);outline-offset:-2px;background:rgba(255,80,80,0.06)}.nav-tree-node.dragging{opacity:0.35}.nav-tree>.nav-tree-node::before,.nav-tree>.nav-tree-node::after{display:none}.nav-tree>.nav-tree-separator::before,.nav-tree>.nav-tree-separator::after,.nav-tree>.nav-tree-section::before,.nav-tree>.nav-tree-section::after{display:none}.nav-tree-separator{margin:6px 10px;border:none;border-top:1px solid var(--border)}.nav-tree-section{padding:8px 10px 4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim)}.sidebar-footer{padding:12px 18px;border-top:1px solid var(--border);font-size:12px;color:var(--text-dim)}.sidebar-footer .user-name{color:var(--text);font-weight:500;margin-bottom:2px}.sidebar-footer .user-role{font-size:11px;text-transform:uppercase;letter-spacing:0.5px}.sidebar-footer .btn-logout{display:inline-block;margin-top:8px;padding:4px 12px;font-size:11px;background:transparent;border:1px solid var(--border-light);color:var(--text-dim);cursor:pointer;border-radius:3px;transition:all 0.15s}.sidebar-footer .btn-logout:hover{color:var(--red);border-color:var(--red)}.main-content{margin-left:var(--sidebar-w);flex:1;padding:0 28px 24px;transition:margin-left 0.25s ease}.main-content.sidebar-collapsed{margin-left:0}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;margin-top:0;position:sticky;top:0;z-index:50;background:var(--bg);padding:24px 0 6px}.header-left{}.page-header h1{font-size:20px;font-weight:600;color:var(--text)}.page-header .header-line{width:40px;height:2px;background:var(--gold);margin-top:6px}.header-right{flex-shrink:0;margin-left:20px;padding-top:2px}.header-doc-btn{padding:5px 14px;font-size:12px;background:var(--surface);border:1px solid var(--border-light);color:var(--gold);border-radius:3px;cursor:pointer;transition:background 0.2s,color 0.2s;font-family:inherit;white-space:nowrap}.header-doc-btn:hover{background:var(--gold);color:#000}.panel{display:none}.panel.active{display:block}.status-bar{display:flex;gap:24px;padding:6px 0 14px;font-size:11.5px;color:var(--text-dim);border-bottom:1px solid var(--border);margin-bottom:20px}.status-bar .status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px}.status-bar .status-dot.ok{background:var(--green)}.status-bar .status-dot.warn{background:var(--gold)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-bottom:20px}.card{background:var(--surface);border:1px solid var(--border-light);border-radius:4px;padding:16px 18px;transition:border-color 0.15s}.card:hover{border-color:var(--accent)}.card h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;color:var(--text-dim);margin-bottom:12px}.card .card-value{font-size:26px;font-weight:700;color:var(--text);margin-bottom:4px}.card .card-sub{font-size:12px;color:var(--text-dim)}.card .card-stat{display:flex;justify-content:space-between;align-items:center;padding:5px 0;font-size:13px;border-bottom:1px solid var(--border)}.card .card-stat:last-child{border-bottom:none}.card .card-stat .stat-label{color:var(--text-dim)}.card .card-stat .stat-value{font-weight:600}.card .card-stat .stat-pct{font-size:11px;color:var(--text-dim);margin-left:6px}.card.skeleton{color:var(--text-dim)}.chart-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.chart-box{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:16px}.chart-box h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;color:var(--text-dim);margin-bottom:10px}table{width:100%;border-collapse:collapse;font-size:12.5px}th,td{padding:7px 12px;text-align:left;border-bottom:1px solid var(--border)}th{background:var(--surface);color:var(--text-dim);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:0.3px;position:sticky;top:0;z-index:1}tr:hover{background:rgba(255,255,255,0.04)}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:14px;flex-wrap:wrap}input,select,button,textarea{background:var(--bg);color:var(--text);border:1px solid var(--border-light);border-radius:4px;padding:7px 12px;font-size:13px;font-family:inherit}select option{background:var(--surface);color:var(--text-bright)}input:focus,select:focus{outline:none;border-color:var(--accent)}button{cursor:pointer;background:#1a3a1a;border-color:#1a4a1a;color:var(--green);font-weight:500;font-size:13px;transition:all 0.15s}button:hover{background:#1e4a1e;border-color:var(--green)}button.btn-danger{background:#2a1515;border-color:#3a1a1a;color:var(--red)}button.btn-danger:hover{background:#3a1a1a;border-color:var(--red)}button.btn-cancel{padding:8px 18px;font-size:13px;font-weight:700;letter-spacing:1px;background:#c0392b;border:1.5px solid #e74c3c;color:#fff;border-radius:4px;cursor:pointer}button.btn-cancel:hover{background:#e74c3c;border-color:#ff6b6b;box-shadow:0 0 12px rgba(231,76,60,0.5)}button.btn-cancel:disabled{opacity:0.5;cursor:not-allowed;background:#666;border-color:#888;color:#ccc}button.btn-cancel:disabled:hover{background:#666;border-color:#888;box-shadow:none}button.btn-primary{background:#152535;border-color:#1a3050;color:var(--accent)}button.btn-primary:hover{background:#1a3050;border-color:var(--accent)}.btn-group{display:flex;gap:8px;flex-wrap:wrap}.badge{display:inline-block;padding:2px 8px;border-radius:3px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.3px}.badge-ok,.badge-active,.badge-success{background:rgba(0,168,84,0.12);color:var(--green)}.badge-failed,.badge-error,.badge-disabled{background:rgba(242,59,59,0.12);color:var(--red)}.badge-skipped{background:rgba(212,168,83,0.12);color:var(--gold)}.badge-admin{background:rgba(167,139,250,0.12);color:#a78bfa}.badge-user,.badge-api{background:rgba(59,130,246,0.12);color:var(--accent)}.badge-super_admin{background:rgba(201,164,75,0.15);color:var(--gold)}.badge-deleted{background:rgba(90,102,117,0.15);color:var(--text-dim)}.tabs{display:flex;gap:0;border-bottom:1px solid var(--border)}.tab{padding:8px 20px;font-size:13px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-dim);cursor:pointer;transition:all 0.15s;border-radius:0}.tab:hover{color:var(--text);background:rgba(255,255,255,0.02)}.tab.active{color:var(--gold);border-bottom-color:var(--gold);background:transparent}.tab-content{}.form-row{display:flex;gap:14px;margin-bottom:12px}.form-row>div{flex:1}.form-row label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:4px}.form-row input,.form-row select{width:100%}.info-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}.info-row:last-child{border-bottom:none}.info-label{color:var(--text-dim)}#log-output{background:#0c141c;color:#0f0;font-family:"Courier New","Fira Code",monospace;font-size:11.5px;line-height:1.5;padding:12px;border:1px solid var(--border);border-radius:4px;max-height:400px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.symbol-list{display:flex;flex-direction:column;gap:3px;max-height:400px;overflow-y:auto}.symbol-card{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:8px 14px;cursor:pointer;font-size:13px;display:flex;align-items:center;gap:10px;transition:all 0.15s}.symbol-card:hover{border-color:var(--accent);background:rgba(59,130,246,0.06)}.symbol-card .sym-code{font-weight:600;color:var(--text);min-width:70px}.symbol-card .sym-name{color:var(--text-dim);flex:1}.symbol-card .sym-meta{font-size:11px;color:var(--text-dim)}.tag{display:inline-block;padding:1px 7px;border-radius:3px;font-size:11.5px;font-weight:500;background:rgba(0,168,84,0.12);color:var(--green)}.login-body{display:flex;flex-direction:column;align-items:center;min-height:100vh;background:var(--bg)}.login-box{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:44px 40px;width:380px;text-align:center;margin:auto}.login-box .login-logo{font-size:26px;font-weight:700;color:var(--text);letter-spacing:1px;margin-bottom:4px}.login-box .login-line{width:32px;height:2px;background:var(--gold);margin:10px auto 16px}.login-box .login-sub{color:var(--text-dim);font-size:13px;margin-bottom:28px}.login-box input{width:100%;margin-bottom:12px;padding:10px 14px;font-size:14px;border-radius:4px}.login-box button{width:100%;padding:10px;font-size:15px;margin-top:4px}.login-box .error-msg{color:var(--red);margin-top:12px;font-size:13px}.login-footer{margin-top:18px;font-size:12px}.login-footer a{color:var(--text-dim);text-decoration:none;transition:color 0.15s}.login-footer a:hover{color:var(--accent)}.site-footer{margin-top:24px;padding:14px 0;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;font-size:12px;color:var(--text-dim);line-height:1.7}.site-footer a{color:var(--text-dim);text-decoration:none;transition:color 0.15s}.site-footer a:hover{color:var(--gold)}.site-footer .site-footer-sep{margin:0 8px;opacity:0.5}.site-footer-line{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:2px 0}.site-footer-copy{font-size:11px;opacity:0.72}.site-badge{display:inline-flex;align-items:center;justify-content:center;height:15px;min-width:15px;padding:0 3px;border:1px solid var(--gold);border-radius:8px;color:var(--gold);font-size:10px;line-height:1}.site-police{display:inline-flex;align-items:center;gap:4px}.site-police-shield{height:15px;width:auto}.captcha-row{display:flex;align-items:center;gap:8px;margin-bottom:12px}.captcha-question{font-size:16px;font-weight:700;color:var(--text-bright);font-family:"SF Mono","Fira Code","Consolas",monospace;white-space:nowrap;min-width:80px;user-select:none;letter-spacing:1px}.captcha-refresh{font-size:20px;color:var(--text-dim);cursor:pointer;user-select:none;line-height:1;transition:color 0.15s,transform 0.2s;padding:2px 4px;border-radius:3px}.captcha-refresh:hover{color:var(--accent);background:rgba(93,156,232,0.12)}.captcha-refresh:active{transform:rotate(180deg)}.captcha-input{flex:1;padding:8px 10px;font-size:14px;margin-bottom:0!important;max-width:100px;-moz-appearance:textfield}.captcha-input::-webkit-outer-spin-button,.captcha-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.row-ok{border-left:3px solid var(--green)}.row-failed{border-left:3px solid var(--red)}.sidebar-toggle{position:fixed;top:10px;left:10px;z-index:200;background:var(--surface);border:1px solid var(--border);color:var(--text);padding:6px 10px;border-radius:4px;font-size:18px;cursor:pointer;display:none}.sidebar-resize-handle{position:fixed;top:0;bottom:0;left:var(--sidebar-w);width:5px;z-index:140;cursor:col-resize;background:transparent;transition:background 0.15s}.sidebar-resize-handle:hover,.sidebar-resize-handle.active{background:var(--accent)}.sidebar.collapsed ~ .sidebar-resize-handle{display:none}.sidebar-collapse-btn{position:fixed;top:50%;left:calc(var(--sidebar-w) - 12px);z-index:150;width:24px;height:48px;background:var(--surface);border:1px solid var(--border-light);border-radius:0 6px 6px 0;color:var(--text-dim);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transform:translateY(-50%);transition:left 0.25s ease,color 0.15s}.sidebar-collapse-btn:hover{color:var(--text-bright);background:var(--surface-hover)}.sidebar.collapsed{width:0;overflow:hidden;border-right:none}.sidebar.collapsed ~ .sidebar-collapse-btn{left:6px;border-radius:6px}.section-header{font-size:13px;font-weight:600;color:var(--text);text-transform:uppercase;letter-spacing:0.8px;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--border-light);cursor:pointer;user-select:none;position:sticky;top:52px;z-index:30;background:var(--bg);display:flex;align-items:center;gap:6px}.section-header:hover{color:var(--text-bright)}.section-toggle{font-size:10px;color:var(--text-dim);transition:transform 0.2s;flex-shrink:0}.section-header.collapsed .section-toggle{transform:rotate(-90deg)}.section-body.collapsed{display:none}.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-bottom:24px}.category-card{background:var(--surface);border:1px solid var(--border);padding:18px;transition:all 0.2s;display:flex;flex-direction:column}.category-card:hover{border-color:var(--border-light);background:var(--surface-hover)}.category-card .cat-icon{font-size:22px;margin-bottom:6px}.category-card .cat-name{font-size:14px;font-weight:600;color:var(--text-bright);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.category-card .cat-stats{display:grid;grid-template-columns:1fr 1fr;gap:3px 14px}.category-card .cat-stat{display:flex;justify-content:space-between;font-size:11px;color:var(--text-dim);padding:2px 0}.category-card .cat-stat strong{color:var(--text);font-size:11px;font-weight:500}.db-section{margin-top:4px}.db-card{background:var(--surface);border:1px solid var(--border);margin-bottom:12px}.db-card-header{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid var(--border);font-size:13px;font-weight:600;color:var(--text-bright);flex-wrap:wrap;background:rgba(255,255,255,0.01)}.db-card-header .db-name{color:var(--gold);font-weight:600}.db-card-header .db-meta{font-size:11px;color:var(--text-dim);font-weight:400}.db-card-header .db-stats{margin-left:auto;font-size:11px;color:var(--text-dim);font-weight:400}.table-group{border-bottom:1px solid var(--border)}.table-group:last-child{border-bottom:none}.table-group-header{padding:9px 18px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.6px;color:var(--text-dim);background:rgba(255,255,255,0.01);cursor:pointer;user-select:none;display:flex;align-items:center;gap:6px;transition:color 0.15s}.table-group-header:hover{color:var(--text)}.table-group-header .group-arrow{font-size:11px;transition:transform 0.2s}.table-group-header.collapsed .group-arrow{transform:rotate(-90deg)}.table-group-body{}.table-group-body.collapsed{display:none}.table-row{display:flex;align-items:center;padding:7px 18px 7px 26px;font-size:12px;cursor:pointer;transition:all 0.12s;border-left:2px solid transparent}.table-row:hover{background:rgba(255,255,255,0.025);border-left-color:var(--green)}.table-row .tbl-icon{width:16px;text-align:center;margin-right:8px;font-size:12px}.table-row .tbl-name{color:var(--text);min-width:180px;font-size:12px;font-weight:500}.table-row .tbl-rows{color:var(--text-dim);min-width:90px;text-align:right;font-size:12px}.table-row .tbl-purpose{color:var(--text-dim);font-size:12px;margin-left:12px}.table-row .tbl-expand{margin-left:auto;color:var(--text-dim);font-size:12px}.table-row.expanded{border-left-color:var(--gold);background:rgba(212,168,83,0.04)}.column-detail{display:none;padding:0 16px 8px 36px}.column-detail.open{display:block}.col-table-wrap{max-height:480px;overflow:auto;border:1px solid var(--border)}.col-table-wrap table{font-size:11px;min-width:700px}.column-detail th{font-size:9px;padding:4px 8px;background:rgba(0,0,0,0.3);position:sticky;top:0;z-index:1;white-space:nowrap}.column-detail td{padding:2px 8px;font-size:11px;white-space:nowrap}.col-key-pri{color:var(--gold);font-weight:600}.col-key-mul{color:var(--accent)}.col-cat-derived{color:var(--accent)}.col-cat-mapped{color:var(--green)}.col-cat{display:inline-block;padding:0 6px;border-radius:3px;font-size:11px;font-weight:600;line-height:18px}.cat-原生{color:#b0bec5}.cat-RTRM信号{color:#ff9800}.cat-RTRM衍生{color:#5d9ce8}.cat-Q组合{color:#4caf50}.cat-RTRM状态{color:#ba68c8}.val-est{color:var(--text-dim);font-style:italic}.cat-icon-stock{opacity:0.85}.cat-icon-index{opacity:0.70}.cat-icon-etf{opacity:0.70}.cat-icon-future{opacity:0.50}.maint-section{background:var(--surface);border:1px solid var(--border-light);border-radius:4px;margin-bottom:14px;padding:18px 20px}.maint-section h2{font-size:15px;font-weight:600;color:var(--text-bright);margin-bottom:2px}#sm-tab-dev h2{font-size:15px;font-weight:600}#sm-tab-dev .section-desc{font-size:12px;color:var(--text-dim);margin-bottom:10px}#sm-tab-dev #sm-params-body span{font-size:12px}.maint-section .section-desc{font-size:12px;color:var(--text-dim);margin-bottom:14px}.maint-half-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-bottom:14px}.maint-half-grid .maint-section{margin-bottom:0;display:flex;flex-direction:column}.maint-half-grid .maint-section .section-desc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.maint-half-grid .maint-section .auto-incr-card{flex:1 1 auto}.full-init-card{display:flex;flex-direction:column}.full-init-zone{border:2px dashed var(--border);border-radius:6px;padding:32px;text-align:center;background:var(--bg);margin-bottom:12px;display:flex;flex-direction:column;justify-content:center;min-height:200px}.full-init-zone .full-init-icon{font-size:32px;margin-bottom:8px}.full-init-zone .full-init-text{font-size:13px;color:var(--text);margin-bottom:4px}.full-init-zone .full-init-hint{font-size:11px;color:var(--text-dim);line-height:1.7}.full-init-run{margin-top:auto}.latest-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px}.latest-table th{position:sticky;top:0;z-index:2;background:var(--bg);color:var(--text-dim);font-weight:500;font-size:12px;padding:8px 10px;text-align:right;white-space:nowrap;border-bottom:2px solid var(--border-light)}.latest-table th:first-child{text-align:left}.latest-table th.col-group{text-align:center;font-weight:600;color:var(--text);border-bottom:1px solid var(--border)}.latest-table tr.sub-header th{font-weight:400;font-size:11.5px;padding:4px 10px;color:var(--text-dim);border-bottom:2px solid var(--border-light);top:28px;z-index:2}.latest-table tbody td{padding:6px 10px;text-align:right;border-bottom:1px solid var(--border);white-space:nowrap}.latest-table tbody td:first-child{text-align:left;font-weight:600}.latest-table tbody tr:nth-child(even){background:rgba(127,127,127,0.05)}.latest-table tbody tr:hover{background:rgba(127,127,127,0.10)}.latest-table .td-date{color:var(--text-dim);font-size:11px}.latest-table .td-new{color:var(--accent);font-weight:600}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:4px}.freshness{display:inline-flex;align-items:center;gap:5px;font-size:11px}.freshness::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.freshness.fresh{color:var(--green)}.freshness.fresh::before{background:var(--green)}.freshness.stale{color:var(--gold)}.freshness.stale::before{background:var(--gold)}.freshness.old{color:var(--red)}.freshness.old::before{background:var(--red)}.init-guide-toggle{cursor:pointer;user-select:none}.init-guide-toggle:hover .init-guide-hint{color:var(--accent)}.init-guide-hint{color:var(--text-dim);font-size:11px}.init-guide{display:none;border:1px solid var(--border);border-radius:4px;padding:6px 12px 10px;margin-bottom:12px}.init-guide.open{display:block}.init-guide-row{display:flex;align-items:baseline;gap:10px;padding:4px 0;font-size:11.5px;line-height:1.6;color:var(--text-dim)}.init-guide-row + .init-guide-row{border-top:1px solid rgba(255,255,255,0.04)}.init-guide-label{font-weight:600;color:var(--text);white-space:nowrap;min-width:80px;flex-shrink:0}.init-guide-text{color:var(--text-dim)}.init-guide-text strong{color:var(--text)}.init-btn-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}.init-btn-card{background:var(--bg);border:1px solid var(--border-light);border-radius:4px;display:flex;flex-direction:column;overflow:hidden;transition:border-color 0.15s}.init-btn-card:hover{border-color:var(--gold)}.init-card-top{display:flex;align-items:center;gap:6px;padding:10px 10px 6px}.init-btn-num{font-size:18px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.init-btn-label{font-size:13px;font-weight:600;color:var(--text);flex:1}.btn-status{font-size:12px;color:var(--gold);font-weight:600}.init-card-meta{display:flex;justify-content:space-between;align-items:center;padding:0 10px 6px;font-size:12px;color:var(--text-dim)}.init-card-meta code{background:rgba(255,255,255,0.06);padding:1px 6px;border-radius:2px;font-size:11.5px}.init-card-toggle{cursor:pointer;color:var(--accent);font-size:11px;user-select:none}.init-card-toggle:hover{color:var(--text)}.init-field-detail{display:none;padding:6px 10px 10px}.init-field-detail.open{display:block}.init-field-table{width:100%;font-size:11.5px;border-collapse:collapse}.init-field-table td{padding:2px 6px;border-bottom:1px solid var(--border);vertical-align:top}.fld-tbl{color:var(--gold);white-space:nowrap;font-weight:500;min-width:70px}.fld-op{color:var(--text-dim);white-space:nowrap;min-width:80px}.fld-op.warn{color:var(--gold)}.fld-names{color:var(--text-dim);word-break:break-all}.fld-note td{color:var(--text-dim);font-style:italic;padding-top:4px;border-bottom:none;font-size:11px}.init-card-run{margin:auto 10px 10px;padding:8px 0;width:calc(100% - 20px);background:#1a3a1a;border:1px solid #1a4a1a;color:var(--green);font-size:13px;font-weight:600;border-radius:4px;cursor:pointer;transition:all 0.15s}.init-card-run:hover{background:#1e4a1e;border-color:var(--green)}.init-card-run.running{border-color:var(--gold);color:var(--gold);pointer-events:none;opacity:0.7}.init-card-params{padding:4px 10px 6px;display:flex;flex-direction:column;gap:3px}.card-param{display:flex;align-items:center;gap:6px;font-size:12px}.card-param label{color:var(--text-dim);white-space:nowrap;min-width:28px;font-size:11.5px}.card-param select,.card-param input[type="text"],.card-param input[type="date"]{flex:1;padding:3px 6px;font-size:11.5px;background:var(--surface);border:1px solid var(--border-light);color:var(--text);border-radius:2px;font-family:inherit}.card-param .symbol-search-wrap{flex:1}.card-param .symbol-dropdown{font-size:11.5px}.upload-zone{border:2px dashed var(--border);border-radius:6px;padding:32px;text-align:center;cursor:pointer;transition:all 0.2s;background:var(--bg);display:flex;flex-direction:column;justify-content:center;min-height:200px}.upload-zone:hover,.upload-zone.dragover{border-color:var(--accent);background:rgba(82,148,226,0.04)}.upload-zone .upload-icon{font-size:32px;margin-bottom:8px}.upload-zone .upload-text{font-size:13px;color:var(--text);margin-bottom:4px}.upload-zone .upload-hint{font-size:11px;color:var(--text-dim)}.upload-zone .upload-hint code{background:rgba(255,255,255,0.05);padding:1px 6px;border-radius:2px;font-size:11.5px}.symbol-search-wrap{position:relative}.symbol-search-wrap .symbol-dropdown{display:none;position:absolute;top:100%;left:0;right:0;max-height:200px;overflow-y:auto;background:var(--surface);border:1px solid var(--border-light);border-radius:0 0 4px 4px;z-index:10}.symbol-search-wrap .symbol-dropdown.open{display:block}.symbol-search-wrap .symbol-option{padding:7px 12px;font-size:12px;cursor:pointer;color:var(--text);transition:background 0.1s}.symbol-search-wrap .symbol-option:hover{background:rgba(82,148,226,0.12)}.symbol-search-wrap .symbol-option .so-code{font-weight:600;margin-right:8px}.symbol-search-wrap .symbol-option .so-name{color:var(--text-dim)}.symbol-dropdown{display:none;position:absolute;top:100%;left:0;right:0;max-height:200px;overflow-y:auto;background:var(--surface);border:1px solid var(--border-light);border-radius:0 0 4px 4px;z-index:100}.symbol-dropdown.open{display:block}.symbol-option{padding:7px 12px;font-size:12px;cursor:pointer;color:var(--text);transition:background 0.1s}.symbol-option:hover{background:rgba(82,148,226,0.12)}.symbol-option .so-code{font-weight:600;margin-right:8px}.symbol-option .so-name{color:var(--text-dim);font-size:11px}.log-toolbar{display:flex;gap:6px;align-items:center;margin-bottom:8px;flex-wrap:wrap}.log-toolbar button{padding:4px 12px;font-size:11px;background:var(--bg);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:3px;transition:all 0.15s}.log-toolbar button:hover{color:var(--text);border-color:var(--border-light)}.log-toolbar button.active{color:var(--accent);border-color:var(--accent);background:rgba(82,148,226,0.08)}.log-viewer{background:#0c141c;border:1px solid var(--border);border-radius:4px;font-family:"Courier New","Fira Code",monospace;font-size:11.5px;line-height:1.55;max-height:360px;overflow-y:auto;padding:10px 14px;white-space:pre-wrap;word-break:break-all;color:#c0c0c0}.log-line{padding:0}.log-line.error{color:var(--red)}.log-line.ok{color:var(--green)}.log-line.final{color:var(--red);font-weight:700;font-size:13px}.log-line.header{color:var(--gold);font-weight:600}.log-line.info{color:var(--text-dim)}.log-line.default{color:#b0b0b0}.progress-wrap{margin-bottom:10px}.progress-bar{height:4px;background:var(--border);border-radius:2px;overflow:hidden;margin-top:6px}.progress-bar .progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width 0.3s;width:0%}.progress-text{font-size:11.5px;color:var(--text-dim);margin-top:3px;display:flex;justify-content:space-between}.task-list{display:flex;flex-direction:column;gap:3px;margin-top:8px;font-size:11px}.task-item{display:flex;align-items:center;gap:8px;padding:4px 10px;background:var(--bg);border-radius:3px}.task-item .task-id{color:var(--text-dim);font-family:monospace;font-size:11.5px}.task-item .task-status{font-size:11px;font-weight:600;text-transform:uppercase}.task-item .task-status.running{color:var(--accent)}.task-item .task-status.done{color:var(--green)}.task-item .task-status.error{color:var(--red)}.confirm-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:999;align-items:center;justify-content:center}.confirm-overlay.open{display:flex}.confirm-box{background:var(--surface);border:1px solid var(--border-light);border-radius:6px;padding:24px 28px;max-width:400px;text-align:center}.confirm-box h3{font-size:15px;color:var(--text-bright);margin-bottom:8px}.confirm-box p{font-size:13px;color:var(--text-dim);margin-bottom:18px}.confirm-box .confirm-actions{display:flex;gap:10px;justify-content:center}.doc-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:9999;opacity:0;transition:opacity 0.25s ease}.doc-modal-overlay.open{display:block;opacity:1}.doc-modal{position:fixed;top:0;right:0;width:52vw;min-width:560px;max-width:820px;height:100vh;background:var(--surface);border-left:1px solid var(--border-light);display:flex;flex-direction:column;overflow:hidden;box-shadow:-4px 0 40px rgba(0,0,0,0.45);transform:translateX(100%);transition:transform 0.28s cubic-bezier(0.22,0.61,0.36,1)}.doc-modal-overlay.open .doc-modal{transform:translateX(0)}.doc-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);flex-shrink:0}.doc-modal-tabs{display:flex;gap:4px}.doc-modal-tab{padding:6px 16px;font-size:13px;background:transparent;border:1px solid transparent;color:var(--text-dim);border-radius:4px;cursor:pointer;font-family:inherit;transition:background 0.15s,color 0.15s,border-color 0.15s}.doc-modal-tab:hover{color:var(--text);background:rgba(255,255,255,0.05)}.doc-modal-tab.active{background:rgba(212,175,55,0.12);border-color:var(--gold);color:var(--gold)}.doc-modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-dim);font-size:18px;cursor:pointer;border-radius:4px;transition:color 0.15s,background 0.15s}.doc-modal-close:hover{color:var(--text-bright);background:rgba(255,255,255,0.08)}.doc-modal-body{overflow-y:auto;padding:24px 28px 32px;flex:1}.doc-content{display:none}.doc-content.active{display:block}.doc-section{margin-bottom:32px}.doc-section:last-child{margin-bottom:0}.doc-section h2{font-size:16px;color:var(--gold);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border)}.doc-section h3{font-size:13.5px;color:var(--text-bright);margin:14px 0 6px}.doc-section p{font-size:12.5px;color:var(--text-dim);line-height:1.7;margin-bottom:8px}.doc-section p code,.doc-section td code{background:rgba(212,175,55,0.1);color:var(--gold);padding:1px 5px;border-radius:2px;font-size:11.5px;font-family:'Consolas','Menlo',monospace}.doc-table{width:100%;border-collapse:collapse;font-size:12px;margin:10px 0}.doc-table th{background:linear-gradient(var(--gold-dim),var(--gold-dim)),var(--surface);color:var(--gold);text-align:left;padding:6px 10px;font-weight:600;font-size:11.5px;border-bottom:1px solid var(--border);white-space:nowrap}.doc-table th:first-child,.doc-table td:first-child{white-space:nowrap}.doc-table td{padding:6px 10px;border-bottom:1px solid var(--border);color:var(--text-dim);vertical-align:top;line-height:1.55}.doc-table tr:hover td{background:rgba(255,255,255,0.02)}.doc-table .tbl-cat{color:var(--gold);font-weight:600;text-align:center;vertical-align:middle}.doc-steps{display:flex;flex-direction:column;gap:6px;margin:10px 0}.doc-step{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;background:rgba(255,255,255,0.02);border:1px solid var(--border);border-radius:4px;font-size:12px;color:var(--text-dim);line-height:1.55}.doc-step b{color:var(--text-bright)}.doc-step small{color:var(--text-dim);font-size:11px}.step-num{flex-shrink:0;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--gold);color:#000;border-radius:50%;font-size:11px;font-weight:700}.doc-callout{padding:10px 14px;border-radius:4px;font-size:12px;line-height:1.6;margin:10px 0}.doc-callout.warn{background:rgba(255,152,0,0.08);border-left:3px solid #ff9800;color:#ffcc80}.doc-callout.info{background:rgba(33,150,243,0.08);border-left:3px solid #2196f3;color:#90caf9}.doc-callout code{background:rgba(255,255,255,0.1);padding:1px 5px;border-radius:2px;font-size:11px}.detail-filter-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:6px;margin-bottom:14px}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-group label{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.5px}.filter-group select,.filter-group input{background:var(--bg);border:1px solid var(--border-light);color:var(--text);padding:6px 10px;border-radius:4px;font-size:13px;min-width:100px;height:34px}.filter-group select:focus,.filter-group input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px rgba(93,156,232,0.15)}.filter-actions{display:flex;gap:8px;margin-left:auto;align-items:flex-end;padding-bottom:1px}.detail-result{background:var(--surface);border:1px solid var(--border);border-radius:6px;overflow:hidden}.detail-toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--bg);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:8px}.detail-stats{font-size:13px;color:var(--text);font-weight:500;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.stat-label{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.3px}.stat-value{color:var(--text-bright);font-weight:600;font-size:12.5px}.detail-pagination{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-dim)}.detail-page-info{color:var(--text);font-weight:500;min-width:60px;text-align:center}.detail-pagination input[type="number"]{background:var(--bg);border:1px solid var(--border-light);color:var(--text);padding:3px 6px;border-radius:3px;font-size:12px;height:28px}.detail-table-outer{overflow-x:auto;position:relative}.detail-table-inner{max-height:calc(60vh - 40px);overflow-y:auto;position:relative}.detail-table thead th{position:sticky;top:0;z-index:3;background:#1a2b3c;color:var(--text-bright);padding:7px 8px;font-size:11.5px;font-weight:600;text-align:left;white-space:nowrap;border-bottom:2px solid var(--border-light);border-right:1px solid var(--border);user-select:none}.detail-table thead th:first-child{position:sticky;left:0;z-index:4;background:#1e3040}.detail-table tbody td:first-child{position:sticky;left:0;z-index:2;background:inherit}.detail-table tbody td{padding:5px 8px;height:var(--detail-row-height,36px);line-height:1.3;border-bottom:1px solid var(--border);border-right:1px solid rgba(38,53,72,0.4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px;transition:background 0.1s}.detail-table tbody tr:nth-child(even) td{background:var(--surface)}.detail-table tbody tr:nth-child(odd) td{background:var(--bg)}.detail-table tbody tr:hover td{background:rgba(255,255,255,0.07)!important}.detail-table tbody tr:hover td:first-child{background:rgba(255,255,255,0.09)!important}.detail-table .null-cell{color:var(--text-dim);font-style:italic;font-size:11px}.detail-loading{text-align:center;padding:40px 20px;color:var(--text-dim);font-size:14px}.detail-empty{text-align:center;padding:40px 20px;color:var(--text-dim);font-size:14px}.dq-th-field{cursor:default;position:relative;height:30px;padding-top:8px;padding-bottom:4px;font-size:12px;font-family:'SF Mono','Consolas','Monaco',monospace;color:var(--text-bright);white-space:nowrap}.dq-th-field .field-name{cursor:pointer;transition:color 0.15s}.dq-th-field .field-name:hover{color:var(--accent);text-decoration:line-through}.dq-th-cn{padding-top:2px;padding-bottom:8px;font-size:11px;font-weight:400;color:var(--text-dim);border-bottom:2px solid var(--border-light);white-space:nowrap;cursor:pointer;transition:color 0.15s}.detail-table thead th.dq-th-cn{top:30px}.dq-th-cn:hover{color:var(--text-bright)}.sort-arrow{font-size:10px;cursor:pointer;color:var(--text-dim);margin-left:3px;user-select:none;transition:color 0.15s}.sort-arrow:hover{color:var(--accent)}.sort-arrow.asc,.sort-arrow.desc{color:var(--accent);font-weight:700}.hidden-cols-bar{display:flex;align-items:center;gap:6px;padding:6px 0;margin-bottom:4px;min-height:28px;flex-wrap:wrap}.hidden-cols-label{font-size:11px;color:var(--text-dim);flex-shrink:0}.hidden-chip{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;font-size:11px;font-family:'SF Mono','Consolas','Monaco',monospace;color:var(--text-dim);background:rgba(255,255,255,0.05);border:1px solid var(--border-light);border-radius:12px;cursor:pointer;transition:color 0.15s,background 0.15s,border-color 0.15s}.hidden-chip:hover{color:var(--text-bright);background:rgba(255,255,255,0.08);border-color:var(--accent)}.detail-table{table-layout:fixed;width:max-content;min-width:100%}.btn-sm{font-size:11px;padding:3px 10px;height:28px;line-height:1;background:var(--bg);border:1px solid var(--border-light);color:var(--text);border-radius:3px;cursor:pointer;transition:background 0.15s,border-color 0.15s}.btn-sm:hover{background:var(--surface-hover);border-color:var(--accent)}.btn-sm:disabled{opacity:0.4;cursor:not-allowed}.btn-sm:disabled:hover{background:var(--bg);border-color:var(--border-light)}@media (max-width:768px){.sidebar{transform:translateX(-100%);transition:transform 0.2s}.sidebar.open{transform:translateX(0)}.sidebar-toggle{display:block}.sidebar-collapse-btn{display:none}.main-content{margin-left:0;padding:16px}.chart-row{grid-template-columns:1fr}.card-grid{grid-template-columns:1fr}.category-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.category-card .cat-stats{grid-template-columns:1fr 1fr}.db-card-header{flex-direction:column;align-items:flex-start}.db-card-header .db-stats{margin-left:0}.col-table-wrap{max-height:320px;overflow-x:auto}.init-btn-grid{grid-template-columns:1fr}.maint-half-grid{grid-template-columns:1fr}.upload-zone,.full-init-zone{min-height:0}.doc-modal{width:100vw;min-width:unset;max-width:unset}.doc-modal-body{padding:14px 16px 20px}.doc-modal-header{padding:10px 14px}.doc-modal-tab{padding:5px 10px;font-size:12px}}.table-detail{margin-top:0}.detail-tabs{background:var(--surface);border:1px solid var(--border)}.detail-tabs .tabs{display:flex;border-bottom:1px solid var(--border);background:rgba(0,0,0,0.1)}.detail-tabs .tab{padding:8px 16px;font-size:12px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-dim);cursor:pointer;transition:all 0.15s;border-radius:0;font-family:inherit}.detail-tabs .tab:hover{color:var(--text)}.detail-tabs .tab.active{color:var(--gold);border-bottom-color:var(--gold)}.detail-tab-content{display:none;max-height:55vh;overflow:auto}.detail-tab-content.active{display:block}.cols-table{width:100%;border-collapse:collapse;font-size:12px}.cols-table th{position:sticky;top:0;z-index:2;background:var(--bg);color:var(--text-dim);font-weight:600;font-size:11px;text-transform:uppercase;padding:7px 10px;text-align:left;border-bottom:2px solid var(--border-light)}.cols-table td{padding:5px 10px;border-bottom:1px solid var(--border);font-size:11.5px}.cols-table tr:hover td{background:rgba(255,255,255,0.02)}.cols-table .col-pk{color:var(--gold);font-weight:600}.cols-table .col-type{color:var(--accent);font-family:"SF Mono","Fira Code",monospace;font-size:11px}.cols-table .col-nullable{color:var(--red);font-size:10px;font-weight:600}.cols-table .col-comment{color:var(--text-dim);font-size:11px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deps-list{display:flex;flex-direction:column;padding:12px 16px}.deps-label{font-size:12px;color:var(--text-dim);margin-bottom:6px}.deps-item{display:inline-block;padding:3px 10px;margin:2px 4px 2px 0;font-size:12px;background:rgba(93,156,232,0.1);color:var(--accent);border-radius:3px;font-family:"SF Mono","Fira Code",monospace}.view-def-block{padding:12px 16px}.view-def-block pre{font-family:"SF Mono","Fira Code","Consolas",monospace;font-size:11px;color:var(--text-dim);line-height:1.5;white-space:pre-wrap;word-break:break-all;background:rgba(0,0,0,0.2);padding:12px 14px;border-radius:4px;border:1px solid var(--border);margin:0;max-height:400px;overflow-y:auto}.maint-subnav{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:14px;background:var(--bg);position:sticky;top:52px;z-index:40}.maint-subnav-tab{padding:8px 20px;font-size:13px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-dim);cursor:pointer;transition:all 0.15s;border-radius:0;font-family:inherit}.maint-subnav-tab:hover{color:var(--text);background:rgba(255,255,255,0.02)}.maint-subnav-tab.active{color:var(--gold);border-bottom-color:var(--gold)}.maint-subnav-tab.disabled{opacity:0.4;cursor:not-allowed}.top-nav{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:20px;background:var(--surface);border-bottom:1px solid var(--border);padding:0 24px;height:56px}.top-nav-brand{font-weight:700;color:var(--text-bright);display:flex;align-items:center;gap:8px}.top-nav-brandline{width:3px;height:18px;background:var(--gold)}.top-nav-tabs{display:flex;gap:0;overflow-x:auto;flex:1}.top-nav-tab{padding:0 20px;height:56px;font-size:13px;font-family:inherit;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-dim);cursor:pointer;white-space:nowrap}.top-nav-tab:hover{color:var(--text);background:rgba(255,255,255,0.02)}.top-nav-tab.active{color:var(--gold);border-bottom-color:var(--gold)}.top-nav-user{display:flex;align-items:center;gap:10px;margin-left:auto}.top-nav-username{color:var(--text);font-weight:600}.top-nav-role{color:var(--text-dim);font-size:12px}.top-nav-logout{background:transparent;border:1px solid var(--border-light);color:var(--text-dim);padding:5px 12px;border-radius:4px;cursor:pointer}.top-nav-logout:hover{color:var(--red);border-color:var(--red)}.top-nav-auth-btn{color:var(--text);text-decoration:none;font-size:13px;padding:6px 16px;border:1px solid var(--border-light);border-radius:4px;transition:border-color .15s ease,color .15s ease,background-color .15s ease,opacity .15s ease}.top-nav-auth-btn:hover{border-color:var(--accent);color:var(--accent)}.top-nav-auth-btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.top-nav-auth-btn-primary:hover{opacity:0.9;color:#fff}.front-content{padding:24px 28px;flex:1}.top-nav-tabs{overflow:visible}.top-nav-tabs a.top-nav-tab{display:inline-flex;align-items:center;text-decoration:none}.nav-dropdown{position:relative;display:inline-flex}.nav-dropdown-menu{display:none;position:absolute;top:100%;left:0;z-index:100;min-width:150px;padding:4px;background:var(--surface);border:1px solid var(--border-light);border-radius:8px;box-shadow:0 12px 32px rgba(0,0,0,0.5)}.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown.open .nav-dropdown-menu{display:block}.nav-dropdown-item{display:block;width:100%;text-align:left;cursor:pointer;padding:8px 12px;font-size:13px;color:var(--text-bright);background:transparent;border:none;border-radius:5px;box-sizing:border-box;text-decoration:none}.nav-dropdown-item:hover{background:rgba(61,139,255,0.12);color:var(--accent)}.nav-dropdown-item.active{color:var(--accent);background:rgba(61,139,255,0.12)}.nav-dropdown-toggle .caret{font-size:10px;margin-left:3px;color:var(--text-dim)}@media (max-width:768px){.top-nav{flex-wrap:wrap;height:auto;padding:8px 12px}.top-nav-tabs{order:3;flex-basis:100%;overflow-x:auto;overflow-y:hidden}.top-nav-role{display:none}}.report-body,.theory-body,.lab-body,.novel-body{letter-spacing:0.008em}.report-body img,.theory-body img,.lab-body img,.novel-body img{display:block;max-width:100%;height:auto;margin:18px auto;border:1px solid var(--border-light);border-radius:8px}.report-body a,.theory-body a,.lab-body a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(61,139,255,0.4)}.report-body a:hover,.theory-body a:hover,.lab-body a:hover{color:var(--gold);border-bottom-color:var(--gold)}.report-body{font-size:calc(14px * var(--reader-font-scale,1));line-height:1.9;color:var(--text)}.report-body h2{font-size:17px;font-weight:700;color:var(--text-bright);margin:20px 0 10px;padding-bottom:8px;border-bottom:1px solid var(--border-light)}.report-body h3{font-size:15px;font-weight:700;color:var(--text-bright);margin:16px 0 8px}.report-body p{margin:8px 0;text-align:justify}.report-body ul,.report-body ol{margin:8px 0 8px 22px}.report-body table{width:100%;border-collapse:separate;border-spacing:0;margin:18px 0;font-size:13.5px;border:1px solid var(--border-light);border-radius:8px;overflow:hidden}.report-body th{background:linear-gradient(180deg,rgba(61,139,255,0.20),rgba(61,139,255,0.06));color:var(--text-bright);font-weight:600;padding:10px 14px;text-align:left;border-bottom:1px solid var(--border-light)}.report-body td{padding:9px 14px;text-align:left;border-bottom:1px solid rgba(31,74,125,0.45)}.report-body tbody tr:last-child td{border-bottom:none}.report-body tbody tr:nth-child(even) td{background:rgba(255,255,255,0.02)}.report-body tbody tr:hover td{background:rgba(61,139,255,0.07)}.report-body h4{font-size:14px;font-weight:700;color:var(--text-bright);margin:14px 0 8px}.report-body pre{background:rgba(0,0,0,0.22);border:1px solid var(--border-light);border-radius:6px;padding:12px;overflow-x:auto;font-size:12.5px;line-height:1.6;margin:12px 0;white-space:pre}.theory-body{font-size:calc(15px * var(--reader-font-scale,1));line-height:2.0;color:var(--text)}.theory-body h2{font-size:20px;font-weight:700;color:var(--text-bright);margin:30px 0 16px;padding:10px 14px;background:linear-gradient(90deg,rgba(212,175,55,0.14),rgba(0,0,0,0));border-left:4px solid var(--gold);border-radius:4px}.theory-body h3{font-size:17px;font-weight:700;color:var(--gold);margin:24px 0 12px;padding-left:12px;border-left:3px solid var(--gold)}.theory-body h4{font-size:15px;font-weight:700;color:var(--text-bright);margin:18px 0 10px}.theory-body p{margin:14px 0;text-align:justify}.theory-body ul{margin:12px 0 14px;padding-left:24px}.theory-body li{margin:9px 0;line-height:1.85}.theory-body li::marker{color:var(--gold)}.lab-body{font-size:calc(15px * var(--reader-font-scale,1));line-height:2.0;color:var(--text)}.lab-body h2{font-size:20px;font-weight:700;color:var(--text-bright);margin:30px 0 16px;padding:10px 14px;background:linear-gradient(90deg,rgba(212,175,55,0.14),rgba(0,0,0,0));border-left:4px solid var(--gold);border-radius:4px}.lab-body h3{font-size:17px;font-weight:700;color:var(--gold);margin:24px 0 12px;padding-left:12px;border-left:3px solid var(--gold)}.lab-body h4{font-size:15px;font-weight:700;color:var(--text-bright);margin:18px 0 10px}.lab-body p{margin:14px 0;text-align:justify}.lab-body ul,.lab-body ol{margin:12px 0 14px;padding-left:24px}.lab-body li{margin:9px 0;line-height:1.85}.lab-body li::marker{color:var(--gold)}.lab-body strong{color:var(--text-bright)}.lab-body table{width:100%;border-collapse:separate;border-spacing:0;margin:18px 0;font-size:13.5px;border:1px solid var(--border-light);border-radius:8px;overflow:hidden}.lab-body th{background:linear-gradient(180deg,rgba(61,139,255,0.20),rgba(61,139,255,0.06));color:var(--text-bright);font-weight:600;padding:10px 14px;text-align:left;border-bottom:1px solid var(--border-light)}.lab-body td{padding:9px 14px;text-align:left;border-bottom:1px solid rgba(31,74,125,0.45)}.lab-body tbody tr:last-child td{border-bottom:none}.lab-body tbody tr:nth-child(even) td{background:rgba(255,255,255,0.02)}.lab-body tbody tr:hover td{background:rgba(61,139,255,0.07)}.lab-body blockquote{margin:18px 0;padding:12px 16px;border-left:3px solid var(--gold);background:rgba(208,172,83,0.07);color:var(--text-dim);border-radius:0 6px 6px 0}.lab-body blockquote p{margin:6px 0}.lab-body .reader-lead{display:block;font-size:13px;line-height:1.8;font-style:italic;color:var(--text-dim);margin-bottom:6px}.novel-body{font-size:calc(15px * var(--reader-font-scale,1));line-height:2.0;color:var(--text)}.novel-body h2{font-size:18px;color:var(--text-bright);margin:24px 0 12px}.novel-body h3{font-size:16px;color:var(--text-bright);margin:18px 0 10px}.novel-body p{margin:0 0 14px;text-align:justify}.novel-body blockquote{margin:0 0 14px;padding:8px 14px;border-left:3px solid var(--accent);color:var(--text-dim);background:rgba(0,0,0,0.15)}.guardian-note{margin-top:28px;padding:16px 18px;border:1px solid var(--border-light);border-radius:10px;background:rgba(0,0,0,0.18)}.guardian-note-head{font-size:14px;font-weight:700;color:var(--gold);margin-bottom:10px}.guardian-note-body{font-size:calc(14px * var(--reader-font-scale,1));line-height:1.9;color:var(--text-dim)}.guardian-note-body p{margin:8px 0}.maint-sub-content{display:none}.maint-sub-content.active{display:block}.overview-stats{display:flex;gap:24px;padding:20px;flex-wrap:wrap}.overview-stat{text-align:center;min-width:80px}.overview-stat .os-val{font-size:24px;font-weight:700;color:var(--text-bright)}.overview-stat .os-label{font-size:11px;color:var(--text-dim);margin-top:2px;text-transform:uppercase;letter-spacing:0.4px}.audit-stats-row{display:flex;gap:12px;margin-top:12px;flex-wrap:wrap}.audit-stat-card{flex:1;min-width:170px;background:var(--bg);border:1px solid var(--border-light);border-radius:4px;padding:14px 18px;transition:border-color 0.15s}.audit-stat-card:hover{border-color:var(--gold)}.audit-stat-card .asc-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;color:var(--text-dim);margin-bottom:6px}.audit-stat-card .asc-value{font-size:22px;font-weight:700;color:var(--text-bright);font-family:'SF Mono','Consolas',monospace}.audit-stat-card .asc-sub{font-size:12px;color:var(--text-dim);margin-top:2px}.audit-stat-card .asc-detail{font-size:11px;color:var(--text-dim);margin-top:6px;padding-top:6px;border-top:1px solid var(--border)}.audit-summary-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:8px}.audit-summary-item{display:flex;flex-direction:column;align-items:center;min-width:64px;padding:8px 12px;background:var(--bg);border-radius:4px;border:1px solid var(--border)}.audit-summary-item .asi-val{font-size:18px;font-weight:700;color:var(--text-bright)}.audit-summary-item .asi-label{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.3px;margin-top:2px}.audit-summary-item.err .asi-val{color:var(--red)}.audit-summary-item.warn .asi-val{color:var(--gold)}.no-selection{text-align:center;padding:40px 20px;color:var(--text-dim);font-size:13px}.toast-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:99999;background:rgba(0,0,0,0.3);animation:toastFadeIn 0.2s ease}.toast-box{background:var(--surface);border-radius:10px;padding:28px 36px 22px;min-width:320px;max-width:480px;text-align:center;box-shadow:0 8px 40px rgba(0,0,0,0.5);border:1px solid var(--border-light);animation:toastSlideIn 0.25s cubic-bezier(0.22,0.61,0.36,1)}.toast-box .toast-icon{font-size:36px;margin-bottom:10px}.toast-box .toast-msg{color:var(--text);font-size:14px;line-height:1.6;margin-bottom:16px}.toast-box .toast-btn{padding:7px 28px;border:none;border-radius:5px;font-size:13px;font-weight:600;cursor:pointer;background:var(--accent);color:#fff}.toast-box .toast-btn:hover{filter:brightness(1.15)}@keyframes toastFadeIn{from{opacity:0}to{opacity:1}}@keyframes toastSlideIn{from{transform:translateY(-30px) scale(0.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.auto-incr-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:16px 20px;margin-top:12px}.auto-incr-settings{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:32px;row-gap:12px;align-items:center;margin-bottom:14px}.auto-incr-field{display:flex;align-items:center;gap:10px}.auto-incr-field label{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;flex-shrink:0}.auto-incr-field input[type="time"]{padding:6px 12px;border:1px solid var(--border);border-radius:6px;background:var(--input-bg,#1a1d24);color:var(--text);font-size:15px;font-family:inherit;width:110px}.auto-incr-field select{padding:6px 12px;border:1px solid var(--border);border-radius:6px;background:var(--input-bg,#1a1d24);color:var(--text);font-size:15px;font-family:inherit;cursor:pointer;min-width:0}.auto-incr-enabled-label{font-size:13px;color:var(--text-dim);min-width:40px}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background:#555;border-radius:24px;transition:0.25s}.toggle-slider::before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:0.25s}.toggle-switch input:checked + .toggle-slider{background:var(--green)}.toggle-switch input:checked + .toggle-slider::before{transform:translateX(20px)}.auto-incr-status{display:flex;gap:12px;align-items:center;font-size:13px;color:var(--text-dim);margin-bottom:10px;flex-wrap:wrap}.auto-incr-sep{color:var(--border)}.auto-incr-status span span{color:var(--text);font-weight:500}.auto-incr-pipeline{display:flex;gap:4px;align-items:center;margin-bottom:14px;font-size:12px;flex-wrap:nowrap;overflow-x:hidden}.pipe-step{padding:3px 5px;background:var(--input-bg,#1a1d24);border:1px solid var(--border);border-radius:4px;color:var(--accent);font-family:monospace;font-size:12px;white-space:nowrap;flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.pipe-arrow{color:var(--text-dim);font-size:14px;flex-shrink:0}.auto-incr-fallback{border:1px dashed #e74c3c;border-radius:8px;padding:12px 16px;margin-top:10px;background:rgba(231,76,60,0.06)}.auto-incr-retry-msg{padding:6px 12px;margin-bottom:8px;border-radius:6px;background:rgba(230,126,34,0.08);font-size:13px}.cal-body{display:none}.cal-body.open{display:block}.cal-range{color:var(--green);font-weight:600}.cal-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap}.cal-nav{background:var(--surface-hover);border:1px solid var(--border-light);color:var(--text);border-radius:4px;padding:6px 12px;font-size:12px;cursor:pointer}.cal-nav:hover{border-color:var(--accent);color:var(--text-bright)}.cal-title{font-size:15px;font-weight:700;color:var(--text-bright);min-width:110px;text-align:center}.cal-today{font-size:12px;color:var(--accent);cursor:pointer;text-decoration:underline}.cal-spacer{flex:1}.cal-batch{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-dim)}.cal-batch input[type="date"]{background:var(--bg);border:1px solid var(--border-light);color:var(--text);border-radius:4px;padding:5px 8px;font-size:12px}.cal-batch-btn{border-radius:4px;padding:6px 12px;font-size:12px;cursor:pointer;border:1px solid}.cal-batch-open{background:rgba(13,187,96,0.12);border-color:var(--green);color:var(--green)}.cal-batch-open:hover{background:rgba(13,187,96,0.22)}.cal-batch-close{background:rgba(242,73,73,0.10);border-color:var(--red);color:var(--red)}.cal-batch-close:hover{background:rgba(242,73,73,0.20)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:12px}.cal-head{text-align:center;font-size:11px;color:var(--text-dim);padding:4px 0;font-weight:600}.cal-cell{position:relative;border:1px solid var(--border);border-radius:4px;padding:7px 4px;text-align:center;font-size:12px;cursor:pointer;user-select:none;transition:border-color 0.12s,background 0.12s}.cal-cell:hover{border-color:var(--accent)}.cal-cell .cal-day{font-weight:600}.cal-cell .cal-wd{display:block;font-size:10px;color:var(--text-dim);margin-top:2px}.cal-cell.open{background:rgba(13,187,96,0.10);border-color:rgba(13,187,96,0.45);color:var(--text-bright)}.cal-cell.open .cal-day{color:var(--green)}.cal-cell.close{background:transparent;color:var(--text-dim)}.cal-cell.close .cal-day{color:var(--text-dim)}.cal-cell.blank{border-color:transparent;cursor:default}.cal-cell.blank:hover{border-color:transparent}.cal-cell.today{outline:2px solid var(--accent);outline-offset:-1px}.cal-cell.locked{opacity:0.45;cursor:not-allowed}.cal-cell.locked:hover{border-color:var(--border)}.cal-legend{font-size:11px;color:var(--text-dim);display:flex;gap:16px;align-items:center;margin-bottom:10px}.cal-legend-open{color:var(--green)}.cal-legend-close{color:var(--text-dim)}.cal-legend-lock{color:#66788f;opacity:0.6}.cal-legend-hint{margin-left:auto;color:#66788f}.cal-note{border:1px solid var(--border);border-radius:4px;padding:6px 12px 10px;background:rgba(255,255,255,0.02)}.cal-note-row{display:flex;align-items:baseline;gap:10px;padding:4px 0;font-size:11.5px;line-height:1.6;color:var(--text-dim)}.cal-note-row + .cal-note-row{border-top:1px solid rgba(255,255,255,0.04)}.cal-note-label{font-weight:600;color:var(--text);white-space:nowrap;min-width:88px;flex-shrink:0}.cal-note-text{color:var(--text-dim)}.cal-note-text code{background:var(--bg);padding:1px 5px;border-radius:3px;font-size:10.5px;color:var(--accent)}#panel-strategy-monitor .card{cursor:default}#panel-strategy-monitor .card:hover{border-color:var(--border-light)}.captcha-slide{margin-bottom:12px}.slide-canvas{position:relative;width:260px;height:107px;overflow:hidden;border-radius:6px;border:1px solid var(--border);background:var(--surface)}.slide-bg{width:260px;height:107px;display:block}.slide-piece{position:absolute;left:0;top:0;width:50px;height:50px;box-shadow:0 0 5px rgba(0,0,0,0.6)}.slide-track{position:relative;width:260px;height:36px;margin-top:10px;background:var(--surface);border:1px solid var(--border);border-radius:6px}.slide-fill{position:absolute;left:0;top:0;height:100%;width:0;background:rgba(93,156,232,0.25);border-radius:6px 0 0 6px}.slide-thumb{position:absolute;left:0;top:0;width:50px;height:100%;background:var(--accent);color:#ffffff;display:flex;align-items:center;justify-content:center;border-radius:6px;cursor:grab;user-select:none;font-size:16px}.slide-thumb:active{cursor:grabbing}.slide-tip{font-size:12px;color:var(--text-dim);margin-top:6px}.dev-dd-item{background:transparent}.dev-dd-item:hover{background:var(--surface-hover)}