:root { --portal-ink:#252820; --portal-paper:#f6f4ef; --portal-gold:#c6a66a; --portal-line:#e3dfd4; --portal-muted:#687064; }
body.portal-body { margin:0; font:15px/1.55 Arial,Helvetica,sans-serif; background:var(--portal-paper); color:var(--portal-ink); }
body.portal-body.admin-theme,body.portal-body.client-theme { background:var(--portal-paper); }
.portal-body * { box-sizing:border-box; }
.portal-body a { text-decoration:none; }
.portal-body button,.portal-body input,.portal-body select,.portal-body textarea { font:inherit; }
.portal-body button,.portal-body a { -webkit-tap-highlight-color:transparent; }
.portal-body :focus-visible { outline:3px solid #9a7535; outline-offset:3px; }
.portal-body [hidden] { display:none!important; }
.portal-body .hidden { display:none!important; }
.portal-shell { display:grid; grid-template-columns:248px minmax(0,1fr); min-height:100vh; }
.portal-sidebar { position:sticky; top:0; height:100vh; overflow-y:auto; padding:30px 20px; background:#111a16; display:flex; flex-direction:column; border-right:1px solid #26302a; }
.portal-sidebar-brand { padding:0 10px 30px; border-bottom:1px solid #334034; margin-bottom:26px; }
.portal-logo { display:block; width:180px; height:auto; max-width:100%; }
.portal-nav-label { color:#bcbca8; font-size:10px; letter-spacing:.18em; text-transform:uppercase; margin:0 14px 12px; }
.portal-nav { display:grid; gap:5px; }
.portal-link { display:flex; gap:13px; align-items:center; min-height:44px; padding:11px 14px; border-radius:8px; color:#d7ddd5; font-size:14px; border:1px solid transparent; }
.portal-link:hover { background:#202d24; color:#fff; }
.portal-link.active { background:#26372c; color:#ead4a6; border-color:#486047; }
.portal-link-mark { width:23px; font:17px Georgia,serif; color:#c6a66a; text-align:center; }
.portal-sidebar-help { margin-top:auto; padding:24px 12px 0; color:#b9c3b7; font-size:12px; }
.portal-sidebar-help a { display:block; margin-top:10px; color:#ead4a6; }
.portal-body .portal-main { min-width:0; background:var(--portal-paper)!important; }
.portal-topbar { min-height:84px; background:#fffefa; border-bottom:1px solid var(--portal-line); padding:18px 34px; display:flex; justify-content:space-between; gap:18px; align-items:center; }
.portal-topbar-title { color:#26332a; font-size:14px; font-weight:600; }
.portal-topbar-title small { display:block; color:#7d8175; font-size:11px; font-weight:400; margin-top:3px; }
.portal-topbar-actions { display:flex; align-items:center; gap:16px; }
.portal-user { text-align:right; }
.portal-user-name { color:#30372e; font-size:13px; }
.portal-user-email { color:#737b6c; font-size:11px; overflow-wrap:anywhere; }
.portal-avatar { display:grid; place-items:center; width:39px; height:39px; border-radius:50%; color:#36503a; background:#e6ebdf; font-weight:700; }
.portal-logout { background:none; border:1px solid #dcded4; color:#44513e; border-radius:7px; padding:8px 13px; font-size:12px; }
.portal-content,.portal-body.admin-theme .portal-content,.portal-body.client-theme .portal-content { padding:30px 34px 60px; max-width:1550px; width:100%; margin:auto; background:none; }
.portal-welcome { background:#18251b; color:#fff; min-height:235px; padding:34px 38px; position:relative; isolation:isolate; border-radius:14px; overflow:hidden; display:flex; align-items:center; margin-bottom:25px; }
.portal-welcome img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.client-theme .portal-welcome img { object-position:75% 75%; }
.admin-theme .portal-welcome img { object-position:85% 55%; }
.portal-login-visual { background-position:85% center; }
.portal-welcome::before { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(15,25,19,.95),rgba(15,25,19,.6) 60%,rgba(15,25,19,.1)); z-index:-1; }
.portal-welcome-copy { max-width:650px; }
.portal-eyebrow { font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:#94763f; margin:0 0 10px; }
.portal-welcome .portal-eyebrow { color:#d8bd86; }
.portal-welcome h1 { font:36px/1.13 Georgia,serif; margin:0 0 14px; color:#fff9ef; }
.portal-welcome p { margin:0 0 20px; color:#d9e0d3; max-width:520px; }
.portal-button,.portal-button-gold,.portal-button-dark { display:inline-flex; justify-content:center; align-items:center; gap:8px; min-height:43px; padding:11px 20px; background:#203c2b; color:#fff; border:1px solid transparent; border-radius:7px; cursor:pointer; font-size:13px; font-weight:600; text-decoration:none; }
.portal-button:hover { background:#304d39; }
.portal-button-gold { background:#c6a66a; color:#24291d; }
.portal-button-gold:hover { background:#ddc28b; }
.portal-button-outline { background:#fffefa; border-color:#d8ddce; color:#34452c; }
.portal-button-outline:hover { background:#f0f2e9; }
.portal-button:disabled { cursor:wait; opacity:.65; }
.portal-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:28px; }
.portal-kpi { display:flex; flex-direction:column; background:#fffefa; border:1px solid var(--portal-line); border-radius:10px; padding:21px; color:#2f3b2c; }
.portal-kpi span { font-size:12px; color:#64705e; }
.portal-kpi strong { font:32px/1.2 Georgia,serif; margin:9px 0; }
.portal-kpi small { font-size:11px; color:#7a806f; }
.portal-columns { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr); gap:24px; align-items:start; }
.portal-card { background:#fffefa; color:#273325; border:1px solid var(--portal-line); border-radius:10px; padding:25px; box-shadow:none; margin-bottom:24px; min-width:0; }
.portal-card-wide { max-width:none; width:100%; }
.portal-card-head { display:flex; justify-content:space-between; gap:15px; align-items:center; margin-bottom:20px; }
.portal-card-head h2 { margin:0; font:24px/1.2 Georgia,serif; }
.portal-card-head a,.portal-link-inline { color:#607438; font-weight:600; font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.portal-section { margin-bottom:28px; }
.portal-section-title,.portal-body.admin-theme .portal-section-title,.portal-body.client-theme .portal-section-title { font:29px/1.25 Georgia,serif; color:#263824; margin:0 0 20px; }
.portal-section-intro { margin:-6px 0 25px; color:#6a7461; max-width:680px; }
.portal-muted { color:#717a69; font-size:12px; }
.portal-actions-grid { display:grid; gap:12px; }
.portal-action { display:block; padding:17px 18px; border:1px solid #e4e5da; border-radius:8px; background:#f9faf4; color:#30452d; }
.portal-action:hover { border-color:#b1bc97; background:#f1f4e8; }
.portal-action strong { display:block; font-size:14px; }
.portal-action span { display:block; font-size:12px; color:#737e69; margin-top:5px; }
.portal-timeline { margin:0; padding:0; }
.portal-timeline-item { border-left:2px solid #d7dcbf; padding:0 0 25px 22px; margin-left:6px; position:relative; }
.portal-timeline-item::before { content:''; position:absolute; left:-6px; top:6px; width:10px; height:10px; background:#9ba87b; border-radius:50%; }
.portal-timeline-title { font-weight:600; color:#2e3b26; font-size:15px; margin-bottom:7px; }
.portal-timeline-details { font-size:13px; color:#636f5a; line-height:1.65; margin:12px 0; overflow-wrap:anywhere; }
.portal-timeline-meta { display:flex; flex-wrap:wrap; gap:12px; align-items:center; font-size:12px; }
.portal-pill { display:inline-block; background:#edf1df; color:#4a5c2e; border-radius:5px; padding:4px 8px; font-size:11px; font-weight:600; }
.portal-pill[data-tone="warning"] { background:#fff0d5; color:#845a1b; }
.portal-pill[data-tone="success"] { background:#e5f1e5; color:#355f36; }
.portal-empty { text-align:center; padding:30px 18px; color:#738067; font-size:14px; }
.portal-empty strong { display:block; font:22px Georgia,serif; color:#465539; margin-bottom:10px; }
.portal-label,.portal-body .label { display:block; color:#49563f; font-size:12px; font-weight:600; margin:0 0 7px; }
.portal-input,.portal-body .input { display:block; width:100%; min-height:45px; padding:11px 13px; border:1px solid #d9dece; border-radius:7px; background:#fff; color:#2d3727; box-shadow:none; }
textarea.portal-input { resize:vertical; min-height:110px; }
.portal-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.portal-form-full { grid-column:1 / -1; }
.portal-input-sm { min-height:36px; padding:7px 9px; font-size:12px; }
.portal-button-sm { min-height:35px; padding:8px 12px; font-size:12px; }
.portal-table-wrap { overflow-x:auto; width:100%; border:1px solid #e7e8de; border-radius:8px; }
.portal-table { border-collapse:collapse; width:100%; min-width:550px; font-size:13px; }
.portal-table th { background:#f2f4eb; padding:14px; font-size:10px; letter-spacing:.07em; text-transform:uppercase; color:#6d775f; white-space:nowrap; text-align:left; }
.portal-table td { padding:16px 14px; border-bottom:1px solid #eceee4; color:#37452e; vertical-align:top; }
.portal-table tbody tr:hover { background:#fafbf5; }
.portal-table tr:last-child td { border-bottom:0; }
.portal-table a { overflow-wrap:anywhere; }
.portal-table-tools { display:flex; align-items:center; gap:14px; justify-content:space-between; flex-wrap:wrap; margin-bottom:15px; }
.portal-table-tools label { flex:1; max-width:390px; color:#67755b; font-size:11px; }
.portal-table-tools input { margin-top:5px; }
.portal-table-count { color:#7a826f; font-size:12px; }
.portal-upload { padding:25px; border:1px dashed #a7b68c; border-radius:10px; background:#f6f8ef; }
.portal-upload-help { font-size:12px; color:#6b785b; margin:8px 0 0; }
.portal-file-feedback { color:#526943; font-size:12px; margin-top:8px; overflow-wrap:anywhere; }
.portal-mobile-toggle { display:none; }
.portal-sidebar-overlay { display:none; }
.portal-skip { position:fixed; top:-80px; left:16px; background:#fff; padding:12px; z-index:110; }
.portal-skip:focus { top:12px; }
.portal-body .alert { padding:16px 20px; margin-bottom:22px; border-radius:8px; font-size:14px; }
.portal-body .alert-error { background:#fff0eb; border:1px solid #e8b9a7; color:#813d27; }
.portal-body .alert-success { background:#edf5e6; border:1px solid #bcd4a8; color:#395b2a; }
.portal-login { display:grid; grid-template-columns:1.1fr 1fr; min-height:100vh; }
.portal-login-visual { padding:48px; background:linear-gradient(0deg,rgba(11,20,14,.88),rgba(11,20,14,.15)),url('assets/acesso-logo-20260923.webp') 85% center/cover; display:flex; flex-direction:column; justify-content:space-between; color:#fff; }
.portal-login-visual .portal-logo { width:210px; }
.portal-login-visual h2 { font:clamp(34px,3.3vw,54px)/1.1 Georgia,serif; max-width:540px; margin:30px 0 20px; }
.portal-login-visual p { color:#e1e4d6; max-width:460px; }
.portal-login-form { display:flex; align-items:center; justify-content:center; padding:45px; background:#fffdf7; }
.portal-login-form-inner { width:min(410px,100%); }
.portal-login-form h1 { font:36px/1.2 Georgia,serif; margin:14px 0; color:#263820; }
.portal-login-form p { color:#6e7765; font-size:14px; margin-bottom:26px; }
.portal-login-form form { display:grid; gap:20px; }
.portal-password { position:relative; }
.portal-password input { padding-right:80px; }
.portal-password button { position:absolute; right:7px; top:7px; min-height:32px; background:none; border:0; color:#536443; font-size:12px; cursor:pointer; }
.portal-login-help { border-top:1px solid #e2e4d9; padding-top:22px; margin-top:28px; font-size:12px; color:#737c69; }
.portal-login-help a { color:#536c36; text-decoration:underline; }
.portal-login-note { display:flex; gap:20px; flex-wrap:wrap; font-size:12px; color:#cad2bc; }
.portal-body .text-xs { font-size:12px; }.portal-body .text-slate-500 { color:#7a826e; }.portal-body .space-y-4>*+* { margin-top:16px; }
@media(min-width:981px) { .portal-sidebar { transform:none!important; } }
@media(max-width:1200px) { .portal-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }.portal-columns { grid-template-columns:1fr; }.portal-content { padding:24px; } }
@media(max-width:980px) {
 .portal-shell { grid-template-columns:1fr; }.portal-sidebar { position:fixed; left:0; top:0; width:260px; z-index:102; transform:translateX(-100%); transition:transform .2s ease; }
 .portal-sidebar.is-open { transform:translateX(0); }.portal-sidebar-overlay.is-open { display:block; position:fixed; inset:0; background:rgba(10,18,11,.5); z-index:101; border:0; }
 .portal-mobile-toggle { display:block; background:#edf0e5; border:1px solid #d6dccb; border-radius:6px; padding:8px 12px; color:#3b4e2e; cursor:pointer; }
 .portal-topbar { padding:16px 20px; }.portal-user-email { display:none; }.portal-topbar-title { margin-right:auto; }.portal-avatar { display:none; }
 .portal-login { grid-template-columns:1fr 1fr; }.portal-login-visual { padding:30px; }
}
@media(max-width:640px) {
 .portal-content,.portal-body.admin-theme .portal-content,.portal-body.client-theme .portal-content { padding:20px 16px 40px; }.portal-topbar { gap:9px; padding:12px 16px; }.portal-topbar-title small,.portal-user { display:none; }
 .portal-welcome { min-height:265px; padding:27px 24px; }.portal-welcome h1 { font-size:30px; }.portal-welcome p { font-size:13px; }.portal-kpis { gap:10px; }.portal-kpi { padding:17px 14px; }.portal-kpi strong { font-size:26px; }
 .portal-card { padding:19px; }.portal-form-grid { grid-template-columns:1fr; }.portal-section-title { font-size:26px; }.portal-card-head { align-items:start; }.portal-card-head h2 { font-size:23px; }
 .portal-login { grid-template-columns:1fr; }.portal-login-visual { min-height:260px; padding:25px; }.portal-login-visual h2 { font-size:30px; margin:20px 0 10px; }.portal-login-visual p,.portal-login-note { display:none; }.portal-login-visual .portal-logo { width:165px; }
 .portal-login-form { padding:32px 24px; }.portal-login-form h1 { font-size:30px; }
}
@media(prefers-reduced-motion:reduce) { * { transition:none!important; scroll-behavior:auto!important; } }

.portal-timeline-item { border-left:2px solid #d7ddcc; padding:0 0 22px 20px; margin-left:5px; overflow-wrap:anywhere; }.portal-timeline-item h3 { margin:7px 0; font-size:16px; }.portal-timeline-item p { font-size:13px; color:#64705e; }.portal-action p { font-size:12px; margin:6px 0 0; color:#68745f; }.portal-body input[type=file] { max-width:100%; font-size:12px; }
