/* Camada visual compartilhada da administração */
:root { --admin-brand: #1d5e46; --admin-brand-dark: #154534; --admin-page: #f6f8f6; }
.layout-fluid { background: var(--admin-page); color: #25342f; font-family: Montserrat, Arial, sans-serif; }
.layout-fluid .bg-primary { background: var(--admin-brand) !important; }
.layout-fluid .page__container { max-width: 1280px; padding-top: 2rem; padding-bottom: 3rem; }
.layout-fluid .navbar { box-shadow: 0 2px 16px rgba(22, 55, 40, .16) !important; }
.layout-fluid .card { border: 1px solid #e1e8e3; border-radius: 14px; box-shadow: 0 8px 24px rgba(35, 61, 47, .06); overflow: hidden; }
.layout-fluid .card-header { background: #fff; border-bottom-color: #e8eee9; }
.layout-fluid .btn { border-radius: 8px; font-weight: 600; text-transform: none; }
.layout-fluid .btn-primary, .layout-fluid .btn-success { background: var(--admin-brand); border-color: var(--admin-brand); }
.layout-fluid .btn-primary:hover, .layout-fluid .btn-success:hover { background: var(--admin-brand-dark); border-color: var(--admin-brand-dark); }
.layout-fluid .btn-white { border-color: #d8e3dc; color: var(--admin-brand-dark); }
.layout-fluid .breadcrumb { background: transparent; padding-left: 0; }
@media (max-width: 640px) { .layout-fluid .page__container { padding-top: 1.25rem; } .layout-fluid .card { border-radius: 11px; } }
/* Administração e login na mesma linguagem visual do aluno */
.login-app { min-height: 100vh; background: radial-gradient(circle at 100% 0, rgba(103,154,211,.25), transparent 32rem), #f4f7fb; color: #1e2b3d; }
.login-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px; box-sizing: border-box; }
.login-card { width: min(100%, 430px); padding: 38px; box-sizing: border-box; background: rgba(255,255,255,.96); border: 1px solid #e1e8f0; border-radius: 20px; box-shadow: 0 18px 45px rgba(35,57,87,.12); }
.login-brand { color: #315d91; font-size: 1.1rem; font-weight: 700; letter-spacing: .12em; margin-bottom: 28px; }.login-card h1 { margin: 8px 0; font-size: 2rem; }.login-subtitle { color: #68758a; line-height: 1.6; margin-bottom: 28px; }.login-card .uk-input { border-radius: 10px; border-color: #d8e2ee; min-height: 46px; }.login-card .uk-button { min-height: 46px; border-radius: 10px; text-transform: none; font-weight: 700; }
@media (max-width: 639px) { .login-card { padding: 28px 22px; border-radius: 16px; } }
/* Menu lateral da administração */
.admin-sidebar { position: fixed; top: 0; left: 0; width: 232px; height: 100vh; background: #fff; border-right: 1px solid #e1e8f0; padding: 20px 0; overflow-y: auto; z-index: 980; }
.admin-sidebar-brand { padding: 0 20px 20px; font-weight: 700; letter-spacing: .08em; color: #315d91; }
.platform-logo { display: block; max-width: 170px; max-height: 38px; object-fit: contain; object-position: left center; }
.admin-sidebar-nav { list-style: none; margin: 0; padding: 0; }
.admin-sidebar-nav li a { display: flex; align-items: center; gap: 10px; padding: 11px 20px; color: #4a5568; text-decoration: none; font-weight: 600; font-size: .92rem; border-left: 3px solid transparent; }
.admin-sidebar-nav li a:hover { background: #f4f7fb; color: #315d91; }
.admin-sidebar-nav li.active a { background: #eef3fa; color: #315d91; border-left-color: #315d91; }
.admin-sidebar-toggle { display: block; width: calc(100% - 32px); margin: 12px 16px; }
#admin-sidebar-offcanvas .admin-sidebar-nav li a { color: #333; }
#admin-sidebar-offcanvas .admin-sidebar-nav li.active a { color: #315d91; font-weight: 700; }
@media (min-width: 960px) {
  body.has-admin-sidebar > .app-nav { margin-left: 232px; }
  body.has-admin-sidebar > main { margin-left: 232px; }
}
.settings-container { max-width: 1080px; }
.settings-color { display: flex; align-items: center; gap: 10px; min-height: 42px; border: 1px solid #d8e2ee; border-radius: 8px; padding: 4px 10px; background: #fff; }
.settings-color input { width: 42px; height: 30px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.settings-color output { font-family: monospace; color: #536174; }
.settings-image-preview { display: block; width: 100%; max-height: 130px; object-fit: contain; object-position: left center; border: 1px solid #e1e8f0; border-radius: 10px; background: #f8fafc; margin-top: 8px; }
.settings-favicon-preview { display: block; width: 52px; height: 52px; object-fit: contain; border: 1px solid #e1e8f0; border-radius: 10px; background: #f8fafc; margin-top: 8px; }
