*{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}
