:root { --green:#198754; --green-dark:#12683f; --ink:#26342d; --muted:#728078; --line:#e4e9e6; --bg:#f4f7f5; }
* { box-sizing:border-box; }
body { margin:0; font-family:Arial, Helvetica, sans-serif; color:var(--ink); background:var(--bg); }
.login-body { min-height:100vh; display:grid; place-items:center; padding:24px; background:linear-gradient(135deg,#eef6f1,#f8faf9); }
.login-card { width:min(100%,440px); padding:38px; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:0 15px 40px rgba(22,60,42,.10); }
.login-brand { text-align:center; margin-bottom:26px; }
.login-brand img { width:270px; max-width:100%; height:auto; display:block; margin:auto; }
.login-brand p { margin:10px 0 0; color:var(--green); font-size:.92rem; font-weight:bold; }
h1,h2,p { margin-top:0; } .login-card h1 { font-size:1.45rem; margin-bottom:7px; } .muted { color:var(--muted); font-size:.94rem; margin-bottom:23px; }
label { display:block; margin:16px 0 6px; font-size:.9rem; font-weight:bold; }
input { width:100%; border:1px solid #cbd5ce; border-radius:8px; padding:12px; font-size:1rem; outline:none; }
input:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(25,135,84,.14); }
button { width:100%; margin-top:24px; border:0; border-radius:8px; padding:13px; background:var(--green); color:#fff; font-size:1rem; font-weight:bold; cursor:pointer; }
button:hover { background:var(--green-dark); }.alert-error { margin:18px 0; padding:11px 13px; border-radius:8px; background:#fde9e9; color:#9f2222; font-size:.9rem; }.login-help { margin:24px 0 0; text-align:center; color:var(--muted); font-size:.82rem; }
.app-body { min-height:100vh; display:flex; }.sidebar { width:245px; min-height:100vh; padding:24px 15px; display:flex; flex-direction:column; background:#173d2d; color:#fff; }.brand { display:flex; align-items:center; gap:10px; padding:4px 10px 30px; color:#fff; text-decoration:none; line-height:1.08; font-size:.96rem; }.brand img { width:36px; height:36px; }.brand strong { font-size:1.15rem; }.sidebar nav { display:grid; gap:4px; }.sidebar nav a,.logout { padding:11px 13px; border-radius:7px; color:#d8e7df; text-decoration:none; font-size:.93rem; }.sidebar nav a.active { background:var(--green); color:#fff; font-weight:bold; }.sidebar nav .disabled { cursor:default; opacity:.55; }.logout { margin-top:auto; background:rgba(255,255,255,.08); }
.main-content { flex:1; min-width:0; padding:0 34px; }.topbar { padding:28px 0 22px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; }.topbar p { margin:0 0 4px; color:var(--green); font-size:.84rem; font-weight:bold; }.topbar h1 { margin:0; font-size:1.6rem; }.user-name { padding:9px 13px; border-radius:20px; background:#e7f3ec; color:var(--green-dark); font-size:.9rem; font-weight:bold; }.welcome { padding:30px 0 20px; }.welcome h2 { margin-bottom:7px; font-size:1.3rem; }.welcome p,.panel p { color:var(--muted); }.cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }.card,.panel { padding:22px; background:#fff; border:1px solid var(--line); border-radius:12px; }.card span { display:block; color:var(--muted); font-size:.9rem; }.card strong { display:block; margin:10px 0 5px; color:var(--green); font-size:2.15rem; }.card small { color:#88948d; }.panel { margin-top:25px; }.panel h2 { margin-bottom:8px; font-size:1.1rem; }.panel p { margin-bottom:0; }footer { padding:34px 0 20px; color:#94a099; font-size:.8rem; }
@media (max-width:720px) { .sidebar { width:70px; padding:18px 9px; }.brand { justify-content:center; padding:0 0 26px; }.brand span,.sidebar nav a,.logout { font-size:0; }.sidebar nav a,.logout { height:42px; padding:0; }.main-content { padding:0 18px; }.topbar h1 { font-size:1.35rem; }.user-name { display:none; }.cards { grid-template-columns:1fr; } }
.page-actions { padding:28px 0 20px; display:flex; align-items:center; justify-content:space-between; gap:15px; }.search-form { display:flex; gap:8px; align-items:center; }.search-form input { width:290px; }.button-primary,.button-secondary,.button-link,.button-edit { display:inline-flex; align-items:center; justify-content:center; width:auto; margin:0; padding:10px 14px; border-radius:8px; text-decoration:none; font-size:.9rem; font-weight:bold; }.button-primary { background:var(--green); color:#fff; }.button-secondary { background:#fff; color:var(--green); border:1px solid var(--green); }.button-link { color:var(--green); background:transparent; }.button-edit { background:#e7f3ec; color:var(--green-dark); }.table-panel,.form-panel { background:#fff; border:1px solid var(--line); border-radius:12px; padding:22px; }.panel-title,.form-title { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; margin-bottom:18px; }.panel-title h2,.form-title h2 { margin:0; font-size:1.15rem; }.panel-title span,.form-title p { margin:4px 0 0; color:var(--muted); font-size:.88rem; }.table-wrap { overflow-x:auto; }table { width:100%; border-collapse:collapse; }th { padding:11px 12px; text-align:left; border-bottom:1px solid var(--line); color:var(--muted); font-size:.78rem; text-transform:uppercase; }td { padding:14px 12px; border-bottom:1px solid var(--line); font-size:.92rem; }td strong,td small { display:block; }td small { margin-top:4px; color:var(--muted); font-size:.79rem; }.text-right { text-align:right; }.status { display:inline-block; padding:5px 8px; border-radius:14px; font-size:.72rem; font-weight:bold; }.status-ativa { color:#167044; background:#e7f5eb; }.status-inativa,.status-suspensa { color:#845515; background:#fff3db; }.empty-state { padding:38px; text-align:center; color:var(--muted); }.system-form label { margin-top:0; }.form-grid { display:grid; gap:18px; }.two-cols { grid-template-columns:repeat(2,minmax(0,1fr)); }.system-form select { width:100%; border:1px solid #cbd5ce; border-radius:8px; padding:12px; font-size:1rem; background:#fff; }.modules-fieldset { margin:28px 0 0; padding:20px; border:1px solid var(--line); border-radius:10px; }.modules-fieldset legend { padding:0 7px; font-weight:bold; }.modules-fieldset p { margin:0 0 16px; color:var(--muted); font-size:.88rem; }.modules-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.module-option { display:flex; align-items:flex-start; gap:10px; margin:0; padding:13px; border:1px solid var(--line); border-radius:8px; cursor:pointer; }.module-option input { width:auto; margin-top:3px; }.module-option strong,.module-option small,.module-option em { display:block; }.module-option small { color:var(--green); margin:4px 0; }.module-option em { color:var(--muted); font-style:normal; font-size:.8rem; line-height:1.35; }.form-buttons { display:flex; justify-content:flex-end; align-items:center; gap:10px; margin-top:25px; }.form-buttons button { width:auto; margin:0; }.form-buttons .button-link { border:1px solid transparent; }
@media (max-width:720px) { .page-actions,.search-form { align-items:stretch; flex-direction:column; }.search-form input { width:100%; }.two-cols,.modules-grid { grid-template-columns:1fr; }.table-panel,.form-panel { padding:16px; }.form-buttons { justify-content:space-between; } }
.compact-cards { grid-template-columns:repeat(2,minmax(0,1fr)); padding:28px 0 20px; }.page-section { margin-top:4px; }
@media (max-width:720px) { .compact-cards { grid-template-columns:1fr; } }
.page-heading { margin:0 0 5px; font-size:1.15rem; }.page-subtitle { margin:0; color:var(--muted); font-size:.88rem; }.form-panel-narrow { max-width:780px; }.field-help { display:block; margin-top:6px; color:var(--muted); font-size:.8rem; }.check-line { display:flex; align-items:center; gap:8px; margin:0 !important; cursor:pointer; }.check-line input { width:auto; }.check-line span { font-size:.9rem; font-weight:bold; }
.alert-success { margin:18px 0; padding:11px 13px; border-radius:8px; background:#e7f5eb; color:#167044; font-size:.9rem; }
textarea { width:100%; border:1px solid #cbd5ce; border-radius:8px; padding:12px; font:inherit; resize:vertical; } textarea:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(25,135,84,.14); outline:none; }
