:root{--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display: "Outfit", sans-serif;--bg-dark: hsl(222, 47%, 7%);--bg-surface: hsl(222, 40%, 11%);--bg-surface-elevated: hsl(222, 35%, 15%);--bg-card: hsl(222, 35%, 13%);--bg-card-hover: hsl(222, 35%, 17%);--border-subtle: hsl(222, 25%, 20%);--border-strong: hsl(222, 25%, 28%);--primary: hsl(210, 100%, 55%);--primary-hover: hsl(210, 100%, 63%);--primary-glow: hsla(210, 100%, 55%, .25);--accent-cyan: hsl(185, 90%, 50%);--accent-purple: hsl(270, 85%, 65%);--accent-pink: hsl(335, 90%, 65%);--text-main: hsl(210, 20%, 95%);--text-muted: hsl(215, 15%, 65%);--text-dim: hsl(215, 15%, 45%);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 9999px;--shadow-card: 0 8px 32px rgba(0, 0, 0, .36);--shadow-glow: 0 0 20px rgba(0, 140, 255, .2);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-dark);color:var(--text-main);font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;min-height:100vh;overflow-x:hidden}.app-layout{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;padding:24px 16px 60px}.content-container{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.app-header{background:#0f172ad9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:100;padding:14px 24px}.header-container{max-width:1000px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.brand-logo-group{display:flex;align-items:center;gap:12px}.logo-icon-wrapper{width:42px;height:42px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--primary),var(--accent-cyan));display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:var(--shadow-glow)}.brand-title{font-family:var(--font-display);font-size:1.4rem;font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,#ffffff,var(--accent-cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.brand-subtitle{font-size:.78rem;color:var(--text-muted)}.header-actions{display:flex;align-items:center;gap:12px}.user-profile-badge{display:flex;align-items:center;gap:10px;background:var(--bg-surface);border:1px solid var(--border-subtle);padding:6px 14px;border-radius:var(--radius-pill)}.user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.user-avatar-fallback{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--accent-purple));color:#fff;display:flex;align-items:center;justify-content:center}.user-text-info{display:flex;flex-direction:column}.user-display-name{font-size:.85rem;font-weight:600}.user-handle{font-size:.72rem;color:var(--text-muted)}.control-bar-wrapper{display:flex;flex-direction:column;gap:12px}.feed-source-bar{display:flex;align-items:center;gap:12px;background:var(--bg-surface);border:1px solid var(--border-subtle);padding:8px 14px;border-radius:var(--radius-md);flex-wrap:wrap}.source-bar-label{font-size:.82rem;font-weight:600;color:var(--text-muted)}.source-pill-group{display:flex;align-items:center;gap:8px}.source-pill{background:var(--bg-dark);border:1px solid var(--border-subtle);color:var(--text-muted);padding:6px 14px;border-radius:var(--radius-pill);font-size:.82rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:var(--transition-fast)}.source-pill:hover{border-color:var(--border-strong);color:var(--text-main)}.source-pill.active{background:linear-gradient(135deg,var(--primary),var(--accent-cyan));color:#fff;border-color:transparent;box-shadow:var(--shadow-glow)}.pill-count{background:#00000040;padding:2px 7px;border-radius:var(--radius-pill);font-size:.72rem}.control-bar{display:flex;align-items:center;justify-content:space-between;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:8px 12px;flex-wrap:wrap;gap:12px}.view-mode-tabs{display:flex;align-items:center;gap:4px;background:var(--bg-dark);padding:4px;border-radius:var(--radius-sm)}.view-tab{background:transparent;border:none;color:var(--text-muted);padding:6px 12px;border-radius:6px;font-size:.82rem;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:var(--transition-fast)}.view-tab.active{background:var(--bg-surface-elevated);color:#fff}.control-right-group{display:flex;align-items:center;gap:14px}.results-counter{font-size:.8rem;color:var(--text-muted)}.sort-selector-wrapper{display:flex;align-items:center;gap:6px;color:var(--text-muted)}.sort-dropdown{background:transparent;border:none;color:var(--text-main);font-size:.82rem;outline:none;cursor:pointer}.search-bar-section{display:flex;flex-direction:column;gap:12px}.search-input-wrapper{position:relative;width:100%}.search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-muted)}.search-input{width:100%;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px 42px 12px 46px;color:var(--text-main);font-size:.95rem;outline:none;transition:var(--transition-fast)}.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);background:var(--bg-card)}.search-clear-btn{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--text-muted);cursor:pointer}.filters-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.media-filter-group{display:flex;align-items:center;gap:6px;overflow-x:auto;padding-bottom:4px}.filter-chip{background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-muted);padding:6px 12px;border-radius:var(--radius-pill);font-size:.8rem;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;transition:var(--transition-fast)}.filter-chip:hover{border-color:var(--border-strong);color:var(--text-main)}.filter-chip.active{background:var(--primary-glow);border-color:var(--primary);color:var(--accent-cyan)}.tag-dropdown{background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-main);padding:6px 12px;border-radius:var(--radius-pill);font-size:.82rem;outline:none;cursor:pointer}.posts-feed-grid{display:flex;flex-direction:column;gap:16px}.post-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:18px;box-shadow:var(--shadow-card);transition:var(--transition-normal);display:flex;flex-direction:column;gap:12px}.post-card:hover{border-color:var(--border-strong);background:var(--bg-card-hover)}.post-header{display:flex;align-items:center;gap:12px;position:relative}.author-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover}.author-avatar-fallback{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--accent-purple));color:#fff;display:flex;align-items:center;justify-content:center}.author-info{flex:1}.author-title-row{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.author-name{font-weight:700;font-size:.95rem;color:var(--text-main)}.author-handle{font-size:.85rem;color:var(--text-muted)}.bullet-separator{color:var(--text-dim);font-size:.8rem}.post-timestamp{font-size:.8rem;color:var(--text-muted);text-decoration:none}.post-timestamp:hover{text-decoration:underline}.source-type-badge{font-size:.72rem;padding:2px 8px;border-radius:var(--radius-pill);font-weight:600}.badge-bookmark{background:#3b82f626;color:#6ea7f7;border:1px solid rgba(59,130,246,.3)}.badge-like{background:#ec489926;color:#f986b6;border:1px solid rgba(236,72,153,.3)}.bsky-external-link-btn{color:var(--text-muted);transition:var(--transition-fast)}.bsky-external-link-btn:hover{color:var(--primary)}.post-text{font-size:.95rem;white-space:pre-wrap;word-break:break-word;color:#e0e6eb}.rich-text-link{color:var(--primary);text-decoration:none}.rich-text-link:hover{text-decoration:underline}.rich-text-hashtag{color:var(--accent-cyan);font-weight:500}.rich-text-mention{color:var(--accent-purple);text-decoration:none}.rich-text-mention:hover{text-decoration:underline}.post-image-grid{display:grid;gap:6px;border-radius:var(--radius-sm);overflow:hidden;margin-top:8px}.images-count-1{grid-template-columns:1fr;max-height:420px}.images-count-2{grid-template-columns:1fr 1fr;max-height:300px}.images-count-3{grid-template-columns:2fr 1fr;max-height:320px}.images-count-4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;max-height:360px}.image-wrapper{overflow:hidden;cursor:pointer}.image-wrapper img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.image-wrapper img:hover{transform:scale(1.03)}.external-link-card{display:flex;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden;text-decoration:none;color:inherit;margin-top:8px;transition:var(--transition-fast)}.external-link-card:hover{border-color:var(--primary)}.external-card-thumb{width:140px;height:100px;object-fit:cover}.external-card-content{padding:10px 14px;display:flex;flex-direction:column;gap:4px}.external-card-domain{font-size:.72rem;color:var(--text-muted);text-transform:lowercase}.external-card-title{font-size:.88rem;font-weight:600;line-height:1.3}.external-card-description{font-size:.78rem;color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.quote-post-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-left:3px solid var(--primary);border-radius:var(--radius-sm);padding:12px;margin-top:10px;display:flex;flex-direction:column;gap:8px}.quote-header{display:flex;align-items:center;gap:8px}.quote-author-avatar{width:26px;height:26px;border-radius:50%;object-fit:cover}.quote-author-fallback{width:26px;height:26px;border-radius:50%;background:var(--bg-surface-elevated);color:var(--text-muted);display:flex;align-items:center;justify-content:center}.quote-author-meta{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.quote-author-name{font-weight:600;font-size:.85rem}.quote-author-handle{font-size:.78rem;color:var(--text-muted)}.quote-time{font-size:.75rem;color:var(--text-muted)}.quote-body{display:flex;flex-direction:column;gap:6px}.quote-image-grid{display:flex;gap:6px;margin-top:4px}.quote-embed-img{width:120px;height:80px;object-fit:cover;border-radius:6px}.post-tags-container{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-top:4px}.tag-pill{font-size:.72rem;padding:3px 8px;border-radius:var(--radius-pill);font-weight:600}.tag-auto{background:#3b82f626;color:#6ea7f7;border:1px solid rgba(59,130,246,.3)}.tag-custom{background:#a855f726;color:#d49efa;border:1px solid rgba(168,85,247,.3)}.add-tag-btn{background:transparent;border:1px dashed var(--border-subtle);color:var(--text-muted);padding:3px 8px;border-radius:var(--radius-pill);font-size:.72rem;cursor:pointer;display:inline-flex;align-items:center;gap:2px;transition:var(--transition-fast)}.add-tag-btn:hover{border-color:var(--primary);color:var(--primary)}.post-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border-subtle);padding-top:10px;margin-top:4px}.metrics-group{display:flex;align-items:center;gap:16px}.metric-item{display:flex;align-items:center;gap:4px;font-size:.8rem;color:var(--text-muted)}.unsave-btn{padding:4px 12px;border-radius:var(--radius-pill);font-size:.78rem;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:var(--transition-fast)}.btn-unsave-bookmark{background:transparent;border:1px solid rgba(59,130,246,.4);color:#6ea7f7}.btn-unsave-bookmark:hover{background:#3b82f633}.btn-unlike{background:transparent;border:1px solid rgba(236,72,153,.4);color:#f986b6}.btn-unlike:hover{background:#ec489933}.unsave-confirm-actions{display:flex;align-items:center;gap:6px}.confirm-label{font-size:.78rem;color:var(--text-muted)}.confirm-yes-btn{background:#f04242;color:#fff;border:none;padding:3px 8px;border-radius:4px;font-size:.75rem;cursor:pointer}.confirm-no-btn{background:var(--bg-surface);color:var(--text-main);border:1px solid var(--border-subtle);padding:3px 8px;border-radius:4px;font-size:.75rem;cursor:pointer}.grouped-views-container{display:flex;flex-direction:column;gap:20px}.group-section{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;border-left:4px solid var(--primary)}.group-header{padding:14px 18px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffff05}.group-header:hover{background:#ffffff0d}.group-header-left{display:flex;align-items:center;gap:10px}.group-author-avatar{width:32px;height:32px;border-radius:50%}.group-title{font-size:1rem;font-weight:600}.group-handle{font-size:.8rem;color:var(--text-muted)}.group-badge{background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);padding:4px 10px;border-radius:var(--radius-pill);font-size:.78rem;font-weight:600}.group-posts-container{padding:12px 16px 16px;display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--border-subtle)}.btn-primary{background:linear-gradient(135deg,var(--primary),hsl(215,90%,48%));color:#fff;border:none;padding:8px 16px;border-radius:var(--radius-sm);font-weight:600;font-size:.88rem;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:var(--transition-fast)}.btn-primary:hover{filter:brightness(1.1);box-shadow:var(--shadow-glow)}.btn-secondary{background:var(--bg-surface-elevated);color:var(--text-main);border:1px solid var(--border-subtle);padding:8px 16px;border-radius:var(--radius-sm);font-weight:500;font-size:.88rem;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:var(--transition-fast)}.demo-mode-btn{background:linear-gradient(135deg,#a855f733,#ec489933);border:1px solid rgba(168,85,247,.4);color:#d49efa;padding:8px 14px;border-radius:var(--radius-pill);font-weight:600;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:var(--transition-fast)}.header-login-btn{background:var(--primary);color:#fff;border:none;padding:8px 16px;border-radius:var(--radius-pill);font-weight:600;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:var(--transition-fast)}.header-icon-btn,.header-logout-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:6px;border-radius:6px;display:inline-flex;align-items:center;gap:4px;font-size:.8rem;transition:var(--transition-fast)}.header-icon-btn:hover,.header-logout-btn:hover{color:var(--text-main);background:#ffffff14}.loading-state-banner,.error-state-banner{display:flex;align-items:center;justify-content:center;gap:10px;padding:18px;border-radius:var(--radius-md);font-size:.9rem}.loading-state-banner{background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-muted)}.error-state-banner{background:#ef444426;border:1px solid rgba(239,68,68,.3);color:#f58989}.empty-state-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:48px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}.empty-icon-circle{width:72px;height:72px;border-radius:50%;background:var(--bg-surface);display:flex;align-items:center;justify-content:center;color:var(--primary)}.empty-actions{display:flex;gap:12px;margin-top:8px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;display:flex;align-items:center;justify-content:center;padding:16px}.modal-card{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:100%;max-width:480px;box-shadow:var(--shadow-card);overflow:hidden}.modal-header{padding:16px 20px;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between}.modal-title-group{display:flex;align-items:center;gap:10px}.modal-shield-icon{color:var(--primary)}.modal-close-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer}.modal-form,.tag-editor-body{padding:20px;display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.85rem;font-weight:500;color:var(--text-muted)}.input-with-icon,.input-with-btn{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:12px;color:var(--text-muted)}.input-with-icon input,.tag-input{width:100%;background:var(--bg-dark);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:10px 12px 10px 38px;color:var(--text-main);font-size:.9rem;outline:none}.tag-input{padding-left:12px}.app-password-help-box{background:#3b82f61a;border:1px solid rgba(59,130,246,.25);border-radius:var(--radius-sm);padding:12px;font-size:.8rem;color:#8cb7f2;display:flex;flex-direction:column;gap:6px}.help-link{color:var(--accent-cyan);text-decoration:none;font-weight:600;display:inline-flex;align-items:center;gap:4px}.modal-footer{padding:14px 20px;border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-end;gap:10px}.lightbox-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;z-index:300;display:flex;align-items:center;justify-content:center;padding:20px}.lightbox-content img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:var(--radius-sm)}.toast-notification{position:fixed;bottom:24px;right:24px;background:var(--bg-surface-elevated);border:1px solid var(--border-strong);color:#fff;padding:12px 20px;border-radius:var(--radius-pill);box-shadow:var(--shadow-card);z-index:400;font-size:.88rem;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.spin-icon{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
