:root{--brand:#177d70;--blue:#177d70;--red:#dc5b57;--orange:#e7a13b;--green:#177d70;--dark:#17242e;--bg:#f3f6f8;--border:#e4eaee;--text:#26333c;--text-2:#5f6b73;--text-3:#788791}
#index_history_dialog .index-history-heading [data-close],#pwd_modal_close{width:32px;height:32px;padding:0;border:0;background:transparent;color:var(--text-2);font-size:22px;border-radius:4px}
#index_history_dialog .index-history-heading [data-close]:hover,#pwd_modal_close:hover{background:var(--bg);color:var(--brand)}
#pwd_modal{background:rgba(17,27,34,.45)}
#pwd_modal .modal-box{width:520px;padding:0;border-radius:8px;box-shadow:0 16px 40px rgba(23,36,46,.18)}
#pwd_modal .modal-head{padding:16px 24px;margin:0;border-bottom:1px solid var(--border)}
#pwd_modal .modal-head b{font-size:16px;line-height:24px;font-weight:600;color:var(--text)}
#pwd_modal .modal-body{padding:20px 24px}
#pwd_modal .form-item{display:flex;align-items:center;gap:12px;margin:0}
#pwd_modal .form-item label{width:84px;flex-shrink:0;text-align:right;font-size:14px;color:var(--text-2)}
#pwd_modal .form-item input{width:100%;max-width:none!important;min-width:0;height:32px;border:1px solid var(--border);border-radius:4px;padding:0 10px;color:var(--text);font-size:14px}
#pwd_modal .modal-body>div:first-child{gap:12px!important}
#pwd_modal .modal-body>div:last-child{margin:20px -24px -20px!important;padding:16px 24px;border-top:1px solid var(--border)}
#pwd_modal_cancel,#pwd_modal_ok{height:36px;font-size:14px;padding:0 16px}
.topbar .alarm-link{color:var(--text-2)}
.topbar .user-menu-btn{color:var(--text);cursor:pointer}
.topbar .user-dropdown{border:1px solid var(--border);border-radius:4px;box-shadow:0 2px 10px rgba(27,53,68,.06)}
.topbar .user-dropdown a{color:var(--text);font-size:14px;text-decoration:none}
.topbar .user-dropdown a:hover{color:var(--brand);background:#eaf5f3}
#case_modal{background:rgba(17,27,34,.45)}
#case_modal .modal-box{width:560px;padding:0;display:flex;flex-direction:column;border-radius:8px;box-shadow:0 16px 40px rgba(23,36,46,.18);color:var(--text)}
#case_modal .modal-head{margin:0;padding:16px 24px;border-bottom:1px solid var(--border);flex-shrink:0}
#case_modal .modal-head b{font-size:16px;line-height:24px;font-weight:600}
#case_modal .modal-head .btn{border:0;background:transparent;font-size:22px;width:32px;height:32px;padding:0;color:var(--text-2)}
#case_modal .modal-body{padding:24px;overflow:auto}
#case_modal .case-form{display:flex;flex-direction:column;gap:16px}
#case_modal .form-item{display:flex;align-items:center;gap:12px;margin:0}
#case_modal label{width:72px;flex-shrink:0;font-size:14px;color:var(--text-2)}
#case_modal input,#case_modal select{height:32px;border:1px solid var(--border);border-radius:4px;padding:0 10px;font-size:14px;color:var(--text);min-width:0;box-sizing:border-box}
#case_modal input{width:100%}#case_modal select{width:200px}
#case_modal input:focus,#case_modal select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 2px rgba(23,125,112,.10)}
#case_modal .case-footer{padding:16px 24px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px;flex-shrink:0}
[data-page="alarm"] .tbl td:last-child:has([data-make-case]){min-width:204px}
[data-page="alarm"] .tbl td:last-child .btn:disabled{color:var(--text-3);opacity:.65}
body{font-family:'Microsoft YaHei','PingFang SC',Arial,sans-serif;font-size:14px;background:var(--bg)}
.topbar{height:56px;position:fixed;left:208px;right:0;top:0;background:#fff;border-bottom:1px solid var(--border);padding:0 24px;z-index:30}.topbar .logo{color:var(--text);font-size:14px;font-weight:400}.topbar .logo-mark,.topbar .ver{display:none}.top-info{gap:16px;color:var(--text-2)}.top-info .ws{font-weight:400}.layout{height:100vh;padding-top:56px}.sidebar{position:fixed;inset:0 auto 0 0;width:208px;background:var(--dark);overflow-y:auto;z-index:40;padding:0 8px 16px}.sidebar .brand{display:flex;align-items:center;gap:10px;min-height:72px;padding:12px;color:#fff}.brand b{font-size:17px}.brand small{display:block;font-size:11px;color:#9cabb5;font-weight:400;margin-top:4px}.brand-mark{font-size:13px;border:1px solid #5a9b90;padding:7px 5px;border-radius:4px;color:#c9eee7}.sidebar nav a{display:flex;align-items:center;margin:2px 0;padding:9px 12px;min-height:38px;border-radius:4px;font-size:14px;color:#c7d1d7;border-left:0;gap:10px}.sidebar nav a:hover{background:#21323e;color:#fff}.sidebar nav a.active{background:var(--brand);color:#fff}.group-label{font-size:12px;padding:16px 12px 5px;color:#81939f}.content{margin-left:208px;min-width:0;overflow:auto}.page{padding:22px 24px 32px}.page-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:12px}.page-title h1{font-size:20px;line-height:28px;font-weight:600}.page-title p{color:var(--text-2);font-size:13px;margin-top:4px}.demo-note{font-size:12px;color:var(--text-3)}
.card{border:1px solid var(--border);border-radius:7px;box-shadow:0 2px 10px rgba(27,53,68,.06);margin-bottom:16px;padding:16px;min-width:0}.card h3{font-size:16px;font-weight:600;border-bottom:1px solid var(--border);padding-bottom:12px}.card h3 .hint{font-size:12px;line-height:20px}.btn{height:36px;font-size:14px;padding:0 16px;border-radius:4px;justify-content:center}.btn.sm{height:30px;font-size:13px;padding:0 10px}.btn.primary,.btn.blue{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover,.btn.blue:hover{background:#1c9483;color:#fff}.btn.danger,.btn.warn{background:#fff;border-color:var(--border);color:#a43e3b}.btn:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #177d70;outline-offset:2px}.btn:disabled{pointer-events:none}.btn:hover{border-color:var(--brand)}
input:not([type=checkbox]):not([type=radio]),select{height:32px!important;border:1px solid #d8e1e6!important;border-radius:4px!important;font-size:14px!important;padding:0 10px;max-width:100%}input[type=checkbox]{accent-color:var(--brand)}.filter-bar label,.filter label,.field>label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.filter-bar,.filters{gap:10px;flex-wrap:wrap}.form-grid{gap:16px}.form-item{min-width:0}.toolbar{gap:10px}.tabs{height:42px;margin-bottom:16px;border-bottom:1px solid var(--border)}.tabs button{height:42px;background:transparent;font-size:14px;border-radius:0}.tabs button.active{color:var(--brand);border-color:var(--brand)}.tag{border-radius:4px;font-size:12px}.tag.green{background:#e3f3f0;color:#12695f}.tag.red{background:#fde9e8;color:#a43e3b}.tag.gray{background:#eef2f4;color:#65747d}.tag.orange{background:#fff2d8;color:#9a6416}
.table-scroll{overflow:auto;max-width:100%;border-radius:4px}.tbl{width:100%;white-space:nowrap;font-size:14px}.tbl th{height:42px;font-size:12px;background:#f4f7f9;font-weight:500}.tbl td{height:46px;font-size:13px}.tbl td:last-child,.tbl th:last-child{position:sticky;right:0;background:#fff;z-index:2}.tbl th:last-child{background:#f4f7f9}.tbl tr:hover td{background:#f7fbfa}.modal,.modal-box{border-radius:8px!important;max-width:calc(100vw - 48px)!important;max-height:92vh!important}.modal-body{overflow:auto;max-height:72vh}.modal-head,.modal-foot{flex-shrink:0}.login-brand{background:#17242e}.login-brand-name{font-size:38px}.login-form input{max-width:360px}
.ch-section,.sensor-row{margin:0 0 12px;padding:12px 16px;border:1px solid var(--border);border-radius:7px;background:#fff}.ch-tag,.sensor-tag{font-size:13px;min-height:30px}.ch-tag.active,.sensor-tag.active{background:var(--brand);border-color:var(--brand)}.ch-label{font-size:13px}.mon-body{height:auto;min-height:0}.chart-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px}.chart-grid:has(.chart-cell:only-child){grid-template-columns:1fr!important}.chart-cell{min-height:300px;border:1px solid var(--border);border-radius:7px;padding:12px;background:#fff}.chart-cell svg{height:250px;width:100%;min-height:0}.chart-title{font-size:13px}.wf-panel{height:180px}.summary-bar{flex-wrap:wrap}.channel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.channel-item{flex-wrap:wrap}.source-bar{flex-wrap:wrap;font-size:13px;border-radius:7px}.config-readonly-mask{position:sticky;bottom:0;height:auto;background:#fff2d8;padding:12px;pointer-events:none}.page[data-page=book].readonly .card{pointer-events:none;opacity:.65}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.kpi{padding:16px;background:#fff;border:1px solid var(--border);border-radius:7px}.kpi .label{color:var(--text-2);font-size:13px}.kpi strong{display:block;font-size:26px;margin:9px 0 5px}.kpi small{color:var(--text-3);font-size:12px}.overview-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}.overview-grid .card{margin:0}.health-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--border);gap:12px}.health-row:last-child{border:0}.health-row small{display:block;color:var(--text-3);font-size:12px;margin-top:4px}.notice{padding:12px 16px;border:1px solid #e9d5ac;background:#fff8e9;border-radius:7px;font-size:13px;color:#896129;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center;gap:12px}.meta-strip{display:flex;gap:28px;flex-wrap:wrap;font-size:13px}.meta-strip span{color:var(--text-3)}.meta-strip b{display:block;color:var(--text);margin-top:6px;font-weight:500}.trend{height:180px;width:100%}.muted{color:var(--text-3)}.inline-actions{display:flex;gap:8px;flex-wrap:wrap}.book-switch{margin-bottom:16px}.empty-state{text-align:center;padding:36px;color:var(--text-2)}.sensor-table-tools{display:flex;gap:12px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.sensor-table-tools p{color:var(--text-3);font-size:13px}.algo-note{padding:12px 16px;background:#eaf5f3;color:#12695f;border-radius:4px;margin-bottom:16px}
.chart-cell.empty{display:none}.chart-grid:not(:has(.chart-cell:not(.empty)))::after{content:'请从上方选择传感器查看曲线';padding:40px;color:var(--text-2);background:#fff;border:1px solid var(--border);border-radius:7px}.page.active .filter-bar .field>label,.page.active .filter-row .field>label{display:none}.source-bar{position:relative;z-index:2}.sensor-row #mon_sensor_tags{display:contents}.page[data-page=sensor-status]{padding:0}.page[data-page=book].readonly #save_locations{display:none}
@media(max-width:1150px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid{grid-template-columns:1fr}.channel-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.top-info{gap:8px}.top-info>span:nth-child(2){display:none}}
@media(max-width:1023px){.sidebar{width:64px}.sidebar nav a{font-size:0;justify-content:center}.sidebar nav a .nav-icon{font-size:16px}.sidebar .brand{padding:12px 0}.brand .brand-title,.group-label{display:none}.topbar{left:64px}.content{margin-left:64px}.page{padding:16px}.chart-grid{grid-template-columns:1fr!important}.top-info .ws{display:none}}
/* Data analysis: full-width waterfall and compact sensor curves. */
[data-page=monitor] .ch-section{margin-bottom:0;border-radius:7px 7px 0 0;border-bottom:0}
[data-page=monitor] .sensor-row{border-radius:0 0 7px 7px;border-top:0;padding-top:0;margin-bottom:16px;gap:8px;flex-wrap:wrap}
[data-page=monitor] .ch-row{flex-wrap:wrap;gap:8px}
[data-page=monitor] .mon-body{gap:16px}
[data-page=monitor] .wf-panel{height:270px;padding:12px;background:#fff;border:1px solid var(--border);border-radius:7px}
[data-page=monitor] .wf-head{padding:0 0 10px;color:var(--text);font-size:16px;justify-content:space-between}
#analysis_wf_caption{font-size:13px;color:var(--text-3);font-weight:400;margin-left:12px}
.analysis-collapse{border:0;background:transparent;color:var(--text-2);cursor:pointer;width:32px;height:28px;font-size:20px}
[data-page=monitor] .wf-canvas{margin:0;background:#0c1c43;border-radius:4px;min-height:220px}
[data-page=monitor] .wf-canvas::after{display:none}
#analysis_waterfall{width:100%;height:220px;display:block}
[data-page=monitor] .chart-grid{overflow:visible;grid-auto-rows:auto;gap:12px}
[data-page=monitor] .chart-cell{padding:16px;min-height:0}
.analysis-chart-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px;font-size:16px;margin-bottom:18px;color:var(--text)}
.analysis-chart-title span{font-size:13px;color:var(--text-3)}
.analysis-chart-meta{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--text-3);margin-bottom:4px}
.analysis-chart-meta i{display:inline-block;vertical-align:middle;width:18px;border-top:2px solid #177d70;margin:0 6px 0 12px}
.analysis-chart-meta i.dash{border-color:#dc5b57;border-top-style:dashed}
[data-page=monitor] .chart-cell svg{height:230px;width:100%;display:block}
@media(max-width:1100px){[data-page=monitor] .chart-grid{grid-template-columns:1fr!important}}
[data-page=monitor] .wf-panel{height:282px}
[data-page=monitor] .ch-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:start;gap:8px}
[data-page=monitor] .ch-row>.ch-label{line-height:32px}
[data-page=monitor] #ch_tag_box{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;min-width:0}
[data-page=monitor] .ch-tag{width:100%;margin:0;padding:0 5px;white-space:nowrap;height:32px}
[data-page=monitor] .ch-tag:disabled{background:#f3f5f6;border-color:#e4eaee;color:#aab5bc;cursor:not-allowed;opacity:.8}
[data-page=monitor] #wf_btn{margin:0!important;height:32px}
[data-page=monitor] .sensor-row{display:block;padding-top:12px}
.analysis-sensor-heading{display:flex;gap:12px;align-items:center;margin-bottom:10px}
[data-page=monitor] #mon_sensor_tags{display:flex;flex-wrap:wrap;gap:8px}
[data-page=monitor] .sensor-tag{margin:0;height:32px;padding:0 10px}
.analysis-device-temperature{font-size:13px;color:var(--text-2);white-space:nowrap}
@media(max-width:1250px){[data-page=monitor] #ch_tag_box{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1023px){.analysis-device-temperature{display:none}}
/* Fixed channel slots: sixteen in one row, no stretching for fewer channels. */
[data-page=monitor] .ch-row{grid-template-columns:44px minmax(0,1fr);align-items:center}
[data-page=monitor] #ch_tag_box{grid-template-columns:repeat(16,minmax(0,1fr));gap:4px}
[data-page=monitor] .ch-tag{font-size:12px;padding:0 2px;height:32px}
[data-page=monitor] .ch-tag .cnt{margin-left:0}
[data-page=monitor] .sensor-row{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;padding-top:12px}
[data-page=monitor] .analysis-sensor-heading{margin:0;gap:8px;flex:none}
[data-page=monitor] #mon_sensor_tags{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));flex:1;min-width:0;gap:4px}
[data-page=monitor] .sensor-tag{font-size:12px;padding:0 3px;white-space:nowrap;width:100%}
[data-page=monitor] #wf_btn{flex:none;font-size:13px}
@media(max-width:1250px){[data-page=monitor] .ch-section,[data-page=monitor] .sensor-row{overflow-x:auto}[data-page=monitor] .ch-row{min-width:1080px}[data-page=monitor] #mon_sensor_tags{min-width:900px}}
[data-page=monitor] .page-title p,[data-page=monitor] .page-title .demo-note{display:none}
[data-page=monitor] .page-title{margin-bottom:12px}
[data-page=monitor] .ch-section{padding-bottom:4px}
[data-page=monitor] .sensor-row{padding-top:4px}
[data-page=monitor] .analysis-chart-title{flex-wrap:nowrap;gap:4px;margin-bottom:8px;font-size:14px}
[data-page=monitor] .analysis-chart-title>span{font-size:12px;white-space:nowrap}
[data-page=monitor] .analysis-chart-title .analysis-inline-legend{margin-left:auto;font-size:12px;flex:none}
.analysis-inline-legend i{display:inline-block;vertical-align:middle;width:16px;border-top:2px solid #177d70;margin:0 5px 0 8px}
.analysis-inline-legend i.dash{border-color:#dc5b57;border-top-style:dashed}
[data-page=monitor] .wf-panel.collapsed{height:auto}
[data-page=monitor] .wf-panel.collapsed .wf-canvas{display:none}
[data-page=monitor] .wf-panel.collapsed .wf-head{padding-bottom:0}
/* Keep analysis controls fixed; scroll only the index curve region. */
#main_content:has(>[data-page=monitor].active){overflow:hidden}
[data-page=monitor].active{height:100%;min-height:0;box-sizing:border-box;display:flex;flex-direction:column;padding-bottom:16px;overflow:hidden}
[data-page=monitor] .page-title,[data-page=monitor] .ch-section,[data-page=monitor] .sensor-row{flex-shrink:0}
[data-page=monitor] .mon-body{flex:1;min-height:0;height:auto;overflow:hidden}
[data-page=monitor] .wf-panel{flex-shrink:0}
[data-page=monitor] .chart-grid{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;align-content:start;grid-auto-rows:auto;padding-right:4px;scrollbar-gutter:stable}
[data-page=monitor] .chart-cell{min-height:270px}
@media(max-height:800px){[data-page=monitor] .wf-panel:not(.collapsed){height:222px}[data-page=monitor] .wf-canvas{min-height:160px}#analysis_waterfall{height:160px}}
/* Compact spacing and index charts with three wavelength ticks. */
[data-page=monitor] .sensor-row{margin-bottom:8px;padding-bottom:8px}
[data-page=monitor] .mon-body{gap:8px}
[data-page=monitor] .wf-panel{padding:8px 12px}
[data-page=monitor] .wf-panel.collapsed .wf-head{min-height:24px}
[data-page=monitor] .chart-grid{gap:8px}
[data-page=monitor] .chart-cell{min-height:0;padding:10px 12px}
[data-page=monitor] .analysis-chart-title{margin-bottom:4px}
[data-page=monitor] .chart-cell svg{height:170px}
[data-page=monitor] .chart-grid{grid-auto-rows:210px}[data-page=monitor] .chart-cell{min-height:210px;box-sizing:border-box}
/* Reserve two complete curve rows while the waterfall is expanded. */
[data-page=monitor].active{padding-top:12px;padding-bottom:8px}
[data-page=monitor] .page-title{margin-bottom:6px}
[data-page=monitor] .ch-section{padding-top:8px;padding-bottom:2px}
[data-page=monitor] .sensor-row{padding-top:2px;padding-bottom:6px;margin-bottom:6px}
[data-page=monitor] .mon-body{gap:6px}
[data-page=monitor] .wf-panel:not(.collapsed){height:190px;padding:6px 10px}
[data-page=monitor] .wf-head{padding-bottom:4px}
[data-page=monitor] .wf-canvas{min-height:140px}
[data-page=monitor] #analysis_waterfall{height:140px}
[data-page=monitor] .chart-grid{gap:6px;grid-auto-rows:190px}
[data-page=monitor] .chart-cell{min-height:190px;padding:8px 10px}
[data-page=monitor] .chart-cell svg{height:154px}
@media(max-height:800px){[data-page=monitor] .wf-panel:not(.collapsed){height:152px}[data-page=monitor] .wf-canvas{min-height:104px}[data-page=monitor] #analysis_waterfall{height:104px}[data-page=monitor] .chart-grid{grid-auto-rows:164px}[data-page=monitor] .chart-cell{min-height:164px}[data-page=monitor] .chart-cell svg{height:128px}}
[data-page=monitor] .page-title{display:none}
[data-page=monitor] .wf-panel:not(.collapsed){height:171px}
[data-page=monitor] .wf-canvas{min-height:121px}
[data-page=monitor] #analysis_waterfall{height:121px}
@media(max-height:800px){[data-page=monitor] .wf-panel:not(.collapsed){height:133px}[data-page=monitor] .wf-canvas{min-height:85px}[data-page=monitor] #analysis_waterfall{height:85px}}

/* 报警管理：紧凑筛选、独立表格滚动和上报状态 */
[data-page="alarm"] .search-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
[data-page="alarm"] .search-bar .field label{display:none}
[data-page="alarm"] .search-bar .field{margin:0}
[data-page="alarm"] .card{padding:14px;margin-bottom:12px}
[data-page="alarm"] .alarm-table-scroll{overflow:auto;max-width:100%}
[data-page="alarm"] .tbl{min-width:1250px;width:100%;font-size:14px}
[data-page="alarm"] .tbl th{height:42px;background:#f7f9fa;color:#5f6b73;font-weight:500;white-space:nowrap}
[data-page="alarm"] .tbl td{height:46px;white-space:nowrap;border-bottom:1px solid #e4eaee}
[data-page="alarm"] .tbl tr:nth-child(even){background:#f7faf9}
[data-page="alarm"] .tbl th:last-child,[data-page="alarm"] .tbl td:last-child{position:sticky;right:0;background:#fff;box-shadow:-1px 0 #e4eaee}
[data-page="alarm"] .tbl td:last-child .btn{border:0;background:transparent;color:#177d70;padding:0 6px}
.alarm-status{display:inline-block;padding:3px 8px;border-radius:4px;font-size:12px}
.alarm-status.success,.alarm-status.outline{background:#eaf5f3;color:#177d70}
.alarm-status.outline{border:1px solid #cde6e1}
.alarm-status.pending{background:#fff3dd;color:#9a6416}
.alarm-status.failure{background:#fdebed;color:#c34550}
.alarm-status.info{background:#eaf2fc;color:#3576b4}
.alarm-status.neutral{background:#eef2f5;color:#5f6b73}

[data-page="alarm"] .page-title{display:none}
[data-page="alarm"] .search-bar input{width:176px}
[data-page="alarm"] .search-bar select{width:126px}
.alarm-filter-divider{height:24px;border-left:1px solid #e4eaee;margin:0 2px}
[data-page="alarm"] .card:has(.alarm-table-scroll){padding:0}
[data-page="alarm"] .tbl{min-width:1160px}
[data-page="alarm"] .tbl th,[data-page="alarm"] .tbl td{padding:8px}
[data-page="alarm"] .tbl th:last-child,[data-page="alarm"] .tbl td:last-child{min-width:84px;text-align:center}
[data-page="alarm"] .pager{padding:20px 14px;display:flex;gap:4px;border-top:1px solid #e4eaee}
[data-page="alarm"] .pager>span:first-child{margin-right:auto}
[data-page="alarm"] .pager>label,[data-page="alarm"] #pager_first,[data-page="alarm"] #pager_last,[data-page="alarm"] .pager>span:has(#pager_jmp){display:none}
#alarm_page_numbers{display:flex;align-items:center;gap:4px}

/* Screenshot-aligned navigation: first-level groups and indented children. */
.sidebar{padding:0 8px 16px;background:#eaf0f7;border-right:1px solid #d6e1ed;scrollbar-width:thin;scrollbar-color:#b7c8da transparent}
.sidebar .brand{min-height:64px;padding:12px 14px;gap:12px;color:#172b42;border-bottom:1px solid #d6e1ed;margin:0 -8px 10px}
.sidebar .brand-mark{width:30px;height:30px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:#177d70;font-size:18px;color:#fff;text-align:center}
.sidebar .brand b{font-size:17px;white-space:nowrap}
.sidebar nav a,.sidebar .nav-group-toggle{box-sizing:border-box;width:100%;height:40px;min-height:38px;margin:0;padding:0 12px;display:flex;align-items:center;gap:10px;border:0;border-radius:4px;background:transparent;color:#344f70;font-family:inherit;font-size:14px;line-height:22px;text-align:left;text-decoration:none;cursor:pointer;white-space:nowrap}
.sidebar .nav-group-toggle{font-weight:600;color:#172b42}
.sidebar .nav-icon{width:18px;flex:0 0 18px;text-align:center;font-size:15px;color:#5f81aa}
.sidebar .nav-arrow{margin-left:auto;font-size:16px;transition:transform .15s}
.sidebar .nav-group-toggle[aria-expanded="false"] .nav-arrow{transform:rotate(-90deg)}
.sidebar .nav-children a{padding-left:26px;font-weight:400}
.sidebar .nav-children[hidden]{display:none}
.sidebar .nav-section{margin-top:12px}
.sidebar nav a:hover,.sidebar .nav-group-toggle:hover{background:#dde8f2;color:#172b42}
.sidebar nav a.active{background:#cee8e5;color:#12695f;font-weight:600}
.sidebar nav a.active .nav-icon{color:#177d70}
.sidebar nav a:focus-visible,.sidebar .nav-group-toggle:focus-visible{outline:2px solid #177d70;outline-offset:-2px}
@media(max-width:1023px){.sidebar .nav-label,.sidebar .nav-arrow{display:none}.sidebar .nav-group-toggle,.sidebar .nav-children a{padding:0;justify-content:center}.sidebar .brand{padding:12px 0;justify-content:center}}
@media(max-width:1023px){.sidebar{min-width:64px}}

/* 与 DAS 报警筛选控件的字体、尺寸保持一致 */
[data-page="alarm"]{font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;font-size:14px;line-height:22px}
[data-page="alarm"] .search-bar .btn{font:14px/22px "Microsoft YaHei","PingFang SC",Arial,sans-serif;height:36px;padding:0 16px;border:1px solid #d5dfe5;border-radius:4px;color:#26333c;background:#fff;box-sizing:border-box}
[data-page="alarm"] .search-bar .btn.primary{background:#177d70;border-color:#177d70;color:#fff}
[data-page="alarm"] .search-bar .btn:hover{border-color:#177d70;color:#177d70;background:#eaf5f3}
[data-page="alarm"] .search-bar .btn.primary:hover{background:#1c9483;color:#fff;border-color:#1c9483}
[data-page="alarm"] .search-bar input,[data-page="alarm"] .search-bar select{font:14px/22px "Microsoft YaHei","PingFang SC",Arial,sans-serif;height:34px;padding:4px 10px;border:1px solid #e4eaee;border-radius:4px;background:#fff;color:#26333c;box-sizing:border-box}
[data-page="alarm"] .search-bar input{width:190px}
[data-page="alarm"] .tbl,[data-page="alarm"] .tbl button{font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif}
/* 固定操作列保留表头与隔行底色 */
[data-page="alarm"] .tbl th:last-child{background:#f7f9fa}
[data-page="alarm"] .tbl tbody tr:nth-child(even) td:last-child{background:#f7faf9}

[data-page="alarm"].detail-open>.card{display:none}
.fbg-alarm-detail[hidden]{display:none}
.detail-nav{display:flex;align-items:center;gap:14px;margin-bottom:16px}.detail-nav h1{font-size:20px;margin:0}.detail-nav>span{flex:1}
.detail-card{background:#fff;border:1px solid #e4eaee;border-radius:7px;overflow:hidden;margin-bottom:16px}
.detail-card header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#fafcfd;border-bottom:1px solid #e4eaee;font-size:16px}.detail-card small{font-size:12px;color:#788791}
.detail-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding:22px 16px}.detail-fields>div{display:flex;gap:14px;font-size:14px}.detail-fields label{color:#788791;min-width:64px}
.detail-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(270px,1fr);gap:18px}.detail-evidence{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.detail-waterfall{display:block;width:calc(100% - 24px);height:200px;margin:12px}.detail-wave{padding:12px;height:224px}.detail-wave svg{width:100%;height:200px}
.detail-media{height:240px;background:#f3f6f8;margin:12px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:#788791}
.detail-timeline ol{padding:12px 16px;list-style:none}.detail-timeline li{display:flex;gap:14px;align-items:center;min-height:46px;font-size:14px}.detail-timeline time{font-size:12px;color:#788791}.detail-timeline i{width:10px;height:10px;border-radius:50%;background:#177d70;flex-shrink:0}
@media(max-width:1100px){.detail-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-layout{grid-template-columns:1fr}.detail-timeline ol{display:grid;grid-template-columns:repeat(2,1fr)}}

.detail-timeline li{position:relative;align-items:flex-start;min-height:48px;padding-top:8px}
.timeline-marker{position:relative;display:flex;align-items:center;flex-direction:column;width:28px;flex-shrink:0;gap:4px;padding-top:5px}
.timeline-marker small{font-size:11px;color:#177d70;line-height:16px;background:#fff;z-index:1}
.timeline-marker:after{content:"";position:absolute;top:15px;bottom:-16px;left:13px;border-left:1px solid #d9e7e3}
.detail-timeline li:last-child .timeline-marker:after{display:none}
/* FBG 基本信息固定为两行，每行六项；窄屏在信息区内滚动 */
.detail-fields{grid-template-columns:repeat(6,minmax(0,1fr));gap:18px 12px;overflow-x:auto}
.detail-fields>div{gap:8px;white-space:nowrap;font-size:13px}
.detail-fields label{min-width:52px;font-size:12px;text-align:right}
@media(max-width:1400px){.detail-fields{grid-template-columns:repeat(6,minmax(170px,1fr))}}

.detail-media.detail-photo,.detail-media.detail-playback{position:relative;overflow:hidden;padding:0;border:0;width:calc(100% - 24px);height:280px;display:block;border-radius:4px}
.detail-media img{width:100%;height:100%;object-fit:cover;display:block}.detail-photo{cursor:zoom-in}
.media-caption{position:absolute;bottom:0;left:0;right:0;padding:6px 12px;background:rgba(0,0,0,.6);color:white;font-size:12px;text-align:left}.playback-time{float:right}
.play-alarm{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;border:2px solid white;border-radius:50%;background:#177d70;color:white;font-size:20px;cursor:pointer}
.detail-playback.playing img{animation:alarm-pan 6s linear forwards}@keyframes alarm-pan{from{transform:scale(1)}to{transform:scale(1.12) translateX(-8px)}}
.alarm-photo-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:9999;display:flex;align-items:center;justify-content:center}.alarm-photo-lightbox img{max-width:90vw;max-height:85vh}.alarm-photo-lightbox button{position:absolute;right:24px;top:24px}
/* Compact alarm detail fits the desktop viewport while preserving readable text. */
[data-page="alarm"].detail-open{padding:12px 24px 16px}
.fbg-alarm-detail .detail-nav{gap:10px;margin-bottom:8px}
.fbg-alarm-detail .detail-card{margin-bottom:0}
.fbg-alarm-detail>.detail-card{margin-bottom:10px}
.fbg-alarm-detail .detail-card header{padding:8px 12px;min-height:40px;box-sizing:border-box}
.fbg-alarm-detail .detail-fields{padding:12px;gap:10px 12px}
.fbg-alarm-detail .detail-layout{grid-template-columns:minmax(0,3fr) minmax(220px,1fr);gap:10px}
.fbg-alarm-detail .detail-evidence{gap:10px;grid-template-rows:repeat(2,minmax(0,1fr))}
.fbg-alarm-detail .detail-waterfall{margin:8px;width:calc(100% - 16px);height:clamp(140px,calc((100vh - 340px)/2),240px)}
.fbg-alarm-detail .detail-wave{padding:8px;height:clamp(156px,calc((100vh - 308px)/2),256px);box-sizing:border-box}
.fbg-alarm-detail .detail-wave svg{height:100%}
.fbg-alarm-detail .detail-media.detail-photo,.fbg-alarm-detail .detail-media.detail-playback{margin:8px;width:calc(100% - 16px);height:clamp(140px,calc((100vh - 340px)/2),240px)}
.fbg-alarm-detail .detail-timeline ol{display:block;padding:8px 12px;margin:0}
.fbg-alarm-detail .detail-timeline li{min-height:40px;padding-top:4px;gap:8px;font-size:13px}
.fbg-alarm-detail .timeline-marker:after{bottom:-12px}
@media(max-width:1100px){[data-page="alarm"].detail-open{padding:10px 12px 12px}.fbg-alarm-detail .detail-layout{grid-template-columns:minmax(0,1fr) 220px}.fbg-alarm-detail .detail-card header{padding:6px 8px;font-size:14px;gap:6px}.fbg-alarm-detail .detail-card header small{font-size:12px}.fbg-alarm-detail .detail-nav h1{font-size:18px}.fbg-alarm-detail .detail-timeline ol{padding:8px}.fbg-alarm-detail .detail-timeline li{gap:4px;font-size:13px}.fbg-alarm-detail .detail-timeline time{font-size:11px}}
@media(max-width:1100px){.fbg-alarm-detail .detail-waterfall,.fbg-alarm-detail .detail-media.detail-photo,.fbg-alarm-detail .detail-media.detail-playback{height:clamp(130px,calc((100vh - 420px)/2),200px)}.fbg-alarm-detail .detail-wave{height:clamp(146px,calc((100vh - 388px)/2),216px)}}
[data-page="auth"] .page-title{display:none}
.registration-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.registration-card{background:#fff;border:1px solid #e4eaee;border-radius:7px;overflow:hidden;min-width:0;box-shadow:0 2px 10px rgba(27,53,68,.06)}
.registration-card h3{margin:0;padding:10px 16px;background:#fafcfd;border-bottom:1px solid #e4eaee;font-size:16px;line-height:24px}
.registration-body{padding:16px}
.registration-body .form-item{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin-bottom:12px}
.registration-body .form-item label{font-size:12px;color:#788791}
.registration-body input:not([type=radio]){width:100%;height:32px;box-sizing:border-box}
.registration-body input[readonly]{background:#eef2f4;color:#65747d;font-weight:600}
.registration-body small,.registration-hint{font-size:12px;color:#788791}
.registration-actions{display:flex;justify-content:flex-end;margin-top:12px}
.registration-status{padding:6px 0 20px;text-align:center;color:#177d70;font-size:20px;font-weight:600;border-bottom:1px solid #e4eaee}
.registration-license{display:grid;grid-template-columns:88px 1fr;gap:14px 12px;margin:20px 0 24px;font-size:14px}
.registration-license dt{color:#788791}.registration-license dd{margin:0;overflow-wrap:anywhere}
.registration-modes{display:flex;gap:24px;margin-bottom:20px;font-size:14px}.registration-modes input{accent-color:#177d70}
.registration-body h4{font-size:14px;margin:16px 0 6px}.registration-body p{line-height:22px;margin:6px 0 12px;font-size:14px}.registration-body p.registration-hint{font-size:12px}
.registration-card .tbl{white-space:nowrap;font-size:13px}.registration-card .tbl th,.registration-card .tbl td{padding:10px 12px}
@media(max-width:1100px){.registration-body{padding:12px}.registration-license{grid-template-columns:70px 1fr;gap:12px 8px}.registration-grid{gap:10px}}

.registration-license{align-items:center}
.registration-license dd{display:flex;align-items:center;gap:8px;min-height:22px}

#network_operation[hidden]{display:none}
#network_operation .registration-modes{margin:12px 0 6px}

.registration-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;margin-bottom:16px;border:1px solid #e7a13b;border-radius:4px;background:#fff2d8;color:#9a6416;font-size:14px}
.registration-banner.normal{background:#e3f3f0;border-color:#177d70;color:#12695f}
#network_operation{border-top:1px solid #e4eaee;margin-top:20px;padding-top:4px}
#network_operation .registration-modes{margin:14px 0 18px}
#network_operation p{margin-bottom:10px}

.device-config-page .card>h3{background:#fafcfd;padding:10px 16px;margin:-16px -16px 14px;border-bottom:1px solid #e4eaee;font-size:16px}
.device-config-page .device-connection{border:0;box-shadow:none;margin:12px 0 0;padding:12px 0 0;border-top:1px solid #e4eaee}
.device-config-page .device-connection>h3{background:transparent;margin:0 0 12px;padding:0;border:0;font-size:14px}
.device-file-row{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}.device-file-row .form-item{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:220px}.device-file-example{flex:1;min-width:240px;background:#f3f6f8;border:1px solid #e4eaee;border-radius:4px;padding:8px 12px;font-size:12px}.device-file-example code{margin-left:12px}
.device-config-page .device-ipc .form-grid{grid-template-columns:repeat(2,minmax(0,320px))}
.device-config-page .device-ipc .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.device-config-page .form-item{min-width:0}.device-config-page .form-item input{min-width:0;max-width:100%}.device-config-page [data-panel="dev-list"]>.card:last-child>div[style*="grid"]{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))!important}

.device-channel-top{display:flex;align-items:center;gap:20px;margin-bottom:14px}.device-channel-top .hint{font-size:14px;color:#788791}
.device-channel-card #ch_grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.device-channel-card .channel-item{display:flex;align-items:center;gap:8px;padding:12px;background:#f7f9fa;border-radius:4px;min-width:0;flex-wrap:wrap}
.device-channel-card .channel-item>label:first-child{font-size:14px;font-weight:600;white-space:nowrap;margin:0}
.device-channel-card .channel-item input.n{width:58px;height:32px;padding:0 8px;min-width:0}
.device-channel-card .channel-item select{height:32px;padding:0 6px;min-width:0;width:96px}
.device-channel-card .channel-item>label:last-child{display:flex;align-items:center;gap:4px;white-space:nowrap;font-size:14px;margin:0}
.device-channel-card .channel-item input[type="checkbox"]{width:16px;height:16px;accent-color:#177d70}
.device-channel-card .channel-item.off{color:#aab5bc;background:#fafbfc}.device-channel-card .channel-item :disabled{background:#f3f6f8;color:#aab5bc;cursor:not-allowed}
@media(max-width:1439px){.device-channel-card #ch_grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.device-ipc .form-item[hidden]{display:none}
.device-ipc #device_print_log_level{width:100%;height:32px}

.device-config-page .device-ipc .form-grid{grid-template-columns:repeat(2,minmax(0,320px));gap:24px}
.device-ipc .form-item{display:flex;flex-direction:column;align-items:stretch;gap:6px}
.device-ipc .form-item label{font-size:12px;color:#788791;min-width:0}
.device-ipc .form-item input,.device-ipc .form-item select{height:32px;width:100%;box-sizing:border-box}
.device-ipc #dev_pcip_input{background:#fff;color:#26333c;pointer-events:auto}
.ipc-readonly-note{display:inline-block;background:#eef2f4;font-size:11px;padding:1px 5px;margin-left:6px;border-radius:3px}
.device-ipc .form-item>label{width:auto;display:flex;align-items:center;gap:4px;white-space:nowrap;line-height:20px;flex:0 0 auto}.device-ipc .form-item input,.device-ipc .form-item select{flex:0 0 32px;min-height:32px}.device-ipc .ipc-readonly-note{margin-left:4px;line-height:18px;padding:0 5px}
.device-config-page .card[hidden]{display:none}
.device-host-scroll{overflow-x:auto;max-width:100%}
.device-host-table{min-width:1100px;white-space:nowrap}
.device-host-table th:last-child,.device-host-table td:last-child{position:sticky;right:0;background:#fff;box-shadow:-1px 0 #e4eaee}
.device-host-table th:last-child{background:#f3f6f8}
.device-host-table #dev_ip_input{width:156px;height:32px;box-sizing:border-box}
.device-spectrum-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:14px}
.device-spectrum-actions{display:flex;gap:8px;margin-left:auto}
.device-host-table input:focus,.device-host-table select:focus{outline:0;border-color:#177d70;box-shadow:0 0 0 2px rgba(23,125,112,.1)}
.device-host-form{display:grid;grid-template-columns:repeat(2,minmax(0,320px));gap:16px 24px}
.device-host-form .form-item{display:flex;flex-direction:column;align-items:stretch;gap:6px}
.device-host-form label{font-size:12px;color:#788791;min-width:0;width:auto;line-height:20px}
.device-host-form input,.device-host-form select{width:100%;max-width:100%;height:32px;box-sizing:border-box;font-size:14px}
.device-host-form input[readonly]{background:#eef2f4;color:#65747d;cursor:default}
.device-host-actions{display:flex;justify-content:flex-end;margin-top:16px}
.device-config-page table[hidden]{display:none}
.device-host-form input:focus,.device-host-form select:focus{outline:0;border-color:#177d70;box-shadow:0 0 0 2px rgba(23,125,112,.1)}
.device-host-form{grid-template-columns:repeat(4,minmax(0,320px));gap:24px}
.device-host-form input,.device-host-form select{min-width:0;height:32px;min-height:32px}
.device-channel-top .form-item{display:flex;align-items:center;gap:12px}
.device-channel-top .form-item label{min-width:0;width:auto;margin:0;flex:0 0 auto}
.device-channel-top #dev_chcfg_sel{margin:0;width:86px;height:32px}
.device-channel-card #ch_grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.device-channel-card .channel-item{gap:6px;padding:10px 8px}
.device-channel-card .channel-item input.n{width:44px;padding:0 6px}
.device-channel-card .channel-item select{width:80px;padding:0 4px}
.device-channel-card .channel-item.off{opacity:1;color:#26333c;background:#f7f9fa}
.device-channel-card .channel-item.off input.n{background:#fff;color:#26333c}
.device-channel-card .channel-item.off>label:last-child{color:#aab5bc}
@media(max-width:1439px){.device-channel-card #ch_grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
[data-page="device"]>.page-title{display:none}
.device-channel-card .channel-item select{flex:1 1 72px;width:auto;min-width:72px}
.device-channel-card .channel-item>label,.device-channel-card .channel-item input.n{flex-shrink:0}
.device-config-page .device-ipc .form-grid{grid-template-columns:repeat(3,minmax(0,320px));gap:24px}
.capture-example-hint{color:#788791;cursor:help;font-size:13px}
.capture-example-hint{position:relative;display:inline-block;margin-left:4px}
.capture-example-hint::after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:#26333c;color:#fff;padding:8px 12px;border-radius:4px;font-size:12px;line-height:20px;white-space:nowrap;box-shadow:0 2px 10px rgba(27,53,68,.15);z-index:20;pointer-events:none;opacity:0;visibility:hidden}
.capture-example-hint:hover::after,.capture-example-hint:focus-visible::after{opacity:1;visibility:visible}
.device-config-page .device-ipc .form-grid{grid-template-columns:repeat(3,minmax(0,320px))!important}
.peak-threshold-description{font-size:12px;font-weight:400;color:#788791;line-height:20px;margin-left:8px}
.device-save-footer{display:flex;justify-content:flex-end;padding:0 0 8px;margin-top:16px}
.device-config-page [data-panel="dev-list"]>.card input[aria-label*="寻峰阈值"]{min-width:0}.device-config-page [data-panel="dev-list"]>.card div[hidden]{display:none!important}
.device-spectrum-link{margin-left:auto;align-self:center;font-size:14px;color:#177d70;text-decoration:none}
[data-page="device"]>.tabs{margin-bottom:16px}
[data-page="device"]>.page-title{display:none}
[data-panel="dev-threshold"] .card>h3{font-size:16px}
[data-panel="dev-threshold"] div[hidden]{display:none!important}
.threshold-workspace{display:grid;grid-template-columns:208px minmax(0,1fr);gap:16px;align-items:start}
.threshold-workspace .card{min-width:0;margin:0}
.threshold-tree{max-height:calc(100vh - 180px);overflow:auto}
.threshold-tree h3{margin:0 0 12px;font-size:16px}
.threshold-tree details summary{display:flex;align-items:center;cursor:pointer;list-style:none}
.threshold-tree summary:before{content:'▾';font-size:12px;color:#788791}
.tree-node{border:0;background:transparent;border-radius:4px;padding:8px;text-align:left;font-size:14px;color:#26333c;width:100%;cursor:pointer}
.tree-node:hover{background:#f3f6f8}.tree-node.active{background:#eaf5f3;color:#177d70;font-weight:600}.tree-node:focus-visible{outline:2px solid #177d70}
.tree-node small{font-size:12px;color:#788791}.tree-indexes{padding-left:20px}
.tree-channel-button{display:flex;align-items:center;gap:4px}
.tree-arrow{width:10px;flex:none;font-size:12px;color:#788791}
.tree-index{display:flex;align-items:center;justify-content:space-between;gap:8px;white-space:nowrap}
.threshold-tree .tree-indexes{padding-left:12px}
.threshold-list .toolbar{display:flex;gap:8px;flex-wrap:wrap}.threshold-list .hint{font-size:12px;color:#788791}
.threshold-table{min-width:900px;white-space:nowrap}.threshold-table input[type=number]{width:100px}
.threshold-table th:last-child,.threshold-table td:last-child{position:sticky;right:0;background:#fff;box-shadow:-1px 0 #e4eaee}.threshold-table th:last-child{background:#f3f6f8}
.threshold-total{margin-top:12px;font-size:12px;color:#788791}.threshold-empty{text-align:center;padding:28px!important}
.threshold-channel-children{padding-left:20px}
[data-page="config"]>.toolbar[hidden],[data-page="config"]>.card[hidden]{display:none!important}
[data-page="config"] .form-item>label:not(.switch){width:6em!important;max-width:6em!important;flex:0 0 6em!important;white-space:normal;overflow-wrap:anywhere;line-height:20px}
[data-page="config"] .form-item{gap:12px;align-items:center}
[data-page="config"] .form-item>label:not(.switch){text-align:right}
[data-page="config"] .form-item>input:not([type=checkbox]),[data-page="config"] .form-item>select{padding-left:14px!important;padding-right:14px!important;box-sizing:border-box;min-width:0}
.camera-layout .source-bar,.camera-layout .book-switch{display:none!important}
.camera-mapping-table{min-width:1000px;white-space:nowrap}
.camera-mapping-table input[type=number]{width:100px}
.camera-mapping-table td:nth-child(5) select{width:240px}
.camera-presets{min-width:180px;position:relative}
.camera-presets summary{padding:6px 10px;border:1px solid #d8e1e6;border-radius:4px;cursor:pointer}
.camera-presets>div{position:absolute;z-index:10;background:white;border:1px solid #e4eaee;padding:8px;width:100%;box-shadow:0 2px 10px #1b354410}
.camera-presets label{display:flex;align-items:center;gap:8px;padding:4px}
.camera-add{margin-top:16px}.camera-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
#threshold_bulk:not(:disabled){background:#177d70!important;border-color:#177d70!important;color:#fff!important}
#threshold_bulk:not(:disabled):hover{background:#1c9483!important;border-color:#1c9483!important}
.threshold-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.threshold-pagination>span:first-child{margin-right:auto}
/* 表格操作统一为“查看”式文字按钮。 */
.content table td button.btn,.content table td a.btn{
 background:transparent!important;border:0!important;box-shadow:none!important;
 color:#177d70!important;padding:0 8px!important;height:auto!important;
 min-height:28px;border-radius:0!important;font-size:13px!important;
}
.content table td button.btn:hover,.content table td a.btn:hover{color:#1c9483!important;text-decoration:underline}
.content table td button.btn:focus-visible,.content table td a.btn:focus-visible{outline:2px solid #177d70;outline-offset:2px}
.content table td button.btn:disabled{color:#aab5bc!important;cursor:not-allowed;text-decoration:none}
.threshold-bulk-modal{width:480px;max-width:calc(100vw - 32px)}.threshold-bulk-modal .modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:16px;border-top:1px solid #e4eaee}
@media(max-width:1100px){.threshold-workspace{grid-template-columns:208px minmax(0,1fr);gap:12px}}

[data-page="config"] .alarm-settings .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px}[data-page="config"] .alarm-settings .form-item{display:flex;flex-direction:column;align-items:stretch;gap:6px}[data-page="config"] .alarm-settings .form-item>label:not(.switch){width:auto!important;max-width:none!important;flex:0 0 auto!important;text-align:left;font-size:14px}[data-page="config"] .alarm-settings .form-item>input{width:100%}
[data-page="config"] .alarm-settings .form-item>input{flex:none;height:32px!important}
/* Screenshot reference: compact centered product login. */
#login_layer{display:flex;flex-direction:column;background:#f3f6f8;color:#26333c;overflow:auto}
#login_layer .login-brand{flex:0 0 64px;width:100%;height:64px;min-height:64px;box-sizing:border-box;padding:0 32px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;background:#17242e;border-bottom:3px solid #177d70;color:#fff}
#login_layer .login-brand-identity{display:flex;align-items:center;gap:10px}
#login_layer .login-logo{width:30px;height:30px;display:grid;place-items:center;background:#177d70;border-radius:4px;font-size:21px}
#login_layer .login-brand-name{font-size:16px;font-weight:600;letter-spacing:0}
#login_layer .login-brand-slogan{font-size:12px;line-height:20px;margin:0;letter-spacing:0;color:#c0cbd3;opacity:1}
#login_layer .login-main{flex:1;display:flex;justify-content:center;align-items:center;padding:32px 24px 72px;min-height:0}
#login_layer .login-form{flex:none;width:420px;max-width:100%;box-sizing:border-box;padding:28px 32px;background:#fff;border:1px solid #e4eaee;border-radius:7px;box-shadow:0 2px 10px rgba(27,53,68,.06);display:flex;flex-direction:column;justify-content:flex-start}
#login_layer .login-eyebrow{font-size:12px;line-height:20px;color:#177d70;font-weight:600;margin-bottom:4px}
#login_layer .login-form h2{font-size:20px;line-height:28px;font-weight:600;color:#26333c;margin:0 0 6px}
#login_layer .login-description{font-size:14px;line-height:22px;color:#5f6b73;margin:0 0 20px}
#login_layer .login-form>label{font-size:14px;line-height:22px;color:#5f6b73;margin-bottom:4px}
#login_layer .login-form>input{flex:none;width:100%;max-width:none;height:32px!important;box-sizing:border-box;margin:0 0 12px;border-color:#e4eaee!important}
#login_layer .login-form>input:focus{outline:none;border-color:#177d70!important;box-shadow:0 0 0 2px rgba(23,125,112,.10)}
#login_layer .login-tip{font-size:12px;line-height:20px;color:#788791;margin:0 0 14px}
#login_layer #login_btn{width:100%;height:36px;font-size:14px;border-radius:4px;margin:0}
#login_layer #login_err{color:#a43e3b;background:#fde9e8;border-radius:4px;font-size:12px;line-height:20px;padding:6px 10px;margin:0 0 12px}
#login_layer .login-footer{flex:0 0 32px;text-align:center;font-size:12px;line-height:20px;color:#788791;padding:0 16px 12px}
@media(max-width:600px){#login_layer .login-brand{padding:0 16px}#login_layer .login-brand-name{font-size:14px}#login_layer .login-main{padding:24px 16px}#login_layer .login-form{padding:24px}}
[data-page="config"] .alarm-settings .form-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}@media(max-width:1200px){[data-page="config"] .alarm-settings .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(max-width:700px){[data-page="config"] .alarm-settings .form-grid{grid-template-columns:1fr!important}}
/* Reporting configuration reference surface; keep existing business fields. */
#main_content:has(>[data-page="config"].active){background:#f3f6f8}
#main_content>[data-page="config"]{margin:24px;padding:14px;background:#fff;border:1px solid #e4eaee;border-radius:7px;box-shadow:0 2px 10px rgba(27,53,68,.06)}
#main_content>[data-page="config"]>.card{background:#f7f9fa;border:1px solid #e1e8ee;border-radius:7px;box-shadow:none;padding:14px 12px;margin:0 0 10px}
#main_content>[data-page="config"]>.card>h3{border:0;padding:0;margin:0 0 12px;font-size:14px;line-height:22px;color:#26333c}
#main_content>[data-page="config"] .form-grid{gap:12px 8px}
#main_content>[data-page="config"] .form-item{display:flex;flex-direction:column;align-items:stretch;gap:4px;position:relative}
#main_content>[data-page="config"] .form-item>label:not(.switch){width:auto!important;max-width:none!important;flex:0 0 auto!important;text-align:left;white-space:normal;font-size:12px;line-height:20px}
#main_content>[data-page="config"] .form-item>input:not([type=checkbox]),#main_content>[data-page="config"] .form-item>select{flex:none;width:100%;min-width:0;padding:0 10px!important;background:#fff;border-color:#dce5ec!important}
#main_content>[data-page="config"] .form-item>label.switch{align-self:flex-start;margin:4px 0;height:22px}
#main_content>[data-page="config"] .form-item:has(#mqtt_pwd_input){padding-right:58px}
#main_content>[data-page="config"] #mqtt_pwd_btn{position:absolute;right:0;bottom:0;margin:0!important;height:32px}
#main_content>[data-page="config"] .form-item>label:has(input[type=checkbox]):not(.switch){display:flex;gap:6px;align-items:center;min-height:32px}
#main_content>[data-page="config"]>.toolbar{min-height:20px;margin:0 0 10px}
#main_content>[data-page="config"]>.device-save-footer{border:0;margin:12px 0 0;padding:0;display:flex;justify-content:flex-end;background:#fff}
@media(max-width:1100px){#main_content>[data-page="config"]{margin:16px}}
#main_content>[data-page="config"] .form-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}@media(max-width:1200px){#main_content>[data-page="config"] .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(max-width:700px){#main_content>[data-page="config"] .form-grid{grid-template-columns:1fr!important}}
body:has([data-page="config"].active) .topbar #page_crumb{font-size:16px;line-height:24px;font-weight:600;color:#26333c}
#main_content>[data-page="config"] .form-item[hidden]{display:none!important}
#main_content>[data-page="config"] .frequency-input{display:flex;align-items:stretch;width:100%;min-width:0}
#main_content>[data-page="config"] .frequency-input input{flex:1;width:0;min-width:0;box-sizing:border-box;border-radius:4px 0 0 4px!important;background:#fff}
#main_content>[data-page="config"] .frequency-input span{flex:0 0 44px;height:32px;box-sizing:border-box;display:grid;place-items:center;color:#788791;font-size:12px;background:#f3f6f8;border:1px solid #d8e1e6;border-left:0;border-radius:0 4px 4px 0}
#main_content>[data-page="config"] .form-item>label.switch{width:50px!important;max-width:50px!important;flex:none!important}
#main_content>[data-page="config"] .waterfall-toggle-row{display:flex;align-items:center;gap:8px;font-size:14px;line-height:22px;color:#5f6b73}
#main_content>[data-page="config"] .waterfall-toggle-row>label:first-child{color:#26333c;margin-right:16px}
#main_content>[data-page="config"] .waterfall-toggle-row .switch{width:34px;height:18px;flex:0 0 34px;margin:0}
#main_content>[data-page="config"] .waterfall-toggle-row .slider{width:34px;height:18px;border-radius:10px}
#main_content>[data-page="config"] .waterfall-toggle-row .slider:before{width:14px;height:14px;left:2px;bottom:2px}
#main_content>[data-page="config"] .waterfall-toggle-row input:checked+.slider:before{transform:translateX(16px)}
#main_content>[data-page="config"] .waterfall-push-note{font-size:12px;line-height:20px;color:#788791;margin:10px 0 0}
#main_content>[data-page="config"] .form-item>input:disabled,#main_content>[data-page="config"] .form-item>select:disabled{background:#eef2f4!important;color:#788791!important;cursor:not-allowed;border-color:#dce3e7!important;opacity:1}
#main_content>[data-page="config"] .waterfall-toggle-row{flex-wrap:wrap}#main_content>[data-page="config"] .waterfall-port-field{display:flex;align-items:center;gap:8px;margin-left:24px}#main_content>[data-page="config"] .waterfall-port-field input{width:160px;box-sizing:border-box}
#main_content>[data-page="config"] .waterfall-control{display:flex;align-items:center;gap:8px;min-height:32px;color:#5f6b73;font-size:14px}#main_content>[data-page="config"] .waterfall-control .switch{width:50px;height:22px;flex:0 0 50px;margin:0}#main_content>[data-page="config"] .waterfall-control .slider{width:50px;height:22px;border-radius:11px}#main_content>[data-page="config"] .waterfall-control .slider:before{width:18px;height:18px;left:2px;bottom:2px}#main_content>[data-page="config"] .waterfall-control input:checked+.slider:before{transform:translateX(28px)}
#main_content>[data-page="config"] .waterfall-push-hint::after{left:0;transform:none;white-space:normal;width:340px;max-width:calc(100vw - 280px);box-sizing:border-box}
#main_content>[data-page="config"]{margin-top:12px}
#main_content>[data-page="config"] .switch .slider{width:50px!important;height:22px!important;border-radius:11px!important}#main_content>[data-page="config"] .switch .slider:before{width:18px!important;height:18px!important;left:2px!important;bottom:2px!important;transform:translateX(0)!important}#main_content>[data-page="config"] .switch input:checked+.slider:before{transform:translateX(28px)!important}
[data-panel="dev-specq"] .form-grid:has(#specq_check_switch){display:none}
[data-panel="dev-specq"] .spectrum-check-fields{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:16px!important;margin-top:0!important}
[data-panel="dev-specq"] .spectrum-check-fields .form-item{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0}
[data-panel="dev-specq"] .spectrum-check-fields .form-item>label{width:auto;flex:none;line-height:20px}
[data-panel="dev-specq"] .spectrum-check-fields .form-item>input{width:100%;flex:none;box-sizing:border-box;min-width:0}
[data-panel="dev-specq"] .spectrum-check-fields .range-input{flex:none;width:100%;min-width:0;height:32px}
@media(max-width:1200px){[data-panel="dev-specq"] .spectrum-check-fields{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
#spec_modal .modal-box{width:1200px!important;max-width:calc(100vw - 48px)!important;display:flex;flex-direction:column;max-height:92vh!important}#spec_modal .modal-body{max-height:none;min-height:0;overflow:auto}#spec_modal .spec-channel-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}#spec_modal .spec-ch-bar{margin:0;flex:1}#spec_modal #spec_svg{width:100%;height:auto;max-height:62vh}#spec_modal .modal-foot{display:flex;justify-content:flex-end;padding:12px 18px;border-top:1px solid #e4eaee;flex-shrink:0}
#cam_modal .cam-modal-close{width:32px;height:32px;min-width:32px;padding:0;border:0;background:transparent;color:#788791;font-size:26px;font-weight:400;line-height:1;box-shadow:none}#cam_modal .cam-modal-close:hover{background:#eef2f4;color:#26333c}
.modal-head .modal-icon-close{width:32px;height:32px;min-width:32px;padding:0;border:0;background:transparent;color:#788791;font-size:26px;font-weight:400;line-height:1;box-shadow:none}.modal-head .modal-icon-close:hover{background:#eef2f4;color:#26333c}

/* Spectrum inspection action and history share one module. */
.spectrum-records-toolbar #specq_run_status{min-width:0;overflow-wrap:anywhere}.spectrum-records-toolbar #specq_clear_btn{background:transparent;border-color:transparent}.spectrum-records-toolbar #specq_clear_btn:hover{border-color:var(--red)}

.spectrum-records-toolbar #specq_clear_btn{margin-left:auto}

[data-page=selfcheck]>.page-title,[data-page=selfcheck]>.notice{display:none}
[data-page=upgrade]>.page-title,[data-page=upgrade]>.notice{display:none}
[data-page=test]>.page-title{display:none}
[data-page=overview]>.page-title{display:none}
[data-page=overview]>.meta-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border-left:3px solid var(--brand);padding:14px 16px}
[data-page=overview]>.meta-strip>div{min-width:0;padding:0 18px;border-right:1px solid var(--border)}
[data-page=overview]>.meta-strip>div:first-child{padding-left:0}
[data-page=overview]>.meta-strip>div:last-child{border-right:0}
[data-page=overview]>.meta-strip span{font-size:12px}
[data-page=overview]>.meta-strip b{font-size:14px;white-space:nowrap}
[data-page=overview]>.meta-strip>div:first-child b{color:var(--brand)}
@media(max-width:1150px){[data-page=overview]>.meta-strip{grid-template-columns:1fr 1.65fr 1fr 1fr 1fr}[data-page=overview]>.meta-strip>div{padding:0 10px}[data-page=overview]>.meta-strip b{font-size:13px}}
[data-page=overview]>.meta-strip{grid-template-columns:repeat(8,minmax(0,1fr));overflow-x:auto}
[data-page=overview]>.meta-strip>div{padding:0 12px}
[data-page=overview]>.meta-strip .overview-online{display:flex;align-items:center;justify-content:center}
[data-page=overview]>.meta-strip .overview-online span{color:#12695f}
@media(max-width:1439px){[data-page=overview]>.meta-strip{grid-template-columns:repeat(8,minmax(145px,1fr))}}
/* Device overview: authorization and current-device metrics. */
[data-page=overview]>.meta-strip .overview-license b{color:var(--brand)}
.overview-device-kpis .kpi strong{font-size:24px;line-height:32px}
.overview-device-kpis .kpi-unit{font-size:14px;font-weight:400}
.overview-device-kpis .kpi-normal{color:#177d70}
.overview-device-kpis .kpi-pending{color:#9a6416}
.overview-device-kpis .kpi-caption{margin-top:8px;font-size:12px;line-height:20px;color:var(--text-3)}
.overview-device-kpis .kpi small{line-height:20px}
.overview-matrix h3,.overview-bottom h3{display:flex;align-items:center;justify-content:space-between;gap:12px}
.overview-bottom h3 a{font-size:12px;font-weight:400}
.matrix-legend{font-size:12px;color:var(--text-3);margin:0 0 12px}
.health-matrix{width:100%;border-collapse:separate;border-spacing:4px;font-size:13px;white-space:nowrap;text-align:center}
.health-matrix th{height:24px;min-width:48px;font-size:12px;color:var(--text-3);font-weight:600}
.health-matrix tbody th{color:var(--text);min-width:72px}
.health-matrix td{height:24px;min-width:48px;border-radius:3px}
.matrix-normal{background:#e3f3f0;color:#177d70}.matrix-error{background:#fde9e8;color:#a43e3b}.matrix-silent{background:#eef2f4;color:#65747d}.matrix-unconfigured{color:#aab5bc}
.overview-bottom{display:grid;grid-template-columns:1fr 1fr;gap:16px;min-width:0}
.overview-bottom>.card{min-width:0;margin-bottom:0}
.overview-bottom .tbl{white-space:nowrap}
.overview-bottom .tbl th,.overview-bottom .tbl td{padding:12px 10px}
.overview-bottom .tbl th:last-child,.overview-bottom .tbl td:last-child{position:sticky;right:0;background:#fff}
.overview-bottom .tbl th:last-child{background:#f3f6f8}
@media(max-width:1150px){.overview-bottom{grid-template-columns:1fr}}
.channel-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px}
.channel-health-panel{min-width:0;padding:8px 0;border-bottom:1px solid var(--border)}
.channel-health-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:14px}
.channel-health-title>span{font-size:12px;color:var(--text-3)}
.channel-index-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px}
.index-health-cell{min-width:0;padding:6px 2px;text-align:center;border-radius:4px}
.index-health-label{display:block;font-size:12px;line-height:18px}
.index-health-label>span{margin-left:2px}
.index-health-cell>b{display:block;font-family:Consolas,monospace;font-size:12px;line-height:20px;font-weight:500;white-space:nowrap}
@media(max-width:1550px){.channel-index-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:800px){.channel-health-grid{grid-template-columns:1fr}}
/* Compact channel labels beside index values. */
.channel-health-panel{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:8px;padding:6px 0}
.channel-health-title{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;margin:0}
.channel-health-title>span{font-size:12px;line-height:18px}
.channel-health-title> b{white-space:nowrap}
.channel-health-grid{gap:4px 20px}
.channel-index-grid{grid-template-columns:repeat(10,minmax(60px,1fr));overflow-x:auto;padding-bottom:4px}
.channel-health-title>span{font-size:12px;line-height:18px;white-space:nowrap}
.channel-health-title>span{max-width:76px;white-space:normal}
.channel-health-header{display:grid;grid-template-columns:76px minmax(0,1fr);gap:8px;align-items:center;color:var(--text-3);font-size:12px;min-width:0}
.channel-index-header{display:grid;grid-template-columns:repeat(10,minmax(60px,1fr));gap:4px;overflow-x:auto;text-align:center;scrollbar-width:none}
.channel-index-header::-webkit-scrollbar{display:none}
.index-health-label:has(>span:empty){display:none}
@media(max-width:800px){.channel-health-header:nth-child(2){display:none}}
.index-health-cell{min-height:44px;display:flex;flex-direction:column;justify-content:center}
.overview-alarm-trend svg{width:100%;height:270px;display:block}[data-page=services] .tbl{white-space:nowrap}[data-page=services] .tbl td:last-child,[data-page=services] .tbl th:last-child{position:sticky;right:0;background:#fff}
.overview-bottom{margin-bottom:16px}.matrix-summary{text-align:center;margin:16px 0 0;line-height:22px}.matrix-summary .normal{color:#177d70}.matrix-summary .error{color:#a43e3b}
.index-health-cell{border:0;cursor:pointer;font-family:inherit}.index-health-cell:hover{outline:1px solid #788791;outline-offset:-1px}.index-health-cell:focus-visible{outline:2px solid #177d70;outline-offset:1px}
.overview-alarm-trend h3 select{height:32px;font-size:14px;min-width:100px}
.report-success-stat{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-3)}.report-success-stat>span:first-child{font-size:14px;color:var(--text)}.report-success-stat b{font-size:20px;color:#177d70;margin-left:8px}
.overview-alarm-trend svg{height:220px}
.index-history-dialog{position:fixed;inset:0;margin:auto;width:min(880px,92vw);max-height:90vh;padding:0;border:1px solid var(--border);border-radius:8px;color:var(--text);box-shadow:0 16px 40px rgba(23,36,46,.18)}.index-history-dialog::backdrop{background:rgba(17,27,34,.45)}
#index_history_dialog .tbl th,#index_history_dialog .tbl th:last-child{background:#f4f7f9}
#index_history_dialog .tbl th:last-child,#index_history_dialog .tbl td:last-child{position:static}
.index-history-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--border);background:#fff;font-size:14px}
.index-history-pagination>span:first-child{margin-right:auto;color:var(--text-2)}
.index-history-context{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:16px 16px 0;font-size:14px;color:var(--text-2)}
.index-history-context b{color:var(--text);font-weight:500}
.index-history-pagination select{height:32px;border:1px solid var(--border);border-radius:4px;padding:0 8px;color:var(--text);background:#fff;font-size:14px}
.index-history-pagination .btn:disabled{color:var(--text-3);background:var(--bg);border-color:var(--border);opacity:.65}
.index-history-heading{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid var(--border);gap:12px}.index-history-heading h3{margin:0;font-size:16px}.index-history-body{padding:16px;max-height:65vh;overflow:auto}.index-history-body>p{margin:0 0 12px;font-size:14px}.index-history-body .tbl{white-space:nowrap}
.report-success-stat{align-items:center;text-align:center}
#overview_trend_chart svg{width:100%;height:220px}
.channel-health-panel,.channel-health-header{grid-template-columns:60px minmax(0,1fr);gap:4px}
.channel-health-title>span{max-width:60px;white-space:nowrap}
#overview_trend_chart svg{height:240px}#overview_trend_chart svg text{font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;font-size:12px;font-weight:400}
[data-page=overview]{padding-top:16px}
[data-page=overview]>.meta-strip{margin-bottom:12px}
[data-page=overview]>.overview-bottom{margin-bottom:12px}
.sidebar .nav-arrow{display:block;flex:0 0 6px;width:6px;height:6px;box-sizing:border-box;font-size:0;line-height:0;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);margin-right:3px}
.sidebar .nav-group-toggle[aria-expanded="false"] .nav-arrow{transform:rotate(-45deg)}
@media(max-width:1023px){.sidebar .nav-arrow{display:none}}
/* Slightly denser overview alarm cards. */
[data-page=overview]>.overview-bottom>.card{padding:12px 16px}
[data-page=overview]>.overview-bottom h3{height:42px;box-sizing:border-box;padding-bottom:8px;margin-bottom:10px}
[data-page=overview]>.overview-bottom .tbl th,[data-page=overview]>.overview-bottom .tbl td{padding:9px 10px}
[data-page=overview] #overview_trend_chart svg{height:212px}
[data-page=overview] .report-success-stat{gap:4px}
[data-page=services]>.page-title{display:none}
[data-page=services] .tbl th:last-child{background:#f4f7f9}
[data-page=services] .tbl th:last-child{background:#fafafa}
[data-page=logs]>.page-title{display:none}
#main_content [data-page=logs] input[type=datetime-local]{font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;font-size:13px!important;font-weight:400;color:var(--text)}
#main_content [data-page=logs] input[type=datetime-local]::-webkit-datetime-edit{font-family:inherit;font-size:inherit;font-weight:inherit;padding:0}

[data-page=overview] .overview-service-status{display:flex;flex-direction:column;gap:6px;align-items:stretch;justify-content:center}
[data-page=overview] .overview-service-status>div{display:flex;align-items:center;justify-content:center;gap:8px}
[data-page=overview] .overview-service-status>div>span{font-size:12px;white-space:nowrap}
[data-page=overview] .overview-service-status b.tag{font-size:12px;line-height:18px;white-space:nowrap}

[data-page=overview] .overview-version-status{display:flex;align-items:center;gap:8px}
[data-page=overview] .overview-version-status .tag{font-size:12px;font-weight:400;line-height:18px;text-decoration:none}
[data-page=overview]>.meta-strip{grid-template-columns:repeat(7,minmax(0,1fr))}

[data-page=upgrade]>.page-title,[data-page=upgrade]>.notice{display:none}

[data-page=system]:has([data-panel=sys-upgrade].active)>.page-title,[data-panel=sys-upgrade]>.notice{display:none}

#ws_status{display:none!important}

[data-panel=sys-upgrade] .card{padding:16px;margin-bottom:12px;color:#26333c}
[data-panel=sys-upgrade] h3{display:flex;align-items:center;justify-content:space-between;font-size:16px;line-height:24px;margin-bottom:16px;border-color:#e4eaee}
.upgrade-versions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.upgrade-versions>div{border-right:1px solid #e4eaee;padding:0 16px}.upgrade-versions>div:first-child{padding-left:0}.upgrade-versions>div:last-child{border:0}
.upgrade-versions span{display:block;font-size:12px;color:#788791;margin-bottom:8px}.upgrade-versions b{font-size:20px;font-weight:600;line-height:28px}.upgrade-versions>div:first-child b{color:#177d70}
.upgrade-watcher{display:flex;align-items:center;gap:16px;margin-top:16px;padding-top:12px;border-top:1px solid #e4eaee;font-size:12px;color:#5f6b73}
.upgrade-workspace{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:12px}
.upgrade-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:160px;border:1px dashed #aab5bc;border-radius:4px;background:#f3f6f8;cursor:pointer}.upgrade-drop strong{font-size:14px;font-weight:400}.upgrade-drop span{font-size:12px;color:#788791}.upgrade-drop:hover,.upgrade-drop.dragover{border-color:#177d70;background:#eaf5f3}.upgrade-drop:focus-visible{outline:2px solid #177d70;outline-offset:2px}
.upgrade-upload-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:16px;font-size:14px}.upgrade-upload-footer>div{min-width:0;overflow-wrap:anywhere}.upgrade-upload-footer .btn{flex-shrink:0}
#upgrade_progress{width:100%;height:8px;accent-color:#177d70;margin-top:16px}.upgrade-error{color:#dc5b57}
.upgrade-maintenance p{font-size:14px;font-weight:600;margin:0 0 4px}.upgrade-maintenance>span{display:block;font-size:12px;line-height:20px;color:#5f6b73}.upgrade-maintenance>.btn{margin-top:12px}.upgrade-maintenance hr{border:0;border-top:1px solid #e4eaee;margin:16px 0}
.upgrade-record-actions{display:flex;align-items:center;gap:12px}.upgrade-record-actions label{font-size:12px;font-weight:400;color:#5f6b73;display:flex;align-items:center;gap:4px}.upgrade-record-table{overflow-x:auto}.upgrade-record-table .tbl{min-width:650px;white-space:nowrap}.upgrade-empty{text-align:center;color:#788791;padding:28px!important}
@media(max-width:1100px){.upgrade-workspace{grid-template-columns:1fr}.upgrade-maintenance{display:grid;grid-template-columns:1fr auto;column-gap:16px}.upgrade-maintenance h3,.upgrade-maintenance hr{grid-column:1/-1}.upgrade-maintenance>span{grid-column:1}.upgrade-maintenance>.btn{grid-column:2;grid-row:span 2;margin:0;align-self:center}.upgrade-versions{gap:8px}.upgrade-versions>div{padding:0 8px}}
[data-page=test] .test-console{display:none}
[data-page=test] .test-layout{display:grid;grid-template-columns:minmax(0,45fr) minmax(0,55fr);gap:16px;align-items:start}
[data-page=test] .test-layout>.card{min-width:0;padding:16px}
.test-case-filters{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.test-case-filters input{flex:1 1 160px;min-width:120px}.test-case-filters select{flex:1 1 120px;min-width:110px}
.test-table-scroll{overflow-x:auto}.test-table-scroll .tbl{white-space:nowrap;min-width:450px}
#test_log_tbody tr:has(td:nth-child(5)){cursor:pointer}#test_log_tbody tr:has(td:nth-child(5)):hover{background:#eaf5f3}
.test-empty{text-align:center;padding:24px!important;color:#788791}
@media(max-width:1100px){[data-page=test] .test-layout{grid-template-columns:1fr}}

.test-record-heading{display:flex;justify-content:space-between;align-items:center}
.test-record-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.test-record-filters input{width:170px;min-width:150px;font-family:inherit;font-size:13px}.test-record-filters select{min-width:100px}
[data-page=test] .test-case-filters .btn,[data-page=test] .test-record-filters .btn{height:32px}
[data-page=test] .test-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media(max-width:1100px){[data-page=test] .test-layout{grid-template-columns:1fr}}
[data-page=test] .test-record-heading{border-bottom:0}

[data-page=test] .test-layout>.card>.toolbar:first-child{margin:0 0 12px;min-height:24px}
[data-page=test] .test-record-heading{padding:0;margin:0 0 12px;min-height:24px;line-height:24px}
[data-page=test] .test-case-filters,[data-page=test] .test-record-filters{margin:0 0 12px;min-height:32px;align-items:center}
[data-page=test] .test-case-filters>.btn,[data-page=test] .test-record-filters>.btn{width:64px;min-width:64px;flex:0 0 64px;padding:0;font-size:14px;height:32px}

[data-page=test] .test-record-filters{display:grid;grid-template-columns:minmax(130px,1fr) auto minmax(130px,1fr) 90px minmax(100px,1fr) 64px 64px;gap:8px}
[data-page=test] .test-record-filters input,[data-page=test] .test-record-filters select{width:100%;min-width:0;box-sizing:border-box}
@media(min-width:1101px) and (max-width:1700px){[data-page=test] .test-layout{grid-template-columns:minmax(0,42fr) minmax(0,58fr)}}
@media(max-width:1100px){[data-page=test] .test-record-filters{grid-template-columns:minmax(130px,1fr) auto minmax(130px,1fr) 90px minmax(100px,1fr) 64px 64px}}
@media(max-width:900px){[data-page=test] .test-record-filters{display:flex}.test-record-filters #test_log_name{flex:1 1 120px}}
