@font-face{font-family:Montserrat;src:url('/brand/fonts/Montserrat-Regular.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Montserrat;src:url('/brand/fonts/Montserrat-Medium.otf') format('opentype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Montserrat;src:url('/brand/fonts/Montserrat-SemiBold.otf') format('opentype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Montserrat;src:url('/brand/fonts/Montserrat-Bold.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Montserrat;src:url('/brand/fonts/Montserrat-ExtraBold.otf') format('opentype');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat Alternates';src:url('/brand/fonts/MontserratAlternates-Medium.otf') format('opentype');font-weight:500;font-style:normal;font-display:swap}

:root{--vlo-dark:#182229;--vlo-deep:#15adaa;--vlo-light:#36e0d7;--vlo-soft:#f3fbfa;--global-menu:#15adaa;--global-bg:#f3fbfa;--global-surface:#ffffff;--global-text:#182229}
html,body,button,input,select,textarea{font-family:Montserrat,ui-sans-serif,system-ui,sans-serif}
.app-logo{display:block;width:46px;height:56px;object-fit:contain;flex:0 0 auto}
.auth .app-logo{width:110px;height:140px}
.vlo-word{font-family:'Montserrat Alternates',Montserrat,sans-serif;font-weight:500;letter-spacing:.02em}
.public-kicker{font-weight:700;color:var(--vlo-deep);letter-spacing:.08em;text-transform:uppercase}
.global-theme-preview{border-radius:18px;padding:1rem;background:var(--preview-bg);color:var(--preview-text);border:1px solid color-mix(in srgb,var(--preview-text) 15%,transparent)}
.global-theme-preview>div{background:var(--preview-surface);border-radius:12px;padding:1rem}
.theme-tabs{margin:1rem 0}
.organization-card{position:relative;overflow:hidden}
.organization-card::before{content:'';position:absolute;inset:0 auto 0 0;width:7px;background:var(--org-color,#15adaa)}
.organization-logo{width:54px;height:54px;object-fit:contain;border-radius:12px;background:white;padding:4px}
.group-color-dot{width:14px;height:14px;border-radius:50%;display:inline-block;background:var(--group-color,#15adaa);margin-right:.45rem}
.objective-reminder{margin:0 0 1rem;padding:1rem 1.2rem;border-left:6px solid var(--vlo-deep);background:color-mix(in srgb,var(--vlo-light) 12%,var(--paper));border-radius:14px}
.objective-reminder small{display:block;color:var(--muted)}
.warning-inline{padding:.65rem .8rem;border-radius:10px;background:#fff3cd;color:#674d00;font-weight:600}
.date-jump{display:flex;gap:.55rem;align-items:end;flex-wrap:wrap}
.date-jump label{min-width:120px}
.attendance-grid{display:grid;gap:.5rem}
.attendance-row{display:grid;grid-template-columns:1fr auto auto;gap:.6rem;align-items:center;padding:.55rem;border-bottom:1px solid var(--line)}
.status-chip{display:inline-block;padding:.25rem .55rem;border-radius:999px;font-size:.72rem;font-weight:800;background:var(--paper2)}
.status-chip.active{background:#dff5ee;color:#145c44}.status-chip.inactive{background:#fff2cc;color:#684f00}.status-chip.deleted{background:#f7dddd;color:#7a2929}
