.table-wrap table[data-v-8e82f0e7]{min-width:1680px}.table-wrap th[data-v-8e82f0e7],.table-wrap td[data-v-8e82f0e7]{white-space:nowrap;line-height:1.6}.table-wrap td[data-v-8e82f0e7]:nth-child(2),.table-wrap td[data-v-8e82f0e7]:nth-child(3){min-width:150px}.table-wrap .detail-grid[data-v-8e82f0e7]{white-space:normal}:root{font-family:Inter,Microsoft YaHei,sans-serif;color:#213a33;background:#f3f7f3;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}.login-shell{min-height:100vh;display:grid;place-items:center;padding:32px;background:#edf4ef}.login-card{width:min(960px,100%);min-height:580px;display:grid;grid-template-columns:1.05fr .95fr;background:#fff;box-shadow:0 26px 65px #26493c1b;border:1px solid #dce9df}.login-hero{padding:62px 56px;background:#123f36;color:#eef7ef;display:flex;flex-direction:column;justify-content:space-between}.login-hero>span{font-size:12px;letter-spacing:2px;color:#b7d3be}.login-hero h1{font-size:42px;font-weight:500;margin:20px 0}.login-hero p{color:#bad5c5;line-height:1.9;max-width:340px}.login-hero small{font-size:11px;color:#b1cebd}.login-form{padding:62px 58px;display:flex;flex-direction:column;justify-content:center}.eyebrow{font-size:11px;letter-spacing:1.4px;color:#6d8c7e;margin:0 0 10px;text-transform:uppercase}.login-form h2{font-size:28px;font-weight:500;margin:0 0 38px}.login-form label{display:grid;gap:8px;font-size:12px;color:#597166;margin-bottom:18px}.login-form input{height:42px;border:1px solid #d7e5db;border-radius:4px;padding:0 12px}.primary{border:0;background:#1e6a58;color:#fff;border-radius:4px;min-height:42px;padding:0 18px;font-weight:600}.primary:disabled{opacity:.5}.error{background:#fff0ed;border:1px solid #f1d0c9;color:#ad5348;padding:10px 12px;font-size:12px}.shell{min-height:100vh}.topbar{height:70px;background:#fff;border-bottom:1px solid #e2ebe4;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1180px)/2));position:sticky;top:0;z-index:3}.topbar b,.topbar span{display:block}.topbar span{font-size:11px;color:#8a9b92;margin-top:4px}.account{display:flex;align-items:center;gap:18px;color:#536b60;font-size:12px}.account button,.ghost{border:1px solid #cfe0d5;background:#fff;color:#397461;border-radius:4px;padding:8px 13px;font-size:12px}.content{max-width:1180px;margin:auto;padding:52px 24px 80px}.intro{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:28px}.intro h1{font-size:34px;font-weight:500;line-height:1.25;margin:0 0 13px}.intro p:not(.eyebrow){color:#789087;margin:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.stats>div{background:#fff;border:1px solid #e0ebe3;padding:18px}.stats small,.stats strong,.stats span{display:block}.stats small{font-size:11px;color:#7a9386}.stats strong{font-size:25px;font-weight:500;color:#27715d;margin:8px 0}.stats span{font-size:10px;color:#9aa8a1}.grid{display:grid;grid-template-columns:1.55fr .75fr;gap:18px}.panel{background:#fff;border:1px solid #e0ebe3;padding:25px;margin-bottom:18px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.panel-head h2{font-size:19px;font-weight:500;margin:0}.panel-head select{border:1px solid #d9e5dc;padding:8px;color:#537365;background:#fff}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:610px;font-size:11px}th{text-align:left;background:#fafcfb;color:#81938a;font-weight:500;padding:12px;border-bottom:1px solid #e6eee8}td{padding:14px 12px;border-bottom:1px solid #eef3ef;color:#5c7066}td b{color:#2b453b}.pill{display:inline-block;background:#edf6ef;color:#3c7a5c;padding:5px 8px;font-size:10px}.empty{text-align:center!important;color:#94a39b!important;padding:35px!important}.module{display:flex;align-items:flex-start;gap:10px;border-top:1px solid #edf2ee;padding:15px 0}.module:first-of-type{border-top:0}.dot{width:8px;height:8px;border-radius:50%;margin-top:5px}.live{background:#5a9b72}.building{background:#d29b37}.plan{background:#93a39a}.module div{flex:1}.module b,.module small{display:block}.module b{font-size:12px}.module small{font-size:10px;color:#899991;line-height:1.5;margin-top:5px}.module em{font-style:normal;font-size:10px;color:#6f8c7e}.health{margin-top:15px;background:#f5faf5;padding:14px}.health span,.health b,.health small{display:block}.health span{font-size:10px;color:#84998d}.health b{font-size:16px;color:#34755d;margin:5px 0}.health small{font-size:10px;color:#899991}.footnote{font-size:11px;color:#82938b}@media(max-width:850px){.login-card{grid-template-columns:1fr}.login-hero{display:none}.grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.intro{display:block}.intro .ghost{margin-top:18px}.content{padding:30px 16px}}@media(max-width:520px){.stats{grid-template-columns:1fr}.account span{display:none}.login-form{padding:40px 27px}}.tabs{display:flex;gap:4px;border-bottom:1px solid #d8e6dd;margin-bottom:20px}.tabs button{border:0;background:none;padding:12px 17px;color:#647e71;border-bottom:2px solid transparent}.tabs button.active{color:#166f54;border-color:#166f54;font-weight:600}.notice{background:#e6f5ed;color:#236247;padding:10px 12px;margin:0 0 18px}.filters{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:10px;margin-bottom:18px}.filters label,.point-form label{display:grid;gap:6px;font-size:11px;color:#61786b}.filters select,.filters input,.point-form input{width:100%;height:38px;border:1px solid #d7e5db;border-radius:4px;padding:0 9px;background:#fff;color:#29483b}.row-actions{white-space:nowrap}.row-actions button{border:1px solid #cfe0d5;background:#fff;color:#216e56;border-radius:4px;padding:7px 10px;margin:2px}.row-actions button:disabled,.ghost:disabled{opacity:.5;cursor:not-allowed}.subline{display:block;margin-top:4px;color:#85968c}.point-form{display:grid;grid-template-columns:1fr 1.4fr auto;gap:10px;align-items:end;margin-bottom:18px}.trend{display:flex;gap:8px;overflow:auto}.trend>div{min-width:110px;border-left:3px solid #3e9070;background:#f5faf6;padding:10px}.trend span,.trend b,.trend small{display:block}.trend span,.trend small{font-size:11px;color:#71887a}.trend b{margin:5px 0}.module-band{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0}@media(max-width:850px){.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.point-form,.module-band{grid-template-columns:1fr}}@media(max-width:520px){.filters{grid-template-columns:1fr}.tabs button{padding:11px;font-size:12px}.panel{padding:16px}.stats{grid-template-columns:1fr 1fr}.stats strong{font-size:18px}}.app-shell{display:flex;min-height:100vh}.sidebar{width:232px;flex:0 0 232px;background:#123f36;color:#eef7ef;padding:24px 14px;display:flex;flex-direction:column;gap:22px}.brand{padding:0 12px 12px;border-bottom:1px solid #ffffff2b}.brand b,.brand small{display:block}.brand small{color:#b7d3be;font-size:11px;margin-top:6px}.menu-toggle{display:none}.nav-group p{font-size:10px;color:#9dc5ad;margin:0 12px 7px}.nav-group a,.sidebar .logout{display:block;color:#d8eee0;text-decoration:none;padding:9px 12px;border-radius:4px;font-size:12px}.nav-group a.active,.nav-group a:hover{background:#2d6956;color:#fff}.sidebar .logout{margin-top:auto;border:1px solid #80a994;background:transparent;text-align:left}.main-area{min-width:0;flex:1}.main-area .topbar{padding:0 28px}.scope{font-size:11px;color:#789087}.empty-state{text-align:center;padding:34px 15px;color:#799087}.empty-state b{display:block;color:#406d59;margin-bottom:8px}.empty-state p{margin:0;font-size:12px}@media(max-width:850px){.sidebar{width:100%;flex:0 0 auto;padding:10px;position:sticky;top:0;z-index:5}.app-shell{display:block}.nav-group{display:none}.sidebar.mobile-open .nav-group{display:block}.brand{border:0;padding:6px 12px}.menu-toggle{display:block;position:absolute;right:90px;top:9px;border:1px solid #80a994;background:transparent;color:#d8eee0;border-radius:4px;padding:7px 10px;font-size:11px}.sidebar .logout{position:absolute;right:10px;top:9px;margin:0}.main-area .topbar{padding:0 16px}.scope{display:none}}.review-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-top:22px}.review-form label{display:grid;gap:8px;flex:1;min-width:240px;color:#536d60}.review-form input{height:40px;padding:0 10px;border:1px solid #cfe0d5;font:inherit}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.detail-grid dt{font-size:12px;color:#81938a}.detail-grid dd{margin:8px 0;color:#28483a}@media(max-width:760px){.detail-grid{grid-template-columns:1fr 1fr}}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end}.form-grid label{display:grid;gap:6px;font-size:11px;color:#61786b}.form-grid input,.form-grid select{height:40px;border:1px solid #d7e5db;border-radius:4px;padding:0 9px;background:#fff;color:#29483b}.status-chip{display:inline-block;padding:4px 8px;border-radius:12px;background:#edf6ef;color:#34755d;font-size:10px}@media(max-width:850px){.form-grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.form-grid{grid-template-columns:1fr}}html,body,#app{min-height:100%}body{overflow-x:hidden}.app-shell{min-height:100dvh}.main-area{min-width:0;width:100%}.content,.panel,.intro,.grid,.module-band,.form-grid{min-width:0}.table-wrap{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.table-wrap table{min-width:640px}@media(max-width:850px){.app-shell{display:block;min-height:100dvh}.sidebar{position:sticky;top:0;z-index:20;width:100%;padding:10px;gap:0}.brand{position:relative;border:0;padding:6px 12px;min-height:44px}.menu-toggle{right:86px;top:9px}.sidebar .logout{right:10px;top:9px}.sidebar.mobile-open{max-height:100dvh;overflow:visible}.sidebar.mobile-open .nav-group{max-height:calc(100dvh - 116px);overflow-y:auto;overflow-x:hidden}.nav-group a{line-height:1.4}.main-area{width:100%;min-width:0}.main-area .topbar{height:auto;min-height:64px;padding:12px 16px;align-items:flex-start}.content{width:100%;max-width:none;padding:24px 14px 72px;overflow:visible}.intro{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:14px}.intro h1{font-size:27px;overflow-wrap:anywhere}.panel{padding:16px;overflow:visible}.table-wrap{margin-right:-2px}}@media(max-width:520px){.content{padding:20px 12px 64px}.topbar b{font-size:14px}.topbar span{font-size:10px}.panel-head{gap:10px;flex-wrap:wrap}.tabs{overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}.tabs button{flex:0 0 auto}.filters{min-width:0}.form-grid{grid-template-columns:minmax(0,1fr)}.detail-grid{grid-template-columns:1fr 1fr}}.module-entry{min-width:0;padding:22px 24px 18px;background:#fff;border:1px solid #dce8e1;border-radius:12px;color:#23483b;text-decoration:none;box-shadow:0 3px 12px #173f2e05;transition:border-color .18s,box-shadow .18s}.module-entry:visited{color:#23483b}.module-entry:hover,.module-entry:focus-visible{border-color:var(--entry-accent);box-shadow:0 8px 24px #173f2e0d;outline:2px solid transparent}.entry-top{display:flex;align-items:center;gap:14px}.entry-icon{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:10px;background:var(--entry-background);color:var(--entry-accent)}.entry-icon svg{width:25px;height:25px}.entry-top b{font-family:Microsoft YaHei,PingFang SC,sans-serif;font-size:18px;line-height:1.4;font-weight:600;letter-spacing:.3px}.module-entry small{display:block;min-height:36px;margin:15px 0 17px;color:#72867c;font-size:12px;line-height:1.7}.entry-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ecf1ee;padding-top:14px;color:var(--entry-accent);font-size:12px;font-weight:500}.entry-footer svg{width:19px;height:19px}@media(max-width:850px){.module-band{gap:12px}.module-entry{padding:18px 20px}.module-entry small{min-height:0;margin:12px 0 14px}.entry-top b{font-size:17px}}@media(prefers-reduced-motion:reduce){.module-entry{transition:none}}.status-pending{background:#fff7e6;color:#9a6b24}.status-rejected{background:#fff0ed;color:#a64f47}.review-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:20px;background:#173f2e66}.review-dialog{width:min(560px,100%);padding:24px;background:#fff;border:1px solid #dce8e1;border-radius:12px;box-shadow:0 24px 70px #173f2e2b}.review-dialog h2{margin:0;font-size:21px;font-weight:600}.review-target{padding:12px 14px;margin:0 0 18px;background:#f5faf6;color:#356551}.review-label{display:grid;gap:8px;font-size:12px;color:#61786b}.review-label textarea{width:100%;resize:vertical;border:1px solid #d7e5db;border-radius:4px;padding:10px;color:#29483b}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}@media(max-width:520px){.review-dialog{padding:18px}.dialog-actions{flex-direction:column-reverse}.dialog-actions button{width:100%}}
