:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#233249;background:#f3f5f8;font-size:14px;line-height:1.65;--brand:#1956b8;--line:#e4e9f0;--muted:#738096}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:8px;padding:10px 16px;background:#1956b8;color:white;font-weight:500}button:hover{filter:brightness(.94)}button:disabled{opacity:.5;cursor:wait}button.secondary{background:#eef2f7;color:#344966}button.danger{background:#fff0eb;color:#a8422a}button.link{padding:5px 0;background:none;color:var(--brand)}a{color:var(--brand)}:focus-visible{outline:3px solid #80b8ff;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:26px;letter-spacing:-.5px;margin-bottom:5px}h2{font-size:20px;margin-bottom:16px}h3{font-size:15px;margin-bottom:12px}small,.muted{color:var(--muted)}small{font-size:12px}label{display:block;font-weight:500;margin:12px 0}label small{font-weight:400}input,select,textarea{width:100%;display:block;background:#fff;color:#233249;border:1px solid #dbe2ed;border-radius:8px;padding:11px 12px;margin-top:5px}textarea{resize:vertical;min-height:95px}input[type=checkbox]{display:inline;width:auto;margin:0 8px 0 0}label.check{font-weight:400;display:flex;gap:4px;align-items:flex-start}label.check input{margin-top:6px}fieldset{border:0;margin:0;padding:0}hr{border:0;border-top:1px solid var(--line);margin:22px 0}.login{max-width:1020px;margin:8vh auto;display:grid;grid-template-columns:1fr 400px;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 20px 70px #2637590a}.login-intro{background:#102644;color:white;padding:56px 42px;position:relative}.login-intro h1{font-size:34px;margin:30px 0 16px;line-height:1.4}.login-intro small{color:#b1c5de}.login-intro p{color:#b9cadf}.login-intro .line{width:48px;height:4px;background:#73b9f2;margin:24px 0}.login-form{padding:40px 32px}.logo{display:flex;align-items:center;gap:11px;font-weight:600;font-size:17px}.logo-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#2372d9;color:white;font-size:23px}.steps-text{border-top:1px solid #ffffff25;padding-top:22px;margin-top:36px;color:#dbe6f4}.shell{display:grid;grid-template-columns:216px minmax(0,1fr);min-height:100vh}aside{background:#122742;color:#c9d6e6;padding:26px 16px;display:flex;flex-direction:column;gap:26px}aside .logo{color:white;padding:0 8px}nav{display:flex;flex-direction:column;gap:7px}nav button{display:flex;gap:12px;align-items:center;text-align:left;background:none;color:#bdcadc;font-weight:400}nav button.active{background:#244364;color:white}nav .navicon{font-size:17px;width:22px;text-align:center}.sidebar-bottom{margin-top:auto;padding:18px 10px;border-top:1px solid #ffffff20}aside small{color:#9cb0ca}.workspace{min-width:0}.header{background:white;border-bottom:1px solid var(--line);padding:18px 30px;display:flex;align-items:center;justify-content:space-between;gap:12px}.header .user{display:flex;gap:12px;align-items:center}.avatar{width:34px;height:34px;border-radius:50%;background:#e8f0ff;display:grid;place-items:center;color:var(--brand);font-weight:600}.header small{display:block}.main{padding:30px;max-width:1450px;margin:auto}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.heading{margin-bottom:22px}.eyebrow{color:#6380a0;font-size:12px;letter-spacing:1px;margin-bottom:7px}.pill{display:inline-block;background:#edf3fc;color:#285994;border-radius:5px;padding:3px 8px;font-size:12px;white-space:nowrap}.pill.live{background:#e8f5f0;color:#23765a}.pill.warn{background:#fff3e2;color:#9a631c}.pill.gray{background:#eef0f4;color:#64748b}.notice{border:1px solid #dce7f6;background:#f1f6fd;border-radius:9px;padding:12px 15px;color:#496482;margin-bottom:20px;font-size:13px}.notice.warning{border-color:#f0dfbe;background:#fff9ef;color:#876731}.panel{padding:22px;background:white;border:1px solid var(--line);border-radius:12px;margin-bottom:18px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.stat{background:white;border:1px solid var(--line);border-radius:12px;padding:20px}.stat strong{font-size:30px;font-weight:500;display:block;margin-top:5px}.columns{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:20px}.item{padding:15px 0;border-bottom:1px solid var(--line)}.item:last-child{border-bottom:0}.item p{margin:8px 0}.item h3{margin:0}.filterbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px}.filterbar input{max-width:300px;margin:0}.filterbar select{width:auto;margin:0;min-width:110px}.filterbar button{background:white;border:1px solid var(--line);color:#4f6380}.filterbar button.active{background:var(--brand);color:white;border-color:var(--brand)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{text-align:left;border-bottom:1px solid var(--line);padding:14px 12px;font-weight:400}th{font-size:12px;color:var(--muted);background:#f8fafc}td strong{font-weight:500}td small{display:block}.price{font-size:23px;font-weight:500;color:var(--brand)}.fields{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.fields .wide{grid-column:1/-1}.detail-grid{display:grid;grid-template-columns:1fr 290px;gap:20px}.kv{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;margin:12px 0}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.workflow{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.workflow span{font-size:12px;padding:7px 12px;background:#ecf0f6;border-radius:5px;color:#6c7d93}.workflow span.current{color:#1856b7;background:#e8f0ff}.empty{text-align:center;padding:35px;color:var(--muted)}.error{color:#aa3c2a;margin:12px 0;font-size:13px}.success{color:#22745c}.watermark{color:#8b99ab;font-size:12px;margin-top:20px;text-align:right}.full{width:100%}.text-pre{white-space:pre-wrap;overflow-wrap:anywhere}.block{display:block}.mobile-cards{display:none}.asset-card{background:white;border:1px solid var(--line);border-radius:13px;padding:18px;margin-bottom:14px}.asset-cover{height:75px;border-radius:8px;background:linear-gradient(120deg,#e8eff9,#f3f6fb);display:flex;align-items:center;justify-content:space-between;padding:18px;color:#6383a9;letter-spacing:2px;margin-bottom:16px}.asset-cover strong{font-size:24px;font-weight:400;letter-spacing:0}.footnote{font-size:12px;color:var(--muted);margin:18px 0}.session-note{font-size:12px;color:#75869c}.mobile-top{display:none}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#163357;color:white;box-shadow:0 5px 30px #0002;border-radius:10px;padding:12px 20px;max-width:90%;z-index:20;display:none}dialog{border:1px solid var(--line);border-radius:14px;padding:25px;max-width:540px;width:calc(100% - 32px);box-shadow:0 15px 70px #0003}dialog::backdrop{background:#12274270}#modal-close{margin-top:16px}.security-list{padding-left:22px}.security-list li{margin:12px 0}.restricted{background:#f6f8fb;padding:14px;border-radius:8px}.loading{text-align:center;padding:60px;color:#738096}.badge-count{margin-left:auto;background:#ffffff20;border-radius:5px;padding:1px 7px}.form-footer{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.audit-detail{max-width:200px;white-space:normal}
aside,nav,.fields>label{min-width:0}input,select,textarea{max-width:100%;min-width:0}
@media(max-width:1000px){.shell{grid-template-columns:180px minmax(0,1fr)}.main{padding:22px}.header{padding:16px 22px}.detail-grid,.columns{grid-template-columns:minmax(0,1fr)}.login{margin:30px 20px}.login-intro{padding:40px 28px}.login-intro h1{font-size:28px}}
@media(max-width:720px){.shell{grid-template-columns:minmax(0,1fr)}aside{padding:14px 16px;gap:12px}aside .logo{padding:0;font-size:16px}.sidebar-bottom{display:none}nav{flex-direction:row;overflow-x:auto;gap:4px}nav button{padding:9px 11px;white-space:nowrap;font-size:13px}nav .navicon{display:none}.header{padding:12px 16px}.header>.session-note{display:none}.header .user{width:100%;justify-content:space-between}.main{padding:20px 14px}h1{font-size:23px}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:15px}.stat strong{font-size:26px}.fields{grid-template-columns:1fr}.fields .wide{grid-column:auto}.panel{padding:17px}.desktop-table{display:none}.mobile-cards{display:block}.filterbar{gap:7px}.filterbar input{max-width:none}.filterbar button{padding:8px 11px}.filterbar select{flex:1}.login{display:block;margin:18px 12px}.login-intro{padding:25px}.login-intro h1{font-size:24px;margin:18px 0 8px}.login-intro .steps-text,.login-intro .line{display:none}.login-form{padding:24px}.login-form h2{margin-bottom:8px}input,select,textarea{font-size:16px}.kv{grid-template-columns:90px 1fr}.workflow{gap:5px}.workflow span{padding:5px 8px}.heading .actions{margin-top:8px}.watermark{text-align:left}.table-wrap{margin:0 -8px}.sidebar-bottom small{display:block}}

