:root{--burgundy:#1e3a8a;--burgundy-dark:#0f2358;--gold:#c9a84c;--gold-light:#fef3c7;--gold-pale:#fffbeb;--cream:#f0f4ff;--ink:#1c1c1c;--slate:#4a5568;--border:#c3d0e8;--shadow:0 4px 28px rgba(15,35,88,0.12);--sage:#2563eb;--especial:#7c3aed;
--acolito:#1e40af;--coroinha:#166534;--mariana:#9d174d;}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Lato',sans-serif;background:var(--cream);color:var(--ink);min-height:100vh;}
#loading-overlay{position:fixed;inset:0;background:var(--burgundy-dark);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;transition:opacity 0.4s;}
#loading-overlay.hide{opacity:0;pointer-events:none;}
.loading-cross{font-size:3rem;color:var(--gold);animation:pulse 1.5s infinite;}
.loading-text{color:var(--gold-light);font-family:'Cormorant Garamond',serif;font-size:1.3rem;margin-top:1rem;font-style:italic;}
.loading-sub{color:rgba(245,233,192,0.45);font-size:0.78rem;margin-top:0.4rem;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.4;}}
#screen-login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--burgundy-dark) 0%,#0a1840 60%,#060f2a 100%);padding:1.5rem;}
.login-box{background:white;border-radius:16px;padding:2.5rem 2rem;max-width:400px;width:100%;text-align:center;border-top:5px solid var(--gold);box-shadow:0 24px 64px rgba(0,0,0,0.4);}
.login-title{font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:700;color:var(--burgundy-dark);}
.login-logo{width:90px;height:90px;object-fit:contain;margin:0 auto 0.75rem;display:block;border-radius:50%;background:white;padding:6px;box-shadow:0 2px 12px rgba(107,26,42,0.15);}
.login-logo-placeholder{width:90px;height:90px;border-radius:50%;background:rgba(184,151,42,0.15);display:flex;align-items:center;justify-content:center;margin:0 auto 0.75rem;font-size:2.2rem;}
.login-subtitle{font-size:0.82rem;color:var(--slate);margin-bottom:2rem;font-style:italic;}
.login-tabs{display:flex;border:1.5px solid var(--border);border-radius:8px;margin-bottom:1.5rem;overflow:hidden;}
.login-tab{flex:1;padding:0.6rem;border:none;background:white;cursor:pointer;font-family:'Lato',sans-serif;font-size:0.82rem;font-weight:700;color:var(--slate);text-transform:uppercase;letter-spacing:0.05em;transition:all 0.2s;}
.login-tab.active{background:var(--burgundy-dark);color:var(--gold-light);}
.login-field-label{font-size:0.75rem;font-weight:700;color:var(--slate);text-align:left;display:block;margin-bottom:0.3rem;text-transform:uppercase;letter-spacing:0.06em;}
.login-input{width:100%;padding:0.75rem 1rem;border:1.5px solid var(--border);border-radius:8px;font-family:'Lato',sans-serif;font-size:1rem;margin-bottom:1rem;transition:border-color 0.2s;text-align:center;}
.login-input:focus{outline:none;border-color:var(--gold);}
.login-btn{width:100%;padding:0.85rem;border:none;border-radius:8px;background:var(--burgundy-dark);color:var(--gold-light);font-family:'Lato',sans-serif;font-weight:700;font-size:1rem;cursor:pointer;transition:background 0.2s;display:flex;align-items:center;justify-content:center;gap:0.5rem;}
.login-btn:hover{background:var(--burgundy);}
.login-btn:disabled{opacity:0.6;cursor:not-allowed;}
.login-error{background:#fff0f0;color:#b5451b;border:1px solid #f5c5bb;border-radius:7px;padding:0.6rem 1rem;font-size:0.83rem;margin-bottom:1rem;display:none;}
#screen-app{display:none;}
nav{background:var(--burgundy-dark);padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;height:60px;position:sticky;top:0;z-index:100;border-bottom:3px solid var(--gold);}
.nav-brand{display:flex;align-items:center;gap:0.6rem;}
.nav-brand .cross{color:var(--gold);font-size:1.2rem;}
.nav-brand-text{font-family:'Cormorant Garamond',serif;color:var(--gold-light);font-size:1.15rem;font-weight:600;line-height:1.1;}
.nav-brand-text span{display:block;font-size:0.68rem;color:rgba(245,233,192,0.55);font-style:italic;font-weight:400;}
.nav-tabs{display:flex;gap:0.25rem;flex-wrap:wrap;}
.nav-tab{background:transparent;border:none;color:rgba(245,233,192,0.65);padding:0.4rem 0.75rem;border-radius:6px;cursor:pointer;font-family:'Lato',sans-serif;font-size:0.78rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;transition:all 0.2s;}
.nav-tab:hover,.nav-tab.active{background:rgba(201,168,76,0.25);color:var(--gold-light);}
.nav-user{display:flex;align-items:center;gap:0.75rem;}
.nav-user-info{text-align:right;}
.nav-user-name{color:var(--gold-light);font-size:0.82rem;font-weight:700;}
.nav-user-role{color:rgba(245,233,192,0.55);font-size:0.68rem;text-transform:uppercase;letter-spacing:0.06em;}
.btn-logout{background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.2);color:var(--gold-light);padding:0.35rem 0.75rem;border-radius:6px;cursor:pointer;font-size:0.75rem;font-family:'Lato',sans-serif;}
.main{max-width:1100px;margin:0 auto;padding:2rem 1.5rem;}
.page{display:none;}
.page.active{display:block;}
.page-header{margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border);}
.page-header h1{font-family:'Cormorant Garamond',serif;font-size:2rem;color:var(--burgundy-dark);display:flex;align-items:center;gap:0.5rem;}
.page-header p{color:var(--slate);margin-top:0.25rem;font-size:0.9rem;}
.card{background:white;border-radius:12px;padding:1.5rem;box-shadow:var(--shadow);margin-bottom:1.5rem;border:1px solid var(--border);}
.card-title{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:700;color:var(--burgundy-dark);margin-bottom:1rem;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;}
@media(max-width:700px){.grid-2{grid-template-columns:1fr;}}

