:root{--navy:#102b3f;--teal:#087f74;--gold:#c8a44d;--paper:#f4f7f8;--ink:#17242d}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font-family:Inter,system-ui,sans-serif}.navbar{background:var(--navy);min-height:68px}.navbar-brand{font-weight:800;letter-spacing:.02em}.btn-primary{--bs-btn-bg:var(--teal);--bs-btn-border-color:var(--teal);--bs-btn-hover-bg:#066a62}.hero{background:linear-gradient(120deg,var(--navy),#17475d);padding:4rem;border-radius:1.5rem;color:white;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:300px;height:300px;border:60px solid rgba(200,164,77,.14);border-radius:50%;right:-80px;top:-80px}.hero h1{font-size:clamp(2.2rem,6vw,4.5rem);max-width:800px;line-height:1.05}.eyebrow{color:#efd88e;font-size:.78rem;letter-spacing:.18em}.stat,.panel,.filter-panel{background:white;border:1px solid #dbe3e7;border-radius:1rem;padding:1.4rem}.stat b{display:block;font-size:2rem;color:var(--teal)}.stat span{color:#60717c}.progress{height:12px}.news-card{height:100%;background:white;border:1px solid #dbe3e7;border-radius:1rem;overflow:hidden;box-shadow:0 6px 20px rgba(16,43,63,.06)}.news-card img{object-fit:cover}.news-card h2{font-size:1.2rem;margin:.7rem 0}.news-card p{color:#51626c}.meta{color:var(--teal);font-weight:700;font-size:.8rem;text-transform:uppercase}.score{display:inline-block;background:#edf7f4;color:#08675f;padding:.3rem .6rem;border-radius:2rem;font-size:.8rem;margin-bottom:.6rem}.auth-card{max-width:430px;margin:6vh auto;background:white;padding:2.2rem;border-radius:1.2rem;box-shadow:0 15px 50px rgba(16,43,63,.12)}.brand-mark{width:52px;height:52px;display:grid;place-items:center;background:var(--navy);color:#efd88e;border-radius:14px;font-weight:900;margin-bottom:1.5rem}.empty-state{text-align:center;padding:4rem;background:white;border-radius:1rem}#toast{position:fixed;right:1.5rem;bottom:1.5rem;padding:1rem 1.3rem;border-radius:.7rem;color:#fff;transform:translateY(150%);transition:.25s;z-index:2000}#toast.show{transform:none}#toast.ok{background:var(--teal)}#toast.error{background:#a43131}dialog{border:0;border-radius:1rem;padding:1.5rem;width:min(760px,calc(100% - 2rem));box-shadow:0 20px 70px #0004}dialog::backdrop{background:#102b3faa}.dialog-head{display:flex;justify-content:space-between}.dialog-head button{border:0;background:none;font-size:2rem}@media(max-width:600px){.hero{padding:2rem 1.4rem}.container{padding-left:1rem;padding-right:1rem}.auth-card{margin:2vh auto}}
