:root{--bg:#faf8f5;--bg-alt:#f5f2ed;--surface:#fff;--border:#e8e4dc;--border-strong:#d4cfc4;--text:#3d3a35;--text-muted:#6b6660;--text-strong:#1a1815;--accent:#8b4513;--accent-hover:#6b3410;--link:#5c4033;--link-hover:#8b4513;--shadow:0 1px 3px #00000014;--radius:4px}html{scroll-behavior:smooth}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Lora,Georgia,Times New Roman,serif;font-size:17px;line-height:1.7}h1,h2,h3,h4,h5,h6{color:var(--text-strong);font-family:Source Sans Pro,Helvetica Neue,Arial,sans-serif;font-weight:600;line-height:1.3}img{max-width:100%;height:auto}.container{max-width:720px;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}a{text-underline-offset:2px;-webkit-text-decoration:underline #5c40334d;text-decoration:underline #5c40334d;color:var(--link)!important}a:hover{-webkit-text-decoration-color:var(--link-hover);text-decoration-color:var(--link-hover);color:var(--link-hover)!important}a:focus{outline:2px dashed var(--accent);outline-offset:2px}.navbar-dark.bg-dark{border-bottom:1px solid var(--border);box-shadow:none;background-color:var(--surface)!important}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:visited{font-family:Source Sans Pro,sans-serif;font-size:1.25rem;font-weight:600;text-decoration:none;color:var(--text-strong)!important}.navbar-dark .navbar-brand:hover{color:var(--accent)!important}.navbar-dark .navbar-nav .nav-link,.navbar-dark .navbar-nav .nav-link:visited{font-family:Source Sans Pro,sans-serif;font-size:.95rem;text-decoration:none;color:var(--text)!important}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:var(--accent)!important}.navbar-dark .navbar-toggler{border-color:var(--border)}.navbar-dark .navbar-toggler-icon{filter:invert(.4)}.hero{background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius);text-align:center;margin-bottom:2.5rem;padding:3rem 2rem}.hero-title{margin-bottom:.5rem;font-family:Source Sans Pro,sans-serif;font-size:2rem;font-weight:600;color:var(--text-strong)!important}.hero-lead{color:var(--text-muted);margin-bottom:0;font-size:1.05rem;font-style:italic}.posts-section{margin-bottom:3rem}.section-header{border-bottom:2px solid var(--border);justify-content:space-between;align-items:baseline;margin-bottom:1.5rem;padding-bottom:.75rem;display:flex}.section-title{color:var(--text-strong);margin:0;font-family:Source Sans Pro,sans-serif;font-size:1.15rem;font-weight:600}.link-all{color:var(--link);font-family:Source Sans Pro,sans-serif;font-size:.85rem;text-decoration:none}.link-all:hover{color:var(--accent)}.post-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1rem;padding:1.25rem 1.5rem;transition:border-color .2s}.post-card:hover{border-color:var(--border-strong)}.post-card:last-child{margin-bottom:0}.post-content{white-space:pre-line}.post-meta{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.post-date{color:var(--text-muted);font-family:Source Sans Pro,sans-serif;font-size:.8rem}.post-title{margin-bottom:.35rem;font-family:Source Sans Pro,sans-serif;font-size:1.2rem;font-weight:600;line-height:1.35}.post-title a{color:var(--text-strong);text-decoration:none}.post-title a:hover{color:var(--accent)}.post-excerpt{color:var(--text);margin-bottom:.75rem;font-size:.95rem;line-height:1.6}.read-more{color:var(--accent);font-family:Source Sans Pro,sans-serif;font-size:.85rem;font-weight:600;text-decoration:none}.read-more:hover{color:var(--accent-hover);text-decoration:underline}.badge-tag{background:var(--bg-alt);color:var(--accent);text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--border);border-radius:3px;padding:.2rem .5rem;font-family:Source Sans Pro,sans-serif;font-size:.7rem;font-weight:500}.badge{background:var(--bg-alt);color:var(--text)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card .card-header{background:var(--bg-alt);border-bottom:1px solid var(--border);color:var(--text)}.card .card-title{color:var(--text-strong);margin-bottom:.5rem;font-family:Source Sans Pro,sans-serif}.card p,.card small,.card .text-muted{color:var(--text-muted)!important}.btn{border-radius:var(--radius);font-family:Source Sans Pro,sans-serif;font-weight:600;text-decoration:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-outline{border:1px solid var(--border-strong);color:var(--text);background:0 0}.btn-outline:hover{background:var(--bg-alt);color:var(--text-strong);border-color:var(--accent)}.btn-sm{padding:.35rem .75rem;font-size:.85rem}.btn-success{background:#28a745;border-color:#28a745}.btn-success:hover{background:#218838;border-color:#218838}.btn-warning{color:#212529;background:#ffc107;border-color:#ffc107}.btn-warning:hover{background:#e0a800;border-color:#e0a800}.btn-danger{background:#dc3545;border-color:#dc3545}.btn-danger:hover{background:#c82333;border-color:#c82333}footer.bg-dark{border-top:1px solid var(--border);background:var(--bg-alt)!important}footer,footer p{color:var(--text-muted);font-size:.9rem}.form-control,.custom-select{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius)}.form-control:focus,.custom-select:focus{color:var(--text);background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 2px #8b45131a}.form-label{color:var(--text-strong);font-family:Source Sans Pro,sans-serif;font-weight:600}input::placeholder,textarea::placeholder{color:#999}.alert{border-radius:var(--radius);border:1px solid}.alert-success{color:#155724;background:#d4edda;border-color:#c3e6cb}.alert-warning{color:#856404;background:#fff3cd;border-color:#ffeeba}.alert-danger{color:#721c24;background:#f8d7da;border-color:#f5c6cb}code,pre{background:var(--bg-alt);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);font-family:Courier New,Courier,monospace}pre{padding:1rem}code{padding:.15rem .35rem;font-size:.9em}.table{color:var(--text)}.table thead th{border-bottom-color:var(--border);font-family:Source Sans Pro,sans-serif}.table tbody td{border-top-color:var(--border)}.table-striped tbody tr:nth-of-type(odd),.table-hover tbody tr:hover{background-color:var(--bg-alt)}.dataTables_wrapper .dataTables_length label,.dataTables_wrapper .dataTables_filter label,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{font-family:Source Sans Pro,sans-serif;color:var(--text-muted)!important}.dataTables_wrapper .dataTables_filter input,.dataTables_wrapper .dataTables_length select{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius)}.dataTables_wrapper .dataTables_filter input:focus,.dataTables_wrapper .dataTables_length select:focus{border-color:var(--accent);box-shadow:0 0 0 2px #8b45131a}.dataTables_wrapper .dataTables_paginate .paginate_button{border-radius:var(--radius);background:0 0;border:1px solid #0000;color:var(--text)!important}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{border:1px solid var(--border);background:var(--bg-alt)}.dataTables_wrapper .dataTables_paginate .paginate_button.current{border:1px solid var(--accent);background:var(--accent);color:#fff!important}.dropdown-menu{background:var(--surface);border:1px solid var(--border)}.dropdown-item{color:var(--text)}.dropdown-item:hover,.dropdown-item:focus{color:var(--text-strong);background-color:var(--bg-alt)}.modal-content{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.modal-header{border-bottom-color:var(--border)}.modal-footer{border-top-color:var(--border)}.page-link{color:var(--text);background-color:var(--surface);border:1px solid var(--border)}.page-link:hover{color:var(--text-strong);background-color:var(--bg-alt);border-color:var(--border)}.page-item.active .page-link{color:#fff;background-color:var(--accent);border-color:var(--accent)}.login-container{justify-content:center;align-items:center;min-height:60vh;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:400px;box-shadow:var(--shadow);padding:2rem}.login-title{color:var(--text-strong);margin-bottom:.25rem;font-family:Source Sans Pro,sans-serif;font-size:1.5rem}.login-subtitle{color:var(--text-muted);font-size:.95rem}.btn-login{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn-login:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.link-signup{color:var(--accent)}.form-control-login{border:1px solid var(--border)}.form-control-login:focus{border-color:var(--accent);box-shadow:0 0 0 2px #8b45131a}.flex{display:flex}.justify-between{justify-content:space-between}.items-center{align-items:center}.text-muted{color:var(--text-muted)!important}.shadow-xs{box-shadow:0 1px 2px #0000000a}.shadow-sm{box-shadow:var(--shadow)}.shadow-md{box-shadow:0 2px 6px #0000001a}.rounded{border-radius:var(--radius)}.rounded-lg{border-radius:6px}.section{padding:2rem 0}.section-sm{padding:1rem 0}.section-lg{padding:3rem 0}@media (max-width:768px){.hero{padding:2rem 1.5rem}.hero-title{font-size:1.5rem}.navbar .navbar-nav .nav-link{padding:.5rem .75rem}body{font-size:16px}.section-header{flex-direction:column;align-items:flex-start;gap:.5rem}}@media print{body{color:#000;background:#fff}.navbar,footer{display:none!important}.card,.hero{box-shadow:none;border-color:#ddd}}
main:has(.login-container){justify-content:center;align-items:center;min-height:70vh;display:flex}.login-container{width:100%;max-width:400px;animation:.3s slideIn}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.login-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:2.5rem}.login-header{text-align:center;border-bottom:1px solid var(--border);padding-bottom:1.5rem}.login-title{color:var(--text-strong);margin-bottom:.5rem;font-size:1.75rem;font-weight:700}.login-subtitle{color:var(--muted);margin:0;font-size:.95rem}.form-label{color:var(--text);margin-bottom:.5rem;font-weight:500}.form-control-login{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:.75rem;font-size:.95rem;transition:all .2s}.form-control-login:focus{background:var(--surface);border-color:var(--accent);color:var(--text);box-shadow:0 0 0 .2rem #4ea1ff26}.form-control-login::placeholder{color:var(--muted)}.form-control-login.is-invalid{border-color:var(--danger);background:#ef44440d}.form-control-login.is-invalid:focus{border-color:var(--danger);box-shadow:0 0 0 .2rem #ef444426}.invalid-feedback{color:var(--danger);margin-top:.25rem;font-size:.875rem}.btn-login{background:linear-gradient(135deg,var(--accent),var(--accent-hover));color:#fff;border:none;border-radius:6px;padding:.75rem 1.5rem;font-weight:600;transition:all .3s;box-shadow:0 4px 12px #4ea1ff4d}.btn-login:hover{background:linear-gradient(135deg,var(--accent-hover),#1e68b3);color:#fff;transform:translateY(-2px);box-shadow:0 6px 20px #4ea1ff66}.btn-login:active{transform:translateY(0);box-shadow:0 2px 8px #4ea1ff4d}.btn-login:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-form{margin-top:1.5rem}.login-footer{border-top:1px solid var(--border);color:var(--muted);margin-top:1.5rem;padding-top:1.5rem;font-size:.9rem}.link-signup{color:var(--accent);font-weight:600;transition:all .2s}.link-signup:hover{color:var(--accent-2);text-decoration:underline}.alert-danger{color:#fca5a5;background:#ef44441a;border:1px solid #ef44444d}.alert-success{color:#86efac;background:#22c55e1a;border:1px solid #22c55e4d}.alert .close{color:inherit;opacity:.7}.alert .close:hover{opacity:1}.spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;margin-right:.5rem;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:480px){.login-card{padding:1.75rem}.login-title{font-size:1.5rem}main{min-height:auto;padding:1rem}}

