.wv-notif-list{display:flex;flex-direction:column}.wv-notif-row,.wv-notif-row-wrap{position:relative}.wv-notif-row{display:grid;grid-template-columns:40px 1fr auto;align-items:start;grid-gap:var(--space-3);gap:var(--space-3);width:100%;padding:var(--space-3);border:0;border-radius:var(--radius-md);background:none;font:inherit;color:inherit;text-align:left;text-decoration:none;cursor:pointer;transition:var(--transition-fast)}.wv-notif-row:hover{background:var(--surface-card-hover)}.wv-notif-row:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.wv-notif-row+.wv-notif-row{border-top:1px solid var(--border-subtle);border-top-left-radius:0;border-top-right-radius:0}.wv-notif-row__media{display:block;width:40px;height:40px;flex:none;border-radius:var(--radius-sm);overflow:hidden}.wv-notif-row__thumb{width:40px;height:40px;object-fit:cover;display:block}.wv-notif-row__icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-sm);background:var(--surface-subtle);color:var(--color-primary)}.wv-notif-row__body{display:flex;flex-direction:column;gap:2px;min-width:0}.wv-notif-row__title{font-size:.88rem;font-weight:500;color:var(--text-secondary);line-height:1.35}.wv-notif-row.is-unread .wv-notif-row__title{font-weight:650;color:var(--text-primary)}.wv-notif-row.is-unread{background:var(--color-accent-subtle)}.wv-notif-row.is-unread:hover{background:var(--surface-card-hover)}.wv-notif-row__text{font-size:.8rem;color:var(--text-muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.wv-notif-row__meta{font-size:.72rem;color:var(--text-disabled);margin-top:2px}.wv-notif-row-wrap .wv-notif-row{padding-right:calc(var(--space-3) + 30px)}.wv-notif-row__dismiss{position:absolute;top:50%;right:var(--space-2);transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:0;border-radius:var(--radius-full);background:none;color:var(--text-muted);cursor:pointer;opacity:0;pointer-events:none;transition:var(--transition-fast)}.wv-notif-row-wrap:hover .wv-notif-row__dismiss,.wv-notif-row__dismiss:focus-visible{opacity:1;pointer-events:auto}.wv-notif-row__dismiss:hover{background:var(--surface-subtle);color:var(--text-primary)}.wv-notif-row__dismiss:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (any-hover:none){.wv-notif-row__dismiss{opacity:1;pointer-events:auto}}.wv-notif-row__dot{width:8px;height:8px;margin-top:6px;border-radius:var(--radius-full);background:var(--color-primary);flex:none}.wv-notif-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-1);padding:var(--space-8) var(--space-4)}.wv-notif-empty__icon{display:grid;place-items:center;width:44px;height:44px;margin-bottom:var(--space-2);border-radius:var(--radius-full);background:var(--surface-subtle);color:var(--text-disabled)}.wv-notif-empty__title{margin:0;font-size:.92rem;font-weight:600;color:var(--text-primary)}.wv-notif-empty__body{margin:0;max-width:34ch;font-size:.8rem;line-height:1.45;color:var(--text-muted)}.wv-notif-more{display:flex;justify-content:center;padding:var(--space-3);border-top:1px solid var(--border-subtle)}.wv-notif-more button{padding:var(--space-2) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-full);background:var(--surface-raised);font-size:.8rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast)}.wv-notif-more button:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-subtle)}.wv-notif-more button:disabled{opacity:.6;cursor:default}.wv-notif-skeletons{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3)}.wv-notif-skeleton{height:56px;border-radius:var(--radius-md);background:linear-gradient(90deg,var(--surface-subtle) 25%,var(--surface-card-hover) 37%,var(--surface-subtle) 63%);background-size:400% 100%;animation:wv-notif-shimmer 1.4s ease infinite}@keyframes wv-notif-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}@media (prefers-reduced-motion:reduce){.wv-notif-skeleton{animation:none}}.wv-notif-page{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-raised);overflow:hidden}.wv-notif-page .wv-notif-row{border-radius:0;padding:var(--space-4) var(--space-3)}.wv-notif-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.wv-notif-clear{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-full);background:var(--surface-raised);font-size:.78rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);white-space:nowrap}.wv-notif-clear:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-subtle)}.wv-notif-clear:disabled{opacity:.5;cursor:default}.wv-notif-prefs__group+.wv-notif-prefs__group{margin-top:var(--space-6)}.wv-notif-prefs__legend{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin:0 0 var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle)}.wv-notif-prefs__category{margin:0;font-size:.8rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.wv-notif-prefs__channels{display:flex;gap:var(--space-6);font-size:.72rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--text-disabled)}.wv-notif-prefs__channels span{width:44px;text-align:center}.wv-notif-prefs__switches{display:flex;align-items:center;gap:var(--space-6);flex:none}.wv-notif-prefs__switch{display:flex;flex-direction:column;align-items:center;gap:4px;width:44px}.wv-notif-prefs__switch-label{font-size:.66rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--text-disabled)}@media (min-width:721px){.wv-notif-prefs__switch-label{display:none}}@media (max-width:720px){.wv-notif-prefs__channels{display:none}.wv-notif-prefs__switches{gap:var(--space-4)}}.wv-notif-prefs__note{margin:var(--space-4) 0 0;font-size:.78rem;line-height:1.5;color:var(--text-muted)}.wv-notif-prefs .settings-row{gap:var(--space-4)}.wv-notif-prefs .settings-row__info{min-width:0}