.btn{justify-content:center;align-items:center;gap:var(--sp-sm);border-radius:var(--r-lg);white-space:nowrap;-webkit-user-select:none;user-select:none;font-weight:600;transition:filter .15s,transform 50ms,background .15s;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn--sm{height:36px;padding:0 var(--sp-base);font-size:13px}.btn--md{height:44px;padding:0 var(--sp-lg);font-size:15px}.btn--lg{height:52px;padding:0 var(--sp-xl);font-size:16px}.btn--full{width:100%}.btn--primary{background:var(--primary);color:var(--text-inverse)}.btn--primary:hover:not(:disabled){background:var(--primary-dark)}.btn--secondary{background:var(--primary-light);color:var(--primary)}.btn--secondary:hover:not(:disabled){background:var(--primary-dim)}.btn--ghost{background:var(--surface);color:var(--text-primary);border:1px solid var(--border)}.btn--ghost:hover:not(:disabled){background:var(--background-tertiary)}.btn--danger{background:var(--error);color:var(--text-inverse)}.btn--danger:hover:not(:disabled){filter:brightness(.92)}.btn--black{background:var(--text-primary);color:var(--text-inverse)}.btn--black:hover:not(:disabled){filter:brightness(1.4)}.btn__spinner{border:2px solid;border-top-color:#0000;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite ui-spin}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--r-xl);box-shadow:var(--shadow-xs);padding:var(--sp-base)}.ui-card--flat{box-shadow:none;border-color:var(--border)}.ui-card--hover{transition:transform .15s,box-shadow .15s}.ui-card--hover:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.ui-segment{background:var(--background-tertiary);border-radius:var(--r-full);height:44px;padding:4px;display:flex;position:relative}.ui-segment__thumb{background:var(--surface);border-radius:var(--r-full);box-shadow:var(--shadow-sm);transition:left .25s cubic-bezier(.33,1,.68,1);position:absolute;top:4px;bottom:4px}.ui-segment__opt{z-index:1;color:var(--text-secondary);flex:1;font-size:14px;font-weight:500;transition:color .2s,font-weight .2s;position:relative}.ui-segment__opt.is-active{color:var(--text-primary);font-weight:700}.ui-catcards{gap:var(--sp-md);display:flex}.ui-catcard{align-items:center;gap:var(--sp-sm);padding:var(--sp-base)var(--sp-sm);background:var(--background-tertiary);border:1.4px solid var(--border);border-radius:var(--r-xl);color:var(--text-secondary);flex-direction:column;flex:1;font-size:13px;font-weight:500;transition:all .25s cubic-bezier(.33,1,.68,1);display:flex}.ui-catcard:hover{background:var(--grey-200)}.ui-catcard.is-active{background:var(--primary-dim);border-color:var(--primary);color:var(--primary);font-weight:700}.ui-chip{align-items:center;gap:var(--sp-xs);padding:var(--sp-xs)var(--sp-sm)var(--sp-xs)var(--sp-md);background:var(--primary-light);border:1px solid var(--primary-dim);border-radius:var(--r-full);color:var(--primary);font-size:13px;font-weight:600;display:inline-flex}.ui-chip__x{color:var(--primary);padding:2px;display:inline-flex}.ui-chip--clear{color:var(--error);background:0 0;border:none}.ui-badge{border-radius:var(--r-sm);color:#fff;letter-spacing:.3px;box-shadow:var(--shadow-sm);padding:3px 9px;font-size:11px;font-weight:700;display:inline-block}.ui-badge--sold{background:var(--sold)}.ui-badge--rent{background:var(--for-rent)}.ui-count-badge{background:var(--error);border:1.5px solid var(--surface);border-radius:var(--r-full);color:#fff;justify-content:center;align-items:center;min-width:17px;height:17px;padding:0 4px;font-size:9px;font-weight:700;display:inline-flex}.ui-status-chip{border-radius:var(--r-full);padding:3px 8px;font-size:10px;font-weight:700;display:inline-block}.ui-status-chip--pending{background:var(--warning-light);color:var(--warning)}.ui-status-chip--accepted{background:var(--success-light);color:var(--success)}.ui-status-chip--rejected{background:var(--error-light);color:var(--error)}.ui-avatar{background:var(--primary-light);color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex;position:relative;overflow:hidden}.ui-avatar img{object-fit:cover;width:100%;height:100%}.ui-avatar--ring{background:var(--gradient-brand);padding:3px;overflow:visible}.ui-avatar--ring .ui-avatar__inner{border:3px solid var(--surface);background:var(--primary-light);border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:hidden}.ui-avatar--ring .ui-avatar__inner img{object-fit:cover;width:100%;height:100%}.ui-empty{text-align:center;padding:var(--sp-xxxl)var(--sp-xl);align-items:center;gap:var(--sp-sm);flex-direction:column;display:flex}.ui-empty__icon{background:var(--background-tertiary);border-radius:var(--r-xxl);width:72px;height:72px;color:var(--text-tertiary);margin-bottom:var(--sp-sm);justify-content:center;align-items:center;display:flex}.ui-empty__title{color:var(--text-primary);font-size:16px;font-weight:600}.ui-empty__subtitle{color:var(--text-secondary);max-width:340px;font-size:13px;line-height:1.5}.ui-skeleton{background:var(--grey-200);border-radius:var(--r-md);position:relative;overflow:hidden}.ui-skeleton:after{content:"";background:linear-gradient(90deg,#0000,#fff9,#0000);animation:1.4s infinite ui-shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes ui-shimmer{to{transform:translate(100%)}}.ui-modal-overlay{z-index:200;padding:var(--sp-lg);background:#00000073;justify-content:center;align-items:center;animation:.15s ease-out ui-fade;display:flex;position:fixed;inset:0}@keyframes ui-fade{0%{opacity:0}}.ui-dialog{background:var(--surface);border-radius:var(--r-xxxl);width:100%;max-width:400px;box-shadow:var(--shadow-dialog);padding:var(--sp-xl);animation:.18s cubic-bezier(.33,1,.68,1) ui-pop}@keyframes ui-pop{0%{opacity:0;transform:scale(.95)}}.ui-dialog__title{color:var(--text-primary);margin-bottom:var(--sp-sm);font-size:18px;font-weight:700}.ui-dialog__message{color:var(--text-secondary);margin-bottom:var(--sp-xl);font-size:14px;line-height:1.5}.ui-dialog__actions{gap:var(--sp-md);display:flex}.ui-dialog__actions .btn{flex:1}@media (max-width:767px){.ui-modal-overlay--sheet{align-items:flex-end;padding:0}.ui-modal-overlay--sheet .ui-dialog{border-radius:var(--r-xxxl)var(--r-xxxl)0 0;max-width:none;padding-bottom:calc(var(--sp-xl) + var(--safe-area-bottom));animation:.22s cubic-bezier(.33,1,.68,1) ui-slide-up}}@keyframes ui-slide-up{0%{opacity:.5;transform:translateY(40%)}}.ui-toaster{bottom:calc(24px + var(--safe-area-bottom));z-index:300;gap:var(--sp-sm);pointer-events:none;flex-direction:column;align-items:center;display:flex;position:fixed;left:50%;transform:translate(-50%)}.ui-toast{align-items:center;gap:var(--sp-sm);padding:var(--sp-md)var(--sp-lg);border-radius:var(--r-lg);color:#fff;box-shadow:var(--shadow-xl);max-width:min(92vw,480px);font-size:14px;font-weight:500;animation:.2s ease-out ui-slide-up;display:flex}.ui-toast--success{background:var(--success)}.ui-toast--error{background:var(--error)}.ui-toast--warning{background:var(--warning)}.ui-toast--info{background:var(--grey-900)}.ui-section-header{align-items:center;gap:var(--sp-sm);color:var(--text-primary);font-size:16px;font-weight:600;display:flex}.ui-section-header:before{content:"";border-radius:var(--r-full);background:var(--primary);width:4px;height:16px}.ui-search-pill{align-items:center;gap:var(--sp-md);height:48px;padding:0 var(--sp-base);background:var(--background-tertiary);border-radius:var(--r-full);color:var(--text-tertiary);display:flex}.ui-search-pill input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:14px}.ui-search-pill input::placeholder{color:var(--text-tertiary)}
