* { box-sizing: border-box; }
body { margin: 0; font-family: Arial, Helvetica, sans-serif; background: #f6f8f3; color: #1f2d1f; }
a { color: #236c2b; text-decoration: none; }
.topbar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 2rem; background: #fff; border-bottom: 4px solid #5f9f3f; box-shadow: 0 2px 8px rgba(0,0,0,.06); position: sticky; top: 0; z-index: 5; }
.brand { display: flex; align-items: center; gap: .75rem; }
.brand small { display: block; color: #68756a; margin-top: .15rem; }
.emblem { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; background: linear-gradient(135deg, #2f7d32, #f28c28); color: #fff; font-weight: 800; }
nav { display: flex; flex-wrap: wrap; gap: .8rem; }
nav a { font-weight: 700; }
.container { max-width: 1180px; margin: 0 auto; padding: 2rem; }
.footer { text-align: center; color: #667; padding: 2rem; }
h1 { color: #236c2b; margin: 0 0 .75rem; }
h2 { color: #315c35; }
.muted { color: #68756a; }
.login-card { max-width: 440px; margin: 5vh auto; background: #fff; padding: 2rem; border-radius: 18px; box-shadow: 0 10px 30px rgba(0,0,0,.08); border-top: 5px solid #f28c28; }
.form { display: grid; gap: .75rem; }
.form label { font-weight: 700; }
input, select, button { font: inherit; }
input, select { width: 100%; padding: .85rem 1rem; border: 1px solid #ccd8cc; border-radius: 10px; background: #fff; }
button, .button-link { display: inline-block; border: 0; border-radius: 10px; padding: .85rem 1.1rem; background: #2f7d32; color: #fff; font-weight: 700; cursor: pointer; }
button:hover, .button-link:hover { background: #246328; color: #fff; }
button.small { padding: .45rem .65rem; font-size: .9rem; }
.alert { background: #ffe8e2; border: 1px solid #f2b3a2; color: #7a2d1d; padding: 1rem; border-radius: 12px; margin: 1rem 0; }
.success { background: #e7f7e8; border: 1px solid #a9d8ad; color: #205b23; padding: 1rem; border-radius: 12px; margin: 1rem 0; }
.cards, .admin-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; }
.card { background: #fff; border-radius: 18px; padding: 1.25rem; box-shadow: 0 5px 20px rgba(0,0,0,.06); border: 1px solid #e2e8df; }
.inline-form, .searchbar { display: flex; gap: .75rem; align-items: center; }
.searchbar { margin: 1rem 0 1.5rem; }
.searchbar input { flex: 1; }
.list { display: grid; gap: .75rem; }
.list-item { display: grid; gap: .4rem; background: #fff; padding: 1rem; border: 1px solid #e1e8dd; border-left: 5px solid #5f9f3f; border-radius: 14px; box-shadow: 0 4px 14px rgba(0,0,0,.04); }
.list-item span { color: #536257; line-height: 1.45; }
.back { display: inline-block; margin-bottom: 1rem; font-weight: 700; }
.document-page { background: #fff; border-radius: 18px; padding: 1.5rem; box-shadow: 0 5px 20px rgba(0,0,0,.06); }
.document-page pre { white-space: pre-wrap; word-wrap: break-word; font-family: Georgia, 'Times New Roman', serif; line-height: 1.6; font-size: 1.02rem; }
.pdf-frame { background: #fff; border-radius: 14px; padding: .5rem; box-shadow: 0 5px 20px rgba(0,0,0,.06); border: 1px solid #e2e8df; margin: 1rem 0; }
.pdf-frame iframe { width: 100%; height: 80vh; border: 0; border-radius: 8px; display: block; }
.chat { display: flex; flex-direction: column; gap: .8rem; background: #fff; border: 1px solid #e2e8df; border-radius: 16px; padding: 1rem; min-height: 320px; max-height: 60vh; overflow-y: auto; margin: 1rem 0; }
.chat-msg { display: flex; }
.chat-msg.user { justify-content: flex-end; }
.chat-msg .bubble { max-width: 80%; padding: .75rem 1rem; border-radius: 14px; line-height: 1.5; }
.chat-msg.assistant .bubble { background: #f1f5ec; color: #1f2d1f; border-top-left-radius: 4px; }
.chat-msg.user .bubble { background: #2f7d32; color: #fff; border-top-right-radius: 4px; }
.chat-msg .sources { margin-top: .5rem; font-size: .85rem; color: #45614a; }
.chat-msg.assistant .sources a { font-weight: 700; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .75rem; border-bottom: 1px solid #e2e8df; text-align: left; vertical-align: top; }
th { background: #f1f5ec; color: #315c35; }
.badge { display: inline-block; background: #f28c28; color: #fff; border-radius: 999px; padding: .25rem .6rem; font-size: .85rem; font-weight: 700; }
.checkbox { display: flex; gap: .6rem; align-items: center; }
.checkbox input { width: auto; }
@media (max-width: 760px) { .topbar { align-items: flex-start; flex-direction: column; padding: 1rem; } .container { padding: 1rem; } .inline-form, .searchbar { flex-direction: column; } }
