@import "https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,600;8..60,700&display=swap";:root{--color-bg:#f7f5ef;--color-surface:#fff;--color-surface-subtle:#e4ece7;--color-border:#e4ece7;--color-heading:#202522;--color-text-muted:#66706a;--color-accent:#6b8e7b;--color-error:#b3453f;--color-error-bg:#f7e9e8;--radius:8px;--spacing:16px;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading:"Source Serif 4", Georgia, "Times New Roman", serif}*{box-sizing:border-box}body{font-family:var(--font-body);background:var(--color-bg);color:var(--color-heading);margin:0}h1,h2,h3{font-family:var(--font-heading);color:var(--color-heading);font-weight:600}.home-page{max-width:680px;margin:0 auto;padding:48px 20px 32px}.home-header{margin-bottom:32px}.home-page h1{letter-spacing:-.01em;margin:0 0 6px;font-size:2.25rem;line-height:1.15}.home-tagline{color:var(--color-text-muted);margin:0 0 28px;font-size:.95rem}.search-bar{width:100%;font-size:.95rem;font-family:var(--font-body);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-heading);margin-bottom:36px;padding:11px 16px}.search-bar::placeholder{color:var(--color-text-muted)}.search-bar:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #6b8e7b1f}.post-list{flex-direction:column;margin-bottom:32px;display:flex}.post-card{border-bottom:1px solid var(--color-border);padding:26px 0}.post-card:first-child{padding-top:0}.post-card h2{margin:0 0 6px;font-size:1.3rem;font-weight:600;line-height:1.3}.post-card h2 a{color:var(--color-heading);text-decoration:none}.post-card h2 a:hover{color:var(--color-accent)}.post-meta{font-family:var(--font-body);color:var(--color-text-muted);margin:0 0 10px;font-size:.82rem}.post-card p:last-child{color:var(--color-text-muted);margin:0;font-size:.95rem;line-height:1.55}.loading-state,.empty-state{text-align:center;color:var(--color-text-muted);padding:48px 0;font-size:.95rem}.error-state{text-align:center;background:var(--color-error-bg);border:1px solid var(--color-error);border-radius:var(--radius);padding:24px}.error-state p{color:var(--color-error);margin:0 0 12px}.error-state button{background:var(--color-error);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;padding:8px 18px;font-size:.9rem}.error-state button:hover{opacity:.9}.pagination{justify-content:center;align-items:center;gap:16px;padding-top:8px;display:flex}.pagination span{color:var(--color-text-muted);font-size:.85rem}.pagination button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-heading);border-radius:var(--radius);cursor:pointer;padding:7px 16px;font-size:.85rem;transition:background .15s,border-color .15s,color .15s}.pagination button:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.pagination button:disabled{opacity:.4;cursor:not-allowed}.site-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.site-header .logo{font-family:var(--font-heading);color:var(--color-heading);letter-spacing:-.01em;font-size:1.2rem;font-weight:700;text-decoration:none}.site-header nav{align-items:center;gap:18px;display:flex}.site-header nav a{color:var(--color-accent);font-size:.9rem;font-weight:500;text-decoration:none}.site-header nav a:hover{text-decoration:underline}.site-header nav span{color:var(--color-text-muted);font-size:.9rem}.site-header nav button{border:1px solid var(--color-border);color:var(--color-heading);border-radius:var(--radius);cursor:pointer;background:0 0;padding:6px 14px;font-size:.85rem}.site-header nav button:hover{border-color:var(--color-accent);color:var(--color-accent)}.auth-page{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);max-width:400px;margin:64px auto;padding:36px}.auth-page h1{margin-top:0;margin-bottom:22px;font-size:1.6rem}.auth-page form{flex-direction:column;gap:12px;display:flex}.auth-page input{border:1px solid var(--color-border);border-radius:var(--radius);font-size:1rem;font-family:var(--font-body);padding:10px 14px}.auth-page input:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #6b8e7b1f}.auth-page button{background:var(--color-accent);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;margin-top:6px;padding:10px 16px;font-size:1rem}.auth-page button:hover{opacity:.9}.post-form-page{max-width:640px;margin:48px auto;padding:0 20px}.post-form-page h1{margin-bottom:24px;font-size:1.75rem}.post-form-page form{flex-direction:column;gap:14px;display:flex}.post-form-page input,.post-form-page textarea{border:1px solid var(--color-border);border-radius:var(--radius);font-size:1rem;font-family:var(--font-body);resize:vertical;padding:11px 14px}.post-form-page input:focus,.post-form-page textarea:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #6b8e7b1f}.post-form-page button{background:var(--color-accent);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;align-self:flex-start;padding:10px 18px;font-size:1rem}.post-form-page button:hover{opacity:.9}.form-error{color:var(--color-error);margin:0;font-size:.9rem}.post-detail{max-width:640px;margin:48px auto;padding:0 20px}.post-detail .back-link{color:var(--color-accent);margin-bottom:24px;font-size:.85rem;font-weight:500;text-decoration:none;display:inline-block}.post-detail .back-link:hover{text-decoration:underline}.post-detail h1{letter-spacing:-.01em;margin-bottom:10px;font-size:2rem;line-height:1.2}.post-detail .post-meta{margin-bottom:0;font-size:.88rem}.post-detail-content{color:var(--color-heading);margin-top:28px;font-size:1.05rem;line-height:1.75}.post-detail-actions{border-top:1px solid var(--color-border);gap:12px;margin-top:36px;padding-top:22px;display:flex}.btn-edit,.btn-delete{border-radius:var(--radius);cursor:pointer;border:1px solid var(--color-border);background:0 0;padding:8px 16px;font-size:.88rem;text-decoration:none}.btn-edit{color:var(--color-heading)}.btn-edit:hover{border-color:var(--color-accent);color:var(--color-accent)}.btn-delete{color:var(--color-error);border-color:var(--color-error)}.btn-delete:hover{background:var(--color-error-bg)}.comments-section{border-top:1px solid var(--color-border);margin-top:48px;padding-top:28px}.comments-section h2{margin-bottom:20px;font-size:1.15rem}.comment{border-bottom:1px solid var(--color-border);padding:16px 0}.comment:last-of-type{border-bottom:none}.comment-header{align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.comment-author{color:var(--color-heading);font-size:.88rem;font-weight:600}.comment-date{color:var(--color-text-muted);font-size:.8rem}.comment-body{color:var(--color-heading);margin:0;font-size:.92rem;line-height:1.55}.comment-delete{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;margin-top:6px;padding:0;font-size:.78rem}.comment-delete:hover{color:var(--color-error);text-decoration:underline}.comment-form{flex-direction:column;gap:10px;margin-top:24px;display:flex}.comment-form textarea{border:1px solid var(--color-border);border-radius:var(--radius);font-size:.92rem;font-family:var(--font-body);resize:vertical;min-height:70px;padding:10px 14px}.comment-form textarea:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #6b8e7b1f}.comment-form button{background:var(--color-accent);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;align-self:flex-start;padding:8px 18px;font-size:.88rem}.comment-form button:hover{opacity:.9}.comment-login-prompt{color:var(--color-text-muted);margin-top:20px;font-size:.9rem}.comment-login-prompt a{color:var(--color-accent);font-weight:500}.toast-container{z-index:1000;flex-direction:column;gap:.5rem;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.toast{color:#fff;border-radius:6px;padding:.75rem 1.25rem;font-size:.9rem;animation:.2s ease-out toast-in;box-shadow:0 2px 8px #00000026}.toast-success{background-color:#2e7d32}.toast-error{background-color:#c62828}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=640px){.home-page,.post-detail,.post-form-page{padding-left:16px;padding-right:16px}.home-page h1{font-size:1.75rem}.post-detail h1{font-size:1.6rem}.site-header{padding:14px 16px}.site-header nav{gap:12px}.auth-page{margin:32px auto;padding:24px}}.btn-like{border:1px solid var(--color-border);color:var(--color-heading);border-radius:var(--radius);cursor:pointer;background:0 0;padding:8px 16px;font-size:.88rem}.btn-like:hover{border-color:var(--color-accent);color:var(--color-accent)}
