.shelf-page{max-width:760px}.shelf-skeleton{min-height:240px;border-radius:var(--r-lg);background:var(--wash)}.shelf-summary{margin:-8px 0 16px;color:var(--muted);font-size:15px}.shelf-empty{padding:20px;border-radius:var(--r-lg);background:var(--accent-soft);color:var(--accent-ink)}.shelf-empty p{margin:0 0 16px;font-size:16px;line-height:1.55}.shelf-cta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:16px}.shelf-section{margin-top:28px}.shelf-section .section-head h2,.shelf-section>h2{margin:0 0 12px}.shelf-ok{margin:0;padding:14px 16px;border-radius:var(--r-md);background:var(--good-soft);color:var(--good)}.finding-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px}.finding{padding:14px 16px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);border-left-width:4px}.finding.sev-stop{border-left-color:var(--stop-dot)}.finding.sev-caution{border-left-color:var(--caution-dot)}.finding.sev-info{border-left-color:var(--accent-tint)}.finding-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.sev-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--r-full);font-size:13px;font-weight:600}.sev-chip.sev-stop{background:var(--stop-soft);color:var(--stop)}.sev-chip.sev-caution{background:var(--caution-soft);color:var(--caution)}.sev-chip.sev-info{background:var(--accent-soft);color:var(--accent-ink)}.finding-reason{margin:0;color:var(--ink);line-height:1.5}.finding-items{margin:8px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}.finding-items li{padding:2px 10px;border-radius:var(--r-full);background:var(--fill);color:var(--ink-3);font-size:13px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finding-note{margin:8px 0 0;color:var(--muted);font-size:14px}.finding-fix{margin:8px 0 0;color:var(--ink-2);font-size:15px;line-height:1.5}.finding .more-link{margin-top:4px}.shelf-items{list-style:none;margin:0;padding:0;display:grid;grid-gap:12px;gap:12px}.shelf-item{padding:14px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}.shelf-item-top{display:flex;gap:12px;align-items:flex-start}.shelf-item-top img,.shelf-ph{flex:none;width:56px;height:56px;border-radius:var(--r-sm);background:var(--frame);object-fit:contain}.shelf-ph{display:inline-flex;align-items:center;justify-content:center;color:var(--faint)}.shelf-name{flex:1 1;min-width:0}.shelf-name a{color:inherit;display:block}.shelf-brand{display:block;font-size:13px;color:var(--muted)}.shelf-title{display:block;font-weight:500;line-height:1.35;overflow-wrap:anywhere}.shelf-own{display:inline-block;margin-top:4px;padding:1px 8px;border-radius:var(--r-full);background:var(--fill);color:var(--ink-3)}.shelf-name .badge,.shelf-own{font-size:12px}.shelf-controls{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-top:12px}.shelf-controls .seg,.shelf-controls .shelf-note,.shelf-controls .shelf-opened{grid-column:1/-1}.shelf-opened{margin:-4px 0 0}.seg{display:flex;padding:3px;border-radius:var(--r-full);background:var(--fill)}.seg button{flex:1 1;min-height:36px;border:0;border-radius:var(--r-full);background:transparent;color:var(--ink-3);font:inherit;font-size:14px;font-weight:500;padding:4px 6px;white-space:nowrap}.seg button.on{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}.shelf-field{display:grid;grid-gap:4px;gap:4px;font-size:13px;color:var(--muted);min-width:0}.shelf-field .input,.shelf-field .select{width:100%;min-width:0;min-height:40px;font-size:15px;color:var(--ink)}.shelf-note summary{cursor:pointer;color:var(--accent);font-size:14px;font-weight:500;padding:6px 0;list-style:none}.shelf-note summary::-webkit-details-marker{display:none}.shelf-note .textarea{min-height:72px;margin-top:4px;font-size:15px}.shelf-add{margin-top:20px;padding:16px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}.shelf-add h2{margin:0}.shelf-add .field{margin-bottom:0}.shelf-add .textarea{min-height:120px}.shelf-add-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}@media (min-width:640px){.shelf-controls{grid-template-columns:1.6fr 1fr 1fr;align-items:end}.shelf-controls .seg{grid-column:auto}}