/* LABRE-DX Contest — Sistema de Apuração */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --blue:#1B4F8C;--blue-lt:#D6E4F7;--green:#2E7D32;--red:#C62828;
  --orange:#E65100;--gray-bg:#F5F5F5;--gray-brd:#DEE2E6;
  --text:#212121;--muted:#6C757D;--white:#FFFFFF;
  --radius:6px;--shadow:0 2px 8px rgba(0,0,0,.1)
}
body{font-family:'Segoe UI',Arial,sans-serif;font-size:14px;color:var(--text);background:var(--gray-bg);line-height:1.5}
 
/* Navbar */
.navbar{background:var(--blue);display:flex;align-items:center;justify-content:space-between;padding:.6rem 1.5rem;box-shadow:var(--shadow);position:sticky;top:0;z-index:100}
.navbar-brand a{color:#fff;text-decoration:none;font-size:1.05rem;font-weight:bold;display:flex;align-items:center;gap:.5rem}
.contest-ano{background:rgba(255,255,255,.2);border-radius:3px;padding:.1rem .4rem;font-size:.8rem;font-weight:normal}
.navbar-menu{display:flex;align-items:center;gap:1.2rem}
.navbar-menu>a,.navbar-menu>div>span{color:rgba(255,255,255,.9);text-decoration:none;font-size:.875rem;cursor:pointer}
.navbar-menu>a:hover{color:#fff;text-decoration:underline}
.dropdown{position:relative}
.dropdown-content{display:none;position:absolute;top:110%;right:0;background:#fff;border:1px solid var(--gray-brd);border-radius:var(--radius);box-shadow:0 4px 16px rgba(0,0,0,.15);min-width:220px;z-index:200;padding:.25rem 0}
.dropdown:hover .dropdown-content{display:block}
.dropdown-content a{display:block;padding:.45rem 1rem;color:var(--text)!important;text-decoration:none;font-size:.85rem}
.dropdown-content a:hover{background:var(--blue-lt)}
.dropdown-divider{border-top:1px solid var(--gray-brd);margin:.25rem 0}
.btn-logout{background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius);padding:.3rem .8rem;cursor:pointer;font-size:.8rem}
.btn-logout:hover{background:rgba(255,255,255,.25)}
 
/* Container */
.container{max-width:1200px;margin:1.5rem auto;padding:0 1.5rem}
h2{font-size:1.4rem;color:var(--blue);margin-bottom:.5rem}
h3{font-size:1.1rem;margin-bottom:.5rem}
p{margin-bottom:.75rem;color:var(--muted)}
 
/* Contest banner */
.contest-banner{background:var(--blue-lt);border-left:4px solid var(--blue);border-radius:var(--radius);padding:.6rem 1rem;margin-bottom:1rem;font-size:.9rem}
 
/* Alerts */
.alert{border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:1rem;font-size:.9rem}
.alert-success{background:#E8F5E9;border-left:4px solid var(--green);color:#1B5E20}
.alert-danger{background:#FFEBEE;border-left:4px solid var(--red);color:#B71C1C}
.alert-warning{background:#FFF8E1;border-left:4px solid #F9A825;color:#5D4037}
 
/* Buttons */
.btn{display:inline-block;padding:.5rem 1.2rem;border-radius:var(--radius);border:none;cursor:pointer;font-size:.9rem;font-weight:500;text-decoration:none;transition:opacity .15s}
.btn:hover{opacity:.85}
.btn-primary{background:var(--blue);color:#fff}
.btn-danger{background:var(--red);color:#fff}
.btn-warning{background:#F57C00;color:#fff}
.btn-secondary{background:#607D8B;color:#fff;margin-left:.5rem}
.btn-block{display:block;width:100%;text-align:center}
 
/* Forms */
.form-group{margin-bottom:1rem}
.form-group label{display:block;font-weight:600;margin-bottom:.3rem}
.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="password"]{width:100%;padding:.5rem .75rem;border:1px solid var(--gray-brd);border-radius:var(--radius);font-size:.95rem}
.form-group input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(27,79,140,.15)}
 
/* Tables */
.table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1.5rem}
.table th{background:var(--blue);color:#fff;padding:.6rem .9rem;text-align:left;font-size:.85rem}
.table td{padding:.55rem .9rem;border-bottom:1px solid var(--gray-brd);font-size:.875rem}
.table tr:last-child td{border-bottom:none}
.table tr:nth-child(even) td{background:var(--gray-bg)}
.table tr:hover td{background:var(--blue-lt)}
code{background:#EEF;padding:.1rem .3rem;border-radius:3px;font-size:.85em;color:var(--blue)}
 
/* Stats grid */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin:1rem 0}
.stat-card{background:#fff;border-radius:var(--radius);padding:1.2rem;text-align:center;box-shadow:var(--shadow);border-top:4px solid var(--blue)}
.stat-card-green{border-top-color:var(--green)}
.stat-card-red{border-top-color:var(--red)}
.stat-number{font-size:2rem;font-weight:bold;color:var(--blue)}
.stat-card-green .stat-number{color:var(--green)}
.stat-card-red .stat-number{color:var(--red)}
.stat-label{font-size:.8rem;color:var(--muted);margin-top:.3rem}
 
/* Etapas grid */
.etapas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.75rem;margin:1rem 0}
.etapa-card{background:#fff;border:1px solid var(--gray-brd);border-radius:var(--radius);padding:.9rem .75rem;text-align:center;text-decoration:none;color:var(--text);box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s}
.etapa-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.15);border-color:var(--blue)}
.etapa-num{font-size:1.5rem;font-weight:bold;color:var(--blue)}
.etapa-nome{font-size:.78rem;color:var(--muted);margin-top:.25rem}
 
/* Login */
.login-page{background:var(--blue);display:flex;align-items:center;justify-content:center;min-height:100vh}
.login-box{background:#fff;border-radius:10px;padding:2.5rem;width:380px;box-shadow:0 8px 32px rgba(0,0,0,.3)}
.login-logo{text-align:center;margin-bottom:1.5rem}
.login-logo h1{color:var(--blue);font-size:1.6rem}
.login-logo p{color:var(--muted);font-size:.9rem;margin:.3rem 0 0}
.contest-info{background:var(--blue-lt);border-radius:3px;padding:.2rem .5rem;font-size:.8rem;color:var(--blue);display:inline-block;margin-top:.3rem}
 
/* Footer */
.footer{text-align:center;padding:1rem;margin-top:2rem;font-size:.8rem;color:var(--muted);border-top:1px solid var(--gray-brd)}

/* ── Navbar em processamento ─────────────────────────────────────────── */
.navbar-processando { background: #7B3F00 !important; }
.navbar-aviso-proc {
    background: rgba(255,200,0,.25);
    border-radius: 4px;
    padding: .15rem .5rem;
    font-size: .8rem;
    color: #FFD700;
    margin-left: .75rem;
    animation: blink-proc 1.2s infinite;
}
@keyframes blink-proc { 0%,100%{opacity:1} 50%{opacity:.4} }

/* Menu desabilitado durante processamento */
.menu-desabilitado { opacity: .45; pointer-events: none; }
.nav-disabled { opacity: .45 !important; pointer-events: none !important; cursor: default !important; }

/* Item de dropdown desabilitado por dependência */
.dropdown-item-disabled {
    display: block;
    padding: .45rem 1rem;
    color: #bbb !important;
    font-size: .85rem;
    cursor: not-allowed;
    text-decoration: none;
}
.dropdown-item-disabled:hover { background: none !important; }

/* Stat-etapa nos cards */
.stat-etapa { font-size: .7rem; color: #aaa; margin-top: .15rem; letter-spacing: .3px; }
