/* 全局表单控件统一规范。 */
:root{
  --bg:#f4f7fb;--panel:#fff;--panel-soft:#f8fafc;--text:#142236;--muted:#6d7a8c;--line:#e3e9f0;
  --primary:#078bc7;--primary-dark:#056b9c;--primary-soft:#eaf6fc;--nav:#0f2639;--nav2:#173a55;
  --green:#13845c;--green-soft:#eaf8f2;--red:#be3a3a;--red-soft:#fff0f0;--amber:#a96e00;--amber-soft:#fff6df;
  --shadow:0 8px 26px rgba(29,47,70,.07);--shadow-lg:0 18px 54px rgba(15,38,57,.14);--radius:14px;
}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif;color:var(--text);background:var(--bg);font-size:14px;line-height:1.55}a{color:var(--primary-dark);text-decoration:none}a:hover{color:var(--primary)}button,input,select,textarea{font-family:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:248px;background:linear-gradient(180deg,var(--nav),#0b1e2d);color:#fff;position:fixed;left:0;top:0;bottom:0;display:flex;flex-direction:column;z-index:40;box-shadow:10px 0 30px rgba(7,23,35,.08);transition:transform .2s ease}.brand{display:flex;align-items:center;gap:12px}.brand img{width:92px;height:44px;object-fit:contain}.brand b{display:block;font-size:18px;letter-spacing:.2px}.brand span{display:block;font-size:12px;color:#7b8796;margin-top:2px}.brand-side{padding:18px 16px;border-bottom:1px solid rgba(255,255,255,.08);min-height:82px}.brand-side span{color:#9fb2c2}.side-nav{padding:10px 10px 18px;overflow-y:auto;flex:1}.nav-group{margin:8px 0 16px}.nav-group-title{padding:0 12px 6px;color:#6f889b;font-size:11px;letter-spacing:1px}.nav-item{display:flex;gap:11px;align-items:center;color:#c7d4de;padding:10px 12px;border-radius:9px;margin:3px 0;transition:.15s}.nav-item:hover{background:rgba(255,255,255,.055);color:#fff}.nav-item.active{background:linear-gradient(90deg,#167aaa,#17638d);color:#fff;box-shadow:0 8px 20px rgba(4,30,46,.23)}.nav-icon{width:22px;text-align:center;font-size:17px}.nav-label{font-weight:600}.side-user{padding:15px 16px;border-top:1px solid rgba(255,255,255,.08);font-size:13px;background:rgba(0,0,0,.08)}.side-user-name{font-weight:700}.side-user small{color:#98adbd;display:block;margin-top:2px}.side-user a{display:inline-block;color:#8fd4f5;margin-top:8px}.content{margin-left:248px;min-width:0;flex:1}.topbar{height:72px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:25}.topbar-left{display:flex;align-items:center;gap:12px}.topbar h1{font-size:20px;margin:0;line-height:1.25}.top-context{font-size:12px;color:var(--muted);margin-top:3px}.top-actions{display:flex;gap:8px}.page{padding:22px 26px 74px;max-width:1800px;margin:0 auto}.mobile-menu-btn{display:none}.mobile-bottom-nav{display:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:9px;padding:9px 14px;font-weight:650;cursor:pointer;font-size:14px;background:#fff;line-height:1.2;transition:.15s;white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 5px 15px rgba(7,139,199,.2)}.btn-primary:hover{background:var(--primary-dark);color:#fff}.btn-light{border-color:#d9e1e9;color:#2b3d52;background:#fff}.btn-light:hover{border-color:#b8c8d7;background:#fbfdff}.btn-danger{background:var(--red-soft);border-color:#f0caca;color:#a92d2d}.btn-success{background:var(--green-soft);border-color:#c5ead9;color:#0b6c4a}.btn-sm{padding:6px 9px;font-size:12px}.icon-btn{border:0;background:transparent;padding:8px;border-radius:8px;cursor:pointer;font-size:20px}.icon-btn:hover{background:#eef3f7}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:19px;margin-bottom:18px}.panel h2,.panel h3{margin:0 0 14px}.panel h2{font-size:17px}.panel h3{font-size:15px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.panel-head h2{margin:0}.panel-sub{font-size:12px;color:var(--muted);margin-top:3px}.panel-soft{background:var(--panel-soft);box-shadow:none}.grid{display:grid;gap:14px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-2>.panel,.grid-3>.panel,.grid-4>.panel,.grid-5>.panel{min-width:0}.grid-2 .table-wrap,.grid-3 .table-wrap,.grid-4 .table-wrap,.grid-5 .table-wrap{width:100%;min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}.metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.metric{background:#fff;border:1px solid var(--line);border-radius:13px;padding:16px;box-shadow:var(--shadow);position:relative;overflow:hidden}.metric:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#dfe8ef}.metric-blue:before{background:var(--primary)}.metric-green:before{background:var(--green)}.metric-amber:before{background:#d59a25}.metric-red:before{background:var(--red)}.metric-label{color:var(--muted);font-size:12px}.metric-value{font-size:27px;font-weight:800;margin:7px 0 3px;letter-spacing:-.5px}.metric-sub{font-size:12px;color:var(--muted)}.metric-link{display:block;color:inherit}.metric-link:hover{color:inherit;transform:translateY(-1px)}
.pipeline{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px}.pipeline-card{border:1px solid var(--line);border-radius:11px;padding:12px;background:#fff;min-height:94px;transition:.15s}.pipeline-card:hover{border-color:#b9d9e8;box-shadow:0 7px 18px rgba(22,69,96,.08)}.pipeline-card .n{font-size:24px;font-weight:800;margin:4px 0}.pipeline-card small{color:var(--muted)}.pipeline-card.alerting{border-color:#f0d7a2;background:#fffdf7}.pipeline-card.danger{border-color:#efc1c1;background:#fffafa}
label{font-weight:700;display:block;margin:0 0 6px;color:#34465a}.form-control,select,textarea,input:not([type]),input[type=text],input[type=password],input[type=number],input[type=date],input[type=datetime-local],input[type=time],input[type=search],input[type=tel],input[type=email],input[type=url],input[type=file]{width:100%;min-height:42px;padding:9px 11px;border:1px solid #cbd5df;border-radius:8px;background:#fff;font:inherit;color:var(--text);outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}input:not([type])::placeholder,input[type=text]::placeholder,input[type=number]::placeholder,input[type=search]::placeholder,input[type=tel]::placeholder,input[type=email]::placeholder,input[type=url]::placeholder,textarea::placeholder{color:#98a6b5;opacity:1}.form-control:hover,select:hover,textarea:hover,input:not([type]):hover,input[type=text]:hover,input[type=password]:hover,input[type=number]:hover,input[type=date]:hover,input[type=datetime-local]:hover,input[type=time]:hover,input[type=search]:hover,input[type=tel]:hover,input[type=email]:hover,input[type=url]:hover{border-color:#aebdca}input:focus,select:focus,textarea:focus{border-color:#66b7dd;box-shadow:0 0 0 3px rgba(7,139,199,.09)}input:disabled,select:disabled,textarea:disabled,input[readonly],textarea[readonly]{background:#f6f8fa;color:#7d8b99;cursor:not-allowed}textarea{min-height:88px;resize:vertical}.help{font-size:12px;color:var(--muted);margin-top:4px}.field-inline{display:flex;gap:8px}.field-inline>*{flex:1}.form-section{padding:14px 0;border-top:1px solid var(--line)}.form-section:first-child{border-top:0;padding-top:0}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:11px}.table-wrap table{border:0}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:10px 10px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left;white-space:nowrap}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfdff}th{background:#f7f9fc;color:#5e6d7e;font-size:12px;font-weight:700;position:relative}.wrap{white-space:normal;min-width:180px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.text-right{text-align:right}.table-actions{display:flex;gap:6px;align-items:center}.avatar{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#e7f4fb;color:#0875aa;font-weight:800}
.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.2}.badge-gray{background:#edf1f5;color:#536174}.badge-blue{background:#e4f4fb;color:#0578ad}.badge-green{background:var(--green-soft);color:#0b6c4a}.badge-red{background:var(--red-soft);color:#a52d2d}.badge-amber{background:var(--amber-soft);color:#8c5b00}.alert{border-radius:10px;padding:11px 13px;margin-bottom:14px;border:1px solid;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.alert-success{background:#ebfaf3;border-color:#c7ead9;color:#086847}.alert-error{background:#fff1f1;border-color:#f0c3c3;color:#a32929}.alert-warning{background:#fff8e8;border-color:#efdca9;color:#805700}.alert-info{background:#eef8fd;border-color:#c9e7f4;color:#12678f}.alert-close{border:0;background:transparent;color:inherit;font-size:20px;line-height:1;cursor:pointer}
.toolbar{display:flex;flex-wrap:wrap;gap:9px;align-items:end}.toolbar>div{min-width:140px}.toolbar .grow{flex:1;min-width:220px}.muted{color:var(--muted)}.split{display:flex;justify-content:space-between;gap:14px;align-items:center}.kpi-good{color:var(--green)}.kpi-bad{color:var(--red)}.small{font-size:12px}.nowrap{white-space:nowrap}.hr{height:1px;background:var(--line);margin:16px 0}
.status-line{display:flex;gap:0;overflow:auto;padding:4px 0}.status-step{position:relative;min-width:120px;flex:1;padding:10px 8px 10px 28px;background:#f0f3f7;color:#6a7787;font-size:12px;text-align:center}.status-step:first-child{border-radius:8px 0 0 8px}.status-step:last-child{border-radius:0 8px 8px 0}.status-step:after{content:"";position:absolute;right:-11px;top:0;border-top:20px solid transparent;border-bottom:20px solid transparent;border-left:11px solid #f0f3f7;z-index:2}.status-step:before{content:"";position:absolute;right:-13px;top:-1px;border-top:21px solid transparent;border-bottom:21px solid transparent;border-left:12px solid #fff;z-index:1}.status-step:last-child:after,.status-step:last-child:before{display:none}.status-step.done,.status-step.current{background:#e0f3fb;color:#006d9f}.status-step.done:after,.status-step.current:after{border-left-color:#e0f3fb}.status-step.current{font-weight:800;background:#c9ebf9}.status-step.current:after{border-left-color:#c9ebf9}
.timeline{border-left:2px solid #dbe3ea;padding-left:16px}.timeline-item{position:relative;margin:0 0 15px}.timeline-item:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--primary);position:absolute;left:-22px;top:5px}.timeline-item:last-child{margin-bottom:0}.media-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.media-card{border:1px solid var(--line);border-radius:10px;padding:8px;background:#fff}.media-card img,.media-card video{width:100%;height:150px;object-fit:cover;border-radius:7px;background:#000}.quote-row{display:grid;grid-template-columns:1.6fr .8fr .55fr .75fr .75fr .7fr 1.1fr;gap:7px;margin-bottom:7px;align-items:center}.quote-head{font-size:12px;color:var(--muted);font-weight:700}.signature{border:1px dashed #82909f;border-radius:9px;background:#fff;touch-action:none}.qr-box{display:flex;gap:16px;align-items:center}.qr-placeholder svg{width:150px;height:150px}.progressbar{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin:14px 0 6px}.progressbar div{height:7px;background:#e5ebf1;border-radius:99px}.progressbar .on{background:var(--primary)}
.workbench-head{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(150px,.7fr));gap:12px;margin-bottom:14px}.workbench-main{background:linear-gradient(145deg,#102e44,#0e5f86);color:#fff;border-radius:14px;padding:18px;box-shadow:var(--shadow-lg)}.workbench-main .muted{color:#b9d3e2}.workbench-main h2{margin:4px 0 8px;font-size:23px}.workbench-stat{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px}.workbench-stat small{color:var(--muted)}.workbench-stat b{display:block;font-size:20px;margin-top:5px}.workbench-tabs{display:flex;gap:4px;overflow:auto;border-bottom:1px solid var(--line);margin-bottom:15px;position:sticky;top:72px;background:#fff;z-index:8;padding-top:2px}.workbench-tabs a{padding:10px 12px;color:#617083;white-space:nowrap;border-bottom:2px solid transparent}.workbench-tabs a.active{color:var(--primary-dark);border-bottom-color:var(--primary);font-weight:700}.anchor-section{scroll-margin-top:130px}
.network-card{border:1px solid var(--line);border-radius:13px;padding:16px;background:#fff;box-shadow:var(--shadow)}.network-card-head{display:flex;justify-content:space-between;gap:8px}.network-card h3{margin:0 0 3px}.network-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.network-metrics>div{background:#f7f9fc;border-radius:8px;padding:8px}.network-metrics b{display:block;font-size:17px}.contract-expiring{border-color:#edcb86;background:#fffdf8}.permission-matrix th:first-child,.permission-matrix td:first-child{position:sticky;left:0;z-index:2;background:#fff}.permission-matrix th:first-child{background:#f7f9fc}.perm-check{text-align:center}.perm-module{font-weight:800;color:#263a4d}.role-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:#fff}.scope-chip{display:inline-flex;padding:4px 8px;background:#edf5fa;border-radius:7px;color:#356078;font-size:12px}
.empty-state{text-align:center;padding:48px 20px}.empty-icon{font-size:36px}.empty-state h2{margin-top:10px}.scanner-box{max-width:680px;margin:0 auto}.scanner-view{background:#08121a;border-radius:14px;min-height:360px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.scanner-view video{width:100%;max-height:520px}.scanner-frame{position:absolute;width:68%;height:42%;border:2px solid rgba(255,255,255,.9);border-radius:14px;box-shadow:0 0 0 999px rgba(0,0,0,.24)}.scanner-hint{position:absolute;bottom:18px;color:#fff;background:rgba(0,0,0,.48);padding:7px 10px;border-radius:8px}.scan-result{margin-top:12px}
.public-body{background:#f3f7fa}.public-top{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.public-top-inner{max-width:760px;margin:auto;padding:11px 16px;display:flex;align-items:center;justify-content:space-between}.public-top .brand img{width:80px;height:38px}.public-top .brand b{font-size:16px}.public-top .brand span{font-size:11px}.public-trust{font-size:12px;color:var(--muted)}.public-main{max-width:720px;margin:18px auto;padding:0 14px 42px}.public-main .panel{box-shadow:0 8px 28px rgba(30,55,78,.055)}.public-foot{text-align:center;color:#758294;padding:0 16px 28px}.public-foot small{display:block;margin-top:3px}.customer-hero{background:linear-gradient(145deg,#0c6f9d,#0b8fc4);color:#fff}.customer-hero .muted{color:#cde7f3}.customer-hero h2{font-size:23px}.customer-total{font-size:28px;font-weight:850}.decision-bar{display:flex;gap:8px}.decision-bar .btn{flex:1;padding:12px}.login-card{max-width:440px;margin:44px auto}.login-card .login-logo{text-align:center;margin-bottom:22px}.login-card .login-logo img{width:160px;height:64px;object-fit:contain}.login-card h2{text-align:center;font-size:22px;margin-bottom:4px}.login-card .login-sub{text-align:center;color:var(--muted);margin-bottom:20px}.login-security{display:flex;justify-content:center;gap:10px;color:#758294;font-size:11px;margin-top:18px}
pre{white-space:pre-wrap;word-break:break-all;background:#0e1e2b;color:#d9edf8;padding:12px;border-radius:9px;overflow:auto}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.tabs{display:flex;gap:7px;border-bottom:1px solid var(--line);margin-bottom:14px;overflow:auto}.tab{padding:9px 12px;color:#536174;white-space:nowrap}.tab.active{color:var(--primary-dark);border-bottom:2px solid var(--primary);font-weight:700}.print-only{display:none}.no-margin{margin:0}.mb-0{margin-bottom:0}.mb-1{margin-bottom:8px}.mt-1{margin-top:8px}.w-100{width:100%}
@media(max-width:1280px){.metrics{grid-template-columns:repeat(3,1fr)}.pipeline{grid-template-columns:repeat(4,1fr)}.grid-5{grid-template-columns:repeat(3,1fr)}.workbench-head{grid-template-columns:repeat(3,1fr)}.workbench-main{grid-column:1/-1}.media-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:980px){.sidebar{transform:translateX(-100%);width:258px}.sidebar.open{transform:translateX(0)}.content{margin-left:0}.mobile-menu-btn{display:block}.page{padding:16px 16px 78px}.topbar{padding:0 16px}.grid-4{grid-template-columns:repeat(2,1fr)}.pipeline{grid-template-columns:repeat(3,1fr)}.quote-row{grid-template-columns:1fr 1fr}.quote-head{display:none}.media-grid{grid-template-columns:repeat(2,1fr)}.mobile-bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;height:62px;background:rgba(255,255,255,.97);border-top:1px solid var(--line);z-index:35;justify-content:space-around;padding-bottom:env(safe-area-inset-bottom)}.mobile-bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#778494;font-size:10px;gap:2px}.mobile-bottom-nav a span{font-size:19px;line-height:1}.mobile-bottom-nav a.active{color:var(--primary-dark);font-weight:700}.mobile-bottom-nav .scan-dot{width:34px;height:34px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;margin-top:-15px;box-shadow:0 5px 14px rgba(7,139,199,.25)}body.sidebar-open:after{content:"";position:fixed;inset:0;background:rgba(8,22,32,.35);z-index:30}.sidebar{z-index:40}}
@media(max-width:700px){body{font-size:13px}.topbar{height:64px}.topbar h1{font-size:17px}.top-context{font-size:10px}.hide-mobile{display:none!important}.page{padding:12px 11px 82px}.panel{padding:14px;border-radius:11px;margin-bottom:12px}.metrics,.grid-2,.grid-3,.grid-4,.grid-5{grid-template-columns:1fr}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px}.metric{padding:13px}.metric-value{font-size:22px}.pipeline{grid-template-columns:1fr 1fr}.pipeline-card{min-height:82px}.pipeline-card .n{font-size:21px}.toolbar{display:grid;grid-template-columns:1fr 1fr}.toolbar>div,.toolbar .grow{min-width:0}.toolbar .grow{grid-column:1/-1}.toolbar .btn{width:100%}.table-wrap{border-radius:8px}.table-wrap table{min-width:760px}.mobile-cards table,.mobile-cards thead,.mobile-cards tbody,.mobile-cards tr,.mobile-cards td{display:block}.mobile-cards thead{display:none}.mobile-cards table{min-width:0}.mobile-cards tr{padding:11px;border-bottom:1px solid var(--line)}.mobile-cards td{border:0;padding:3px 0;white-space:normal}.mobile-cards td:before{content:attr(data-label);display:inline-block;width:82px;color:var(--muted);font-size:11px}.workbench-head{grid-template-columns:1fr 1fr}.workbench-main{grid-column:1/-1}.workbench-stat{padding:11px}.workbench-tabs{top:64px}.media-grid{grid-template-columns:1fr 1fr}.qr-box{align-items:flex-start}.qr-placeholder svg{width:112px;height:112px}.public-main{margin-top:12px;padding:0 10px 30px}.public-top-inner{padding:9px 11px}.public-trust{display:none}.public-main .panel{padding:14px}.decision-bar{flex-direction:column}.network-metrics{grid-template-columns:repeat(3,1fr)}.scanner-view{min-height:300px}}
@media(max-width:430px){.metrics{grid-template-columns:1fr 1fr}.pipeline{grid-template-columns:1fr 1fr}.media-grid{grid-template-columns:1fr}.top-actions .btn{padding:8px 10px}.workbench-head{grid-template-columns:1fr 1fr}.workbench-stat b{font-size:17px}.qr-box{display:block}.qr-placeholder{margin-bottom:10px}.network-metrics{grid-template-columns:1fr 1fr}.toolbar{grid-template-columns:1fr}.toolbar .grow{grid-column:auto}}
@media print{.sidebar,.topbar,.mobile-bottom-nav,.no-print,.alert{display:none!important}.content{margin:0}.page{padding:0;max-width:none}.panel{box-shadow:none;border:0;padding:0}.print-only{display:block}body{background:#fff}}
/* 后台、客户微信端与服务网络统一视觉 */
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:var(--primary-dark);margin-bottom:5px}.hero-panel{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;background:linear-gradient(145deg,#fff,#f5fbfe);border-color:#d9edf6}.hero-panel h2{font-size:21px;margin-bottom:6px}.btn-block{width:100%;display:flex}.btn-lg{padding:12px 18px;font-size:15px;border-radius:10px}.agreement{display:flex;align-items:flex-start;gap:8px;font-weight:500;line-height:1.6;margin:14px 0}.agreement input{width:auto;margin-top:5px;flex:0 0 auto}
.public-card,.public-order-hero{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 10px 34px rgba(25,53,75,.07);padding:20px;margin-bottom:14px}.public-order-hero{background:linear-gradient(145deg,#ffffff 30%,#edf9fe);overflow:hidden}.public-order-hero h1{font-size:25px;margin:2px 0 4px}.public-card h1{font-size:24px;margin:4px 0 8px}.public-card h2{font-size:18px;margin:0 0 12px}.quote-total th{font-size:15px;background:#f5fbfe;color:#0b5577}.quote-total th:last-child{font-size:19px;color:var(--primary-dark)}.public-stepper{display:grid;grid-template-columns:repeat(6,1fr);margin-top:22px;gap:4px;position:relative}.public-step{min-width:0;text-align:center;position:relative}.public-step:before{content:"";position:absolute;height:3px;background:#e0e7ee;left:-52%;right:52%;top:16px;z-index:0}.public-step:first-child:before{display:none}.public-step span{position:relative;z-index:1;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#edf1f5;color:#7c8895;font-weight:800;border:2px solid #fff;box-shadow:0 0 0 1px #dce4eb}.public-step small{display:block;color:#7b8794;font-size:10px;margin-top:6px;white-space:nowrap}.public-step.done:before,.public-step.current:before{background:#73c4e5}.public-step.done span,.public-step.current span{background:var(--primary);color:#fff;box-shadow:0 0 0 1px #50b0d7}.public-step.current span{box-shadow:0 0 0 4px rgba(7,139,199,.13)}.public-step.done small,.public-step.current small{color:#1b617f;font-weight:700}.service-card{background:#fbfdff}.reject-box{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.reject-box summary{cursor:pointer;color:#8b3a3a;font-weight:700}.reject-box form{margin-top:12px}
.login-shell{max-width:980px;margin:42px auto;padding:0 16px;display:grid;grid-template-columns:1.15fr .85fr;gap:18px;align-items:stretch}.login-brand-card{border-radius:18px;padding:38px;background:linear-gradient(145deg,#0c2f48,#0878a7);color:#fff;box-shadow:var(--shadow-lg);min-height:410px;display:flex;flex-direction:column;justify-content:center}.login-brand-card .eyebrow{color:#8bd5f2}.login-brand-card h1{font-size:37px;margin:4px 0 12px}.login-brand-card p{color:#c9e1ec;font-size:15px;max-width:540px}.login-features{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.login-features span{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);border-radius:999px;padding:6px 10px;font-size:12px}.login-shell .login-card{margin:0;max-width:none;display:flex;flex-direction:column;justify-content:center;padding:28px}.login-shell .login-card h2{text-align:left;font-size:23px}.login-shell .login-card label{margin-top:10px}.login-shell .login-card .btn{margin-top:18px}
@media(max-width:700px){.hero-panel{display:block}.public-card,.public-order-hero{border-radius:13px;padding:16px}.public-order-hero h1,.public-card h1{font-size:21px}.public-stepper{gap:0}.public-step small{font-size:9px;white-space:normal;line-height:1.25}.public-step span{width:28px;height:28px}.public-step:before{top:14px}.login-shell{display:block;margin:16px auto}.login-brand-card{min-height:auto;padding:24px;margin-bottom:12px}.login-brand-card h1{font-size:28px}.login-shell .login-card{padding:20px}.public-main .table-wrap table{min-width:520px}}

/* 维修采购、质检与交机 */
.signature{width:100%;height:180px;border:1px dashed #9fb0bf;border-radius:10px;background:#fff;touch-action:none;display:block}.table-actions{display:flex;flex-wrap:wrap;gap:7px}

.side-logout-form{margin:6px 0 0}.side-logout-btn{appearance:none;border:0;background:transparent;color:inherit;padding:0;cursor:pointer;font:inherit;text-decoration:underline;text-underline-offset:3px;opacity:.82}.side-logout-btn:hover{opacity:1}

/* 平台体验基础样式 */
:root{--primary:#0A6DFF;--accent:#15C7A3;--sidebar:#0B1424;--surface:#fff;--bg:#f5f7fb;--text:#132033;--muted:#718096;--line:#e7ebf2;--shadow:0 12px 32px rgba(22,42,74,.07)}
body.app-body{background:var(--bg)}
.sidebar{background:linear-gradient(180deg,var(--sidebar),#111f35)}
.brand-side{padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.08)}
.nav-group-title{letter-spacing:.08em;font-size:11px;color:#7f91ac}
.nav-item{border-radius:10px;margin:2px 8px;color:#c7d1df}
.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.09);color:#fff}
.nav-item.active{box-shadow:inset 3px 0 0 var(--accent)}
.topbar{backdrop-filter:blur(18px);background:rgba(255,255,255,.9);border-bottom:1px solid rgba(231,235,242,.9)}
.page{max-width:1680px;margin:0 auto}
.panel{border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px}
.btn{border-radius:10px;font-weight:650;letter-spacing:.01em}.btn-primary{background:linear-gradient(135deg,var(--primary),#2f87ff);border-color:transparent;box-shadow:0 7px 18px rgba(10,109,255,.18)}
.metric{border-radius:16px;border:1px solid var(--line);box-shadow:none;background:linear-gradient(180deg,#fff,#fbfcff)}
.page-intro,.enterprise-hero,.order-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:18px;padding:22px 24px;background:linear-gradient(135deg,#0d1b2f,#153760);color:#fff;border-radius:20px;box-shadow:0 18px 40px rgba(12,30,55,.17)}
.page-intro h2,.enterprise-hero h2,.order-hero h2{margin:4px 0 8px;font-size:27px}.page-intro p,.enterprise-hero p,.order-hero p{margin:0;color:#bdcade;max-width:880px}.page-intro .eyebrow,.enterprise-hero .eyebrow,.order-hero .eyebrow{color:#78d9c5}.page-intro .btn-light{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.15)}
.order-hero-status{display:flex;align-items:flex-end;gap:12px;flex-direction:column}.order-hero-status strong{font-size:28px}
.split-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:18px}.dictionary-sidebar{padding:10px}.dict-link{display:flex;flex-direction:column;padding:12px 14px;border-radius:11px;color:var(--text);text-decoration:none}.dict-link small{color:var(--muted);margin-top:3px}.dict-link.active,.dict-link:hover{background:#edf5ff;color:var(--primary)}
.popover-panel{margin-top:12px;background:#fff;color:var(--text);border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 18px 45px rgba(10,27,50,.14);min-width:340px}.popover-panel.wide{min-width:min(920px,85vw)}
details{position:relative}details[open]>.popover-panel{position:absolute;right:0;z-index:30}.panel details[open]>.popover-panel{position:relative;right:auto}
.cards-grid,.service-type-grid,.ai-cap-grid,.course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.service-card,.service-type-card,.ai-cap-card,.course-card{border:1px solid var(--line);border-radius:16px;background:#fff;padding:18px;box-shadow:0 7px 22px rgba(20,50,75,.05)}
.service-icon,.profile-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#edf5ff;color:var(--primary);font-size:20px;font-weight:800;margin-bottom:12px}.service-card h3,.course-card h3{margin:0 0 6px}.service-card p,.service-type-card span,.ai-cap-card p,.course-card p{color:var(--muted);font-size:13px}.service-card small{color:#9aa7b8}
.ai-cap-card{background:linear-gradient(145deg,#fbfdff,#f2f7ff)}.ai-cap-card span{display:inline-flex;background:#091b32;color:#80e0cb;border-radius:8px;padding:4px 7px;font-size:11px;font-weight:800}.ai-cap-card b{display:block;margin:11px 0 5px}
.ai-result{margin-top:18px;border-radius:16px;padding:18px;background:#f3fbf8;border:1px solid #ccefe5}.ai-result.error{background:#fff4f4;border-color:#ffd4d4}.ai-result-head{display:flex;justify-content:space-between;margin-bottom:12px}.preline{white-space:pre-wrap;line-height:1.75}
.candidate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:12px}.candidate-card{display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:15px;padding:14px}.candidate-card p{margin:4px 0 0;color:var(--muted);font-size:12px}.score-ring{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#e9f4ff,#e8fff9);font-weight:800;color:var(--primary)}
.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.kanban-col{background:#eef2f7;border-radius:18px;padding:14px;min-height:420px}.kanban-col h3{margin:2px 4px 12px}.kanban-card{display:flex;flex-direction:column;gap:5px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px;margin-bottom:10px;text-decoration:none;color:var(--text);box-shadow:0 5px 15px rgba(20,50,75,.04)}.kanban-card span,.kanban-card small{color:var(--muted)}
.detail-list{display:grid;grid-template-columns:90px 1fr;gap:10px 12px}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;font-weight:600}.timeline{display:flex;flex-direction:column}.timeline-item{display:grid;grid-template-columns:18px 1fr;gap:10px;padding-bottom:15px;position:relative}.timeline-item i{width:10px;height:10px;border-radius:50%;background:var(--primary);margin-top:5px}.timeline-item:before{content:"";position:absolute;width:1px;background:#dce4ef;left:5px;top:15px;bottom:0}.timeline-item:last-child:before{display:none}.timeline-item p{margin:3px 0;color:var(--muted)}
.tab-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.list-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.list-row p{margin:3px 0 0;color:var(--muted);font-size:12px}.mini-profile{display:flex;gap:14px;align-items:center}.profile-icon{margin:0}
.course-card{position:relative}.course-tag{position:absolute;right:14px;top:14px;font-size:11px;background:#edf5ff;color:var(--primary);padding:4px 7px;border-radius:8px}.course-card strong{display:block;margin:12px 0;font-size:22px}.course-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}
.chip-checks{display:flex;gap:8px;flex-wrap:wrap}.chip-checks label{border:1px solid var(--line);padding:7px 10px;border-radius:999px;font-weight:500}.chip-checks input{width:auto}.check-label{display:flex;gap:7px;align-items:center;margin-top:10px}.check-label input{width:auto}
.message-list{max-height:690px;overflow:auto}.message-item{display:grid;grid-template-columns:12px 1fr;gap:10px;padding:14px 0;border-bottom:1px solid var(--line)}.message-dot{width:8px;height:8px;border-radius:50%;background:#c6d0dc;margin-top:6px}.message-item.unread .message-dot{background:var(--primary);box-shadow:0 0 0 5px rgba(10,109,255,.1)}.message-head{display:flex;justify-content:space-between;gap:12px}.message-item p{margin:6px 0;color:#44546a}.message-item span,.message-item small{font-size:12px;color:var(--muted)}
@media(max-width:980px){.split-layout,.kanban,.tab-grid{grid-template-columns:1fr}.page-intro,.enterprise-hero,.order-hero{flex-direction:column}.popover-panel.wide{min-width:0;width:calc(100vw - 48px)}.candidate-card{grid-template-columns:48px 1fr}.candidate-card form{grid-column:1/-1}}
.platform-overview-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;background:radial-gradient(circle at 85% 10%,rgba(21,199,163,.22),transparent 35%),linear-gradient(135deg,#08182d,#11325b);color:#fff;border-radius:22px;padding:28px;margin-bottom:16px}.platform-overview-head h2{font-size:30px;margin:3px 0 8px}.platform-overview-head p{margin:0;color:#b9c9dc}.platform-overview-head .eyebrow{color:#7fe2cb}.section-title{display:flex;align-items:center;justify-content:space-between;margin:28px 2px 12px}.section-title h2{font-size:20px;margin:0}.section-title span{font-size:12px;color:var(--muted)}


/* =========================================================
   登录页与后台移动端布局
   ========================================================= */

/* Login experience */
.login-page{min-height:100vh;background:#07111f;overflow-x:hidden}
.login-page .public-top,.login-page .public-foot{display:none}
.login-page .public-main{max-width:none;margin:0;padding:0;min-height:100vh}
.login-experience{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:36px;overflow:hidden;background:
  radial-gradient(circle at 12% 12%,rgba(10,109,255,.16),transparent 31%),
  radial-gradient(circle at 88% 82%,rgba(21,199,163,.12),transparent 28%),
  linear-gradient(135deg,#07111f 0%,#0b1728 48%,#0b1b2b 100%)}
.login-experience:before{content:"";position:absolute;inset:0;opacity:.17;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent 88%)}
.login-ambient{position:absolute;border-radius:50%;filter:blur(2px);pointer-events:none}.login-ambient-a{width:460px;height:460px;left:-180px;top:-180px;background:radial-gradient(circle,rgba(22,140,255,.18),transparent 68%)}.login-ambient-b{width:420px;height:420px;right:-160px;bottom:-170px;background:radial-gradient(circle,rgba(21,199,163,.14),transparent 70%)}
.login-shell-v2{position:relative;z-index:2;width:min(1120px,100%);max-width:none;margin:0;padding:0;grid-template-columns:minmax(0,1.15fr) minmax(390px,.72fr);gap:0;border:1px solid rgba(255,255,255,.09);border-radius:28px;overflow:hidden;background:rgba(255,255,255,.035);box-shadow:0 34px 90px rgba(0,0,0,.34);backdrop-filter:blur(18px)}
.login-visual-panel{min-height:630px;border-radius:0;box-shadow:none;padding:46px 50px;background:
  radial-gradient(circle at 82% 18%,rgba(41,148,255,.22),transparent 30%),
  radial-gradient(circle at 12% 88%,rgba(21,199,163,.17),transparent 34%),
  linear-gradient(145deg,#0a2641 0%,#0b4164 56%,#087ca2 100%);justify-content:space-between;position:relative;overflow:hidden}
.login-visual-panel:after{content:"";position:absolute;width:360px;height:360px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-130px;top:80px;box-shadow:0 0 0 55px rgba(255,255,255,.025),0 0 0 110px rgba(255,255,255,.018)}
.login-brand-top,.login-visual-foot{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px}.login-brand-badge{font-size:11px;font-weight:800;letter-spacing:.14em;color:#a9c8dc}.login-online{font-size:11px;color:#cbe8df;border:1px solid rgba(178,234,219,.17);background:rgba(8,29,45,.2);border-radius:999px;padding:7px 10px;white-space:nowrap}.login-online i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#55e0b8;margin-right:6px;box-shadow:0 0 0 4px rgba(85,224,184,.12)}
.login-visual-main{position:relative;z-index:2;max-width:620px}.login-visual-main .eyebrow{font-size:13px;font-weight:700;letter-spacing:.06em;color:#7ee0cc}.login-visual-main h1{font-size:46px;line-height:1.12;letter-spacing:-1.3px;margin:10px 0 18px}.login-visual-main>p{font-size:15px;line-height:1.85;color:#c3d7e6;margin:0;max-width:570px}.login-cap-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:30px}.login-cap-grid>div{min-width:0;padding:15px 16px;border:1px solid rgba(255,255,255,.11);border-radius:16px;background:rgba(255,255,255,.055);backdrop-filter:blur(6px)}.login-cap-icon{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;margin-bottom:9px;background:rgba(255,255,255,.1);color:#9fe7d8;font-size:12px;font-weight:900}.login-cap-grid b{display:block;font-size:14px}.login-cap-grid small{display:block;margin-top:4px;color:#a9c2d3;font-size:11px}.login-visual-foot{justify-content:flex-start;color:#87a8bd;font-size:11px;letter-spacing:.04em}.login-visual-foot span:nth-child(2){opacity:.45}
.login-form-panel{background:#fff;min-height:630px;padding:56px 46px;display:flex;flex-direction:column;justify-content:center}.login-mobile-brand{display:none}.login-form-head{margin-bottom:24px}.login-form-kicker{font-size:11px;font-weight:850;letter-spacing:.18em;color:var(--primary);margin-bottom:8px}.login-form-head h2{font-size:28px;letter-spacing:-.4px;margin:0 0 8px;color:#0f1f33}.login-form-head p{margin:0;color:#7a8798;font-size:13px}.login-form label{font-size:13px;margin:0 0 7px;color:#27394d}.login-label-row{display:flex;align-items:center;justify-content:space-between;margin-top:18px}.login-label-row label{margin:0}.login-label-row span{font-size:11px;color:#9aa6b5}.login-input-wrap{height:52px;display:flex;align-items:center;border:1px solid #dce3eb;border-radius:13px;background:#fbfcfe;transition:.18s;overflow:hidden}.login-input-wrap:focus-within{border-color:#8ebdff;background:#fff;box-shadow:0 0 0 4px rgba(10,109,255,.08)}.login-input-wrap input{height:100%;border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;padding:0 8px;font-size:15px;min-width:0}.login-input-icon{width:44px;display:grid;place-items:center;color:#8291a4;font-weight:800}.login-eye{height:100%;padding:0 14px;border:0;background:transparent;color:#728096;cursor:pointer;font-size:12px}.login-eye:hover{color:var(--primary)}.login-submit{height:52px;margin-top:24px!important;border-radius:13px!important;font-size:15px;justify-content:space-between!important;padding:0 20px!important;background:linear-gradient(135deg,#086bf1,#148fe9)!important;box-shadow:0 12px 28px rgba(10,109,255,.22)!important}.login-submit:hover{transform:translateY(-1px);box-shadow:0 16px 32px rgba(10,109,255,.27)!important}.login-security-row{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:22px;color:#8c99aa;font-size:11px}.login-security-row i{width:3px;height:3px;background:#c5ccd5;border-radius:50%}.login-help{text-align:center;margin-top:13px;color:#a1abb8;font-size:11px}.login-error{display:grid;grid-template-columns:26px 1fr;align-items:center;margin-bottom:18px;border-radius:12px}.login-error>span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#ef5a5a;color:#fff;font-weight:900}

/* Global mobile usability */
@media(max-width:980px){
  html,body{overflow-x:hidden}
  body.app-body{padding-bottom:calc(66px + env(safe-area-inset-bottom))}
  body.sidebar-open{overflow:hidden}
  .sidebar{width:min(86vw,320px);box-shadow:24px 0 55px rgba(5,18,32,.28)}
  .brand-side{min-height:76px;padding:14px 16px}.brand-side .brand img,.brand-side img{width:78px;height:40px}.brand-side b{font-size:16px}
  .side-nav{padding-bottom:24px}.nav-item{min-height:44px;padding:11px 12px}.nav-group{margin-bottom:12px}
  .topbar{height:64px;padding:0 14px;gap:10px}.topbar-left{min-width:0;gap:8px}.topbar-left>div{min-width:0}.topbar h1{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw}.top-context{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw}.mobile-menu-btn{width:38px;height:38px;display:inline-grid;place-items:center;border:1px solid var(--line);background:#fff;font-size:18px;flex:0 0 auto}.top-actions{flex:0 0 auto}.top-actions .btn{height:38px;padding:0 11px;border-radius:10px}.top-actions .btn-primary{box-shadow:none}
  .page{padding:14px 12px 88px;max-width:100%}
  .panel{border-radius:15px;padding:15px;margin-bottom:12px;box-shadow:0 7px 22px rgba(22,42,74,.05)}
  .panel-head{gap:10px;flex-wrap:wrap}.panel-head>*{min-width:0}
  .page-intro,.enterprise-hero,.order-hero,.platform-overview-head{border-radius:16px;padding:18px;margin-bottom:12px}.page-intro h2,.enterprise-hero h2,.order-hero h2,.platform-overview-head h2{font-size:22px}
  .cards-grid,.service-type-grid,.ai-cap-grid,.course-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.service-card,.service-type-card,.ai-cap-card,.course-card{padding:14px;border-radius:13px}
  .grid,.grid-2,.grid-3,.grid-4,.grid-5,.tab-grid,.split-layout,.kanban{min-width:0}
  .field-inline{flex-wrap:wrap}.field-inline>*{min-width:180px}
  input,select,textarea,.form-control{max-width:100%}
  .toolbar{gap:8px}.toolbar>*{min-width:0}
  .table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
  .popover-panel,.popover-panel.wide{max-width:calc(100vw - 28px);max-height:70vh;overflow:auto}
  .mobile-bottom-nav{height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -8px 30px rgba(17,37,60,.08);backdrop-filter:blur(18px)}.mobile-bottom-nav a{min-width:0}.mobile-bottom-nav a span{font-size:18px}
}

@media(max-width:700px){
  body{font-size:13px}
  input,select,textarea,.form-control,input:not([type]),input[type=text],input[type=password],input[type=number],input[type=date],input[type=datetime-local],input[type=time],input[type=search],input[type=tel],input[type=email],input[type=url]{font-size:16px;padding:10px 11px;min-height:44px}
  textarea{min-height:96px}
  .topbar h1{max-width:45vw}.top-context{max-width:45vw}
  .top-actions .btn{font-size:12px;padding:0 9px}.top-actions .btn-primary{max-width:100px;overflow:hidden;text-overflow:ellipsis}
  .page{padding:10px 9px 86px}
  .panel{padding:13px;border-radius:14px}
  .panel h2{font-size:16px}.panel h3{font-size:14px}
  .metrics{grid-template-columns:1fr 1fr;gap:8px}.metric{padding:12px;border-radius:13px}.metric-value{font-size:21px}
  .pipeline{gap:8px}.pipeline-card{padding:10px;min-height:76px}
  .grid-2,.grid-3,.grid-4,.grid-5{grid-template-columns:1fr}
  .cards-grid,.service-type-grid,.ai-cap-grid,.course-grid{grid-template-columns:1fr 1fr}
  .field-inline{display:grid;grid-template-columns:1fr}.field-inline>*{min-width:0}
  .toolbar{display:flex;flex-wrap:wrap}.toolbar .grow{flex:1 1 100%}.toolbar .btn{flex:1 1 calc(50% - 5px)}
  .panel-head{flex-direction:column;align-items:stretch}.panel-head .btn,.panel-head .table-actions{align-self:stretch}.panel-head .table-actions .btn{flex:1}
  .detail-list{grid-template-columns:72px minmax(0,1fr);gap:8px 9px}.detail-list dd{min-width:0;overflow-wrap:anywhere}
  .list-row,.message-head{align-items:flex-start}.list-row{flex-direction:column}.message-head{flex-direction:column;gap:2px}
  .candidate-card{grid-template-columns:44px minmax(0,1fr)}
  .quote-row{grid-template-columns:1fr!important}.quote-row>*{min-width:0}.quote-row .btn{width:100%}
  .workbench-tabs{overflow-x:auto;white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}.workbench-tabs::-webkit-scrollbar{display:none}.workbench-tabs a{flex:0 0 auto}
  .timeline-item{grid-template-columns:14px minmax(0,1fr);gap:8px}.timeline-item>div{min-width:0}.timeline-item p{overflow-wrap:anywhere}
  .qr-box{display:flex;flex-direction:column}.qr-box>*{max-width:100%}
  details[open]>.popover-panel{position:fixed;left:10px;right:10px;bottom:calc(72px + env(safe-area-inset-bottom));top:auto;width:auto!important;min-width:0!important;max-width:none!important;max-height:70vh;z-index:60}
}

@media(max-width:480px){
  .cards-grid,.service-type-grid,.ai-cap-grid,.course-grid{grid-template-columns:1fr}
  .metrics{grid-template-columns:1fr 1fr}
  .metric-label{font-size:11px}.metric-value{font-size:20px}
  .network-metrics{grid-template-columns:1fr 1fr}
  .topbar h1{font-size:15px;max-width:42vw}.top-context{display:none}
  .top-actions .btn-primary{max-width:92px}.top-actions .btn-primary{font-size:0}.top-actions .btn-primary:after{content:"收机";font-size:12px}
  .sidebar{width:88vw}
}

/* Mobile login */
@media(max-width:900px){
  .login-experience{align-items:flex-start;padding:18px;min-height:100dvh}
  .login-shell-v2{display:block;border-radius:22px;max-width:560px;background:#fff;border-color:rgba(255,255,255,.18)}
  .login-visual-panel{display:none}
  .login-form-panel{min-height:auto;padding:34px 30px 30px}
  .login-mobile-brand{display:flex;align-items:center;gap:12px;padding-bottom:28px;margin-bottom:28px;border-bottom:1px solid #edf0f4}.login-mobile-mark{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(145deg,#0a6dff,#13a6ca);color:#fff;font-weight:900;box-shadow:0 10px 24px rgba(10,109,255,.2)}.login-mobile-brand b{display:block;font-size:16px}.login-mobile-brand span{display:block;font-size:11px;color:#8692a2;margin-top:2px}
}
@media(max-width:520px){
  .login-page{background:#f5f8fc}
  .login-experience{padding:0;background:linear-gradient(180deg,#0b2945 0,#0b2945 168px,#f5f8fc 168px,#f5f8fc 100%)}
  .login-experience:before,.login-ambient{display:none}
  .login-shell-v2{width:100%;max-width:none;margin:92px 14px 22px;border-radius:22px;box-shadow:0 18px 50px rgba(24,49,78,.12)}
  .login-form-panel{padding:28px 22px 24px;border-radius:22px}
  .login-mobile-brand{padding-bottom:22px;margin-bottom:24px}.login-mobile-mark{width:42px;height:42px;border-radius:13px}.login-mobile-brand b{font-size:15px}
  .login-form-head h2{font-size:24px}.login-form-head p{font-size:12px;line-height:1.7}.login-form-kicker{font-size:10px}
  .login-input-wrap{height:50px}.login-submit{height:50px!important;margin-top:20px!important}
  .login-security-row{gap:6px;font-size:10px}.login-help{line-height:1.65}
}

/* ===== 全局弹窗层修复 2026-08-29 =====
   所有“新增 / 编辑 / 管理 / 审核” details 表单统一脱离表格和滚动容器，
   作为真正的全屏遮罩弹窗渲染，避免被 table-wrap / grid / overflow 裁切。 */
body.nf-modal-open{overflow:hidden!important}
.nf-modal-backdrop{position:fixed;inset:0;background:rgba(8,20,36,.50);backdrop-filter:blur(3px);z-index:99980}
.nf-modal-floating{
  position:fixed!important;left:50%!important;right:auto!important;top:50%!important;bottom:auto!important;
  transform:translate(-50%,-50%)!important;z-index:99990!important;
  width:min(700px,calc(100vw - 64px))!important;min-width:0!important;max-width:calc(100vw - 64px)!important;
  max-height:calc(100vh - 72px)!important;overflow:auto!important;overscroll-behavior:contain;
  margin:0!important;padding:24px!important;border:1px solid var(--line)!important;border-radius:18px!important;
  background:#fff!important;box-shadow:0 30px 100px rgba(3,16,30,.34)!important;
}
.nf-modal-floating.wide{width:min(1080px,calc(100vw - 64px))!important}
.nf-modal-floating form{min-width:0!important;margin-top:10px!important}
.nf-modal-floating .grid{min-width:0}.nf-modal-floating input,.nf-modal-floating select,.nf-modal-floating textarea{max-width:100%}
.nf-modal-close{
  position:sticky;float:right;top:0;display:inline-flex;align-items:center;justify-content:center;
  min-width:62px;width:auto;height:36px;padding:0 13px;margin:-10px -10px 10px 14px;
  border:1px solid #dce4ed;border-radius:10px;background:#fff;color:#44566d;
  font-size:13px;font-weight:750;line-height:1;cursor:pointer;z-index:5;box-shadow:0 4px 14px rgba(20,42,66,.09)
}
.nf-modal-close:hover{background:#f3f7fb;color:#132033;border-color:#cfd9e5}
.nf-modal-floating:after{content:"";display:block;clear:both}
@media(max-width:700px){
  .nf-modal-floating,.nf-modal-floating.wide{
    left:10px!important;right:10px!important;top:10px!important;bottom:calc(10px + env(safe-area-inset-bottom))!important;
    transform:none!important;width:auto!important;max-width:none!important;max-height:none!important;border-radius:18px!important;padding:17px!important
  }
  .nf-modal-close{margin:-5px -5px 10px 10px}
}

/* 工程师认证审核资料 */
.engineer-doc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:8px}.engineer-doc{border:1px solid var(--line);border-radius:11px;padding:11px;background:#fbfdff;min-width:0}.engineer-doc .doc-title{font-weight:750;white-space:normal}.engineer-doc .doc-meta{font-size:12px;color:var(--muted);white-space:normal;overflow-wrap:anywhere;margin-top:4px}.engineer-doc .doc-actions{display:flex;gap:7px;align-items:end;margin-top:9px;flex-wrap:wrap}.engineer-doc .doc-actions>*{min-width:120px;flex:1}.engineer-summary{white-space:normal;line-height:1.7;background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:10px}.engineer-location{white-space:normal;min-width:200px}.review-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.review-checklist label{font-weight:600;background:#f8fafc;border:1px solid var(--line);border-radius:9px;padding:8px;margin:0}.review-warning{background:#fff8e8;border:1px solid #efdca9;color:#805700;border-radius:10px;padding:10px;font-size:12px;margin-top:10px}.review-success{background:#ebfaf3;border:1px solid #c7ead9;color:#086847;border-radius:10px;padding:10px;font-size:12px;margin-top:10px}
@media(max-width:700px){.engineer-doc-grid,.review-checklist{grid-template-columns:1fr}}
.engineer-doc-preview{display:block;margin-top:9px;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#eef3f8;max-height:190px}.engineer-doc-preview img{width:100%;height:180px;object-fit:contain;display:block;background:#f8fafc}

/* 服务商组织关系与工程师材料连续审核 */
.doc-inline-result{display:inline-block;margin-left:8px;font-size:12px;font-weight:700;vertical-align:middle}.doc-inline-result.ok{color:var(--green)}.doc-inline-result.bad{color:var(--red)}
.provider-relation-note{background:#eef8fd;border:1px solid #c9e7f4;color:#12678f;border-radius:10px;padding:10px;font-size:12px}

/* ===== 权限矩阵与异步操作一致性 ===== */
.permission-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;margin:0 0 14px;border:1px solid var(--line);border-radius:12px;background:#f8fbff}
.permission-group{padding:14px!important}.permission-group-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.permission-group-head h3{margin:0}
.permission-item{font-weight:500;margin:9px 0;display:flex;gap:8px;align-items:flex-start;line-height:1.45}.permission-item input{width:auto;margin-top:4px;flex:0 0 auto}.permission-item span{min-width:0}.permission-save{position:sticky;bottom:0;margin:14px -4px -4px;padding:12px 4px 4px;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 24%);z-index:2}
.btn-xs{min-height:28px!important;height:28px!important;padding:0 8px!important;border-radius:8px!important;font-size:11px!important}
@media(max-width:700px){.permission-toolbar{align-items:stretch}.permission-toolbar .btn{flex:1 1 calc(50% - 4px)}.permission-toolbar .muted{flex-basis:100%}.permission-group-head{align-items:flex-start}.permission-group-head .btn{flex:0 0 auto}}

/* 飞服分类筛选与管理状态 */
.flight-filter-card{display:block;text-decoration:none;color:var(--text);transition:.18s ease;min-width:0}
.flight-filter-card:hover{transform:translateY(-1px);border-color:#a8cfff;box-shadow:0 10px 28px rgba(20,90,170,.09)}
.flight-filter-card.active{border-color:#1D678B;background:#f2f7ff;box-shadow:0 0 0 2px rgba(29,103,139,.08)}
.flight-filter-card.active b{color:#126bd2}
.flight-filter-card span{display:block;margin-top:4px;word-break:break-all}
@media(max-width:700px){.flight-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.flight-filter-card{padding:12px}.flight-filter-card .service-icon{margin-bottom:7px}}

.login-honeypot{position:absolute!important;left:-99999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.login-captcha-row{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:10px;align-items:center}
.login-captcha-image{height:48px;border:1px solid #dbe3ef;background:#f7f9fc;border-radius:10px;padding:0;overflow:hidden;cursor:pointer}
.login-captcha-image img{display:block;width:100%;height:100%;object-fit:cover}
.side-security-link{display:inline-block;margin-top:7px;font-size:12px;color:rgba(255,255,255,.72);text-decoration:none}.side-security-link:hover{color:#fff}
@media(max-width:640px){.login-captcha-row{grid-template-columns:1fr 128px}}

/* 通用布局工具 */
.grid-full{grid-column:1/-1}.grid-span-2{grid-column:span 2}
.mt-5px{margin-top:5px}.mt-6px{margin-top:6px}.mt-8px{margin-top:8px}.mt-10px{margin-top:10px}.mt-12px{margin-top:12px}.mt-14px{margin-top:14px}.mt-16px{margin-top:16px}.mt-18px{margin-top:18px}.mt-22px{margin-top:22px}
.mb-10px{margin-bottom:10px}.mb-16px{margin-bottom:16px}.pt-10px{padding-top:10px}
.w-auto{width:auto}.w-80px{width:80px}.w-90px{width:90px}.flex-1{flex:1}.d-inline{display:inline}.d-none{display:none}.font-medium{font-weight:500}.font-15{font-size:15px}
.clickable-strong{cursor:pointer;font-weight:700}.flex-align-end{display:flex;align-items:end}.flex-gap-6{display:flex;gap:6px}.flex-gap-8{display:flex;gap:8px}.flex-gap-8-wrap{display:flex;gap:8px;flex-wrap:wrap}.flex-gap-6-wrap{display:flex;gap:6px;flex-wrap:wrap}.flex-gap-10-wrap-center{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.inline-flex-ml-8{display:inline-flex;margin-left:8px}
.flex-wrap-gap-8-mixed{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 14px}.mt-10-flex-wrap-center{margin-top:10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.mt-12-flex-wrap{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
.mt-28-medium{margin-top:28px;font-weight:500}.mt-29-medium{margin-top:29px;font-weight:500}.m-14-0-4{margin:14px 0 4px}.m-8-0{margin:8px 0}.center-max-520{margin:auto;max-width:520px}.media-max-260x90{max-width:260px;max-height:90px}
.min-w-300{min-width:300px}.min-w-300-mt-8{min-width:300px;margin-top:8px}.min-w-320-mt-8{min-width:320px;margin-top:8px}.min-w-380-mt-8{min-width:380px;margin-top:8px}.min-w-420-mt-8{min-width:420px;margin-top:8px}.min-w-520-mt-9{min-width:520px;margin-top:9px}.flex-gap-5-min-w-360{display:flex;gap:5px;min-width:360px}
.small-center-pad{font-size:12px;padding:10px;text-align:center}.secret-key-text{font-size:18px;word-break:break-all}.is-removing{opacity:.35;pointer-events:none}

/* 二次验证绑定 */
.mfa-setup-grid{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:22px;align-items:start;margin-top:14px}
.mfa-qr-card,.mfa-confirm-card{border:1px solid var(--line);border-radius:14px;background:#fbfdff;padding:18px}
.mfa-qr{width:min(250px,100%);aspect-ratio:1;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;border:1px solid #dce5ef;border-radius:12px;background:#fff;color:var(--muted);font-size:12px;overflow:hidden}
.mfa-qr svg{display:block;width:100%;height:100%}.mfa-qr.is-error{padding:18px;text-align:center;color:var(--red)}
.mfa-qr-title{font-weight:750;text-align:center;margin:8px 0 5px}.mfa-confirm-card h3{margin-top:0}.mfa-steps{padding-left:20px;line-height:1.75;color:var(--muted)}
.mfa-secret-fallback{margin-top:16px;border-top:1px dashed var(--line);padding-top:12px}.mfa-secret-fallback summary{cursor:pointer;font-weight:700;color:#33506f}.mfa-secret-fallback .secret-key-text{font-size:15px;background:#f3f6fa;border-radius:9px;padding:10px}
@media(max-width:760px){.mfa-setup-grid{grid-template-columns:1fr}.mfa-qr{width:min(270px,88vw)}}


/* 二次验证登录 */
.mfa-login-experience{min-height:calc(100vh - 126px);padding:28px 32px}
.mfa-login-shell{width:min(960px,100%);grid-template-columns:minmax(0,.92fr) minmax(380px,1.08fr);border-radius:24px;background:#fff;box-shadow:0 28px 78px rgba(0,19,44,.28)}
.mfa-login-form-panel{min-height:520px;padding:48px 46px;background:#fff;justify-content:center}
.mfa-login-badge{display:inline-flex;align-items:center;align-self:flex-start;padding:6px 10px;border-radius:999px;background:#edf6ff;color:#126bd2;font-size:11px;font-weight:800;letter-spacing:.04em;margin-bottom:16px}
.mfa-login-head{margin-bottom:18px}.mfa-login-head h2{font-size:30px}.mfa-login-head p{font-size:13px;line-height:1.75;max-width:430px}
.mfa-account-chip{display:flex;align-items:center;gap:11px;padding:11px 13px;margin:0 0 22px;border:1px solid #e0e8f1;border-radius:13px;background:#f8fbff}
.mfa-account-icon{flex:0 0 auto;width:31px;height:31px;border-radius:10px;display:grid;place-items:center;background:#e5f8ef;color:#087850;font-weight:900}
.mfa-account-chip div{min-width:0;display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:baseline}.mfa-account-chip small{grid-column:1/-1;color:#8a98a9;font-size:10px}.mfa-account-chip b{font-size:13px;color:#1b2b3d}.mfa-account-chip span:last-child{font-size:11px;color:#7b8899;white-space:nowrap}
.mfa-code-wrap input{letter-spacing:.08em;font-size:16px}.mfa-login-form .login-submit{margin-top:18px!important}
.mfa-login-hints{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;color:#8d99a8;font-size:10.5px;flex-wrap:wrap}.mfa-login-hints i{width:3px;height:3px;border-radius:50%;background:#c8d0d9}
.mfa-back-login{display:block;text-align:center;margin-top:14px;color:#6d7f92;text-decoration:none;font-size:11px}.mfa-back-login:hover{color:var(--primary)}
.mfa-login-visual{position:relative;overflow:hidden;min-height:520px;padding:52px 48px;display:flex;flex-direction:column;color:#fff;background:linear-gradient(145deg,#07172a 0%,#0b2740 60%,#0a4654 100%)}
.mfa-login-visual:before{content:"";position:absolute;width:360px;height:360px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-145px;top:-80px;box-shadow:0 0 0 58px rgba(255,255,255,.025),0 0 0 116px rgba(255,255,255,.015)}
.mfa-login-visual:after{content:"";position:absolute;left:-80px;bottom:-120px;width:310px;height:310px;border-radius:50%;background:radial-gradient(circle,rgba(20,199,163,.18),rgba(20,199,163,0) 68%)}
.mfa-shield{position:relative;z-index:2;width:68px;height:76px;margin-bottom:28px;display:grid;place-items:center;background:linear-gradient(155deg,#1789ff,#15c7a3);clip-path:polygon(50% 0,92% 15%,88% 65%,50% 100%,12% 65%,8% 15%);filter:drop-shadow(0 12px 28px rgba(0,0,0,.24))}.mfa-shield span{font-size:26px;font-weight:900}
.mfa-visual-copy,.mfa-progress-list,.mfa-session-note{position:relative;z-index:2}.mfa-visual-kicker{font-size:10px;font-weight:850;letter-spacing:.18em;color:#7fdac9;margin-bottom:9px}.mfa-visual-copy h3{font-size:25px;margin:0 0 12px}.mfa-visual-copy p{max-width:420px;color:#b8cad8;font-size:13px;line-height:1.8;margin:0}
.mfa-progress-list{display:grid;gap:10px;margin-top:30px}.mfa-progress-list>div{display:flex;align-items:center;gap:12px;padding:12px 13px;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:rgba(255,255,255,.035)}.mfa-progress-list>div>span{width:29px;height:29px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.08);color:#9eb4c5;font-size:12px;font-weight:850}.mfa-progress-list b,.mfa-progress-list small{display:block}.mfa-progress-list b{font-size:12px}.mfa-progress-list small{margin-top:2px;color:#8fa7b9;font-size:10px}.mfa-progress-list .done>span{background:rgba(21,199,163,.18);color:#68e3c9}.mfa-progress-list .active{border-color:rgba(80,165,255,.28);background:rgba(29,103,139,.09)}.mfa-progress-list .active>span{background:#1D678B;color:#fff}.mfa-progress-list .active small{color:#b8d4f7}
.mfa-session-note{display:flex;align-items:center;gap:11px;margin-top:auto;padding-top:24px;color:#b4c7d4}.mfa-session-note>span{font-size:20px}.mfa-session-note b,.mfa-session-note small{display:block}.mfa-session-note b{font-size:11px;color:#dce8ef}.mfa-session-note small{margin-top:3px;font-size:10px;color:#8ea8ba}
@media(max-width:760px){.mfa-login-experience{min-height:calc(100dvh - 88px);padding:0;background:linear-gradient(180deg,#0b2945 0,#0b2945 148px,#f5f8fc 148px,#f5f8fc 100%)}.mfa-login-shell{display:block;width:auto;margin:72px 14px 20px;border-radius:20px}.mfa-login-form-panel{min-height:auto;padding:30px 22px 24px}.mfa-login-visual{display:none}.mfa-login-head h2{font-size:26px}.mfa-account-chip{margin-bottom:18px}.mfa-login-hints{line-height:1.5}}

/* 后台统一分页 */
.nf-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 2px 2px}.nf-pagination-meta{font-size:13px;color:var(--muted,#6b7280)}.nf-pagination-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.nf-page-size-form{display:flex;align-items:center;margin:0}.nf-page-size-form label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted,#6b7280);margin:0}.nf-page-size-form select{min-width:78px;padding:6px 26px 6px 8px}.nf-page-num{min-width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:#334155;text-decoration:none;font-size:13px}.nf-page-num.active{background:var(--primary,#0A6DFF);border-color:var(--primary,#0A6DFF);color:#fff;font-weight:700}.btn.disabled{opacity:.45;pointer-events:none}.nf-pagination .btn{white-space:nowrap}@media(max-width:760px){.nf-pagination{align-items:flex-start}.nf-pagination-actions{width:100%}.nf-page-size-form{margin-right:auto}}

/* 禁用按钮状态。 */
.btn:disabled,.btn[disabled]{opacity:.48;cursor:not-allowed;pointer-events:none;filter:saturate(.45)}


/* 分页“每页”区域保持横排，避免全局表单宽度规则挤压标签。 */
.nf-page-size-form{display:inline-flex!important;align-items:center!important;flex:0 0 auto!important;min-width:max-content!important;width:auto!important}
.nf-page-size-form label{display:inline-flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;gap:7px!important;white-space:nowrap!important;word-break:keep-all!important;writing-mode:horizontal-tb!important;width:auto!important;min-width:122px!important;margin:0!important}
.nf-page-size-label{display:inline-block!important;flex:0 0 auto!important;white-space:nowrap!important;word-break:keep-all!important;writing-mode:horizontal-tb!important;line-height:1.1!important}
.nf-page-size-form select{display:inline-block!important;width:86px!important;min-width:86px!important;max-width:86px!important;flex:0 0 86px!important;padding:6px 26px 6px 9px!important}
.nf-pagination-actions{flex-wrap:nowrap!important}
@media(max-width:760px){.nf-pagination-actions{flex-wrap:wrap!important}.nf-page-size-form{min-width:122px!important}}

/* 行政区划级联选择。 */
.nf-region-select{min-width:0}
.nf-region-select.nf-region-loading{opacity:.68;cursor:wait;background-image:linear-gradient(90deg,rgba(37,125,249,.06),rgba(37,125,249,.13),rgba(37,125,249,.06));background-size:220% 100%;animation:nfRegionLoading 1.15s linear infinite}
@keyframes nfRegionLoading{0%{background-position:100% 0}100%{background-position:-100% 0}}

/* 协议与政策富文本编辑器 */
.policy-rich-editor{min-height:360px;border:1px solid #d7deea;border-radius:10px;padding:16px;background:#fff;overflow:auto}
.policy-rich-editor:focus{outline:2px solid rgba(37,125,249,.16);border-color:var(--primary,#257df9)}

/* 正式商用操作反馈 */
.nf-action-feedback{position:fixed;inset:0;z-index:100200;display:flex;align-items:center;justify-content:center;padding:24px}.nf-action-feedback-shade{position:absolute;inset:0;background:rgba(9,20,35,.48);backdrop-filter:blur(3px)}.nf-action-feedback-box{position:relative;width:min(430px,calc(100vw - 40px));background:#fff;border-radius:18px;box-shadow:0 26px 80px rgba(15,35,60,.22);padding:28px;text-align:center}.nf-action-feedback-icon{width:52px;height:52px;margin:0 auto 14px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;background:#fff1f1;color:#c43838}.nf-action-feedback-box.is-success .nf-action-feedback-icon{background:#eaf9f1;color:#11885d}.nf-action-feedback-box h3{margin:0 0 9px;font-size:20px;color:#17283c}.nf-action-feedback-box p{margin:0 0 20px;color:#617083;font-size:14px;line-height:1.7;white-space:pre-line}.nf-action-feedback-box .btn{min-width:120px}

/* 全国属地服务运营：正式商用统一组件 */
.c10-tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 20px;padding:6px;background:#f5f7fa;border:1px solid #edf1f5;border-radius:12px;scrollbar-width:none}.c10-tabs::-webkit-scrollbar{display:none}.c10-tabs .tab{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 14px;border-radius:9px;color:#526375;text-decoration:none;line-height:1.2;transition:.15s}.c10-tabs .tab:hover{background:#eef4f8;color:#1769aa}.c10-tabs .tab.active{background:#fff;color:#1769aa;font-weight:600;box-shadow:0 1px 5px rgba(16,35,61,.08)}
.c10-action-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px}.c10-action-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0}.c10-action-form select{min-width:150px;width:auto}.c10-action-form .btn{min-height:38px}.c10-review-form{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.c10-dispatch-layout{display:grid;grid-template-columns:minmax(310px,38%) minmax(0,1fr);gap:16px;align-items:start}.c10-task-list,.c10-candidate-list{display:grid;gap:10px}.c10-task-card{display:block;border:1px solid var(--line);border-radius:12px;padding:13px 14px;color:var(--text);background:#fff;transition:.15s}.c10-task-card:hover{border-color:#b8d9e8;color:var(--text);box-shadow:0 6px 18px rgba(21,59,87,.07)}.c10-task-card.active{border-color:#8ecce8;background:#f6fbfe;box-shadow:0 0 0 2px rgba(7,139,199,.06)}.c10-task-title{font-weight:700;margin:6px 0 3px;white-space:normal}.c10-chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.c10-chip-row span{display:inline-flex;align-items:center;min-height:25px;padding:3px 8px;border-radius:999px;background:#f0f4f8;color:#536174;font-size:11px}
.c10-candidate-card{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:16px;padding:15px;border:1px solid var(--line);border-radius:13px;background:#fff}.c10-candidate-main{min-width:0}.c10-candidate-action{display:flex;flex-direction:column;justify-content:center;gap:10px;padding-left:16px;border-left:1px solid var(--line)}.c10-candidate-action textarea{min-height:76px}.c10-reason-list{display:grid;gap:4px;margin-top:10px}.c10-reason{font-size:12px;white-space:normal}.c10-reason.ok{color:#237557}.c10-reason.bad{color:#a24a35}
.c10-config-card{border:1px solid var(--line);border-radius:12px;background:#fff;margin:12px 0;overflow:hidden}.c10-config-card>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;list-style:none}.c10-config-card>summary::-webkit-details-marker{display:none}.c10-config-card[open]>summary{background:#f8fbfd;border-bottom:1px solid var(--line)}.c10-config-body{padding:16px}.c10-check-grid{display:flex;gap:8px;flex-wrap:wrap}.check-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:7px 11px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;font-weight:600;margin:0}.check-chip input{width:auto;min-height:0;margin:0}
.c10-network-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;min-width:320px}.c10-network-actions form,.c10-node-runtime-form,.c10-node-status-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0}.c10-network-actions select{min-width:145px;width:auto}.c10-network-actions .btn{min-width:76px;white-space:nowrap}.c10-node-runtime-form select,.c10-node-runtime-form input,.c10-node-status-form select{min-height:36px}.c10-node-runtime-form input[type=number]{width:96px}.c10-panel-copy{max-width:760px}.c10-capability-forms{align-items:start}.c10-capability-forms .form-stack{display:flex;flex-direction:column;gap:16px}.c10-guidance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.c10-guidance-grid>div{padding:14px;border:1px solid var(--line);border-radius:11px;background:#fafcff}.c10-guidance-grid p{margin:6px 0 0;line-height:1.65}
@media(max-width:1100px){.c10-dispatch-layout{grid-template-columns:1fr}.c10-candidate-card{grid-template-columns:1fr}.c10-candidate-action{border-left:0;border-top:1px solid var(--line);padding:14px 0 0}.c10-network-actions{min-width:0;justify-content:flex-start}.c10-node-runtime-form,.c10-node-status-form{align-items:stretch}.c10-node-runtime-form input[type=number]{width:110px}}
@media(max-width:700px){.c10-tabs{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;margin-left:-2px;margin-right:-2px}.c10-tabs .tab{flex:0 0 auto}.c10-action-bar>.btn,.c10-action-bar>form,.c10-action-form,.c10-action-form .btn{width:100%}.c10-action-form select{width:100%}.c10-network-actions{display:grid;grid-template-columns:1fr;width:100%;min-width:0}.c10-network-actions form{display:grid;grid-template-columns:minmax(0,1fr) 86px;width:100%}.c10-network-actions form .btn{width:100%}.c10-network-actions>form:first-child{grid-template-columns:1fr}.c10-candidate-card{padding:13px}.c10-guidance-grid{grid-template-columns:1fr}.c10-check-grid{display:grid;grid-template-columns:1fr}}

/* 全国服务运营经营驾驶舱可视化 */
.cockpit{display:flex;flex-direction:column;gap:18px;min-width:0}.cockpit-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:26px 28px;border-radius:22px;background:linear-gradient(115deg,#081c36 0%,#0a3150 62%,#0b5366 100%);color:#fff;overflow:hidden;position:relative}.cockpit-hero:after{content:"";position:absolute;width:260px;height:260px;border:1px solid rgba(105,226,240,.18);border-radius:50%;right:-72px;top:-118px;box-shadow:0 0 0 42px rgba(105,226,240,.035),0 0 0 88px rgba(105,226,240,.025)}.cockpit-hero>div{position:relative;z-index:1}.cockpit-hero .eyebrow{color:#75e2df;letter-spacing:.12em;font-weight:700;font-size:12px}.cockpit-hero h2{font-size:30px;margin:7px 0 6px;color:#fff}.cockpit-hero p{margin:0;color:#b8d3df}.cockpit-hero-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cockpit-hero-actions .scope-chip{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.16);color:#e6f7fb}.cockpit-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.cockpit-kpi{min-width:0;background:#fff;border:1px solid #e8edf4;border-radius:16px;padding:15px 16px;text-decoration:none;color:#15243a;position:relative;overflow:hidden;transition:border-color .18s ease,transform .18s ease}.cockpit-kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#2782f5}.cockpit-kpi.warning:before{background:#f3a72f}.cockpit-kpi.positive:before{background:#25aa78}.cockpit-kpi span{display:block;color:#718096;font-size:13px}.cockpit-kpi b{display:block;font-size:24px;line-height:1.25;margin:5px 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cockpit-kpi small{color:#96a2b1}.cockpit-main-grid{display:grid;grid-template-columns:minmax(0,2.05fr) minmax(300px,.82fr);gap:16px;align-items:stretch}.cockpit-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.cockpit-panel{background:#fff;border:1px solid #e6edf4;border-radius:18px;padding:18px;min-width:0;box-shadow:0 8px 24px rgba(24,48,79,.035)}.cockpit-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.cockpit-panel-head h3{margin:0;font-size:18px}.cockpit-panel-head p{margin:4px 0 0;color:#8491a2;font-size:13px}.cockpit-panel-head>a{white-space:nowrap;font-size:13px}.cockpit-map-panel{padding-bottom:14px}.map-live{display:flex;align-items:center;gap:7px;color:#6f7f90;font-size:12px;white-space:nowrap}.map-live i{width:8px;height:8px;border-radius:50%;background:#25b881;box-shadow:0 0 0 5px rgba(37,184,129,.11)}.map-toolbar{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}.map-toolbar button{border:1px solid #dce5ee;background:#f8fafc;color:#536579;border-radius:999px;padding:7px 11px;cursor:pointer;font:inherit;font-size:12px}.map-toolbar button.active{background:#eef6ff;border-color:#8abcf9;color:#1768c5}.map-toolbar b{font-weight:700;margin-left:3px}.ops-map{position:relative;overflow:hidden;border-radius:15px;background:#0a2036;aspect-ratio:1000/560;min-height:360px}.ops-map-base{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.78) contrast(.96) brightness(.87)}.ops-map:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(6,30,50,.08),rgba(6,30,50,.19));box-shadow:inset 0 0 45px rgba(5,25,44,.25)}.ops-map-points{position:absolute;inset:0;width:100%;height:100%;z-index:2}.ops-map-marker{stroke:rgba(255,255,255,.96);stroke-width:2;cursor:pointer;filter:drop-shadow(0 3px 5px rgba(4,22,38,.35));outline:none}.ops-map-marker:focus{stroke:#fff;stroke-width:4}.ops-map-marker.node{fill:#30c9b0}.ops-map-marker.engineer{fill:#5a8df7}.ops-map-marker.task{fill:#f1a23c}.ops-map-marker.risk{fill:#ed5f64;animation:nf-map-blink 1.8s ease-in-out infinite}.ops-map-marker.hidden{display:none}.ops-map-loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;background:rgba(7,29,47,.80);color:#c8e4ed;padding:9px 13px;border-radius:10px;font-size:12px}.ops-map-detail{position:absolute;right:12px;bottom:12px;z-index:5;width:min(310px,calc(100% - 24px));background:rgba(255,255,255,.97);border:1px solid rgba(214,226,236,.9);border-radius:14px;padding:14px 38px 14px 14px;box-shadow:0 14px 35px rgba(9,27,43,.18);color:#23374c}.ops-map-detail>button{position:absolute;right:9px;top:7px;border:0;background:transparent;color:#718095;font-size:22px;cursor:pointer}.ops-map-detail h4{margin:0 0 4px;font-size:15px}.ops-map-detail p{margin:3px 0;color:#6f7f90;font-size:12px}.ops-map-detail a{display:inline-flex;margin-top:7px;font-size:12px}.map-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:11px;color:#6c7a8c;font-size:12px}.map-legend span:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.map-legend .node:before{background:#30c9b0}.map-legend .engineer:before{background:#5a8df7}.map-legend .task:before{background:#f1a23c}.map-legend .risk:before{background:#ed5f64}.map-legend a{margin-left:auto}.cockpit-todo-list{display:flex;flex-direction:column;gap:8px}.cockpit-todo{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;border:1px solid #e8edf3;border-radius:12px;text-decoration:none;color:#26384d;background:#fbfcfd}.cockpit-todo b{display:block;font-size:13px}.cockpit-todo small{display:block;color:#8997a7;margin-top:2px}.cockpit-todo strong{font-size:23px}.cockpit-todo.red strong{color:#dc4f55}.cockpit-todo.amber strong{color:#d68a1d}.cockpit-todo.blue strong{color:#246fca}.cockpit-todo.purple strong{color:#725bd6}.network-mini-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.network-mini-summary>div{background:#f6f9fc;border-radius:12px;padding:11px}.network-mini-summary span{display:block;font-size:11px;color:#8290a0}.network-mini-summary b{font-size:18px}.trend-svg{display:block;width:100%;height:190px}.trend-svg text{font-size:9px;fill:#8a97a6}.trend-axis{stroke:#e8edf3;stroke-width:1}.trend-bar-gmv{fill:#397eea}.trend-bar-received{fill:#25b080}.trend-legend{display:flex;gap:16px;margin-top:10px;color:#738194;font-size:12px}.trend-legend i{display:inline-block;width:9px;height:9px;border-radius:3px;background:#397eea;margin-right:5px}.trend-legend i.received{background:#25b080}.business-pulse{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.business-pulse a{border:1px solid #e8edf3;border-radius:13px;padding:12px;text-decoration:none;color:#23374c;background:#fbfcfe;min-width:0}.business-pulse span{display:block;font-size:12px;color:#758497}.business-pulse b{display:block;font-size:22px;margin:4px 0}.business-pulse small{display:block;color:#96a1ae;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fulfillment-pulse,.repair-pulse{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.fulfillment-pulse a,.repair-pulse>div{padding:13px;border-radius:13px;background:#f7f9fc;text-decoration:none;color:#25384d;border:1px solid #ebeff4}.fulfillment-pulse span,.repair-pulse span{display:block;color:#758497;font-size:12px}.fulfillment-pulse b,.repair-pulse b{font-size:22px;display:block;margin-top:3px}.fulfillment-pulse .warn b{color:#d48a1f}.fulfillment-pulse .danger b{color:#da4b54}.repair-pulse{grid-template-columns:repeat(4,minmax(0,1fr))}
@keyframes nf-map-blink{0%,100%{opacity:1}50%{opacity:.48}}
@media(max-width:1280px){.cockpit-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.cockpit-main-grid{grid-template-columns:1fr}.business-pulse{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.cockpit-hero{align-items:flex-start;flex-direction:column}.cockpit-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cockpit-grid-2{grid-template-columns:1fr}.fulfillment-pulse{grid-template-columns:repeat(3,minmax(0,1fr))}.business-pulse{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-map{min-height:300px}}
@media(max-width:560px){.cockpit-hero{padding:20px}.cockpit-hero h2{font-size:25px}.cockpit-kpis{grid-template-columns:1fr 1fr}.cockpit-kpi b{font-size:19px}.cockpit-panel{padding:14px}.map-toolbar{gap:5px}.map-toolbar button{padding:6px 8px}.ops-map{min-height:250px}.network-mini-summary,.repair-pulse,.fulfillment-pulse{grid-template-columns:1fr 1fr}.business-pulse{grid-template-columns:1fr 1fr}.trend-svg{height:165px}}

/* 经营驾驶舱全国地图：非生产节点保留可视但弱化，忙碌节点提示容量状态 */
.ops-map-marker.node.inactive{opacity:.42;stroke-dasharray:2 2}
.ops-map-marker.node.busy{stroke-width:3}

/* 全平台经营驾驶舱布局 */
.dashboard-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 26px;margin-bottom:18px;border-radius:20px;background:linear-gradient(115deg,#081c36 0%,#0a3150 62%,#0b5366 100%);color:#fff;position:relative;overflow:hidden}.dashboard-hero:after{content:"";position:absolute;width:250px;height:250px;border:1px solid rgba(105,226,240,.18);border-radius:50%;right:-75px;top:-120px;box-shadow:0 0 0 42px rgba(105,226,240,.035),0 0 0 88px rgba(105,226,240,.025)}.dashboard-hero>div{position:relative;z-index:1}.dashboard-hero .eyebrow{color:#75e2df;letter-spacing:.12em;font-weight:700;font-size:12px}.dashboard-hero h2{font-size:29px;margin:7px 0 6px;color:#fff}.dashboard-hero p{margin:0;color:#b8d3df;max-width:820px}.dashboard-hero-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.dashboard-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,310px);gap:16px;align-items:start}.dashboard-main,.dashboard-side{min-width:0}.dashboard-side{display:flex;flex-direction:column;gap:14px}.dashboard-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:22px 0 10px}.dashboard-section-head h2{margin:0}.dashboard-visual-grid{align-items:stretch}.dashboard-map-trend-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr)}.dashboard-bars{display:flex;flex-direction:column;gap:12px}.dashboard-bars.compact{gap:9px;margin-top:14px}.dashboard-bar-row{min-width:0}.dashboard-bar-label{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:13px;margin-bottom:6px}.dashboard-bar-label span{color:#7d8998;white-space:nowrap}.dashboard-bar-track{height:8px;border-radius:99px;background:#edf2f7;overflow:hidden}.dashboard-bar-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2c7df0,#2eb89f)}.dashboard-network-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.dashboard-network-summary>div{background:#f7f9fc;border:1px solid #e9eef4;border-radius:12px;padding:11px}.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.dashboard-kpi-grid>div{background:#f7f9fc;border:1px solid #e9eef4;border-radius:12px;padding:13px}.dashboard-kpi-grid small{display:block;color:#7c8999}.dashboard-kpi-grid b{display:block;font-size:22px;margin-top:5px}.dashboard-action-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid #edf1f5;text-decoration:none;color:inherit}.dashboard-action-row:last-child{border-bottom:0}.dashboard-action-row b,.dashboard-action-row small{display:block}.dashboard-action-row small{color:#8793a2;margin-top:3px}.dashboard-quality-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #edf1f5}.dashboard-quality-row:last-child{border-bottom:0}.dashboard-shortcuts{display:grid;grid-template-columns:1fr;gap:8px;margin-top:10px}.dashboard-shortcuts a{display:block;padding:11px 12px;border:1px solid #e8edf3;border-radius:12px;text-decoration:none;color:#26384d;background:#fbfcfd}.dashboard-shortcuts b,.dashboard-shortcuts small{display:block}.dashboard-shortcuts small{color:#8997a7;margin-top:3px}.kpi-good{color:#208f67!important}.kpi-bad{color:#d54b55!important}
@media(max-width:1250px){.dashboard-layout{grid-template-columns:1fr}.dashboard-side{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-map-trend-grid{grid-template-columns:1fr}.dashboard-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.dashboard-hero{align-items:flex-start;flex-direction:column}.dashboard-side{grid-template-columns:1fr}.dashboard-kpi-grid,.dashboard-network-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-section-head{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.dashboard-hero{padding:20px}.dashboard-hero h2{font-size:25px}.dashboard-kpi-grid,.dashboard-network-summary{grid-template-columns:1fr}.dashboard-bar-label{align-items:flex-start;flex-direction:column;gap:2px}.dashboard-bar-label span{white-space:normal}}
.map-toolbar .map-scope{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#edf3f8;color:#43566c;font-size:12px;font-weight:700}.map-toolbar .map-back{background:#fff;border-style:dashed}.ops-map-marker.region{fill:#37b5c9;stroke:#fff;stroke-width:2.2;opacity:.9;filter:drop-shadow(0 4px 8px rgba(4,30,50,.38))}.ops-map-marker.region:hover,.ops-map-marker.region:focus{fill:#56cadd;stroke-width:3}


/* 驾驶舱采用单列经营逻辑，地图作为核心运营画布 */
.dashboard-layout{display:block!important}.dashboard-main{width:100%;min-width:0}.dashboard-side{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px;width:100%}.dashboard-map-trend-grid{grid-template-columns:1fr!important}.cockpit-map-panel{grid-column:1/-1}.cockpit-map-panel .ops-map{min-height:560px;height:clamp(560px,58vh,720px)}.cockpit-map-panel .ops-map-base{object-fit:cover}.dashboard-visual-grid{gap:16px}.dashboard-section-head>a,.panel-head>a,.map-legend>a{white-space:nowrap}.order-response-table{min-width:980px}.sticky-action-col{position:sticky;right:0;background:#fff;z-index:2;box-shadow:-10px 0 16px rgba(31,55,82,.05)}.order-response-table thead .sticky-action-col{z-index:3;background:#f8fafc}.enterprise-project-table{min-width:980px;table-layout:fixed}.enterprise-project-table .project-main{width:24%}.enterprise-project-table .project-region{width:28%;white-space:normal}.enterprise-project-table .project-owner{width:16%}.enterprise-project-table .project-volume{width:12%}.enterprise-project-table .project-status{width:10%}.enterprise-project-table .project-actions{width:132px;position:sticky;right:0;background:#fff;z-index:2;box-shadow:-10px 0 16px rgba(31,55,82,.05)}.enterprise-project-table thead .project-actions{background:#f8fafc;z-index:3}.enterprise-project-table .table-actions{flex-wrap:wrap}.enterprise-project-table td{vertical-align:middle}.trust-page-intro{margin-bottom:16px}.trust-page-intro .trust-intro-badge{align-self:flex-start}.aftersales-ops-table,.insurance-ops-table{min-width:1180px}.ops-status-stack{display:grid;gap:5px}.ops-status-stack small{color:#7b8999}.ops-status-stack .badge{width:max-content}.ops-kpi-link{font-size:12px}.c10-dispatch-layout{grid-template-columns:minmax(360px,.78fr) minmax(520px,1.22fr)}
@media(max-width:1250px){.dashboard-side{grid-template-columns:1fr 1fr}.cockpit-map-panel .ops-map{min-height:500px;height:clamp(500px,56vh,650px)}}
@media(max-width:900px){.dashboard-side{grid-template-columns:1fr}.cockpit-map-panel .ops-map{min-height:380px;height:52vh}.c10-dispatch-layout{grid-template-columns:1fr}.sticky-action-col,.enterprise-project-table .project-actions{position:static;box-shadow:none}}

.enterprise-role-matrix{min-width:980px}.enterprise-role-matrix .matrix-label{font-weight:700;color:#10233d}.enterprise-role-matrix .perm-check{text-align:center;white-space:nowrap}


/* 企业成员权限独立工作区 + 经营驾驶舱 + 本地矢量运营地图 */
.permission-domain-tabs{display:flex;gap:8px;margin:0 0 16px;padding:5px;background:#eef3f8;border-radius:14px;width:max-content}.permission-domain-tabs a{padding:10px 18px;border-radius:10px;text-decoration:none;color:#526477;font-weight:700}.permission-domain-tabs a.active{background:#fff;color:#126fe8;box-shadow:0 3px 12px rgba(32,72,114,.10)}
.enterprise-role-selector{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.enterprise-role-card{display:flex;flex-direction:column;gap:5px;min-height:112px;padding:14px;border:1px solid #e5ebf2;border-radius:14px;text-decoration:none;color:#21344a;background:#fbfcfe}.enterprise-role-card:hover{border-color:#8bb8f1}.enterprise-role-card.active{border-color:#2e80ee;background:#f2f7ff;box-shadow:0 0 0 2px rgba(46,128,238,.08)}.enterprise-role-card small{color:#7b8999;line-height:1.5}.enterprise-role-card span{margin-top:auto;color:#2d77d5;font-size:12px;font-weight:700}
.dashboard-layout{display:flex!important;flex-direction:column!important}.dashboard-side{order:-1!important;display:grid!important;grid-template-columns:1.05fr 1.35fr .9fr!important;gap:14px!important;margin:0 0 18px!important}.dashboard-side>.panel{margin:0;min-height:0;padding:18px}.dashboard-side .dashboard-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.dashboard-side .dashboard-shortcuts a{padding:9px 10px}.dashboard-side .dashboard-quality-row{padding:8px 0}.dashboard-side .dashboard-kpi-grid{grid-template-columns:1fr 1fr;gap:7px}.dashboard-side .dashboard-kpi-grid>div{padding:10px}.dashboard-main>.dashboard-section-head:first-of-type{margin-top:4px}.dashboard-todo-metrics{margin-bottom:4px}
.local-vector-map .ops-map-base{position:absolute;inset:0;width:100%;height:100%;z-index:0}.local-vector-map .ops-map-points{position:absolute;inset:0;width:100%;height:100%;z-index:2}.nf-china-outline{fill:#0e4055;fill-opacity:.62;stroke:#73d9e4;stroke-opacity:.42;stroke-width:2}.nf-island-outline{fill:#0e4055;fill-opacity:.62;stroke:#73d9e4;stroke-opacity:.42;stroke-width:2}.nf-map-title{fill:#d9f8ff;font-size:23px;font-weight:700}.nf-map-subtitle{fill:#86b7c7;font-size:13px}.local-vector-map .ops-map-loading{z-index:3}.local-vector-map .ops-map-detail{z-index:4}
@media(max-width:1250px){.enterprise-role-selector{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-side{grid-template-columns:1fr 1fr!important}.dashboard-side>.panel:last-child{grid-column:1/-1}.dashboard-side .dashboard-kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:900px){.enterprise-role-selector{grid-template-columns:1fr 1fr}.dashboard-side{grid-template-columns:1fr!important}.dashboard-side>.panel:last-child{grid-column:auto}.dashboard-side .dashboard-kpi-grid{grid-template-columns:1fr 1fr}.dashboard-side .dashboard-shortcuts{grid-template-columns:1fr}}

/* 经营驾驶舱桌面网格 + 本地中国地理矢量底图 */
.dashboard-exec-grid{display:grid;grid-template-columns:1.05fr .9fr 1.35fr;gap:14px;margin:0 0 18px}.dashboard-exec-panel{margin:0!important;min-width:0;padding:17px 18px}.dashboard-quality-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.dashboard-quality-grid>div,.dashboard-scale-grid>div{min-width:0;border:1px solid #e8edf3;background:#f8fafc;border-radius:12px;padding:11px 12px}.dashboard-quality-grid span,.dashboard-scale-grid small{display:block;color:#748397;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-quality-grid b,.dashboard-scale-grid b{display:block;margin-top:4px;font-size:20px;line-height:1.2}.dashboard-scale-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.dashboard-shortcuts-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin-top:0!important}.dashboard-shortcuts-grid a{padding:10px 11px!important;min-height:58px;display:flex!important;flex-direction:column;justify-content:center}
.dashboard-main{display:block!important}.dashboard-section-head{margin:20px 0 10px}.dashboard-main>.dashboard-section-head:first-child{margin-top:0}.dashboard-metrics{margin-bottom:18px}.dashboard-metrics-6{grid-template-columns:repeat(6,minmax(0,1fr))!important}.dashboard-metrics-5{grid-template-columns:repeat(5,minmax(0,1fr))!important}.dashboard-metrics .metric{min-width:0;padding:14px 14px}.dashboard-metrics .metric-label{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-metrics .metric-value{font-size:22px}.dashboard-metrics .metric-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-map-primary{margin:0 0 18px!important;padding:18px 18px 14px!important}.dashboard-map-primary .ops-map{height:clamp(520px,55vh,660px)!important;min-height:520px!important;aspect-ratio:auto!important;border-radius:18px}.dashboard-map-primary .ops-map-base,.dashboard-map-primary .ops-map-points{width:100%;height:100%;filter:none!important}.map-source-note{margin-left:auto;color:#8a98a8}.dashboard-map-primary .map-legend a{margin-left:0}.dashboard-map-primary .map-legend{gap:12px}.dashboard-map-primary .panel-head{margin-bottom:12px}
.dashboard-analysis-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(360px,.75fr);gap:16px;align-items:stretch;margin-bottom:18px}.dashboard-analysis-grid>.panel{margin:0;min-width:0}.dashboard-trend-panel .trend-svg{width:100%;height:220px!important;min-height:220px;max-height:220px}.dashboard-structure-panel .dashboard-bars{gap:10px}.dashboard-structure-panel .dashboard-bar-label{font-size:12px}.dashboard-structure-panel .dashboard-bar-track{height:7px}
.dashboard-network-panel{margin-bottom:18px!important}.dashboard-network-layout{display:grid;grid-template-columns:minmax(420px,.75fr) minmax(0,1.25fr);gap:18px;align-items:start}.dashboard-network-summary{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:9px!important}.dashboard-network-summary>div{padding:13px 14px!important}.dashboard-network-summary small{display:block;color:#7b8998;font-size:11px}.dashboard-network-summary b{display:block;font-size:23px;margin-top:5px}.dashboard-region-bars{margin-top:0!important}.dashboard-empty-compact{padding:14px!important;min-height:58px!important;display:flex;align-items:center}
.dashboard-growth-grid{margin-bottom:18px}.dashboard-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-kpi-grid>div{min-height:72px}
/* 当前采用顶部管理摘要，避免侧栏布局互相覆盖 */
.dashboard-layout{display:block!important}.dashboard-side{display:none!important}
/* 本地地理底图不使用任何远程图片服务 */
.local-vector-map{background:#071a31}.local-vector-map .ops-map-base{position:absolute;inset:0;width:100%;height:100%;z-index:0;display:block}.local-vector-map .ops-map-points{position:absolute;inset:0;width:100%;height:100%;z-index:2;display:block}.local-vector-map .ops-map-loading{z-index:3}.local-vector-map .ops-map-detail{z-index:4}.ops-map-marker{vector-effect:non-scaling-stroke}
@media(max-width:1500px){.dashboard-exec-grid{grid-template-columns:1fr 1fr}.dashboard-shortcut-panel{grid-column:1/-1}.dashboard-shortcuts-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.dashboard-metrics-6{grid-template-columns:repeat(3,minmax(0,1fr))!important}.dashboard-metrics-5{grid-template-columns:repeat(5,minmax(0,1fr))!important}.dashboard-analysis-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr)}.dashboard-network-layout{grid-template-columns:1fr}.dashboard-network-summary{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media(max-width:1180px){.dashboard-exec-grid{grid-template-columns:1fr}.dashboard-shortcut-panel{grid-column:auto}.dashboard-quality-grid,.dashboard-scale-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.dashboard-shortcuts-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.dashboard-metrics-5{grid-template-columns:repeat(3,minmax(0,1fr))!important}.dashboard-analysis-grid{grid-template-columns:1fr}.dashboard-trend-panel .trend-svg{height:205px!important;min-height:205px;max-height:205px}.dashboard-map-primary .ops-map{height:500px!important;min-height:500px!important}}
@media(max-width:900px){.dashboard-quality-grid,.dashboard-scale-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-shortcuts-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.dashboard-metrics-6,.dashboard-metrics-5{grid-template-columns:repeat(2,minmax(0,1fr))!important}.dashboard-network-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}.dashboard-map-primary .ops-map{height:390px!important;min-height:390px!important}.map-source-note{width:100%;margin-left:0}.dashboard-analysis-grid{gap:12px}}
@media(max-width:560px){.dashboard-exec-grid{gap:10px}.dashboard-quality-grid,.dashboard-scale-grid,.dashboard-shortcuts-grid{grid-template-columns:1fr 1fr!important}.dashboard-metrics-6,.dashboard-metrics-5{grid-template-columns:1fr 1fr!important}.dashboard-network-summary{grid-template-columns:1fr 1fr!important}.dashboard-map-primary{padding:13px!important}.dashboard-map-primary .ops-map{height:300px!important;min-height:300px!important}.dashboard-trend-panel .trend-svg{height:170px!important;min-height:170px;max-height:170px}.dashboard-section-head{align-items:flex-start;flex-direction:column}}

/* === 数据中台可视化后台 / 数据全景 === */
.nf-panorama-entry-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;padding:22px 24px;border-radius:18px;background:linear-gradient(120deg,#07192e,#0a2f4f 62%,#0d5365);color:#fff;box-shadow:0 18px 44px rgba(16,37,60,.12)}
.nf-panorama-entry-head .eyebrow{color:#67dfe1;letter-spacing:.14em;font-weight:800;font-size:12px}.nf-panorama-entry-head h2{margin:6px 0 4px;font-size:28px;color:#fff}.nf-panorama-entry-head p{margin:0;color:#b9d0de;max-width:900px}.nf-panorama-entry-actions{display:flex;gap:10px;flex-wrap:wrap}
.nf-panorama{--pn-bg:#061426;--pn-panel:rgba(9,31,53,.84);--pn-line:rgba(77,184,228,.28);--pn-text:#eaf7ff;--pn-muted:#7fa8bf;--pn-cyan:#21d4e8;--pn-blue:#3a8cff;--pn-green:#26d9a0;--pn-orange:#f3a435;--pn-red:#ff5e6b;position:relative;color:var(--pn-text);background:radial-gradient(circle at 50% 20%,rgba(32,115,149,.17),transparent 33%),linear-gradient(180deg,#071729,#05111f 78%,#04101d);border:1px solid rgba(96,157,187,.16);border-radius:22px;overflow:hidden;box-shadow:0 24px 60px rgba(9,24,43,.16);font-variant-numeric:tabular-nums}
.nf-panorama:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(61,151,190,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(61,151,190,.035) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.55),transparent 82%)}
.nf-panorama-embedded{padding:14px;min-height:900px}.nf-panorama-body{margin:0;background:#020b16;overflow:hidden}.nf-panorama-screen-mode .nf-panorama{position:fixed;inset:0;border:0;border-radius:0;box-shadow:none;padding:12px 16px 16px;min-width:1180px;min-height:720px}
.nf-panorama-header{height:68px;display:grid;grid-template-columns:minmax(280px,1fr) auto minmax(280px,1fr);align-items:center;gap:18px;padding:0 14px 8px;position:relative;z-index:2}.nf-panorama-header:after{content:"";position:absolute;left:23%;right:23%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,#27d7ec,transparent);box-shadow:0 0 10px rgba(39,215,236,.55)}.nf-panorama-brand{display:flex;align-items:center;gap:10px}.nf-panorama-brand img{width:62px;height:34px;object-fit:contain;filter:drop-shadow(0 0 8px rgba(33,212,232,.2))}.nf-panorama-brand b,.nf-panorama-brand span{display:block}.nf-panorama-brand b{font-size:14px;color:#d8f4ff}.nf-panorama-brand span{font-size:11px;color:#6f99b1;margin-top:2px}.nf-panorama-header h1{margin:0;text-align:center;font-size:25px;letter-spacing:.12em;color:#f3fbff;text-shadow:0 0 18px rgba(42,204,235,.45)}.nf-panorama-clock{display:flex;align-items:center;justify-content:flex-end;gap:10px;color:#91b8ca}.nf-panorama-clock b{font-size:13px}.nf-panorama-clock>span{font-size:21px;color:#dff8ff}.nf-panorama-clock button,.nf-panorama-clock a{border:1px solid rgba(66,177,222,.28);background:rgba(16,56,83,.6);color:#bfefff;padding:7px 10px;border-radius:7px;text-decoration:none;cursor:pointer;font:inherit}
.nf-panorama-top-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:0 0 10px;position:relative;z-index:2}.nf-panorama-top-kpis>div{position:relative;min-width:0;padding:10px 13px 9px;background:linear-gradient(180deg,rgba(10,44,70,.86),rgba(7,29,49,.92));border:1px solid rgba(62,166,208,.24);clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px);box-shadow:inset 0 0 20px rgba(32,152,192,.05)}.nf-panorama-top-kpis>div:before{content:"";position:absolute;left:12px;right:12px;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--pn-cyan),transparent);opacity:.48}.nf-panorama-top-kpis span{display:block;color:#76a8bf;font-size:11px}.nf-panorama-top-kpis b{display:block;margin-top:4px;color:#fff;font-size:23px;line-height:1}.nf-panorama-top-kpis .danger b{color:#ff8990}
.nf-panorama-grid{height:calc(100% - 108px);display:grid;grid-template-columns:minmax(230px,16.5%) minmax(620px,1fr) minmax(250px,18%);gap:10px;position:relative;z-index:2}.nf-panorama-left,.nf-panorama-right{display:grid;gap:10px;min-width:0;align-content:stretch}.nf-panorama-left{grid-template-rows:auto auto minmax(0,1fr)}.nf-panorama-right{grid-template-rows:auto auto auto minmax(0,1fr)}.nf-panorama-center{min-width:0;display:grid;grid-template-rows:auto auto minmax(400px,1fr) auto minmax(180px,31%);gap:7px}
.nf-glass-panel{min-width:0;background:linear-gradient(180deg,rgba(8,34,58,.92),rgba(5,24,43,.92));border:1px solid rgba(65,164,204,.22);box-shadow:inset 0 0 28px rgba(24,136,177,.045),0 9px 24px rgba(0,0,0,.12);padding:12px 13px;position:relative;overflow:hidden}.nf-glass-panel:before{content:"";position:absolute;width:55px;height:2px;left:12px;top:0;background:#2dd9e6;box-shadow:0 0 10px #2dd9e6}.nf-glass-panel h2{font-size:14px;margin:0 0 9px;color:#dff7ff;letter-spacing:.04em}.nf-stat-grid,.nf-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.nf-stat-grid>div,.nf-status-grid>div{padding:8px 9px;background:rgba(13,55,84,.58);border:1px solid rgba(74,158,195,.15);border-radius:4px}.nf-stat-grid small,.nf-status-grid small{display:block;color:#78a5bb;font-size:10px}.nf-stat-grid b,.nf-status-grid b{display:block;font-size:20px;color:#ecfaff;margin-top:3px}.nf-status-grid .warn b{color:#ffc65f}.nf-status-grid .danger b{color:#ff7480}
.nf-business-list{display:grid;gap:5px}.nf-business-list>div,.nf-finance-list>div{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid rgba(83,149,180,.12);padding:6px 1px;color:#85aec2;font-size:11px}.nf-business-list>div:last-child,.nf-finance-list>div:last-child{border-bottom:0}.nf-business-list b,.nf-finance-list b{color:#e7f9ff;font-size:16px}.nf-business-list.compact>div{padding:4px 1px}.nf-finance-list .good{color:#46dfa9}.nf-finance-list .warn{color:#ffc65f}
.nf-region-list{display:grid;gap:7px}.nf-region-list>div{display:grid;grid-template-columns:54px 1fr 44px;gap:6px;align-items:center;font-size:10px;color:#8bb0c2}.nf-region-list i{height:5px;background:rgba(54,126,160,.28);position:relative;overflow:hidden}.nf-region-list i:after{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--w);background:linear-gradient(90deg,#159fd3,#26e3ce);box-shadow:0 0 8px rgba(38,227,206,.38)}.nf-region-list b{text-align:right;color:#d4eff9;font-size:10px}
.nf-map-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.nf-map-head h2{margin:0;color:#eafcff;font-size:18px}.nf-map-head p{margin:2px 0 0;color:#719bb2;font-size:11px}.nf-map-scope{display:flex;align-items:center;gap:8px;color:#8eb7ca;font-size:11px}.nf-map-scope>span:not(.live){padding:5px 9px;border:1px solid rgba(72,165,204,.22);background:rgba(11,46,72,.72)}.nf-map-scope button{background:transparent;border:1px solid rgba(72,165,204,.22);color:#9fd5e7;padding:5px 8px;cursor:pointer}.nf-map-scope .live{display:flex;align-items:center;gap:5px}.nf-map-scope .live i{width:7px;height:7px;border-radius:50%;background:#27d9a2;box-shadow:0 0 9px #27d9a2}.nf-map-toolbar{display:flex;align-items:center;gap:5px}.nf-map-toolbar button{appearance:none;border:1px solid rgba(66,151,190,.2);background:rgba(8,38,62,.68);color:#7faabe;padding:5px 8px;font-size:10px;cursor:pointer}.nf-map-toolbar button.active{border-color:#2bd2e8;color:#dffbff;background:rgba(16,88,116,.66);box-shadow:inset 0 0 12px rgba(43,210,232,.08)}.nf-map-toolbar b{color:#fff}
.nf-panorama-map{position:relative;min-height:0;border:1px solid rgba(63,175,215,.22);overflow:hidden;background:radial-gradient(circle at 53% 48%,rgba(23,124,153,.18),transparent 35%),linear-gradient(180deg,#06192d,#071c30);box-shadow:inset 0 0 70px rgba(1,9,20,.52)}.nf-panorama-map:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(80,184,218,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(80,184,218,.04) 1px,transparent 1px);background-size:48px 48px;z-index:0}.nf-panorama-map-base,.nf-panorama-map-points{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:1}.nf-panorama-map-base{opacity:.92;filter:drop-shadow(0 0 10px rgba(60,206,225,.2))}.nf-panorama-map-points{z-index:2}.nf-panorama-map-glow{position:absolute;width:40%;height:35%;left:31%;top:32%;background:radial-gradient(circle,rgba(44,204,225,.12),transparent 70%);filter:blur(18px);pointer-events:none;z-index:1}.nf-panorama-marker{cursor:pointer;stroke:#d8fbff;stroke-width:2;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 4px rgba(47,212,234,.78));fill:#24cce0}.nf-panorama-marker.region{fill:#1ec6db;fill-opacity:.83}.nf-panorama-marker.node{fill:#28daa8}.nf-panorama-marker.engineer{fill:#4a8fff}.nf-panorama-marker.task{fill:#f3a435}.nf-panorama-marker.risk{fill:#ff586b;filter:drop-shadow(0 0 7px rgba(255,88,107,.88))}.nf-panorama-map-detail{position:absolute;right:12px;top:12px;z-index:5;width:min(285px,40%);padding:12px;background:rgba(4,23,40,.95);border:1px solid rgba(66,189,225,.35);box-shadow:0 12px 28px rgba(0,0,0,.28);color:#b8d9e7}.nf-panorama-map-detail button{float:right;background:transparent;border:0;color:#8fb8c9;font-size:18px;cursor:pointer}.nf-panorama-map-detail h4{margin:0 22px 7px 0;color:#fff}.nf-panorama-map-detail p{margin:5px 0;font-size:11px}.nf-panorama-map-detail a{color:#48def2}.nf-map-legend{display:flex;align-items:center;gap:12px;color:#789db2;font-size:10px}.nf-map-legend span:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}.nf-map-legend .node:before{background:#28daa8}.nf-map-legend .engineer:before{background:#4a8fff}.nf-map-legend .task:before{background:#f3a435}.nf-map-legend .risk:before{background:#ff586b}.nf-map-legend em{font-style:normal;margin-left:auto;color:#567f95}
.nf-center-bottom{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(230px,.75fr);gap:10px;min-height:0}.nf-trend-card,.nf-business-structure{height:100%;padding-bottom:8px}.nf-panorama-trend{width:100%;height:calc(100% - 24px);min-height:120px}.nf-trend-axis{stroke:rgba(110,170,198,.22);stroke-width:1}.nf-trend-line{fill:none;stroke:#2dd8e7;stroke-width:2.5;filter:drop-shadow(0 0 4px rgba(45,216,231,.45))}.nf-trend-dot{fill:#f7fdff;stroke:#2dd8e7;stroke-width:2}.nf-trend-label{fill:#628aa0;font-size:9px}.nf-business-bar{display:grid;grid-template-columns:minmax(72px,1fr) minmax(80px,1.35fr) 78px;gap:8px;align-items:center;margin:6px 0;font-size:10px}.nf-business-bar>div{min-width:0}.nf-business-bar b,.nf-business-bar span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nf-business-bar b{color:#d8f3fb;font-size:10px}.nf-business-bar span{color:#608ca2;font-size:9px}.nf-business-bar>i{height:5px;background:rgba(64,142,178,.2);overflow:hidden}.nf-business-bar>i em{display:block;height:100%;background:linear-gradient(90deg,#2e8df4,#26d7c0)}.nf-business-bar strong{text-align:right;color:#9ed5e5;font-size:10px;font-weight:600}.nf-alert-panel{min-height:0}.nf-alert-item{display:grid;grid-template-columns:1fr auto;gap:8px;padding:6px 0;border-bottom:1px solid rgba(77,146,176,.12);font-size:10px}.nf-alert-item:last-child{border-bottom:0}.nf-alert-item b{color:#d8f2fa;font-size:10px}.nf-alert-item span{color:#6e9bb0}.nf-alert-item.danger b{color:#ff8790}.nf-panorama-empty{color:#628da3;font-size:10px;margin:8px 0}
.nf-panorama-screen-mode .nf-panorama-top-kpis{margin-left:0;margin-right:0}.nf-panorama-screen-mode .nf-panorama-grid{height:calc(100vh - 122px)}.nf-panorama-screen-mode .nf-panorama-center{grid-template-rows:auto auto minmax(330px,1fr) auto minmax(148px,28%)}
@media(max-width:1500px){.nf-panorama-grid{grid-template-columns:minmax(210px,17%) minmax(580px,1fr) minmax(220px,18%)}.nf-panorama-top-kpis b{font-size:19px}.nf-panorama-header h1{font-size:22px}.nf-glass-panel{padding:10px}.nf-center-bottom{grid-template-columns:1.2fr .8fr}}
@media(max-width:1180px){.nf-panorama-embedded{overflow:auto}.nf-panorama-grid{min-width:1120px}.nf-panorama-top-kpis{min-width:1120px}.nf-panorama-entry-head{align-items:flex-start;flex-direction:column}.nf-panorama-entry-actions{width:100%}}
.dashboard-panorama-link{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px;background:linear-gradient(115deg,#f6fbff,#eef8fb);border-color:#dbeaf1}.dashboard-panorama-link .eyebrow{font-size:11px;letter-spacing:.12em;color:#168aa9;font-weight:800}.dashboard-panorama-link h2{margin:5px 0 4px;font-size:19px}.dashboard-panorama-link p{margin:0;color:#718394}.dashboard-panorama-link .btn{white-space:nowrap}
@media(max-width:760px){.dashboard-panorama-link{align-items:flex-start;flex-direction:column}}

/* ===== 数据全景：地图 + 动态指挥中心 ===== */
.nf-panorama-v8{--pn-cyan:#27e9ff;--pn-blue:#4b91ff;--pn-green:#27e0a5;--pn-orange:#ffad32;--pn-red:#ff566b;--pn-panel:rgba(6,28,48,.88);background:
  radial-gradient(circle at 50% 10%,rgba(20,131,170,.19),transparent 30%),
  radial-gradient(circle at 12% 55%,rgba(25,100,154,.08),transparent 35%),
  linear-gradient(180deg,#061426,#03101d 72%,#020b14);}
.nf-panorama-v8:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(115deg,transparent 0 42%,rgba(36,211,235,.025) 50%,transparent 58%);background-size:220% 100%;animation:nfDataShine 14s linear infinite}
@keyframes nfDataShine{0%{background-position:120% 0}100%{background-position:-120% 0}}
.nf-panorama-v8 .nf-panorama-header,.nf-panorama-v8 .nf-panorama-top-kpis,.nf-panorama-v8 .nf-panorama-grid{z-index:2}
.nf-panorama-v8 .nf-panorama-header h1{font-weight:900;letter-spacing:.15em;background:linear-gradient(180deg,#fff,#bfefff 72%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 24px rgba(52,212,240,.23)}
.nf-panorama-v8 .nf-panorama-header:before{content:"";position:absolute;left:31%;right:31%;bottom:-3px;height:7px;background:radial-gradient(ellipse at center,rgba(39,224,250,.7),transparent 66%);filter:blur(4px);opacity:.55}
.nf-panorama-v8 .nf-panorama-top-kpis>div{overflow:hidden;border-color:rgba(65,202,239,.3);background:linear-gradient(180deg,rgba(8,48,76,.92),rgba(6,28,48,.96));}
.nf-panorama-v8 .nf-panorama-top-kpis>div:after{content:"";position:absolute;top:0;left:-55%;width:40%;height:100%;background:linear-gradient(90deg,transparent,rgba(92,225,255,.07),transparent);transform:skewX(-20deg);animation:nfKpiSweep 8s ease-in-out infinite}
.nf-panorama-v8 .nf-panorama-top-kpis>div:nth-child(2):after{animation-delay:1.2s}.nf-panorama-v8 .nf-panorama-top-kpis>div:nth-child(3):after{animation-delay:2.4s}.nf-panorama-v8 .nf-panorama-top-kpis>div:nth-child(4):after{animation-delay:3.6s}.nf-panorama-v8 .nf-panorama-top-kpis>div:nth-child(5):after{animation-delay:4.8s}.nf-panorama-v8 .nf-panorama-top-kpis>div:nth-child(6):after{animation-delay:6s}
@keyframes nfKpiSweep{0%,72%{left:-55%}88%,100%{left:140%}}
.nf-panorama-v8 .nf-panorama-top-kpis b{font-weight:900;text-shadow:0 0 16px rgba(59,219,245,.18)}
.nf-panorama-v8 .nf-glass-panel{position:relative;background:linear-gradient(180deg,rgba(7,34,57,.92),rgba(5,24,41,.93));border-color:rgba(64,176,218,.24);box-shadow:inset 0 1px rgba(255,255,255,.018),0 10px 28px rgba(0,0,0,.12);overflow:hidden}
.nf-panorama-v8 .nf-glass-panel:before{content:"";position:absolute;left:0;top:0;width:48px;height:2px;background:linear-gradient(90deg,var(--pn-cyan),transparent);box-shadow:0 0 9px rgba(39,233,255,.65)}
.nf-panorama-v8 .nf-glass-panel h2{letter-spacing:.04em}.nf-panorama-v8 .nf-glass-panel h2:after{content:"";display:inline-block;width:26px;height:1px;margin-left:8px;vertical-align:middle;background:linear-gradient(90deg,rgba(39,233,255,.5),transparent)}
.nf-panorama-v8 .nf-stat-grid>div,.nf-panorama-v8 .nf-status-grid>div{background:linear-gradient(135deg,rgba(20,65,94,.58),rgba(8,39,62,.72));border:1px solid rgba(69,167,203,.16)}
.nf-panorama-v8 .nf-business-list>div{position:relative;transition:background .25s ease}.nf-panorama-v8 .nf-business-list>div:hover{background:rgba(32,124,159,.08)}
.nf-panorama-v8 .nf-region-list i:after,.nf-panorama-v8 .nf-business-bar>i em:after{content:"";display:block;width:25%;height:100%;margin-left:-25%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:nfBarFlow 3.6s linear infinite}
@keyframes nfBarFlow{to{margin-left:105%}}

/* 真实地图与灾备切换 */
.nf-panorama-v8 .nf-panorama-map{position:relative;background:#041422;border-color:rgba(61,198,235,.3);box-shadow:inset 0 0 90px rgba(0,7,15,.48),0 0 26px rgba(21,139,176,.08);isolation:isolate}
.nf-panorama-v8 .nf-panorama-real-map,.nf-panorama-v8 .nf-panorama-fallback-map{position:absolute;inset:0;width:100%;height:100%;transition:opacity .5s ease,filter .5s ease}
.nf-panorama-v8 .nf-panorama-real-map{z-index:1;opacity:0;pointer-events:none;background:#061725}
.nf-panorama-v8 .nf-panorama-fallback-map{z-index:1;opacity:1;pointer-events:auto}
.nf-panorama-v8 .nf-panorama-map.is-online .nf-panorama-real-map{opacity:1;pointer-events:auto}
.nf-panorama-v8 .nf-panorama-map.is-online .nf-panorama-fallback-map{opacity:0;pointer-events:none;filter:blur(4px)}
.nf-panorama-v8 .nf-panorama-map.is-tianditu .nf-panorama-real-map{background:#eef4f8;filter:saturate(.9) brightness(.92)}
.nf-panorama-v8 .nf-panorama-map-base,.nf-panorama-v8 .nf-panorama-map-points{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.nf-panorama-v8 .nf-panorama-map-points{z-index:2}
.nf-panorama-v8 .nf-map-atmosphere{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.nf-panorama-v8 .nf-map-atmosphere .vignette{position:absolute;inset:0;box-shadow:inset 0 0 80px rgba(1,8,18,.62);background:linear-gradient(180deg,rgba(2,12,22,.1),transparent 16%,transparent 78%,rgba(1,9,17,.22));}
.nf-panorama-v8 .nf-map-atmosphere .scan{position:absolute;left:0;right:0;height:70px;top:-75px;background:linear-gradient(180deg,transparent,rgba(45,228,246,.045),rgba(85,241,255,.12),transparent);filter:blur(.2px);animation:nfMapScan 7.5s linear infinite}
@keyframes nfMapScan{to{transform:translateY(720px)}}
.nf-panorama-v8 .nf-map-atmosphere .radar{position:absolute;width:520px;height:520px;left:50%;top:50%;margin:-260px 0 0 -260px;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 75%,rgba(38,224,244,.11) 91%,transparent 100%);opacity:.42;animation:nfRadar 13s linear infinite;mask-image:radial-gradient(circle,transparent 0 14%,#000 65%,transparent 72%)}
@keyframes nfRadar{to{transform:rotate(360deg)}}
.nf-panorama-v8 .nf-map-focus span{position:absolute;width:26px;height:26px;z-index:4;opacity:.45;pointer-events:none}.nf-panorama-v8 .nf-map-focus span:nth-child(1){left:12px;top:12px;border-left:2px solid #34dced;border-top:2px solid #34dced}.nf-panorama-v8 .nf-map-focus span:nth-child(2){right:12px;top:12px;border-right:2px solid #34dced;border-top:2px solid #34dced}.nf-panorama-v8 .nf-map-focus span:nth-child(3){left:12px;bottom:12px;border-left:2px solid #34dced;border-bottom:2px solid #34dced}.nf-panorama-v8 .nf-map-focus span:nth-child(4){right:12px;bottom:12px;border-right:2px solid #34dced;border-bottom:2px solid #34dced}
.nf-panorama-v8 .nf-map-engine{position:absolute;left:12px;top:12px;z-index:8;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:7px;padding:7px 10px;background:rgba(3,19,33,.82);border:1px solid rgba(59,190,223,.25);backdrop-filter:blur(8px);box-shadow:0 6px 18px rgba(0,0,0,.18)}
.nf-panorama-v8 .nf-map-engine .dot{grid-row:1/3;align-self:center;width:8px;height:8px;border-radius:50%;background:#ffb33a;box-shadow:0 0 10px rgba(255,179,58,.7)}.nf-panorama-v8 .nf-map-engine .dot.online{background:#25e2aa;box-shadow:0 0 12px rgba(37,226,170,.8)}.nf-panorama-v8 .nf-map-engine .dot.fallback{background:#ffb33a}.nf-panorama-v8 .nf-map-engine b{font-size:10px;color:#d8f7ff;line-height:1.2}.nf-panorama-v8 .nf-map-engine small{font-size:8px;color:#6e9bb0;line-height:1.25;margin-top:2px}
.nf-panorama-v8 .nf-map-modes{position:absolute;right:12px;top:12px;z-index:9;display:flex;padding:3px;background:rgba(3,19,33,.86);border:1px solid rgba(68,184,222,.28);backdrop-filter:blur(8px)}.nf-panorama-v8 .nf-map-modes button{border:0;background:transparent;color:#77a5b9;padding:5px 9px;font-size:9px;cursor:pointer}.nf-panorama-v8 .nf-map-modes button.active{background:linear-gradient(180deg,rgba(30,154,196,.5),rgba(12,88,121,.52));color:#e7fbff;box-shadow:inset 0 0 12px rgba(38,222,244,.12)}
.nf-panorama-v8 .nf-panorama-map-detail{z-index:10;backdrop-filter:blur(12px);border-color:rgba(70,211,239,.38);box-shadow:0 16px 36px rgba(0,0,0,.35),inset 0 0 24px rgba(25,142,177,.06)}
.nf-panorama-v8 .nf-map-zoom-controls{position:absolute;right:14px;bottom:42px;z-index:21;display:grid;gap:5px;padding:5px;border:1px solid rgba(97,211,235,.3);border-radius:9px;background:rgba(2,20,34,.82);box-shadow:0 8px 22px rgba(0,0,0,.3);pointer-events:auto}
.nf-panorama-v8 .nf-map-zoom-controls button{width:36px;height:36px;border:1px solid rgba(100,220,240,.48);border-radius:6px;background:rgba(5,39,59,.98);color:#effdff;font:700 22px/1 system-ui,sans-serif;cursor:pointer;touch-action:manipulation}
.nf-panorama-v8 .nf-map-zoom-controls button:hover{background:#0a5675;border-color:#5ce8f3}
.nf-panorama-v8 .nf-map-zoom-controls button:focus-visible{outline:2px solid #8df5ff;outline-offset:2px}
.nf-panorama-v8 .nf-panorama-map-base,.nf-panorama-v8 .nf-panorama-map-points{transition:transform .18s ease;transform-origin:center center}
.nf-panorama-v8 [data-tdt-zoom]{display:none!important}

/* 高德覆盖点：呼吸光点 / 风险脉冲 / 区域数字 */
.nf-amap-beacon{position:relative;width:18px;height:18px;filter:drop-shadow(0 0 5px rgba(44,220,240,.65));cursor:pointer;user-select:none}.nf-amap-beacon .core{position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px;border-radius:50%;background:#24cfe2;border:1.5px solid rgba(240,254,255,.95);box-shadow:0 0 10px #21cfe3}.nf-amap-beacon .ring{position:absolute;left:50%;top:50%;width:16px;height:16px;margin:-8px;border:1px solid rgba(44,224,242,.78);border-radius:50%;animation:nfBeaconPulse 2.3s ease-out infinite}.nf-amap-beacon .r2{animation-delay:1.15s}.nf-amap-beacon.node .core{background:#23d9a6;box-shadow:0 0 11px #23d9a6}.nf-amap-beacon.node .ring{border-color:rgba(35,217,166,.8)}.nf-amap-beacon.engineer .core{background:#4d8eff;box-shadow:0 0 11px #4d8eff}.nf-amap-beacon.engineer .ring{border-color:rgba(77,142,255,.85)}.nf-amap-beacon.task .core{background:#ffad32;box-shadow:0 0 12px #ffad32}.nf-amap-beacon.task .ring{border-color:rgba(255,173,50,.88);animation-duration:1.8s}.nf-amap-beacon.risk .core{background:#ff5367;box-shadow:0 0 15px #ff5367}.nf-amap-beacon.risk .ring{border-color:rgba(255,83,103,.95);animation-duration:1.05s}.nf-amap-beacon.region{width:38px;height:38px}.nf-amap-beacon.region .core{width:11px;height:11px;margin:-5.5px}.nf-amap-beacon.region .ring{width:28px;height:28px;margin:-14px}.nf-amap-beacon.region b{position:absolute;left:22px;top:-8px;min-width:20px;height:20px;padding:0 5px;border:1px solid rgba(76,221,242,.38);background:rgba(5,34,55,.9);color:#eafcff;font:800 10px/18px system-ui;border-radius:3px;text-align:center;box-shadow:0 0 12px rgba(36,194,220,.16)}.nf-amap-beacon.region small{position:absolute;left:22px;top:14px;color:#a9d8e7;white-space:nowrap;font:600 9px/1.2 system-ui;text-shadow:0 1px 4px #00101c}
@keyframes nfBeaconPulse{0%{transform:scale(.55);opacity:.95}75%{transform:scale(1.8);opacity:.08}100%{transform:scale(1.9);opacity:0}}
.nf-local-beacon{cursor:pointer}.nf-local-beacon .pulse{fill:none;stroke:#30dbe9;stroke-width:2;transform-box:fill-box;transform-origin:center;animation:nfLocalPulse 2.2s ease-out infinite}.nf-local-beacon.risk .pulse{stroke:#ff5367;animation-duration:1s}.nf-local-beacon.task .pulse{stroke:#ffad32}.nf-local-beacon.node .pulse{stroke:#25d9a5}.nf-local-beacon.engineer .pulse{stroke:#4b8dff}.nf-local-count{fill:#e8fbff;font-size:8px;font-weight:800;pointer-events:none}
@keyframes nfLocalPulse{0%{transform:scale(.65);opacity:.9}100%{transform:scale(1.8);opacity:0}}

/* 高德原生控件适配暗色大屏 */
.nf-panorama-v8 .amap-logo,.nf-panorama-v8 .amap-copyright{opacity:.55!important}.nf-panorama-v8 .amap-scale-text{color:#b7dbe8!important}.nf-panorama-v8 .amap-toolbar{opacity:.68}.nf-panorama-v8 .amap-info-content{background:#071d30!important;color:#cbeaf4!important;border:1px solid rgba(63,194,228,.35)!important}

/* 趋势图区增强 */
.nf-panorama-v8 .nf-trend-area{fill:url(#nfTrendFill)}.nf-panorama-v8 .nf-trend-line{stroke-dasharray:1100;stroke-dashoffset:1100;animation:nfTrendDraw 1.5s ease forwards}.nf-panorama-v8 .nf-trend-dot{opacity:0;animation:nfTrendDot .35s ease forwards 1.1s}
@keyframes nfTrendDraw{to{stroke-dashoffset:0}}@keyframes nfTrendDot{to{opacity:1}}

/* LED 视觉密度微调 */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-grid{gap:9px}.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-center{grid-template-rows:auto auto minmax(360px,1fr) auto minmax(152px,28%)}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-map{min-height:360px}
@media(min-width:1650px){.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-header{height:74px}.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-header h1{font-size:29px}.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-top-kpis b{font-size:25px}.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-grid{grid-template-columns:minmax(250px,16.5%) minmax(760px,1fr) minmax(270px,17.5%)}}
@media(prefers-reduced-motion:reduce){.nf-panorama-v8:after,.nf-panorama-v8 .nf-panorama-top-kpis>div:after,.nf-panorama-v8 .nf-map-atmosphere .scan,.nf-panorama-v8 .nf-map-atmosphere .radar,.nf-amap-beacon .ring,.nf-local-beacon .pulse,.nf-panorama-v8 .nf-trend-line,.nf-panorama-v8 .nf-trend-dot,.nf-panorama-v8 .nf-region-list i:after,.nf-panorama-v8 .nf-business-bar>i em:after{animation:none!important}}

/* === LED 16:9 单屏适配 + 远距离可读性增强 === */
.nf-panorama-screen-mode{width:100vw;height:100vh;overflow:hidden!important;background:#020a14}
.nf-panorama-stage{position:fixed;inset:0;overflow:hidden;background:radial-gradient(circle at 50% 42%,#0a2035 0,#04111f 52%,#020a14 100%)}
.nf-panorama-screen-mode .nf-panorama-screen-canvas{position:absolute!important;width:1920px!important;height:1080px!important;min-width:0!important;min-height:0!important;box-sizing:border-box;padding:10px 14px 12px!important;border:0!important;border-radius:0!important;overflow:hidden!important;display:grid!important;grid-template-rows:64px 70px minmax(0,1fr)!important;gap:10px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-header{height:64px!important;padding:0 16px 6px!important;grid-template-columns:420px minmax(0,1fr) 420px!important;gap:18px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-brand img{width:72px!important;height:40px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-brand b{font-size:17px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-brand span{font-size:13px!important;margin-top:3px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-header h1{font-size:32px!important;letter-spacing:.16em!important;line-height:1!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-clock{gap:12px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-clock b{font-size:15px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-clock>span{font-size:24px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-clock button,.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-clock a{padding:8px 13px!important;font-size:15px!important}

.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-top-kpis{height:70px!important;min-height:70px!important;margin:0!important;gap:10px!important;align-self:stretch}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-top-kpis>div{padding:10px 16px 9px!important;display:flex!important;flex-direction:column;justify-content:center}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-top-kpis span{font-size:16px!important;line-height:1.2!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-top-kpis b{font-size:31px!important;line-height:1!important;margin-top:5px!important}

.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-grid{height:auto!important;min-height:0!important;grid-template-columns:300px minmax(0,1fr) 330px!important;gap:12px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-left,.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-right,.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-center{min-height:0!important;gap:10px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-left{grid-template-rows:190px 304px minmax(0,1fr)!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-right{grid-template-rows:238px 224px 270px minmax(0,1fr)!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-center{grid-template-rows:54px 42px minmax(0,1fr) 28px 216px!important}

.nf-panorama-screen-mode .nf-panorama-v8 .nf-glass-panel{padding:14px 16px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-glass-panel h2{font-size:20px!important;line-height:1.2!important;margin:0 0 11px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-stat-grid,.nf-panorama-screen-mode .nf-panorama-v8 .nf-status-grid{gap:10px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-stat-grid>div,.nf-panorama-screen-mode .nf-panorama-v8 .nf-status-grid>div{padding:12px 12px!important;min-height:70px!important;display:flex;flex-direction:column;justify-content:center}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-stat-grid small,.nf-panorama-screen-mode .nf-panorama-v8 .nf-status-grid small{font-size:15px!important;line-height:1.25!important;color:#9ec3d5!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-stat-grid b,.nf-panorama-screen-mode .nf-panorama-v8 .nf-status-grid b{font-size:27px!important;line-height:1!important;margin-top:7px!important}

.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-list{gap:3px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-list>div,.nf-panorama-screen-mode .nf-panorama-v8 .nf-finance-list>div{padding:10px 1px!important;font-size:16px!important;line-height:1.25!important;min-height:41px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-list b,.nf-panorama-screen-mode .nf-panorama-v8 .nf-finance-list b{font-size:21px!important;line-height:1!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-list.compact>div{padding:8px 1px!important;min-height:36px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-finance-list .good,.nf-panorama-screen-mode .nf-panorama-v8 .nf-finance-list .warn{font-size:20px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-region-list{gap:10px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-region-list>div{grid-template-columns:88px 1fr 64px!important;gap:8px!important;font-size:15px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-region-list i{height:8px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-region-list b{font-size:15px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-empty{font-size:15px!important;line-height:1.45!important;margin:12px 0!important}

.nf-panorama-screen-mode .nf-panorama-v8 .nf-map-head{align-items:center!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-map-head h2{font-size:22px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-map-head p{font-size:14px!important;margin-top:4px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-map-scope{font-size:14px!important;gap:10px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-map-scope>span:not(.live),.nf-panorama-screen-mode .nf-panorama-v8 .nf-map-scope button{padding:7px 11px!important;font-size:14px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-map-toolbar{gap:7px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-map-toolbar button{padding:7px 11px!important;font-size:14px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-map{min-height:0!important;height:auto!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-map-legend{gap:16px!important;font-size:14px!important;line-height:28px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-map-legend span:before{width:9px!important;height:9px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-map-legend em{font-size:13px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-map-engine{padding:9px 12px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-map-engine b{font-size:13px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-map-engine small{font-size:11px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-map-modes button{font-size:12px!important;padding:7px 11px!important}

.nf-panorama-screen-mode .nf-panorama-v8 .nf-center-bottom{grid-template-columns:minmax(0,1.35fr) minmax(360px,.8fr)!important;gap:10px!important;min-height:0!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-trend-card,.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-structure{padding:12px 14px 10px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-trend{min-height:0!important;height:calc(100% - 32px)!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-trend-label{font-size:12px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-bar{grid-template-columns:minmax(118px,1fr) minmax(120px,1.15fr) 106px!important;gap:10px!important;margin:8px 0!important;font-size:14px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-bar b{font-size:14px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-bar span{font-size:12px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-bar>i{height:8px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-bar strong{font-size:14px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-alert-item{padding:9px 0!important;font-size:14px!important;min-height:34px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-alert-item b{font-size:14px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-alert-item span{font-size:13px!important}

/* 1366 / 1600 等较小屏幕仍按 1920×1080 设计稿等比缩放，不重新触发旧媒体查询压字 */
.nf-panorama-screen-mode .nf-panorama-screen-canvas .nf-panorama-grid,.nf-panorama-screen-mode .nf-panorama-screen-canvas .nf-panorama-top-kpis{min-width:0!important}

/* ===== 经营驾驶舱摘要卡 + LED大屏防遮挡 ===== */
/* 经营驾驶舱：服务质量摘要/平台规模改为可读的双列行式指标，避免5张窄卡横排截字与大面积留白 */
.dashboard-quality-grid,.dashboard-scale-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  align-content:start;
}
.dashboard-quality-grid>div,.dashboard-scale-grid>div{
  min-height:62px!important;
  padding:11px 14px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  border-radius:12px!important;
}
.dashboard-quality-grid>div:nth-child(5),.dashboard-scale-grid>div:nth-child(5){grid-column:1/-1}
.dashboard-quality-grid span,.dashboard-scale-grid small{
  display:block!important;
  min-width:0!important;
  font-size:13px!important;
  line-height:1.35!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  color:#66788d!important;
}
.dashboard-quality-grid b,.dashboard-scale-grid b{
  flex:0 0 auto!important;
  margin:0!important;
  font-size:23px!important;
  line-height:1!important;
  text-align:right!important;
}
.dashboard-exec-panel{align-self:stretch}
@media(max-width:1180px){
  .dashboard-quality-grid,.dashboard-scale-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:620px){
  .dashboard-quality-grid,.dashboard-scale-grid{grid-template-columns:1fr!important}
  .dashboard-quality-grid>div:nth-child(5),.dashboard-scale-grid>div:nth-child(5){grid-column:auto}
}

/* LED 1920×1080：按实际内容重新分配四栏高度，避免“今日与增长”覆盖“重点风险与待办” */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-screen-canvas{
  padding:8px 12px 10px!important;
  grid-template-rows:60px 66px minmax(0,1fr)!important;
  gap:8px!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-header{
  height:60px!important;
  padding:0 14px 5px!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-top-kpis{
  height:66px!important;min-height:66px!important;gap:8px!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-top-kpis>div{padding:8px 14px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-top-kpis span{font-size:15px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-top-kpis b{font-size:29px!important;margin-top:4px!important}

.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-grid{
  min-height:0!important;height:auto!important;
  grid-template-columns:292px minmax(0,1fr) 326px!important;
  gap:10px!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-left,
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-center,
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-right{
  min-height:0!important;overflow:hidden!important;gap:8px!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-left{
  grid-template-rows:178px 286px minmax(0,1fr)!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-right{
  grid-template-rows:218px 202px 202px minmax(0,1fr)!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-center{
  grid-template-rows:50px 38px minmax(0,1fr) 24px 188px!important;
}

.nf-panorama-screen-mode .nf-panorama-v8 .nf-glass-panel{padding:12px 14px!important;min-height:0!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-glass-panel h2{font-size:19px!important;margin:0 0 9px!important}

/* 履约质量：6项固定2×3，不再因字体放大撑破面板 */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-fulfillment-panel .nf-status-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-template-rows:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;height:calc(100% - 32px)!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-fulfillment-panel .nf-status-grid>div{
  min-height:0!important;padding:8px 10px!important;justify-content:center!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-fulfillment-panel .nf-status-grid small{font-size:14px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-fulfillment-panel .nf-status-grid b{font-size:24px!important;margin-top:4px!important}

/* 经营核心：保持5行，但压缩垂直节奏，金额完整显示 */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-finance-panel .nf-finance-list{
  height:calc(100% - 30px)!important;display:grid!important;grid-template-rows:repeat(5,minmax(0,1fr))!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-finance-panel .nf-finance-list>div{
  min-height:0!important;padding:5px 1px!important;font-size:15px!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-finance-panel .nf-finance-list span{font-size:15px!important;white-space:nowrap}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-finance-panel .nf-finance-list b{font-size:18px!important;white-space:nowrap}

/* 今日与增长：从6个纵向行改为2×3数据块，彻底消除向下溢出 */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-growth-panel .nf-business-list.compact{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-template-rows:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;height:calc(100% - 32px)!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-growth-panel .nf-business-list.compact>div{
  min-width:0!important;min-height:0!important;padding:8px 10px!important;
  display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;
  border:1px solid rgba(74,158,195,.15)!important;border-radius:4px!important;
  background:rgba(13,55,84,.52)!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-growth-panel .nf-business-list.compact span{
  font-size:13px!important;line-height:1.25!important;color:#91b6c8!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-growth-panel .nf-business-list.compact b{
  font-size:22px!important;line-height:1!important;margin-top:5px!important;
}

/* 风险待办：限制内部滚动，不允许顶到上一块或超出大屏 */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-alert-panel{overflow:hidden!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-alert-panel>[data-action-list]{
  max-height:calc(100% - 32px)!important;overflow:hidden!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-alert-item{padding:7px 0!important;min-height:30px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-alert-item b{font-size:13px!important}.nf-panorama-screen-mode .nf-panorama-v8 .nf-alert-item span{font-size:12px!important}

/* 中部底栏略减高，把安全空间让给左右栏 */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-center-bottom{gap:8px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-trend-card,.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-structure{padding:10px 12px 8px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-bar{margin:6px 0!important}


/* LED防溢出：按1920×1080内容容量分配左右栏，禁止模块互相覆盖 */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-grid{
  grid-template-columns:304px minmax(0,1fr) 340px!important;
  gap:10px!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-left{
  grid-template-rows:220px 320px minmax(0,1fr)!important;
  gap:8px!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-right{
  grid-template-rows:240px 220px 220px minmax(0,1fr)!important;
  gap:8px!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-left>.nf-glass-panel,
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-right>.nf-glass-panel{
  overflow:hidden!important;
  contain:layout paint;
}

/* 平台规模：2×2固定栅格，完整显示4项，不再裁切下排 */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-scale-panel .nf-stat-grid{
  height:calc(100% - 34px)!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-template-rows:repeat(2,minmax(0,1fr))!important;
  gap:9px!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-scale-panel .nf-stat-grid>div{
  min-height:0!important;
  padding:10px 11px!important;
  justify-content:center!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-scale-panel .nf-stat-grid small{
  font-size:14px!important;line-height:1.2!important;white-space:nowrap!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-scale-panel .nf-stat-grid b{
  font-size:25px!important;margin-top:5px!important;
}

/* 核心业务：6行严格装入自己的面板，不允许压到“全国网络分布” */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-core-business-panel .nf-business-list{
  height:calc(100% - 34px)!important;
  display:grid!important;
  grid-template-rows:repeat(6,minmax(0,1fr))!important;
  gap:0!important;
  overflow:hidden!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-core-business-panel .nf-business-list>div{
  min-height:0!important;
  padding:0 2px!important;
  margin:0!important;
  font-size:15px!important;
  line-height:1.15!important;
  overflow:hidden!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-core-business-panel .nf-business-list span{
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-core-business-panel .nf-business-list b{
  font-size:21px!important;line-height:1!important;flex:0 0 auto!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-region-panel .nf-region-list{
  max-height:calc(100% - 34px)!important;overflow:hidden!important;
}

/* 履约质量：240px内稳定2×3 */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-fulfillment-panel .nf-status-grid{
  height:calc(100% - 34px)!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-template-rows:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-fulfillment-panel .nf-status-grid>div{
  min-height:0!important;padding:7px 10px!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-fulfillment-panel .nf-status-grid small{font-size:13px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-fulfillment-panel .nf-status-grid b{font-size:23px!important;margin-top:3px!important}

/* 经营核心：5行严格装入220px */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-finance-panel .nf-finance-list{
  height:calc(100% - 34px)!important;
  display:grid!important;grid-template-rows:repeat(5,minmax(0,1fr))!important;
  overflow:hidden!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-finance-panel .nf-finance-list>div{
  min-height:0!important;padding:3px 1px!important;line-height:1.05!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-finance-panel .nf-finance-list span{font-size:14px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-finance-panel .nf-finance-list b{font-size:17px!important}

/* 今日与增长：2×3，保证完整显示6项且不挤占风险面板 */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-growth-panel .nf-business-list.compact{
  height:calc(100% - 34px)!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-template-rows:repeat(3,minmax(0,1fr))!important;
  gap:7px!important;overflow:hidden!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-growth-panel .nf-business-list.compact>div{
  min-height:0!important;padding:7px 9px!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-growth-panel .nf-business-list.compact span{font-size:13px!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-growth-panel .nf-business-list.compact b{font-size:21px!important;margin-top:4px!important}

/* 风险待办：最多展示5条，宁可省略低优先级，也不允许与上块重叠 */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-alert-panel>[data-action-list]{
  height:calc(100% - 34px)!important;max-height:none!important;overflow:hidden!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-alert-panel .nf-alert-item{
  min-height:0!important;height:31px!important;padding:0!important;align-items:center!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-alert-panel .nf-alert-item:nth-child(n+6){display:none!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-alert-panel .nf-alert-item b{font-size:13px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-alert-panel .nf-alert-item span{font-size:12px!important;white-space:nowrap!important}

/* 标题与模块边界保持安全间距 */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-glass-panel h2{margin-bottom:8px!important}

/* LED可读性：今日与增长、履约质量统一组件；底部趋势/业务结构禁止内部裁切 */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-center{
  grid-template-rows:50px 38px minmax(0,1fr) 24px 204px!important;
  gap:7px!important;
}

/* 今日与增长直接复用履约质量同一套2×3指标卡，标签/数字完整显示 */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-growth-panel .nf-growth-status-grid{
  height:calc(100% - 34px)!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-template-rows:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;
  overflow:hidden!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-growth-panel .nf-growth-status-grid>div{
  min-width:0!important;
  min-height:0!important;
  padding:7px 10px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  background:rgba(13,55,84,.58)!important;
  border:1px solid rgba(74,158,195,.15)!important;
  border-radius:4px!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-growth-panel .nf-growth-status-grid small{
  display:block!important;
  color:#9ec3d5!important;
  font-size:13px!important;
  line-height:1.2!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-growth-panel .nf-growth-status-grid b{
  display:block!important;
  color:#ecfaff!important;
  font-size:23px!important;
  line-height:1!important;
  margin-top:4px!important;
}

/* 避免旧 compact 列表规则影响增长卡片布局 */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-growth-panel .nf-business-list.compact{display:none!important}

/* 底部双面板获得独立安全区域，内部不允许越界 */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-center-bottom{
  min-height:0!important;
  height:204px!important;
  overflow:hidden!important;
  align-items:stretch!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-trend-card,
.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-structure{
  min-height:0!important;
  height:100%!important;
  overflow:hidden!important;
  padding:10px 12px 8px!important;
  box-sizing:border-box!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-panorama-trend{
  height:calc(100% - 34px)!important;
  min-height:0!important;
}

/* LED只显示本月业务结构TOP4；宁可聚焦核心业务，也不再让第5/6项被面板裁切 */
.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-structure h2:after{
  content:"  TOP4";
  color:#6fa6bd;
  font-size:12px;
  font-weight:600;
  letter-spacing:.04em;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-structure>[data-business-lines]{
  height:calc(100% - 34px)!important;
  min-height:0!important;
  display:grid!important;
  grid-template-rows:repeat(4,minmax(0,1fr))!important;
  gap:0!important;
  overflow:hidden!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-structure .nf-business-bar{
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding:2px 0!important;
  align-self:stretch!important;
  grid-template-columns:minmax(118px,1fr) minmax(120px,1.15fr) 112px!important;
}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-structure .nf-business-bar:nth-child(n+5){display:none!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-structure .nf-business-bar b{font-size:14px!important;line-height:1.1!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-structure .nf-business-bar span{font-size:11px!important;line-height:1.1!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-structure .nf-business-bar strong{font-size:14px!important;line-height:1!important}
.nf-panorama-screen-mode .nf-panorama-v8 .nf-business-structure .nf-business-bar>i{height:7px!important}

/* 对外 LED 数据全景：公开汇总视图，与内部运营/财务页面分离 */
.nf-panorama-public-mode .nf-panorama-public{
  grid-template-rows:64px 78px minmax(0,1fr)!important;
  gap:10px!important;padding:12px 18px 16px!important;
  background:radial-gradient(ellipse at 53% 42%,rgba(12,77,111,.32),transparent 54%),linear-gradient(145deg,#06172c,#081d35 58%,#061629)!important;
}
.nf-panorama-public-mode .nf-panorama-public-grid{
  min-width:0;min-height:0;display:grid;grid-template-columns:330px minmax(0,1fr) 290px;gap:12px;position:relative;z-index:2;
}
.nf-panorama-public-mode .nf-public-left,.nf-panorama-public-mode .nf-public-right,.nf-panorama-public-mode .nf-public-center{min-width:0;min-height:0;display:grid;gap:10px;overflow:hidden}
.nf-panorama-public-mode .nf-public-left{grid-template-rows:220px minmax(0,1fr) 190px}
.nf-panorama-public-mode .nf-public-center{grid-template-rows:48px 36px minmax(0,1fr) 22px 190px}
.nf-panorama-public-mode .nf-public-right{grid-template-rows:minmax(0,1fr) 285px 54px}
.nf-panorama-public-mode .nf-glass-panel{min-height:0;padding:18px 20px;border:1px solid rgba(75,188,220,.22);border-radius:15px;background:linear-gradient(145deg,rgba(9,40,64,.92),rgba(5,27,47,.94));box-shadow:inset 0 1px rgba(255,255,255,.035),0 14px 36px rgba(0,0,0,.12)}
.nf-panorama-public-mode .nf-glass-panel h2,.nf-panorama-public-mode .nf-map-head h2{font-size:20px;margin:0 0 14px;color:#e6f6ff}
.nf-panorama-public-mode .nf-public-kpis{grid-template-columns:repeat(6,minmax(0,1fr));gap:11px;margin:0;height:78px}
.nf-panorama-public-mode .nf-public-kpis>div{display:flex;flex-direction:column;justify-content:center;padding:10px 18px;border:1px solid rgba(76,192,228,.25);border-radius:12px;clip-path:none;background:linear-gradient(135deg,rgba(10,58,87,.9),rgba(7,34,57,.96))}
.nf-panorama-public-mode .nf-public-kpis>div:before{left:14px;right:14px;height:2px;opacity:.72}
.nf-panorama-public-mode .nf-public-kpis span{font-size:15px;color:#9bc4d8;line-height:1.2}
.nf-panorama-public-mode .nf-public-kpis b{font-size:30px;line-height:1;margin-top:7px;color:#f1fbff}
.nf-panorama-public-mode .nf-public-stats,.nf-panorama-public-mode .nf-public-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;height:calc(100% - 37px)}
.nf-panorama-public-mode .nf-public-stats>div,.nf-panorama-public-mode .nf-public-summary-grid>div{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:10px 13px;border-radius:9px;background:rgba(34,105,139,.16);border:1px solid rgba(101,194,220,.1)}
.nf-panorama-public-mode .nf-public-stats small,.nf-panorama-public-mode .nf-public-summary-grid small{font-size:14px;color:#9dbdcc}
.nf-panorama-public-mode .nf-public-stats b,.nf-panorama-public-mode .nf-public-summary-grid b{font-size:24px;color:#e8f8ff}
.nf-panorama-public-mode .nf-public-lines [data-public-lines]{display:grid;gap:13px;align-content:start}
.nf-panorama-public-mode .nf-public-line{display:grid;grid-template-columns:110px minmax(35px,1fr) 62px;align-items:center;gap:10px;color:#c6dce8;font-size:14px}
.nf-panorama-public-mode .nf-public-line i{height:7px;border-radius:99px;background:linear-gradient(90deg,#27d7ec,#65dfbd);opacity:.8}
.nf-panorama-public-mode .nf-public-line b{font-size:14px;color:#f0fbff;text-align:right;white-space:nowrap}
.nf-panorama-public-mode .nf-public-summary-grid{height:calc(100% - 38px)}
.nf-panorama-public-mode .nf-public-center .nf-map-head{display:flex;align-items:center;justify-content:space-between;padding:0 4px}
.nf-panorama-public-mode .nf-map-head h2{margin:0 0 3px}.nf-panorama-public-mode .nf-map-head p{margin:0;color:#7fa8bd;font-size:13px}
.nf-panorama-public-mode .nf-map-toolbar{display:flex;gap:8px}.nf-panorama-public-mode .nf-map-toolbar button{padding:7px 16px;border-radius:8px;border:1px solid rgba(88,185,217,.22);background:rgba(12,57,84,.7);color:#a8d5e5;font-size:13px}
.nf-panorama-public-mode .nf-map-toolbar button.active{color:#e8fbff;background:rgba(13,114,150,.55);border-color:rgba(62,215,232,.52)}
.nf-panorama-public-mode .nf-panorama-map{min-height:0;border-radius:14px;overflow:hidden}
.nf-panorama-public-mode .nf-map-legend{font-size:12px;color:#8db2c4}.nf-panorama-public-mode .nf-map-legend em{margin-left:auto}
.nf-panorama-public-mode .nf-public-trend{padding:15px 18px!important}
.nf-panorama-public-mode .nf-public-trend h2{margin-bottom:4px}
.nf-panorama-public-mode .nf-panorama-trend{height:calc(100% - 27px);min-height:0}
.nf-panorama-public-mode .nf-public-right-hero{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:26px;background:radial-gradient(circle at 95% 5%,rgba(31,200,223,.16),transparent 35%),linear-gradient(145deg,rgba(10,56,83,.97),rgba(5,29,50,.97))}
.nf-panorama-public-mode .nf-public-right-hero>span{color:#a2c8d9;font-size:16px}
.nf-panorama-public-mode .nf-public-right-hero>strong{display:block;margin:9px 0 3px;font-size:62px;line-height:1;color:#f1fcff;text-shadow:0 0 22px rgba(41,213,231,.2)}
.nf-panorama-public-mode .nf-public-right-hero>small{font-size:14px;color:#8cafc0}
.nf-panorama-public-mode .nf-public-divider{width:100%;height:1px;margin:25px 0 20px;background:linear-gradient(90deg,rgba(64,199,218,.5),transparent)}
.nf-panorama-public-mode .nf-public-right-hero strong.cities{display:flex;align-items:baseline;gap:10px;font-size:32px}.nf-panorama-public-mode .nf-public-right-hero strong.cities b{font-size:48px}.nf-panorama-public-mode .nf-public-right-hero strong.cities small{font-size:15px;color:#a2c8d9}
.nf-panorama-public-mode .nf-public-right-hero p{margin:20px 0 0;color:#91b3c4;font-size:14px;line-height:1.8}
.nf-panorama-public-mode .nf-public-month{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:32px repeat(3,1fr);gap:8px}
.nf-panorama-public-mode .nf-public-month h2{grid-column:1/-1;margin:0}
.nf-panorama-public-mode .nf-public-month>div{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:rgba(34,105,139,.15);border-radius:8px;color:#a4c2d1}
.nf-panorama-public-mode .nf-public-month>div b{font-size:23px;color:#eaf9ff}.nf-panorama-public-mode .nf-public-month>div span{font-size:14px}
.nf-panorama-public-mode .nf-public-footnote{align-self:center;text-align:right;color:#789cad;font-size:12px;line-height:1.8}
.nf-panorama-public-mode .nf-panorama-map-detail p{color:#c1dbe7}.nf-panorama-public-mode .nf-panorama-map-detail h4{color:#effaff}
@media(max-width:1100px){.nf-panorama-public-mode .nf-panorama-public-grid{grid-template-columns:260px minmax(0,1fr) 230px}.nf-panorama-public-mode .nf-public-left{grid-template-rows:180px minmax(0,1fr) 160px}.nf-panorama-public-mode .nf-public-center{grid-template-rows:48px 36px minmax(0,1fr) 22px 160px}.nf-panorama-public-mode .nf-public-right{grid-template-rows:minmax(0,1fr) 240px 50px}}

/* 高特异度覆写：LED 对外大屏需优先于既有内部屏幕的固定尺寸规则 */
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public{grid-template-rows:minmax(64px,6.2vh) minmax(78px,7.4vh) minmax(0,1fr)!important;gap:10px!important;padding:clamp(8px,1.1vh,16px) clamp(12px,1vw,24px) clamp(10px,1.2vh,20px)!important;background:radial-gradient(ellipse at 53% 42%,rgba(12,77,111,.32),transparent 54%),linear-gradient(145deg,#06172c,#081d35 58%,#061629)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-kpis{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:11px!important;margin:0!important;height:clamp(78px,7.4vh,96px)!important;min-height:clamp(78px,7.4vh,96px)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-kpis>div{padding:10px 18px!important;border-radius:12px!important;clip-path:none!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-kpis span{font-size:15px!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-kpis b{font-size:30px!important;margin-top:7px!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-grid{min-width:0!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-glass-panel{padding:18px 20px!important;border-radius:15px!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-glass-panel h2{font-size:20px!important;margin:0 0 14px!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-center{grid-template-rows:48px 36px minmax(0,1fr) 30px minmax(160px,18vh)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-panorama-map{min-height:0!important;height:auto!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-trend{padding:15px 18px!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-trend h2{font-size:20px!important;margin-bottom:4px!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-trend .nf-panorama-trend{height:calc(100% - 27px)!important;min-height:0!important}

/* 对外大屏信息增强：业务矩阵、真实订单类型数量与履约双曲线 */
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-kpis>div{position:relative;overflow:hidden;padding:9px 18px 8px 22px!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-kpis>div:after{content:"";position:absolute;right:-18px;bottom:-30px;width:86px;height:86px;border:1px solid rgba(62,207,226,.14);border-radius:50%;box-shadow:0 0 0 12px rgba(62,207,226,.025),0 0 0 25px rgba(62,207,226,.02)}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-kpis b{font-size:29px!important;margin-top:4px!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-kpis small{margin-top:3px;color:#6f9db2;font-size:11px;line-height:1.1}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-lines{position:relative;background:linear-gradient(150deg,rgba(11,49,74,.96),rgba(5,28,48,.97));overflow:hidden}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-lines:after{content:"";position:absolute;right:-70px;top:-90px;width:200px;height:200px;border:1px solid rgba(61,196,219,.08);border-radius:50%;box-shadow:0 0 0 18px rgba(61,196,219,.018),0 0 0 38px rgba(61,196,219,.014);pointer-events:none}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-panel-title h2{margin:0 0 5px!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-intro{margin:0;color:#83aabd;font-size:12px;line-height:1.35}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-panel-title>span{align-self:flex-start;padding:5px 9px;border:1px solid rgba(70,192,219,.2);border-radius:99px;color:#91c7d8;background:rgba(26,106,137,.18);font-size:11px;white-space:nowrap}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:8px;height:calc(100% - 48px);min-height:0}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid>div{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr) auto;grid-template-rows:1fr 1fr;align-items:center;column-gap:8px;min-width:0;padding:8px 9px;border:1px solid rgba(87,166,195,.16);border-radius:10px;background:linear-gradient(135deg,rgba(25,85,112,.29),rgba(11,48,71,.48));transition:border-color .2s,background .2s}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid>div.has-volume{border-color:rgba(61,204,211,.31);background:linear-gradient(135deg,rgba(26,106,126,.33),rgba(11,51,74,.56))}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid i{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:#d7f9ff;font-size:15px;font-style:normal;font-weight:700;background:linear-gradient(145deg,rgba(42,185,212,.3),rgba(36,116,166,.22));border:1px solid rgba(87,212,225,.24);box-shadow:inset 0 1px rgba(255,255,255,.09)}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid i.repair,.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid i.after{color:#ffe1bb;background:linear-gradient(145deg,rgba(235,160,82,.22),rgba(169,97,50,.15));border-color:rgba(247,183,111,.23)}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid i.insure,.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid i.talent{color:#d7f7e7;background:linear-gradient(145deg,rgba(82,195,145,.23),rgba(42,133,112,.15));border-color:rgba(111,221,170,.22)}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid b{grid-column:2;align-self:end;min-width:0;color:#e0f3fa;font-size:13px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid small{grid-column:2;align-self:start;min-width:0;margin-top:3px;color:#7fa6b8;font-size:10px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid strong{grid-column:3;grid-row:1/3;display:flex;align-items:baseline;gap:3px;white-space:nowrap;color:#c9f6f3;font-size:18px;font-weight:700}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid strong span{color:#78a8b4;font-size:10px;font-weight:500}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-trend-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-trend-head h2{margin:0!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-trend-head>div{display:flex;gap:13px}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-trend-key{display:inline-flex;align-items:center;gap:5px;color:#91b7c7;font-size:11px}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-trend-key:before{content:"";width:13px;height:3px;border-radius:9px;background:#31d7ea}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-trend-key.completed:before{background:#6ee4b3}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-trend .nf-panorama-trend{height:calc(100% - 29px)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-trend-grid{stroke:rgba(107,169,193,.11);stroke-width:1}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-trend-line.demand{stroke:#31d7ea}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-trend-line.completed{stroke:#6ee4b3;stroke-dasharray:5 3;filter:drop-shadow(0 0 4px rgba(110,228,179,.32))}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-trend-area.demand{fill:url(#nfTrendFill)}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-trend-area.completed{fill:url(#nfTrendDoneFill)}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-trend-dot.demand{stroke:#31d7ea}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-trend-dot.completed{stroke:#6ee4b3}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-trend-label{fill:#87aebe;font-size:9px}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-trend-empty{fill:#8caebd;font-size:14px}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-map-legend .enterprise:before{background:#5ea9ff}
@media(max-width:1100px){.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid{gap:5px}.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid>div{padding:5px;column-gap:5px}.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid i{width:28px;height:28px}}
/* 演示大屏标签简化与地图图例防裁切 */
.nf-panorama-screen-mode #nf-data-panorama[data-panorama-audience="demo"] .nf-public-center{grid-template-rows:48px 36px minmax(0,1fr) 30px minmax(160px,18vh)!important}
.nf-panorama-screen-mode #nf-data-panorama[data-panorama-audience="demo"] .nf-map-legend{min-width:0;gap:12px!important;line-height:1.2!important;overflow:visible!important}
.nf-panorama-screen-mode #nf-data-panorama[data-panorama-audience="demo"] .nf-map-legend em{display:block;min-width:0;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}


/* 大屏演示数据标识及后台维护表单 */
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-demo-watermark{position:absolute;z-index:40;top:20px;right:430px;padding:6px 11px;border:1px solid rgba(255,190,103,.65);border-radius:8px;background:rgba(95,48,11,.82);color:#ffe2b4;font-size:13px;font-weight:800;letter-spacing:.04em;box-shadow:0 4px 18px rgba(0,0,0,.18);pointer-events:none;white-space:nowrap}
.nf-demo-form{display:grid;grid-template-columns:105px minmax(135px,1fr);gap:6px;margin:0;align-items:center}
.nf-demo-form input{min-width:0;max-width:180px}
.nf-demo-form .btn{grid-column:1/-1;justify-self:start;padding:6px 12px}

/* 对外与测试 LED 大屏：按浏览器视口铺满重排，避免固定画布底部空黑/裁切 */
.nf-panorama-screen-mode .nf-panorama-screen-canvas.nf-panorama-public{width:100vw!important;height:100vh!important;left:0;top:0;transform:none!important;}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-grid{min-width:0!important;min-height:0!important;}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-panorama-public-grid{grid-template-columns:minmax(340px,20vw) minmax(0,1fr) minmax(265px,15vw);gap:12px;min-height:0;}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-left{grid-template-rows:minmax(180px,20vh) minmax(0,1fr) minmax(170px,18vh);}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-right{grid-template-rows:minmax(0,1fr) minmax(240px,26vh) minmax(48px,6vh);}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-center{grid-template-rows:48px 36px minmax(0,1fr) 30px minmax(160px,18vh)!important;}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid{height:calc(100% - 48px);gap:8px;}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid>div{grid-template-columns:34px minmax(0,1fr) auto;column-gap:7px;padding:8px 9px;}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid i{width:32px;height:32px;}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid b{font-size:14px;}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid small{grid-column:2/4;font-size:11px;}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid strong{grid-row:1;align-self:center;font-size:17px;}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-panorama-trend{width:100%;}
@media(max-width:1450px){
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-kpis{grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-template-rows:repeat(2,minmax(54px,1fr));height:clamp(118px,16vh,148px)!important;min-height:clamp(118px,16vh,148px)!important;}
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public{grid-template-rows:minmax(64px,7vh) minmax(118px,16vh) minmax(0,1fr)!important;}
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-kpis b{font-size:clamp(21px,2vw,29px)!important;}
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-panorama-public-grid{grid-template-columns:minmax(300px,25vw) minmax(0,1fr) minmax(245px,20vw);}
}
@media(max-height:850px){
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-left{grid-template-rows:160px minmax(250px,1fr) 150px;}
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-right{grid-template-rows:minmax(0,1fr) 240px 48px;}
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-center{grid-template-rows:44px 34px minmax(0,1fr) 28px 160px!important;}
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid{gap:5px;}
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid>div{padding:5px 7px;}
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-glass-panel{padding:12px 14px!important;}
}

/* 视口自适应收口：为窄高屏留出完整趋势图高度，避免底部裁切与左侧矩阵挤压 */
.nf-panorama-screen-mode .nf-panorama-screen-canvas.nf-panorama-public{inset:0 auto auto 0!important;max-width:none!important;max-height:none!important;overflow:hidden!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public{grid-template-rows:minmax(58px,6.4vh) minmax(72px,8vh) minmax(0,1fr)!important;gap:clamp(6px,.8vh,10px)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-kpis{height:auto!important;min-height:0!important;align-self:stretch!important;grid-template-columns:repeat(6,minmax(0,1fr))!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-panorama-public-grid{grid-template-columns:minmax(310px,20vw) minmax(0,1fr) minmax(250px,15vw);gap:clamp(7px,.7vw,13px)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-left{grid-template-rows:minmax(150px,18vh) minmax(0,1fr) minmax(135px,16vh)!important;gap:clamp(6px,.7vh,10px)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-right{grid-template-rows:minmax(0,1fr) minmax(190px,23vh) minmax(42px,5vh)!important;gap:clamp(6px,.7vh,10px)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-center{grid-template-rows:minmax(42px,5vh) minmax(32px,4vh) minmax(180px,1fr) minmax(26px,3vh) minmax(128px,17vh)!important;gap:clamp(6px,.7vh,10px)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid{height:calc(100% - 42px)!important;gap:clamp(4px,.45vw,8px)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid>div{grid-template-columns:clamp(27px,1.7vw,34px) minmax(0,1fr) auto!important;column-gap:clamp(4px,.4vw,7px)!important;padding:clamp(5px,.5vw,9px)!important;overflow:hidden}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid i{width:clamp(26px,1.65vw,32px)!important;height:clamp(26px,1.65vw,32px)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid b{font-size:clamp(11px,.72vw,14px)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-cap-grid small{grid-column:2/4!important;font-size:clamp(9px,.58vw,11px)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-trend{min-height:0!important;overflow:hidden!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-trend .nf-panorama-trend{display:block;width:100%!important;height:calc(100% - 29px)!important;min-height:0!important;overflow:visible}
@media(max-width:1450px){
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public{grid-template-rows:minmax(58px,6.4vh) minmax(108px,15vh) minmax(0,1fr)!important}
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-kpis{grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-template-rows:repeat(2,minmax(48px,1fr))!important}
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-panorama-public-grid{grid-template-columns:minmax(280px,25vw) minmax(0,1fr) minmax(225px,20vw)}
}
@media(max-height:850px){
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-left{grid-template-rows:minmax(120px,18vh) minmax(190px,1fr) minmax(110px,15vh)!important}
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-right{grid-template-rows:minmax(0,1fr) minmax(165px,22vh) minmax(38px,5vh)!important}
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-center{grid-template-rows:minmax(38px,5vh) minmax(30px,4vh) minmax(130px,1fr) minmax(24px,3vh) minmax(112px,16vh)!important}
}
/* 本轮截图精修：左栏完整容纳四项履约数据，服务矩阵短标题，右栏补足服务网络规模 */
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-panorama-public-grid{grid-template-columns:minmax(360px,22vw) minmax(0,1fr) minmax(250px,15vw)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-left{grid-template-rows:minmax(145px,17vh) minmax(280px,1fr) minmax(205px,23vh)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-stats,.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-summary-grid{height:calc(100% - 34px)!important;gap:clamp(5px,.5vw,9px)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-stats>div,.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-summary-grid>div{padding:clamp(6px,.5vw,10px)!important;gap:6px!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-stats small{flex:0 0 auto;white-space:nowrap;font-size:clamp(10px,.67vw,13px)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-stats b,.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-summary-grid b{flex:0 0 auto;font-size:clamp(15px,1.05vw,21px)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-summary-grid small{font-size:clamp(10px,.65vw,13px)!important;white-space:nowrap}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-right-hero{padding:clamp(18px,1.25vw,26px)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-right-hero>strong{font-size:clamp(42px,3vw,62px)!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-divider{margin:clamp(12px,1vh,20px) 0!important}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-resource-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;margin-top:clamp(10px,1vh,18px)}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-resource-pair>div{min-width:0;padding:clamp(9px,.7vw,13px);border:1px solid rgba(82,187,215,.16);border-radius:10px;background:rgba(34,105,139,.16)}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-resource-pair span{color:#9bc4d8;font-size:clamp(11px,.72vw,14px);white-space:nowrap}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-resource-pair strong{display:flex;align-items:baseline;gap:5px;margin-top:5px;color:#f1fbff;font-size:clamp(22px,1.8vw,34px);line-height:1}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-resource-pair strong b{font-size:inherit}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-resource-pair strong small{color:#91b7c7;font-size:clamp(10px,.65vw,13px)}
.nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-right-hero>p{margin:clamp(10px,1vh,18px) 0 0!important;font-size:clamp(11px,.72vw,14px)!important;line-height:1.6!important}
@media(max-height:850px){
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-left{grid-template-rows:minmax(120px,16vh) minmax(190px,1fr) minmax(175px,25vh)!important}
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-right-hero{padding:14px!important}
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-resource-pair{margin-top:7px}
 .nf-panorama-screen-mode .nf-panorama-v8.nf-panorama-public .nf-public-right-hero>p{margin-top:7px!important}
}

.nf-admin-region-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-width:0}.nf-admin-region-fields select{width:100%;min-width:0;max-width:100%}select[data-repair-brands],select[data-repair-models]{height:auto!important;min-height:150px;max-height:240px;overflow:auto;padding:8px!important}select[data-repair-brands] option,select[data-repair-models] option{padding:6px 8px}select[data-standard-model]{max-width:100%;min-width:0}@media(max-width:700px){.nf-admin-region-fields{grid-template-columns:1fr}}

/* Flight operations and network filter alignment */
.flight-routing-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.flight-routing-head .routing-toggle{margin-left:auto;flex:0 0 auto;white-space:nowrap;background:#df643f;color:#fff;border-color:#df643f;min-height:42px}
.flight-routing-head .routing-toggle:hover{background:#c8502e;border-color:#c8502e}
.routing-guide-body[hidden]{display:none!important}
.routing-guide-body{padding-top:20px}.routing-guide-body .grid>div{padding:14px;border:1px solid #e5edf5;border-radius:10px;background:#f8fbff}.routing-guide-body p{line-height:1.65}
.flight-routing-guide .table-wrap table{table-layout:fixed;width:100%;min-width:0}
.flight-routing-guide th:nth-child(1){width:16%}.flight-routing-guide th:nth-child(2){width:24%}
.flight-routing-guide td{white-space:normal;overflow-wrap:anywhere}
.route-rule-edit{margin-top:8px;min-width:0}.route-rule-edit summary{cursor:pointer;color:#1769aa}
.flight-routing-guide .route-rule-edit form{display:flex;flex-wrap:wrap;align-items:center;gap:10px;width:100%;min-width:0;margin-top:8px}
.flight-routing-guide .route-rule-edit select{flex:1 1 220px;min-width:0;width:0;max-width:100%;box-sizing:border-box}
.flight-routing-guide .route-rule-edit button{flex:0 0 auto;white-space:nowrap;min-height:40px}
.flight-task-head{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.flight-task-head>div:first-child{flex:1 1 340px;min-width:0}
.flight-search-panel{flex:0 1 580px;min-width:0;margin-left:auto}
.flight-search-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%}
.flight-search-label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.flight-search-form .flight-search-input{flex:1 1 220px;min-width:0;width:0;max-width:100%;margin:0}
.flight-search-form .btn{flex:0 0 auto;margin:0;min-height:42px}
.c10-record-filter>div{min-width:0}.c10-record-filter>.form-actions{display:flex;align-self:end;align-items:center;gap:8px;flex-wrap:wrap;margin:0;padding:0 0 1px;border:0;min-height:46px}
.c10-record-filter>.form-actions .btn{margin:0;min-height:42px}
@media(max-width:640px){.flight-search-panel{flex-basis:100%;width:100%}.flight-routing-guide th:nth-child(1){width:22%}.flight-routing-guide th:nth-child(2){width:26%}.flight-routing-guide .route-rule-edit select{flex-basis:100%;width:100%}.flight-routing-guide .route-rule-edit button{margin-left:auto}.flight-task-head{align-items:stretch}}

body.app-body .flight-routing-guide .table-wrap th{white-space:normal;overflow-wrap:anywhere}
