*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#203853;background:#f3f7fc}a{color:inherit;text-decoration:none}.login-layout{display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh}.intro{padding:44px 64px;background:linear-gradient(145deg,#15365b,#164d78 65%,#168b93);color:#fff;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.intro::after{content:"";width:600px;height:600px;border:1px solid #ffffff18;border-radius:50%;position:absolute;bottom:-380px;right:-230px;box-shadow:0 0 0 65px #ffffff08,0 0 0 130px #ffffff04;pointer-events:none}.brand{font-size:23px;font-weight:700;letter-spacing:2px}.intro-body{margin:72px 0 100px}.eyebrow{font-size:12px;letter-spacing:4px;color:#8fd8e5}.intro h1{font-size:44px;margin:23px 0}.intro p{color:#c7dde9;line-height:1.8}.feature-grid{display:flex;gap:12px;flex-wrap:wrap;margin-top:42px}.feature-grid div{background:#ffffff10;border:1px solid #ffffff20;border-radius:12px;padding:16px 22px;font-size:14px}.intro small{color:#91bbce}.login-side{display:flex;align-items:center;justify-content:center;padding:48px}.login-card{width:100%;max-width:440px;background:white;padding:38px;border-radius:24px;box-shadow:0 20px 70px #1b467012}.badge{display:inline-block;background:#eaf3ff;color:#1973d5;padding:6px 12px;border-radius:8px;font-size:12px}.login-card h2{font-size:28px;margin:22px 0 8px}.muted{color:#7d8da1;font-size:13px;line-height:1.8}.login-card label{display:block;margin:22px 0 10px;font-size:14px;font-weight:600}.login-card input{width:100%;border:1px solid #dce5ef;background:#f9fbfe;padding:14px;border-radius:10px;font:inherit;font-size:14px}.login-card input:focus{outline:2px solid #bddcff;border-color:#2483ed}.login-card .primary{margin-top:25px;width:100%;border:0;border-radius:10px;background:#1976e8;color:white;padding:15px;font:inherit;cursor:pointer;font-weight:600}button:disabled{opacity:.55;cursor:default}#error{background:#fff0ef;color:#be4545;border-radius:10px;padding:12px;font-size:13px}details{border-top:1px solid #edf1f6;margin-top:24px;padding-top:20px}summary{font-size:13px;color:#6e8198;cursor:pointer}.sample-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.sample{border:1px solid #dce7f4;background:#f6faff;color:#3676bb;padding:10px 12px;border-radius:8px;cursor:pointer}.login-footer{display:flex;justify-content:space-between;font-size:12px;color:#6482a2;margin-top:20px}.entry{max-width:1050px;margin:0 auto;padding:80px 32px}.entry>.brand{color:#2576ba}.entry h1{font-size:38px;margin-top:70px}.entry>p,.entry>small{color:#7b8da2;line-height:1.8}.entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:40px 0}.entry-card{background:#fff;border:1px solid #e2ebf5;border-radius:22px;padding:36px;box-shadow:0 10px 40px #23568908}.entry-card:hover{border-color:#82b5f0;transform:translateY(-2px)}.entry-card p{line-height:2;color:#788aa0;font-size:14px}.entry-card strong{display:block;margin-top:28px;color:#1677e8}.boot{padding:80px;text-align:center}.boot button{padding:12px 24px;cursor:pointer}body[data-portal="operations"] .intro{background:linear-gradient(145deg,#12213e,#223f72 70%,#365e9b)}body[data-portal="operations"] .sidebar{background:#15243f}body[data-portal="property"] .sidebar{background:#16394a}.nav button:disabled{opacity:1;color:#b5cbd8;cursor:default}@media(max-width:850px){.login-layout{display:block}.intro{padding:28px}.intro-body{margin:30px 0}.intro h1{font-size:30px}.feature-grid{margin-top:20px}.intro small{display:none}.login-side{padding:25px}.login-card{padding:28px}.entry-grid{grid-template-columns:1fr}.entry h1{font-size:30px;margin-top:44px}.entry{padding-top:40px}}
.sidebar .brand{font-size:18px;letter-spacing:0}
.billing-rule{display:grid;grid-template-columns:1fr 1fr 1fr auto;align-items:end;gap:12px;margin-bottom:14px;padding:14px;background:#f4f8fd;border-radius:10px}.billing-rule label{margin:0}.billing-rule input,.billing-rule select{margin-top:8px}.billing-selection{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:13px}.billing-houses input[type="checkbox"]{width:18px;height:18px}.billing-houses input[type="number"]{min-width:140px}.batch-billing .table td{white-space:normal;min-width:90px}.batch-billing .import-table{max-height:340px}@media(max-width:700px){.billing-rule{grid-template-columns:1fr 1fr}.batch-billing .form-grid{grid-template-columns:1fr}}
.house-summary{grid-template-columns:repeat(3,1fr)}@media(max-width:600px){.house-summary{grid-template-columns:1fr}}
.house-page-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}@media(max-width:700px){.house-page-actions{justify-content:flex-start;margin-top:12px}}
.standard-floor{border:1px solid #dce8f4;border-radius:12px;padding:12px 16px;margin:16px 0;background:#f7faff}.standard-floor legend{color:#245d96;font-size:14px;font-weight:600;padding:0 6px}.standard-floor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:4px 18px}.standard-floor label input{margin-top:8px}.area-default{color:#4d8296;font-size:12px}.area-special{color:#b2691a;font-size:12px}.area-details summary{font-weight:600;color:#2377e8}.builder-rooms td:nth-child(5){min-width:130px}
.house-methods{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0}.house-methods button{border:1px solid #d9e6f5;border-radius:14px;background:#f3f8ff;text-align:left;padding:22px;color:#244e7c;cursor:pointer}.house-methods button:hover{border-color:#2377e8;background:#eaf3ff}.house-methods strong{display:block;font-size:17px;margin-bottom:12px}.house-methods span{display:block;font-size:13px;line-height:1.9;color:#637a94}.builder-units{max-height:250px}.builder-units input{min-width:85px}.builder-total{color:#226ac1;font-size:14px}.builder-area-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:16px 0}.builder-area-tools small{width:100%}.builder-rooms{max-height:380px}.builder-rooms input{min-width:115px}.house-import-dialog [data-progress]{font-size:13px;color:#647b94;margin-right:auto}.house-builder button{cursor:pointer}@media(max-width:600px){.house-methods{grid-template-columns:1fr}.house-builder .form-grid{grid-template-columns:1fr}.house-import-dialog>.import-actions{flex-wrap:wrap;padding:10px 16px}.house-import-dialog [data-progress]{width:100%}}
.import-download{display:inline-block;font-size:14px}.import-download:focus-visible{outline:2px solid #2377e8;outline-offset:3px}
.house-import-dialog[open]{display:flex;flex-direction:column}.house-import-dialog header{flex-shrink:0}.house-import-dialog .company-dialog-body{overflow:auto}.house-import-dialog>.import-actions{flex-shrink:0;margin:0;padding:0 26px;background:white;border-top:1px solid #e7eef6}
.import-steps{color:#226ac1;font-size:14px;line-height:1.9}.import-guide{background:#f0f6fd;border:1px solid #dae8f8;border-radius:12px;padding:18px;margin:18px 0}.import-guide p{font-size:13px;line-height:1.8;color:#617790}.import-guide button{margin-top:4px}.import-table{max-height:300px;overflow:auto;margin-top:14px}.import-table th{position:sticky;top:0;background:#f1f6fc}.import-table td{white-space:normal;overflow-wrap:anywhere;min-width:62px}.import-table td:last-child{min-width:130px}.import-error,.company-dialog [role="alert"]{background:#fff1ee;color:#a33429;border-radius:9px;padding:12px;line-height:1.8}.import-invalid{background:#fff7f5}.import-empty{border:1px dashed #d8e4f0;border-radius:10px;padding:24px;color:#7a8ca1;text-align:center}.import-actions{display:flex;gap:12px;align-items:center}.company-dialog header button{border:0;border-radius:8px;background:#eff4f9;font-size:24px;width:36px;height:36px;cursor:pointer}.house-import button{cursor:pointer}.house-import button:disabled{cursor:default}
.company-dialog{border:0;border-radius:20px;width:min(850px,94vw);max-height:90vh;padding:0;color:#233c55;box-shadow:0 24px 100px #102b5550}.company-dialog::backdrop{background:#14283d88}.company-dialog header{position:sticky;top:0;z-index:1;background:white;border-bottom:1px solid #e7eef6;display:flex;align-items:center;justify-content:space-between;padding:18px 26px}.company-dialog h2{font-size:20px;margin:0}.company-dialog [data-close]{border:0;background:#eff4f9;font-size:24px;cursor:pointer;border-radius:8px;width:36px;height:36px}.company-dialog-body{padding:22px 26px}.company-dialog section{border-top:1px solid #e8eef6;margin-top:24px;padding-top:10px}.company-dialog input,.company-dialog select{width:100%;border:1px solid #dce5ef;padding:10px;border-radius:8px;background:#fff;font:inherit;font-size:14px}.company-dialog label{display:block;font-size:13px;color:#60768f;margin:10px 0}.company-dialog .form-grid{margin:12px 0}.company-dialog .primary{margin:14px 0}.feature-options{border:1px solid #e3ebf5;border-radius:12px;display:flex;flex-wrap:wrap;gap:8px 20px;margin:16px 0;padding:10px 18px}.feature-options legend{font-size:13px;color:#60768f}.feature-options label{display:flex;align-items:center;gap:6px}.feature-options input{width:auto}.credential-success{background:#e8f7ef;color:#268657;padding:14px 18px;border-radius:10px;font-size:14px}.company-dialog dt{color:#6e8198;margin-top:18px;font-size:13px}.company-dialog dd{margin:8px 0;overflow-wrap:anywhere}.initial-secret{font-family:monospace;background:#eff4fc;padding:16px;border-radius:10px;font-size:18px;user-select:all}.company-dialog small{display:block;margin-top:5px;color:#8595a8}#company-error{background:#fff0ef;color:#b44b43;padding:12px 26px;margin:0}.company-dialog .table button{font-size:12px;margin:4px;padding:6px 10px}

.billing-hero{align-items:flex-start;gap:20px;flex-wrap:wrap}.billing-actions{display:flex;flex-wrap:wrap;gap:8px;max-width:700px}.billing-query{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.billing-query label{display:grid;gap:6px;font-size:13px;color:#52677e}.billing-query input,.billing-query select{padding:10px;border:1px solid #dce5ee;border-radius:8px;background:white}.billing-query input[name=house]{min-width:260px}

.main{min-width:0}.billing-query{max-width:100%}.billing-query input[name=house]{width:100%;max-width:320px}.billing-hero+.panel .table td:last-child{white-space:normal;min-width:180px}.billing-hero+.panel .table td:last-child button{margin:2px}

/* Property summary cards: quiet surfaces, clear figures, no clipped decoration. */
body[data-portal="property"] .kpi{padding:20px 22px;border-color:#e2e9f0;box-shadow:0 3px 12px #20385305}
body[data-portal="property"] .kpi::after{content:none}
body[data-portal="property"] .kpi small{font-size:13px;color:#687e95}
body[data-portal="property"] .kpi strong{font-size:30px;line-height:1.2;margin-top:12px;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
body[data-portal="property"] .kpi .trend{margin-top:9px;color:#6f8295}

.company-dialog header .dialog-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:38px;height:38px;font-size:26px;line-height:1;padding:0;color:#60768f}.dialog-close:hover{background:#e0e9f3!important;color:#233c55!important}.promoter-code{display:block;font-family:monospace;font-size:14px;color:#226ac1;margin-top:8px;user-select:all}

body[data-portal=promoter]{background:#f7f5ef;color:#354438;font-family:"PingFang SC","Microsoft YaHei",sans-serif}body[data-portal=promoter] main{max-width:1100px!important}body[data-portal=promoter] .card{background:#fffefa;border-color:#e4e8dc;border-radius:18px;margin-bottom:20px}body[data-portal=promoter] h2{font-size:21px;margin:24px 0 16px}body[data-portal=promoter] h1{font-size:28px}body[data-portal=promoter] button{background:#bd5d35;color:white;border-radius:9px;padding:10px 18px}body[data-portal=promoter] input{display:block;width:100%;padding:12px;margin:8px 0 18px;border:1px solid #dce2d6;border-radius:9px;font:inherit}body[data-portal=promoter] .promoter-code{color:#6b8464}body[data-portal=promoter] .withdraw-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}@media(max-width:650px){body[data-portal=promoter] .withdraw-grid{grid-template-columns:1fr}}

body[data-portal=promoter] .table{font-size:14px}body[data-portal=promoter] .table th{background:#eef2e8;color:#657660;padding:16px;font-weight:600;white-space:nowrap}body[data-portal=promoter] .table td{padding:18px 16px;border-color:#e8ece1;line-height:1.7}body[data-portal=promoter] .table tr:hover{background:#fafbf5}body[data-portal=promoter] .promoter-empty{text-align:center;color:#87917e;padding:40px 20px!important}body[data-portal=promoter] .promoter-status{display:inline-block;padding:3px 10px;background:#e8f0e1;color:#5b7850;border-radius:20px}

body.promoter-login[data-portal=promoter] main.login-layout{max-width:none!important;margin:0;padding:0;min-height:100dvh;grid-template-columns:1fr 1fr}
body.promoter-login .intro{background:linear-gradient(145deg,#eaf0e3,#f4eddc 65%,#fae4d0);color:#36513d;padding:48px 10%}body.promoter-login .brand{font-size:32px;color:#ae5734;letter-spacing:3px}body.promoter-login .eyebrow{color:#81966d}body.promoter-login .intro h1{font-size:clamp(28px,3vw,46px);line-height:1.5}body.promoter-login .intro p{color:#708064;line-height:1.9}body.promoter-login .feature-grid div{background:#ffffff6b;border-color:#d7dfcb;color:#627556;border-radius:13px}body.promoter-login .login-side{padding:40px 28px;background:#fcf9f3}body.promoter-login .login-card{background:#fffefa;border:1px solid #e8e4d9;border-radius:24px;padding:36px;width:100%;max-width:440px;box-shadow:0 16px 50px #58614208}body.promoter-login .badge{background:#eaf0e3;color:#638254;border-radius:20px}body.promoter-login .login-card h2{font-size:28px;color:#374638}body.promoter-login .muted{font-size:13px;color:#88917e;line-height:1.8}body.promoter-login .login-card label{font-size:14px;color:#61705b}body.promoter-login .login-card input{font-size:16px;min-height:50px;border-color:#dddccc;border-radius:11px}body.promoter-login .login-card input:focus{outline:3px solid #ebefdf;border-color:#94a27b}body.promoter-login .login-card button{width:100%;min-height:50px;background:#bd6037;border-radius:11px;font-weight:600}body.promoter-login .login-card>a{display:block;text-align:center;font-size:13px;color:#ad633e;padding:12px}
@media(max-width:760px){body.promoter-login[data-portal=promoter] main.login-layout{display:flex;flex-direction:column}body.promoter-login .intro{display:block;padding:28px 24px 20px}body.promoter-login .brand{font-size:26px}body.promoter-login .intro-body{margin:20px 0 0}body.promoter-login .eyebrow,body.promoter-login .feature-grid,body.promoter-login .intro>small{display:none}body.promoter-login .intro h1{font-size:25px;margin:0 0 8px}body.promoter-login .intro p{font-size:13px;margin:0}body.promoter-login .login-side{padding:18px 16px 30px;display:block;flex:1}body.promoter-login .login-card{padding:26px 22px;margin:0 auto;border-radius:20px}}
/* Promoter workbench mobile layout */
body[data-portal=promoter]:not(.promoter-login) .hero{gap:20px;align-items:center}
body[data-portal=promoter]:not(.promoter-login) .hero>div{display:flex;align-items:center;gap:12px;flex-shrink:0}
@media(max-width:650px){
body[data-portal=promoter]:not(.promoter-login) main{margin:0 auto!important;padding:24px 16px 32px!important;width:100%}
body[data-portal=promoter]:not(.promoter-login) .hero{display:block;margin-bottom:20px}
body[data-portal=promoter]:not(.promoter-login) .hero h1{font-size:24px;line-height:1.4;margin:0 0 14px;white-space:nowrap;letter-spacing:0}
body[data-portal=promoter]:not(.promoter-login) .hero>div{justify-content:flex-end;gap:12px}
body[data-portal=promoter]:not(.promoter-login) .hero a{font-size:13px;padding:8px 12px;background:#ecf0e5;border-radius:8px}
body[data-portal=promoter]:not(.promoter-login) #logout{font-size:13px;padding:8px 14px;min-height:36px}
body[data-portal=promoter]:not(.promoter-login) .panel{padding:20px 16px}
body[data-portal=promoter]:not(.promoter-login) h2{font-size:18px;line-height:1.5;margin:22px 0 12px}
body[data-portal=promoter]:not(.promoter-login) .panel>h2:first-child{margin-top:0}
body[data-portal=promoter]:not(.promoter-login) p{font-size:14px;line-height:1.9;overflow-wrap:anywhere}
body[data-portal=promoter]:not(.promoter-login) .card{border-radius:15px;margin-bottom:18px}
body[data-portal=promoter]:not(.promoter-login) .table-wrap{overflow:visible}
body[data-portal=promoter]:not(.promoter-login) .table,body[data-portal=promoter]:not(.promoter-login) .table tbody{display:block;width:100%}
body[data-portal=promoter]:not(.promoter-login) .table thead{display:none}
body[data-portal=promoter]:not(.promoter-login) .table tr{display:block;padding:12px 0;border-bottom:1px solid #e7eadf}
body[data-portal=promoter]:not(.promoter-login) .table tr:last-child{border-bottom:0}
body[data-portal=promoter]:not(.promoter-login) .table td{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;padding:7px 0;border:0;white-space:normal;overflow-wrap:anywhere;font-size:14px}
body[data-portal=promoter]:not(.promoter-login) .table td:before{content:attr(data-label);color:#829078;font-size:12px}
body[data-portal=promoter]:not(.promoter-login) .table td[colspan]{display:block;padding:18px 4px!important;white-space:normal;line-height:1.9;font-size:13px}
body[data-portal=promoter]:not(.promoter-login) .table td[colspan]:before{display:none}
body[data-portal=promoter]:not(.promoter-login) .withdraw-grid{gap:0}
body[data-portal=promoter]:not(.promoter-login) form button{width:100%;min-height:46px;font-size:14px}
}
