:root{--bg: #f8fafc;--surface: #ffffff;--border: #e6e9ef;--text: #232936;--muted: #6c757d;--primary: #d23185;--primary-dark: #b024a9;--amber: #edae56;--gradient: linear-gradient(320deg, #b024a9, #d23185 50%, #edae56);--money: #0c8a60;--danger: #d64545;--ok: #0c8a60;--warn: #b97e12;--radius: 10px;--shadow: 0 1px 3px rgba(16, 24, 40, .08)}*{box-sizing:border-box}body{margin:0;font-family:Nunito,Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.45}h1{font-size:1.5rem;margin:0 0 4px}h2{font-size:1.15rem;margin:0}h3{font-size:1rem;margin:0}p{margin:4px 0}.muted{color:var(--muted)}.small{font-size:.85rem}.main{max-width:960px;margin:0 auto;padding:20px 16px 80px}.page-loading{padding:60px;text-align:center;color:var(--muted)}.topbar{display:flex;align-items:center;gap:20px;background:var(--gradient);color:#fff;padding:10px 20px;position:sticky;top:0;z-index:20}.brand{text-decoration:none;color:#fff;white-space:nowrap}.ha-brand{display:inline-flex;align-items:center;gap:10px;color:currentColor}.ha-mark{flex-shrink:0;display:block}.ha-word{display:flex;flex-direction:column;line-height:1.05}.ha-name{font-weight:800;font-size:1.02rem;letter-spacing:.04em}.ha-tag{font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.85}.topnav{display:flex;gap:4px;flex:1}.topnav a{text-decoration:none;color:#ffffffd9;padding:6px 14px;border-radius:999px;font-weight:700}.topnav a:hover{color:#fff;background:#ffffff1f}.topnav a.active{color:#fff;background:#ffffff38}.topbar-right{display:flex;align-items:center;gap:10px}.user-chip{background:#ffffff2e;color:#fff;border-radius:999px;padding:4px 12px;font-weight:700;font-size:.85rem}.btn-topbar{background:#ffffff24;border-color:#ffffff73;color:#fff}.btn-topbar:hover{background:#ffffff42}.badge-onbrand{background:#fff3;color:#fff}.btn{display:inline-flex;align-items:center;gap:6px;justify-content:center;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:8px 14px;font-size:.9rem;font-weight:600;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s}.btn:hover{background:#f0f3f7}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger-ghost{color:var(--danger);border-color:#f0caca;background:#fff}.btn-danger-ghost:hover{background:#fdf1f1}.btn-ghost{border-color:transparent;background:transparent}.btn-ghost:hover{background:#eef1f5}.btn-link{border:none;background:none;color:var(--primary);padding:0;font-weight:600;cursor:pointer}.btn-sm{padding:5px 10px;font-size:.82rem}label{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:.88rem;margin-bottom:10px}input,select{border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:.95rem;font-family:inherit;background:#fff;color:var(--text);width:100%}input:focus{outline:2px solid #f3c3dc;border-color:var(--primary)}.field-row{display:flex;gap:10px}.field-row label{flex:1}.search{width:100%;max-width:420px;margin-bottom:20px;padding:10px 14px;border-radius:999px}.error-box{background:#fdf1f1;border:1px solid #f0caca;color:#9d2f2f;border-radius:8px;padding:10px 14px;margin:10px 0;font-size:.9rem}.success-box{background:#eefaf2;border:1px solid #bfe6cd;color:#1d6b3d;border-radius:8px;padding:10px 14px;margin:10px 0;font-size:.9rem}.auth-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;gap:22px;background:var(--gradient)}.auth-brand-outer{color:#fff;transform:scale(1.25)}.auth-brand-outer.dark{color:var(--text);transform:none;margin-bottom:8px}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:30px;width:100%;max-width:380px;box-shadow:0 18px 50px #3c0a3c59;display:flex;flex-direction:column;gap:8px}.auth-card .muted{text-align:center;margin-bottom:10px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;flex-wrap:wrap}.head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.back-link{display:inline-block;margin-bottom:6px;font-size:.85rem}.property-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.property-card{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;cursor:pointer;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px;font:inherit;color:inherit;transition:border-color .15s,transform .1s}.property-card:hover{border-color:var(--primary);transform:translateY(-1px)}.property-card-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.property-name{font-weight:700;font-size:1.05rem}.property-meta{display:flex;gap:6px;font-size:.85rem;color:var(--muted)}.empty-state{text-align:center;padding:60px 20px;background:var(--surface);border:1px dashed var(--border);border-radius:14px;display:flex;flex-direction:column;align-items:center;gap:6px}.empty-icon{font-size:2.2rem}.badge{display:inline-flex;align-items:center;background:#eef1f5;color:var(--muted);border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:700;white-space:nowrap}.badge-shared{background:#fbe9f3;color:var(--primary)}.badge-creator{background:#eef1f5;color:#5b6472;border:1px dashed #c3cad4}.badge-ok{background:#eefaf2;color:var(--ok)}.badge-warn{background:#fdf6e7;color:var(--warn)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px;margin-bottom:20px;box-shadow:var(--shadow)}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;flex-wrap:wrap}.set-selector{padding:14px 18px}.set-selector-row{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}.set-picker{margin-bottom:0;min-width:260px;flex:1;max-width:380px}.set-meta{margin-top:8px;margin-bottom:0}.draft-banner{background:#fdf6e7;border:1px solid #efd9a8;color:#7a5410;border-radius:8px;padding:10px 14px;margin-top:12px;font-size:.88rem;line-height:1.5}.room-cards{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px}.room-card{min-width:150px;flex-shrink:0;text-align:left;background:#fafbfc;border:1.5px solid var(--border);border-radius:10px;padding:12px;cursor:pointer;font:inherit;color:inherit;display:flex;flex-direction:column;gap:4px}.room-card.selected{border-color:var(--primary);background:#fbe9f3}.room-card.recording{border-color:var(--danger);background:#fdf1f1}.room-card-name{font-weight:700;font-size:.92rem}.room-card-status{font-size:.75rem;color:var(--muted)}.room-card-status.rec{color:var(--danger);font-weight:700}.room-card.add-room{border-style:dashed;color:var(--primary);font-weight:700;align-items:center;justify-content:center}.add-room-form{gap:6px}.add-room-form input{padding:6px 8px;font-size:.85rem}.capture-area{margin-top:14px}.mode-tabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.mode-tab{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:999px;padding:6px 14px;font:inherit;font-size:.85rem;font-weight:700;cursor:pointer}.mode-tab:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.mode-tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.mode-tab:disabled{opacity:.55;cursor:not-allowed}.photo-capture{display:flex;flex-direction:column;gap:12px}.photo-empty{border:1px dashed var(--border);border-radius:12px;padding:26px 18px;text-align:center;background:#fafbfc}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.photo-tile{position:relative;aspect-ratio:4 / 3}.photo-tile img{width:100%;height:100%;object-fit:cover;border-radius:10px;border:1px solid var(--border);background:#10151c;display:block}.photo-num{position:absolute;bottom:6px;left:6px;background:#10151cbf;color:#fff;border-radius:999px;min-width:20px;height:20px;padding:0 6px;font-size:.72rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.photo-remove{position:absolute;top:5px;right:5px;width:24px;height:24px;border-radius:50%;border:none;background:#10151cbf;color:#fff;cursor:pointer;font-size:.8rem;line-height:1;display:flex;align-items:center;justify-content:center}.photo-remove:hover:not(:disabled){background:var(--danger)}.room-note{margin-bottom:0}.room-note textarea{border:1px solid var(--border);border-radius:8px;padding:8px 10px;font:inherit;font-size:.92rem;width:100%;resize:vertical;background:#fff;color:var(--text)}.room-note textarea:focus{outline:2px solid #f3c3dc;border-color:var(--primary)}.voice-note-field{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:-2px}.voice-note{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.voice-note audio{height:32px;max-width:240px}.voice-rec-label{color:var(--danger);font-weight:700;font-size:.85rem}.camera-frame{position:relative;background:#10151c;border-radius:12px;overflow:hidden;aspect-ratio:16 / 9;max-height:420px;display:flex;align-items:center;justify-content:center}.camera-video{width:100%;height:100%;object-fit:cover}.camera-placeholder{color:#aab4c0;text-align:center;padding:20px;display:flex;flex-direction:column;align-items:center;gap:10px}.recording-pill{position:absolute;top:12px;left:12px;background:#d64545eb;color:#fff;border-radius:999px;padding:4px 12px;font-size:.8rem;font-weight:700;animation:pulse 1.2s infinite}@keyframes pulse{50%{opacity:.65}}.capture-actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.hint{color:var(--muted);font-size:.85rem;font-style:italic;margin-top:10px}.spinner{width:26px;height:26px;border:3px solid #3a4656;border-top-color:#fff;border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.inventory-head .muted{color:var(--money);font-weight:700}.inventory-room{border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:12px;background:#fafbfc}.inventory-room.dragging{opacity:.5}.inventory-room-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.inventory-room-head h3{cursor:pointer}.drag-handle{cursor:grab;color:var(--muted);-webkit-user-select:none;user-select:none;font-size:1.1rem}.room-count{flex:1}.room-icons{display:flex;gap:4px}.rename-form input{padding:4px 8px;font-size:.95rem;width:200px}.icon-btn{border:none;background:none;cursor:pointer;font-size:.95rem;padding:4px 6px;border-radius:6px;color:var(--muted);text-decoration:none}.icon-btn:hover{background:#eef1f5;color:var(--text)}.icon-btn.danger:hover{background:#fdf1f1;color:var(--danger)}.icon-btn.has-photo{color:var(--primary)}.item-row{display:flex;align-items:center;gap:8px;padding:3px 0}.item-thumb{width:36px;height:36px;object-fit:cover;border-radius:8px;border:1px solid var(--border);display:block;background:#fff}.thumb-stack{display:flex;align-items:center;border:none;background:none;padding:0;cursor:pointer}.thumb-stack .item-thumb{margin-left:-14px;box-shadow:0 0 0 2px #fff}.thumb-stack .item-thumb:first-child{margin-left:0}.thumb-stack:hover .item-thumb{outline:2px solid var(--primary)}.thumb-more{margin-left:4px;font-size:.75rem;font-weight:700;color:var(--primary);background:#fbe9f3;border-radius:999px;padding:2px 7px}.pms-picked{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:#fafbfc}.pms-results{border:1px solid var(--border);border-radius:8px;max-height:240px;overflow-y:auto;margin:-4px 0 10px;background:var(--surface)}.pms-result{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--border);padding:8px 10px;cursor:pointer;font:inherit;color:inherit}.pms-result:last-child{border-bottom:none}.pms-result:hover{background:#fbe9f3}.pms-result-name{font-weight:700;font-size:.9rem;display:flex;align-items:center;gap:6px}.pms-notlive{font-size:.65rem;padding:1px 7px}.dot-live{width:7px;height:7px;border-radius:50%;background:var(--ok);flex-shrink:0}.live-toggle{flex-direction:row;align-items:center;gap:8px;font-weight:600;margin:-2px 0 10px;cursor:pointer}.live-toggle input{width:auto;margin:0}.item-info{position:relative;display:inline-flex}.info-btn{font-size:.9rem;color:var(--muted)}.info-btn:hover,.item-info:focus-within .info-btn{color:var(--primary);background:#fbe9f3}.item-tooltip{display:none;position:absolute;right:0;top:calc(100% + 6px);z-index:30;background:#232936;color:#fff;border-radius:10px;padding:10px 12px;min-width:250px;max-width:320px;box-shadow:0 8px 24px #1018284d;font-size:.8rem;line-height:1.5}.item-tooltip:before{content:"";position:absolute;top:-5px;right:12px;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #232936}.item-info:hover .item-tooltip,.item-info:focus-within .item-tooltip{display:block}.item-tooltip-line{display:block;white-space:nowrap}.item-tooltip-line:first-child{font-weight:700;margin-bottom:2px}.gallery-backdrop{background:#0a060ec7}.gallery{background:var(--surface);border-radius:16px;padding:16px 18px;width:100%;max-width:720px;max-height:92vh;display:flex;flex-direction:column;gap:10px}.gallery-head{display:flex;align-items:center;gap:12px}.gallery-head .muted{flex:1}.gallery-close{font-size:1.1rem}.gallery-main{display:flex;align-items:center;gap:8px;min-height:0}.gallery-img{flex:1;min-width:0;max-height:58vh;object-fit:contain;border-radius:10px;background:#10151c}.gallery-nav{border:1px solid var(--border);background:var(--surface);border-radius:999px;width:38px;height:38px;font-size:1.4rem;line-height:1;cursor:pointer;flex-shrink:0;color:var(--text)}.gallery-nav:hover{border-color:var(--primary);color:var(--primary)}.gallery-strip{display:flex;gap:6px;overflow-x:auto;padding:2px}.gallery-strip-thumb{width:52px;height:52px;object-fit:cover;border-radius:8px;cursor:pointer;border:2px solid transparent;flex-shrink:0}.gallery-strip-thumb.active{border-color:var(--primary)}.gallery-actions{display:flex;justify-content:flex-end}.item-row .item-name{flex:1;border-color:transparent;background:transparent;padding:6px 8px}.item-row .item-name:hover,.item-row .item-name:focus{border-color:var(--border);background:#fff}.qty-input{width:64px;text-align:center}.qty-label{font-weight:600;color:var(--muted)}.item-row.readonly{border-bottom:1px dashed var(--border);padding:7px 2px}.item-row.readonly:last-child{border-bottom:none}.no-items{margin:6px 0}.add-item-row{display:flex;gap:8px;align-items:center;margin-top:8px}.add-item-row input:first-child{flex:1}.activity-list{list-style:none;margin:0;padding:0}.activity-row{display:flex;flex-direction:column;gap:1px;padding:8px 0;border-bottom:1px solid var(--border)}.activity-row:last-child{border-bottom:none}.activity-who{font-size:.85rem;color:var(--muted)}.activity-detail{font-size:.92rem}.share-section{margin-bottom:18px}.share-section h3{margin-bottom:4px}.share-link-row{display:flex;gap:8px;align-items:center;margin:6px 0;flex-wrap:wrap}.share-link{background:#f0f3f7;border-radius:6px;padding:6px 10px;font-size:.78rem;word-break:break-all;flex:1;min-width:180px}.invite-row{display:flex;gap:8px}.invite-row input{flex:1}.access-row{display:flex;align-items:center;gap:10px;padding:6px 0}.access-row span:first-child{flex:1}.history-list{display:flex;flex-direction:column;gap:10px}.history-row{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;cursor:pointer;font:inherit;color:inherit;text-align:left;box-shadow:var(--shadow);flex-wrap:wrap}.history-row:hover{border-color:var(--primary)}.history-main{display:flex;flex-direction:column;gap:2px}.history-side{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182873;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:var(--surface);border-radius:14px;padding:24px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 12px 40px #10182840}.modal h2{margin-bottom:14px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}@media (max-width: 640px){.topbar{padding:8px 12px;gap:10px}.topnav a{padding:6px 8px}.user-chip{display:none}.main{padding:14px 10px 60px}.panel{padding:14px 12px}.field-row{flex-direction:column;gap:0}.camera-frame{aspect-ratio:3 / 4;max-height:none}.head-actions{width:100%}.item-row{flex-wrap:wrap}}
