@import "https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700;800&display=swap";:root{color:#17332f;font-synthesis:none;text-rendering:optimizelegibility;--primary:#13766d;--primary-dark:#07524c;--accent:#d79d4a;--surface:#fff;--line:#dce8e3;--muted:#738680;--danger:#b5444e;--shadow:0 12px 32px #184e4417;background:#edf4f1;font-family:Noto Sans SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:#edf4f1;min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;-webkit-tap-highlight-color:transparent;text-decoration:none}small{color:var(--muted)}#app{min-height:100vh}.customer-shell{background:#f5f8f7;width:min(100%,520px);min-height:100vh;margin:0 auto;padding-bottom:78px;position:relative;box-shadow:0 0 50px #18463e1f}.customer-header{z-index:30;color:#17332f;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff2;align-items:center;gap:10px;min-height:66px;padding:11px 15px;display:flex;position:sticky;top:0}.customer-header>div{flex:1;min-width:0}.customer-header small{font-size:9px;display:block}.customer-header h1{margin:2px 0 0;font-size:19px}.house-chip{max-width:110px;color:var(--primary);white-space:nowrap;text-overflow:ellipsis;background:#e7f3ef;border-radius:999px;padding:6px 9px;font-size:9px;overflow:hidden}.customer-content{min-height:calc(100vh - 144px);padding:14px}.page-stack{gap:13px;display:grid}.customer-tabbar{z-index:40;width:min(100%,520px);height:68px;padding:6px 7px max(6px, env(safe-area-inset-bottom));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff7;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.customer-tabbar a{color:#768984;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:relative}.customer-tabbar a>span{font-size:20px;line-height:1}.customer-tabbar a>small{color:inherit;font-size:10px;font-weight:600}.customer-tabbar a.active{color:var(--primary);background:#ebf5f2}.customer-tabbar b{color:#fff;background:#d44a54;border:2px solid #fff;border-radius:10px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:8px;display:grid;position:absolute;top:1px;left:calc(50% + 9px)}.customer-login{color:#fff;background:linear-gradient(152deg,#074e49 0%,#138077 45%,#edf4f1 45.2%,#f8faf9 100%);width:min(100%,520px);min-height:100vh;margin:0 auto;padding:38px 17px 22px}.login-visual{padding:10px 8px 48px}.wechat-mark{color:#0b665e;background:#fff;border-radius:15px;place-items:center;width:78px;height:44px;font-size:13px;font-weight:800;display:grid;box-shadow:0 12px 28px #0000002e}.login-visual>small{color:#ffffffa6;letter-spacing:.18em;margin-top:18px;font-size:9px;display:block}.login-visual h1{margin:4px 0 6px;font-size:29px}.login-visual p{color:#ffffffb8;margin:0;font-size:12px}.login-card{color:#17332f;box-shadow:var(--shadow);background:#fff;border-radius:24px;padding:21px 18px}.profile-options{gap:8px;margin:16px 0 18px;display:grid}.profile-options label{border:1px solid var(--line);border-radius:15px;grid-template-columns:43px 1fr 18px;align-items:center;gap:11px;padding:11px;display:grid}.profile-options input{display:none}.profile-options label.selected{background:#eaf5f1;border-color:#71aaa3;box-shadow:inset 0 0 0 1px #71aaa3}.profile-options label>span{color:#fff;background:#217a70;border-radius:14px;place-items:center;width:43px;height:43px;font-weight:800;display:grid}.profile-options strong,.profile-options small{display:block}.profile-options strong{font-size:13px}.profile-options small{margin-top:3px;font-size:9px}.profile-options i{border:2px solid #b8c9c4;border-radius:50%;width:17px;height:17px}.profile-options label.selected i{border:5px solid var(--primary)}.privacy-note{color:var(--muted);text-align:center;margin:12px 4px 0;font-size:9px;line-height:1.6}.form-error{color:#9d3340;background:#fff0f1;border-radius:10px;padding:8px 10px;font-size:10px}.home-page{gap:13px;margin:-14px;display:grid}.home-hero{color:#fff;background:linear-gradient(145deg,#07554f,#13877c 70%,#29978b);border-radius:0 0 28px 28px;padding:20px 18px 24px;box-shadow:0 14px 30px #116b622e}.home-hero header{justify-content:space-between;align-items:center;display:flex}.home-hero header small{color:#ffffffa6;font-size:9px}.home-hero h1{margin:3px 0 0;font-size:23px}.message-button{border:1px solid #ffffff38;border-radius:999px;padding:7px 10px;font-size:10px;position:relative}.message-button b{color:#fff;background:#df5059;border-radius:8px;place-items:center;min-width:16px;height:16px;font-size:8px;display:grid;position:absolute;top:-6px;right:-5px}.house-card{background:#ffffff1a;border:1px solid #ffffff24;border-radius:17px;margin-top:21px;padding:14px 15px}.house-card span,.house-card strong,.house-card small{display:block}.house-card span{color:#ffffffa8;font-size:9px}.house-card strong{margin:3px 0;font-size:17px}.house-card small{color:#ffffffa6;font-size:9px}.account-summary{grid-template-columns:1fr 1fr;margin-top:13px;display:grid}.account-summary a{border-left:1px solid #ffffff29;padding:3px 14px}.account-summary a:first-child{border:0;padding-left:0}.account-summary span,.account-summary strong{display:block}.account-summary span{color:#ffffffa6;font-size:9px}.account-summary strong{margin-top:3px;font-size:19px}.account-summary strong small{color:#ffffffa6;font-size:9px}.home-page>.home-section,.home-page>.promotion-banner{margin:0 14px}.home-section{border:1px solid var(--line);background:#fff;border-radius:19px;padding:17px;box-shadow:0 8px 25px #18463e0e}.section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-heading>div{min-width:0}.section-heading small{color:#76928b;letter-spacing:.15em;font-size:8px;font-weight:800;display:block}.section-heading h2{margin:2px 0 0;font-size:17px}.section-heading>a,.section-heading>span{color:var(--primary);font-size:9px;font-weight:700}.promotion-banner{color:#493521;background:linear-gradient(135deg,#fff5df,#f7e2b7);border:1px solid #ead0a3;border-radius:19px;align-items:center;gap:12px;padding:16px 17px;display:flex}.promotion-banner>div{flex:1;min-width:0}.promotion-banner small{color:#947345;font-size:8px}.promotion-banner h2{margin:3px 0;font-size:16px}.promotion-banner p{color:#806846;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:9px;overflow:hidden}.promotion-banner a{color:#fff;background:#9a6b2e;border-radius:10px;flex:none;padding:7px 9px;font-size:9px}.service-grid{grid-template-columns:repeat(4,1fr);gap:16px 8px;margin-top:17px;display:grid}.service-grid a{text-align:center;min-width:0}.service-grid a>span{color:#fff;border-radius:15px;place-items:center;width:45px;height:45px;margin:0 auto 8px;font-weight:800;display:grid}.service-grid strong{white-space:nowrap;text-overflow:ellipsis;font-size:10px;display:block;overflow:hidden}.announcement-row{grid-template-columns:38px 1fr auto;align-items:center;gap:10px;margin-top:14px;display:grid}.announcement-row>span{color:#fff;text-align:center;background:#d89434;border-radius:8px;padding:5px;font-size:9px}.announcement-row strong,.announcement-row p{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.announcement-row strong{font-size:12px}.announcement-row p{color:var(--muted);margin:3px 0 0;font-size:9px}.announcement-row time{color:var(--muted);font-size:8px}.mall-product{grid-template-columns:64px 1fr auto;align-items:center;gap:12px;margin-top:14px;display:grid}.product-visual{text-align:center;color:#fff;background:#c9873c;border-radius:18px;place-items:center;width:64px;height:64px;font-size:12px;font-weight:800;display:grid}.mall-product small{color:#ad6c22;font-size:8px}.mall-product h3{margin:3px 0;font-size:12px}.mall-product p{color:#bd531d;margin:0;font-size:13px;font-weight:800}.mall-product del{color:#9ba6a2;font-size:8px;font-weight:400}.mall-product>a{color:#fff;background:#b26f2b;border-radius:10px;padding:7px 9px;font-size:9px}.service-summary,.message-summary{color:#fff;background:linear-gradient(135deg,#0b5b54,#258d81);border-radius:21px;padding:20px}.service-summary small,.message-summary small{color:#ffffffa6;letter-spacing:.16em;font-size:8px}.service-summary h2,.message-summary h2{margin:4px 0;font-size:21px}.service-summary p,.message-summary p{color:#ffffffb3;margin:0;font-size:10px}.message-summary{background:linear-gradient(135deg,#375b71,#4c7f91)}.service-list{margin-top:10px;display:grid}.service-list a{border-top:1px solid #edf2f0;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px 0;display:grid}.service-list a:first-child{border-top:0}.service-list a>span{color:#fff;border-radius:14px;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.service-list strong,.service-list small{display:block}.service-list strong{font-size:12px}.service-list small{white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:9px;overflow:hidden}.service-list em{color:var(--muted);white-space:nowrap;font-size:9px;font-style:normal}.module-page{gap:13px;display:grid}.module-cover{color:#fff;background:linear-gradient(135deg, color-mix(in srgb, var(--module-color) 82%, #19332f), var(--module-color));box-shadow:0 12px 27px color-mix(in srgb, var(--module-color) 20%, transparent);border-radius:21px;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:12px;padding:18px;display:grid}.module-cover>span{background:#ffffff26;border-radius:17px;place-items:center;width:52px;height:52px;font-size:19px;font-weight:800;display:grid}.module-cover small{color:#ffffffa6;font-size:8px}.module-cover h2{margin:2px 0;font-size:18px}.module-cover p{color:#ffffffad;margin:0;font-size:9px;line-height:1.5}.module-cover button{color:#fff;background:#ffffff1f;border:1px solid #ffffff40;border-radius:10px;padding:7px 9px;font-size:9px}.record-chips,.filter-scroll{scrollbar-width:none;gap:8px;display:flex;overflow-x:auto}.record-chips::-webkit-scrollbar{display:none}.filter-scroll::-webkit-scrollbar{display:none}.record-chips button,.filter-scroll button{color:#577069;border:1px solid var(--line);text-align:left;background:#fff;border-radius:12px;flex:none;padding:8px 11px}.record-chips strong,.record-chips small{white-space:nowrap;text-overflow:ellipsis;max-width:150px;display:block;overflow:hidden}.record-chips strong{font-size:10px}.record-chips small{margin-top:2px;font-size:8px}.record-chips button.active,.filter-scroll button.active{color:#fff;background:var(--primary);border-color:var(--primary)}.filter-scroll button{border-radius:999px;font-size:9px}.status-card>p{color:var(--muted);margin:10px 0;font-size:9px}.status-tag{background:#fff3dc;border-radius:999px;padding:5px 8px;color:#8b6025!important}.action-buttons{flex-wrap:wrap;gap:8px;display:flex}.detail-list{margin:12px 0 0}.detail-list>div{border-top:1px solid #edf2f0;grid-template-columns:105px minmax(0,1fr);gap:10px;padding:11px 2px;display:grid}.detail-list dt{color:var(--muted);font-size:9px}.detail-list dd{text-align:right;overflow-wrap:anywhere;margin:0;font-size:11px;font-weight:600}.process-timeline{margin:14px 0 0;padding:0;list-style:none}.process-timeline li{grid-template-columns:16px 1fr;gap:9px;padding-bottom:17px;display:grid;position:relative}.process-timeline li:before{content:"";background:var(--line);width:1px;position:absolute;top:12px;bottom:-2px;left:5px}.process-timeline li:last-child:before{display:none}.process-timeline i{z-index:1;background:var(--primary);border:3px solid #d8ebe6;border-radius:50%;width:11px;height:11px;margin-top:3px;position:relative}.process-timeline strong{margin-right:8px;font-size:11px}.process-timeline span,.process-timeline p,.process-timeline small{font-size:8px}.process-timeline p{color:#547169;margin:4px 0}.pass-card{color:#fff;text-align:center;background:#163d39;border-radius:20px;padding:20px}.pass-card small{color:#fff9;letter-spacing:.16em;font-size:8px}.pass-card h2{margin:5px 0 12px;font-size:18px}.pass-card p{color:#ffffffa6;font-size:9px}.qr-placeholder{background:#fff;grid-template-columns:repeat(5,1fr);gap:3px;width:116px;height:116px;margin:0 auto;padding:9px;display:grid}.qr-placeholder i{background:#163d39}.qr-placeholder i:nth-child(3n){background:#fff}.finance-workbench{gap:13px;display:grid}.finance-cover .cover-link{color:#fff;background:#ffffff1f;border:1px solid #ffffff40;border-radius:10px;padding:7px 9px;font-size:9px}.finance-tabs{background:#e4eeeb;border-radius:14px;grid-template-columns:repeat(3,1fr);padding:4px;display:grid}.finance-tabs button{color:var(--muted);background:0 0;border:0;border-radius:11px;justify-content:center;align-items:center;gap:5px;padding:9px 5px;font-size:10px;display:flex}.finance-tabs button small{min-width:16px;color:inherit;background:#7386801a;border-radius:8px;padding:1px 4px;font-size:8px}.finance-tabs button.active{color:var(--primary);background:#fff;box-shadow:0 4px 12px #18463e14}.finance-summary{background:var(--line);border:1px solid var(--line);border-radius:17px;grid-template-columns:1fr 1fr;gap:1px;display:grid;overflow:hidden}.finance-summary>div{background:#fff;padding:14px 16px}.finance-summary small,.finance-summary strong{display:block}.finance-summary small{font-size:8px}.finance-summary strong{margin-top:4px;font-size:18px}.bill-list,.finance-record-list{gap:9px;display:grid}.bill-card{border:1px solid var(--line);background:#fff;border-radius:17px;grid-template-columns:25px minmax(0,1fr) auto;align-items:center;gap:10px;padding:14px;display:grid}.bill-card.selectable{cursor:pointer}.bill-card.selected{background:#edf8f5;border-color:#71aaa3;box-shadow:inset 0 0 0 1px #71aaa3}.bill-card input{width:17px;height:17px;accent-color:var(--primary)}.bill-state-mark{color:#fff;background:#63a397;border-radius:50%;place-items:center;width:19px;height:19px;font-size:10px;display:grid}.bill-card header{justify-content:space-between;align-items:center;gap:7px;display:flex}.bill-card header strong{font-size:11px}.bill-card header em{color:#8b6025;white-space:nowrap;font-size:8px;font-style:normal}.bill-card p{color:#557069;margin:5px 0 2px;font-size:9px}.bill-card small{font-size:8px}.bill-money{text-align:right}.bill-money strong,.bill-money small{white-space:nowrap;display:block}.bill-money strong{font-size:14px}.bill-money small{margin-top:4px;font-size:8px}.payment-bar{z-index:20;color:#fff;background:#163d39;border-radius:17px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex;position:sticky;bottom:70px;box-shadow:0 12px 26px #07322d38}.payment-bar small,.payment-bar strong{color:inherit;display:block}.payment-bar small{opacity:.65;font-size:8px}.payment-bar strong{margin-top:2px;font-size:17px}.payment-bar button{color:#15423d;background:#fff;border:0;border-radius:11px;padding:9px 14px;font-size:10px;font-weight:800}.payment-bar button:disabled{opacity:.55}.finance-record-card{border:1px solid var(--line);background:#fff;border-radius:18px;padding:15px}.finance-record-card header{justify-content:space-between;align-items:center;gap:12px;display:flex}.finance-record-card header small,.finance-record-card header strong{display:block}.finance-record-card header small{font-size:8px}.finance-record-card header strong{margin-top:2px;font-size:12px}.finance-record-card header em{color:#267366;background:#eaf5f1;border-radius:999px;padding:4px 7px;font-size:8px;font-style:normal}.finance-record-card header em.failed{color:#a23c47;background:#fff0f1}.finance-record-card dl{margin:11px 0 0}.finance-record-card dl>div{border-top:1px solid #edf2f0;grid-template-columns:75px minmax(0,1fr);gap:10px;padding:7px 0;display:grid}.finance-record-card dt{color:var(--muted);font-size:8px}.finance-record-card dd{text-align:right;overflow-wrap:anywhere;margin:0;font-size:9px}.finance-record-card footer{color:var(--muted);text-align:right;margin-top:8px;font-size:8px}.finance-failure{color:#9d3340;background:#fff0f1;border-radius:9px;margin:9px 0 0;padding:8px 9px;font-size:8px;line-height:1.5}.receipt-card{border-color:#cfe1dc}.filter-tabs{background:#e8efec;border-radius:13px;grid-template-columns:repeat(3,1fr);padding:4px;display:grid}.filter-tabs button{color:var(--muted);background:0 0;border:0;border-radius:10px;padding:8px;font-size:10px}.filter-tabs button.active{color:var(--primary);background:#fff;box-shadow:0 4px 12px #18463e14}.order-list{gap:10px;display:grid}.order-card{border:1px solid var(--line);background:#fff;border-radius:18px;padding:15px}.order-card header{grid-template-columns:30px 1fr auto;align-items:center;gap:8px;display:grid}.order-card header>span{color:#fff;border-radius:9px;place-items:center;width:30px;height:30px;font-size:10px;display:grid}.order-card header strong{font-size:11px}.order-card em{color:#8b6025;font-size:9px;font-style:normal}.order-card h3{margin:12px 0 4px;font-size:13px}.order-card p{color:var(--muted);margin:0;font-size:9px}.order-card footer{border-top:1px solid #edf2f0;justify-content:space-between;margin-top:13px;padding-top:10px;display:flex}.order-card footer small,.order-card footer b{font-size:8px}.order-card footer b{color:var(--primary)}.customer-message-list{padding-top:6px;padding-bottom:6px}.customer-message-list article{border-top:1px solid #edf2f0;grid-template-columns:8px 1fr;gap:8px;padding:14px 3px;display:grid}.customer-message-list article:first-child{border-top:0}.customer-message-list article>i{border-radius:50%;width:6px;height:6px;margin-top:5px}.customer-message-list article.unread>i{background:#d84b54}.customer-message-list header{justify-content:space-between;gap:10px;display:flex}.customer-message-list strong{font-size:12px}.customer-message-list time,.customer-message-list small{color:var(--muted);font-size:8px}.customer-message-list p{color:#587068;margin:5px 0;font-size:10px;line-height:1.5}.customer-profile-card{color:#fff;background:linear-gradient(135deg,#0a5a53,#1e887d);border-radius:21px;grid-template-columns:58px 1fr auto;align-items:center;gap:13px;padding:20px;display:grid}.customer-profile-card>span{background:#ffffff29;border-radius:18px;place-items:center;width:58px;height:58px;font-size:21px;font-weight:800;display:grid}.customer-profile-card small{color:#ffffffa6;font-size:9px}.customer-profile-card h2{margin:2px 0;font-size:19px}.customer-profile-card p{color:#ffffffad;margin:0;font-size:9px}.customer-profile-card em{color:#07554f;background:#fff;border-radius:999px;padding:5px 7px;font-size:8px;font-style:normal}.asset-card{background:#fff8e9;border:1px solid #ecd9b4;border-radius:18px;padding:17px;position:relative}.asset-card small{color:#9a7b47;font-size:8px}.asset-card h2{margin:3px 0;font-size:16px}.asset-card p{color:#856d49;margin:0;font-size:9px}.asset-card a{color:#9b6d2c;font-size:9px;position:absolute;top:20px;right:15px}.profile-links{margin-top:10px;display:grid}.profile-links>a,.profile-links>div{border-top:1px solid #edf2f0;justify-content:space-between;align-items:center;gap:10px;min-height:47px;font-size:10px;display:flex}.profile-links b{color:var(--muted);font-size:9px;font-weight:500}.primary-button,.outline-button,.danger-button,.icon-button{border:0;border-radius:12px;font-weight:700}.primary-button{color:#fff;background:var(--primary);width:100%;min-height:44px;padding:10px 15px;box-shadow:0 8px 20px #13766d2e}.primary-button.compact,.outline-button{width:auto;min-height:34px;padding:7px 11px;font-size:9px}.outline-button{color:var(--primary);background:#fff;border:1px solid #8fb8b0}.outline-button.full,.danger-button.full{width:100%;min-height:42px;margin-top:8px}.danger-button{color:var(--danger);background:#fff0f1}.icon-button{color:#47645d;background:#edf4f1;flex:none;place-items:center;width:34px;height:34px;font-size:21px;display:grid}.sheet-backdrop{z-index:80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#08231f85;justify-content:center;align-items:flex-end;padding-top:12px;display:flex;position:fixed;inset:0}.bottom-sheet{width:min(100%,520px);max-height:89vh;padding:9px 18px calc(23px + env(safe-area-inset-bottom));background:#fff;border-radius:24px 24px 0 0;overflow-y:auto;box-shadow:0 -16px 40px #0000002e}.sheet-handle{background:#d2ded9;border-radius:2px;width:38px;height:4px;margin:0 auto 14px}.service-form{gap:13px;margin-top:17px;display:grid}.service-form label,.action-sheet label{gap:6px;display:grid}.service-form label>span,.action-sheet label>span{color:#557069;font-size:10px;font-weight:600}.service-form label.required>span:after{content:" *";color:#c83d49}.service-form input,.service-form select,.service-form textarea,.action-sheet textarea{color:#17332f;background:#f7faf9;border:1px solid #d7e3df;border-radius:11px;outline:0;width:100%;padding:11px 12px}.service-form input:focus,.service-form select:focus,.service-form textarea:focus,.action-sheet textarea:focus{border-color:#68a79f;box-shadow:0 0 0 3px #e6f3f0}.upload-field{background:#f0f7f5;border:1px dashed #8ab6ae;border-radius:11px;align-items:center;min-height:44px;padding:9px 11px;display:flex;position:relative}.upload-field input{opacity:0;position:absolute;inset:0}.upload-field span{color:#53766e;font-size:9px}.action-sheet>p{color:var(--muted);font-size:10px;line-height:1.6}.action-sheet label{margin:13px 0}.feedback{z-index:100;color:#fff;width:min(100% - 30px,490px);box-shadow:var(--shadow);border-radius:12px;padding:11px 14px;font-size:10px;position:fixed;top:76px;left:50%;transform:translate(-50%)}.feedback.error{background:#a93a46}.feedback.success{background:#247365}.loading-mask{z-index:120;color:#fff;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0725218f;place-content:center;justify-items:center;display:grid;position:fixed;inset:0}.loading-mask p{font-size:10px}.spinner{border:3px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:34px;height:34px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-card{color:var(--muted);text-align:center;background:#fff;border:1px dashed #b8cbc5;border-radius:18px;padding:27px 14px;font-size:10px}@media (width>=521px){body{padding:24px 0}.customer-shell,.customer-login{border-radius:28px;min-height:calc(100vh - 48px);overflow:hidden}.customer-tabbar{border-radius:0 0 28px 28px;bottom:24px}}@media (width<=360px){.service-grid{grid-template-columns:repeat(3,1fr)}.module-cover{grid-template-columns:46px 1fr}.module-cover button{grid-column:1/-1}.detail-list>div{grid-template-columns:88px 1fr}}
