:root{--tg-bg: var(--tg-theme-bg-color, #ffffff);--tg-text: var(--tg-theme-text-color, #000000);--tg-hint: var(--tg-theme-hint-color, #999999);--tg-link: var(--tg-theme-link-color, #2481cc);--tg-btn: var(--tg-theme-button-color, #2481cc);--tg-btn-text: var(--tg-theme-button-text-color, #ffffff);--tg-secondary-bg: var(--tg-theme-secondary-bg-color, #f0f0f0);--card-bg: var(--tg-secondary-bg);--radius: 12px;--radius-sm: 8px;--gap: 12px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,sans-serif;background:var(--tg-bg);color:var(--tg-text);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}.layout{display:flex;flex-direction:column;min-height:100vh;max-width:480px;margin:0 auto}.layout-main{flex:1;padding-bottom:72px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;display:flex;background:var(--tg-bg);border-top:1px solid var(--tg-secondary-bg);padding:4px 0 env(safe-area-inset-bottom,8px);z-index:100}.nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;background:none;border:none;color:var(--tg-hint);font-size:10px;cursor:pointer;transition:color .15s;position:relative}.nav-btn.active{color:var(--tg-btn)}.nav-icon{font-size:20px;position:relative}.nav-label{font-size:10px}.nav-badge{position:absolute;top:-4px;right:-10px;background:#ff3b30;color:#fff;font-size:9px;font-weight:700;padding:1px 5px;border-radius:10px;line-height:1.2}.page{padding:var(--gap)}.page-header{margin-bottom:var(--gap)}.page-title{font-size:22px;font-weight:700}.page-subtitle{font-size:13px;color:var(--tg-hint);margin-top:2px}.back-btn{background:none;border:none;color:var(--tg-link);font-size:14px;cursor:pointer;padding:4px 0;margin-bottom:4px}.card{background:var(--card-bg);border-radius:var(--radius);padding:var(--gap);margin-bottom:var(--gap);cursor:pointer;transition:transform .1s}.card:active{transform:scale(.985)}.card-photos{position:relative;margin:calc(-1 * var(--gap)) calc(-1 * var(--gap)) var(--gap);border-radius:var(--radius) var(--radius) 0 0;overflow:hidden;aspect-ratio:4/3;background:var(--tg-secondary-bg)}.card-photo{width:100%;height:100%;object-fit:cover;display:block}.photo-dots{position:absolute;bottom:8px;left:50%;transform:translate(-50%);display:flex;gap:6px}.photo-dot{width:6px;height:6px;border-radius:50%;background:#ffffff80;cursor:pointer}.photo-dot.active{background:#fff}.photo-nav{position:absolute;top:50%;transform:translateY(-50%);background:#0000004d;color:#fff;border:none;width:32px;height:32px;border-radius:50%;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}.photo-prev{left:8px}.photo-next{right:8px}.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px}.card-item{font-weight:600;font-size:15px;flex:1}.card-badges{display:flex;align-items:center;gap:6px;flex-shrink:0}.badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px}.card-time{font-size:11px;color:var(--tg-hint);white-space:nowrap}.card-row{display:flex;gap:var(--gap);margin-bottom:6px}.card-stat{flex:1}.stat-label{display:block;font-size:11px;color:var(--tg-hint)}.stat-value{font-size:13px;font-weight:500}.card-expanded{margin-top:10px;padding-top:10px;border-top:1px solid rgba(128,128,128,.15)}.card-desc{font-size:13px;color:var(--tg-hint);margin-bottom:8px;line-height:1.4}.card-supplier{font-size:13px;margin-bottom:8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.supplier-handle{color:var(--tg-link);font-size:12px}.card-meta{display:flex;gap:12px;font-size:12px;color:var(--tg-hint);margin-bottom:8px}.card-actions{display:flex;gap:8px;margin-top:8px}.card-toggle-hint{text-align:center;font-size:11px;color:var(--tg-hint);margin-top:6px}.fav-btn{background:none;border:none;cursor:pointer;font-size:18px;color:var(--tg-hint);padding:2px;transition:transform .15s}.fav-btn:active{transform:scale(1.3)}.fav-btn.fav-active{color:#ff9500}.fav-btn-md{font-size:22px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:var(--radius-sm);border:none;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s}.btn:active{opacity:.8}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--tg-btn);color:var(--tg-btn-text)}.btn-secondary{background:var(--tg-secondary-bg);color:var(--tg-text)}.btn-danger{background:#ff3b3022;color:#ff3b30}.btn-full{width:100%}.btn-sm{padding:6px 12px;font-size:12px}.listing-list{margin-top:var(--gap)}.listing-count{font-size:12px;color:var(--tg-hint);margin-bottom:8px}.state-center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 20px;text-align:center}.state-icon{font-size:40px}.state-text{font-size:15px;color:var(--tg-hint)}.state-hint{font-size:12px;color:var(--tg-hint)}.spinner{width:24px;height:24px;border:3px solid var(--tg-secondary-bg);border-top-color:var(--tg-btn);border-radius:50%;animation:spin .7s linear infinite}.spinner-small{width:16px;height:16px;border:2px solid var(--tg-secondary-bg);border-top-color:var(--tg-btn);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.filter-bar{margin-bottom:var(--gap)}.filter-search-row{display:flex;gap:8px;align-items:center}.filter-main{flex:1}.filter-input{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid rgba(128,128,128,.2);background:var(--tg-secondary-bg);color:var(--tg-text);font-size:14px;outline:none}.filter-input:focus{border-color:var(--tg-btn)}.filter-select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.filter-toggle-btn{width:42px;height:42px;border-radius:var(--radius-sm);border:1px solid rgba(128,128,128,.2);background:var(--tg-secondary-bg);font-size:18px;cursor:pointer;position:relative;display:flex;align-items:center;justify-content:center}.filter-toggle-btn.active{border-color:var(--tg-btn)}.filter-dot{position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background:#ff3b30}.filter-reset-btn{width:42px;height:42px;border-radius:var(--radius-sm);border:none;background:#ff3b3022;color:#ff3b30;font-size:16px;cursor:pointer}.filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.filter-field{display:flex;flex-direction:column;gap:4px}.filter-label{font-size:11px;color:var(--tg-hint)}.filter-save-btn{grid-column:1 / -1;margin-top:4px}.post-form{display:flex;flex-direction:column;gap:16px}.form-field{display:flex;flex-direction:column;gap:4px}.form-label{font-size:13px;font-weight:600}.req{color:#ff3b30}.optional{color:var(--tg-hint);font-weight:400}.form-input{padding:10px 12px;border-radius:var(--radius-sm);border:1px solid rgba(128,128,128,.2);background:var(--tg-secondary-bg);color:var(--tg-text);font-size:14px;outline:none;width:100%}.form-input:focus{border-color:var(--tg-btn)}.form-textarea{resize:vertical;min-height:60px;font-family:inherit}.form-row{display:flex;gap:8px}.form-input-num{flex:1}.form-select{padding:10px 8px;border-radius:var(--radius-sm);border:1px solid rgba(128,128,128,.2);background:var(--tg-secondary-bg);color:var(--tg-text);font-size:13px;outline:none}.form-select-sm{width:80px}.form-error{padding:8px 12px;background:#ff3b3015;color:#ff3b30;border-radius:var(--radius-sm);font-size:13px}.grade-pills{display:flex;flex-wrap:wrap;gap:6px}.grade-pill{padding:6px 14px;border-radius:20px;border:1px solid rgba(128,128,128,.25);background:var(--tg-secondary-bg);color:var(--tg-text);font-size:13px;cursor:pointer;transition:all .15s}.grade-pill.active{background:var(--tg-btn);color:var(--tg-btn-text);border-color:var(--tg-btn)}.image-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.image-thumb{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;background:var(--tg-secondary-bg)}.image-thumb img{width:100%;height:100%;object-fit:cover}.image-remove{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:#0009;color:#fff;border:none;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center}.image-add{aspect-ratio:1;border-radius:var(--radius-sm);border:2px dashed rgba(128,128,128,.3);background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;color:var(--tg-hint)}.image-add:disabled{opacity:.5}.image-add-icon{font-size:24px}.image-add-text{font-size:10px}.image-error{font-size:12px;color:#ff3b30;margin-top:6px}.image-hint{font-size:11px;color:var(--tg-hint);margin-top:6px}.profile-links{display:flex;gap:8px;margin-bottom:var(--gap);overflow-x:auto}.profile-link{flex-shrink:0;padding:10px 16px;border-radius:var(--radius);background:var(--card-bg);border:none;font-size:13px;font-weight:500;color:var(--tg-text);cursor:pointer;transition:transform .1s}.profile-link:active{transform:scale(.96)}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:var(--gap)}.stat-card{background:var(--card-bg);border-radius:var(--radius);padding:14px;text-align:center}.stat-card-sm{padding:10px}.stat-card-value{display:block;font-size:22px;font-weight:700}.stat-card-sm .stat-card-value{font-size:16px}.stat-card-label{display:block;font-size:11px;color:var(--tg-hint);margin-top:2px}.stats-section{margin-bottom:var(--gap)}.stats-section-title{font-size:15px;font-weight:600;margin-bottom:8px}.stats-row{display:flex;gap:16px;font-size:14px}.stats-top-list{display:flex;flex-direction:column;gap:6px}.stats-top-item{display:flex;align-items:center;gap:10px;padding:10px;background:var(--card-bg);border-radius:var(--radius-sm)}.stats-top-rank{font-size:14px;font-weight:700;color:var(--tg-hint);width:28px}.stats-top-info{flex:1}.stats-top-name{display:block;font-size:14px;font-weight:500}.stats-top-meta{display:block;font-size:11px;color:var(--tg-hint)}.tab-bar{display:flex;gap:4px;margin-bottom:var(--gap);background:var(--tg-secondary-bg);border-radius:var(--radius-sm);padding:3px}.tab-btn{flex:1;padding:8px;border:none;border-radius:6px;background:none;font-size:13px;font-weight:500;color:var(--tg-hint);cursor:pointer;transition:all .15s;position:relative}.tab-btn.active{background:var(--tg-bg);color:var(--tg-text);box-shadow:0 1px 3px #0000001a}.tab-badge{background:#ff3b30;color:#fff;font-size:10px;padding:1px 6px;border-radius:10px;margin-left:4px}.notif-list{display:flex;flex-direction:column;gap:6px}.notif-item{padding:12px;border-radius:var(--radius-sm);background:var(--card-bg);cursor:pointer}.notif-item.unread{border-left:3px solid var(--tg-btn)}.notif-item.read{opacity:.6}.notif-title{font-size:14px;font-weight:600}.notif-body{font-size:13px;color:var(--tg-hint);margin-top:2px}.notif-time{font-size:11px;color:var(--tg-hint);margin-top:4px}.search-list{display:flex;flex-direction:column;gap:6px}.search-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--card-bg);border-radius:var(--radius-sm)}.search-info{display:flex;flex-wrap:wrap;gap:6px}.search-tag{font-size:12px;padding:3px 8px;background:var(--tg-secondary-bg);border-radius:4px}.price-search{margin-bottom:var(--gap)}.price-results{margin-top:var(--gap)}.price-summary{margin-bottom:var(--gap)}.price-entry{display:flex;align-items:center;gap:10px;padding:10px;border-bottom:1px solid rgba(128,128,128,.1)}.price-entry-date{font-size:12px;color:var(--tg-hint);width:80px;flex-shrink:0}.price-entry-info{flex:1}.price-entry-value{font-size:14px;font-weight:600;display:block}.price-entry-meta{font-size:11px;color:var(--tg-hint)}.price-up{color:#ff3b30}.price-down{color:#34c759}.price-diff{font-size:12px;font-weight:600;white-space:nowrap}.rules-accepted-badge{padding:8px 12px;background:#34c75915;color:#34c759;border-radius:var(--radius-sm);font-size:13px;font-weight:600;text-align:center;margin-bottom:var(--gap)}.rules-content{display:flex;flex-direction:column;gap:16px}.rules-section{background:var(--card-bg);border-radius:var(--radius);padding:var(--gap)}.rules-section-title{font-size:15px;font-weight:600;margin-bottom:8px}.rules-list{list-style:none;display:flex;flex-direction:column;gap:6px}.rules-item{font-size:13px;line-height:1.5;padding-left:16px;position:relative;color:var(--tg-text)}.rules-item:before{content:"•";position:absolute;left:0;color:var(--tg-hint)}.rules-accept-bar{position:sticky;bottom:72px;background:var(--tg-bg);padding:var(--gap);margin:var(--gap) calc(-1 * var(--gap)) 0;border-top:1px solid var(--tg-secondary-bg)}.rules-accept-text{font-size:12px;color:var(--tg-hint);text-align:center;margin-bottom:8px}.report-container{position:relative}.report-btn{background:none;border:none;color:var(--tg-hint);font-size:16px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:color .15s}.report-btn:hover{color:#ff3b30}.report-menu{position:absolute;bottom:100%;right:0;background:var(--tg-bg);border:1px solid rgba(128,128,128,.2);border-radius:var(--radius);padding:8px;min-width:220px;box-shadow:0 4px 20px #00000026;z-index:50;display:flex;flex-direction:column;gap:2px}.report-title{font-size:13px;font-weight:600;padding:6px 8px;color:var(--tg-text)}.report-option{background:none;border:none;text-align:left;padding:8px;font-size:13px;color:var(--tg-text);border-radius:6px;cursor:pointer;transition:background .1s}.report-option:hover{background:var(--tg-secondary-bg)}.report-option:disabled{opacity:.5}.report-cancel{background:none;border:none;padding:8px;font-size:13px;color:var(--tg-hint);cursor:pointer;text-align:center;margin-top:4px;border-top:1px solid rgba(128,128,128,.1)}.report-error{font-size:12px;color:#ff3b30;padding:4px 8px}.report-sent{font-size:12px;color:#34c759;padding:4px 8px}
