*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #faf9f7;--bg-card: #ffffff;--text: #1a1a1a;--text-secondary: #6b6b6b;--text-tertiary: #999;--border: #e8e6e1;--border-light: #f0eeea;--font-display: "Playfair Display", Georgia, serif;--font-body: "Inter", -apple-system, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", monospace;--tier-s: #ff2d55;--tier-a: #ff9500;--tier-b: #e5c100;--tier-c: #34c759;--tier-d: #5ac8fa;--tier-f: #8e8e93;--radius: 6px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-drag: 0 12px 32px rgba(0, 0, 0, .15)}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);background:var(--bg);color:var(--text);min-height:100dvh;line-height:1.5}.header{padding:2rem 1.5rem 1.5rem;text-align:center;border-bottom:1px solid var(--border);background:var(--bg-card)}.header h1{font-family:var(--font-display);font-weight:900;font-size:1.75rem;letter-spacing:.02em;text-transform:uppercase}.header p{font-size:.8rem;color:var(--text-tertiary);letter-spacing:.15em;text-transform:uppercase;margin-top:.25rem;font-weight:500}.header-actions{display:flex;justify-content:center;gap:.75rem;margin-top:.75rem}.btn-ghost{background:none;border:none;font-family:var(--font-mono);font-size:.65rem;color:var(--text-tertiary);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:.25rem .5rem;border-radius:var(--radius);transition:color .12s,background .12s}.btn-ghost:hover{color:var(--text);background:var(--border-light)}.tier-list{max-width:720px;margin:0 auto;padding:1rem 1rem 6rem}.tier{margin-bottom:.25rem}.tier-header{display:flex;align-items:baseline;gap:.75rem;padding:1.25rem 0 .5rem;border-bottom:1px solid var(--border);margin-bottom:.5rem}.tier-label{font-family:var(--font-display);font-weight:900;font-size:1.5rem;line-height:1;letter-spacing:.05em;min-width:2rem;text-align:center}.tier-label[data-tier=S]{color:var(--tier-s);text-shadow:0 0 16px rgba(255,45,85,.35)}.tier-label[data-tier=A]{color:var(--tier-a)}.tier-label[data-tier=B]{color:var(--tier-b)}.tier-label[data-tier=C]{color:var(--tier-c)}.tier-label[data-tier=D]{color:var(--tier-d)}.tier-label[data-tier=F]{color:var(--tier-f)}.tier-subtitle{font-size:.7rem;color:var(--text-tertiary);letter-spacing:.12em;text-transform:uppercase;font-weight:500}.tier-drop-zone{min-height:3rem;padding:.25rem 0;border-radius:var(--radius);transition:background-color .15s ease}.tier-drop-zone.is-over{background:#00000008}.tier-empty{display:flex;align-items:center;justify-content:center;min-height:3rem;color:var(--text-tertiary);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;border:1px dashed var(--border-light);border-radius:var(--radius);margin:.25rem 0}.restaurant-card{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem .5rem;border-radius:var(--radius);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:box-shadow .15s ease,transform .15s ease;position:relative}.restaurant-card:not(:last-child):after{content:"";position:absolute;bottom:0;left:.5rem;right:.5rem;border-bottom:1px solid var(--border-light)}.restaurant-card:active{cursor:grabbing}.restaurant-card.is-dragging{opacity:.4}.restaurant-card-overlay{background:var(--bg-card);box-shadow:var(--shadow-drag);border-radius:var(--radius);transform:scale(1.02);cursor:grabbing;padding:.75rem .5rem;display:flex;align-items:flex-start;gap:.75rem}.restaurant-grip{color:var(--text-tertiary);font-size:.75rem;padding-top:.15rem;flex-shrink:0;opacity:.4}.restaurant-info{flex:1;min-width:0}.restaurant-name{font-family:var(--font-display);font-weight:700;font-size:1.05rem;line-height:1.3}.restaurant-meta{display:flex;align-items:center;gap:.5rem;margin-top:.15rem}.restaurant-cuisine{font-size:.75rem;color:var(--text-secondary);font-weight:400;letter-spacing:.02em}.restaurant-note{font-size:.7rem;color:var(--text-tertiary);font-weight:300;font-style:italic;margin-top:.1rem}.restaurant-actions{flex-shrink:0;display:flex;gap:.25rem;opacity:0;transition:opacity .15s ease}.restaurant-card:hover .restaurant-actions,.restaurant-card:focus-within .restaurant-actions{opacity:1}@media(hover:none){.restaurant-actions{opacity:1}}.btn-icon{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border:none;background:transparent;color:var(--text-tertiary);border-radius:var(--radius);cursor:pointer;font-size:.8rem;transition:background .12s,color .12s}.btn-icon:hover{background:var(--border-light);color:var(--text)}.btn-icon.danger:hover{background:#fff0f0;color:var(--tier-s)}.fab{position:fixed;bottom:1.5rem;right:1.5rem;width:3.25rem;height:3.25rem;border-radius:50%;border:none;background:var(--text);color:var(--bg);font-size:1.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-md);transition:transform .15s ease,box-shadow .15s ease;z-index:100;line-height:1}.fab:hover{transform:scale(1.08);box-shadow:var(--shadow-drag)}.fab:active{transform:scale(.96)}.modal-overlay{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;z-index:200;animation:fadeIn .15s ease}@media(min-width:640px){.modal-overlay{align-items:center}}.modal{background:var(--bg-card);width:100%;max-width:420px;border-radius:1rem 1rem 0 0;padding:1.5rem;animation:slideUp .2s ease}@media(min-width:640px){.modal{border-radius:1rem}}.modal h2{font-family:var(--font-display);font-weight:700;font-size:1.2rem;margin-bottom:1.25rem}.form-group{margin-bottom:1rem}.form-label{display:block;font-size:.7rem;color:var(--text-tertiary);letter-spacing:.1em;text-transform:uppercase;font-weight:500;margin-bottom:.35rem}.form-input{width:100%;padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-body);font-size:.9rem;color:var(--text);background:var(--bg);transition:border-color .12s;outline:none}.form-input:focus{border-color:var(--text)}.form-input::placeholder{color:var(--text-tertiary)}.tier-selector{display:flex;gap:.5rem}.tier-selector-btn{flex:1;padding:.5rem;border:1px solid var(--border);border-radius:var(--radius);background:transparent;cursor:pointer;font-family:var(--font-display);font-weight:900;font-size:1rem;transition:all .12s;color:var(--text-tertiary)}.tier-selector-btn:hover{border-color:var(--text-secondary)}.tier-selector-btn.selected{color:#fff}.tier-selector-btn.selected[data-tier=S]{background:var(--tier-s);border-color:var(--tier-s)}.tier-selector-btn.selected[data-tier=A]{background:var(--tier-a);border-color:var(--tier-a)}.tier-selector-btn.selected[data-tier=B]{background:var(--tier-b);border-color:var(--tier-b)}.tier-selector-btn.selected[data-tier=C]{background:var(--tier-c);border-color:var(--tier-c)}.tier-selector-btn.selected[data-tier=D]{background:var(--tier-d);border-color:var(--tier-d)}.tier-selector-btn.selected[data-tier=F]{background:var(--tier-f);border-color:var(--tier-f)}.form-actions{display:flex;gap:.75rem;margin-top:1.5rem}.btn{flex:1;padding:.65rem 1rem;border-radius:var(--radius);font-family:var(--font-body);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .12s;border:1px solid var(--border)}.btn-primary{background:var(--text);color:var(--bg);border-color:var(--text)}.btn-primary:hover{opacity:.9}.btn-secondary{background:transparent;color:var(--text)}.btn-secondary:hover{background:var(--border-light)}.receipt-footer{max-width:720px;margin:0 auto;padding:1.5rem 1rem 2rem}.receipt-divider{border:none;border-top:2px dotted var(--border);margin:0 0 1rem}.receipt-total{font-family:var(--font-mono);font-size:.75rem;color:var(--text-tertiary);letter-spacing:.05em;text-align:center}.receipt-total strong{color:var(--text);font-weight:500}.receipt-breakdown{display:flex;justify-content:center;gap:1rem;margin-top:.5rem;flex-wrap:wrap}.receipt-tier-count{font-family:var(--font-mono);font-size:.7rem;color:var(--text-tertiary)}.receipt-tier-count span{font-weight:500}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(1rem);opacity:0}to{transform:translateY(0);opacity:1}}.confirm-body{font-size:.9rem;color:var(--text-secondary);margin-bottom:1.25rem;line-height:1.5}.btn-danger{background:var(--tier-s);color:#fff;border-color:var(--tier-s)}.btn-danger:hover{opacity:.9}.header-auth{display:flex;justify-content:flex-end;margin-bottom:.5rem}.auth-user{display:flex;align-items:center;gap:.5rem}.auth-avatar{width:1.5rem;height:1.5rem;border-radius:50%;object-fit:cover}.auth-name{font-family:var(--font-mono);font-size:.65rem;color:var(--text-secondary);letter-spacing:.05em}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;gap:.75rem}.loading-dot{width:6px;height:6px;background:var(--text-tertiary);border-radius:50%;animation:pulse 1s ease-in-out infinite}.loading-text{font-family:var(--font-mono);font-size:.7rem;color:var(--text-tertiary);letter-spacing:.1em;text-transform:uppercase}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}.save-indicator{font-family:var(--font-mono);font-size:.6rem;color:var(--text-tertiary);letter-spacing:.1em;text-transform:uppercase;padding:.25rem .5rem;animation:pulse 1s ease-in-out infinite}.landing{max-width:480px;margin:0 auto;padding:3rem 1.5rem;text-align:center}.landing-hero{margin-bottom:3rem}.landing-tagline{font-family:var(--font-display);font-size:1.2rem;font-weight:400;color:var(--text-secondary);line-height:1.6;margin-bottom:2rem}.landing-cta{display:inline-flex;flex:none;padding:.75rem 2rem}.landing-features{display:flex;flex-direction:column;gap:1.25rem}.landing-feature{display:flex;align-items:center;gap:1rem;text-align:left;font-size:.85rem;color:var(--text-secondary)}.feature-icon{font-family:var(--font-display);font-weight:900;font-size:1rem;min-width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius);color:var(--tier-s);flex-shrink:0}.lists-section{margin-bottom:2rem}.lists-section-title{font-family:var(--font-display);font-weight:700;font-size:1rem;padding:1rem 0 .5rem;border-bottom:1px solid var(--border);margin-bottom:.5rem}.list-card{display:block;width:100%;text-align:left;padding:.75rem .5rem;background:none;border:none;cursor:pointer;border-radius:var(--radius);transition:background .12s;position:relative}.list-card:not(:last-child):after{content:"";position:absolute;bottom:0;left:.5rem;right:.5rem;border-bottom:1px solid var(--border-light)}.list-card:hover{background:var(--border-light)}.list-card-name{font-family:var(--font-display);font-weight:700;font-size:1.05rem}.list-card-meta{font-size:.7rem;color:var(--text-tertiary);margin-top:.15rem;font-family:var(--font-mono);letter-spacing:.02em}.empty-state{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem 1rem;color:var(--text-tertiary);font-size:.85rem}.empty-state .btn{flex:none}.restaurant-photo{width:3rem;height:3rem;object-fit:cover;border-radius:var(--radius);flex-shrink:0}.restaurant-location{font-size:.7rem;color:var(--text-tertiary)}.photo-upload{margin-top:.25rem}.photo-upload-btn{display:flex;align-items:center;justify-content:center;padding:1.5rem;border:1px dashed var(--border);border-radius:var(--radius);cursor:pointer;color:var(--text-tertiary);font-size:.8rem;transition:border-color .12s,color .12s}.photo-upload-btn:hover{border-color:var(--text-secondary);color:var(--text-secondary)}.photo-preview{position:relative;display:inline-block}.photo-preview img{width:100%;max-height:200px;object-fit:cover;border-radius:var(--radius)}.photo-remove{position:absolute;top:.25rem;right:.25rem;background:#0009!important;color:#fff!important}.share-link-box{display:flex;gap:.5rem;align-items:stretch;margin-bottom:1rem}.share-code{flex:1;font-family:var(--font-mono);font-size:.65rem;padding:.5rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);word-break:break-all;color:var(--text);display:flex;align-items:center}.share-copy-btn{flex:none;white-space:nowrap}.share-code-display{text-align:center;margin-top:.5rem}.share-code-value{font-family:var(--font-mono);font-size:1.25rem;font-weight:500;letter-spacing:.15em;color:var(--text)}.compare-legend{display:flex;justify-content:center;gap:.75rem;padding:1rem 0;border-bottom:1px solid var(--border);margin-bottom:.5rem}.compare-badge{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;padding:.2rem .5rem;border-radius:2rem;border:1px solid var(--border)}.compare-badge.same{background:#34c7591a;border-color:var(--tier-c);color:var(--tier-c)}.compare-badge.close{background:#e5c1001a;border-color:var(--tier-b);color:#b89e00}.compare-badge.disagree{background:#ff2d5514;border-color:var(--tier-s);color:var(--tier-s)}.compare-badge.unique{background:var(--border-light);color:var(--text-tertiary)}.compare-row{display:flex;align-items:center;gap:.75rem;padding:.75rem .5rem;position:relative}.compare-row:not(:last-child):after{content:"";position:absolute;bottom:0;left:.5rem;right:.5rem;border-bottom:1px solid var(--border-light)}.compare-name{flex:1;min-width:0}.compare-tiers{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.compare-tier{min-width:1.5rem;text-align:center}.compare-tier-label{font-family:var(--font-display);font-weight:900;font-size:1.25rem}.compare-tier-empty{color:var(--text-tertiary);font-size:.85rem}.compare-vs{min-width:5rem;text-align:center}.btn-ghost:disabled{opacity:.5;cursor:not-allowed}
