:root{--bg:#f8f7f4;--surface:#fff;--text:#1a1a1a;--text-muted:#6b6b6b;--border:#e5e3de;--accent:#2d6a4f;--accent-hover:#1b4332;--warning:#b08900;--warning-bg:#fef9e7;--danger:#c0392b;--danger-bg:#fdf2f0;--radius:8px;--shadow:0 1px 3px #0000000f;color:var(--text);background:var(--bg);font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh}.app{flex-direction:column;max-width:640px;min-height:100vh;margin:0 auto;display:flex}.header{background:var(--surface);border-bottom:1px solid var(--border);padding:1rem 1.25rem}.header-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.header h1{letter-spacing:-.02em;font-size:1.125rem;font-weight:600}.header-user{color:var(--text-muted);align-items:center;gap:.625rem;font-size:.8125rem;display:flex}.btn-link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:.8125rem;font-weight:500}.btn-link:hover{color:var(--accent-hover)}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:1.25rem;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:360px;box-shadow:var(--shadow);border-radius:12px;flex-direction:column;gap:.75rem;padding:1.5rem;display:flex}.login-card h1{font-size:1.25rem;font-weight:600}.login-card label{flex-direction:column;gap:.25rem;font-size:.8125rem;font-weight:500;display:flex}.login-card input{border:1px solid var(--border);border-radius:6px;padding:.5rem .625rem;font-size:.875rem}.login-card .btn{width:100%;margin-top:.25rem;padding:.625rem}.main{flex:1;padding:1rem 1.25rem 5rem}.nav{background:var(--surface);border-top:1px solid var(--border);width:100%;max-width:640px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-link{text-align:center;color:var(--text-muted);flex:1;padding:.875rem .25rem;font-size:.8125rem;font-weight:500;text-decoration:none}.search-field{margin-bottom:1rem;display:block}.search-field input{border:1px solid var(--border);background:var(--surface);border-radius:8px;width:100%;padding:.625rem .75rem;font-size:1rem}.search-field input:focus{outline:2px solid var(--accent);outline-offset:1px}.search-group{margin-bottom:1.5rem}.search-group h3{align-items:center;gap:.5rem;margin-bottom:.625rem;font-size:.875rem;font-weight:600;display:flex}.nav-link.active{color:var(--accent)}.page-loading{text-align:center;padding:2rem 1.25rem}.page-header h2{font-size:1rem;font-weight:600}.item-list{flex-direction:column;gap:.625rem;display:flex}.item-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-items:flex-start;gap:.75rem;padding:.75rem;display:flex}.item-card.clickable{cursor:pointer;transition:border-color .15s,background .15s}.item-card.clickable:hover{background:#fcfcfa;border-color:#cfcbc3}.item-card.clickable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.item-card.compact{padding:.625rem}.item-photo{background:var(--bg);border-radius:6px;flex-shrink:0;width:56px;height:56px;overflow:hidden}.item-photo img{object-fit:cover;width:100%;height:100%}.item-photo-placeholder{justify-content:center;align-items:center;width:100%;height:100%;font-size:1.5rem;display:flex}.item-body{flex:1;min-width:0}.item-body h3{margin-bottom:.125rem;font-size:.9375rem;font-weight:600}.item-qty{color:var(--text-muted);font-size:.8125rem}.item-qty.low{color:var(--warning);font-weight:600}.item-price{color:var(--accent);margin-top:.125rem;font-size:.9375rem;font-weight:600}.wishlist-total{color:var(--text-muted);margin-bottom:.75rem;font-size:.875rem}.store-link{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.store-link:hover{color:var(--accent-hover)}.item-meta{color:var(--text-muted);font-size:.75rem}.form-secondary-actions{border-top:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:.5rem;padding-top:.25rem;display:flex}.use-row{flex-wrap:wrap;flex:1;align-items:flex-end;gap:.5rem;min-width:0;display:flex}.use-qty-field{flex:1;min-width:10rem}.use-row>.btn{flex:1;min-width:8rem}.qty-input{flex-direction:column;gap:.375rem;min-width:0;display:flex}.qty-input label{flex-direction:column;gap:.25rem;font-size:.8125rem;font-weight:500;display:flex}.qty-input input{border:1px solid var(--border);border-radius:6px;width:100%;padding:.5rem .625rem;font-size:.875rem}.qty-presets{flex-wrap:wrap;gap:.375rem;display:flex}.qty-preset{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:6px;padding:.25rem .5rem;font-size:.75rem;font-weight:500}.qty-preset:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.qty-preset.active{background:var(--accent);border-color:var(--accent);color:#fff}.qty-preset:disabled{opacity:.5;cursor:not-allowed}.btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.5rem .875rem;font-size:.8125rem;font-weight:500}.btn:hover{background:var(--accent-hover)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-sm{padding:.25rem .5rem;font-size:.75rem}.btn-secondary{background:var(--bg);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border)}.btn-danger{color:var(--danger);border:1px solid var(--danger);background:0 0}.btn-danger:hover{background:var(--danger-bg)}.modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:12px 12px 0 0;flex-direction:column;gap:.75rem;width:100%;max-width:640px;max-height:90vh;padding:1.25rem;display:flex;overflow-y:auto}.modal h2{font-size:1rem;font-weight:600}.modal label{flex-direction:column;gap:.25rem;font-size:.8125rem;font-weight:500;display:flex}.modal input{border:1px solid var(--border);border-radius:6px;padding:.5rem .625rem;font-size:.875rem}.form-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.form-actions{justify-content:flex-end;gap:.5rem;margin-top:.5rem;display:flex}.photo-field{flex-direction:column;gap:.5rem;display:flex}.photo-field-label{font-size:.8125rem;font-weight:500}.photo-buttons{gap:.5rem;display:flex}.photo-preview{border:1px solid var(--border);border-radius:6px;width:96px;height:96px;overflow:hidden}.photo-preview img{object-fit:cover;width:100%;height:100%}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.alert-section{margin-bottom:1.5rem}.alert-section h3{align-items:center;gap:.5rem;margin-bottom:.625rem;font-size:.875rem;font-weight:600;display:flex}.alert-warning h3{color:var(--warning)}.alert-danger h3{color:var(--danger)}.badge{background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;font-size:.6875rem;font-weight:600;display:inline-flex}.badge-lg{min-width:1.5rem;height:1.5rem;font-size:.75rem}.empty,.muted{color:var(--text-muted);font-size:.875rem}.error{color:var(--danger);margin-bottom:.5rem;font-size:.875rem}@media (width>=640px){.modal-overlay{align-items:center;padding:1rem}.modal{border-radius:12px}}
