/* PMESP · São Paulo Capital RP. Shared by public, authentication and internal pages. */
:root{--bg-primary:#141414;--bg-secondary:#1d1d1d;--bg-card:#272727;--bg-surface:#202020;--gold-700:#6f5a2a;--gold-600:#b29143;--gold-500:#be9d52;--gold-400:#ddcca4;--gold-300:#ece2cc;--gold-200:#f6f2e9;--gold-glow:rgba(199,171,106,.15);--gold-glow-strong:rgba(199,171,106,.35);--border-gold:rgba(199,171,106,.25);--brand-blue:#be9d52;--brand-light:#e1d2af;--brand-navy:#141414;--text-muted:#b6ac96;--text-secondary:#d9ceb5;--gradient-gold:linear-gradient(135deg,#b29143,#c7ab6a)}
body{background:var(--brand-navy);color:#faf8f3}
a{color:var(--brand-light)}a:hover{color:#f5f0e4}
button:not(.secondary):not(.danger):not(.icon):not(.btn-icon):not(.notice-bell):not(.header-toggle):not(.portal-menu-toggle):not(.rso-remove):not(.rso-end),.button:not(.secondary):not(.danger),.btn-primary{color:#fff}
button:hover,.button:hover{color:#fff}
input,select,textarea{background:#1d1d1d;border-color:#65542e;color:#faf8f3}
input:focus,select:focus,textarea:focus{outline-color:#d2bc88}
.card,.stat,.tablewrap,.subcard,.repeat-row{background:#272727;border-color:#484848}
.publicbar,.app-header,.sidebar,.portal-nav.scrolled{background:rgba(20,20,20,.96);border-color:#484848}
.sidebar-user{background:#1d1d1d}.sidebar-brand-text small{color:#dccdab;font-size:.68rem}
.sidebar-brand img,.brand img,.portal-nav-brand img{object-fit:contain;flex-shrink:0}
.pageheading .eyebrow,.eyebrow,.required,summary,legend{color:#e1d2af}
.footer,.portal-footer{color:#c8bb9c;background:#141414;border-color:#484848}
.portal-hero{background:radial-gradient(ellipse at 50% 35%,#6f5a2a70,transparent 65%),linear-gradient(145deg,#292929,#141414 65%);overflow:hidden}
.hero-logo{width:150px;height:170px;object-fit:contain;filter:drop-shadow(0 10px 28px #0008)}
.hero-title{letter-spacing:.055em}.hero-subtitle{color:#eadfc7}
.hero-badge{color:#ede4d0;border-color:#c7ab6a7a;background:#2f3c3380}
.server-badge{display:inline-block;font-size:.85rem;letter-spacing:.08em;color:#ede4d0;padding:7px 16px;border:1px solid #c7ab6a4d;border-radius:30px;background:#2c2c2c;margin:0 0 24px}
.portal-nav-links a.btn-primary,.portal-nav-links a.btn-primary:hover{color:#fff!important}
.portal-section:nth-child(even){background:#191f1b80}
.auth-card,.auth.card{background:#272727;border-color:#6d5a2d;box-shadow:0 20px 65px #0005}
.auth-title{color:#ede4d0}.auth-subtitle{color:#d9ceb5}.auth-logo,.authlogo{object-fit:contain}
.notice:not(.error){background:#2c2c2c;border-color:#8f7436;color:#ede4d0}
.notice-popover{background:#272727;border-color:#796535}.notice-bell{background:#323232;border-color:#796535;color:#ede4d0}
.notice-item.unread{background:#be9d5218;border-left-color:#c7ab6a}.notice-item strong{color:#ede4d0}
.dashboard-alert,.admin-pending-banner{background:#2c2c2c;border-color:#8f7436;color:#ede4d0}.dashboard-alert:hover{background:#424242;color:#fff}
.admin-mode{--bg-primary:#141414;--bg-secondary:#1d1d1d;--bg-card:#272727;--bg-surface:#202020;--gold-400:#e1d2af;--gold-500:#be9d52}
.admin-mode .card,.admin-rso-card,.admin-rso-group{border-color:#6d5a2d}
.rso-dialog{background:#1d1d1d;border-color:#796535}.rso-dialog-header{background:#2c2c2c;border-color:#796535}
.rso-panel{background:#272727;border-color:#6d5a2d}.rso-person,.rso-team-add,.rso-history-event{border-color:#6d5a2d}
.rso-dialog input,.rso-dialog select,.rso-dialog textarea{background:#1d1d1d;border-color:#796535}
.rso-dialog-header h2 span,.rso-clock,.rso-panel h3{color:#ede4d0}
.rso-delete p{color:#d9ceb5;font-size:.85rem}.rso-delete button{margin-top:10px}
@media(max-width:700px){.hero-logo{width:125px;height:145px}.hero-title{font-size:clamp(3rem,14vw,4.5rem)}.hero-subtitle{padding:0 16px;font-size:1rem;line-height:1.6}.hero-badge{font-size:.65rem;letter-spacing:.1em}.server-badge{font-size:.75rem}.publicbar{gap:12px;padding-right:15px}.publicbar .brand strong{font-size:16px}.sidebar-brand-text small{font-size:.65rem}}
@media(prefers-reduced-motion:reduce){.anim-gold-shimmer,.hero-title{animation:none}}
@media print{body,.card,.rso-panel{background:#fff;color:#111}.footer{background:#fff}.rso-delete{display:none}}

/* Administration styles use literal colors in older versions. */
body.admin-mode{background:#141414}
.admin-mode .sidebar-link.active,.admin-tabs a.active{background:#373737;color:#ede4d0;border-color:#c7ab6a}
.admin-mode button:not(.secondary):not(.danger):not(.icon):not(.notice-bell):not(.header-toggle):not(.btn-icon),.admin-mode .button:not(.secondary):not(.danger){background:#be9d52;border-color:#c7ab6a;color:#fff}
.admin-mode .card,.admin-mode .stat,.admin-mode .subcard,.admin-mode .repeat-row,.admin-mode .tablewrap,.admin-mode table th{background:#272727;border-color:#6d5a2d}
.admin-mode input,.admin-mode select,.admin-mode textarea{background:#1d1d1d;border-color:#796535}
.btn-gold,.btn-gold:hover{color:#fff;background:var(--gradient-gold)}

/* V33 — centered institutional identity and complete gallery photos. */
.portal-hero .hero-content{text-align:center;width:min(100%,760px);margin-inline:auto}
.portal-hero .hero-logo{display:block;width:195px;height:215px;max-width:70vw;object-fit:contain;margin:20px auto 28px}
.portal-hero .hero-title{color:#f8f5ee;background:none;-webkit-text-fill-color:#f8f5ee;letter-spacing:.055em;animation:fadeInUp .6s ease both}
.server-badge:hover{color:#fff;background:#6f5a2a;border-color:#d2bc88;box-shadow:0 0 20px #be9d5230}
.server-badge:focus-visible{outline:2px solid #e1d2af;outline-offset:4px}
.gallery-public-image-wrapper{background:linear-gradient(145deg,#343434,#262626)}
.gallery-public-image-wrapper img{object-fit:contain}
.gallery-public-image-wrapper img[hidden]{display:none}
.gallery-image-unavailable{position:absolute;inset:0;display:grid;place-items:center;color:#ede4d0;font-size:.85rem}
.gallery-image-unavailable[hidden]{display:none}
.seizure-battalion{display:block;color:#e1d2af;font-size:.8rem;margin:3px 0}
.owner-rank-form{max-width:650px}.owner-rank-form label{max-width:380px}
@media(max-width:700px){.portal-hero .hero-logo{width:165px;height:180px;margin:18px auto 24px}.portal-hero .hero-title{font-size:3.4rem}.owner-rank-form label{max-width:none}}
@media(prefers-reduced-motion:reduce){.portal-hero .hero-title{animation:none}}
