:root { font-family: Inter, ui-sans-serif, system-ui, sans-serif; color: #172121; background: #f4f7f6; font-synthesis: none; }
* { box-sizing: border-box; }
body { margin: 0; }
button, input, textarea, select { font: inherit; }
button, .button { border: 0; border-radius: .55rem; background: #176b5b; color: white; padding: .7rem 1rem; cursor: pointer; text-decoration: none; display: inline-block; }
button:hover, .button:hover { background: #105549; }
button:disabled { opacity: .55; cursor: wait; }
button.secondary { background: #e4ece9; color: #173b34; }
button.danger { background: #9a3f3f; }
a { color: #176b5b; }
header { background: #123b34; color: white; padding: 1rem max(1rem, calc((100% - 1100px) / 2)); display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
header h1 { font-size: 1.15rem; margin: 0; }
nav { background: white; border-bottom: 1px solid #d9e2df; padding: .6rem max(1rem, calc((100% - 1100px) / 2)); display: flex; gap: .35rem; overflow-x: auto; }
nav button { white-space: nowrap; background: transparent; color: #31524c; padding: .55rem .7rem; }
nav button.active { background: #e3f0ec; color: #0f594b; }
main { max-width: 1100px; margin: 0 auto; padding: 1.25rem 1rem 3rem; }
h2 { margin: 0 0 1rem; font-size: 1.45rem; }
h3 { margin-top: 0; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1rem; }
.card { background: white; border: 1px solid #dce5e2; border-radius: .8rem; padding: 1rem; box-shadow: 0 2px 8px #173b3409; }
.metric strong { display: block; font-size: 2rem; color: #176b5b; }
.actions { display: flex; flex-wrap: wrap; gap: .65rem; margin: 1rem 0; }
.stack { display: grid; gap: .8rem; }
.row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
label { display: grid; gap: .35rem; color: #29453f; font-weight: 600; }
input, textarea, select { width: 100%; border: 1px solid #b9c9c5; border-radius: .5rem; padding: .65rem; background: white; color: #172121; }
textarea { min-height: 5.5rem; resize: vertical; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.full { grid-column: 1 / -1; }
.muted { color: #60736f; font-size: .92rem; }
.error, .notice { border-radius: .55rem; padding: .75rem; margin: .75rem 0; }
.error { background: #fce9e9; color: #842d2d; }
.notice { background: #e7f2ee; color: #145447; }
.badge { display: inline-block; border-radius: 999px; padding: .22rem .55rem; font-size: .78rem; font-weight: 700; background: #e8eeec; }
.badge.NEW { background: #fff0c7; color: #705100; }
.badge.RELEVANT { background: #dff3e7; color: #17613a; }
.badge.IRRELEVANT { background: #ececec; color: #555; }
.badge.REVIEWED { background: #e4ecf8; color: #315a86; }
.finding { cursor: pointer; }
.finding:hover { border-color: #7da99f; }
.finding p { white-space: pre-wrap; overflow-wrap: anywhere; }
.detail-text { white-space: pre-wrap; overflow-wrap: anywhere; background: #f7f9f8; padding: 1rem; border-radius: .5rem; }
dl { display: grid; grid-template-columns: minmax(130px, 200px) 1fr; gap: .5rem 1rem; }
dt { font-weight: 700; color: #49625d; }
dd { margin: 0; overflow-wrap: anywhere; }
.login { min-height: 100vh; display: grid; place-items: center; padding: 1rem; }
.login .card { width: min(420px, 100%); padding: 1.5rem; }
.login h1 { margin-top: 0; }
.spinner { display: inline-block; width: 1rem; height: 1rem; border: 2px solid #b8d2cb; border-top-color: #176b5b; border-radius: 50%; animation: spin .8s linear infinite; vertical-align: middle; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (max-width: 650px) { .form-grid { grid-template-columns: 1fr; } .full { grid-column: auto; } dl { grid-template-columns: 1fr; } dd { margin-bottom: .5rem; } header span { display: none; } }
