@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Outfit:wght@500;600;700&display=swap");:root{--bg:#f5f6f8;--bg-strong:#eef0f3;--ink:#202938;--muted:#596575;--soft:#647083;--line:#e9edf1;--line-strong:#dce1e7;--brand:#a43e35;--brand-dark:#863129;--teal:#326a72;--panel:#ffffff;--panel-solid:#ffffff;--shadow:0 12px 40px rgba(32,41,56,0.08);--shadow-soft:0 2px 8px rgba(32,41,56,0.025);--sidebar-width:224px;--page-gutter:clamp(20px,3vw,40px);--radius-panel:12px;--font-body:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif}*{box-sizing:border-box}body{min-height:100vh;color:var(--ink);background:var(--bg);font-family:var(--font-body);font-size:14px;line-height:1.6;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}:focus-visible{outline:3px solid rgba(164,62,53,.35);outline-offset:2px}.lead-form-page,.login-page{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-panel{width:min(440px,100%);padding:38px;border:1px solid var(--line);border-radius:16px;background:var(--panel-solid);box-shadow:var(--shadow)}.login-panel h1{margin:0 0 8px;font-size:clamp(30px,6vw,44px);line-height:1.25;letter-spacing:0;text-wrap:balance}.login-panel p{max-width:32rem;margin:0 0 30px;color:var(--muted);line-height:1.7}.admin-shell{min-height:100dvh;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;gap:8px;padding:28px 16px 20px;border-right:1px solid var(--line);background:var(--panel);overflow-y:auto}.sidebar-header{display:flex;align-items:center;gap:12px;margin-bottom:28px}.mobile-current-page,.nav-toggle{display:none}.nav-caption{margin:0 12px 8px;color:var(--soft);font-size:12px}.brand{display:flex;align-items:center;gap:12px;min-height:48px;flex-shrink:0}.brand-mark{width:38px;height:38px;flex-shrink:0;display:grid;place-items:center;border-radius:7px;color:#ffffff;background:var(--brand);font-weight:800}.brand small,.brand strong{display:block}.brand strong{font-size:18px;line-height:1.4;white-space:nowrap}.brand small{margin-top:4px;color:var(--soft);font-size:12px;font-weight:600}.nav-list{display:grid;grid-gap:6px;gap:6px}.nav-item{position:relative;display:flex;align-items:center;gap:11px;min-height:44px;padding:0 12px;border-radius:8px;color:var(--muted);font-weight:500;transition:color .15s ease,background .15s ease}.nav-item:hover{color:var(--ink);background:var(--bg)}.nav-item:active{background:var(--bg-strong)}.nav-item.active{color:var(--brand-dark);background:#f8ecea;font-weight:600}.nav-item .anticon{font-size:18px}.sidebar-note{margin-top:auto;padding:20px 12px 0;border-top:1px solid var(--line)}.sidebar-note span{display:block;margin-bottom:4px;color:var(--muted);font-size:12px;font-weight:700}.sidebar-note strong{display:block;color:var(--soft);font-size:12px;font-weight:400;line-height:1.6}.content{min-width:0;padding:32px var(--page-gutter) 64px}.content-inner{width:min(100%,1440px);margin:0 auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.page-title{margin:0;font-size:clamp(24px,2.4vw,30px);line-height:1.35;font-weight:600;letter-spacing:0;text-wrap:balance}.page-title-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.page-subtitle{max-width:56rem;margin:8px 0 0;color:var(--muted);line-height:1.7;text-wrap:pretty}.page-back-button{flex:none;color:var(--muted);border-color:var(--line-strong);background:var(--panel);font-weight:700}.page-back-button:hover{color:var(--brand-dark)!important;background:rgba(164,62,53,.12)!important}.metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin:0 0 18px}.metric-card{min-height:120px;padding:20px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--panel);box-shadow:var(--shadow-soft)}.metric-card span{display:block;color:var(--muted);font-size:13px;font-weight:500}.metric-card strong{display:block;margin-top:10px;font-size:32px;line-height:1.1;font-family:"Outfit",var(--font-body);font-weight:600}.metric-card em{display:block;margin-top:8px;color:var(--muted);font-size:12px;font-style:normal}.form-wrap,.table-wrap,.toolbar{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--panel);box-shadow:var(--shadow-soft)}.toolbar{padding:16px;margin-bottom:18px}.toolbar .ant-form{row-gap:12px}.table-wrap{overflow:hidden}.stats-alert{margin-bottom:18px}.stats-loading{min-height:240px;display:grid;place-items:center}.stats-metric-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px}.stats-panel{min-width:0;padding:18px;border:1px solid var(--line-strong);border-radius:8px;background:var(--panel);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.stats-panel h2{margin:0 0 14px;font-size:18px}.stats-list{display:grid;grid-gap:8px;gap:8px}.stats-list-row{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px;border:1px solid var(--line);border-radius:7px;background:var(--panel)}.stats-list-row span{color:var(--muted);font-weight:600}.stats-list-row strong{color:var(--ink);font-size:18px}.form-wrap{max-width:1080px;padding:24px 24px 96px}.listing-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-column-gap:24px;column-gap:24px;grid-row-gap:24px;row-gap:24px}.listing-form-grid .ant-form-item{margin-bottom:0}.form-section-wide{grid-column:1/-1}.form-collapse{border:1px solid var(--line-strong);border-radius:8px;background:var(--panel);overflow:hidden}.form-collapse summary{min-height:46px;display:flex;align-items:center;padding:0 16px;color:var(--ink);cursor:pointer;font-weight:700;-webkit-user-select:none;-moz-user-select:none;user-select:none}.form-collapse summary::marker{color:var(--brand)}.form-collapse[open]{background:var(--panel)}.form-collapse[open] summary{border-bottom:1px solid var(--line)}.form-collapse>.ant-form-item,.form-collapse>.ant-upload-wrapper,.form-collapse>.image-picker{margin-inline:16px}.form-collapse>.ant-form-item:first-of-type{margin-top:16px}.compact-form-item{margin:16px}.compact-upload{margin:0 16px 16px}.full-width-control{width:100%}.price-unit-input{width:76px;text-align:center;color:var(--muted)}.listing-room-prices{white-space:normal;line-height:1.5}.listing-room-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.listing-room-bed-price{display:grid;grid-gap:2px;gap:2px;margin-top:8px}.listing-room-bed-price small,.listing-room-bed-price span{color:var(--muted);font-size:12px}.listing-room-bed-price strong{color:var(--brand);font-size:14px}.room-inventory{margin-bottom:28px}.room-inventory-card h3,.room-inventory-heading h2{margin:0}.room-inventory-card-head small,.room-inventory-heading p{color:var(--muted);font-size:12px}.room-inventory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));grid-gap:16px;gap:16px}.room-inventory-card{padding:16px;border:1px solid var(--line-strong);border-radius:8px;background:var(--panel)}.room-inventory-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.room-inventory-prices{width:100%;border-collapse:collapse;font-size:14px}.room-image-link.ant-btn{height:auto;padding:0;font-size:12px}.room-image-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,160px),1fr));grid-gap:16px;gap:16px}.room-image-gallery figure{margin:0}.room-image-gallery .ant-image{overflow:hidden;border-radius:6px;background:var(--panel)}.room-image-gallery .ant-image-img{height:160px;object-fit:cover}.room-image-gallery figcaption{margin-top:8px;color:var(--muted);font-size:12px}.room-inventory-prices caption{caption-side:bottom;text-align:left;color:var(--muted);font-size:12px;padding-bottom:8px}.room-inventory-prices td,.room-inventory-prices th{text-align:right;padding:8px 0;border-bottom:1px solid var(--line-strong)}.room-inventory-prices td:first-child,.room-inventory-prices th:first-child{text-align:left}.room-inventory-prices td small{display:block;color:var(--muted);font-size:12px}.form-action-bar{position:fixed;right:var(--page-gutter);bottom:0;left:calc(var(--sidebar-width) + var(--page-gutter));z-index:20;display:flex;justify-content:flex-end;padding:16px 0;background:linear-gradient(180deg,rgba(245,246,248,0),rgba(245,246,248,.97) 28%);pointer-events:none}.form-action-bar .ant-btn{min-width:132px;pointer-events:auto}.cover-thumb{width:86px;height:62px;object-fit:cover;border:1px solid var(--line-strong);border-radius:6px;background:var(--bg-strong)}.image-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:12px;gap:12px;margin:-4px 0 22px}.image-bulk-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 16px 12px;color:var(--muted);font-size:12px}.image-bulk-bar.compact{margin:0}.image-picker-card{overflow:hidden;border:1px solid var(--line-strong);border-radius:8px;background:rgba(255,255,255,.72);position:relative}.image-picker-card.is-cover{border-color:var(--brand);box-shadow:0 0 0 2px rgba(164,62,53,.12)}.image-select-check{position:absolute;top:8px;left:8px;z-index:1;display:grid;place-items:center;width:24px;height:24px;border-radius:6px;background:var(--panel);box-shadow:var(--shadow-soft)}.image-picker-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--bg-strong)}.qr-picker .image-picker-card img{aspect-ratio:1/1;object-fit:contain;padding:10px;background:#fff}.image-picker-actions{display:flex;gap:8px;justify-content:space-between;flex-wrap:wrap;padding:8px}.room-image-tools{display:grid;grid-gap:8px;gap:8px}.room-image-row{display:grid;grid-template-columns:18px 52px 1fr;align-items:center;grid-gap:8px;gap:8px}.room-image-row img{width:52px;height:38px;border-radius:6px;object-fit:cover;background:var(--line-strong)}.crawler-taskbar{margin-bottom:12px}.crawler-title-cell{display:grid;grid-gap:5px;gap:5px;min-width:0}.crawler-title-cell span,.crawler-title-cell strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crawler-title-cell strong{color:var(--ink);font-weight:700}.crawler-title-cell span{color:var(--muted);font-size:12px}.ant-btn,.ant-input,.ant-input-number,.ant-picker,.ant-select-selector,.ant-upload-drag{transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.ant-table{background:transparent}.ant-table-thead>tr>th{font-size:13px;font-weight:500}.ant-table-tbody>tr>td{border-color:var(--line)}.editable-room-table .ant-table-cell{padding:8px;vertical-align:middle}.editable-room-table .ant-input,.editable-room-table .ant-input-number{background:var(--panel)}.editable-room-table .ant-input{min-width:112px}.editable-room-table .ant-input-number{min-width:96px}.ant-tag{-webkit-margin-end:5px;margin-inline-end:5px;font-weight:600}.ant-upload-wrapper .ant-upload-drag{border-color:rgba(164,62,53,.12);background:var(--bg)}.ant-upload-wrapper .ant-upload-drag:hover{border-color:var(--brand);background:var(--panel)}.toolbar .ant-form-inline{gap:12px}.toolbar .ant-form-inline .ant-form-item{-webkit-margin-end:0;margin-inline-end:0;min-width:0}.toolbar .ant-space{flex-wrap:wrap}.room-inventory-heading h2{font-size:20px;font-weight:600}.room-inventory-heading p{margin:8px 0 20px;font-size:13px}.room-inventory-card{padding:20px;border-color:var(--line);border-radius:10px;box-shadow:none}.room-inventory-card h3{font-size:18px;font-weight:600}.room-inventory-card-head small{display:block;margin-top:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.room-inventory-prices th{color:var(--muted);font-size:12px;font-weight:500}.room-inventory-prices td{padding:12px 0}.room-inventory-prices td:not(:first-child){font-weight:600;font-size:16px}.room-inventory-prices caption{padding-top:12px;line-height:1.6}.listing-room-title{font-weight:600}.listing-room-title:hover{color:var(--brand)}.listing-room-bed-price{gap:4px}.listing-room-bed-price strong{font-size:15px}.listing-room-bed-price a{margin-top:4px;color:var(--brand);font-size:12px}.listing-room-bed-price a:hover{text-decoration:underline}.ant-table-body,.ant-table-content{overscroll-behavior-x:contain}.ant-table-cell{overflow-wrap:anywhere}.ant-table-wrapper .ant-table-pagination{margin:16px}@media (max-width:980px){.admin-shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:-webkit-sticky;position:sticky;z-index:40;height:auto;padding:12px 20px;border-right:0;border-bottom:1px solid var(--line);gap:0;overflow:visible}.sidebar-header{margin:0;min-height:44px}.brand{min-height:44px}.brand small,.nav-caption,.sidebar-note{display:none}.brand strong{font-size:16px}.brand-mark{width:34px;height:34px}.mobile-current-page{display:block;margin-left:auto;color:var(--muted);font-size:13px}.nav-toggle{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border:1px solid var(--line-strong);border-radius:8px;color:var(--ink);background:var(--panel);cursor:pointer;font-size:18px}.nav-toggle:hover{background:var(--bg)}.nav-list{display:none}.menu-open .nav-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;padding-top:16px}.content{padding:24px 20px 48px}.form-action-bar{left:20px;right:20px}.metric-strip,.stats-metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid{grid-template-columns:1fr}}@media (max-width:680px){.listing-form-grid{grid-template-columns:minmax(0,1fr)}.page-title-row{align-items:flex-start;flex-direction:column;gap:12px}.page-head{align-items:flex-start;flex-wrap:wrap;gap:16px}.page-head>div:first-child{flex:1 1 100%;min-width:0}}@media (max-width:560px){body{font-size:14px}.sidebar{padding:10px 16px}.content{padding:24px 16px 40px}.metric-strip{gap:12px}.metric-card{padding:16px;min-height:112px}.metric-card strong{font-size:28px}.toolbar{padding:16px}.toolbar .ant-form-item,.toolbar .ant-form-item-control,.toolbar .ant-input,.toolbar .ant-input-affix-wrapper,.toolbar .ant-picker,.toolbar .ant-select{width:100%!important;min-width:0}.toolbar .ant-form-inline>.ant-space{width:100%}.ant-input,.ant-input-number-input,.ant-picker-input>input,.ant-select-selection-search-input{font-size:16px!important}.ant-btn:not(.ant-btn-sm),.ant-input-affix-wrapper,.ant-input-number:not(.ant-input-number-sm),.ant-picker,.ant-select-single:not(.ant-select-sm){min-height:44px}.form-wrap{padding:20px 16px 96px}.room-inventory-card{padding:16px}.form-action-bar{left:16px;right:16px;padding-bottom:max(16px,env(safe-area-inset-bottom))}.form-action-bar .ant-btn{width:100%}.login-panel{padding:28px 22px}.form-collapse summary{padding-inline:12px}.compact-form-item,.compact-upload,.form-collapse>.ant-form-item,.form-collapse>.ant-upload-wrapper,.form-collapse>.image-picker{margin-inline:12px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body,html{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[data-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-top:0;margin-bottom:1em}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}code,kbd,pre,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}button,input,optgroup,select,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}