@import url("https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap");:root{--dark:#111317;--dark-2:#1a1d23;--surface:#22262e;--surface-hover:#2a2f38;--border:hsla(0,0%,100%,.06);--border-strong:hsla(0,0%,100%,.12);--accent:#c45c26;--accent-soft:rgba(196,92,38,.15);--accent-glow:rgba(196,92,38,.25);--muted:#6b7280;--light:#e6edf3;--green:#34d399;--green-soft:rgba(52,211,153,.12);--red:#f87171;--red-soft:hsla(0,91%,71%,.12);--yellow:#fbbf24;--yellow-soft:rgba(251,191,36,.12);font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:hsla(0,0%,100%,.87);background-color:var(--dark);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body,html{width:100%;height:100%}body{background-color:var(--dark);color:hsla(0,0%,100%,.87)}a{font-weight:500;color:var(--accent);text-decoration:inherit}a:hover{color:#d17c3b}h1,h2,h3{font-family:"Instrument Serif",serif;font-weight:400}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:transparent;cursor:pointer;transition:border-color .25s}button:hover{border-color:var(--accent)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.app{display:flex;flex-direction:column;min-height:100vh}.header{padding:1.5rem 2rem 1rem;display:flex;align-items:center;gap:1rem}.header h1{font-family:"Instrument Serif",serif;font-size:1.75rem;font-weight:400;color:#fff}.tag{background:var(--accent-soft);color:var(--accent);padding:.3rem .7rem;border-radius:6px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.dropzone{margin:0 2rem 1rem;border:2px dashed var(--border-strong);border-radius:12px;padding:1.25rem 1.5rem;display:flex;align-items:center;gap:.75rem;transition:all .2s;background:var(--dark-2)}.dropzone.drag-over{border-color:var(--accent);background:var(--accent-soft)}.dropzone input[type=text]{flex:1;background:transparent;border:none;color:var(--light);font-size:.95rem;font-family:inherit;outline:none}.dropzone input[type=text]::-moz-placeholder{color:var(--muted)}.dropzone input[type=text]::placeholder{color:var(--muted)}.dropzone .hint{color:var(--muted);font-size:.8rem;white-space:nowrap}.dropzone button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.6rem 1.25rem;font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer;white-space:nowrap;transition:filter .15s}.dropzone button:hover{filter:brightness(1.1)}.sheet-wrap{margin:0 2rem;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--dark-2);flex:1}.sheet{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.85rem}.sheet thead th{background:var(--surface);color:var(--muted);font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;padding:.6rem .75rem;text-align:left;position:sticky;top:0;z-index:2;-webkit-user-select:none;-moz-user-select:none;user-select:none}.sheet tbody tr,.sheet thead th{border-bottom:1px solid var(--border)}.sheet tbody tr{transition:background .15s;cursor:pointer}.sheet tbody tr:hover{background:var(--surface-hover)}.sheet tbody tr:last-child{border-bottom:none}.sheet td{padding:.6rem .75rem;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-thumb{width:56px}.col-name{width:22%}.col-loc{width:16%}.col-baths,.col-beds,.col-guests{width:7%;text-align:center}.col-price{width:14%}.col-amenities{width:18%;max-width:200px}.col-catch{width:auto}.thumb{-o-object-fit:cover;object-fit:cover;display:block}.thumb,.thumb-placeholder{width:40px;height:40px;border-radius:6px;background:var(--surface)}.thumb-placeholder{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:1rem}.thumb-link{cursor:pointer;position:relative}.thumb-link:after{content:"↗";position:absolute;bottom:0;right:0;background:var(--accent);color:#fff;font-size:.55rem;width:14px;height:14px;border-radius:3px 0 6px 0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}.thumb-link:hover:after{opacity:1}.row-loading td{color:var(--muted)}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle;margin-right:.5rem}@keyframes spin{to{transform:rotate(1turn)}}.loading-text{color:var(--accent);font-weight:500}.row-error .loading-text{color:var(--red)}.row-error .retry-btn{background:var(--red-soft);color:var(--red);border:none;border-radius:6px;padding:.25rem .6rem;font-size:.75rem;font-weight:600;font-family:inherit;cursor:pointer;margin-left:.5rem}.row-error .retry-btn:hover{filter:brightness(1.15)}.empty-state{text-align:center;padding:3rem 1rem;color:var(--muted)}.empty-state .icon{font-size:2rem;margin-bottom:.5rem}.empty-state p{font-size:.9rem}.row-actions{display:flex;gap:.5rem;opacity:0;transition:opacity .15s}.sheet tbody tr:hover .row-actions{opacity:1}.row-action-btn{background:transparent;border:none;cursor:pointer;padding:0;font-size:.8rem;color:var(--muted);transition:color .15s}.row-action-btn:hover{color:var(--accent)}.row-action-btn.trash:hover{color:var(--red)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s}.modal-overlay.open{opacity:1;pointer-events:auto}.modal{background:var(--dark-2);border:1px solid var(--border-strong);border-radius:14px;width:560px;max-width:95vw;max-height:90vh;overflow-y:auto;padding:2rem;transform:translateY(10px);transition:transform .2s}.modal-overlay.open .modal{transform:translateY(0)}.modal h2{font-family:"Instrument Serif",serif;font-size:1.4rem;font-weight:400;color:#fff;margin-bottom:.5rem}.modal p{color:var(--muted);font-size:.9rem;margin-bottom:1rem}.modal textarea{width:100%;background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;padding:1rem;color:var(--light);font-size:.9rem;font-family:inherit;line-height:1.5;resize:vertical;min-height:180px}.modal textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.modal textarea::-moz-placeholder{color:var(--muted)}.modal textarea::placeholder{color:var(--muted)}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1rem}.modal-actions button{border:none;border-radius:8px;padding:.6rem 1.25rem;font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer}.btn-cancel{background:var(--surface);color:var(--muted)}.btn-cancel:hover{color:var(--light)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{filter:brightness(1.1)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.img-badge-modal{display:inline-block;background:var(--green-soft);color:var(--green);font-size:.8rem;padding:.2rem .6rem;border-radius:6px;margin-top:.5rem}.sheet-scroll{max-height:calc(100vh - 220px);overflow-y:auto}.sheet-scroll::-webkit-scrollbar{width:6px}.sheet-scroll::-webkit-scrollbar-track{background:transparent}.sheet-scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.gallery-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.95);display:flex;align-items:center;justify-content:center;z-index:101;opacity:0;pointer-events:none;transition:opacity .2s}.gallery-modal-overlay.open{opacity:1;pointer-events:auto}.gallery-container{position:relative;width:90vw;max-width:1200px;height:80vh;display:flex;align-items:center;justify-content:center}.gallery-image{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain}.gallery-nav{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);display:flex;gap:10px;z-index:102}.gallery-nav button{background:hsla(0,0%,100%,.2);color:#fff;border:1px solid hsla(0,0%,100%,.3);padding:8px 12px;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background .2s}.gallery-nav button:hover{background:hsla(0,0%,100%,.3)}.gallery-close{position:absolute;top:20px;right:20px;background:hsla(0,0%,100%,.2);color:#fff;border:none;width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:1.5rem;display:flex;align-items:center;justify-content:center;transition:background .2s;z-index:103}.gallery-close:hover{background:hsla(0,0%,100%,.3)}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;background:var(--dark)}.auth-card{width:100%;max-width:400px;background:var(--dark-2);border:1px solid var(--border-strong);border-radius:14px;padding:2rem}.auth-card h1{font-family:"Instrument Serif",serif;font-size:1.75rem;font-weight:400;color:#fff;margin-bottom:.25rem}.auth-card .auth-tag{display:inline-block;background:var(--accent-soft);color:var(--accent);padding:.2rem .5rem;border-radius:6px;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:1.5rem}.auth-card .auth-error{background:var(--red-soft);border:1px solid var(--red);color:var(--red);padding:.75rem 1rem;border-radius:8px;font-size:.9rem;margin-bottom:1.25rem}.auth-card label{display:block;color:var(--muted);font-size:.8rem;font-weight:500;margin-bottom:.4rem}.auth-card input{width:100%;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;padding:.6rem .85rem;color:var(--light);font-size:.95rem;font-family:inherit;transition:border-color .15s,box-shadow .15s}.auth-card input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.auth-card input::-moz-placeholder{color:var(--muted)}.auth-card input::placeholder{color:var(--muted)}.auth-card .auth-field{margin-bottom:1rem}.auth-card .auth-submit{width:100%;background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.65rem 1.25rem;font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;margin-top:.5rem;transition:filter .15s}.auth-card .auth-submit:hover:not(:disabled){filter:brightness(1.1)}.auth-card .auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-card .auth-divider{display:flex;align-items:center;gap:1rem;margin:1.5rem 0}.auth-card .auth-divider:after,.auth-card .auth-divider:before{content:"";flex:1;height:1px;background:var(--border)}.auth-card .auth-divider span{color:var(--muted);font-size:.8rem}.auth-card .auth-google{width:100%;background:var(--surface);color:var(--light);border:1px solid var(--border-strong);border-radius:8px;padding:.65rem 1.25rem;font-size:.9rem;font-weight:500;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:background .15s,border-color .15s}.auth-card .auth-google:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong)}.auth-card .auth-google:disabled{opacity:.6;cursor:not-allowed}.auth-card .auth-footer{margin-top:1.5rem;text-align:center;color:var(--muted);font-size:.9rem}.auth-card .auth-footer a{color:var(--accent);font-weight:500}.auth-card .auth-footer a:hover{color:#d17c3b}.oauth-consent-list{list-style:none;padding:0;margin:0 0 1rem}.oauth-consent-list li{padding:.5rem 0 .5rem 1.5rem;color:var(--light);font-size:.9rem;position:relative}.oauth-consent-list li:before{content:"•";position:absolute;left:0;color:var(--accent)}.auth-card .auth-cancel{width:100%;background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:8px;padding:.65rem 1.25rem;font-size:.9rem;font-family:inherit;cursor:pointer;transition:color .15s,border-color .15s}.auth-card .auth-cancel:hover:not(:disabled){color:var(--light);border-color:var(--border-strong)}.auth-card .auth-cancel:disabled{opacity:.6;cursor:not-allowed}