:root{--primary-color:#6366f1;--primary-hover:#4f46e5;--secondary-color:#ec4899;--background-color:#f3f4f6;--surface-color:#fff;--text-primary:#1f2937;--text-secondary:#6b7280;--border-color:#e5e7eb;--success-color:#10b981;--error-color:#ef4444;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--radius-md:.5rem;--radius-lg:.75rem;--radius-full:9999px;--transition-base:all .2s ease-in-out}body{background-color:var(--background-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5}.App{background-image:radial-gradient(at 0 0,#6366f126 0,#0000 50%),radial-gradient(at 100% 0,#ec489926 0,#0000 50%);background-attachment:fixed;flex-direction:column;min-height:100vh;display:flex}.navbar{-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-sm);z-index:100;background-color:#fffc;border-bottom:1px solid #e5e7eb80;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex;position:sticky;top:0}.nav-logo{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));-webkit-text-fill-color:transparent;letter-spacing:-.025em;-webkit-background-clip:text;background-clip:text;font-size:1.75rem;font-weight:800;text-decoration:none}.nav-links{align-items:center;gap:1rem;display:flex}.nav-links a,.nav-links button{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:var(--transition-base);background:0 0;border:none;padding:.5rem 1rem;font-size:.95rem;font-weight:500;text-decoration:none}.nav-links a:hover,.nav-links button:hover{color:var(--primary-color);background-color:#6366f10d}.nav-links a[href=\/create-post],.nav-links a[href=\/auth]{background-color:var(--primary-color);color:#fff;box-shadow:var(--shadow-sm)}.nav-links a[href=\/create-post]:hover,.nav-links a[href=\/auth]:hover{background-color:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}main{box-sizing:border-box;flex:1;width:100%;max-width:1200px;margin:0 auto;padding:2rem}.footer{background-color:var(--surface-color);text-align:center;color:var(--text-secondary);border-top:1px solid var(--border-color);margin-top:auto;padding:2rem;font-size:.875rem}.auth-container{justify-content:center;align-items:center;min-height:80vh;padding:2rem;display:flex}.auth-form{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);text-align:center;background-color:#ffffffe6;border:1px solid #ffffff80;width:100%;max-width:420px;padding:3rem}.auth-form h2{color:var(--text-primary);letter-spacing:-.025em;margin-bottom:2rem;font-size:1.875rem;font-weight:800}.input-group{text-align:left;margin-bottom:1.5rem}.input-group label{color:var(--text-secondary);margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.input-group input{border:1px solid var(--border-color);border-radius:var(--radius-md);box-sizing:border-box;width:100%;transition:var(--transition-base);background-color:#f9fafb;padding:.75rem 1rem;font-size:1rem}.input-group input:focus{border-color:var(--primary-color);background-color:#fff;outline:none;box-shadow:0 0 0 3px #6366f133}button[type=submit]{background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));color:#fff;border-radius:var(--radius-md);cursor:pointer;width:100%;transition:var(--transition-base);box-shadow:var(--shadow-md);border:none;margin-top:1rem;padding:.875rem;font-size:1rem;font-weight:600}button[type=submit]:hover{box-shadow:var(--shadow-lg);filter:brightness(1.1);transform:translateY(-1px)}button[type=submit]:active{transform:translateY(0)}button[type=submit].loading{background:var(--text-secondary);cursor:not-allowed;transform:none}.spinner{border:3px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:20px;height:20px;margin:0 auto;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.message{border-radius:var(--radius-md);color:var(--error-color);background-color:#fef2f2;border:1px solid #fecaca;margin-top:1rem;padding:.75rem;font-size:.875rem}.toggle-form{color:var(--text-secondary);margin-top:2rem;font-size:.875rem}.toggle-form button{color:var(--primary-color);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:.875rem;font-weight:600;transition:color .2s}.toggle-form button:hover{color:var(--primary-hover);text-decoration:underline}.post-container,.post-list-container,.post-detail-container,.post-form-container{background-color:var(--surface-color);border-radius:var(--radius-lg);max-width:800px;box-shadow:var(--shadow-md);border:1px solid #e5e7eb80;margin:2rem auto;padding:2rem}h1,h2{color:var(--text-primary);letter-spacing:-.025em;font-weight:700}.post-list-container ul{gap:1rem;padding:0;list-style:none;display:grid}.post-item{border:1px solid var(--border-color);border-radius:var(--radius-md);transition:var(--transition-base);background-color:#fff;padding:1.5rem;position:relative;overflow:hidden}.post-item:hover{box-shadow:var(--shadow-lg);border-color:var(--primary-color);transform:translateY(-2px)}.post-item h2{color:var(--text-primary);margin:0 0 .5rem;font-size:1.5rem}.post-item p{color:var(--text-secondary);margin:0;line-height:1.6}.comments-section h3{color:var(--text-primary);margin-bottom:1.5rem;font-size:1.5rem}.comment-item{border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:#f9fafb;margin-bottom:1rem;padding:1.25rem}.comment-item p{color:var(--text-primary);margin:0}.comment-item strong{color:var(--primary-color);margin-bottom:.5rem;font-size:.875rem;display:block}.post-form-container .input-group{margin-bottom:1.5rem}.post-form-container label{color:var(--text-primary);margin-bottom:.5rem;font-weight:600;display:block}.post-form-container input,.post-form-container textarea{border:1px solid var(--border-color);border-radius:var(--radius-md);box-sizing:border-box;width:100%;transition:var(--transition-base);background-color:#f9fafb;padding:.875rem;font-family:inherit;font-size:1rem}.post-form-container input:focus,.post-form-container textarea:focus{border-color:var(--primary-color);background-color:#fff;outline:none;box-shadow:0 0 0 3px #6366f133}.post-form-container textarea{resize:vertical;min-height:250px}.post-form-container button{background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));color:#fff;border-radius:var(--radius-md);cursor:pointer;width:100%;transition:var(--transition-base);box-shadow:var(--shadow-md);border:none;padding:1rem;font-size:1rem;font-weight:600}.post-form-container button:hover{box-shadow:var(--shadow-lg);filter:brightness(1.1);transform:translateY(-1px)}.loading-spinner{border:4px solid #0000001a;border-left-color:var(--primary-color);border-radius:50%;width:40px;height:40px;margin:3rem auto;animation:1s linear infinite spin}.error-message{color:var(--error-color);text-align:center;border-radius:var(--radius-md);background-color:#fef2f2;border:1px solid #fecaca;margin:1rem 0;padding:1.5rem}.comment-form textarea{border:1px solid var(--border-color);border-radius:var(--radius-md);box-sizing:border-box;resize:vertical;width:100%;min-height:120px;transition:var(--transition-base);background-color:#f9fafb;padding:1rem;font-family:inherit;font-size:1rem}.comment-form textarea:focus{border-color:var(--primary-color);background-color:#fff;outline:none;box-shadow:0 0 0 3px #6366f133}.comment-form button{background-color:var(--primary-color);color:#fff;border-radius:var(--radius-md);cursor:pointer;width:auto;transition:var(--transition-base);border:none;justify-content:center;align-items:center;margin-top:1rem;margin-left:auto;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;display:inline-flex}.comment-form button:hover{background-color:var(--primary-hover);transform:translateY(-1px)}.skeleton-loading{pointer-events:none}.skeleton-text{border-radius:var(--radius-md);background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6 50%,#e5e7eb 75%) 0 0/200% 100%;margin-bottom:.75rem;animation:1.5s infinite loading}.skeleton-title{width:70%;height:2.5rem}.skeleton-author{width:40%;height:1.25rem}.skeleton-content{width:100%;height:150px}.skeleton-comments-title{width:30%;height:2rem}.skeleton-comment{border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:#f9fafb;margin-bottom:1rem;padding:1.25rem}.skeleton-comment-author{width:50%;height:1rem;margin-bottom:.5rem}.skeleton-comment-content{width:100%;height:3rem}.skeleton-textarea{border-radius:var(--radius-md);background-color:#e5e7eb;width:100%;height:120px;margin-bottom:1rem}.skeleton-button{border-radius:var(--radius-md);background-color:#e5e7eb;width:120px;height:2.5rem;margin-left:auto}.skeleton-post-item{border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:1rem;padding:1.5rem}.skeleton-post-title{width:60%;height:1.5rem;margin-bottom:1rem}.skeleton-post-content{width:90%;height:1rem;margin-bottom:.5rem}.skeleton-post-author{width:30%;height:1rem}@keyframes loading{0%{background-position:-200% 0}to{background-position:200% 0}}.post-actions-dropdown{z-index:10;justify-content:flex-end;margin-top:1.5rem;margin-bottom:1.5rem;display:flex;position:relative}.post-actions-dropdown .dropdown-toggle{color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-base);background-color:#fff;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:flex}.post-actions-dropdown .dropdown-toggle:hover{color:var(--text-primary);border-color:var(--text-secondary);background-color:#f9fafb}.post-actions-dropdown .dropdown-menu{box-shadow:var(--shadow-lg);border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:#fff;flex-direction:column;min-width:160px;margin-top:.5rem;padding:.5rem;animation:.2s ease-out fadeIn;display:none;position:absolute;top:100%;right:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.post-actions-dropdown:hover .dropdown-menu{display:flex}.post-actions-dropdown .dropdown-menu a{color:var(--text-primary);white-space:nowrap;transition:var(--transition-base);border-radius:var(--radius-md);padding:.75rem 1rem;font-size:.875rem;text-decoration:none;display:block}.post-actions-dropdown .dropdown-menu a:hover{background-color:#f3f4f6}.post-actions-dropdown .dropdown-menu a:first-child{color:var(--primary-color)}.post-actions-dropdown .dropdown-menu a:last-child{color:var(--error-color)}.delete-confirm-modal{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background-color:#00000080;justify-content:center;align-items:center;width:100%;height:100%;animation:.2s ease-out fadeIn;display:flex;position:fixed;top:0;left:0}.delete-confirm-modal .modal-content{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);text-align:center;background-color:#fff;border:1px solid #ffffff1a;width:90%;max-width:400px;padding:2rem}.delete-confirm-modal p{color:var(--text-primary);margin-bottom:1.5rem;font-size:1.125rem;font-weight:500}.delete-confirm-modal button{border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-base);border:none;margin:0 .5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600}.delete-confirm-modal .confirm-delete-button{background-color:var(--error-color);color:#fff;box-shadow:var(--shadow-sm)}.delete-confirm-modal .confirm-delete-button:hover{box-shadow:var(--shadow-md);background-color:#dc2626;transform:translateY(-1px)}.delete-confirm-modal .cancel-delete-button{color:var(--text-primary);background-color:#e5e7eb}.delete-confirm-modal .cancel-delete-button:hover{background-color:#d1d5db}