@import"https://fonts.googleapis.com/css2?family=Geist+Mono:wght@300;400;500;600;700&family=Geist:wght@300;400;500;600;700&display=swap";:root{--color-primary: #ffffff;--color-primary-hover: #f4f4f5;--color-primary-subtle: rgba(255, 255, 255, .08);--color-primary-glow: rgba(255, 255, 255, .12);--color-accent: #60a5fa;--color-text: #f4f4f5;--color-text-secondary: #d4d4d8;--color-text-muted: #a1a1aa;--color-text-faint: #71717a;--color-bg: #09090b;--color-bg-elevated: #121216;--color-bg-secondary: #18181b;--color-bg-tertiary: #242428;--color-bg-inverse: #fafafa;--color-bubble: #18181b;--color-bubble-hover: #242428;--color-bubble-completed: #06361b;--color-bubble-completed-border: #4ade80;--color-bubble-unread: #0f1d33;--color-border: rgba(255, 255, 255, .14);--color-border-subtle: rgba(255, 255, 255, .1);--color-border-hairline: rgba(255, 255, 255, .06);--color-border-focus: rgba(255, 255, 255, .28);--color-divider: rgba(255, 255, 255, .14);--shadow-card: 0 1px 0 var(--color-border);--shadow-elevated: 0 4px 16px rgba(0, 0, 0, .5);--shadow-modal: 0 32px 64px rgba(0, 0, 0, .8);--color-overlay: rgba(0, 0, 0, .8);--color-glass: rgba(9, 9, 11, .95);--font-mono: "Geist Mono", "SF Mono", monospace;--font-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--ease-spring: cubic-bezier(.32, .72, 0, 1);--ease-smooth: cubic-bezier(.16, 1, .3, 1);--duration-fast: .12s;--duration-normal: .2s;--duration-slow: .35s;--sidebar-width: 260px;--header-height: 52px}[data-theme=light]{--color-primary: #000000;--color-primary-hover: #18181b;--color-primary-subtle: rgba(0, 0, 0, .03);--color-primary-glow: rgba(0, 0, 0, .05);--color-text: #09090b;--color-text-secondary: #52525b;--color-text-muted: #a1a1aa;--color-text-faint: #d4d4d8;--color-bg: #ffffff;--color-bg-elevated: #ffffff;--color-bg-secondary: #fafafa;--color-bg-tertiary: #f4f4f5;--color-bubble: #fafafa;--color-bubble-hover: #f4f4f5;--color-bubble-completed: #f0fdf4;--color-bubble-completed-border: #22c55e;--color-bubble-unread: #eff6ff;--color-border: rgba(0, 0, 0, .08);--color-border-subtle: rgba(0, 0, 0, .05);--color-border-hairline: rgba(0, 0, 0, .03);--color-border-focus: rgba(0, 0, 0, .15);--color-divider: rgba(0, 0, 0, .08);--shadow-card: 0 1px 0 var(--color-border);--shadow-elevated: 0 4px 16px rgba(0, 0, 0, .08);--shadow-modal: 0 32px 64px rgba(0, 0, 0, .15);--color-overlay: rgba(0, 0, 0, .5);--color-glass: rgba(255, 255, 255, .95)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--font-sans);font-size:14px;line-height:1.6;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--duration-slow) var(--ease-smooth)}#app{height:100%}::selection{background:var(--color-text);color:var(--color-bg)}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.plfy-app{display:flex;flex-direction:column;height:100%;background:var(--color-bg);position:relative;overflow:hidden}.plfy-header{display:flex;justify-content:space-between;align-items:center;padding:0 var(--space-lg);height:var(--header-height);background:var(--color-bg);border-bottom:1px solid var(--color-divider);position:sticky;top:0;z-index:10;flex-shrink:0}.plfy-header-left,.plfy-header-right{display:flex;align-items:center;gap:var(--space-md)}.plfy-hamburger{display:none;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:color var(--duration-fast)}.plfy-hamburger:hover{color:var(--color-text)}.plfy-hamburger svg{width:18px;height:18px}.plfy-logo{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--color-text);text-decoration:underline;text-underline-offset:3px}.plfy-logo svg{width:20px;height:20px}.plfy-title{font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--color-text-secondary);text-decoration:none}.plfy-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:var(--color-accent);color:#fff;font-family:var(--font-mono);font-size:10px;font-weight:600;border-radius:var(--radius-full);line-height:1}.plfy-version{font-family:var(--font-mono);font-size:9px;color:var(--color-text-muted);letter-spacing:.08em}.plfy-theme-toggle{display:flex;align-items:center;gap:2px;padding:2px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer}.plfy-theme-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:var(--radius-full);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-fast)}.plfy-theme-btn.active{background:var(--color-bg-elevated);color:var(--color-text);box-shadow:0 1px 2px #0003}.plfy-theme-btn svg{width:13px;height:13px}.plfy-search{display:flex;align-items:center;gap:var(--space-sm);padding:8px 12px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--duration-fast)}.plfy-search:focus-within{border-color:var(--color-text-muted)}.plfy-search-icon{width:14px;height:14px;color:var(--color-text-muted);flex-shrink:0}.plfy-search input{flex:1;border:none;background:transparent;font-family:var(--font-mono);font-size:12px;color:var(--color-text);outline:none}.plfy-search input::placeholder{color:var(--color-text-faint)}.plfy-search-clear{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer}.plfy-search-clear:hover{color:var(--color-text)}.plfy-search-clear svg{width:10px;height:10px}.plfy-main-header{padding:var(--space-md) var(--space-lg) 0;display:flex;flex-direction:column;gap:var(--space-sm);flex-shrink:0}.plfy-filter-tag{display:inline-flex;align-items:center;gap:var(--space-xs);padding:3px 8px;background:var(--color-primary-subtle);border:1px solid var(--color-border);font-family:var(--font-mono);font-size:10px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;width:fit-content}.plfy-filter-tag-scope{color:var(--color-text-muted);text-transform:none;letter-spacing:0;opacity:.85}.plfy-filter-tag button{display:flex;align-items:center;background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:1px}.plfy-filter-tag button:hover{color:var(--color-text)}.plfy-filter-tag button svg{width:10px;height:10px}.plfy-sidebar{position:fixed;left:0;top:var(--header-height);width:var(--sidebar-width);height:calc(100% - var(--header-height));background:var(--color-bg);border-right:1px solid var(--color-divider);padding:var(--space-md);display:flex;flex-direction:column;gap:2px;overflow-y:auto;z-index:15;transition:transform var(--duration-normal) var(--ease-smooth)}.plfy-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) var(--space-sm);margin-bottom:var(--space-xs)}.plfy-sidebar-title{font-family:var(--font-mono);font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.15em;color:var(--color-text-muted)}.plfy-sidebar-add{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-fast)}.plfy-sidebar-add:hover{border-color:var(--color-text-muted);color:var(--color-text)}.plfy-sidebar-new-folder{padding:2px}.plfy-sidebar-new-folder input{width:100%;padding:4px 8px;background:transparent;border:1px solid var(--color-text-muted);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:11px;color:var(--color-text);outline:none}.plfy-sidebar-item{display:flex;align-items:center;gap:var(--space-sm);padding:6px var(--space-sm);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast);color:var(--color-text-secondary);position:relative}.plfy-sidebar-item:hover,.plfy-sidebar-item.selected{background:var(--color-primary-subtle);color:var(--color-text)}.plfy-sidebar-item.selected:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:2px;height:50%;background:var(--color-text)}.plfy-sidebar-item svg{flex-shrink:0;opacity:.5}.plfy-sidebar-item:hover svg,.plfy-sidebar-item.selected svg{opacity:1}.plfy-sidebar-item-name{flex:1;font-family:var(--font-sans);font-size:13px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plfy-sidebar-item-count{font-family:var(--font-mono);font-size:10px;color:var(--color-text-faint)}.plfy-sidebar-subfolder{position:relative}.plfy-sidebar-subfolder:before{content:"";position:absolute;left:11px;top:0;bottom:0;width:1px;background:var(--color-border-hairline);opacity:.6}.plfy-sidebar-item.in-selected-scope{background:color-mix(in srgb,var(--color-primary-subtle) 55%,transparent);color:var(--color-text)}.plfy-sidebar-scope-badge{padding:1px 5px;border-radius:999px;border:1px solid var(--color-border-hairline);color:var(--color-text-muted);font-family:var(--font-mono);font-size:9px;line-height:1.4}.plfy-sidebar-actions-trigger{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;opacity:0;transition:all var(--duration-fast)}.plfy-sidebar-item:hover .plfy-sidebar-actions-trigger,.plfy-sidebar-item.selected .plfy-sidebar-actions-trigger,.plfy-sidebar-item.actions-open .plfy-sidebar-actions-trigger,.plfy-sidebar-actions-trigger:focus-visible{opacity:.55}.plfy-sidebar-actions-trigger:hover,.plfy-sidebar-item.actions-open .plfy-sidebar-actions-trigger{opacity:1;color:var(--color-text);background:var(--color-primary-subtle)}.plfy-sidebar-folder-wrap{position:relative}.plfy-sidebar-actions-popover{position:fixed;display:flex;gap:4px;align-items:center;padding:4px 6px;border:1px solid var(--color-border-hairline);border-radius:var(--radius-md);background:var(--color-bg-elevated);box-shadow:var(--shadow-md);z-index:100}.plfy-sidebar-actions-backdrop{position:fixed;inset:0;z-index:99}.plfy-sidebar-action{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:0 8px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:11px;font-family:var(--font-sans);cursor:pointer}.plfy-sidebar-action:hover{background:var(--color-primary-subtle);color:var(--color-text)}.plfy-sidebar-action.danger:hover{color:#ef4444}.plfy-sidebar-edit{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;opacity:0;transition:all var(--duration-fast)}.plfy-sidebar-item:hover .plfy-sidebar-edit{opacity:.4}.plfy-sidebar-edit:hover{opacity:1!important;color:var(--color-accent)}.plfy-sidebar-item.editing{cursor:default;padding:6px var(--space-sm);background:var(--color-bg-elevated);border-left:2px solid var(--color-accent)}.plfy-edit-folder-row{display:flex;align-items:center;gap:var(--space-sm);width:100%}.plfy-folder-color-picker{width:20px;height:20px;border:none;cursor:pointer;padding:0;background:transparent;flex-shrink:0;border-radius:2px}.plfy-sidebar-edit-input{flex:1;min-width:0;padding:4px 0;background:transparent;border:none;border-bottom:1px solid var(--color-border);color:var(--color-text);font-family:var(--font-mono);font-size:12px;outline:none;transition:border-color var(--duration-fast)}.plfy-sidebar-edit-input:focus{border-bottom-color:var(--color-accent)}.plfy-sidebar-edit-save{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;flex-shrink:0;transition:all var(--duration-fast)}.plfy-sidebar-edit-save:hover{color:var(--color-accent);transform:scale(1.1)}.plfy-sidebar-overlay{display:none;position:fixed;inset:0;background:#0009;z-index:14}.plfy-main{margin-left:var(--sidebar-width);display:flex;flex-direction:column;height:calc(100vh - var(--header-height));min-height:0;overflow:hidden}.plfy-messages{flex:1;min-height:0;overflow-y:auto;padding:var(--space-md) var(--space-lg);scroll-behavior:smooth}.plfy-messages::-webkit-scrollbar{width:3px}.plfy-messages::-webkit-scrollbar-track{background:transparent}.plfy-messages::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.plfy-messages-group{display:flex;flex-direction:column;gap:1px}.plfy-date-separator{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg) 0 var(--space-md)}.plfy-date-separator span{font-family:var(--font-mono);font-size:9px;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.12em;white-space:nowrap}.plfy-date-separator:after{content:"";flex:1;height:1px;background:var(--color-divider)}.plfy-bubble-wrapper{position:relative;max-width:680px;animation:bubbleIn .2s var(--ease-smooth)}.plfy-bubble-wrapper.actions-open{z-index:80}.plfy-bubble-wrapper.unread .plfy-bubble{border-left:2px solid var(--color-accent)}.plfy-bubble-wrapper.completed .plfy-bubble-text{text-decoration:line-through;opacity:.4}.plfy-bubble-wrapper.completed .plfy-bubble{border-left:2px solid var(--color-bubble-completed-border)}@keyframes bubbleIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.plfy-orphaned-badge{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 8px;margin-top:6px;background:#fbbf241f;border:1px solid rgba(251,191,36,.3);border-radius:var(--radius-sm);font-size:11px}.plfy-orphaned-label{color:#fbbf24;font-weight:500;flex:1}.plfy-orphaned-remove{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;border-radius:var(--radius-sm);background:#ef444433;color:#ef4444;cursor:pointer;flex-shrink:0;padding:0}.plfy-orphaned-remove:hover{background:#ef444459}.plfy-bubble{display:flex;align-items:flex-start;gap:var(--space-sm);padding:10px 40px 10px 12px;background:var(--color-bubble);border-radius:var(--radius-sm);border:1px solid var(--color-border-subtle);border-left:2px solid transparent;cursor:pointer;transition:background var(--duration-fast);position:relative}.plfy-bubble:hover{background:var(--color-primary-subtle)}.plfy-bubble-check{display:flex;align-items:center;justify-content:center;width:16px;height:16px;min-width:16px;background:transparent;border:1px solid var(--color-text-faint);border-radius:var(--radius-full);color:transparent;cursor:pointer;transition:all var(--duration-fast);margin-top:3px}.plfy-bubble-check:hover{border-color:var(--color-text-muted)}.plfy-bubble-check.checked{border-color:#22c55e;background:#22c55e;color:#000}.plfy-bubble-check svg{width:10px;height:10px}.plfy-bubble-content{flex:1;min-width:0}.plfy-bubble-text{font-family:var(--font-sans);font-size:14px;line-height:1.6;color:var(--color-text);word-wrap:break-word;white-space:pre-wrap;transition:opacity var(--duration-fast)}.plfy-note-link{color:var(--color-accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;cursor:pointer;word-break:break-all}.plfy-note-link:hover{color:var(--color-primary)}.plfy-bubble-time{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:9px;color:var(--color-text-faint);margin-top:4px;letter-spacing:.03em}.plfy-unread-dot{width:4px;height:4px;background:var(--color-accent);border-radius:var(--radius-full);display:inline-block}.plfy-bubble-more{position:absolute;top:8px;right:10px;z-index:35;display:flex;align-items:center;justify-content:center;width:20px;height:20px;min-width:20px;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-faint);cursor:pointer;opacity:0;transition:all var(--duration-fast);margin-top:0}.plfy-bubble:hover .plfy-bubble-more,.plfy-bubble-wrapper:focus-within .plfy-bubble-more{opacity:.72}.plfy-bubble-wrapper.has-attachments .plfy-bubble-more,.plfy-bubble-wrapper.actions-open .plfy-bubble-more{opacity:.88}@media(hover:none)and (pointer:coarse){.plfy-bubble-more{opacity:.5!important}}.plfy-bubble-more:hover{opacity:1!important;color:var(--color-text);border-color:var(--color-border-focus)}.plfy-bubble-more svg{width:14px;height:14px}.plfy-actions-backdrop{position:fixed;inset:0;z-index:50}.plfy-actions-menu{position:fixed;min-width:160px;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);z-index:70;overflow:hidden;opacity:1;box-shadow:var(--shadow-elevated);animation:menuIn var(--duration-fast) var(--ease-smooth)}@keyframes menuIn{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.plfy-action-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:8px 12px;background:none;border:none;font-family:var(--font-mono);font-size:11px;color:var(--color-text-secondary);cursor:pointer;transition:background var(--duration-fast);text-align:left;letter-spacing:.02em}.plfy-action-item:hover{background:var(--color-primary-subtle);color:var(--color-text)}.plfy-action-item svg{width:12px;height:12px;flex-shrink:0}.plfy-action-danger{color:#ef4444}.plfy-action-danger:hover{background:#ef44440d;color:#dc2626}.plfy-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:300px;text-align:center;padding:var(--space-2xl);animation:fadeIn var(--duration-slow) var(--ease-smooth)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.plfy-empty-icon{color:var(--color-text-faint);opacity:.3;margin-bottom:var(--space-md)}.plfy-empty-text{font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-xs)}.plfy-empty-hint{font-family:var(--font-mono);font-size:10px;color:var(--color-text-faint)}.plfy-input-area{display:flex;flex-direction:column;padding:var(--space-sm) var(--space-lg) var(--space-md);background:var(--color-bg);border-top:1px solid var(--color-divider);flex-shrink:0;max-height:min(42vh,320px);overflow-y:auto}.plfy-input-wrapper{flex:1;display:flex;align-items:flex-end;gap:8px;padding:8px 12px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--duration-fast)}.plfy-input-wrapper:focus-within{border-color:var(--color-text-muted)}.plfy-input{flex:1;min-height:20px;max-height:120px;overflow-y:auto;background:transparent;border:none;font-family:var(--font-sans);font-size:14px;line-height:1.5;color:var(--color-text);resize:none;outline:none}.plfy-input::placeholder{color:var(--color-text-faint);font-family:var(--font-mono);font-size:12px}.plfy-link-previews{display:flex;flex-direction:column;gap:6px;padding:0 var(--space-md) 6px}.plfy-link-preview-wrap{position:relative}.plfy-link-preview{display:flex;align-items:flex-start;gap:8px;padding:8px;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);position:relative;max-width:100%;color:inherit;text-decoration:none;cursor:pointer;transition:border-color var(--duration-fast),background var(--duration-fast)}.plfy-link-preview:hover{background:var(--color-primary-subtle);border-color:var(--color-border-focus)}.plfy-link-preview-thumb{width:56px;height:56px;flex-shrink:0;position:relative;border-radius:var(--radius-sm);overflow:hidden;background:var(--color-bg-tertiary)}.plfy-link-preview-img{width:56px;height:56px;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.plfy-link-preview-favicon{display:none;position:absolute;inset:0;align-items:center;justify-content:center;background:var(--color-bg-tertiary)}.plfy-link-preview-favicon-img{position:relative;width:28px;height:28px;object-fit:contain;opacity:.82;z-index:1}.plfy-link-preview-icon-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:18px;font-weight:600;color:var(--color-text-muted);background:var(--color-bg-tertiary)}.plfy-link-preview-site{display:flex;align-items:center;gap:4px;min-width:0}.plfy-link-preview-site-icon-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0;border-radius:2px;overflow:hidden;background:var(--color-bg-tertiary)}.plfy-link-preview-site-icon{position:relative;width:14px;height:14px;border-radius:2px;object-fit:contain;z-index:1}.plfy-link-preview-site-icon-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:8px;font-weight:700;color:var(--color-text-muted)}.plfy-link-preview-content{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.plfy-link-preview-title{font-size:12px;font-weight:600;color:var(--color-text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.plfy-link-preview-desc{font-size:11px;color:var(--color-text-muted);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.plfy-link-preview-remove{position:absolute;top:4px;right:4px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:#0000004d;color:var(--color-text);border:none;border-radius:50%;font-size:12px;cursor:pointer;opacity:0;transition:opacity var(--duration-fast)}.plfy-link-preview-wrap:hover .plfy-link-preview-remove,.plfy-link-preview-remove:focus{opacity:1}.plfy-send-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--color-text);border:none;border-radius:var(--radius-sm);color:var(--color-bg);cursor:pointer;transition:all var(--duration-fast);flex-shrink:0}.plfy-send-btn:hover:not(:disabled){background:var(--color-primary-hover)}.plfy-send-btn:active:not(:disabled){opacity:.8}.plfy-send-btn:disabled{background:var(--color-bg-tertiary);color:var(--color-text-faint);cursor:not-allowed}.plfy-send-btn svg{width:16px;height:16px}.plfy-editor-overlay{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;padding:var(--space-lg);z-index:100;animation:overlayIn var(--duration-fast)}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@keyframes overlayOut{0%{opacity:1}to{opacity:0}}@keyframes slideOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(40px)}}@keyframes toastSlideUp{0%{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.plfy-viewer-exit{animation:overlayOut .15s ease-out forwards}.plfy-viewer-exit .plfy-editor{animation:editorOut .15s ease-in forwards}@keyframes editorOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}.plfy-bubble-wrapper[data-removing=true]{animation:slideOutRight .2s ease-in forwards;pointer-events:none}.plfy-editor{width:100%;max-width:560px;max-height:75vh;background:var(--color-bg-elevated);border:1px solid var(--color-border);display:flex;flex-direction:column;overflow:hidden;animation:editorIn var(--duration-slow) var(--ease-spring)}@keyframes editorIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.plfy-editor-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-divider)}.plfy-editor-header h2{font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted)}.plfy-editor-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-fast)}.plfy-editor-close:hover{background:var(--color-primary-subtle);color:var(--color-text)}.plfy-editor-close svg{width:12px;height:12px}.plfy-modal-close{width:28px;height:28px;padding:0;border:1px solid var(--color-border);background:transparent;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast);flex-shrink:0;font-family:var(--font-mono);font-size:12px;line-height:1}.plfy-modal-close:hover{background:var(--color-primary-subtle);color:var(--color-text)}.plfy-tab-close{opacity:.4;transition:all .2s var(--ease-smooth);background:transparent;border:none;border-radius:var(--radius-sm);width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;font-weight:500;color:var(--color-text-muted);margin-left:6px;position:relative}.plfy-tab-item:hover .plfy-tab-close{opacity:.8}.plfy-tab-close:hover{background:#ef4444;color:#fff;opacity:1;transform:scale(1.1);box-shadow:0 2px 8px #ef44444d}.plfy-tab-close:active{transform:scale(.95)}.plfy-editor textarea{flex:1;width:100%;padding:var(--space-lg);border:none;font-family:var(--font-sans);font-size:14px;line-height:1.65;color:var(--color-text);resize:none;outline:none;background:var(--color-bg-elevated)}.plfy-editor textarea::placeholder{color:var(--color-text-faint)}.plfy-editor-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-top:1px solid var(--color-divider);gap:var(--space-md)}.plfy-shortcut{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:10px;color:var(--color-text-faint)}.plfy-shortcut kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:2px;font-family:var(--font-mono);font-size:9px}.plfy-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:6px 14px;font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--duration-fast)}.plfy-btn-secondary{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.plfy-btn-secondary:hover{background:var(--color-primary-subtle);color:var(--color-text)}.plfy-btn-primary{background:var(--color-text);color:var(--color-bg)}.plfy-btn-primary:hover{opacity:.9}.plfy-loading-screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--color-bg);gap:var(--space-md)}.plfy-loading-logo svg{width:40px;height:40px;animation:loadPulse 2s ease-in-out infinite}@keyframes loadPulse{0%,to{opacity:1}50%{opacity:.3}}.plfy-loading-text{font-family:var(--font-mono);font-size:10px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.15em}.plfy-user-menu{position:relative}.plfy-user-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-fast)}.plfy-user-btn:hover{border-color:var(--color-text-muted);color:var(--color-text)}.plfy-user-dropdown{position:absolute;top:calc(100% + 4px);right:0;min-width:200px;background:var(--color-bg-elevated);border:1px solid var(--color-border);z-index:100;overflow:hidden;animation:menuIn var(--duration-fast) var(--ease-smooth)}.plfy-user-email{padding:8px 12px;border-bottom:1px solid var(--color-divider);font-family:var(--font-mono);font-size:10px;color:var(--color-text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plfy-user-dropdown-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:8px 12px;background:none;border:none;font-family:var(--font-mono);font-size:11px;color:var(--color-text-secondary);cursor:pointer;transition:background var(--duration-fast);text-align:left}.plfy-user-dropdown-item:hover{background:var(--color-primary-subtle);color:#ef4444}.plfy-auth{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:200;overflow:hidden}.plfy-auth-bg{position:absolute;inset:0;background:var(--color-bg);z-index:0}.plfy-auth-grid{position:absolute;inset:0;background-image:linear-gradient(var(--color-border) 1px,transparent 1px),linear-gradient(90deg,var(--color-border) 1px,transparent 1px);background-size:60px 60px;opacity:.15;mask-image:radial-gradient(ellipse at center,black 20%,transparent 60%);-webkit-mask-image:radial-gradient(ellipse at center,black 20%,transparent 60%)}.plfy-auth-glow{position:absolute;top:50%;left:50%;width:400px;height:400px;transform:translate(-50%,-50%);background:radial-gradient(circle,var(--color-primary-subtle) 0%,transparent 70%);opacity:.3;animation:authGlow 6s ease-in-out infinite}@keyframes authGlow{0%,to{opacity:.15}50%{opacity:.3}}.plfy-auth-card{position:relative;z-index:1;width:100%;max-width:360px;padding:var(--space-2xl);background:var(--color-bg-elevated);border:1px solid var(--color-border);animation:authCardIn var(--duration-slow) var(--ease-spring)}@keyframes authCardIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.plfy-auth-logo{display:flex;flex-direction:column;align-items:center;margin-bottom:var(--space-xl)}.plfy-auth-title{font-family:var(--font-mono);font-size:14px;font-weight:600;letter-spacing:.2em;color:var(--color-text);text-transform:uppercase;margin-top:var(--space-md);text-decoration:underline;text-underline-offset:4px}.plfy-auth-subtitle{font-family:var(--font-mono);font-size:10px;color:var(--color-text-muted);margin-top:var(--space-xs);letter-spacing:.05em}.plfy-auth-form{display:flex;flex-direction:column;gap:var(--space-md)}.plfy-auth-field{display:flex;flex-direction:column;gap:var(--space-xs)}.plfy-auth-label{font-family:var(--font-mono);font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted)}.plfy-auth-input{width:100%;padding:8px 12px;background:transparent;border:1px solid var(--color-border);font-family:var(--font-sans);font-size:14px;color:var(--color-text);outline:none;transition:border-color var(--duration-fast)}.plfy-auth-input::placeholder{color:var(--color-text-faint)}.plfy-auth-input:focus{border-color:var(--color-text-muted)}.plfy-auth-submit{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:8px var(--space-md);background:var(--color-text);border:none;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--color-bg);cursor:pointer;transition:opacity var(--duration-fast);margin-top:var(--space-sm)}.plfy-auth-submit:hover:not(:disabled){opacity:.9}.plfy-auth-submit:disabled{opacity:.4;cursor:not-allowed}.plfy-spinner{width:14px;height:14px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.plfy-auth-toggle{text-align:center;margin-top:var(--space-lg)}.plfy-auth-toggle p{font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted)}.plfy-auth-link{background:none;border:none;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--color-text);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.plfy-auth-link:hover{opacity:.8}.plfy-auth-guest{margin-top:var(--space-lg);text-align:center}.plfy-auth-guest-btn{background:transparent;border:1px solid var(--color-border);padding:6px var(--space-lg);font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-fast)}.plfy-auth-guest-btn:hover{border-color:var(--color-text-muted);color:var(--color-text)}.plfy-auth-guest-hint{font-family:var(--font-mono);font-size:9px;color:var(--color-text-faint);margin-top:var(--space-sm);letter-spacing:.03em}.plfy-toast-container{position:fixed;bottom:80px;right:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm);z-index:1000;pointer-events:none}.plfy-toast{display:flex;align-items:center;gap:var(--space-sm);padding:8px 12px;background:var(--color-bg-elevated);border:1px solid var(--color-border);font-family:var(--font-mono);font-size:11px;pointer-events:auto;animation:toastSlideUp .25s cubic-bezier(.16,1,.3,1);max-width:320px}@keyframes toastIn{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.plfy-toast-icon{display:flex;flex-shrink:0}.plfy-toast-message{flex:1;color:var(--color-text)}.plfy-toast-close{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;flex-shrink:0}.plfy-toast-close:hover{color:var(--color-text)}.plfy-toast-success{border-left:2px solid #22c55e}.plfy-toast-success .plfy-toast-icon{color:#22c55e}.plfy-toast-error{border-left:2px solid #ef4444}.plfy-toast-error .plfy-toast-icon{color:#ef4444}.plfy-toast-warning{border-left:2px solid #f59e0b}.plfy-toast-warning .plfy-toast-icon{color:#f59e0b}.plfy-toast-info{border-left:2px solid var(--color-accent)}.plfy-toast-info .plfy-toast-icon{color:var(--color-accent)}.plfy-toast-action{gap:6px}.plfy-toast-action-btn{font-family:var(--font-mono);font-size:10px;font-weight:500;padding:2px 8px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-primary-subtle);color:var(--color-accent);cursor:pointer;transition:all var(--duration-fast);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.plfy-toast-action-btn:hover{background:var(--color-accent);color:var(--color-bg);border-color:var(--color-accent)}@media(max-width:768px){.plfy-sidebar{width:240px}.plfy-main{margin-left:var(--sidebar-width)}}@media(max-width:640px){.plfy-hamburger{display:flex}.plfy-sidebar{transform:translate(-100%);width:min(88vw,320px);max-width:calc(100vw - 24px);z-index:30;background:var(--color-bg);padding:var(--space-sm);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.plfy-sidebar.open{transform:translate(0)}.plfy-sidebar-overlay{display:block;z-index:25}.plfy-sidebar-header{min-height:44px;padding:var(--space-sm)}.plfy-sidebar-add{width:36px;height:36px}.plfy-sidebar-item{min-height:44px;padding:8px var(--space-sm);gap:10px}.plfy-sidebar-actions-trigger{opacity:.72;width:36px;height:36px;flex-shrink:0}.plfy-sidebar-actions-popover{padding:6px 8px}.plfy-sidebar-action{min-height:36px;padding:0 10px}.plfy-folder-edit-popover{padding:14px;margin:6px 0 10px}.plfy-folder-edit-input{min-height:40px;font-size:16px}.plfy-folder-color-chip{width:32px;height:32px}.plfy-main{margin-left:0}.plfy-header{padding:0 var(--space-md)}.plfy-main-header{padding:var(--space-sm) var(--space-md) 0}.plfy-messages,.plfy-input-area{padding:var(--space-sm) var(--space-md)}.plfy-bubble-wrapper{max-width:100%}.plfy-editor-overlay{padding:0;align-items:flex-end}.plfy-editor{max-height:85vh}.plfy-editor-footer{flex-direction:column;gap:var(--space-sm)}.plfy-shortcut{display:none}.plfy-btn{width:100%;justify-content:center}.plfy-toast-container{bottom:60px;right:var(--space-sm);left:var(--space-sm)}.plfy-toast{max-width:none}.plfy-auth-card{margin:var(--space-md);padding:var(--space-lg)}.plfy-version{display:none}}:focus-visible{outline:1px solid var(--color-text-muted);outline-offset:1px}.plfy-attachments{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-sm)}.plfy-att-image-wrap{position:relative;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--color-border);max-width:280px;z-index:0}.plfy-att-image{display:block;width:100%;max-height:200px;object-fit:cover;cursor:pointer;transition:opacity var(--duration-fast)}.plfy-att-image:hover{opacity:.85}.plfy-att-image-wrap .plfy-att-name{display:block;padding:4px 8px;font-family:var(--font-mono);font-size:9px;color:var(--color-text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--color-primary-subtle)}.plfy-att-media{max-width:320px;width:100%;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;position:relative;z-index:0}.plfy-att-video{display:block;width:100%;max-height:200px;background:#000}.plfy-att-audio-header{display:flex;align-items:center;gap:var(--space-sm);padding:8px 10px;background:var(--color-primary-subtle)}.plfy-att-audio{display:block;width:100%;height:36px}.plfy-att-icon{font-size:16px;line-height:1}.plfy-att-name{font-family:var(--font-mono);font-size:10px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plfy-att-size{font-family:var(--font-mono);font-size:9px;color:var(--color-text-faint)}.plfy-att-doc{display:flex;align-items:center;gap:var(--space-sm);padding:8px 10px;background:var(--color-primary-subtle);border:1px solid var(--color-border);border-radius:var(--radius-sm);max-width:280px;cursor:default}.plfy-att-doc-icon{font-size:22px;line-height:1;flex-shrink:0}.plfy-att-doc-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.plfy-att-download{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;flex-shrink:0;text-decoration:none;transition:all var(--duration-fast)}.plfy-att-download:hover{border-color:var(--color-text-muted);color:var(--color-text)}.plfy-att-download svg{width:14px;height:14px}.plfy-attach-indicator{display:inline-flex;align-items:center;gap:2px;margin-left:6px}.plfy-pending-files{display:flex;flex-wrap:wrap;gap:var(--space-sm);max-height:136px;overflow-y:auto;margin-bottom:var(--space-sm)}.plfy-pending-thumb{position:relative;width:64px;height:64px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--color-border)}.plfy-pending-thumb img{width:100%;height:100%;object-fit:cover}.plfy-pending-thumb .plfy-pending-label{display:none}.plfy-pending-doc{display:flex;align-items:center;gap:6px;padding:6px 8px;background:var(--color-primary-subtle);border:1px solid var(--color-border);border-radius:var(--radius-sm);max-width:200px}.plfy-pending-doc-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.plfy-pending-label{font-family:var(--font-mono);font-size:9px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plfy-pending-remove{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--color-overlay);border:none;border-radius:var(--radius-full);color:var(--color-text);cursor:pointer;position:absolute;top:2px;right:2px;opacity:.8;transition:opacity var(--duration-fast)}.plfy-pending-doc .plfy-pending-remove{position:static;background:transparent;color:var(--color-text-muted);flex-shrink:0}.plfy-pending-remove:hover{opacity:1}.plfy-pending-remove svg{width:10px;height:10px}.plfy-input-row{display:flex;align-items:flex-end;gap:var(--space-sm);width:100%}.plfy-attach-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;flex-shrink:0;transition:all var(--duration-fast)}.plfy-attach-btn:hover{border-color:var(--color-text-muted);color:var(--color-text)}.plfy-attach-btn svg{width:16px;height:16px}.plfy-messages.dragging{position:relative}.plfy-drop-zone{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--color-overlay);z-index:50;pointer-events:none}.plfy-drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-xl);border:2px dashed var(--color-text-muted);border-radius:var(--radius-lg);color:var(--color-text)}.plfy-drop-zone-content svg{width:32px;height:32px;opacity:.6}.plfy-drop-zone-content span{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em}.plfy-editor-attachments{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--color-divider);max-height:200px;overflow-y:auto}.plfy-viewer-overlay{position:fixed;inset:0;z-index:1000;background:#000000eb;display:flex;align-items:center;justify-content:center;animation:plfy-fade-in .15s ease}.plfy-viewer{display:flex;flex-direction:column;width:100%;height:100%;max-width:100vw;max-height:100vh;position:relative}.plfy-viewer-header{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#0009;color:#fff;flex-shrink:0}.plfy-viewer-name{font-weight:600;font-size:14px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plfy-viewer-size,.plfy-viewer-counter{font-size:12px;opacity:.7}.plfy-viewer-download{color:#fff;opacity:.8;cursor:pointer;display:flex;align-items:center}.plfy-viewer-download:hover{opacity:1}.plfy-viewer-download svg{width:20px;height:20px}.plfy-viewer-close{background:none;border:none;cursor:pointer;color:#fff;opacity:.8;padding:4px;display:flex;align-items:center}.plfy-viewer-close:hover{opacity:1}.plfy-viewer-close svg{width:24px;height:24px}.plfy-viewer-content{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:0}.plfy-viewer-image{max-width:100%;max-height:100%;object-fit:contain}.plfy-viewer-video{max-width:100%;max-height:100%}.plfy-viewer-pdf{width:100%;height:100%;border:none;background:#fff;border-radius:4px}.plfy-viewer-document{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;text-align:center;color:#fff}.plfy-viewer-doc-icon{font-size:48px;opacity:.9}.plfy-viewer-doc-name{font-family:var(--font-mono);font-size:14px;font-weight:500;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plfy-viewer-doc-meta{font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted);opacity:.7}.plfy-viewer-doc-download{display:inline-block;margin-top:8px;padding:8px 20px;background:var(--color-accent);color:#09090b;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:11px;font-weight:500;text-decoration:none;transition:all var(--duration-fast);letter-spacing:.02em}.plfy-viewer-doc-download:hover{opacity:.9;transform:translateY(-1px)}.plfy-viewer-audio-wrap{display:flex;flex-direction:column;align-items:center;gap:16px;padding:40px;color:#fff}.plfy-viewer-audio-icon{font-size:64px}.plfy-viewer-audio-name{font-size:16px;font-weight:500}.plfy-viewer-audio{width:360px;max-width:90vw}.plfy-viewer-loading,.plfy-viewer-error{color:#fff;font-size:18px;opacity:.8}.plfy-viewer-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff1a;border:none;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .15s}.plfy-viewer-nav:hover{background:#ffffff40}.plfy-viewer-nav svg{width:28px;height:28px}.plfy-viewer-prev{left:16px}.plfy-viewer-next{right:16px}.plfy-sync-indicator{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:500;color:var(--color-text-muted);padding:2px 8px;border-radius:10px;white-space:nowrap}.plfy-sync-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.plfy-sync-indicator.synced .plfy-sync-dot{background:#22c55e}.plfy-sync-indicator.syncing .plfy-sync-dot{background:#f59e0b;animation:plfy-pulse 1s ease-in-out infinite}.plfy-sync-indicator.error .plfy-sync-dot{background:#ef4444}.plfy-sync-indicator.idle .plfy-sync-dot{background:#6b7280}@keyframes plfy-fade-in{0%{opacity:0}to{opacity:1}}@keyframes plfy-pulse{0%,to{opacity:1}50%{opacity:.4}}.plfy-att-status{font-size:10px;color:var(--color-text-muted);font-style:italic;margin-left:4px}.plfy-att-error{opacity:.7}.plfy-confirm-overlay{position:fixed;inset:0;z-index:900;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;padding:var(--space-lg);animation:overlayIn var(--duration-fast)}.plfy-confirm-dialog{background:var(--color-bg-elevated);border:1px solid var(--color-border);padding:var(--space-lg);max-width:380px;width:90vw;box-shadow:var(--shadow-modal);animation:confirmIn var(--duration-slow) var(--ease-spring)}@keyframes confirmIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.plfy-confirm-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:0 0 var(--space-md);border-bottom:1px solid var(--color-divider);margin-bottom:var(--space-md)}.plfy-confirm-dialog h2{margin:0;font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted)}.plfy-confirm-dialog p{margin:0 0 12px;font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted);line-height:1.6}.plfy-confirm-dialog blockquote{margin:0 0 16px;padding:10px 12px;background:var(--color-bg-secondary);border-left:2px solid #ef4444;font-family:var(--font-mono);font-size:11px;color:var(--color-text);max-height:80px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.plfy-confirm-actions{display:flex;gap:8px;justify-content:flex-end}.plfy-btn{padding:6px 14px;border-radius:var(--radius-sm);border:1px solid var(--color-border);font-family:var(--font-mono);font-size:11px;font-weight:500;cursor:pointer;transition:all var(--duration-fast);letter-spacing:.02em}.plfy-btn:hover{opacity:.9;transform:translateY(-1px)}.plfy-btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.plfy-btn-danger{background:#ef4444;color:#fff;border-color:#ef4444}.plfy-btn-danger:hover{background:#dc2626;border-color:#dc2626}.plfy-btn-primary{background:var(--color-accent);color:#09090b;border-color:var(--color-accent)}.plfy-viewer-file-card{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 24px;text-align:center}.plfy-viewer-file-icon{font-size:48px;line-height:1}.plfy-viewer-file-name{font-family:var(--font-sans);font-size:16px;font-weight:500;color:var(--color-text);word-break:break-all}.plfy-viewer-file-meta{font-family:var(--font-mono);font-size:12px;color:var(--color-text-muted)}.plfy-viewer-file-download-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--color-accent);color:var(--color-text-on-accent, #fff);border-radius:6px;font-family:var(--font-sans);font-size:14px;font-weight:500;text-decoration:none;cursor:pointer;transition:opacity var(--duration-fast)}.plfy-viewer-file-download-btn:hover{opacity:.85}.plfy-viewer-file-download-btn svg{width:14px;height:14px}.plfy-link-previews{padding:4px 12px;display:flex;flex-direction:column;gap:4px}.plfy-link-preview{display:flex;align-items:flex-start;gap:10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;padding:8px 10px;position:relative;max-width:100%;overflow:hidden}.plfy-link-preview-img{width:48px;height:48px;border-radius:4px;object-fit:cover;flex-shrink:0;background:var(--color-border)}.plfy-link-preview-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.plfy-link-preview-site{font-size:10px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.plfy-link-preview-title{font-size:13px;font-weight:600;color:var(--color-text);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plfy-link-preview-desc{font-size:11px;color:var(--color-text-muted);line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plfy-link-preview-remove{position:absolute;top:4px;right:4px;background:#0000004d;color:#fff;border:none;border-radius:50%;width:20px;height:20px;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;opacity:0;transition:opacity .15s}.plfy-link-preview:hover .plfy-link-preview-remove{opacity:1}.plfy-folder-icon{display:inline-flex;align-items:center;width:16px;height:16px;color:var(--color-text-muted);transition:color var(--duration-fast);flex-shrink:0}.plfy-sidebar-item:hover .plfy-folder-icon,.plfy-sidebar-item.selected .plfy-folder-icon{color:inherit}.plfy-folder-edit-popover{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:12px;margin:4px 0 8px;display:flex;flex-direction:column;gap:8px}.plfy-folder-edit-header{display:flex;align-items:center;justify-content:space-between}.plfy-folder-edit-title{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.plfy-folder-edit-close{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:14px;padding:2px 4px;border-radius:3px;transition:color var(--duration-fast),background var(--duration-fast)}.plfy-folder-edit-close:hover{color:var(--color-text);background:var(--color-primary-subtle)}.plfy-folder-edit-input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;padding:6px 10px;font-family:var(--font-mono);font-size:13px;color:var(--color-text);outline:none;transition:border-color var(--duration-fast)}.plfy-folder-edit-input:focus{border-color:var(--color-accent)}.plfy-folder-edit-colors{display:flex;gap:6px;flex-wrap:wrap}.plfy-folder-color-chip{width:22px;height:22px;border:2px solid transparent;border-radius:var(--radius-full);cursor:pointer;padding:0;transition:transform var(--duration-fast),border-color var(--duration-fast)}.plfy-folder-color-chip:hover{transform:scale(1.15)}.plfy-folder-color-chip.selected{border-color:var(--color-text);transform:scale(1.1)}.plfy-folder-edit-actions{display:flex;gap:6px;justify-content:flex-end}.plfy-sidebar-item.plfy-sidebar-edit{display:none}.plfy-att-file-card{display:flex;align-items:center;gap:10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;padding:10px 12px;margin:6px 0;cursor:default;transition:background var(--duration-fast)}.plfy-att-file-card:hover{background:var(--color-primary-subtle)}.plfy-att-file-card-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;background:var(--color-surface);border-radius:4px}.plfy-att-file-icon-emoji{font-size:18px;line-height:1}.plfy-att-file-card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.plfy-att-file-name{font-family:var(--font-sans);font-size:13px;font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plfy-att-file-meta{font-family:var(--font-mono);font-size:10px;color:var(--color-text-muted)}.plfy-att-file-download{display:flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;background:transparent;border:1px solid var(--color-border);border-radius:4px;cursor:pointer;color:var(--color-text-muted);transition:color var(--duration-fast),border-color var(--duration-fast)}.plfy-att-file-download:hover{color:var(--color-accent);border-color:var(--color-accent)}.plfy-att-file-download svg{width:14px;height:14px}.plfy-att-error{cursor:pointer}.plfy-att-error:hover{background:var(--color-primary-subtle)}.plfy-orphaned-badge{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 8px;margin:4px 0 -4px -8px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:4px;font-size:10px;color:var(--color-text-muted)}.plfy-orphaned-remove{background:none;border:1px solid var(--color-border);border-radius:3px;padding:2px 6px;font-size:10px;cursor:pointer;color:var(--color-text)}.plfy-orphaned-remove:hover{background:#ef44441a;border-color:#ef4444;color:#ef4444}.plfy-trash-panel{flex:1;overflow-y:auto;padding:var(--space-md) var(--space-lg)}.plfy-trash-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--space-md);border-bottom:1px solid var(--color-divider);margin-bottom:var(--space-md)}.plfy-trash-header-left,.plfy-trash-header-right{display:flex;align-items:center;gap:var(--space-sm)}.plfy-trash-icon{display:flex;align-items:center;color:var(--color-text-muted);opacity:.6}.plfy-trash-icon svg{width:16px;height:16px}.plfy-trash-title{font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--color-text);margin:0}.plfy-trash-retention{font-family:var(--font-mono);font-size:9px;color:var(--color-text-muted);letter-spacing:.05em}.plfy-trash-empty-btn{font-family:var(--font-mono);font-size:10px;font-weight:500;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-fast);text-transform:uppercase;letter-spacing:.05em}.plfy-trash-empty-btn:hover:not(:disabled){border-color:#ef4444;color:#ef4444;background:#ef444414}.plfy-trash-empty-btn:disabled{opacity:.3;cursor:not-allowed}.plfy-trash-close-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-fast)}.plfy-trash-close-btn:hover{color:var(--color-text);border-color:var(--color-text-muted)}.plfy-trash-loading{display:flex;align-items:center;justify-content:center;padding:var(--space-2xl);font-family:var(--font-mono);font-size:10px;color:var(--color-text-muted)}.plfy-trash-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl);text-align:center;gap:var(--space-md)}.plfy-trash-empty-icon{color:var(--color-text-faint);opacity:.3}.plfy-trash-empty-icon svg{width:32px;height:32px}.plfy-trash-empty p{font-family:var(--font-mono);font-size:10px;color:var(--color-text-faint);margin:0}.plfy-trash-section{margin-bottom:var(--space-lg)}.plfy-trash-section-header{display:flex;align-items:center;gap:var(--space-xs);padding-bottom:var(--space-xs);margin-bottom:var(--space-sm);border-bottom:1px solid var(--color-border-hairline)}.plfy-trash-section-count{font-family:var(--font-mono);font-size:9px;font-weight:500;color:var(--color-text-muted)}.plfy-trash-section-label{font-family:var(--font-mono);font-size:9px;color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.1em}.plfy-trash-row{display:flex;align-items:center;padding:8px 0;border-bottom:1px solid var(--color-border-hairline);gap:var(--space-sm);transition:background var(--duration-fast)}.plfy-trash-row:last-child{border-bottom:none}.plfy-trash-row:hover{background:var(--color-primary-subtle)}.plfy-trash-row-info{flex:1;min-width:0}.plfy-trash-row-text{font-family:var(--font-sans);font-size:13px;color:var(--color-text);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}.plfy-trash-row-meta{font-family:var(--font-mono);font-size:9px;color:var(--color-text-muted);margin-top:2px;letter-spacing:.03em}.plfy-trash-restore-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer;flex-shrink:0;transition:all var(--duration-fast)}.plfy-trash-restore-btn:hover{color:var(--color-accent);border-color:var(--color-accent);background:#60a5fa14}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
