:root{--blue:#1677ff;--cyan:#12d6ff;--bg:#eef7ff;--ink:#1f2a44;--muted:#667085;--line:#e4eefb;--shadow:0 14px 34px rgba(31,72,128,.10)}
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}#toast{position:fixed;top:20px;right:20px;z-index:999}.toast{background:#08264d;color:#fff;padding:12px 18px;border-radius:14px;box-shadow:var(--shadow)}
.portal-page,.login-page{height:100vh;overflow:hidden;position:relative;background:linear-gradient(rgba(3,34,73,.18),rgba(0,20,50,.42)),radial-gradient(circle at 28% 58%,rgba(0,221,255,.35),transparent 9%),linear-gradient(145deg,#1182c4 0%,#0466a0 38%,#124b7d 72%,#001632 100%)}
.portal-page:before,.login-page:before{content:"";position:absolute;inset:0;background:linear-gradient(150deg,transparent 10%,rgba(0,255,255,.18) 28%,transparent 30%),linear-gradient(28deg,transparent 50%,rgba(0,255,255,.16) 51%,transparent 53%),radial-gradient(circle at 50% 60%,rgba(255,255,255,.23),transparent 12%);opacity:.95}
.portal-page:after,.login-page:after{content:"";position:absolute;left:0;right:0;bottom:0;height:42%;background:linear-gradient(15deg,rgba(5,42,78,.85),rgba(10,118,161,.35)),repeating-linear-gradient(90deg,rgba(255,255,255,.17) 0 2px,transparent 2px 90px);clip-path:polygon(0 52%,10% 47%,22% 60%,36% 40%,48% 58%,62% 35%,76% 50%,90% 30%,100% 45%,100% 100%,0 100%)}
.portal-time{position:absolute;left:28px;top:24px;color:#7ce9ff;font-weight:700;z-index:2}.portal-title{position:absolute;top:44px;left:50%;transform:translateX(-50%);text-align:center;z-index:2;background:linear-gradient(rgba(8,120,170,.92),rgba(3,74,131,.75));padding:18px 80px 22px;border:1px solid rgba(64,218,255,.5);box-shadow:0 0 26px rgba(0,216,255,.35);border-radius:0 0 28px 28px}.portal-title h1,.login-left h1{margin:0;color:#fff;font-size:36px;letter-spacing:6px;text-shadow:0 4px 2px rgba(0,0,0,.35)}.portal-title p,.login-left p{margin:6px 0 0;color:#dff9ff;font-weight:900}.portal-card-row{position:relative;z-index:2;height:100%;display:flex;align-items:center;justify-content:center;gap:60px;padding-top:100px}.portal-card-row.only-two{gap:90px}.portal-card{width:280px;height:315px;border:2px solid rgba(0,214,255,.78);background:rgba(0,76,111,.42);box-shadow:inset 0 0 22px rgba(0,220,255,.25),0 0 24px rgba(0,202,255,.25);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;position:relative;transition:.25s}.portal-card:hover,.portal-card.active{transform:translateY(-12px);background:rgba(0,125,168,.5)}.portal-card i{font-style:normal;font-size:78px;filter:drop-shadow(0 0 12px #02e6ff)}.portal-card b{margin-top:28px;font-size:24px}.portal-card span{margin:10px 0 28px;color:#b7efff}.portal-card button{border:1px solid rgba(179,249,255,.8);color:#e8fbff;background:rgba(0,0,0,.12);border-radius:999px;padding:9px 34px}.login-left{position:absolute;left:10%;top:42%;transform:translateY(-50%);z-index:2}.login-left h1{font-size:34px}.login-panel{position:absolute;z-index:3;right:7%;top:0;bottom:0;width:440px;background:rgba(3,24,58,.62);backdrop-filter:blur(10px);padding:24vh 60px;color:#fff}.login-panel h2{font-size:34px;letter-spacing:4px}.login-panel label{display:block;margin:22px 0 8px;color:#c5f9ff}.login-panel input,.login-panel select{width:100%;background:rgba(0,54,95,.35);border:1px solid #55e8ff;color:#fff;height:48px;border-radius:2px;padding:0 14px;outline:none}.code-row{display:flex}.code-row input{flex:1}.code-row span{width:92px;background:#36dfff;color:#0b3a57;display:grid;place-items:center;letter-spacing:7px}.login-btn{width:100%;height:52px;margin-top:26px;border:0;background:linear-gradient(90deg,#27c7ff,#3779ff);color:#dfffff;font-weight:900;font-size:18px}.back-btn{margin-top:14px;width:100%;height:42px;background:transparent;border:1px solid rgba(255,255,255,.35);color:#dff9ff}.login-panel a{display:block;margin-top:14px;color:#a8f7ff;text-align:right}
.app{display:flex;height:100vh}.sidebar{width:198px;background:#fff;border-right:1px solid #e7f0fb;box-shadow:6px 0 20px rgba(26,67,122,.05)}.brand{height:72px;background:linear-gradient(90deg,#226bd0,#3ba4f5);color:#fff;display:flex;align-items:center;padding-left:24px;font-size:20px;font-weight:900;text-shadow:0 2px 4px rgba(0,0,0,.25)}.sidebar nav{padding:18px 12px}.sidebar nav button{width:100%;height:44px;border:0;background:transparent;text-align:left;border-radius:12px;padding:0 14px;color:#334155;font-weight:800}.sidebar nav button.active,.sidebar nav button:hover{background:#eff8ff;color:#0b79d0}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:72px;background:linear-gradient(180deg,#3b91ef,#226bd0);display:flex;align-items:center;justify-content:space-between;padding:0 24px;color:#fff}.search{width:330px;height:38px;background:#fff;border-radius:999px;display:flex;align-items:center;padding:0 12px}.search input{border:0;outline:0;flex:1}.top-user{display:flex;gap:18px;align-items:center}.top-user button{background:transparent;border:0;color:#fff;font-size:24px}.bell{position:relative;cursor:pointer}.bell em{position:absolute;right:-10px;top:-12px;background:#ff7b2e;border-radius:999px;padding:1px 5px;font-size:10px;font-style:normal}.content{padding:18px 22px 26px;overflow:auto;background:#eef7ff;min-height:0}
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr) 250px;gap:16px}.kpi-card,.weather-card,.panel,.map-intel,.map-side{background:rgba(255,255,255,.98);border:1px solid #e6f0fc;border-radius:18px;box-shadow:var(--shadow)}.kpi-card{height:118px;padding:20px;position:relative;overflow:hidden}.kpi-card:after{content:"";position:absolute;right:22px;top:25px;width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#e4f0ff,#d9faff)}.kpi-card h4,.weather-card h4{margin:0 0 12px;color:#344054}.kpi-card strong{font-size:30px;letter-spacing:2px}.kpi-card p{font-size:12px;color:#7a8798}.kpi-card p b{color:#e33b5f}.weather-card{height:118px;padding:18px;background:linear-gradient(135deg,#bce5ff,#7bbcf8);color:#123}.weather-card .big{font-size:24px;font-weight:900}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:1.25fr .95fr}.grid.three{grid-template-columns:repeat(3,1fr)}.panel{padding:20px;margin-top:16px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.panel-head h3{margin:0}.panel-head p{margin:6px 0 0}.mini-muted{font-size:12px;color:#667085}.center{text-align:center}.mt{margin-top:22px}.bar-chart{height:270px;display:flex;align-items:flex-end;gap:18px;border-left:1px solid #e8f0fb;border-bottom:1px solid #e8f0fb;padding:20px 8px 0}.bar-group{width:28px;display:flex;align-items:flex-end;gap:2px}.bar{width:8px;border-radius:6px 6px 0 0}.bar.a{background:#2d6cdf}.bar.b{background:#16c0d8}.bar.c{background:#a5eff9}.line-chart svg{width:100%;height:250px}.donut{width:190px;height:190px;border-radius:50%;background:conic-gradient(#0aa7ff 0 42%,#20ceb9 42% 73%,#ffb020 73% 100%);margin:20px auto;position:relative}.donut:after{content:"";position:absolute;inset:40px;background:#fff;border-radius:50%}.legend{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;color:#667085;font-size:13px}.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px}.blue-dot{background:#0aa7ff}.green-dot{background:#20ceb9}.orange-dot{background:#ffb020}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:13px 12px;border-bottom:1px solid #edf2f7;text-align:left;font-size:14px;vertical-align:top}.table th{color:#1f2a44;font-weight:900}.tag{display:inline-block;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:900;white-space:nowrap}.tag.red{background:#ffe3e3;color:#d92d20}.tag.orange{background:#fff1d6;color:#b54708}.tag.yellow{background:#fffbd4;color:#854d0e}.tag.green{background:#dff8ec;color:#067647}.tag.blue{background:#dbeafe;color:#175cd3}.tag.gray{background:#eef2f7;color:#475467}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.toolbar input,.toolbar select,.toolbar textarea{border:1px solid #d8e6f7;border-radius:10px;padding:10px;background:#fff}.querybar input{min-width:260px}.btn{border:0;border-radius:10px;background:#eaf4ff;color:#1167b1;font-weight:900;padding:9px 13px}.btn.primary{background:linear-gradient(90deg,#23c7ff,#2f7cff);color:#fff}.btn.green{background:#10b981;color:#fff}.btn.red{background:#ef4444;color:#fff}.btn.orange{background:#f59e0b;color:#fff}.btn:hover{filter:brightness(.98);transform:translateY(-1px)}
.map-layout.rich-map{display:grid;grid-template-columns:300px 1fr 330px;gap:16px}.map-intel,.map-side{padding:18px;height:640px;overflow:auto}.map-intel h3,.map-side h3{margin:0 0 10px}.map-box{height:640px;border-radius:18px;overflow:hidden;position:relative;background:linear-gradient(135deg,#d4f4ff,#eff9ff);border:1px solid #c7e7ff;box-shadow:var(--shadow)}.map-box:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(35deg,transparent 0 80px,rgba(14,165,233,.12) 80px 90px),repeating-linear-gradient(95deg,transparent 0 120px,rgba(34,197,94,.16) 120px 132px)}.building{position:absolute;background:rgba(22,119,255,.18);border:1px solid #36c8ff;border-radius:8px;padding:8px;font-weight:900;color:#0b4778;z-index:2;cursor:pointer}.building span{font-size:12px}.point{position:absolute;width:24px;height:24px;border-radius:50%;border:4px solid #fff;box-shadow:0 0 0 10px rgba(2,198,255,.18);cursor:pointer;z-index:3}.point.member{background:#15c6d8}.point.task{background:#ff9f1c}.point.event-red{background:#ef4444}.point.event-orange{background:#f59e0b}.point.event-yellow{background:#eab308}.stat-line{height:52px;border:1px solid #e4eefb;border-radius:12px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;margin:10px 0}.live-list{display:flex;flex-direction:column;gap:10px}.live-item{border:1px solid #e4eefb;border-radius:14px;background:#fbfdff;padding:12px;position:relative}.live-item b{font-size:15px}.live-item span{font-size:12px;margin-left:8px;color:#667085}.live-item p{margin:6px 0;color:#344054}.live-item em{font-style:normal;font-size:12px;color:#1677ff;font-weight:900}.timeline{display:flex;flex-direction:column;gap:10px}.timeline.small .tl-item{font-size:13px}.tl-item{padding:12px;border:1px solid #e4eefb;border-radius:12px;background:#fbfdff}.logic-tip{background:#f5fbff;border:1px solid #d8eaff;border-left:4px solid #1677ff;border-radius:12px;padding:12px;margin:10px 0 16px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.form-grid input,.form-grid select,.form-grid textarea,.form-section textarea{width:100%;border:1px solid #d8e6f7;border-radius:10px;padding:10px;background:#fff}.form-section{border:1px solid #edf2f7;border-radius:14px;padding:14px;margin:12px 0;background:#fbfdff}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:10px}.check-grid{display:grid;grid-template-columns:1fr;gap:8px;margin-top:8px}.check-grid.inline{grid-template-columns:repeat(4,auto);justify-content:start;gap:14px}.check-grid label,.switch{font-size:14px;color:#344054}.detail-head{margin-bottom:12px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;background:#fbfdff;border:1px solid #edf2f7;border-radius:12px;padding:12px;margin:12px 0}.flow-row{display:flex;align-items:stretch;gap:8px;overflow-x:auto;padding:10px 0}.flow-row i{font-style:normal;font-size:28px;color:#7aa7d9;align-self:center}.flow-row.compact{overflow:visible}.flow-node{min-width:150px;border:1px solid #dceafa;border-radius:14px;background:#fff;padding:12px;box-shadow:0 6px 16px rgba(20,70,120,.06)}.flow-node b{display:block;color:#1677ff}.flow-node strong{display:block;margin:4px 0}.flow-node small{color:#667085}.flow-node span{display:block;color:#475467;font-size:12px;margin-top:6px}.flow-node.done{border-color:#b7ebd2;background:#f1fff7}.flow-node.doing{border-color:#b7d7ff;background:#f5faff}.flow-node.todo{border-color:#e4eaf2;background:#fff}.event-decision{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.event-decision div{border:1px solid #e4eefb;background:#fbfdff;border-radius:12px;padding:12px}.event-decision b{display:block}.event-decision span{font-size:12px;color:#667085}.modal-mask{position:fixed;inset:0;background:rgba(7,15,35,.50);display:grid;place-items:center;z-index:50}.modal{width:min(980px,94vw);max-height:88vh;overflow:auto;background:#fff;border-radius:22px;box-shadow:0 30px 80px rgba(0,0,0,.25);padding:24px}.modal h3{margin-top:0;font-size:24px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;flex-wrap:wrap}.card-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.info-card{border:1px solid #e4eefb;border-radius:14px;background:#fff;padding:16px;box-shadow:0 8px 20px rgba(20,70,120,.06)}.progress{width:150px;height:10px;background:#eef4fb;border-radius:999px;overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,#1677ff,#10c6d9)}.hbars{display:flex;flex-direction:column;gap:14px;margin-top:20px}.hbar{display:grid;grid-template-columns:110px 1fr 30px;align-items:center;gap:10px}.hbar div{height:18px;background:#eef4fb;border-radius:999px;overflow:hidden}.hbar i{display:block;height:100%;background:linear-gradient(90deg,#1677ff,#10c6d9);border-radius:999px}
@media(max-width:1200px){.kpi-row{grid-template-columns:repeat(2,1fr)}.grid.two,.grid.three,.map-layout.rich-map{grid-template-columns:1fr}.map-intel,.map-side,.map-box{height:auto;min-height:420px}.sidebar{width:170px}.portal-card-row{gap:24px}.portal-card{width:245px}}@media(max-width:760px){.app{display:block}.sidebar{display:none}.topbar{height:62px}.content{padding:12px}.kpi-row{grid-template-columns:1fr}.login-panel{left:5%;right:5%;width:auto;padding:18vh 30px}.portal-card-row{flex-direction:column}.portal-title{padding:14px 24px}.portal-title h1{font-size:24px}.portal-card{height:230px}.form-grid,.two-col,.detail-grid{grid-template-columns:1fr}.check-grid.inline{grid-template-columns:1fr}}
/* v3 interaction fixes */
body{overflow:hidden}.content{overflow-y:auto;overflow-x:hidden}.clickable{cursor:pointer;text-align:left;width:100%;border:0;background:transparent}.clickable:hover{filter:brightness(.98);transform:translateY(-1px)}
.modal{width:min(1180px,96vw);max-height:92vh;overflow:auto;position:relative}.modal::-webkit-scrollbar,.map-intel::-webkit-scrollbar{width:8px}.modal::-webkit-scrollbar-thumb,.map-intel::-webkit-scrollbar-thumb{background:#b7c7da;border-radius:999px}.modal-mask{padding:12px}.modal-close-x{position:sticky;float:right;top:0;z-index:20;display:grid;place-items:center;width:42px;height:42px;margin:-8px -8px 6px 14px;border:0;border-radius:50%;color:#334155;background:#eef5fd;box-shadow:0 4px 14px rgba(15,45,75,.16);font-size:30px;line-height:1;cursor:pointer}.modal-close-x:hover{color:#fff;background:#ef4444}.media-preview-modal .modal-close-x{position:fixed;top:5vh;right:4vw;color:#fff;background:rgba(15,23,42,.76);border:1px solid rgba(255,255,255,.35)}
.map-layout.rich-map{grid-template-columns:300px minmax(420px,1fr) 340px;align-items:stretch}.map-layout.map-full{grid-template-columns:330px minmax(680px,1fr) 360px}.map-layout.map-full .map-box,.map-layout.map-full .map-intel,.map-layout.map-full .map-side{height:72vh}.map-side .panel-head{margin-bottom:8px}.map-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.map-legend{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.map-legend span{font-size:13px;color:#475467}.lg{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-1px}.lg.member{background:#15c6d8}.lg.task{background:#ff9f1c}.lg.event{background:#ef4444}.lg.building{border-radius:3px;background:#6fbaff}.detail-box{border:1px solid #e4eefb;border-radius:14px;background:#fbfdff;padding:12px;margin:10px 0}.detail-box p{margin:8px 0}.live-item.clickable{display:block;color:inherit}.type-add{display:grid;grid-template-columns:1fr auto;gap:8px;grid-column:1/3}.flow-legend{display:flex;gap:18px;align-items:center;margin:8px 0;color:#667085;font-size:13px}.flow-legend i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:5px;vertical-align:-1px}.flow-legend .ok{background:#10b981}.flow-legend .no{background:#ef4444}.flow-node.done{border-color:#80ddb7;background:#eefdf5}.flow-node.todo{border-color:#ffb4b4;background:#fff5f5}.flow-node.todo b,.flow-node.todo strong{color:#b42318}.flow-node small{font-weight:900}.flow-row i{flex:0 0 auto}.flow-node{min-width:178px}.timeline .tl-item.clickable{display:block;color:inherit}.table td .btn{white-space:nowrap}
@media(max-width:1280px){.map-layout.rich-map{grid-template-columns:280px 1fr}.map-side{grid-column:1/3;height:auto}.map-box,.map-intel{height:620px}.modal{width:96vw}.map-layout.map-full{grid-template-columns:1fr}.map-layout.map-full .map-box{height:62vh}.map-layout.map-full .map-intel,.map-layout.map-full .map-side{height:auto}}
/* v4 layout and logic polish */
.topbar{height:72px;padding:0 24px;justify-content:space-between;overflow:hidden}.top-title{font-size:22px;font-weight:900;letter-spacing:1px;color:#fff}.top-user{margin-left:auto}.brand{height:72px}.content{padding-top:18px}.kpi-card{height:128px;overflow:visible}.kpi-card p{line-height:1.5;margin:6px 0 0;white-space:normal}.kpi-row{align-items:stretch}.weather-card{height:128px}.panel{overflow:hidden}.flow-row.compact{overflow-x:auto}.flow-node.doing,.flow-node.todo{border-color:#ffb4b4;background:#fff5f5}.flow-node.doing b,.flow-node.doing strong,.flow-node.todo b,.flow-node.todo strong{color:#b42318}.flow-node.done b,.flow-node.done strong{color:#067647}.flow-node small{display:inline-block;margin-top:4px}.map-layout.rich-map{grid-template-columns:320px minmax(560px,1fr) 360px}.map-intel,.map-side,.map-box{height:calc(100vh - 132px);min-height:620px}.map-box{position:relative}.map-side .detail-box p{line-height:1.55}.full-map-page{height:74vh;position:relative;border-radius:18px;overflow:hidden;background:#dff6ff;border:1px solid #bde9ff}.map-modal .modal{width:98vw;max-width:98vw;height:94vh;max-height:94vh}.full-map-top{position:absolute;left:18px;top:16px;z-index:8;background:rgba(255,255,255,.9);border:1px solid #d8eaff;border-radius:14px;padding:10px 14px;box-shadow:var(--shadow)}.full-map-top b{font-size:20px;display:block}.full-map-top span{color:#667085}.full-map-box{position:absolute;inset:0;background:linear-gradient(135deg,#d4f4ff,#eff9ff);overflow:hidden}.full-map-box:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(35deg,transparent 0 80px,rgba(14,165,233,.12) 80px 90px),repeating-linear-gradient(95deg,transparent 0 120px,rgba(34,197,94,.16) 120px 132px)}.full-map-side{position:absolute;right:20px;top:20px;width:280px;background:rgba(255,255,255,.94);border:1px solid #d8eaff;border-radius:18px;padding:16px;box-shadow:var(--shadow);z-index:8}.type-manager{display:grid;grid-template-columns:70px 1fr 1fr auto auto;gap:10px;align-items:center;grid-column:1/3}.type-manager input,.type-manager select{border:1px solid #d8e6f7;border-radius:10px;padding:10px;background:#fff}.team-checks{grid-template-columns:repeat(2,minmax(240px,1fr));gap:12px}.label-grid p{margin:8px 0}.event-decision div{min-height:76px}.members-layout{grid-template-columns:1.1fr .9fr}.team-detail-box{margin-top:18px;border:1px solid #d8eaff;border-radius:16px;padding:16px;background:#fbfdff}.member-chips{display:flex;flex-direction:column;gap:8px}.member-chips span{display:block;border:1px solid #e4eefb;border-radius:12px;background:#fff;padding:10px}.file-field{grid-column:1/3;border:1px dashed #91c9ff;border-radius:12px;padding:12px;background:#f6fbff;font-weight:900;color:#1167b1}.file-field input{display:block;margin-top:8px}.data-list{width:260px;margin:0 auto;color:#475467;line-height:1.8}.mini-table{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.mini-table span,.data-table td,.data-table th{border:1px solid #e4eefb;background:#fbfdff;border-radius:8px;padding:8px}.data-table{width:100%;border-spacing:8px;border-collapse:separate;margin-top:12px}.data-table th{text-align:left;color:#344054}.info-card.clickable{text-align:left}.table td{line-height:1.45}.modal h3{word-break:break-word}.modal .flow-row{padding-bottom:8px}.search{display:none}
.auto-refresh-status{border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(255,255,255,.14);color:#fff;padding:8px 12px;font-size:12px;font-weight:800;white-space:nowrap}.auto-refresh-status.loading{opacity:.75}.auto-refresh-status.ok{background:rgba(18,184,134,.3)}.auto-refresh-status.error{background:rgba(239,68,68,.35)}
#nav button{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px}.nav-badge{flex:none;min-width:22px;height:22px;line-height:22px;padding:0 6px;border-radius:999px;background:#ff3b30;color:#fff;font-size:12px;font-style:normal;font-weight:900;text-align:center;box-shadow:0 3px 9px rgba(255,59,48,.3)}.attention-list{display:flex;flex-direction:column;gap:10px;min-width:420px}.attention-list button{display:flex;align-items:center;justify-content:space-between;border:1px solid #dce8f7;border-radius:14px;background:#f8fbff;padding:14px 16px;color:#172033;font-size:15px;text-align:left;cursor:pointer}.attention-list button:hover{border-color:#3097f3;background:#eef7ff}.attention-list b{min-width:30px;text-align:center;border-radius:999px;background:#e9eef5;color:#667085;padding:5px 9px}.attention-list b.has-count{background:#ff3b30;color:#fff}
@media(max-width:1360px){.map-layout.rich-map{grid-template-columns:300px 1fr}.map-side{grid-column:1/3;height:auto;min-height:auto}.map-intel,.map-box{height:620px}.mini-table{grid-template-columns:repeat(2,1fr)}.type-manager{grid-template-columns:1fr 1fr}.team-checks{grid-template-columns:1fr}}
@media(max-width:900px){.community-grid{grid-template-columns:repeat(3,1fr)}.top-title{font-size:18px}.kpi-row{grid-template-columns:1fr}.members-layout{grid-template-columns:1fr}.type-manager{grid-template-columns:1fr}.file-field{grid-column:1}.full-map-side{left:20px;right:auto;top:auto;bottom:20px;width:calc(100% - 40px)}.full-map-page{height:70vh}}
/* v5 requested logic/UI fixes */
.topbar{justify-content:space-between}.top-title{min-width:240px}.top-user{gap:12px}.admin-chip{display:flex!important;align-items:center;gap:8px;background:rgba(255,255,255,.12)!important;border:1px solid rgba(255,255,255,.2)!important;border-radius:999px!important;color:#fff!important;padding:7px 12px!important;font-size:14px!important}.admin-chip small{display:block;color:#dff3ff;font-size:11px;font-weight:600;max-width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#10c6d9,#1677ff);color:#fff;font-weight:900}.admin-list{display:flex;flex-direction:column;gap:12px}.admin-row{display:flex;align-items:center;gap:12px;border:1px solid #e4eefb;border-radius:14px;background:#fbfdff;padding:14px;text-align:left}.admin-row.active{border-color:#1677ff;background:#eff8ff}.admin-row p{margin:4px 0 0;color:#667085}.kpi-card strong{display:block}.chart-legend{display:flex;gap:16px;justify-content:flex-end;color:#667085;font-size:13px}.chart-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px}.c-blue{background:#2d6cdf}.c-green{background:#16c0d8}.c-cyan{background:#a5eff9}.bar-chart.labeled{height:260px;gap:16px;align-items:flex-end}.bar-slot{width:34px;text-align:center;position:relative}.bar-slot small{display:block;margin-top:6px;color:#667085}.bar-group{position:relative;margin:auto;height:210px;align-items:flex-end}.bar-group .num{position:absolute;left:0;font-size:11px;color:#1f2a44;font-weight:900;transform:translateY(-2px)}.labeled-bars .hbar{grid-template-columns:120px 1fr 55px}.labeled-bars .hbar div{position:relative;height:22px}.labeled-bars .hbar b{position:absolute;right:8px;top:1px;color:#1f2a44;font-size:13px}.event-bars{display:flex;flex-direction:column;gap:18px;margin:18px 0}.event-bar-row{display:grid;grid-template-columns:84px 1fr 54px;align-items:center;gap:12px}.event-track{height:30px;background:#eef4fb;border-radius:999px;overflow:hidden;position:relative}.event-track i{display:block;height:100%;border-radius:999px}.event-track i.red{background:#ef4444}.event-track i.orange{background:#f59e0b}.event-track i.yellow{background:#eab308}.event-track b{position:absolute;right:12px;top:4px;color:#1f2a44}.small-donut{width:210px;height:210px}.donut-title-row{display:flex;justify-content:space-between;gap:12px;align-items:center}.donut-title-row b{font-size:20px}.donut-title-row span{color:#667085;font-size:13px}.mini-table.three{grid-template-columns:repeat(3,1fr)}.live-item p{margin:7px 0}.full-map-page{height:82vh}.map-modal .modal{padding:12px;width:98.5vw;max-width:98.5vw}.full-map-side .detail-box,.full-map-side .map-actions{display:block}.inline-tools{display:grid;grid-template-columns:1fr auto auto;gap:8px}.inline-tools select{min-width:0}.select-panel{width:100%;border:1px dashed #91c9ff;background:#f6fbff;border-radius:14px;padding:18px;text-align:left;color:#1f2a44}.select-panel b{display:block;font-size:16px;margin-bottom:5px}.select-panel span{color:#667085}.team-picker-list{display:flex;flex-direction:column;gap:10px;max-height:48vh;overflow:auto}.team-pick-card{display:flex;gap:10px;border:1px solid #e4eefb;border-radius:14px;background:#fbfdff;padding:14px}.team-pick-card p{margin:6px 0 0;color:#667085}.desc-cell{max-width:360px;color:#475467}.desc-box{border:1px solid #d8eaff;border-radius:14px;background:#fbfdff;padding:14px;margin:12px 0}.desc-box p{margin:8px 0 0;line-height:1.7}.selected-row{background:#f0f8ff}.community-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px}.feed-list{display:flex;flex-direction:column;gap:14px}.post-card{border:1px solid #e4eefb;border-radius:16px;background:#fff;padding:16px;box-shadow:0 8px 20px rgba(20,70,120,.05)}.post-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.post-head b{font-size:17px}.post-head p{margin:6px 0 0;color:#667085;font-size:13px}.post-content{line-height:1.75;color:#344054;background:#fbfdff;border:1px solid #edf2f7;border-radius:12px;padding:12px}.post-meta{color:#667085;margin:10px 0}.post-actions{display:flex;gap:8px;flex-wrap:wrap}.review-panel{border:1px solid #e4eefb;border-radius:16px;background:#fbfdff;padding:16px;max-height:650px;overflow:auto}.review-log-list{display:flex;flex-direction:column;gap:10px}.review-log{background:#fff;border:1px solid #e4eefb;border-radius:12px;padding:12px}.review-log p{margin:6px 0;color:#475467}.review-log small{display:block;margin-top:6px;color:#98a2b3}.comment-row{display:flex!important;align-items:center;justify-content:space-between;gap:12px}.comment-row .btn{flex:0 0 auto}.modal textarea{min-height:110px;border:1px solid #d8e6f7;border-radius:10px;padding:10px;width:100%}.data-table td,.data-table th{font-size:14px}.map-intel .live-item b:after{content:""}.logic-tip{line-height:1.7}
@media(max-width:1280px){.community-layout{grid-template-columns:1fr}.community-grid{grid-template-columns:repeat(4,1fr)}.review-panel{max-height:none}.inline-tools{grid-template-columns:1fr}.mini-table.three{grid-template-columns:1fr}.top-title{min-width:auto}.admin-chip small{display:none}}
/* v6: personal info only + community three-section layout */
.admin-profile{display:grid;grid-template-columns:72px 1fr;gap:18px;align-items:start;border:1px solid #e4eefb;background:#fbfdff;border-radius:18px;padding:18px}.avatar.big{width:64px;height:64px;font-size:24px}.admin-profile h3{margin:0 0 8px}.admin-profile p{margin:8px 0;color:#344054}.community-tabs{display:flex;gap:10px;margin:16px 0}.community-tabs button{border:1px solid #d8eaff;background:#f6fbff;border-radius:999px;padding:10px 18px;color:#1769b2;font-weight:900;cursor:pointer}.community-tabs button.active{background:linear-gradient(135deg,#20c6ff,#1677ff);color:#fff;border-color:transparent;box-shadow:0 10px 24px rgba(22,119,255,.18)}.community-main-list{margin-top:14px}.community-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:14px}.community-grid-card{background:#fff;border:1px solid #e4eefb;border-radius:16px;overflow:hidden;box-shadow:0 4px 16px rgba(15,45,75,.06);transition:transform .15s,box-shadow .15s}.community-grid-card:hover{transform:translateY(-3px);box-shadow:0 8px 28px rgba(15,45,75,.12)}.community-grid-cover{position:relative;width:100%;height:0;padding-bottom:75%;background:#e2e8f0;overflow:hidden}.community-grid-cover img,.community-grid-cover video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.community-grid-cover .media-loading,.community-grid-cover .media-error{position:absolute;inset:0;display:grid;place-items:center}.community-grid-cover-empty{position:absolute;inset:0;display:grid;place-items:center;font-size:40px;color:#cbd5e1}.community-grid-play{position:absolute;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.2);color:#fff;font-size:36px}.community-grid-body{padding:14px 16px 16px}.community-grid-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:14px;font-weight:800;color:#1e293b;line-height:1.4;margin-bottom:6px}.community-grid-type{display:inline-block;padding:2px 10px;border-radius:8px;font-size:11px;font-weight:700;background:#eef2ff;color:#4f46e5;margin-bottom:8px}.community-grid-meta{font-size:11px;color:#94a3b8;margin:0 0 8px}.community-grid-stats{font-size:12px;color:#94a3b8}.review-log-table{margin-top:14px}.review-log-table .table td{vertical-align:top}.community-page .toolbar{align-items:center}.post-card .post-actions{margin-top:10px}.post-card .post-content{white-space:pre-wrap}.comment-row{display:flex!important;align-items:center;justify-content:space-between;gap:12px}.comment-row div{line-height:1.6}.modal .mini-muted{color:#667085}.modal textarea{resize:vertical}
/* v8 backend/mysql integration */
.db-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-radius:16px;padding:12px 16px;margin-bottom:14px;border:1px solid #d8eaff;background:#f6fbff;color:#1f2a44}.db-banner.ok{border-color:#b7ebc6;background:#f0fff4}.db-banner.warn{border-color:#ffd8a8;background:#fff8eb}.db-banner span{color:#667085}.db-banner .btn{margin-left:auto}.db-page .sub{box-shadow:none}.db-form{grid-template-columns:1fr auto;align-items:end;margin:14px 0}.db-form label{font-weight:900;color:#344054}.db-form input{margin-top:8px}.db-actions{display:flex;gap:8px;align-items:center}.db-page input[type=file]{display:block;width:100%;border:1px dashed #91c9ff;background:#f6fbff;border-radius:12px;padding:14px;margin:12px 0}.top-user .btn{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:7px 10px}.top-user .btn:hover{background:rgba(255,255,255,.2)}
@media(max-width:900px){.db-form{grid-template-columns:1fr}.db-banner .btn{margin-left:0}}

/* v11 安全登录与注册审核补充样式：保留原有视觉体系 */
.security-note{margin:14px 0;padding:12px 14px;border-radius:10px;background:#f2f7ff;color:#48627d;font-size:13px;line-height:1.7;border:1px solid #dceafd}
.type-manage-box{padding:14px;border:1px solid #dce7f5;border-radius:12px;background:#f8fbff;margin-bottom:14px}
.type-chip-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.type-chip{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border-radius:999px;background:#eaf3ff;color:#185ca8;border:1px solid #cfe3fb}
.type-chip button{border:0;background:transparent;color:#cf3131;cursor:pointer;font-weight:700}
.type-manage-box{padding:22px;background:linear-gradient(135deg,#f8fbff 0%,#eef8ff 100%);border-color:#cfe4fb;box-shadow:0 10px 30px rgba(30,112,190,.08)}
.type-total{display:inline-block;margin-left:8px;padding:3px 9px;border-radius:999px;background:#dceeff;color:#1672c4;font-size:12px;vertical-align:2px}
.type-create-row{display:flex;gap:10px;max-width:620px;margin:16px 0 20px}.type-create-row input{flex:1;min-width:0;border:1px solid #bcd8f4;border-radius:12px;padding:12px 14px;background:#fff;outline:none}.type-create-row input:focus{border-color:#2f7cff;box-shadow:0 0 0 3px rgba(47,124,255,.12)}
.existing-type-title{display:flex;align-items:center;justify-content:space-between;padding-top:16px;border-top:1px solid #d9e9f8;color:#263b53}.existing-type-title span{font-size:12px;color:#718096}
.type-card-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-top:12px}.type-card{display:flex;align-items:center;gap:11px;min-height:66px;padding:12px;border:1px solid #dceafb;border-radius:14px;background:#fff;box-shadow:0 5px 16px rgba(29,91,150,.06)}.type-card-icon{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#30c9f4,#397cf2);color:#fff;font-weight:900}.type-card div{min-width:0;flex:1}.type-card b,.type-card small{display:block}.type-card small{margin-top:4px;color:#7a8798}.type-card button{border:0;background:#fff1f1;color:#d23c3c;border-radius:8px;padding:6px 8px;cursor:pointer}.type-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;padding:24px;border:1px dashed #a9cbed;border-radius:14px;color:#54718e;background:rgba(255,255,255,.55)}.type-empty span{margin-top:6px;font-size:12px}
.import-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}.import-overview button{display:flex;flex-direction:column;align-items:flex-start;border:1px solid #dceafb;border-radius:14px;background:#fff;padding:16px;cursor:pointer}.import-overview b{font-size:26px;color:#1677d2}.import-overview span{margin-top:4px;color:#667085}.import-result{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #a6e4c6;border-left:5px solid #10b981;border-radius:14px;background:#effcf6;padding:14px 16px}.import-result.has-error{border-color:#f5cf8d;border-left-color:#f59e0b;background:#fff9ec}.import-result div b,.import-result div span{display:block}.import-result div span{margin-top:5px;color:#526273;font-size:13px}
.table-scroll{width:100%;overflow-x:auto}.table-scroll .table{min-width:760px}
.members-layout>.panel:nth-child(2){overflow:visible}.members-layout>.panel:nth-child(2) .table-scroll .table{min-width:0;table-layout:fixed}.members-layout>.panel:nth-child(2) .table th,.members-layout>.panel:nth-child(2) .table td{padding-left:9px;padding-right:9px;word-break:break-word}.members-layout>.panel:nth-child(2) .table th:last-child,.members-layout>.panel:nth-child(2) .table td:last-child{width:168px}.members-layout>.panel:nth-child(2) .table td:last-child .btn{padding:7px 8px;margin:2px;font-size:12px}
.team-edit-members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.team-edit-members button{text-align:left;border:1px solid #d8eaff;border-radius:12px;background:#f8fbff;padding:11px;color:#172033;cursor:pointer}.team-edit-members button:hover{border-color:#3097f3;background:#eef7ff}.team-edit-members b,.team-edit-members span{display:block}.team-edit-members span{margin-top:4px;color:#667085;font-size:12px}
.members-layout>.panel{height:720px;display:flex;flex-direction:column;min-height:0}.members-layout>.panel>.table-scroll{flex:1;min-height:0;overflow:auto}.members-layout>.panel:nth-child(2)>.table-scroll{max-height:none}.members-layout .table-scroll .table th{position:sticky;top:0;z-index:2;background:#fff}.team-detail-box{display:none}.team-members-modal .modal{width:min(760px,92vw);max-height:82vh}.team-popup-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.team-popup-summary span{padding:12px;border-radius:12px;background:#f3f8ff;color:#475467}.team-popup-summary b{display:block;color:#172033;margin-bottom:5px}.team-popup-list{height:min(480px,55vh);overflow-y:auto;border:1px solid #e4eefb;border-radius:14px;padding:8px}.team-popup-list button{width:100%;display:grid;grid-template-columns:1.1fr 1fr auto;gap:12px;align-items:center;text-align:left;border:0;border-bottom:1px solid #edf2f7;background:#fff;padding:13px 12px;cursor:pointer}.team-popup-list button:last-child{border-bottom:0}.team-popup-list button:hover{background:#f4f9ff}.team-popup-list div b,.team-popup-list div small{display:block}.team-popup-list small{margin-top:4px;color:#98a2b3}.team-popup-list span{color:#475467}.team-popup-list em{font-style:normal;color:#087443;background:#eafaf1;border-radius:999px;padding:5px 9px}
@media(max-width:1100px){.team-popup-summary{grid-template-columns:repeat(2,1fr)}.team-popup-list button{grid-template-columns:1fr}.members-layout>.panel{height:660px}}
.member-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:16px 0}.member-summary button{display:grid;grid-template-columns:1fr auto;align-items:center;text-align:left;border:1px solid #dceafb;border-radius:16px;background:#fff;padding:15px 16px;cursor:pointer;box-shadow:0 6px 18px rgba(31,101,169,.06)}.member-summary button:hover{border-color:#74b9f5;transform:translateY(-1px)}.member-summary span{color:#53677c;font-weight:800}.member-summary b{grid-row:1/3;grid-column:2;font-size:30px;color:#1478d4}.member-summary small{margin-top:5px;color:#8a99aa}.member-result-count{display:inline-block;margin-left:8px;padding:3px 9px;border-radius:999px;background:#e8f3ff;color:#1672c4;font-size:12px;vertical-align:2px}.member-filter-bar{display:grid;grid-template-columns:minmax(210px,2fr) repeat(3,minmax(110px,1fr));gap:9px;margin-bottom:8px}.member-filter-bar input,.member-filter-bar select{width:100%;min-width:0;border:1px solid #d4e4f5;border-radius:10px;background:#fff;padding:10px;color:#344054}.member-filter-bar input:focus,.member-filter-bar select:focus{outline:none;border-color:#2f7cff;box-shadow:0 0 0 3px rgba(47,124,255,.1)}.filter-labels{display:none}.member-no-result{text-align:center!important;padding:32px!important;color:#7a8798!important}
@media(max-width:760px){.type-create-row,.import-result{align-items:stretch;flex-direction:column}.import-overview{grid-template-columns:repeat(2,1fr)}}
.registration-filter{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.registration-card{border:1px solid #dce7f5;border-radius:12px;padding:14px;margin:10px 0;background:#fff}
.registration-card .meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0;color:#556779}
.registration-card .actions{display:flex;gap:8px;justify-content:flex-end}
@media(max-width:900px){.registration-card .meta{grid-template-columns:1fr}}
.topbar{flex:0 0 72px;min-height:72px}.content{flex:1 1 auto;min-height:0}
@media(max-width:760px){.topbar{flex-basis:62px;min-height:62px}}
.filter-labels{display:grid;grid-template-columns:minmax(210px,2fr) repeat(3,minmax(110px,1fr));gap:9px;margin:-3px 0 14px;color:#8a99aa;font-size:11px}.filter-labels span{text-align:center}.filter-labels span:first-child{text-align:left;padding-left:4px}
@media(max-width:1200px){.member-summary{grid-template-columns:repeat(3,1fr)}.member-filter-bar,.filter-labels{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.member-summary{grid-template-columns:repeat(2,1fr)}.member-filter-bar{grid-template-columns:1fr}.filter-labels{display:none}}
.filter-labels{display:none!important}
.yh-map-module{height:calc(100vh - 96px);min-height:680px;display:flex;flex-direction:column;background:#03162b;border:1px solid #1184b1;box-shadow:0 0 24px rgba(0,197,255,.18);overflow:hidden}
.yh-map-module-bar{height:58px;flex:0 0 58px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;color:#e8f9ff;background:linear-gradient(90deg,#052746,#07385a);border-bottom:1px solid #0aa9d5}
.yh-map-module-bar>div{display:flex;align-items:center;gap:12px}.yh-map-module-bar b{font-size:18px}.yh-map-module-bar span{color:#8edff8}.yh-map-module-bar small{color:#a9d9e8}.map-live-dot{width:9px;height:9px;border-radius:50%;background:#33f3b5;box-shadow:0 0 12px #33f3b5;animation:mapPulse 1.6s infinite}.yh-map-frame{width:100%;height:100%;border:0;background:#020b17}.yh-map-module .btn{color:#dff8ff;border-color:#1e9cc8;background:#063555}
@keyframes mapPulse{50%{opacity:.35;transform:scale(.75)}}
.map-only-mode{overflow:hidden;background:#020b17}.map-only-mode .sidebar,.map-only-mode .topbar{display:none!important}.map-only-mode .app,.map-only-mode .main{display:block!important;width:100vw!important;height:100vh!important;margin:0!important;padding:0!important}.map-only-mode .content{width:100vw!important;height:100vh!important;margin:0!important;padding:0!important;overflow:hidden!important}.map-only-mode .yh-map-module{width:100vw;height:100vh;min-height:0;border:0;box-shadow:none}.map-only-mode .yh-map-module-bar{display:none}.map-only-mode .yh-map-frame{display:block;width:100vw;height:100vh}
.yh-map-module{position:relative}.yh-map-back{position:absolute;z-index:20;top:18px;left:18px;padding:10px 16px;color:#e9fbff;background:rgba(4,35,66,.92);border:1px solid #25c9ee;border-radius:6px;box-shadow:0 0 16px rgba(24,199,239,.28);cursor:pointer;font-weight:700}.yh-map-back:hover{background:#07517a}
.task-feedback-card{margin:14px 0;padding:16px;border:1px solid #b8dcec;border-radius:12px;background:#f7fcff}.task-feedback-head{display:flex;justify-content:space-between;gap:16px}.task-feedback-head>div{display:grid;gap:4px}.task-feedback-head small{color:#6c8190}.feedback-text{margin-top:12px;padding:12px;background:#fff;border-radius:8px}.feedback-text p{white-space:pre-wrap;margin-bottom:0}.feedback-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:12px}.protected-media{min-height:130px;display:flex;flex-direction:column;gap:6px;align-items:stretch;padding:8px;background:#061d33;border:1px solid #198eb8;border-radius:8px;color:#dff8ff}.protected-media img,.protected-media video{display:block;width:100%;height:150px;object-fit:contain;background:#000;border-radius:5px}.protected-media button{padding:0;border:0;background:transparent;cursor:zoom-in}.protected-media span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.media-loading,.media-error{display:grid;place-items:center;min-height:120px;color:#9ac7d8}.media-error{color:#ff8798}.media-full{display:block;max-width:min(1100px,90vw);max-height:75vh;margin:auto;object-fit:contain;background:#000}.media-preview-modal .modal{width:auto;max-width:95vw}.task-detail-modal .modal{max-width:1500px}.empty-feedback{padding:18px;color:#718096;background:#f7f9fb;border-radius:8px}.attachment-table small{color:#718096}
.protected-media .media-actions{display:flex;gap:6px}.protected-media .media-actions .btn{flex:1;padding:6px 8px;border:1px solid #198eb8;background:#0a3553;color:#dff8ff;cursor:pointer}.gallery-counter{text-align:center;margin-top:8px;color:#718096}.media-error{text-align:center}.media-preview-modal .media-full{width:min(1400px,92vw);height:min(82vh,900px);max-width:92vw;max-height:82vh}.media-preview-modal video.media-full{object-fit:contain}.dimension-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:18px}.dimension-tabs button{padding:9px 6px;border:1px solid #d6e6f6;border-radius:10px;background:#f3f8fd;color:#4b647a;font-weight:800;cursor:pointer}.dimension-tabs button.active{border-color:#3297ef;color:#fff;background:linear-gradient(135deg,#2a83ed,#18bed0);box-shadow:0 6px 16px rgba(36,137,223,.2)}.time-dimension-panel .decision-bars{margin-top:10px}.analysis-note p{padding:10px 12px;margin:5px 0;border-radius:10px;background:#f6faff;color:#475467}html[data-theme="dark"] .dimension-tabs button{background:#10283b;border-color:#29465c;color:#bcd0e2}html[data-theme="dark"] .dimension-tabs button.active{color:#fff;background:linear-gradient(135deg,#246fc4,#119aab)}html[data-theme="dark"] .analysis-note p{background:#10283b;color:#cbd9e5}
.scroll-region{max-height:300px;overflow-y:auto;overscroll-behavior:contain;padding-right:6px;scrollbar-width:thin}.compact-analysis{height:390px;display:flex;flex-direction:column;min-height:0}.compact-analysis>.scroll-region,.compact-analysis>.person-ranking{min-height:0}.ranking-search{width:100%;margin:10px 0;padding:9px 11px;border:1px solid #d8e6f7;border-radius:10px;background:#fff}.team-cell-scroll{max-height:116px;overflow-y:auto;line-height:1.65;padding-right:5px;scrollbar-width:thin}.task-table-scroll{max-height:calc(100vh - 230px);overflow:auto}.task-table-scroll .table th{position:sticky;top:0;z-index:2;background:#fff}.task-table{table-layout:fixed;width:100%;min-width:700px}.task-table th:nth-child(1),.task-table td:nth-child(1){width:auto}.task-table th:nth-child(2),.task-table td:nth-child(2){width:70px;white-space:nowrap}.task-table th:nth-child(3),.task-table td:nth-child(3){width:72px;white-space:nowrap}.task-table th:nth-child(4),.task-table td:nth-child(4){width:auto;max-width:240px;white-space:normal;word-break:break-word}.task-table th:nth-child(5),.task-table td:nth-child(5){width:80px;white-space:nowrap}.task-table th:nth-child(6),.task-table td:nth-child(6){width:auto;min-width:80px;white-space:normal;word-break:break-word}.task-table th:nth-child(7),.task-table td:nth-child(7){width:68px;white-space:nowrap}.task-table td .tag{white-space:nowrap;writing-mode:horizontal-tb}.task-status-cell{white-space:nowrap;writing-mode:horizontal-tb}.task-list-panel{height:calc(100vh - 112px);display:flex;flex-direction:column}.task-list-panel .task-table-scroll{flex:1;min-height:0}.compact-modal-list{max-height:62vh;overflow:auto}#teamPickerList,#eventTeamPickerList,.team-checks{max-height:52vh;overflow-y:auto;overscroll-behavior:contain;padding-right:6px}.dashboard-feed-grid{align-items:start}.dashboard-feed-panel{height:430px;display:flex;flex-direction:column;min-height:0}.dashboard-feed-panel>h3{flex:0 0 auto}.dashboard-feed-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:7px;scrollbar-width:thin}.dashboard-feed-scroll .live-item{display:block;width:100%;margin-bottom:10px}html[data-theme="dark"] .ranking-search{background:#071a2a;border-color:#315067;color:#edf6ff}html[data-theme="dark"] .task-table-scroll .table th{background:#0d2234}html[data-theme="dark"] .modal-close-x{color:#dce9f4;background:#173954}

/* v11.5 深浅色模式与多维统计 */
.theme-toggle{font-size:13px!important;border:1px solid rgba(255,255,255,.35)!important;border-radius:999px!important;padding:7px 12px!important}.analytics-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px}.analytics-toolbar h3{margin:0 0 6px}.analytics-toolbar p{margin:0}.analytics-toolbar select{min-width:150px;border:1px solid #d8e6f7;border-radius:10px;padding:10px;background:#fff;color:#344054}.analytics-kpis{grid-template-columns:repeat(3,1fr);margin-top:16px}.analytics-kpis .kpi-card{height:110px}.grid.three>.panel.sub{min-width:0}
html[data-theme="dark"]{--bg:#071321;--ink:#e7f1fb;--muted:#9bb0c4;--line:#25384b;--shadow:0 14px 34px rgba(0,0,0,.28);color-scheme:dark}
html[data-theme="dark"] body,html[data-theme="dark"] .content{background:#071321;color:#e7f1fb}
html[data-theme="dark"] .sidebar{background:#0b1d2d;border-color:#203447}html[data-theme="dark"] .sidebar nav button{color:#bcd0e2}html[data-theme="dark"] .sidebar nav button.active,html[data-theme="dark"] .sidebar nav button:hover{background:#133551;color:#69c8ff}
html[data-theme="dark"] .kpi-card,html[data-theme="dark"] .weather-card,html[data-theme="dark"] .panel,html[data-theme="dark"] .map-intel,html[data-theme="dark"] .map-side,html[data-theme="dark"] .modal,html[data-theme="dark"] .info-card,html[data-theme="dark"] .post-card,html[data-theme="dark"] .review-panel{background:#0d2234;border-color:#263e52;color:#e7f1fb}
html[data-theme="dark"] .kpi-card h4,html[data-theme="dark"] .weather-card h4,html[data-theme="dark"] .panel h3,html[data-theme="dark"] .table th{color:#e7f1fb}html[data-theme="dark"] .kpi-card p,html[data-theme="dark"] .mini-muted,html[data-theme="dark"] .chart-legend,html[data-theme="dark"] .data-table{color:#9bb0c4}
html[data-theme="dark"] .form-section,html[data-theme="dark"] .detail-grid,html[data-theme="dark"] .detail-box,html[data-theme="dark"] .logic-tip,html[data-theme="dark"] .live-item,html[data-theme="dark"] .tl-item,html[data-theme="dark"] .select-panel,html[data-theme="dark"] .admin-row,html[data-theme="dark"] .task-feedback-card,html[data-theme="dark"] .feedback-text,html[data-theme="dark"] .empty-feedback{background:#10283b;border-color:#29465c;color:#dce9f4}
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea,html[data-theme="dark"] .toolbar input,html[data-theme="dark"] .toolbar select,html[data-theme="dark"] .form-grid input,html[data-theme="dark"] .form-grid select,html[data-theme="dark"] .form-grid textarea,html[data-theme="dark"] .analytics-toolbar select{background:#071a2a;border-color:#315067;color:#edf6ff}
html[data-theme="dark"] .table td,html[data-theme="dark"] .table th,html[data-theme="dark"] .data-table td,html[data-theme="dark"] .data-table th{border-color:#263e52}html[data-theme="dark"] .table td,html[data-theme="dark"] .data-table td{background:#0d2234}html[data-theme="dark"] .donut:after{background:#0d2234}html[data-theme="dark"] .event-track,html[data-theme="dark"] .hbar div{background:#1b3448}html[data-theme="dark"] .db-banner{color:#dce9f4}html[data-theme="dark"] .btn{background:#173954;color:#8fd3ff}html[data-theme="dark"] .btn.primary{color:#fff;background:linear-gradient(90deg,#148fc4,#2568d8)}
@media(max-width:900px){.analytics-toolbar{align-items:stretch;flex-direction:column}.analytics-kpis{grid-template-columns:1fr}.grid.three{grid-template-columns:1fr}}
.decision-panel{overflow:visible}.decision-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.decision-head h3{margin:0 0 5px}.decision-head p{margin:0}.decision-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.decision-actions select{min-width:180px;border:1px solid #d8e6f7;border-radius:10px;padding:9px;background:#fff}.decision-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:15px 0}.decision-kpis div{padding:13px;border:1px solid #dceafb;border-radius:13px;background:#f7fbff}.decision-kpis b,.decision-kpis span{display:block}.decision-kpis b{font-size:24px;color:#1677d2}.decision-kpis span{margin-top:3px;color:#667085;font-size:12px}.decision-grid>.panel{margin-top:0;box-shadow:none}.decision-subtitle{margin-top:22px!important}.decision-bars{display:flex;flex-direction:column;gap:9px;margin-top:13px}.decision-bar{display:grid;grid-template-columns:88px 1fr 34px;gap:8px;align-items:center;font-size:13px}.decision-bar>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.decision-bar>i{height:10px;background:#edf3f9;border-radius:999px;overflow:hidden}.decision-bar>i>i{display:block;height:100%;background:linear-gradient(90deg,#237bf2,#16c4d8);border-radius:999px}.person-ranking{display:flex;flex-direction:column;gap:7px}.person-ranking button{display:grid;grid-template-columns:30px 1fr auto;gap:9px;align-items:center;width:100%;padding:8px;border:1px solid #e1ebf5;border-radius:11px;background:#fbfdff;text-align:left}.person-ranking em{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#e7f2ff;color:#1971c9;font-style:normal;font-weight:800}.person-ranking span,.person-ranking small{display:block}.person-ranking small{color:#8795a5;font-weight:400}.person-ranking b{font-size:18px;color:#1478d4}html[data-theme="dark"] .decision-kpis div,html[data-theme="dark"] .decision-grid>.panel,html[data-theme="dark"] .person-ranking button{background:#10283b;border-color:#29465c}html[data-theme="dark"] .decision-actions select{background:#071a2a;border-color:#315067;color:#edf6ff}@media(max-width:1100px){.decision-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.decision-kpis{grid-template-columns:1fr}.decision-actions{align-items:stretch;flex-direction:column}.decision-actions select{width:100%}}

/* ═══════════════════════════════════════════════ */
/* v11.7 深色模式全覆盖 — 消除白色刺眼板块 */
/* ═══════════════════════════════════════════════ */

/* ── 表单/输入选中态 ── */
html[data-theme="dark"] .check-grid label{color:#dce9f4}
html[data-theme="dark"] .check-grid input[type="checkbox"]{accent-color:#246BFE}

/* ── 按钮 ── */
html[data-theme="dark"] .btn{background:#173954;color:#8fd3ff;border-color:#315067}
html[data-theme="dark"] .btn:hover{background:#1f4568}
html[data-theme="dark"] .btn.primary{color:#fff;background:linear-gradient(90deg,#148fc4,#2568d8)}
html[data-theme="dark"] .btn.red{background:#4a1525;color:#ff8a8a;border-color:#6e2a3a}
html[data-theme="dark"] .btn.green{background:#153a2a;color:#6ee7b7;border-color:#2a5a3a}
html[data-theme="dark"] .btn.orange{background:#3d2a10;color:#ffb86c;border-color:#5a3d18}

/* ── 数据库横幅 ── */
html[data-theme="dark"] .db-banner{background:#10283b;border-color:#29465c;color:#dce9f4}
html[data-theme="dark"] .db-banner.ok{background:#0f2d24;border-color:#1a5a3e}
html[data-theme="dark"] .db-banner.warn{background:#2d2010;border-color:#5a3d18}

/* ── 任务流转节点 ── */
html[data-theme="dark"] .flow-node{border-color:#29465c;background:#10283b;color:#dce9f4}
html[data-theme="dark"] .flow-node.doing,html[data-theme="dark"] .flow-node.todo{border-color:#6e2a3a;background:#2a1620}
html[data-theme="dark"] .flow-node.doing b,html[data-theme="dark"] .flow-node.doing strong,html[data-theme="dark"] .flow-node.todo b,html[data-theme="dark"] .flow-node.todo strong{color:#ff8a8a}
html[data-theme="dark"] .flow-node.done{border-color:#1a5a3e;background:#0f2d24}
html[data-theme="dark"] .flow-node.done b,html[data-theme="dark"] .flow-node.done strong{color:#6ee7b7}

/* ── 人员/队伍卡片 ── */
html[data-theme="dark"] .admin-row{background:#10283b;border-color:#29465c;color:#dce9f4}
html[data-theme="dark"] .admin-row.active{background:#132d4a;border-color:#246BFE}
html[data-theme="dark"] .admin-profile{background:#10283b;border-color:#29465c}
html[data-theme="dark"] .member-summary button{background:#10283b;border-color:#29465c;color:#dce9f4}
html[data-theme="dark"] .member-summary button:hover{background:#132d4a}
html[data-theme="dark"] .team-edit-members button{background:#10283b;border-color:#29465c;color:#dce9f4}
html[data-theme="dark"] .team-edit-members button:hover{background:#132d4a;border-color:#3097f3}

/* ── 队伍/人员选择卡片 ── */
html[data-theme="dark"] .team-pick-card{background:#10283b;border-color:#29465c;color:#dce9f4}
html[data-theme="dark"] .team-pick-card:hover{background:#132d4a}
html[data-theme="dark"] .team-pick-card b{color:#e7f1fb}
html[data-theme="dark"] .team-pick-card p{color:#9bb0c4}

/* ── 类型管理 ── */
html[data-theme="dark"] .type-card{background:#10283b;border-color:#29465c;color:#dce9f4}
html[data-theme="dark"] .type-card small{color:#9bb0c4}
html[data-theme="dark"] .type-card button{background:#3a1a1a;color:#ff8a8a}
html[data-theme="dark"] .type-manage-box{background:#10283b;border-color:#29465c}
html[data-theme="dark"] .type-total{background:#173954;color:#8fd3ff}
html[data-theme="dark"] .type-create-row input{background:#071a2a;border-color:#315067;color:#edf6ff}
html[data-theme="dark"] .existing-type-title{border-color:#263e52;color:#dce9f4}
html[data-theme="dark"] .existing-type-title span{color:#9bb0c4}
html[data-theme="dark"] .type-empty{background:#0d2234;border-color:#29465c;color:#9bb0c4}
html[data-theme="dark"] .member-result-count{background:#173954;color:#8fd3ff}
html[data-theme="dark"] .member-filter-bar input,html[data-theme="dark"] .member-filter-bar select{background:#071a2a;border-color:#315067;color:#edf6ff}
html[data-theme="dark"] .member-search{background:#071a2a;border-color:#315067;color:#edf6ff}
html[data-theme="dark"] .member-summary span{color:#9bb0c4}
html[data-theme="dark"] .member-summary b{color:#8fd3ff}
html[data-theme="dark"] .member-summary small{color:#9bb0c4}
html[data-theme="dark"] .members-layout .table-scroll .table th{background:#0d2234}
html[data-theme="dark"] .members-layout .table td{background:#0d2234}
html[data-theme="dark"] .members-layout .table tr{border-color:#263e52}
html[data-theme="dark"] .members-layout .panel:nth-child(2) .table td{background:#0d2234}
html[data-theme="dark"] .members-layout .panel .btn{background:#173954;color:#8fd3ff;border-color:#315067}
html[data-theme="dark"] .members-layout .table td .btn{background:#173954!important;color:#8fd3ff!important}
html[data-theme="dark"] .members-layout>.panel:first-child .table td:last-child,html[data-theme="dark"] .members-layout>.panel:first-child .table th:last-child{background:#0d2234!important}
html[data-theme="dark"] .members-layout .panel:nth-child(2) .table th{background:#0d2234!important}
html[data-theme="dark"] .selected-row{background:#132d4a!important}
html[data-theme="dark"] .team-detail-box{background:#10283b;border-color:#29465c}
html[data-theme="dark"] .member-chips span{background:#10283b;border-color:#29465c;color:#dce9f4}
html[data-theme="dark"] .filter-labels{color:#9bb0c4}
html[data-theme="dark"] .member-no-result{color:#9bb0c4!important}
html[data-theme="dark"] .team-popup-summary span{background:#10283b;color:#bcd0e2}
html[data-theme="dark"] .team-popup-summary b{color:#dce9f4}
html[data-theme="dark"] .team-popup-list{border-color:#29465c}
html[data-theme="dark"] .team-popup-list button{background:#0d2234;border-color:#263e52;color:#dce9f4}
html[data-theme="dark"] .team-popup-list button:hover{background:#10283b}
html[data-theme="dark"] .team-popup-list span{color:#bcd0e2}
html[data-theme="dark"] .team-popup-list small{color:#9bb0c4}
html[data-theme="dark"] .team-popup-list em{background:#153a2a;color:#6ee7b7}

/* ── 注册/导入卡片 ── */
html[data-theme="dark"] .registration-card{background:#10283b;border-color:#29465c}
html[data-theme="dark"] .import-overview button{background:#10283b;border-color:#29465c;color:#dce9f4}
html[data-theme="dark"] .import-overview button:hover{background:#132d4a}

/* ── 安全提示 ── */
html[data-theme="dark"] .security-note{background:#10283b;border-color:#29465c;color:#bcd0e2}

/* ── 待办提醒 ── */
html[data-theme="dark"] .attention-list button{background:#10283b;border-color:#29465c;color:#dce9f4}
html[data-theme="dark"] .attention-list button:hover{background:#132d4a;border-color:#3097f3}

/* ── 详情盒子 ── */
html[data-theme="dark"] .detail-head{background:#10283b}
html[data-theme="dark"] .desc-box{background:#10283b;border-color:#29465c}
html[data-theme="dark"] .stat-line{background:#10283b;border-color:#29465c}

/* ── 任务反馈卡片 ── */
html[data-theme="dark"] .task-feedback-card{background:#0f2d24;border-color:#1a5a3e}
html[data-theme="dark"] .task-feedback-loading{color:#bcd0e2}

/* ── 表格表头 ── */
html[data-theme="dark"] .members-layout .table-scroll .table th{background:#0d2234}
html[data-theme="dark"] .table{color:#dce9f4}
html[data-theme="dark"] .table tr:nth-child(even){background:rgba(255,255,255,.02)}

/* ── 柱状图/进度条 ── */
html[data-theme="dark"] .bar-chart{border-color:#29465c}
html[data-theme="dark"] .hbar div{background:#1b3448}
html[data-theme="dark"] .progress{background:#1b3448}

/* ── 分析决策面板 ── */
html[data-theme="dark"] .decision-kpis b{color:#69c8ff}
html[data-theme="dark"] .decision-kpis span{color:#9bb0c4}
html[data-theme="dark"] .person-ranking em{background:#173954;color:#69c8ff}
html[data-theme="dark"] .person-ranking b{color:#69c8ff}
html[data-theme="dark"] .person-ranking small{color:#9bb0c4}

/* ── 自定义滚动条 ── */
html[data-theme="dark"] ::-webkit-scrollbar{width:6px}
html[data-theme="dark"] ::-webkit-scrollbar-track{background:#071321}
html[data-theme="dark"] ::-webkit-scrollbar-thumb{background:#315067;border-radius:999px}
html[data-theme="dark"] ::-webkit-scrollbar-thumb:hover{background:#456a8a}

/* ── 弹窗内容 ── */
html[data-theme="dark"] .modal-actions{border-top-color:#29465c}
html[data-theme="dark"] .modal h3{color:#e7f1fb}
html[data-theme="dark"] .flow-legend{color:#9bb0c4}

/* ── 快捷操作面板 ── */
html[data-theme="dark"] .quick-item{color:#dce9f4}
html[data-theme="dark"] .db-page input[type="file"]{background:#10283b;border-color:#315067;color:#bcd0e2}

/* ── 导入结果横幅 ── */
html[data-theme="dark"] .import-result{background:#0f2d24;border-color:#1a5a3e;border-left-color:#10b981;color:#dce9f4}
html[data-theme="dark"] .import-result.has-error{background:#2d2010;border-color:#5a3d18;border-left-color:#ef4444}
html[data-theme="dark"] .import-result b{color:#e7f1fb}
html[data-theme="dark"] .import-result span{color:#9bb0c4}

/* ── 导入概览卡片 ── */
html[data-theme="dark"] .import-overview b{color:#69c8ff}

/* ── 数据库表单 ── */
html[data-theme="dark"] .db-form label{color:#dce9f4}
html[data-theme="dark"] .db-form input{background:#071a2a;border-color:#315067;color:#edf6ff}

/* ── 注册记录卡片 ── */
html[data-theme="dark"] .registration-card{background:#10283b;border-color:#29465c}
html[data-theme="dark"] .registration-card .meta{color:#bcd0e2}
html[data-theme="dark"] .registration-filter select{background:#071a2a;border-color:#315067;color:#edf6ff}

/* ── 子面板（数据互通等） ── */
html[data-theme="dark"] .panel.sub{background:#0d2234;border-color:#263e52;color:#dce9f4}
html[data-theme="dark"] .panel.sub h3{color:#e7f1fb}

/* ── 附件/文件管理卡片 ── */
html[data-theme="dark"] .info-card{background:#10283b;border-color:#29465c;color:#dce9f4}
html[data-theme="dark"] .info-card:hover{background:#132d4a}
html[data-theme="dark"] .info-card b{color:#e7f1fb}

/* ── 日志/时间线项目 ── */
html[data-theme="dark"] .tl-item b,html[data-theme="dark"] .tl-item strong{color:#e7f1fb}
html[data-theme="dark"] .desc-cell{color:#bcd0e2}

/* ── 表单分段标题 ── */
html[data-theme="dark"] .form-section h4{color:#e7f1fb}

/* ── 标签/徽章增强 ── */
html[data-theme="dark"] .tag{background:#173954;color:#8fd3ff}
html[data-theme="dark"] .live-badge{background:#133551}

/* ── 面板头部中的标签/按钮容器 ── */
html[data-theme="dark"] .panel-head .btn{background:#173954;color:#8fd3ff}

/* ── 导入预览区域 ── */
html[data-theme="dark"] .import-overview{background:transparent}

/* ── 队伍编辑成员列表 ── */
html[data-theme="dark"] .team-checks label{color:#dce9f4}

/* ── KPI卡片伪元素 ── */
html[data-theme="dark"] .kpi-card:after{background:linear-gradient(135deg,#173954,#10283b)}

/* ── 天气卡片 ── */
html[data-theme="dark"] .weather-card .big{color:#e7f1fb}

/* ═══════════════════════════════════════════════ */
/* v11.8 统计分析页面深色模式专项优化 */
/* ═══════════════════════════════════════════════ */

/* ── 标签/徽章暗化（统计表格中大量使用） ── */
html[data-theme="dark"] .tag{background:#173954;color:#8fd3ff}
html[data-theme="dark"] .tag.orange{background:#3d2a10;color:#ffb86c}
html[data-theme="dark"] .tag.red{background:#4a1525;color:#ff8a8a}
html[data-theme="dark"] .tag.blue{background:#102a4a;color:#69c8ff}
html[data-theme="dark"] .tag.green{background:#0f2d24;color:#6ee7b7}
html[data-theme="dark"] .tag.yellow{background:#2d2010;color:#d4a04a}
html[data-theme="dark"] .tag.gray{background:#1b2a3a;color:#9bb0c4}

/* ── 事件条形图轨道 ── */
html[data-theme="dark"] .event-track{background:#1b3448}
html[data-theme="dark"] .event-track b{color:#bcd0e2}
html[data-theme="dark"] .event-track i.red{background:linear-gradient(90deg,#e04444,#ff6b6b)}
html[data-theme="dark"] .event-track i.orange{background:linear-gradient(90deg,#d4882a,#ffb86c)}
html[data-theme="dark"] .event-track i.yellow{background:linear-gradient(90deg,#b89a20,#e6cc55)}
html[data-theme="dark"] .event-bar-row strong{color:#e7f1fb}

/* ── 数据表格 ── */
html[data-theme="dark"] .data-table td{background:#0d2234;border-color:#263e52;color:#dce9f4}
html[data-theme="dark"] .data-table th{background:#10283b;border-color:#263e52;color:#e7f1fb}
html[data-theme="dark"] .data-table tr:nth-child(even) td{background:#10283b}
html[data-theme="dark"] .data-table b{color:#69c8ff}

/* ── 统计工具栏 ── */
html[data-theme="dark"] .analytics-toolbar{background:#0d2234;border-color:#263e52}
html[data-theme="dark"] .analytics-toolbar select{background:#071a2a;border-color:#315067;color:#edf6ff}

/* ── KPI卡片强化 ── */
html[data-theme="dark"] .kpi-card{background:#0d2234;border-color:#263e52}
html[data-theme="dark"] .kpi-card h4{color:#e7f1fb}
html[data-theme="dark"] .kpi-card strong{color:#69c8ff}
html[data-theme="dark"] .kpi-card p{color:#9bb0c4}
html[data-theme="dark"] .kpi-card p b{color:#ff8a8a}

/* ── 表格滚动区域表头 ── */
html[data-theme="dark"] .table-scroll .table th{background:#10283b;color:#e7f1fb}

/* ── 维度选项卡（若存在） ── */
html[data-theme="dark"] .dimension-tabs button{background:#10283b;border-color:#29465c;color:#bcd0e2}
html[data-theme="dark"] .dimension-tabs button.active{background:linear-gradient(135deg,#246fc4,#119aab);color:#fff}

/* ── 面板内部描述文字 ── */
html[data-theme="dark"] .panel .mini-muted{color:#9bb0c4}

/* ═══════════════════════════════════════════════ */
/* v11.9 义护社区页面深色模式专项优化 */
/* ═══════════════════════════════════════════════ */

/* ── 社区Tab按钮 ── */
html[data-theme="dark"] .community-tabs button{background:#10283b;border-color:#29465c;color:#8fd3ff}
html[data-theme="dark"] .community-tabs button.active{background:linear-gradient(135deg,#148fc4,#2568d8);color:#fff;border-color:transparent}

/* ── 帖子卡片 ── */
html[data-theme="dark"] .post-card{background:#0d2234;border-color:#263e52}
html[data-theme="dark"] .post-card .post-head b{color:#e7f1fb}
html[data-theme="dark"] .post-card .post-head p{color:#9bb0c4}

/* ── 帖子正文内容区 ── */
html[data-theme="dark"] .post-content{background:#10283b;border-color:#29465c;color:#dce9f4}

/* ── 帖子元数据 ── */
html[data-theme="dark"] .post-meta{color:#9bb0c4}

/* ── 帖子操作按钮区 ── */
html[data-theme="dark"] .post-actions .btn{background:#173954;color:#8fd3ff}

/* ── 审核日志表格 ── */
html[data-theme="dark"] .review-log-table .table th{background:#10283b;color:#e7f1fb}
html[data-theme="dark"] .review-log-table .table td{background:#0d2234;color:#dce9f4;border-color:#263e52}

/* ── 评论行 ── */
html[data-theme="dark"] .comment-row{color:#dce9f4}
html[data-theme="dark"] .comment-row b{color:#e7f1fb}
html[data-theme="dark"] .comment-row div{color:#bcd0e2}

/* ── 搜索/过滤工具栏 (社区页专属) ── */
html[data-theme="dark"] .community-grid-card{background:#0d2234;border-color:#263e52}html[data-theme="dark"] .community-grid-cover{background:#1a3550}html[data-theme="dark"] .community-grid-title{color:#e7f1fb}html[data-theme="dark"] .community-grid-meta,html[data-theme="dark"] .community-grid-stats{color:#9bb0c4}html[data-theme="dark"] .community-page .toolbar input,html[data-theme="dark"] .community-page .toolbar select{background:#071a2a;border-color:#315067;color:#edf6ff}

/* ── 帖子卡片内的详情网格 ── */
html[data-theme="dark"] .post-card .detail-grid p{color:#dce9f4}
html[data-theme="dark"] .post-card .detail-grid b{color:#e7f1fb}

/* ═══════════════════════════════════════════════ */
/* 个人任务量统计：队伍分组 + 搜索 + 详情弹窗 */
/* ═══════════════════════════════════════════════ */

.member-teams-container{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.member-team-group{border:1px solid #e4eefb;border-radius:14px;overflow:hidden}
.member-team-head{display:flex;align-items:center;gap:10px;padding:14px 18px;background:#f7fbff;cursor:pointer;user-select:none}
.member-team-head:hover{background:#eef5fd}
.team-arrow{font-size:12px;color:#667085;width:16px;text-align:center}
.member-team-head b{font-size:15px;color:#1f2a44}
.team-summary{margin-left:auto;font-size:13px;color:#667085}
.member-table{width:100%;margin:0}
.member-table td{padding:10px 14px}
.member-table tr.clickable{cursor:pointer}
.member-table tr.clickable:hover{background:#eef7ff}
.member-table tr.clickable td:first-child{color:#1677ff;font-weight:800}

/* 个人任务详情弹窗 */
.person-stats{min-width:620px}
.person-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.person-summary .kpi-card{height:auto;padding:18px}
.person-summary .kpi-card h4{font-size:13px;margin-bottom:6px}
.person-summary .kpi-card strong{font-size:28px}

html[data-theme="dark"] .member-team-group{border-color:#263e52}
html[data-theme="dark"] .member-team-head{background:#0d2234}
html[data-theme="dark"] .member-team-head:hover{background:#10283b}
html[data-theme="dark"] .member-team-head b{color:#e7f1fb}
html[data-theme="dark"] .team-summary{color:#9bb0c4}
html[data-theme="dark"] .team-arrow{color:#9bb0c4}
html[data-theme="dark"] .member-table tr.clickable:hover{background:#10283b}
html[data-theme="dark"] .member-table tr.clickable td:first-child{color:#69c8ff}


/* community-publish-preview-hotfix-v12.1 */
.community-publish-modal .modal{width:min(1120px,94vw);max-height:92vh;overflow:auto}
.community-publish-form{align-items:start}
.community-media-picker{display:grid;gap:5px;padding:14px 16px;border:1px dashed #65b9ed;border-radius:14px;background:#f4fbff;color:#1769b2;cursor:pointer}
.community-media-picker span{font-size:13px;color:#667085;font-weight:500}
.community-media-picker input{margin-top:8px;width:100%}
.community-draft-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;min-height:90px;padding:12px;border:1px solid #d8eaff;border-radius:14px;background:#fbfdff}
.community-preview-empty{grid-column:1/-1;display:grid;place-items:center;min-height:70px;color:#98a2b3}
.community-draft-media-card{position:relative;display:flex;flex-direction:column;gap:8px;min-width:0;padding:9px;border:1px solid #d8eaff;border-radius:12px;background:#fff;box-shadow:0 5px 14px rgba(20,70,120,.06)}
.community-draft-media-card img,.community-draft-media-card video{display:block;width:100%;height:145px;object-fit:contain;background:#071a2a;border-radius:8px}
.community-draft-media-info{display:grid;gap:3px;min-width:0;padding-right:48px}
.community-draft-media-info b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#172033}
.community-draft-media-info span{font-size:12px;color:#667085}
.community-draft-remove{position:absolute;right:9px;bottom:9px;border:0;border-radius:8px;padding:5px 9px;background:#fff0f1;color:#d92d20;font-weight:800;cursor:pointer}
.community-upload-progress{display:grid;gap:6px;min-height:0;color:#1769b2}
.community-upload-progress:empty{display:none}
.community-upload-progress span{font-size:13px;color:#667085}
.community-progress-track{height:7px;overflow:hidden;border-radius:999px;background:#dbeafe}
.community-progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#20c6ff,#1677ff);transition:width .2s ease}
html[data-theme="dark"] .community-media-picker,html[data-theme="dark"] .community-draft-preview{background:#0b2032;border-color:#315067}
html[data-theme="dark"] .community-draft-media-card{background:#10283b;border-color:#315067}
html[data-theme="dark"] .community-draft-media-info b{color:#e7f1fb}
html[data-theme="dark"] .community-draft-media-info span,html[data-theme="dark"] .community-media-picker span{color:#abc2d4}


/* community-list-media-preview-hotfix-v12.2 */
.community-card-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,210px));gap:12px;margin:12px 0;align-items:stretch}
.community-card-media-grid .protected-media{min-height:128px;padding:7px;border-radius:12px;background:#071d32;border-color:#2b8fbd;box-shadow:0 5px 15px rgba(7,42,71,.12)}
.community-card-media-grid .protected-media img,.community-card-media-grid .protected-media video{height:132px;object-fit:cover;border-radius:8px}
.community-card-media-grid .protected-media span{font-size:12px;color:#dff8ff;padding:0 2px}
.community-card-media-grid .protected-media .media-actions{display:none}
.community-card-media-grid .media-loading,.community-card-media-grid .media-error{min-height:132px}
.community-card-media-more{min-height:174px;border:1px dashed #74bde8;border-radius:12px;background:#f3faff;color:#1769b2;font-size:28px;font-weight:900;cursor:pointer;display:grid;place-content:center;gap:4px}
.community-card-media-more span{font-size:13px;font-weight:700;color:#667085}
.community-post-card .post-content:empty{display:none}
@media(max-width:900px){.community-card-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.community-card-media-grid{grid-template-columns:1fr}.community-card-media-grid .protected-media img,.community-card-media-grid .protected-media video{height:180px}}
html[data-theme="dark"] .community-card-media-more{background:#10283b;border-color:#315d78;color:#6dd7ff}
html[data-theme="dark"] .community-card-media-more span{color:#abc2d4}

/* YIHU_DASHBOARD_COMPACT_V32_STYLE_BEGIN */
.v32-dashboard-page{padding-bottom:24px}
.v32-decision-panel{margin-top:0}
.v32-decision-head{margin-top:16px}
.v32-dashboard-main-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:16px;margin-top:16px}
.v32-dashboard-main-grid>.panel{margin-top:0;box-shadow:var(--shadow)}
.v32-time-panel{height:400px}.v32-person-panel{height:520px}
.v32-time-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}
.v32-time-top .dimension-tabs{margin-bottom:8px}
.v32-chart-switch{display:flex;gap:6px;padding:3px;border:1px solid #d7e6f5;border-radius:11px;background:#f5f9fd;white-space:nowrap}
.v32-chart-switch button{border:0;border-radius:8px;padding:7px 10px;background:transparent;color:#4d6478;font-weight:850;cursor:pointer}
.v32-chart-switch button.active{color:#fff;background:linear-gradient(135deg,#2a83ed,#18bed0);box-shadow:0 4px 12px rgba(36,137,223,.22)}
.v32-chart-stage{flex:1;min-height:0;display:grid;align-items:stretch;margin-top:8px}
.v32-column-scroll{overflow-x:auto;overflow-y:hidden;min-height:225px;padding:4px 2px 0}
.v32-column-chart{height:225px;min-width:max(100%,calc(var(--v32-columns)*58px));display:grid;grid-template-columns:repeat(var(--v32-columns),minmax(48px,1fr));gap:10px;align-items:end;border-left:1px solid #e7eff8;border-bottom:1px solid #e7eff8;padding:12px 10px 0}
.v32-column-item{height:100%;display:grid;grid-template-rows:1fr 46px;align-items:end;text-align:center;min-width:0}
.v32-column-plot{height:165px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px}
.v32-column-plot b{font-size:13px;color:#26415b}
.v32-column-plot i{display:block;width:min(34px,72%);min-height:3px;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,#2f7cf6,#16bfd3);box-shadow:0 5px 14px rgba(40,137,222,.2)}
.v32-column-item>span{display:flex;align-items:flex-start;justify-content:center;padding-top:7px;color:#667b8f;font-size:12px;line-height:1.25;overflow:hidden;text-overflow:ellipsis}
.v32-pie-layout{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(230px,1.2fr);gap:20px;align-items:center;min-height:200px}
.v32-pie{width:170px;height:170px;border-radius:50%;margin:auto;position:relative;box-shadow:0 10px 28px rgba(30,116,196,.16)}
.v32-pie:after{content:"";position:absolute;inset:38px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px #e5eef7}
.v32-pie>div{position:absolute;inset:38px;z-index:2;display:grid;place-content:center;text-align:center}
.v32-pie b{font-size:26px;color:#1478d4;line-height:1}
.v32-pie span{margin-top:6px;color:#73869a;font-size:12px}
.v32-pie-legend{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding-right:5px}
.v32-pie-legend>div{display:grid;grid-template-columns:12px minmax(0,1fr) 38px 42px;gap:6px;align-items:center;padding:5px 8px;border:1px solid #e3edf7;border-radius:10px;background:#fbfdff}
.v32-pie-legend i{width:10px;height:10px;border-radius:50%}
.v32-pie-legend span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#40566c}
.v32-pie-legend b{text-align:right;color:#1478d4}
.v32-pie-legend em{text-align:right;color:#8292a2;font-style:normal;font-size:12px}
.v32-person-panel .ranking-search{flex:0 0 auto}
.v32-person-panel .person-ranking{flex:1;min-height:0;max-height:none;overflow-y:auto}
html[data-theme="dark"] .v32-chart-switch{background:#10283b;border-color:#29465c}
html[data-theme="dark"] .v32-chart-switch button{color:#bcd0e2}
html[data-theme="dark"] .v32-column-chart{border-color:#29465c}
html[data-theme="dark"] .v32-column-plot b{color:#dce9f4}
html[data-theme="dark"] .v32-column-item>span{color:#9bb0c4}
html[data-theme="dark"] .v32-pie:after{background:#0d2234;border-color:#29465c;box-shadow:inset 0 0 0 1px #29465c}
html[data-theme="dark"] .v32-pie-legend>div{background:#10283b;border-color:#29465c}
html[data-theme="dark"] .v32-pie-legend span{color:#dce9f4}
@media(max-width:1100px){.v32-dashboard-main-grid{grid-template-columns:1fr}.v32-time-panel,.v32-person-panel{height:auto;min-height:400px}}
@media(max-width:760px){.v32-time-top{grid-template-columns:1fr}.v32-chart-switch{justify-self:start}.v32-pie-layout{grid-template-columns:1fr}.v32-pie-legend{max-height:210px}.v32-time-panel,.v32-person-panel{min-height:0}.v32-person-panel{height:430px}}
/* YIHU_DASHBOARD_COMPACT_V32_STYLE_END */

/* YIHU_DASHBOARD_WIDTH_V33_BEGIN */

/* 时间统计约占70%，个人排行约占30%。 */
.v32-dashboard-main-grid{
  grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);
}

/* 12个月直接在当前面板内完整排列，不再产生水平滚动条。 */
.v32-column-scroll{
  width:100%;
  min-width:0;
  overflow-x:hidden;
  overflow-y:hidden;
  box-sizing:border-box;
}

.v32-column-chart{
  width:100%;
  min-width:0;
  box-sizing:border-box;
  grid-template-columns:repeat(var(--v32-columns),minmax(0,1fr));
  gap:6px;
  padding-left:8px;
  padding-right:8px;
}

.v32-column-item{
  min-width:0;
}

.v32-column-plot i{
  width:min(32px,70%);
}

.v32-column-item>span{
  white-space:nowrap;
  overflow:visible;
  text-overflow:clip;
  font-size:12px;
}

/* 中等宽度下仍优先保障12个月完整显示；更窄时再上下排列。 */
@media(max-width:1180px){
  .v32-dashboard-main-grid{
    grid-template-columns:1fr;
  }
  .v32-time-panel,.v32-person-panel{
    height:auto;
    min-height:400px;
  }
}

/* YIHU_DASHBOARD_WIDTH_V33_END */

/* YIHU_MEMBER_EDIT_LEARNING_DETAIL_V36_STYLE_BEGIN */
.member-main-cell-v36{min-width:150px}
.member-inline-edit-v36{margin-top:7px;padding:4px 10px;border:1px solid #8bc7f5;border-radius:8px;background:#edf7ff;color:#0873c4;font-weight:800;cursor:pointer}
.member-inline-edit-v36:hover{background:#dff1ff;border-color:#45aaf2}
.members-layout>.panel:first-child .table th:last-child,.members-layout>.panel:first-child .table td:last-child{position:sticky;right:0;z-index:2;background:var(--panel,#fff);box-shadow:-8px 0 12px rgba(31,75,110,.06)}
.learning-row-v36{cursor:pointer;transition:background .15s ease,transform .15s ease}
.learning-row-v36:hover,.learning-row-v36:focus{background:#edf7ff;outline:none}
.learning-row-v36:focus{box-shadow:inset 0 0 0 2px #45aaf2}
.learning-detail-loading-v36{min-height:220px;display:grid;place-content:center;text-align:center;gap:8px}
.learning-detail-loading-v36 b{font-size:20px}.learning-detail-loading-v36 span{color:#74879a}
.learning-meta-v36{margin-bottom:14px}.learning-read-v36{color:#1677ff;font-weight:900}.learning-unread-v36{color:#ef4444;font-weight:900}
.learning-content-v36 p{white-space:pre-wrap;line-height:1.8}
.learning-section-v36{margin-top:18px;padding-top:14px;border-top:1px solid #e4edf5}
.learning-section-head-v36{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.learning-section-head-v36 h4{margin:0;font-size:18px}.learning-section-head-v36 span{color:#6f8295}
.learning-media-grid-v36{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.learning-file-list-v36{display:grid;gap:10px}
.learning-file-card-v36{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid #dbe8f3;border-radius:12px;background:#f7fbff}
.learning-file-card-v36 b,.learning-file-card-v36 small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.learning-file-card-v36 small{margin-top:4px;color:#718397}.learning-file-icon-v36{font-size:26px}
.learning-detail-modal-v36 .modal{width:min(1180px,92vw);max-height:88vh;overflow:auto}
html[data-theme="dark"] .member-inline-edit-v36{background:#12334b;color:#9bdcff;border-color:#276e9b}
html[data-theme="dark"] .learning-row-v36:hover,html[data-theme="dark"] .learning-row-v36:focus{background:#102d41}
html[data-theme="dark"] .learning-file-card-v36{background:#0e293c;border-color:#244a63}
@media(max-width:760px){.learning-table-v36{min-width:900px}.learning-detail-modal-v36 .modal{width:96vw}.learning-file-card-v36{grid-template-columns:auto minmax(0,1fr)}.learning-file-card-v36 .btn{grid-column:1/3}}
/* YIHU_MEMBER_EDIT_LEARNING_DETAIL_V36_STYLE_END */


/* YIHU_V39_FILTER_LEARNING_MAP_DARK_BEGIN */
.learning-draft-preview-v39{display:flex;flex-direction:column;gap:8px;min-height:90px;padding:12px;border:1px dashed #7ebcf4;border-radius:12px;background:#f6fbff}.learning-draft-preview-v39 img,.learning-draft-preview-v39 video{width:150px;height:90px;object-fit:contain;border-radius:9px;background:#071a2b}.learning-draft-preview-v39>div:last-child{display:flex;flex-direction:column;gap:6px;min-width:0}.learning-draft-preview-v39 b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.learning-draft-preview-v39 span{color:#667085}.learning-file-icon-v39{font-size:38px}.learning-file-item-v42{display:flex;align-items:center;gap:12px;padding:8px 10px;border:1px solid #d4e6f7;border-radius:10px;background:#fff}.learning-file-item-v42 img,.learning-file-item-v42 video{width:100px;height:60px;object-fit:contain;border-radius:6px;background:#071a2b;flex-shrink:0}.learning-file-item-v42>div{flex:1;min-width:0}.learning-file-remove-v42{flex-shrink:0;width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:50%;background:#fff1f1;color:#d23c3c;font-size:14px;cursor:pointer}.learning-file-remove-v42:hover{background:#ffd4d4}.learning-row-v36{cursor:pointer}.learning-row-v36:hover{background:rgba(22,119,255,.08)}
.v39-member-hover{min-width:210px;color:#16324a}.v39-member-hover b{font-size:16px}.v39-member-hover p{margin:5px 0}.v39-member-hover small{display:block;margin-top:7px;color:#658198}.v39-member-hover-popup .maplibregl-popup-content{border:1px solid #53d8ec;border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.25)}
html[data-theme="dark"] .learning-draft-preview-v39{background:#0b2234;border-color:#315a73;color:#edf7ff}html[data-theme="dark"] .learning-draft-preview-v39 span{color:#9fb5c7}
html[data-theme="dark"] .learning-file-item-v42{background:#10283b;border-color:#29465c}
html[data-theme="dark"] .learning-file-remove-v42{background:#3a1a1a;color:#ff8a8a}
html[data-theme="dark"] .learning-file-remove-v42:hover{background:#4a2020}
html[data-theme="dark"] .event-review-modal-v39 .modal{background:#0b2133;color:#edf7ff;border:1px solid #25445d}html[data-theme="dark"] .event-review-modal-v39 .detail-grid,html[data-theme="dark"] .event-review-modal-v39 .desc-box,html[data-theme="dark"] .event-review-modal-v39 .v18-event-media-section,html[data-theme="dark"] .event-review-modal-v39 .event-decision>div{background:#0e2a3f;border-color:#315067;color:#edf7ff}html[data-theme="dark"] .event-review-modal-v39 .v18-event-media-item{background:#0a1c2c;border-color:#315067}html[data-theme="dark"] .event-review-modal-v39 .v18-event-media-title b,html[data-theme="dark"] .event-review-modal-v39 .event-decision b{color:#effaff}html[data-theme="dark"] .event-review-modal-v39 .v18-event-media-title span,html[data-theme="dark"] .event-review-modal-v39 .v18-event-media-item figcaption,html[data-theme="dark"] .event-review-modal-v39 .event-decision span{color:#a9c0d1}html[data-theme="dark"] .event-review-modal-v39 .v18-event-image-button{background:#071928}
/* YIHU_V39_FILTER_LEARNING_MAP_DARK_END */
