*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--primary:#2563EB;--primary-light:#3B82F6;--primary-dark:#1D4ED8;--accent:#F59E0B;--bg:#F5F7FA;--surface:#ffffff;--text:#111827;--text-secondary:#6B7280;--border:#E5E7EB;--error:#EF4444;--success:#22C55E;--radius:14px}body,html{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}a{color:inherit;text-decoration:none}.container{max-width:480px;margin:0 auto;padding:0 20px}.brand{display:inline-flex;align-items:center}.brand-logo{height:148px;width:auto;display:block}nav{background:var(--surface);border-bottom:1px solid var(--border);padding:6px 20px;text-align:center}main{min-height:calc(100vh - 60px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px 24px;border-radius:var(--radius);font-size:16px;font-weight:700;cursor:pointer;border:none;transition:opacity .15s,transform .1s}.btn:active{transform:scale(.98)}.btn:hover{opacity:.92}.btn-primary{background:var(--primary);color:#fff}.btn-outline{background:transparent;color:var(--primary);border:2px solid var(--primary)}.btn-secondary{background:var(--surface);color:var(--text);border:1.5px solid #b9c0cc}.btn-tertiary{background:var(--bg);color:var(--text-secondary);border:1.5px dashed #b9c0cc;font-weight:600}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:10px 16px;font-size:14px;width:auto}.hero{padding:56px 20px 0;text-align:center;background:linear-gradient(160deg,#eaf1ff 0,var(--bg) 60%)}.hero h1{font-size:clamp(30px,8vw,44px);font-weight:800;line-height:1.15;letter-spacing:-1px;margin-bottom:14px}.hero h1 span{color:var(--primary)}.hero p{font-size:16px;color:var(--text-secondary);max-width:380px;margin:0 auto 32px}.hero p.hero-tagline{font-size:18px;font-weight:700;font-style:italic;color:var(--primary);max-width:none;margin:0 0 14px}.upload-card{background:var(--surface);border:1.5px dashed var(--border);border-radius:20px;padding:32px 20px 10px;text-align:center;max-width:420px;margin:0 auto 8px}.upload-hint{font-size:13px;color:var(--text-secondary);margin-top:12px}.upload-actions{display:flex;flex-direction:column;gap:10px}.link-btn{display:block;margin:4px auto 0;background:none;border:none;color:var(--primary);font-size:12px;font-weight:600;cursor:pointer;text-decoration:underline}.link-btn:disabled{opacity:.5;cursor:not-allowed}.how-it-works{padding:24px 20px 64px}.how-it-works h2{text-align:center;font-size:20px;font-weight:800;margin-bottom:24px}.step-list{display:flex;flex-direction:column;gap:16px;max-width:420px;margin:0 auto}.step{display:flex;align-items:flex-start;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.step-num{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}.step-text h3{font-size:15px;font-weight:700;margin-bottom:2px}.step-text p{font-size:13px;color:var(--text-secondary)}.why-section{padding:8px 20px 56px;background:var(--bg)}.why-section h2{text-align:center;font-size:20px;font-weight:800;margin-bottom:24px}.why-grid{display:grid;grid-gap:14px;gap:14px;max-width:420px;margin:0 auto}.why-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}.why-card h3{font-size:15px;font-weight:700;margin-bottom:4px}.why-card p{font-size:13px;color:var(--text-secondary);line-height:1.5}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--text)}.form-group input,.form-group textarea{width:100%;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);font-size:16px;color:var(--text);background:var(--surface);outline:none;transition:border-color .15s;font-family:inherit}.form-group textarea{resize:vertical}.form-group input:focus,.form-group textarea:focus{border-color:var(--primary)}.form-hint{font-size:12px;color:var(--text-secondary);margin-top:4px}.error-box{background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius);padding:12px 14px;color:var(--error);font-size:14px}.card,.error-box{margin-bottom:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:20px}.card h2{font-size:17px;font-weight:800;margin-bottom:4px}.card .sub{font-size:13px;color:var(--text-secondary);margin-bottom:16px}.item-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.item-row:last-child{border-bottom:none}.item-name{flex:1 1;font-size:15px;font-weight:600}.item-price{font-size:15px;font-weight:700;color:var(--text);white-space:nowrap}.item-group-label{font-size:11px;color:var(--text-secondary);display:block;font-weight:500}.item-remove{background:none;border:none;color:var(--error);font-size:18px;cursor:pointer;padding:4px 8px;line-height:1}.item-sign-toggle{flex-shrink:0;width:26px;height:26px;border-radius:8px;border:1.5px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:15px;font-weight:700;line-height:1;cursor:pointer}.totals-box{background:var(--bg);border-radius:var(--radius);padding:16px}.totals-row{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--text-secondary);padding:4px 0;gap:8px}.totals-row.grand{font-size:17px;font-weight:800;color:var(--text);border-top:1px solid var(--border);margin-top:8px;padding-top:10px}.tip-preset-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.tip-preset-btn{flex:1 1 auto;min-width:64px;padding:10px 12px;border-radius:var(--radius);border:1.5px solid var(--border);background:var(--surface);color:var(--text);font-size:14px;font-weight:700;cursor:pointer}.tip-preset-btn:hover{border-color:var(--primary);color:var(--primary)}.claim-item,.tip-custom-row{display:flex;gap:12px}.claim-item{align-items:center;padding:14px 16px;margin-bottom:10px;border-radius:var(--radius);border:1.5px solid var(--border);background:var(--surface);cursor:pointer;transition:border-color .15s,background .15s;text-align:left;width:100%}.claim-item.claimed-by-me{border-color:var(--primary);background:#eff6ff}.claim-item.claimed-by-others{background:var(--bg);opacity:.65}.claim-item.claimed-by-others .claim-item-name{color:var(--text-secondary)}.claim-item-info{flex:1 1;min-width:0}.claim-item-name{font-size:15px;font-weight:700;overflow-wrap:break-word}.claim-item-price{font-size:13px;color:var(--text-secondary);overflow-wrap:break-word}.claim-item-claimers{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.claimer-chip{font-size:11px;font-weight:600;background:var(--bg);color:var(--text-secondary);border-radius:99px;padding:2px 8px}.claimer-chip.me{background:var(--primary);color:#fff}.claim-checkbox{width:22px;height:22px;border-radius:7px;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px;color:#fff}.claim-item.claimed-by-me .claim-checkbox{background:var(--primary);border-color:var(--primary)}.qr-wrap{background:var(--surface);border-radius:20px;padding:24px;display:flex;flex-direction:column;align-items:center;gap:16px;border:1px solid var(--border)}.qr-code-link{font-size:14px;font-weight:700;color:var(--primary);word-break:break-all;text-align:center}.badge{display:inline-block;font-size:12px;font-weight:700;padding:4px 12px;border-radius:99px}.badge-open{background:#dcfce7;color:#15803d}.badge-locked{background:#fef3c7;color:#b45309}.badge-draft{background:#e5e7eb;color:#4b5563}.callout{background:#fffbeb;border:1px solid #fde68a;color:#92400e;border-radius:var(--radius);padding:12px 14px;font-size:13px;margin-bottom:16px}.settle-total{text-align:center;padding:24px 0}.settle-total .amount{font-size:44px;font-weight:800;color:var(--primary)}.settle-total .label{font-size:13px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-weight:700}.pay-links{display:flex;flex-direction:column;gap:10px}footer{padding:32px 20px;text-align:center;color:var(--text-secondary);font-size:13px}.footer-links{display:flex;justify-content:center;gap:20px;margin-bottom:10px}.footer-links a{color:var(--text-secondary);text-decoration:underline}.footer-links a:hover{color:var(--primary)}.content-page{padding:40px 20px 64px;max-width:640px;margin:0 auto}.content-page h1{font-size:28px;font-weight:800;margin-bottom:8px}.content-page .updated{font-size:13px;color:var(--text-secondary);margin-bottom:32px}.content-page h2{font-size:18px;font-weight:700;margin:28px 0 10px}.content-page li,.content-page p{font-size:15px;color:var(--text-secondary);line-height:1.7;margin-bottom:10px}.content-page ul{padding-left:20px}.content-page a{color:var(--primary);text-decoration:underline}.spinner{width:20px;height:20px;border-radius:50%;border:3px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .7s linear infinite}.spinner-dark{border-color:rgba(37,99,235,.2);border-top-color:var(--primary)}@keyframes spin{to{transform:rotate(1turn)}}.scanning-state{display:flex;flex-direction:column;align-items:center;gap:18px;padding:28px 0}.scanning-badge{width:84px;height:84px;animation:spin 2.2s linear infinite}.scanning-text{font-size:15px;font-weight:700;color:var(--text)}.scanning-subtext{font-size:13px;color:var(--text-secondary);margin-top:8px}.center-page{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 20px}