:root{--bg: #f5f4f1;--surface: #ffffff;--border: #e2e0da;--text: #23211d;--muted: #8a867d;--accent: #1f7a4d;--accent-dark: #17603c;--danger: #c0392b;--hot: #d35400;--radius: 12px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,Noto Sans TC,Helvetica Neue,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}.app{padding-bottom:calc(60px + env(safe-area-inset-bottom))}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.brand{font-weight:700}.page{padding:16px;max-width:640px;margin:0 auto}.muted{color:var(--muted);font-size:13px}.hint{color:var(--muted);font-size:13px;background:#fff;border:1px dashed var(--border);border-radius:var(--radius);padding:10px 12px}.empty{color:var(--muted);text-align:center;padding:32px 0}.error{color:var(--danger);background:#fdeceb;border-radius:var(--radius);padding:10px 12px}.notice{color:var(--accent-dark);background:#e7f4ed;border-radius:var(--radius);padding:10px 12px}.warn{color:var(--hot);background:#fdf1e5;border-radius:var(--radius);padding:10px 12px}.back{display:inline-block;margin-bottom:12px;color:var(--muted);text-decoration:none}.tabs{display:flex;gap:8px;margin-bottom:16px}.tab{flex:1;padding:8px;border:1px solid var(--border);background:var(--surface);border-radius:999px;font-size:14px;color:var(--muted);cursor:pointer}.tab.is-active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.card-list{display:flex;flex-direction:column;gap:12px}.card{display:flex;gap:12px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:inherit}.card-thumb{flex:0 0 84px;height:84px;border-radius:8px;overflow:hidden;background:#eeece7;display:flex;align-items:center;justify-content:center}.card-thumb img{width:100%;height:100%;object-fit:cover}.thumb-empty{font-size:28px;opacity:.4}.card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.card-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-price{display:flex;align-items:baseline;gap:6px}.card-price strong{font-size:18px;color:var(--accent-dark)}.card-price .label,.bid-count{font-size:12px;color:var(--muted)}.card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.countdown{font-variant-numeric:tabular-nums;font-weight:600;font-size:14px}.countdown.big{font-size:20px}.countdown.is-hot{color:var(--hot)}.countdown.is-ended{color:var(--muted);font-weight:400}.countdown-tag{margin-left:6px;font-size:11px;font-weight:600;padding:1px 6px;border-radius:999px;background:var(--hot);color:#fff}.badge{font-size:11px;padding:2px 8px;border-radius:999px;background:#eeece7;color:var(--muted)}.badge-active{background:#e7f4ed;color:var(--accent-dark)}.badge-closed{background:#e8eaed;color:#57606a}.badge-cancelled{background:#fdeceb;color:var(--danger)}.badge-default{background:var(--accent);color:#fff;margin-left:6px}.you-tag{margin-left:6px;font-size:11px;padding:1px 6px;border-radius:999px;background:var(--accent);color:#fff}.detail h1{font-size:20px;margin:8px 0}.detail h2{font-size:16px;margin:24px 0 8px}.gallery{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.gallery img{height:200px;border-radius:var(--radius);object-fit:cover}.status-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.price-box{display:flex;justify-content:space-between;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:12px}.price-box .label{font-size:12px;color:var(--muted)}.price-box .right{text-align:right}.price{font-size:26px;font-weight:700;color:var(--accent-dark);font-variant-numeric:tabular-nums}.price.small{font-size:16px}.description{white-space:pre-wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-top:16px}.bid-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin:12px 0}.bid-box .label{font-size:13px;color:var(--muted);margin-bottom:10px}.quick-row{display:flex;gap:8px;margin-bottom:10px}.quick{flex:1;padding:10px 4px;border:1px solid var(--accent);background:#fff;color:var(--accent-dark);border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}.quick:disabled{opacity:.4;cursor:not-allowed}.custom-row{display:flex;gap:8px}.custom-row input{flex:1}.bid-list{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.bid-list li{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border)}.bid-list li:last-child{border-bottom:none}.bid-list li.is-top{background:#f3faf6}.bid-list .who{flex:1}.bid-list .amt{font-weight:600;font-variant-numeric:tabular-nums}.bid-list .when{flex:0 0 68px;text-align:right}.settlement{background:#f3faf6;border:1px solid #cbe6d8;border-radius:var(--radius);padding:14px;margin:16px 0}.settlement h2{margin-top:0}.pay-to{background:#fff;border:1px solid var(--border);border-radius:8px;padding:12px;margin:10px 0}.pay-to .label{font-size:12px;color:var(--muted)}.pay-label{font-weight:600}.pay-account{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:16px;letter-spacing:.5px;-webkit-user-select:all;user-select:all}.form{display:flex;flex-direction:column;gap:14px}.form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.form .row{display:flex;gap:12px}.form .row>label{flex:1}.form .checkbox{flex-direction:row;align-items:center;gap:8px;color:var(--text);font-size:14px}.inline-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin:12px 0}input,textarea,select{width:100%;padding:10px 12px;font-size:16px;font-family:inherit;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text)}.form .checkbox input{width:auto}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px}button{font-family:inherit}.primary{padding:12px 18px;border:none;border-radius:8px;background:var(--accent);color:#fff;font-size:15px;font-weight:600;cursor:pointer}.primary:disabled{opacity:.5;cursor:not-allowed}.ghost{padding:6px 12px;border:1px solid var(--border);background:#fff;border-radius:8px;font-size:13px;cursor:pointer}.ghost.danger,.danger{color:var(--danger)}.thumbs{display:flex;gap:8px;flex-wrap:wrap}.thumb{position:relative}.thumb img{width:72px;height:72px;object-fit:cover;border-radius:8px}.thumb button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:999px;border:none;background:var(--danger);color:#fff;cursor:pointer;line-height:1}.admin-actions{display:flex;gap:8px;margin-top:24px;padding-top:16px;border-top:1px solid var(--border)}.admin-actions button{flex:1;padding:10px;border:1px solid var(--border);background:#fff;border-radius:8px;cursor:pointer}.profile-head{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:20px}.profile-head .avatar{width:48px;height:48px;border-radius:999px;object-fit:cover}.profile-head .name{font-weight:600}.profile-head>div:nth-child(2){flex:1}.pm-list,.my-items{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:8px}.pm-list li{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.pm-list li>div:first-child{flex:1;min-width:0}.pm-actions{display:flex;gap:6px}.my-items a{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;text-decoration:none;color:inherit}.my-items .t{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-items .p{font-weight:600}.signin{max-width:360px;margin:15vh auto;text-align:center}.signin .logo{font-size:56px}.signin h1{margin:8px 0 16px}.signin .form{margin-top:20px;text-align:left}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:10;display:flex;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.tabbar a{flex:1;padding:14px 0;text-align:center;text-decoration:none;color:var(--muted);font-size:13px;font-weight:600}.tabbar a.active{color:var(--accent)}
