*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--green:#2e7d32;--green-light:#43a047;--green-bg:#e8f5e9;--bg:#f5f5f0;--surface:#fff;--border:#e0e0e0;--text:#212121;--text2:#757575;--red:#c62828;--red-bg:#ffebee;--amber:#f57f17;--amber-bg:#fff8e1;--sidebar-w:220px;--header-h:56px;color:var(--text);background:var(--bg);font-family:DM Sans,system-ui,-apple-system,sans-serif;font-size:14px}body{min-height:100vh}a{color:inherit;text-decoration:none}button{cursor:pointer;font:inherit;background:0 0;border:none}.layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);z-index:100;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-logo{height:var(--header-h);border-bottom:1px solid var(--border);color:var(--green);align-items:center;gap:10px;padding:0 20px;font-size:16px;font-weight:700;display:flex}.sidebar-logo .dot{background:var(--green);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:12px 8px;display:flex}.nav-item{color:var(--text2);border-radius:8px;align-items:center;gap:10px;padding:9px 12px;font-weight:500;transition:all .15s;display:flex}.nav-item:hover{background:var(--bg);color:var(--text)}.nav-item.active{background:var(--green-bg);color:var(--green)}.nav-item .badge{background:var(--red);color:#fff;border-radius:10px;margin-left:auto;padding:1px 6px;font-size:11px;font-weight:600}.sidebar-footer{border-top:1px solid var(--border);padding:16px 12px}.main{margin-left:var(--sidebar-w);flex-direction:column;flex:1;min-height:100vh;display:flex}.topbar{height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);z-index:50;align-items:center;gap:16px;padding:0 24px;display:flex;position:sticky;top:0}.topbar-title{flex:1;font-size:16px;font-weight:600}.topbar-user{color:var(--text2);font-size:13px}.content{flex:1;padding:24px}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-bottom:28px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px 20px}.stat-card .label{color:var(--text2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:12px}.stat-card .value{color:var(--text);font-size:28px;font-weight:700;line-height:1}.stat-card .sub{color:var(--text2);margin-top:4px;font-size:12px}.stat-card.alert .value{color:var(--red)}.table-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.table-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:14px 20px;display:flex}.table-toolbar h2{flex:1;font-size:15px;font-weight:600}.search-input{border:1px solid var(--border);font:inherit;background:var(--bg);border-radius:8px;outline:none;width:220px;padding:7px 12px;font-size:13px}.search-input:focus{border-color:var(--green)}.select-input{border:1px solid var(--border);font:inherit;background:var(--bg);cursor:pointer;border-radius:8px;outline:none;padding:7px 10px;font-size:13px}.select-input:focus{border-color:var(--green)}table{border-collapse:collapse;width:100%}thead th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text2);background:var(--bg);border-bottom:1px solid var(--border);padding:10px 20px;font-size:11px;font-weight:600}tbody tr{border-bottom:1px solid var(--border);transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#fafafa}td{vertical-align:middle;padding:12px 20px;font-size:13px}.table-footer{border-top:1px solid var(--border);color:var(--text2);justify-content:space-between;align-items:center;padding:12px 20px;font-size:13px;display:flex}.pagination{gap:4px;display:flex}.page-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:5px 10px;font-size:13px;transition:all .1s}.page-btn:hover:not(:disabled){background:var(--bg)}.page-btn.active{background:var(--green);color:#fff;border-color:var(--green)}.page-btn:disabled{opacity:.4;cursor:not-allowed}.badge{white-space:nowrap;border-radius:20px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge.green{background:var(--green-bg);color:var(--green)}.badge.red{background:var(--red-bg);color:var(--red)}.badge.amber{background:var(--amber-bg);color:var(--amber)}.badge.grey{color:#616161;background:#f5f5f5}.btn{border-radius:8px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:var(--green-light)}.btn-danger{background:var(--red-bg);color:var(--red)}.btn-danger:hover{background:#ffcdd2}.btn-ghost{color:var(--text2);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--bg);color:var(--text)}.btn-sm{padding:4px 10px;font-size:12px}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:360px;padding:40px}.login-card h1{color:var(--green);margin-bottom:4px;font-size:22px;font-weight:700}.login-card p{color:var(--text2);margin-bottom:28px;font-size:13px}.form-group{margin-bottom:16px}.form-group label{color:var(--text2);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.form-group input{border:1px solid var(--border);width:100%;font:inherit;background:var(--bg);border-radius:8px;outline:none;padding:10px 12px}.form-group input:focus{border-color:var(--green)}.error-msg{color:var(--red);margin-bottom:12px;font-size:13px}.chart-grid{grid-template-columns:1fr 1fr;gap:16px;margin-top:24px;display:grid}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px}.chart-card h3{color:var(--text2);text-transform:uppercase;letter-spacing:.4px;margin-bottom:16px;font-size:11px;font-weight:600}.empty-state{text-align:center;color:var(--text2);padding:60px 20px}.empty-state .icon{margin-bottom:12px;font-size:36px}.spinner{color:var(--text2);justify-content:center;padding:60px;display:flex}.text-mono{font-family:monospace;font-size:12px}.text-sm{color:var(--text2);font-size:12px}.row-actions{gap:6px;display:flex}.modal-overlay{z-index:200;background:#00000073;justify-content:flex-end;animation:.15s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.edit-drawer{background:var(--surface);flex-direction:column;width:580px;max-width:100vw;height:100%;animation:.2s slideIn;display:flex;box-shadow:-4px 0 24px #0000001f}@keyframes slideIn{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:none}}.edit-drawer-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.edit-drawer-header h3{font-size:15px;font-weight:600}.edit-drawer-body{flex-direction:column;flex:1;gap:20px;padding:24px;display:flex;overflow-y:auto}.edit-drawer-footer{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;gap:10px;padding:14px 24px;display:flex}.edit-section{flex-direction:column;gap:10px;display:flex}.edit-section-title{text-transform:uppercase;letter-spacing:.6px;color:var(--text2);border-bottom:1px solid var(--border);padding-bottom:6px;font-size:11px;font-weight:700}.edit-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.edit-row-3{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.edit-field{flex-direction:column;gap:5px;display:flex}.edit-field label{color:var(--text2);text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:600}.edit-field input,.edit-field select,.edit-field textarea{border:1px solid var(--border);font:inherit;background:var(--bg);color:var(--text);border-radius:8px;outline:none;padding:8px 10px;font-size:13px}.edit-field input:focus,.edit-field select:focus,.edit-field textarea:focus{border-color:var(--green);background:#fff}.edit-field textarea{resize:vertical;min-height:80px}.amenity-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.amenity-item{border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:7px;padding:7px 10px;font-size:13px;transition:all .1s;display:flex}.amenity-item:hover{border-color:var(--green)}.amenity-item.selected{background:var(--green-bg);border-color:var(--green);color:var(--green);font-weight:500}.photo-url-list{flex-direction:column;gap:6px;display:flex}.photo-url-item{align-items:center;gap:8px;display:flex}.photo-url-item input{flex:1}.photo-url-item .del-btn{color:var(--red);opacity:.7;flex-shrink:0;font-size:16px;line-height:1}.photo-url-item .del-btn:hover{opacity:1}.toggle-row{background:var(--bg);border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.toggle-row label{font-size:13px;font-weight:500}.toggle{flex-shrink:0;width:40px;height:22px;position:relative}.toggle input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background:#ccc;border-radius:22px;transition:all .2s;position:absolute;inset:0}.toggle-slider:before{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:all .2s;position:absolute;top:3px;left:3px}.toggle input:checked+.toggle-slider{background:var(--green)}.toggle input:checked+.toggle-slider:before{transform:translate(18px)}.flag-dots{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.flag-dot{cursor:default;border-radius:50%;flex-shrink:0;width:9px;height:9px;position:relative}.flag-dot:after{content:attr(data-tip);color:#fff;white-space:nowrap;pointer-events:none;opacity:0;background:#212121;border-radius:5px;padding:3px 7px;font-size:11px;transition:opacity .15s;position:absolute;bottom:140%;left:50%;transform:translate(-50%)}.flag-dot:hover:after{opacity:1}.flag-dot.ok{background:#2e7d32}.flag-dot.fail{background:#c62828}.flag-dot.warn{background:#f57f17}.flag-dot.na{background:#bdbdbd}.review-queue{flex-direction:column;gap:14px;display:flex}.review-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px 20px}.review-card.has-issues{border-color:#ffcdd2;border-left:4px solid var(--red)}.review-card-head{align-items:flex-start;gap:14px;display:flex}.review-card-info{flex:1}.review-card-info h4{margin-bottom:3px;font-size:14px;font-weight:600}.review-card-info .sub{color:var(--text2);font-size:12px}.review-card-actions{flex-shrink:0;gap:8px;display:flex}.review-flags{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.review-flag{border-radius:12px;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:500;display:inline-flex}.review-flag.ok{background:var(--green-bg);color:var(--green)}.review-flag.fail{background:var(--red-bg);color:var(--red)}.review-flag.warn{background:var(--amber-bg);color:var(--amber)}.review-flag.na{color:#9e9e9e;background:#f5f5f5}.review-flag svg,.review-flag span.icon{font-size:11px}.review-photos{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.review-photo{object-fit:cover;border:1px solid var(--border);border-radius:6px;width:72px;height:72px}.tab-bar{border-bottom:2px solid var(--border);gap:0;margin-bottom:20px;display:flex}.tab-btn{color:var(--text2);border-bottom:2px solid #0000;margin-bottom:-2px;padding:9px 18px;font-size:13px;font-weight:500;transition:all .15s}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--green);border-bottom-color:var(--green)}.tab-btn .count{background:var(--red-bg);color:var(--red);border-radius:10px;margin-left:5px;padding:1px 6px;font-size:11px;font-weight:600}