.bottom-nav{display:none;}

@media(max-width:720px){
  /* Coordenador: nav-tabs scrollável */
  .nav-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:calc(100vw - 200px);}
  .nav-tab{white-space:nowrap;font-size:0.68rem;padding:0.35rem 0.5rem;}
  .nav-brand-text span{display:none;}
  /* Responsável: bottom nav */
  body.responsavel-mode .nav-tabs{display:none;}
  body.responsavel-mode .bottom-nav{
    display:flex;position:fixed;bottom:0;left:0;right:0;
    background:var(--burgundy-dark);border-top:2px solid var(--gold);
    z-index:200;padding-bottom:env(safe-area-inset-bottom,0px);
  }
  body.responsavel-mode .bottom-tab{
    flex:1;display:flex;flex-direction:column;align-items:center;gap:0.25rem;
    padding:0.65rem 0.5rem;background:none;border:none;
    color:rgba(245,233,192,0.45);font-family:'Lato',sans-serif;
    font-size:0.68rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;
    cursor:pointer;transition:all 0.2s;
  }
  body.responsavel-mode .bottom-tab-icon{font-size:1.25rem;line-height:1;}
  body.responsavel-mode .bottom-tab.active{color:var(--gold);background:rgba(201,168,76,0.15);}
  body.responsavel-mode .bottom-tab:hover{color:var(--gold-light);}
  body.responsavel-mode .page{padding-bottom:calc(1rem + 72px);}
}
label{display:block;font-size:0.75rem;font-weight:700;color:var(--slate);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:0.4rem;margin-top:0.9rem;}
input,select,textarea{width:100%;padding:0.6rem 0.75rem;border:1.5px solid var(--border);border-radius:8px;font-family:'Lato',sans-serif;font-size:0.9rem;margin-bottom:0.75rem;transition:border-color 0.2s;background:white;}
input:focus,select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(184,151,42,0.1);}
.btn{display:inline-flex;align-items:center;gap:0.4rem;padding:0.55rem 1.1rem;border:none;border-radius:8px;font-family:'Lato',sans-serif;font-weight:700;font-size:0.82rem;cursor:pointer;transition:all 0.2s;text-transform:uppercase;letter-spacing:0.05em;}
.btn:disabled{opacity:0.5;cursor:not-allowed;}
.btn-primary{background:var(--burgundy-dark);color:var(--gold-light);}
.btn-primary:hover:not(:disabled){background:var(--burgundy);}
.btn-gold{background:var(--gold);color:white;}
.btn-gold:hover:not(:disabled){background:#9a7d22;}
.btn-sage{background:var(--sage);color:white;}
.btn-sage:hover:not(:disabled){background:#2a5438;}
.btn-outline{background:white;color:var(--burgundy-dark);border:1.5px solid var(--border);}
.btn-outline:hover:not(:disabled){border-color:var(--gold);background:var(--gold-pale);}
.btn-danger{background:#c0392b;color:white;}
.btn-danger:hover:not(:disabled){background:#a93226;}
.btn-pdf{background:#c0392b;color:white;}
.btn-sm{padding:0.3rem 0.65rem;font-size:0.72rem;}
.badge{display:inline-block;padding:0.15rem 0.5rem;border-radius:12px;font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;}
.badge-acolito{background:#dbeafe;color:#1e3a8a;}
.badge-coroinha{background:#dcfce7;color:#166534;}
.badge-mariana{background:#fce7f3;color:#9d174d;}
.badge-active{background:#d1fae5;color:#065f46;}
.badge-inactive{background:#f0f0f0;color:#888;}
.badge-coord{background:#ede9fe;color:#6d28d9;}
.stat-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem;}
@media(max-width:600px){.stat-cards{grid-template-columns:1fr;}}
.stat-card{background:linear-gradient(135deg,var(--burgundy-dark),#1e3a8a);color:var(--gold-light);border-radius:12px;padding:1.25rem;text-align:center;}
.stat-num{font-family:'Cormorant Garamond',serif;font-size:2.5rem;font-weight:700;color:var(--gold);}
.stat-label{font-size:0.7rem;text-transform:uppercase;letter-spacing:0.08em;opacity:0.7;margin-top:0.25rem;}
.table-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:0.85rem;}
th{background:var(--gold-pale);color:var(--burgundy-dark);font-weight:700;font-size:0.72rem;text-transform:uppercase;letter-spacing:0.06em;padding:0.6rem 0.75rem;text-align:left;border-bottom:2px solid var(--border);}
td{padding:0.55rem 0.75rem;border-bottom:1px solid var(--border);vertical-align:middle;}
tr:hover td{background:var(--gold-pale);}
.alert{padding:0.75rem 1rem;border-radius:8px;font-size:0.85rem;margin-bottom:1rem;}
.alert-info{background:#e0f2fe;color:#075985;border:1px solid #bae6fd;}
.alert-success{background:#d1fae5;color:#065f46;border:1px solid #a7f3d0;}
.alert-warn{background:#fef3c7;color:#92400e;border:1px solid #fde68a;}
.alert-purple{background:#ede9fe;color:#5b21b6;border:1px solid #ddd6fe;}
.divider{border:none;border-top:1px solid var(--border);margin:1rem 0;}
/* Calendário */
.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;}
.cal-title{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:700;color:var(--burgundy-dark);}
.month-btn{background:none;border:1.5px solid var(--border);border-radius:6px;width:32px;height:32px;cursor:pointer;font-size:1rem;color:var(--burgundy-dark);display:flex;align-items:center;justify-content:center;}
.month-btn:hover{background:var(--gold-pale);border-color:var(--gold);}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:0.75rem;}
.cal-day-name{text-align:center;font-size:0.65rem;font-weight:700;color:var(--slate);text-transform:uppercase;padding:4px 0;}
.cal-cell{border-radius:8px;padding:6px 4px;text-align:center;font-size:0.85rem;min-height:42px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1.5px solid transparent;transition:all 0.15s;}
.cal-cell.empty{background:transparent;}
.cal-cell.weekday{background:#f5f5f5;color:#ccc;}
.cal-cell.weekend.sabado{background:#fffbeb;color:#92600a;border-color:rgba(201,168,76,0.4);cursor:pointer;}
.cal-cell.weekend.domingo{background:#eff6ff;color:#1e3a8a;border-color:rgba(30,58,138,0.25);cursor:pointer;}
.cal-cell.semanal{background:#f0f4ff;color:#1e3a8a;border:1px solid #bfdbfe;cursor:pointer;}
.cal-cell.especial{background:#f5f0ff;color:var(--especial);border-color:rgba(124,58,237,0.3);cursor:pointer;}
.cal-cell.has-avail{background:#dbeafe!important;border-color:#3b82f6!important;}
.cal-cell.selected{background:var(--burgundy-dark)!important;color:var(--gold-light)!important;border-color:var(--gold)!important;}
.cal-cell:hover:not(.empty):not(.weekday){transform:scale(1.04);}
.cal-cell.no-pointer{cursor:default;}
.cal-cell.no-pointer:hover{transform:none;}
.cal-dot{width:5px;height:5px;border-radius:50%;background:#3b82f6;margin-top:2px;}
.cal-count{font-size:0.65rem;font-weight:700;color:#1d4ed8;background:#dbeafe;border-radius:8px;padding:0 3px;margin-top:1px;line-height:1.4;}
.cal-legend{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:0.5rem;}
.cal-legend-item{display:flex;align-items:center;gap:0.3rem;font-size:0.68rem;color:var(--slate);}
.cal-legend-dot{width:12px;height:12px;border-radius:3px;border:1.5px solid transparent;}
/* Horários */
.horario-grid{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:0.5rem;}
.horario-btn{padding:0.4rem 0.9rem;border:2px solid var(--border);border-radius:8px;background:white;cursor:pointer;font-family:'Lato',sans-serif;font-weight:700;font-size:0.85rem;transition:all 0.2s;color:var(--slate);}
.horario-btn.selected{background:var(--burgundy-dark);color:white;border-color:var(--burgundy-dark);}
.missa-section-title{font-size:0.78rem;font-weight:700;color:var(--slate);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:0.5rem;}
/* Modal */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:1000;display:none;align-items:center;justify-content:center;padding:1rem;}
.modal-overlay.open{display:flex;}
.modal{background:white;border-radius:14px;padding:2rem;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;border-top:4px solid var(--gold);}
.modal h2{font-family:'Cormorant Garamond',serif;font-size:1.4rem;color:var(--burgundy-dark);margin-bottom:1.25rem;}
.modal-actions{display:flex;gap:0.75rem;justify-content:flex-end;margin-top:1.5rem;}
/* Escala */
.escala-status-bar{display:flex;align-items:center;justify-content:space-between;padding:0.6rem 1rem;border-radius:8px;margin-bottom:1rem;flex-wrap:wrap;gap:0.5rem;}
.escala-status-rascunho{background:#fff8e1;border:1px solid #ffe082;color:#795548;}
.escala-status-finalizada{background:#f0faf0;border:1px solid #a5d6a7;color:#2e7d32;}
.escala-day{background:white;border-radius:10px;border:1px solid var(--border);margin-bottom:1rem;overflow:hidden;}
.escala-day-header{background:var(--gold-pale);padding:0.6rem 1rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);}
.escala-day-pill{font-size:0.72rem;font-weight:700;background:var(--burgundy-dark);color:var(--gold-light);padding:0.2rem 0.6rem;border-radius:10px;text-transform:uppercase;letter-spacing:0.04em;}
.escala-day-pill.especial{background:var(--especial);}
.escala-day-date{font-size:0.8rem;color:var(--slate);}
.escala-slot{padding:0.6rem 1rem;border-bottom:1px solid var(--border);display:flex;gap:1rem;align-items:flex-start;}
.escala-slot:last-child{border-bottom:none;}
.escala-time{font-weight:700;color:var(--burgundy-dark);font-size:0.82rem;min-width:60px;}
.escala-names{display:flex;flex-wrap:wrap;gap:0.4rem;flex:1;}
.chip{padding:0.2rem 0.6rem;border-radius:12px;font-size:0.75rem;font-weight:700;}
.chip-acolito{background:#dbeafe;color:#1e3a8a;border:1px solid #bfdbfe;}
.chip-coroinha{background:#dcfce7;color:#166534;border:1px solid #bbf7d0;}
.chip-mariana{background:#fce7f3;color:#9d174d;border:1px solid #fbcfe8;}
.chip-eu{box-shadow:0 0 0 2px var(--gold);}
/* Toast */
#toast{position:fixed;bottom:2rem;right:2rem;background:var(--burgundy-dark);color:var(--gold-light);padding:0.75rem 1.25rem;border-radius:10px;font-size:0.85rem;z-index:9999;opacity:0;transform:translateY(8px);transition:all 0.3s;pointer-events:none;border-left:4px solid var(--gold);max-width:360px;}
#toast.show{opacity:1;transform:translateY(0);}
/* Minha escala */
.minha-missa-card{display:flex;gap:1rem;align-items:center;padding:0.75rem;border-radius:8px;border:1px solid var(--border);margin-bottom:0.5rem;background:#eff6ff;}
.minha-missa-data{font-weight:700;color:var(--burgundy-dark);}
.minha-missa-hora{font-size:0.82rem;color:var(--slate);margin-top:0.15rem;}
/* Config */
.min-item{display:flex;align-items:center;gap:0.75rem;margin-bottom:0.5rem;}
.min-item label{margin:0;min-width:80px;text-transform:none;font-size:0.85rem;font-weight:700;letter-spacing:0;}
.min-item input{width:70px;margin:0;text-align:center;}
/* Toggle */
.toggle{position:relative;display:inline-block;width:44px;height:24px;}
.toggle input{opacity:0;width:0;height:0;}
.toggle-slider{position:absolute;cursor:pointer;inset:0;background:#ccc;border-radius:24px;transition:0.3s;}
.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background:white;border-radius:50%;transition:0.3s;}
.toggle input:checked+.toggle-slider{background:#2563eb;}
.toggle input:checked+.toggle-slider:before{transform:translateX(20px);}
