@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: #0171a9;--color-primary-hover: #015a87;--color-primary-subtle: rgba(1, 113, 169, .08);--color-accent: #3b82f6;--color-text: #18181b;--color-text-secondary: #52525b;--color-text-muted: #a1a1aa;--color-bg: #fafafa;--color-bg-elevated: #ffffff;--color-bg-secondary: #f4f4f5;--color-bg-tertiary: #e4e4e7;--color-border: rgba(226, 232, 240, .8);--color-border-subtle: rgba(226, 232, 240, .5);--shadow-card: 0 2px 8px rgba(0, 0, 0, .04), 0 8px 24px rgba(0, 0, 0, .03);--shadow-elevated: 0 4px 12px rgba(0, 0, 0, .06), 0 16px 40px rgba(0, 0, 0, .04);--shadow-modal: 0 24px 48px rgba(0, 0, 0, .12), 0 48px 96px rgba(0, 0, 0, .08);--color-overlay: rgba(0, 0, 0, .4);--color-glass: rgba(255, 255, 255, .85);--font-mono: "Geist Mono", "SF Mono", "Fira Code", 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: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--ease-spring: cubic-bezier(.32, .72, 0, 1);--ease-smooth: cubic-bezier(.16, 1, .3, 1);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s}[data-theme=dark]{--color-primary: #3b9fd9;--color-primary-hover: #5bb5e8;--color-primary-subtle: rgba(59, 159, 217, .12);--color-accent: #60a5fa;--color-text: #fafafa;--color-text-secondary: #a1a1aa;--color-text-muted: #71717a;--color-bg: #09090b;--color-bg-elevated: #18181b;--color-bg-secondary: #27272a;--color-bg-tertiary: #3f3f46;--color-border: rgba(63, 63, 70, .5);--color-border-subtle: rgba(63, 63, 70, .3);--shadow-card: 0 2px 8px rgba(0, 0, 0, .2), 0 8px 24px rgba(0, 0, 0, .15);--shadow-elevated: 0 4px 12px rgba(0, 0, 0, .3), 0 16px 40px rgba(0, 0, 0, .2);--shadow-modal: 0 24px 48px rgba(0, 0, 0, .5), 0 48px 96px rgba(0, 0, 0, .3);--color-overlay: rgba(0, 0, 0, .6);--color-glass: rgba(24, 24, 27, .9)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--font-sans);font-size:15px;line-height:1.65;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),color var(--duration-slow) var(--ease-smooth)}#app{height:100%}::selection{background:var(--color-primary);color:#fff}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px;transition:background var(--duration-fast) var(--ease-smooth)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.plfy-app{display:flex;flex-direction:column;height:100%;max-width:100%;margin:0 auto;background:var(--color-bg);position:relative;overflow:hidden}.plfy-app:before{content:"";position:fixed;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(ellipse at 30% 20%,var(--color-primary-subtle) 0%,transparent 50%);opacity:.5;pointer-events:none;z-index:0;transition:opacity var(--duration-slow) var(--ease-smooth)}.plfy-header{display:flex;justify-content:space-between;align-items:center;padding:16px var(--space-lg);background:var(--color-glass);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border-bottom:1px solid rgba(226,232,240,.6);position:sticky;top:0;z-index:10;transition:all .3s cubic-bezier(.16,1,.3,1)}.plfy-header-left,.plfy-header-right{display:flex;align-items:center;gap:var(--space-md)}.plfy-logo{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-primary);transition:all .2s cubic-bezier(.16,1,.3,1)}.plfy-logo svg{width:24px;height:24px;transition:all .2s cubic-bezier(.16,1,.3,1);filter:drop-shadow(0 2px 4px rgba(1,113,169,.2))}.plfy-logo:hover svg{transform:rotate(-5deg) scale(1.08);filter:drop-shadow(0 4px 8px rgba(1,113,169,.3))}.plfy-title{font-family:var(--font-mono);font-size:15px;font-weight:500;letter-spacing:-.02em;color:var(--color-text);transition:color var(--duration-normal) var(--ease-smooth)}.plfy-version{font-family:var(--font-mono);font-size:10px;color:var(--color-text-muted);padding:2px 6px;background:var(--color-bg-secondary);border-radius:var(--radius-sm);letter-spacing:.05em}.plfy-section-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);position:relative;z-index:5}.plfy-section-title{font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--color-text-muted);letter-spacing:.05em;white-space:nowrap}.plfy-section-underline{flex:1;height:1px;background:linear-gradient(90deg,var(--color-border) 0%,transparent 100%)}.plfy-theme-toggle{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs);background:var(--color-bg-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--duration-normal) var(--ease-spring)}.plfy-theme-toggle:hover{background:var(--color-bg-tertiary);transform:scale(1.02)}.plfy-theme-toggle:active{transform:scale(.98)}.plfy-theme-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-normal) var(--ease-spring)}.plfy-theme-btn.active{background:var(--color-bg-elevated);color:var(--color-primary);box-shadow:var(--shadow-card)}.plfy-theme-btn svg{width:18px;height:18px}.plfy-search{display:flex;align-items:center;gap:var(--space-sm);margin:var(--space-lg);padding:var(--space-sm) var(--space-md);background:var(--color-bg-elevated);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);position:relative;z-index:5;transition:all var(--duration-normal) var(--ease-smooth)}.plfy-search:focus-within{border-color:var(--color-primary);box-shadow:var(--shadow-card),0 0 0 3px var(--color-primary-subtle)}.plfy-search-icon{width:18px;height:18px;color:var(--color-text-muted);flex-shrink:0;transition:color var(--duration-fast) var(--ease-smooth)}.plfy-search:focus-within .plfy-search-icon{color:var(--color-primary)}.plfy-search input{flex:1;border:none;background:transparent;font-family:var(--font-mono);font-size:13px;color:var(--color-text);outline:none;transition:color var(--duration-normal) var(--ease-smooth)}.plfy-search input::placeholder{color:var(--color-text-muted);opacity:.7}.plfy-search-count{font-family:var(--font-mono);font-size:10px;color:var(--color-primary);padding:2px 6px;background:var(--color-primary-subtle);border-radius:var(--radius-sm)}.plfy-list{flex:1;overflow-y:auto;padding:0 var(--space-lg) var(--space-md);margin:0;scroll-behavior:smooth}.plfy-list::-webkit-scrollbar{width:6px}.plfy-list::-webkit-scrollbar-track{background:transparent}.plfy-list::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--color-border) 0%,var(--color-border-subtle) 100%);border-radius:3px}.plfy-list::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}.plfy-item{display:flex;flex-direction:column;gap:6px;padding:14px 18px 14px 58px;margin-bottom:8px;background:var(--color-bg-elevated);border:1px solid rgba(226,232,240,.6);border-radius:12px;cursor:pointer;position:relative;overflow:hidden;box-shadow:0 1px 3px #0000000a;transition:all .2s cubic-bezier(.16,1,.3,1);opacity:0;transform:translateY(8px);animation:slideUp .35s cubic-bezier(.16,1,.3,1) forwards}.plfy-item[data-index="0"]{animation-delay:0ms}.plfy-item[data-index="1"]{animation-delay:60ms}.plfy-item[data-index="2"]{animation-delay:.12s}.plfy-item[data-index="3"]{animation-delay:.18s}.plfy-item[data-index="4"]{animation-delay:.24s}.plfy-item[data-index="5"]{animation-delay:.3s}.plfy-item[data-index="6"]{animation-delay:.36s}.plfy-item[data-index="7"]{animation-delay:.42s}@keyframes slideUp{to{opacity:1;transform:translateY(0)}}.plfy-item:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 0%,rgba(1,113,169,.04) 100%);opacity:0;transition:opacity .2s cubic-bezier(.16,1,.3,1)}.plfy-item:hover{border-color:#0171a94d;transform:translateY(-2px);box-shadow:0 8px 24px #00000014}.plfy-item:hover:before{opacity:1}.plfy-item.selected{border-color:var(--color-primary);background:linear-gradient(135deg,var(--color-primary-subtle) 0%,rgba(1,113,169,.06) 100%);box-shadow:0 4px 16px #0171a926}.plfy-item:active{transform:translateY(0)}.plfy-item-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-bg-secondary) 0%,var(--color-bg-tertiary) 100%);border:1px solid rgba(226,232,240,.8);border-radius:10px;color:var(--color-primary);transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:0 1px 2px #0000000a}.plfy-item:hover .plfy-item-icon{background:linear-gradient(135deg,var(--color-primary-subtle) 0%,var(--color-primary) 100%);border-color:var(--color-primary);color:#fff;transform:translateY(-50%) scale(1.08);box-shadow:0 4px 12px #0171a940}.plfy-item-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md);position:relative;z-index:1}.plfy-item-preview{font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--color-text);line-height:1.5;flex:1;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;transition:color .15s cubic-bezier(.16,1,.3,1);letter-spacing:-.01em}.plfy-item:hover .plfy-item-preview{color:var(--color-primary)}.plfy-item-time{font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;background:var(--color-bg-secondary);padding:3px 8px;border-radius:6px;transition:all .15s cubic-bezier(.16,1,.3,1)}.plfy-item:hover .plfy-item-time{background:var(--color-primary-subtle);color:var(--color-primary)}.plfy-item-meta{display:flex;align-items:center;gap:6px;position:relative;z-index:1;flex-wrap:wrap}.plfy-item-tag{font-family:var(--font-mono);font-size:9px;font-weight:700;color:var(--color-primary);text-transform:uppercase;letter-spacing:.08em;padding:3px 7px;background:linear-gradient(135deg,var(--color-primary-subtle) 0%,rgba(1,113,169,.08) 100%);border-radius:5px;border:1px solid rgba(1,113,169,.15);transition:all .15s cubic-bezier(.16,1,.3,1)}.plfy-item:hover .plfy-item-tag{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:#fff;border-color:transparent;transform:translateY(-1px)}.plfy-item-separator{font-family:var(--font-mono);font-size:9px;color:var(--color-border);opacity:.5}.plfy-item-seed{font-family:var(--font-mono);font-size:9px;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;transition:color .15s cubic-bezier(.16,1,.3,1);background:var(--color-bg-secondary);padding:3px 6px;border-radius:4px}.plfy-item:hover .plfy-item-seed{color:var(--color-text-secondary);background:var(--color-bg-tertiary)}.plfy-item-delete{position:absolute;top:var(--space-sm);right:var(--space-sm);display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--color-bg-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;opacity:0;transform:scale(.8);transition:all var(--duration-normal) var(--ease-spring);z-index:2}.plfy-item:hover .plfy-item-delete{opacity:1;transform:scale(1)}.plfy-item-delete:hover{background:#fee2e2;border-color:#fecaca;color:#dc2626}[data-theme=dark] .plfy-item-delete:hover{background:#dc262626;border-color:#dc26264d;color:#f87171}.plfy-item-delete:active{transform:scale(.95)}.plfy-item-delete svg{width:14px;height:14px}.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{font-family:var(--font-mono);font-size:48px;font-weight:300;color:var(--color-primary);margin-bottom:var(--space-md);opacity:.4;transition:all var(--duration-slow) var(--ease-smooth)}.plfy-empty-icon svg{opacity:.6}.plfy-empty:hover .plfy-empty-icon{opacity:1;transform:scale(1.1)}.plfy-empty-text{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--color-text);text-transform:uppercase;letter-spacing:.12em;margin-bottom:var(--space-xs);transition:color var(--duration-slow) var(--ease-smooth)}.plfy-empty-hint{font-family:var(--font-mono);font-size:12px;color:var(--color-text-muted);transition:color var(--duration-slow) var(--ease-smooth)}.plfy-input-area{display:flex;align-items:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:var(--color-glass);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid var(--color-border-subtle);position:relative;z-index:10;transition:all var(--duration-slow) var(--ease-smooth)}.plfy-input-wrapper{flex:1;display:flex;align-items:flex-end;gap:8px;padding:10px 14px;background:linear-gradient(135deg,var(--color-bg-elevated) 0%,var(--color-bg-tertiary) 100%);border:1.5px solid rgba(226,232,240,.8);border-radius:12px;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:0 1px 2px #0000000a}.plfy-input-wrapper:focus-within{border-color:var(--color-primary);box-shadow:0 4px 16px #0171a926,0 0 0 3px #0171a914;background:var(--color-bg-elevated);transform:translateY(-1px)}.plfy-input-prefix{font-family:var(--font-mono);font-size:15px;color:var(--color-primary);font-weight:700;line-height:1.5;text-shadow:0 1px 2px rgba(1,113,169,.2)}.plfy-send-btn{display:flex;align-items:center;justify-content:center;width:42px;height:42px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);border:none;border-radius:12px;color:#fff;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:0 2px 8px #0171a940;flex-shrink:0}.plfy-send-btn:hover:not(:disabled){transform:translateY(-2px) scale(1.05);box-shadow:0 6px 16px #0171a959}.plfy-send-btn:active:not(:disabled){transform:translateY(0) scale(.98)}.plfy-send-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.plfy-send-btn svg{width:20px;height:20px;transition:transform .2s cubic-bezier(.16,1,.3,1)}.plfy-input{flex:1;min-height:44px;max-height:150px;padding:0;background:transparent;border:none;font-family:var(--font-sans);font-size:14px;color:var(--color-text);resize:none;outline:none;transition:all var(--duration-normal) var(--ease-smooth);line-height:1.5}.plfy-input:focus{border-color:transparent;box-shadow:none}.plfy-input::placeholder{color:var(--color-text-muted);opacity:.7}.plfy-send-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--color-primary);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;transition:all var(--duration-normal) var(--ease-spring);flex-shrink:0;position:relative;overflow:hidden}.plfy-send-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.2) 0%,transparent 50%);opacity:0;transition:opacity var(--duration-fast) var(--ease-smooth)}.plfy-send-btn:hover:not(:disabled):before{opacity:1}.plfy-send-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:scale(1.05);box-shadow:0 4px 12px var(--color-primary-subtle)}.plfy-send-btn:active:not(:disabled){transform:scale(.98)}.plfy-send-btn:disabled{background:var(--color-bg-tertiary);color:var(--color-text-muted);cursor:not-allowed}.plfy-send-btn svg{width:18px;height:18px;transition:transform var(--duration-normal) var(--ease-spring)}.plfy-send-btn:hover:not(:disabled) svg{transform:translate(2px)}.plfy-editor-overlay{position:fixed;inset:0;background:var(--color-overlay);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:var(--space-lg);z-index:100;animation:overlayIn var(--duration-normal) var(--ease-smooth)}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.plfy-editor{width:100%;max-width:560px;max-height:75vh;background:var(--color-bg-elevated);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);display:flex;flex-direction:column;overflow:hidden;animation:editorIn var(--duration-slow) var(--ease-spring);border:1px solid var(--color-border-subtle)}@keyframes editorIn{0%{opacity:0;transform:scale(.95) translateY(20px)}to{opacity:1;transform:scale(1) 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-border-subtle);background:var(--color-bg-secondary)}.plfy-editor-header h2{font-family:var(--font-mono);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--color-primary)}.plfy-editor-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-normal) var(--ease-spring)}.plfy-editor-close:hover{background:var(--color-bg-tertiary);color:var(--color-text);border-color:var(--color-border)}.plfy-editor-close:active{transform:scale(.95)}.plfy-editor-close svg{width:16px;height:16px}.plfy-editor textarea{flex:1;width:100%;padding:var(--space-lg);border:none;font-family:var(--font-sans);font-size:15px;line-height:1.65;color:var(--color-text);resize:none;outline:none;background:var(--color-bg-elevated);transition:color var(--duration-normal) var(--ease-smooth)}.plfy-editor textarea::placeholder{color:var(--color-text-muted)}.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-border-subtle);background:var(--color-bg-secondary);gap:var(--space-md)}.plfy-shortcut{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted)}.plfy-shortcut kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:10px;font-weight:500;box-shadow:0 1px 2px #0000000d}.plfy-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);font-family:var(--font-mono);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--duration-normal) var(--ease-spring)}.plfy-btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text)}.plfy-btn-secondary:hover{background:var(--color-border);transform:translateY(-1px)}.plfy-btn-secondary:active{transform:translateY(0) scale(.98)}.plfy-btn-primary{background:var(--color-primary);color:#fff}.plfy-btn-primary:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px var(--color-primary-subtle)}.plfy-btn-primary:active{transform:translateY(0) scale(.98)}.plfy-loading{display:flex;align-items:center;justify-content:center;height:100%;font-family:var(--font-mono);font-size:12px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.12em}.plfy-loading:after{content:"";width:8px;height:8px;margin-left:var(--space-sm);background:var(--color-primary);border-radius:50%;animation:pulse 1.2s ease-in-out infinite}@media(max-width:640px){.plfy-header{padding:var(--space-sm) var(--space-md)}.plfy-search{margin:var(--space-md)}.plfy-list{padding:0 var(--space-md);padding-bottom:var(--space-md)}.plfy-input-area{padding:var(--space-sm) var(--space-md)}.plfy-editor-overlay{padding:var(--space-sm);align-items:flex-end}.plfy-editor{max-height:85vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;animation:editorSlideUp var(--duration-slow) var(--ease-spring)}@keyframes editorSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.plfy-editor-footer{flex-direction:column;gap:var(--space-sm)}.plfy-shortcut{display:none}.plfy-btn{width:100%;justify-content:center}}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.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-lg);animation:fadeIn var(--duration-slow) var(--ease-smooth)}.plfy-loading-logo svg{width:56px;height:56px;animation:loadPulse 2s ease-in-out infinite}@keyframes loadPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.95)}}.plfy-loading-text{font-family:var(--font-mono);font-size:12px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.12em}.plfy-loading-text:after{content:"";display:inline-block;width:8px;height:8px;margin-left:var(--space-sm);background:var(--color-primary);border-radius:50%;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.plfy-toast-container{position:fixed;bottom:100px;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:var(--space-sm) var(--space-md);background:var(--color-bg-elevated);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-elevated);font-family:var(--font-mono);font-size:13px;pointer-events:auto;animation:toastIn var(--duration-normal) var(--ease-spring);max-width:360px}@keyframes toastIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.plfy-toast-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.plfy-toast-message{flex:1;color:var(--color-text);line-height:1.4}.plfy-toast-close{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;transition:all var(--duration-fast) var(--ease-smooth);flex-shrink:0}.plfy-toast-close:hover{background:var(--color-bg-secondary);color:var(--color-text)}.plfy-toast-success{border-left:3px solid #22c55e}.plfy-toast-success .plfy-toast-icon{color:#22c55e}.plfy-toast-error{border-left:3px solid #ef4444}.plfy-toast-error .plfy-toast-icon{color:#ef4444}.plfy-toast-warning{border-left:3px solid #f59e0b}.plfy-toast-warning .plfy-toast-icon{color:#f59e0b}.plfy-toast-info{border-left:3px solid var(--color-primary)}.plfy-toast-info .plfy-toast-icon{color:var(--color-primary)}[data-theme=dark] .plfy-toast-success{border-left-color:#4ade80}[data-theme=dark] .plfy-toast-success .plfy-toast-icon{color:#4ade80}[data-theme=dark] .plfy-toast-error{border-left-color:#f87171}[data-theme=dark] .plfy-toast-error .plfy-toast-icon{color:#f87171}[data-theme=dark] .plfy-toast-warning{border-left-color:#fbbf24}[data-theme=dark] .plfy-toast-warning .plfy-toast-icon{color:#fbbf24}@media(max-width:640px){.plfy-toast-container{bottom:80px;right:var(--space-sm);left:var(--space-sm)}.plfy-toast{max-width:none}}.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-subtle) 1px,transparent 1px),linear-gradient(90deg,var(--color-border-subtle) 1px,transparent 1px);background-size:40px 40px;opacity:.3;mask-image:radial-gradient(ellipse at center,black 30%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at center,black 30%,transparent 70%)}.plfy-auth-glow{position:absolute;top:50%;left:50%;width:600px;height:600px;transform:translate(-50%,-50%);background:radial-gradient(circle,var(--color-primary-subtle) 0%,transparent 70%);opacity:.6;animation:authGlow 4s ease-in-out infinite}@keyframes authGlow{0%,to{opacity:.4;transform:translate(-50%,-50%) scale(1)}50%{opacity:.7;transform:translate(-50%,-50%) scale(1.1)}}.plfy-auth-card{position:relative;z-index:1;width:100%;max-width:400px;padding:var(--space-2xl);background:var(--color-glass);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);animation:authCardIn var(--duration-slow) var(--ease-spring)}@keyframes authCardIn{0%{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.plfy-auth-logo{display:flex;flex-direction:column;align-items:center;margin-bottom:var(--space-xl);animation:authFadeIn var(--duration-slow) var(--ease-smooth) .1s both}@keyframes authFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.plfy-auth-title{font-family:var(--font-mono);font-size:24px;font-weight:700;letter-spacing:.12em;color:var(--color-text);margin-top:var(--space-md)}.plfy-auth-subtitle{font-family:var(--font-sans);font-size:13px;color:var(--color-text-muted);margin-top:var(--space-xs)}.plfy-auth-form{display:flex;flex-direction:column;gap:var(--space-md);animation:authFadeIn var(--duration-slow) var(--ease-smooth) .2s both}.plfy-auth-field{display:flex;flex-direction:column;gap:var(--space-xs)}.plfy-auth-label{font-family:var(--font-mono);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary)}.plfy-auth-input{width:100%;padding:var(--space-sm) var(--space-md);background:var(--color-bg-elevated);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:14px;color:var(--color-text);outline:none;transition:all var(--duration-normal) var(--ease-smooth)}.plfy-auth-input::placeholder{color:var(--color-text-muted);opacity:.6}.plfy-auth-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle)}.plfy-auth-submit{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-primary);border:none;border-radius:var(--radius-md);font-family:var(--font-mono);font-size:13px;font-weight:600;letter-spacing:.05em;color:#fff;cursor:pointer;transition:all var(--duration-normal) var(--ease-spring);margin-top:var(--space-sm)}.plfy-auth-submit:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 4px 16px var(--color-primary-subtle)}.plfy-auth-submit:active:not(:disabled){transform:translateY(0) scale(.98)}.plfy-auth-submit:disabled{opacity:.7;cursor:not-allowed}.plfy-spinner{width:16px;height:16px;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);animation:authFadeIn var(--duration-slow) var(--ease-smooth) .3s both}.plfy-auth-toggle p{font-family:var(--font-sans);font-size:13px;color:var(--color-text-secondary)}.plfy-auth-link{background:none;border:none;font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--color-primary);cursor:pointer;text-decoration:underline;text-underline-offset:2px;transition:color var(--duration-fast) var(--ease-smooth)}.plfy-auth-link:hover{color:var(--color-primary-hover)}.plfy-auth-guest{margin-top:var(--space-lg);text-align:center;animation:authFadeIn var(--duration-slow) var(--ease-smooth) .4s both}.plfy-auth-guest-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-normal) var(--ease-spring)}.plfy-auth-guest-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-subtle)}.plfy-auth-guest-hint{font-family:var(--font-sans);font-size:11px;color:var(--color-text-muted);margin-top:var(--space-sm);line-height:1.4}.plfy-user-menu{position:relative}.plfy-user-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--color-bg-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-normal) var(--ease-spring)}.plfy-user-btn:hover{background:var(--color-bg-tertiary);color:var(--color-primary);border-color:var(--color-primary)}.plfy-user-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-elevated);z-index:100;overflow:hidden;animation:dropdownIn var(--duration-fast) var(--ease-spring)}@keyframes dropdownIn{0%{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.plfy-user-email{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border-subtle);font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plfy-user-dropdown-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:none;border:none;font-family:var(--font-mono);font-size:12px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-smooth);text-align:left}.plfy-user-dropdown-item:hover{background:var(--color-bg-secondary);color:#ef4444}@media(max-width:640px){.plfy-auth-card{margin:var(--space-md);padding:var(--space-lg)}}
