:root{--font-family-primary:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-size-base:15px;--font-line-height-base:1.6;--font-weight-base:400;--font-size-xs:11px;--font-size-sm:12px;--font-size-md:13px;--font-size-lg:14px;--font-size-xl:15px;--font-size-2xl:16px;--font-size-3xl:18px;--font-size-4xl:20px;--font-size-h3:20px;--font-size-h2:24px;--font-size-h1:32px;--color-surface-base:#080d16;--color-surface-subtle:#0d1524;--color-surface-raised:#111d33;--color-surface-overlay:#172642;--color-surface-hover:#1e3256;--color-surface-active:#253d68;--color-surface-strong:#fff;--color-text-primary:#e2e8f0;--color-text-secondary:#94a3b8;--color-text-tertiary:#fff;--color-text-muted:#64748b;--color-text-inverse:#0f172a;--color-border-default:rgba(148,163,184,.12);--color-border-subtle:rgba(148,163,184,.08);--color-border-hover:rgba(56,189,248,.35);--color-border-focus:#38bdf8;--color-accent-primary:#38bdf8;--color-accent-secondary:#818cf8;--color-accent-hover:#0284c7;--color-accent-glow:rgba(56,189,248,.3);--color-accent-bg:rgba(56,189,248,.1);--color-success:#10b981;--color-success-bg:rgba(16,185,129,.12);--color-success-border:rgba(16,185,129,.25);--color-warning:#f59e0b;--color-warning-bg:rgba(245,158,11,.12);--color-warning-border:rgba(245,158,11,.25);--color-error:#f43f5e;--color-error-bg:rgba(244,63,94,.12);--color-error-border:rgba(244,63,94,.25);--color-purple:#a855f7;--color-purple-bg:rgba(168,85,247,.12);--color-purple-border:rgba(168,85,247,.25);--space-1:4px;--space-2:6px;--space-3:8px;--space-4:12px;--space-5:16px;--space-6:20px;--space-7:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.3);--shadow-md:0 4px 12px -2px rgba(0,0,0,.4),0 2px 6px -1px rgba(0,0,0,.3);--shadow-lg:0 10px 30px -4px rgba(0,0,0,.5),0 4px 10px -2px rgba(0,0,0,.3);--shadow-glow:0 0 24px -4px rgba(56,189,248,.25);--shadow-1:var(--shadow-sm);--shadow-2:var(--shadow-md);--shadow-3:var(--shadow-lg);--motion-instant:100ms cubic-bezier(0.16,1,0.3,1);--motion-fast:180ms cubic-bezier(0.16,1,0.3,1);--motion-normal:240ms cubic-bezier(0.16,1,0.3,1);--motion-slow:320ms cubic-bezier(0.16,1,0.3,1)}*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden;font-family:var(--font-family-primary);background-color:var(--color-surface-base);color:var(--color-text-primary);min-height:100vh;line-height:var(--font-line-height-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(at 0 0,rgba(56,189,248,.07) 0,transparent 50%),radial-gradient(at 100% 0,rgba(129,140,248,.06) 0,transparent 50%),radial-gradient(at 50% 100%,rgba(16,185,129,.04) 0,transparent 50%);background-attachment:fixed}a{color:inherit;text-decoration:none;transition:color var(--motion-fast)}button,input,select,textarea{font-family:inherit;font-size:inherit}:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px}.design-card{background:var(--color-surface-raised);background-image:linear-gradient(180deg,hsla(0,0%,100%,.03),hsla(0,0%,100%,0));border:1px solid var(--color-border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:transform var(--motion-fast),box-shadow var(--motion-fast),border-color var(--motion-fast);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.design-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-lg),var(--shadow-glow)}.glass-card{background:rgba(17,29,51,.75);border:1px solid hsla(0,0%,100%,.08);border-radius:var(--radius-lg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.glass-panel{background:rgba(13,21,36,.85);border:1px solid hsla(0,0%,100%,.06);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.gradient-text{background:linear-gradient(135deg,#fff,#38bdf8 60%,#818cf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.gradient-text-emerald{background:linear-gradient(135deg,#fff,#34d399);-webkit-background-clip:text;-webkit-text-fill-color:transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-surface-base)}::-webkit-scrollbar-thumb{background:rgba(148,163,184,.2);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:rgba(148,163,184,.4)}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.skeleton{background:linear-gradient(90deg,var(--color-surface-raised) 25%,var(--color-surface-overlay) 50%,var(--color-surface-raised) 75%);background-size:1200px 100%;animation:shimmer 1.6s ease-in-out infinite}.skeleton,.skeleton-text{border-radius:var(--radius-sm)}.skeleton-text{height:14px}.skeleton-title{height:24px;border-radius:var(--radius-sm)}.skeleton-card{border-radius:var(--radius-lg);border:1px solid var(--color-border-subtle);background:var(--color-surface-subtle)}.page-container{max-width:1240px;margin:0 auto;padding:2.2rem 1.5rem}.section-header{margin-bottom:var(--space-7)}.section-header h1,.section-header h2{font-size:var(--font-size-h1);color:var(--color-text-tertiary);font-weight:800;letter-spacing:-.025em;margin-bottom:var(--space-2)}.section-header p{color:var(--color-text-secondary);font-size:var(--font-size-xl);max-width:650px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.6rem 1.1rem;border:none;border-radius:var(--radius-md);font-family:inherit;font-size:var(--font-size-md);font-weight:600;cursor:pointer;transition:all var(--motion-fast);text-decoration:none;white-space:nowrap;line-height:1}.btn:disabled{cursor:not-allowed;opacity:.45}.btn:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px}.btn-primary{background:linear-gradient(135deg,#38bdf8,#0284c7);color:#080d16;font-weight:700;box-shadow:0 4px 14px -2px rgba(56,189,248,.4)}.btn-primary:not(:disabled):hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 6px 20px -2px rgba(56,189,248,.5)}.btn-primary:not(:disabled):active{transform:translateY(0)}.btn-secondary{background:var(--color-surface-overlay);color:var(--color-text-primary);border:1px solid var(--color-border-default)}.btn-secondary:not(:disabled):hover{background:var(--color-surface-hover);border-color:var(--color-accent-primary);color:var(--color-text-tertiary);transform:translateY(-1px)}.btn-danger{background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error-border)}.btn-danger:not(:disabled):hover{background:rgba(244,63,94,.22);border-color:var(--color-error)}.btn-ghost{background:transparent;color:var(--color-text-secondary);border:1px solid transparent}.btn-ghost:not(:disabled):hover{background:hsla(0,0%,100%,.05);color:var(--color-text-tertiary)}.btn-sm{padding:.35rem .75rem;font-size:var(--font-size-sm);border-radius:var(--radius-sm)}.btn-xs{padding:.2rem .5rem;font-size:var(--font-size-xs);border-radius:var(--radius-xs)}.input-field{width:100%;padding:.6rem .9rem;border-radius:var(--radius-md);border:1px solid var(--color-border-default);background:rgba(8,13,22,.85);color:var(--color-text-tertiary);font-family:inherit;font-size:var(--font-size-lg);transition:border-color var(--motion-fast),box-shadow var(--motion-fast);outline:none}.input-field::placeholder{color:var(--color-text-muted)}.input-field:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-accent-glow)}.input-field.error{border-color:var(--color-error);box-shadow:0 0 0 3px rgba(244,63,94,.15)}.form-label{display:block;font-size:var(--font-size-md);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-2)}.form-error{font-size:var(--font-size-sm);color:var(--color-error);margin-top:var(--space-2);font-weight:500;display:flex;align-items:center;gap:var(--space-2)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:.2rem .6rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}.badge-reading{background:rgba(56,189,248,.12);color:#38bdf8;border:1px solid rgba(56,189,248,.3)}.badge-finished{background:rgba(16,185,129,.12);color:#34d399;border:1px solid rgba(16,185,129,.3)}.badge-want{background:rgba(245,158,11,.12);color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.badge-lent{background:rgba(168,85,247,.12);color:#c084fc;border:1px solid rgba(168,85,247,.3)}.badge-owner{background:rgba(251,191,36,.15);color:#fde047;border:1px solid rgba(251,191,36,.4)}.badge-editor{background:rgba(56,189,248,.15);color:#7dd3fc;border:1px solid rgba(56,189,248,.4)}.badge-viewer{background:rgba(148,163,184,.15);color:#cbd5e1;border:1px solid rgba(148,163,184,.3)}.pulse-dot{width:8px;height:8px;border-radius:50%;position:relative;display:inline-block}.pulse-dot-green{background-color:#10b981;box-shadow:0 0 8px #10b981}.pulse-dot-green:after{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;border-radius:50%;background-color:rgba(16,185,129,.5);animation:pulse-ring 1.8s cubic-bezier(.24,0,.38,1) infinite}@keyframes pulse-ring{0%{transform:scale(.9);opacity:.9}70%{transform:scale(2.2);opacity:0}to{transform:scale(2.2);opacity:0}}.error-banner{justify-content:space-between;gap:var(--space-4);padding:.75rem 1rem;border-radius:var(--radius-md);background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error);font-size:var(--font-size-md);font-weight:500}.error-banner,.modal-backdrop{display:flex;align-items:center}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(4,7,13,.75);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-out}.modal-content{background:#0f1a2e;border:1px solid hsla(0,0%,100%,.1);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg),0 0 50px -10px rgba(56,189,248,.2);width:100%;max-width:540px;max-height:90vh;overflow-y:auto;animation:scaleIn .22s cubic-bezier(.16,1,.3,1)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes spin{to{transform:rotate(1turn)}}.spinner{display:inline-block;width:14px;height:14px;border:2px solid;border-top:2px solid transparent;border-radius:50%;animation:spin .65s linear infinite;flex-shrink:0}.spinner-lg{width:32px;height:32px;border-width:3px}.nav-link{position:relative;padding:.4rem .75rem;border-radius:var(--radius-md);transition:all var(--motion-fast)}.nav-link:hover{background:hsla(0,0%,100%,.05);color:var(--color-text-tertiary)!important}.nav-link-active{color:#38bdf8!important;background:rgba(56,189,248,.1);font-weight:600!important}.nav-mobile-menu{display:none;flex-direction:column;background:rgba(13,21,36,.98);border-top:1px solid var(--color-border-default);padding:var(--space-4) var(--space-6);gap:var(--space-3)}.nav-mobile-menu.open{display:flex}@media (max-width:860px){.nav-desktop-auth,.nav-desktop-links{display:none!important}.nav-hamburger{display:flex!important}}.nav-hamburger{display:none;background:transparent;border:1px solid var(--color-border-default);color:var(--color-text-tertiary);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);cursor:pointer;font-size:1.2rem;align-items:center;justify-content:center;transition:all var(--motion-fast)}