:root{
  --azul:#1e5eff; --azul-esc:#1848c9; --borda:#e4e8f2; --txt:#1a2233; --mut:#68728a; --bg:#f4f6fb;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--txt)}

/* topbar */
.topbar{background:#fff;border-bottom:1px solid var(--borda);padding:14px 24px;display:flex;
  align-items:center;justify-content:space-between;position:sticky;top:0;z-index:5;flex-wrap:wrap;gap:10px}
.brand{font-weight:700;font-size:17px}
.topnav{display:flex;align-items:center;gap:16px;font-size:13px;color:var(--mut)}
.topnav a{color:var(--azul);text-decoration:none;font-weight:600}
.topnav a.sair{color:#d63333}

.wrap{max-width:1000px;margin:0 auto;padding:24px}
.crumbs{font-size:14px;margin-bottom:16px;color:var(--mut)}
.crumbs a{color:var(--azul);text-decoration:none}
.crumbs .sep{margin:0 6px;color:#c2c9da}

.drop{border:2px dashed #c3cde6;border-radius:14px;background:#fff;padding:28px;text-align:center;
  color:var(--mut);cursor:pointer;transition:.15s;margin-bottom:12px;display:block}
.drop.hover{border-color:var(--azul);background:#eef3ff;color:var(--azul)}
.drop .big{font-size:34px}
.drop b{color:var(--txt)}
.drop .hint{font-size:12px;margin-top:4px}

.actions{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}
.btn{padding:9px 14px;border-radius:9px;border:1px solid var(--borda);background:#fff;cursor:pointer;
  font-size:14px;font-weight:600;color:var(--txt)}
.btn.primary{background:var(--azul);color:#fff;border-color:var(--azul)}
.btn.primary:hover{background:var(--azul-esc)}

table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;
  box-shadow:0 1px 3px rgba(20,30,60,.06);margin-bottom:24px}
th,td{text-align:left;padding:12px 16px;font-size:14px;border-bottom:1px solid var(--borda)}
th{color:var(--mut);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.4px}
tr:last-child td{border-bottom:none}
td .item,td a.item{color:var(--txt);text-decoration:none;display:inline-flex;align-items:center;gap:10px;font-weight:500}
td a.item:hover{color:var(--azul)}
.mut{color:var(--mut);white-space:nowrap}
.rowact{display:flex;gap:8px;justify-content:flex-end}
.rowact a,.rowact button{border:none;background:none;cursor:pointer;font-size:16px;color:var(--mut);
  text-decoration:none;padding:4px;border-radius:6px}
.rowact a:hover{color:var(--azul)}
.rowact button:hover{color:#d63333}
.empty{text-align:center;color:var(--mut);padding:40px}
.badge{background:#e7efff;color:var(--azul);font-size:12px;font-weight:700;padding:2px 8px;border-radius:20px}

.flash{padding:11px 16px;border-radius:10px;margin-bottom:16px;font-size:14px;font-weight:500}
.flash.ok{background:#e3f8ea;color:#137a3b}
.flash.erro{background:#ffe6e6;color:#b30000}

#progress{display:none;margin-bottom:16px}
#progress .bar{height:8px;background:#e4e8f2;border-radius:6px;overflow:hidden}
#progress .fill{height:100%;width:0;background:var(--azul);transition:width .1s}
#progress .lbl{font-size:13px;color:var(--mut);margin-top:6px}

.panel{background:#fff;border:1px solid var(--borda);border-radius:12px;padding:18px 20px;margin-bottom:24px}
.panel h2{margin:0 0 14px;font-size:16px}
.formrow{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.formrow input[type=text],.formrow input:not([type]){flex:1;min-width:140px}
.formrow input{padding:9px 11px;border:1px solid var(--borda);border-radius:9px;font-size:14px;outline:none}
.formrow input:focus{border-color:var(--azul)}
.chk{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--mut)}
table.logs th,table.logs td{font-size:13px;padding:9px 14px}

/* login */
.login-bg{background:linear-gradient(135deg,#1e5eff 0%,#0b2a7a 100%);display:flex;align-items:center;
  justify-content:center;min-height:100vh}
.login-card{background:#fff;padding:40px 36px;border-radius:16px;width:340px;box-shadow:0 18px 50px rgba(0,0,0,.25)}
.login-logo{font-size:44px;text-align:center}
.login-card h1{font-size:20px;margin:8px 0 4px;text-align:center}
.login-card .sub{margin:0 0 24px;text-align:center;color:var(--mut);font-size:13px}
.login-card label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}
.login-card input{width:100%;padding:11px 12px;margin-bottom:16px;border:1px solid #d7dceb;border-radius:9px;font-size:14px;outline:none}
.login-card input:focus{border-color:var(--azul)}
.login-card button{width:100%;padding:12px;background:var(--azul);color:#fff;border:none;border-radius:9px;font-size:15px;font-weight:600;cursor:pointer}
.login-card button:hover{background:var(--azul-esc)}