/* 服务号 H5：CSS 像素流式适配，非公众号素材图尺寸。 */
.mobile-bottom{display:none}.mobile-menu-list button{display:flex;align-items:center;justify-content:space-between;background:white;color:#233249;width:100%;text-align:left;border-bottom:1px solid var(--line);border-radius:0;min-height:52px;padding:14px 4px}.mobile-menu-list button:last-child{border:0}
@media(max-width:720px){
 html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{padding-bottom:calc(78px + env(safe-area-inset-bottom,0px))}.shell{min-height:calc(100dvh - 78px)}.shell>aside{display:none}.header{position:sticky;top:0;z-index:10;padding:10px max(14px,env(safe-area-inset-right,0px)) 10px max(14px,env(safe-area-inset-left,0px));background:#fff}.header .user{gap:8px}.header .user>div{flex:1}.header .user button{min-height:44px;padding:9px 13px}.main{padding:22px max(14px,env(safe-area-inset-right,0px)) 22px max(14px,env(safe-area-inset-left,0px))}.eyebrow{font-size:11px;letter-spacing:.7px}h1{font-size:24px;line-height:1.4}.heading{align-items:flex-start}.heading>.actions{width:100%;display:flex;gap:8px}.heading>.actions button{flex:1}.heading small{display:block;margin-top:6px}button{min-height:44px}input,select{min-height:48px}label{margin:16px 0;font-size:14px}textarea{min-height:132px}.fields{gap:0}.fields>label{min-width:0}.form-footer{display:grid;grid-template-columns:1fr}.panel{border-radius:14px;padding:18px;margin-bottom:16px}.panel .row h2{margin:0}.actions{gap:8px}.actions button{flex:1;min-width:120px}.notice{font-size:13px;line-height:1.75}.stats{gap:12px}.stat{border-radius:14px}.stat small{font-size:12px}.kv{grid-template-columns:82px minmax(0,1fr);gap:12px 10px;font-size:14px}.workflow{gap:6px}.workflow span{font-size:12px}.price{font-size:24px}.watermark{font-size:11px;overflow-wrap:anywhere}.asset-card{padding:18px;border-radius:14px}.asset-cover{height:90px}.item{padding:14px 0}.text-pre{word-break:break-word}.mobile-bottom{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:0;position:fixed;bottom:0;left:0;right:0;z-index:15;padding:7px max(3px,env(safe-area-inset-right,0px)) calc(7px + env(safe-area-inset-bottom,0px)) max(3px,env(safe-area-inset-left,0px));background:#fff;border-top:1px solid var(--line);box-shadow:0 -5px 18px #15345405}.mobile-bottom button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:50px;border-radius:9px;padding:4px 0;background:none;color:#6f8095;font-size:11px;font-weight:400;white-space:nowrap}.mobile-bottom button>span{font-size:21px;line-height:1.2}.mobile-bottom button.selected{background:#edf4ff;color:#1956b8}.editing-field .mobile-bottom{display:none}#toast{bottom:calc(94px + env(safe-area-inset-bottom,0px));width:max-content;max-width:calc(100% - 32px);font-size:13px;padding:12px 16px}dialog{max-height:calc(100dvh - 40px);overflow-y:auto;padding:22px}dialog button{min-height:44px}.login{max-width:440px;margin:0 auto;min-height:calc(100dvh - 78px);border-radius:0;border:0;background:#f3f5f8;box-shadow:none;overflow:visible}.login-intro{padding:34px 24px 30px;border-radius:0 0 24px 24px;background:#153454}.login-intro h1{font-size:27px;line-height:1.45;margin:22px 0 12px}.login-intro .logo{font-size:16px}.login-intro p{font-size:13px;margin:0}.login-form{margin:20px 14px;padding:24px 20px;border-radius:16px;background:#fff;border:1px solid var(--line)}.login-form h2{font-size:22px;margin-bottom:8px}.login-form .muted{font-size:13px}.login-form button{width:100%;min-height:48px}.login-form hr{margin:22px 0 16px}.login-form .footnote{font-size:12px;line-height:1.75}.login-form small{overflow-wrap:anywhere}.filterbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.filterbar input{grid-column:1/3}.filterbar button{padding:8px}.filterbar select{min-width:0}
}
@media(max-width:350px){.main{padding-left:12px;padding-right:12px}.panel{padding:15px}.heading>.actions{flex-wrap:wrap}.heading>.actions button{min-width:110px}.kv{grid-template-columns:72px minmax(0,1fr)}h1{font-size:22px}.header .user>div{font-size:13px}.avatar{width:30px;height:30px}.login-form{padding:22px 17px}.mobile-bottom button{font-size:10px}}

.project-category{display:flex;align-items:center;justify-content:space-between;gap:8px}
.deal-tag{flex-shrink:0;font-size:30px;line-height:1.25;background:#eaf0ff;color:#184ca6;font-weight:700;white-space:nowrap}
.deal-tag.deal-rent{background:#e3f5ed;color:#166447}

.performance-range{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:16px 0}
.performance-range label,.performance-range input{margin:0}
.performance-range input{min-width:150px}
.performance-range .error{flex-basis:100%;margin:0}
.performance-range .error:empty{display:none}
.performance-stat strong{font-size:clamp(19px,2vw,28px);overflow-wrap:anywhere}
.performance-legend{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:12px 0}
.performance-legend span{display:inline-flex;align-items:center;gap:6px}
.performance-legend i{width:10px;height:10px;border-radius:2px}
.performance-sale{background:#1956b8;fill:#1956b8}
.performance-rent{background:#228061;fill:#228061}
.performance-chart{display:flex;gap:3px;padding:0 4px;overflow-x:auto}
.performance-column{flex:1;min-width:16px;text-align:center}
.performance-column small{display:block;font-size:10px;white-space:nowrap}
.performance-stack{height:144px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to top,transparent 0,transparent 35px,var(--line) 35px,var(--line) 36px)}
.performance-stack svg{width:70%;max-width:28px;height:100%;display:block}

.performance-property{min-width:245px}
.performance-property .link{padding:0;font-weight:700;text-align:left}

.stats.ledger-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin:16px 0}
.ledger-kpis .stat{background:#f7faff}
.ledger-panel{margin-top:16px}
#performance-details{scroll-margin-top:76px}
.annual-chart{display:grid;grid-template-columns:repeat(12,minmax(86px,1fr));overflow-x:auto}
.annual-column{text-align:center}
.annual-plot{display:flex;justify-content:center;height:179px;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to top,transparent 0,transparent 49px,var(--line) 49px,var(--line) 50px)}
.annual-plot svg{display:block;width:86px;height:178px}
.annual-amount{font-size:9px;text-anchor:middle;fill:#233249;font-variant-numeric:tabular-nums}
.annual-future{fill:var(--muted)}
.annual-column>small{display:block;margin:6px 0}
#complete-deal-form fieldset{display:grid;gap:8px;border:1px solid var(--line);border-radius:10px;margin:12px 0;padding:10px 14px}
@media(max-width:520px){.stats.ledger-kpis{grid-template-columns:1fr}}

.report-status{display:block;text-align:right;font-size:12px;line-height:1.5;color:#66758a;margin-top:8px}

button.dashboard-count{background:none;color:var(--brand);font:inherit;padding:0 4px;border-radius:4px;text-align:left;min-width:44px;min-height:44px}
button.dashboard-count:hover{text-decoration:underline}

.logo-icon{background:transparent;border-radius:0;flex-shrink:0}
.logo-icon img{display:block;width:100%;height:100%;object-fit:contain}

.mobile-brand{display:none}
.asset-brand{display:block;border-radius:6px;flex-shrink:0}
@media(max-width:720px){.header{flex-wrap:wrap}.mobile-brand{display:flex;align-items:center;gap:8px;width:100%;font-weight:600;color:#233249}.mobile-brand img{padding:3px;background:#153454;border-radius:5px}}

.icp-footer{text-align:center;padding:12px 16px 20px;font-size:12px;line-height:1.6;color:#738096;background:#f3f5f8}.icp-footer a{color:#596b82;text-decoration:none}.icp-footer a:hover{text-decoration:underline}@media(max-width:720px){.icp-footer{padding-bottom:calc(85px + env(safe-area-inset-bottom))}}
