@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@300;400;500;600;700;800&display=swap";.homepage[data-v-b9ed8789]{min-height:100vh;padding:var(--spacing-xl) var(--spacing-md)}.container[data-v-b9ed8789]{max-width:1200px;margin:0 auto}.floating-actions[data-v-b9ed8789]{position:fixed;top:var(--spacing-lg);left:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-sm);z-index:100}.floating-btn[data-v-b9ed8789]{display:flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border-radius:var(--radius-full);box-shadow:0 4px 16px #00000026,0 0 0 1px #ffffff1a inset;transition:all var(--transition-normal)}.floating-btn svg[data-v-b9ed8789]{width:22px;height:22px;transition:transform var(--transition-normal)}.floating-btn.edit-mode-toggle[data-v-b9ed8789]{background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--color-text-secondary);border:1px solid var(--glass-border)}.floating-btn.edit-mode-toggle[data-v-b9ed8789]:hover{background:#6366f126;border-color:#6366f14d;color:var(--color-cta-mid);transform:scale(1.1);box-shadow:0 6px 24px #6366f140,0 0 0 1px #6366f133 inset}.floating-btn.edit-mode-toggle:hover svg[data-v-b9ed8789]{transform:rotate(-10deg) scale(1.1)}.floating-btn.edit-mode-toggle.active[data-v-b9ed8789]{background:var(--gradient-primary);background-size:200% 200%;color:#fff;border-color:transparent;box-shadow:0 6px 24px #6366f159,0 0 0 1px #fff3 inset}.floating-btn.edit-mode-toggle.active[data-v-b9ed8789]:hover{background-position:100% 0;transform:scale(1.1)}.floating-btn.edit-mode-toggle[data-v-b9ed8789]:focus{outline:none;box-shadow:0 6px 24px #6366f140,0 0 0 3px #6366f133}.floating-btn.add-group-btn[data-v-b9ed8789]{background:var(--gradient-primary);background-size:200% 200%;color:#fff;border:none}.floating-btn.add-group-btn[data-v-b9ed8789]:hover{transform:scale(1.1) rotate(90deg);box-shadow:0 8px 28px #6366f166,0 0 0 1px #ffffff26 inset;background-position:100% 0}.floating-btn.add-group-btn:hover svg[data-v-b9ed8789]{transform:rotate(90deg)}.floating-btn.add-group-btn[data-v-b9ed8789]:active{transform:scale(1.05)}.floating-btn.add-group-btn[data-v-b9ed8789]:focus{outline:none;box-shadow:0 8px 28px #6366f166,0 0 0 3px #6366f133}.loading-state[data-v-b9ed8789],.error-state[data-v-b9ed8789],.empty-state[data-v-b9ed8789]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl) var(--spacing-md);text-align:center;color:var(--color-text-secondary)}.spinner[data-v-b9ed8789]{width:44px;height:44px;position:relative}.spinner[data-v-b9ed8789]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:3px solid transparent;border-top-color:var(--color-cta-mid);animation:spin-b9ed8789 .8s linear infinite}.spinner[data-v-b9ed8789]:after{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border-radius:50%;border:2px solid transparent;border-top-color:var(--color-cta-end);animation:spin-b9ed8789 .6s linear infinite reverse}@keyframes spin-b9ed8789{to{transform:rotate(360deg)}}.error-icon[data-v-b9ed8789],.empty-icon[data-v-b9ed8789]{width:64px;height:64px;color:var(--color-text-muted);margin-bottom:var(--spacing-md);opacity:.6}.retry-button[data-v-b9ed8789]{margin-top:var(--spacing-lg);padding:.875rem 2rem;background:var(--gradient-primary);background-size:200% 200%;color:#fff;border-radius:var(--radius-lg);font-family:Outfit,sans-serif;font-weight:600;box-shadow:0 4px 16px #6366f14d;transition:all var(--transition-normal)}.retry-button[data-v-b9ed8789]:hover{transform:translateY(-2px);box-shadow:0 8px 24px #6366f166;background-position:100% 0}.retry-button[data-v-b9ed8789]:focus{outline:none;box-shadow:0 8px 24px #6366f166,0 0 0 3px #6366f133}.groups[data-v-b9ed8789]{display:flex;flex-direction:column;gap:var(--spacing-2xl)}.group-section[data-v-b9ed8789]{display:flex;flex-direction:column;gap:var(--spacing-lg)}.group-header[data-v-b9ed8789]{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.group-actions[data-v-b9ed8789]{display:flex;align-items:center;gap:var(--spacing-sm)}.add-link-btn[data-v-b9ed8789]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--color-cta-mid);border:1px solid rgba(99,102,241,.2);border-radius:var(--radius-md);transition:all var(--transition-normal);flex-shrink:0}.add-link-btn svg[data-v-b9ed8789]{width:18px;height:18px;transition:all var(--transition-normal)}.add-link-btn[data-v-b9ed8789]:hover{background:#6366f126;border-color:#6366f166;color:var(--color-cta-end);transform:scale(1.05) rotate(90deg);box-shadow:0 0 20px #6366f140}.add-link-btn:hover svg[data-v-b9ed8789]{transform:rotate(90deg)}.add-link-btn[data-v-b9ed8789]:focus{outline:none;box-shadow:0 0 0 3px #6366f133,0 0 20px #6366f126}.edit-group-btn[data-v-b9ed8789]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--color-text-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-md);transition:all var(--transition-normal);flex-shrink:0}.edit-group-btn svg[data-v-b9ed8789]{width:18px;height:18px;transition:all var(--transition-normal)}.edit-group-btn[data-v-b9ed8789]:hover{background:#6366f126;border-color:#6366f14d;color:var(--color-cta-mid);transform:scale(1.05);box-shadow:0 0 20px #6366f133}.edit-group-btn:hover svg[data-v-b9ed8789]{transform:rotate(-10deg) scale(1.1)}.edit-group-btn[data-v-b9ed8789]:focus{outline:none;box-shadow:0 0 0 3px #6366f133,0 0 20px #6366f126}.group-title[data-v-b9ed8789]{font-family:Outfit,sans-serif;font-size:1.5rem;font-weight:700;color:var(--color-text);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-divider);flex:1;letter-spacing:-.02em}.delete-group-btn[data-v-b9ed8789]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--color-text-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-md);transition:all var(--transition-normal);flex-shrink:0}.delete-group-btn svg[data-v-b9ed8789]{width:18px;height:18px;transition:all var(--transition-normal)}.delete-group-btn[data-v-b9ed8789]:hover{background:var(--color-danger-subtle);border-color:var(--color-danger);color:var(--color-danger);transform:scale(1.05);box-shadow:0 0 20px #ef444433}.delete-group-btn:hover svg[data-v-b9ed8789]{transform:scale(1.1)}.delete-group-btn[data-v-b9ed8789]:focus{outline:none;box-shadow:0 0 0 3px #ef444433,0 0 20px #ef444426}.links-grid[data-v-b9ed8789]{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:var(--spacing-md)}.link-card-wrapper[data-v-b9ed8789]{position:relative}.link-actions[data-v-b9ed8789]{position:absolute;top:4px;right:4px;display:flex;gap:4px;z-index:10}.link-edit-btn[data-v-b9ed8789],.link-delete-btn[data-v-b9ed8789]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:all var(--transition-normal);flex-shrink:0}.link-edit-btn svg[data-v-b9ed8789],.link-delete-btn svg[data-v-b9ed8789]{width:14px;height:14px}.link-edit-btn[data-v-b9ed8789]:hover{background:#6366f126;border-color:var(--color-cta-mid);color:var(--color-cta-mid);transform:scale(1.1)}.link-delete-btn[data-v-b9ed8789]:hover{background:var(--color-danger-subtle);border-color:var(--color-danger);color:var(--color-danger);transform:scale(1.1)}.link-card.edit-mode-active[data-v-b9ed8789]{padding-top:calc(var(--spacing-md) + 16px)}@media(min-width:640px){.links-grid[data-v-b9ed8789]{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:var(--spacing-lg)}}@media(min-width:1024px){.links-grid[data-v-b9ed8789]{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:var(--spacing-xl)}}.link-card[data-v-b9ed8789]{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--gradient-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-normal);cursor:pointer;position:relative;overflow:hidden}.link-card[data-v-b9ed8789]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at center,rgba(99,102,241,.1),transparent 70%);opacity:0;transition:opacity var(--transition-normal)}.link-card[data-v-b9ed8789]:hover{transform:translateY(-4px);border-color:var(--color-border-hover);box-shadow:0 12px 32px #0000004d,0 0 0 1px #6366f11a}.link-card[data-v-b9ed8789]:hover:before{opacity:1}.link-card[data-v-b9ed8789]:focus{outline:none;box-shadow:0 12px 32px #0000004d,0 0 0 2px var(--color-cta-mid)}.link-icon[data-v-b9ed8789]{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);transition:all var(--transition-normal);position:relative;z-index:1}.link-card:hover .link-icon[data-v-b9ed8789]{background:var(--color-elevated);border-color:#6366f133;transform:scale(1.05)}.icon-image[data-v-b9ed8789]{width:100%;height:100%;object-fit:contain;border-radius:calc(var(--radius-md) - 2px);padding:4px;opacity:.85}.icon-placeholder[data-v-b9ed8789]{width:100%;height:100%;color:var(--color-text-muted);padding:8px;opacity:.85}.link-name[data-v-b9ed8789]{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);text-align:center;word-break:break-word;position:relative;z-index:1;transition:color var(--transition-normal)}.link-card:hover .link-name[data-v-b9ed8789]{color:var(--color-text)}@media(max-width:640px){.homepage[data-v-b9ed8789]{padding:var(--spacing-lg) var(--spacing-md)}.floating-actions[data-v-b9ed8789]{top:var(--spacing-md);left:var(--spacing-md)}.floating-btn[data-v-b9ed8789]{width:44px;height:44px}.floating-btn svg[data-v-b9ed8789]{width:20px;height:20px}.links-grid[data-v-b9ed8789]{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:var(--spacing-md)}.link-card[data-v-b9ed8789]{padding:var(--spacing-sm)}.link-card.edit-mode-active[data-v-b9ed8789]{padding-top:calc(var(--spacing-sm) + 16px)}}@media(prefers-reduced-motion:reduce){.spinner[data-v-b9ed8789]:before,.spinner[data-v-b9ed8789]:after{animation:none}.link-card[data-v-b9ed8789],.floating-btn[data-v-b9ed8789],.edit-group-btn[data-v-b9ed8789],.delete-group-btn[data-v-b9ed8789],.retry-button[data-v-b9ed8789],.link-edit-btn[data-v-b9ed8789],.link-delete-btn[data-v-b9ed8789]{transition:none}.link-card[data-v-b9ed8789]:hover,.floating-btn[data-v-b9ed8789]:hover{transform:none}}.modal-overlay[data-v-b9ed8789]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md);animation:fadeIn-b9ed8789 .2s ease}@keyframes fadeIn-b9ed8789{0%{opacity:0}to{opacity:1}}.modal-content[data-v-b9ed8789]{background:var(--color-surface);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--spacing-xl);width:100%;max-width:420px;box-shadow:var(--shadow-xl),inset 0 1px #ffffff0d;animation:slideUp-b9ed8789 .3s ease;position:relative}.modal-content[data-v-b9ed8789]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-xl);background:var(--gradient-surface);pointer-events:none}@keyframes slideUp-b9ed8789{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-title[data-v-b9ed8789]{font-family:Outfit,sans-serif;font-size:1.5rem;font-weight:700;color:var(--color-text);margin-bottom:var(--spacing-lg);letter-spacing:-.02em;position:relative;z-index:1}.add-group-form[data-v-b9ed8789]{display:flex;flex-direction:column;gap:var(--spacing-lg);position:relative;z-index:1}.form-field[data-v-b9ed8789]{display:flex;flex-direction:column;gap:var(--spacing-sm)}.form-field label[data-v-b9ed8789]{font-size:.8125rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.form-field input[data-v-b9ed8789]{padding:.875rem var(--spacing-md);background:var(--color-background-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:1rem;font-family:DM Sans,sans-serif;color:var(--color-text);transition:all var(--transition-normal)}.form-field input[data-v-b9ed8789]:focus{outline:none;border-color:var(--color-cta-mid);box-shadow:0 0 0 3px #8b5cf61a,0 0 20px #8b5cf61a;background:var(--color-primary)}.form-field input[data-v-b9ed8789]::placeholder{color:var(--color-text-muted)}.modal-actions[data-v-b9ed8789]{display:flex;gap:var(--spacing-sm);justify-content:flex-end;margin-top:var(--spacing-sm);position:relative;z-index:1}.btn-cancel[data-v-b9ed8789],.btn-confirm[data-v-b9ed8789],.btn-delete[data-v-b9ed8789]{padding:.875rem 1.75rem;border-radius:var(--radius-lg);font-family:Outfit,sans-serif;font-weight:600;font-size:.875rem;transition:all var(--transition-normal);position:relative;overflow:hidden}.btn-cancel[data-v-b9ed8789]{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn-cancel[data-v-b9ed8789]:hover{background:var(--color-border);color:var(--color-text);border-color:var(--color-border-hover)}.btn-confirm[data-v-b9ed8789]{background:var(--gradient-primary);background-size:200% 200%;color:#fff;border:none;box-shadow:0 4px 16px #6366f14d}.btn-confirm[data-v-b9ed8789]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 20px #6366f166;background-position:100% 0}.btn-confirm[data-v-b9ed8789]:active:not(:disabled){transform:translateY(0)}.btn-confirm[data-v-b9ed8789]:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-delete[data-v-b9ed8789]{padding:.875rem 1.75rem;background:linear-gradient(135deg,#ef4444,#dc2626);background-size:200% 200%;color:#fff;border:none;font-family:Outfit,sans-serif;font-weight:600;font-size:.875rem;border-radius:var(--radius-lg);box-shadow:0 4px 16px #ef44444d,inset 0 1px #ffffff1a;transition:all var(--transition-normal);position:relative;overflow:hidden}.btn-delete[data-v-b9ed8789]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at center,rgba(255,255,255,.2),transparent 70%);opacity:0;transition:opacity var(--transition-normal)}.btn-delete[data-v-b9ed8789]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #ef444466,inset 0 1px #ffffff26;background-position:100% 0}.btn-delete[data-v-b9ed8789]:hover:not(:disabled):before{opacity:1}.btn-delete[data-v-b9ed8789]:active:not(:disabled){transform:translateY(0)}.btn-delete[data-v-b9ed8789]:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.delete-confirm-message[data-v-b9ed8789]{margin-bottom:var(--spacing-lg);color:var(--color-text-secondary);line-height:1.6;position:relative;z-index:1;padding:var(--spacing-md);background:var(--color-background-subtle);border-radius:var(--radius-md);border-left:3px solid var(--color-danger)}.error-message[data-v-b9ed8789]{margin-top:var(--spacing-md);color:var(--color-danger);font-size:.875rem;text-align:center;background:#ef44441a;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);position:relative;z-index:1}:root{--color-primary: #FAFAFA;--color-secondary: #F5F5F6;--color-surface: #FFFFFF;--color-elevated: #FFFFFF;--color-cta-start: #6366F1;--color-cta-mid: #8B5CF6;--color-cta-end: #A855F7;--color-danger: #EF4444;--color-danger-hover: #DC2626;--color-danger-subtle: rgba(239, 68, 68, .1);--color-success: #10B981;--color-background: #F8F8FA;--color-background-subtle: #F0F0F2;--color-text: #1A1A1E;--color-text-secondary: #52525B;--color-text-muted: #71717A;--color-border: rgba(0, 0, 0, .08);--color-border-hover: rgba(0, 0, 0, .15);--color-divider: rgba(0, 0, 0, .06);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .1);--shadow-xl: 0 24px 48px rgba(0, 0, 0, .12);--shadow-glow: 0 0 40px rgba(139, 92, 246, .25);--gradient-primary: linear-gradient(135deg, var(--color-cta-start), var(--color-cta-mid), var(--color-cta-end));--gradient-surface: linear-gradient(180deg, rgba(0,0,0,.02) 0%, rgba(0,0,0,.01) 100%);--gradient-border: linear-gradient(135deg, rgba(0,0,0,.1), rgba(0,0,0,.02));--glass-bg: rgba(255, 255, 255, .85);--glass-border: rgba(0, 0, 0, .1);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--color-background);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}#app{min-height:100vh;position:relative}#app:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(99,102,241,.08),transparent),radial-gradient(ellipse 60% 40% at 100% 100%,rgba(168,85,247,.06),transparent);pointer-events:none;z-index:-1}#app:after{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");opacity:.03;pointer-events:none;z-index:-1}a{text-decoration:none;color:inherit}button{border:none;background:none;cursor:pointer;font-family:inherit;position:relative;overflow:hidden}button:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#0000001a;transform:translate(-50%,-50%);transition:width .4s ease,height .4s ease}button:active:after{width:200px;height:200px}
