@import "https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&display=swap";:root{--bg:#fbf7fc;--surface:#fff;--text:#332b3d;--text-muted:#8b8296;--border:#ece4f0;--lavender:#c9b6ee;--lavender-tint:#f1eafb;--lavender-deep:#7c5fc4;--mint:#b7ebd8;--mint-tint:#e8faf2;--mint-deep:#2e8f6c;--pink:#f6c6d6;--pink-tint:#fdeef3;--pink-deep:#c15a7c;--peach-tint:#fdf1e6;--peach-deep:#b87a3d;--radius:12px;--radius-lg:16px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font-family:Nunito,system-ui,-apple-system,sans-serif}button,input,select{font:inherit;color:inherit}button{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.page-center{min-height:100vh;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.app-shell{flex-direction:column;height:100vh;display:flex}.screen{flex:1;width:100%;max-width:640px;min-height:0;margin:0 auto;padding:0 16px 24px;overflow-y:auto}.screen-header{flex-direction:column;gap:2px;padding:20px 2px 16px;display:flex}.screen-title{font-size:22px;font-weight:800}.trip-name-btn{text-align:left;border:none;border-bottom:1.5px dashed var(--border);background:0 0;width:fit-content;padding:0}.trip-name-input{width:fit-content;max-width:100%;font-size:22px;font-weight:800}.screen-subtitle{color:var(--text-muted);font-size:14px;font-weight:600}.empty-state{color:var(--text-muted);text-align:center;padding:32px 8px}.btn{border-radius:var(--radius);border:none;padding:11px 18px;font-size:14px;font-weight:800}.btn-primary{background:var(--lavender-deep);color:#fff}.btn-small{padding:8px 16px}.btn-text{color:var(--text-muted);background:0 0;padding:8px}.text-input{border-radius:var(--radius);border:1.5px solid var(--border);background:var(--surface);flex:1;padding:11px 14px}.text-input:focus,select:focus{border-color:var(--lavender-deep);outline:none}.chip-list-section{flex-direction:column;gap:6px;padding:12px 2px;display:flex}.chip-list-label{letter-spacing:.06em;color:var(--text-muted);text-transform:uppercase;font-size:11px;font-weight:800}.chip-list{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--lavender-tint);color:var(--lavender-deep);border-radius:999px;align-items:center;gap:6px;padding:7px 14px;font-size:14px;font-weight:700;display:inline-flex}.chip:nth-of-type(5n+2){background:var(--mint-tint);color:var(--mint-deep)}.chip:nth-of-type(5n+3){background:var(--pink-tint);color:var(--pink-deep)}.chip:nth-of-type(5n+4){background:var(--peach-tint);color:var(--peach-deep)}.chip:nth-of-type(5n+5){background:var(--surface);border:1.5px solid var(--border);color:var(--text-muted)}.chip-remove{color:inherit;opacity:.7;background:0 0;border:none;padding:0;font-size:15px;line-height:1}.chip-add{border:1.5px dashed var(--border);color:var(--text-muted);background:0 0}.chip-input{border:1.5px solid var(--lavender-deep);border-radius:999px;width:120px;padding:7px 14px;font-size:14px}.category-section{margin-bottom:8px}.category-header{border:none;border-bottom:1.5px solid var(--border);text-align:left;background:0 0;align-items:center;gap:10px;width:100%;padding:12px 2px;display:flex}.category-caret{color:var(--text-muted);flex-shrink:0;transition:transform .15s}.category-caret.collapsed{transform:rotate(-90deg)}.category-bar{background:var(--lavender);border-radius:3px;flex-shrink:0;width:5px;height:16px}.category-bar-1{background:var(--mint)}.category-bar-2{background:var(--pink)}.category-bar-3{background:var(--peach-deep)}.category-bar-4{background:var(--text-muted)}.category-name{letter-spacing:.06em;color:var(--text-muted);text-transform:uppercase;flex:1;font-size:13px;font-weight:800}.category-count{background:var(--surface);border:1.5px solid var(--border);color:var(--text-muted);border-radius:999px;padding:2px 9px;font-size:12px;font-weight:800}.category-body{flex-direction:column;gap:12px;padding:14px 0 4px;display:flex}.add-item-form{gap:8px;display:flex}.item-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:12px;padding:14px;display:flex}.item-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.item-name{text-align:left;border:none;border-bottom:1.5px dashed var(--border);background:0 0;padding:0;font-size:16px;font-weight:700}.item-name-input{border:1.5px solid var(--lavender-deep);background:var(--surface);border-radius:6px;padding:2px 6px;font-size:16px;font-weight:700}.item-delete-btn{width:30px;height:30px;color:var(--text-muted);background:0 0;border:none;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.item-card-qty{align-items:center;gap:10px;display:flex}.item-remaining{text-align:right;color:var(--lavender-deep);flex:1;font-size:13px;font-weight:700}.item-remaining.done{color:var(--mint-deep)}.counter{align-items:center;gap:10px;display:flex}.counter-btn{border:1.5px solid var(--border);background:#fff;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-weight:800;display:flex}.counter-btn-minus{color:var(--pink-deep)}.counter-btn-plus{color:var(--mint-deep)}.counter-btn:disabled{opacity:.35}.counter-value{text-align:center;border:none;border-bottom:1.5px dashed var(--border);background:0 0;min-width:32px;padding-bottom:2px;font-size:17px;font-weight:800}.counter-input{text-align:center;border:1.5px solid var(--lavender-deep);border-radius:6px;width:48px;padding:2px;font-size:17px;font-weight:800}.location-tags{flex-wrap:wrap;gap:8px;display:flex}.location-tag{background:var(--mint-tint);color:var(--mint-deep);border-radius:999px;align-items:center;gap:6px;padding:5px 6px 5px 12px;font-size:13px;font-weight:700;display:flex}.location-tag:nth-of-type(3n+2){background:var(--peach-tint);color:var(--peach-deep)}.location-tag:nth-of-type(3n+3){background:var(--lavender-tint);color:var(--lavender-deep)}.location-tag-btn{width:20px;height:20px;color:inherit;background:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:flex}.add-location-toggle{border:1.5px dashed var(--border);color:var(--text-muted);background:0 0;border-radius:999px;align-self:flex-start;padding:8px 14px;font-size:13px;font-weight:700}.add-location-form{background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;padding:10px;display:flex}.add-location-form-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:700}.add-location-form-row{gap:8px;display:flex}.add-location-select{border:1.5px solid var(--border);background:#fff;border-radius:10px;flex:1;padding:9px 12px;font-size:14px;font-weight:700}.add-location-count{text-align:center;border:1.5px solid var(--border);background:#fff;border-radius:10px;width:64px;padding:9px 8px;font-size:14px;font-weight:700}.add-location-form-actions{align-items:center;gap:10px;display:flex}.todo-list{flex-direction:column;gap:10px;display:flex}.todo-row{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);align-items:center;gap:12px;padding:12px 14px;display:flex}.todo-row.done{opacity:.55}.todo-checkbox{border:2px solid var(--border);background:0 0;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.todo-checkbox.checked{background:var(--mint-deep);border-color:var(--mint-deep)}.todo-text{text-align:left;border:none;border-bottom:1.5px dashed var(--border);text-overflow:ellipsis;white-space:nowrap;background:0 0;flex:1;min-width:0;padding:0;font-size:15px;font-weight:700;overflow:hidden}.todo-row.done .todo-text{color:var(--text-muted);border-bottom-color:#0000;text-decoration:line-through}.todo-text-input{border:1.5px solid var(--lavender-deep);border-radius:6px;flex:1;min-width:0;padding:2px 6px;font-size:15px;font-weight:700}.todo-owner-tag{background:var(--lavender-tint);color:var(--lavender-deep);white-space:nowrap;border:none;border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:6px 10px 6px 12px;font-size:12px;font-weight:700;display:flex}.todo-owner-tag.empty{border:1.5px dashed var(--border);color:var(--text-muted);background:0 0}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-top:8px;display:grid}.photo-add-tile{aspect-ratio:1;border-radius:var(--radius-lg);border:2px dashed var(--border);color:var(--text-muted);background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.photo-tile{flex-direction:column;gap:6px;display:flex}.photo-thumb{aspect-ratio:1;border-radius:var(--radius-lg);background-color:var(--lavender-tint);background-position:50%;background-size:cover;position:relative}.photo-delete-btn{width:22px;height:22px;color:var(--text-muted);background:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:8px;right:8px;box-shadow:0 1px 3px #00000026}.photo-caption,.photo-caption-input{color:var(--text-muted);padding:0 2px;font-size:12px;font-weight:700}.photo-caption{text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;width:100%;overflow:hidden}.photo-caption-input{border:1.5px solid var(--lavender-deep);border-radius:6px;width:100%}.tab-bar{border-top:1.5px solid var(--border);background:var(--surface);padding:10px 0 max(10px, env(safe-area-inset-bottom));flex-shrink:0;display:flex}.tab-bar-btn{color:var(--text-muted);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:4px;padding:4px 0;font-size:11px;font-weight:700;display:flex}.tab-bar-btn.active{color:var(--lavender-deep);font-weight:800}@media (prefers-color-scheme:dark){:root{--bg:#201b2c;--surface:#2a2338;--text:#f3ecff;--text-muted:#b3a3c9;--border:#453a5c;--lavender-deep:#b3a2fc;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.counter-btn,.location-tag-btn,.photo-delete-btn,.add-location-select,.add-location-count{background:var(--surface)}}
