:root{--bg:#0f172a;--surface:#1e293b;--surface-2:#273449;--text:#f1f5f9;--text-dim:#94a3b8;--primary:#f59e0b;--primary-text:#1c1917;--join:#10b981;--bid:#f59e0b;--ended:#64748b;--danger:#f87171;--ok:#34d399;--radius:14px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);margin:0;font-family:Segoe UI,Tahoma,system-ui,-apple-system,sans-serif;line-height:1.6}.app{flex-direction:column;max-width:640px;min-height:100dvh;margin-inline:auto;display:flex}.app-header{z-index:10;padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--surface-2);background:#0f172aeb;justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.brand{flex-direction:column;display:flex}.brand-name{color:var(--primary);letter-spacing:.3px;font-size:1.15rem;font-weight:800}.brand-tagline{color:var(--text-dim);font-size:.72rem}.user-box{align-items:center;gap:8px;min-width:0;display:flex}.user-name{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;max-width:40vw;font-size:.85rem;overflow:hidden}.header-status{color:var(--text-dim)}.btn{border-radius:var(--radius);cursor:pointer;border:0;min-height:44px;padding:10px 18px;font-family:inherit;font-size:.95rem;font-weight:700;transition:filter .15s}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--primary);color:var(--primary-text)}.btn-primary:not(:disabled):active{filter:brightness(.9)}.btn-ghost{color:var(--text-dim);border:1px solid var(--surface-2);background:0 0}.link{color:var(--primary);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:6px 4px;font-family:inherit;font-size:.85rem;text-decoration:underline}.app-main{padding:16px;padding-bottom:calc(24px + env(safe-area-inset-bottom));flex:1}.list-status{text-align:center;color:var(--text-dim);padding:48px 16px}.list-status-error{color:var(--danger)}.product-groups{flex-direction:column;gap:24px;display:flex}.group-title{border-inline-start:4px solid var(--ended);border-radius:2px;margin:0 0 10px;padding-inline-start:10px;font-size:1rem}.product-group-join .group-title{border-color:var(--join)}.product-group-bid .group-title{border-color:var(--bid)}.product-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.product-card{background:var(--surface);border:1px solid var(--surface-2);border-radius:var(--radius);flex-direction:column;gap:0;padding:12px;display:flex}.product-image{object-fit:cover;background:var(--surface-2);border-radius:10px;flex-shrink:0;width:84px;height:84px}.product-image-placeholder{place-items:center;font-size:1.6rem;display:grid}.product-body{flex-direction:column;gap:4px;min-width:0;display:flex}.product-title{margin:0;font-size:1rem}.product-desc{color:var(--text-dim);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.82rem;display:-webkit-box;overflow:hidden}.status-badge{background:var(--surface-2);color:var(--text-dim);border-radius:999px;align-self:flex-start;padding:2px 10px;font-size:.72rem;font-weight:700}.status-open_for_joining{color:var(--join);background:#10b9812e}.status-ready_for_auction,.status-live_auction{color:var(--bid);background:#f59e0b2e}.sheet-backdrop{z-index:50;background:#0000008c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:640px;padding:10px 20px calc(24px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;animation:.22s ease-out sheet-up}@keyframes sheet-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.sheet-handle{background:var(--surface-2);border-radius:999px;width:44px;height:4px;margin:4px auto 12px}.sheet-title{text-align:center;margin:0 0 14px;font-size:1.1rem}.auth-form{flex-direction:column;gap:12px;display:flex}.field{color:var(--text-dim);flex-direction:column;gap:5px;font-size:.85rem;display:flex}.field input{background:var(--bg);border:1px solid var(--surface-2);color:var(--text);border-radius:10px;min-height:44px;padding:12px;font-family:inherit;font-size:1rem}.field input:focus{outline:2px solid var(--primary);outline-offset:1px;border-color:#0000}.form-error{color:var(--danger);margin:0;font-size:.85rem}.form-notice{color:var(--ok);margin:0;font-size:.85rem}.auth-links{flex-direction:column;align-items:center;margin-top:12px;display:flex}.product-row{gap:12px;display:flex}.product-prices{color:var(--text);margin:2px 0 0;font-size:.8rem}.coverage{align-items:center;gap:10px;margin-top:10px;display:flex}.coverage-track{background:var(--surface-2);border-radius:999px;flex:1;height:8px;overflow:hidden}.coverage-fill{background:linear-gradient(90deg, var(--join), var(--primary));border-radius:999px;height:100%;transition:width .4s}.coverage-label{color:var(--text-dim);white-space:nowrap;font-size:.75rem}.join-flow{flex-direction:column;gap:8px;margin-top:10px;display:flex}.btn-join{text-align:center;background:var(--join);color:#06281c;border-radius:var(--radius);cursor:pointer;border:0;width:100%;min-height:44px;margin-top:10px;padding:12px 18px;font-family:inherit;font-size:.95rem;font-weight:700;text-decoration:none;display:block}.btn-join:disabled{opacity:.6;cursor:default}.join-status{color:var(--text-dim);margin:8px 0 0;font-size:.85rem}.join-status-ok{color:var(--ok);font-weight:700}.join-hint{color:var(--text-dim);margin:0;font-size:.75rem}.live-auction{border-top:1px solid var(--surface-2);margin-top:12px;padding-top:12px}.live-price-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.live-price{flex-direction:column;gap:2px;min-width:0;display:flex}.live-price-label{color:var(--text-dim);font-size:.72rem}.live-price-value{color:var(--primary);font-size:1.5rem;line-height:1.1}.live-bidder{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.live-timer{background:var(--surface-2);font-variant-numeric:tabular-nums;border-radius:12px;align-items:baseline;gap:4px;padding:8px 14px;display:flex}.live-timer.is-urgent{color:var(--danger);background:#f871712e;animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.55}}.live-timer-value{font-size:1.5rem;font-weight:800;line-height:1}.live-timer-unit,.live-timer-idle{color:var(--text-dim);font-size:.72rem}.live-warning{color:var(--danger);margin:8px 0 0;font-size:.85rem;font-weight:700}.btn-bid{background:var(--primary);width:100%;color:var(--primary-text);border-radius:var(--radius);cursor:pointer;border:0;min-height:52px;margin-top:10px;padding:14px 18px;font-family:inherit;font-size:1.05rem;font-weight:800;display:block}.btn-bid:disabled{opacity:.55;cursor:default}.winner-box{border-radius:var(--radius);border:1px solid var(--primary);background:#f59e0b1f;margin-top:12px;padding:12px 14px}.winner-box-paid{border-color:var(--join);background:#10b9811f}.winner-title{margin:0 0 6px;font-size:.98rem;font-weight:800}.winner-line{margin:0 0 4px;font-size:.9rem}.winner-deadline{color:var(--text-dim);font-variant-numeric:tabular-nums;margin:0 0 8px;font-size:.85rem}.winner-deadline.is-urgent{color:var(--danger);font-weight:700}.final-price{margin:10px 0 0;font-size:.9rem}.win-invoice{border-top:1px solid var(--surface-2);margin-top:16px;padding-top:12px}.action-required{border-color:var(--danger)}.admin-steps{color:var(--text-dim);flex-direction:column;gap:4px;margin:0;padding-inline-start:20px;font-size:.82rem;display:flex}.alert-banner{border:1px solid var(--danger);border-radius:var(--radius);background:#f871711f;margin-bottom:16px;padding:12px 14px}.alert-banner strong{color:var(--danger);margin-bottom:4px;display:block}.alert-banner p{color:var(--text-dim);margin:0 0 6px;font-size:.82rem}.alert-list{margin:0;padding-inline-start:18px;font-size:.85rem}.needs-action-badge{color:var(--danger);background:#f8717133;border-radius:999px;margin-inline-start:6px;padding:1px 8px;font-size:.7rem;font-weight:700;display:inline-block}.update-bar{border-radius:var(--radius);background:var(--surface);border:1px solid var(--primary);justify-content:space-between;align-items:center;gap:12px;margin:8px 16px 0;padding:10px 14px;font-size:.85rem;display:flex}.btn-icon{min-width:44px;padding-inline:12px;font-size:1rem}.shipping-box{border:1px solid var(--surface-2);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:8px;margin-top:12px;padding:12px 14px;display:flex}.shipping-summary{background:var(--surface-2);border-radius:10px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.shipping-line{margin:0;font-size:.85rem;line-height:1.7}.field-row{gap:10px;display:flex}.field-row .field{flex:1;min-width:0}.admin-image-panel{border:1px solid var(--surface-2);border-radius:var(--radius);background:var(--surface);margin-top:16px;padding:12px 14px}.admin-image-row{align-items:flex-start;gap:12px;display:flex}.admin-image-thumb{object-fit:cover;background:var(--surface-2);border-radius:10px;flex-shrink:0;width:96px;height:96px}.admin-image-empty{place-items:center;font-size:1.8rem;display:grid}.admin-image-actions{flex-direction:column;gap:8px;min-width:0;display:flex}.admin-image-confirm{flex-wrap:wrap;gap:8px;display:flex}.btn-danger{background:var(--danger);color:var(--primary-text)}.admin-upload-progress{color:var(--text-dim);align-items:center;gap:8px;margin:10px 0 0;font-size:.8rem;display:flex}.admin-upload-progress progress{flex:1;height:8px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.admin-app{max-width:900px}.admin-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.admin-title{margin:0;font-size:1.05rem}.admin-subtitle{margin:18px 0 8px;font-size:.95rem}.admin-hint{color:var(--text-dim);font-size:.8rem}.admin-form{background:var(--surface);border:1px solid var(--surface-2);border-radius:var(--radius);flex-direction:column;gap:12px;margin-bottom:16px;padding:14px;display:flex}.admin-form textarea{background:var(--bg);border:1px solid var(--surface-2);color:var(--text);resize:vertical;border-radius:10px;padding:12px;font-family:inherit;font-size:1rem}.admin-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.field-check{flex-direction:row;align-items:center;gap:8px}.admin-product-list,.admin-invoice-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.admin-product-row,.admin-invoice-row{background:var(--surface);border:1px solid var(--surface-2);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.admin-product-row.is-selected{border-color:var(--primary)}.admin-product-main{text-align:start;min-width:0;color:var(--text);cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:3px;padding:0;font-family:inherit;display:flex}.admin-product-title{font-size:.95rem;font-weight:700}.admin-product-meta{color:var(--text-dim);font-size:.75rem}.admin-round-panel{border-top:2px solid var(--surface-2);margin-top:18px;padding-top:14px}.admin-stats{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:0 0 14px;display:grid}.admin-stats>div{background:var(--surface);border:1px solid var(--surface-2);border-radius:10px;padding:8px 10px}.admin-stats dt{color:var(--text-dim);font-size:.72rem}.admin-stats dd{margin:2px 0 0;font-weight:700}.admin-invoice-info{flex-direction:column;gap:2px;min-width:0;display:flex}.admin-invoice-actions{align-items:center;gap:8px;display:flex}.admin-ref-input{background:var(--bg);border:1px solid var(--surface-2);color:var(--text);border-radius:10px;width:150px;min-height:44px;padding:10px;font-family:inherit;font-size:.85rem}@media (width<=480px){.admin-grid{grid-template-columns:1fr}.admin-invoice-row{flex-direction:column;align-items:stretch}.admin-invoice-actions{justify-content:stretch}.admin-ref-input{flex:1;width:auto}}
