:root{
  --bone:#f6f4ee;--paper:#fbfaf6;--ink:#1a1d24;--ink-soft:#545a66;
  --navy:#16385c;--navy-deep:#0f2840;--amber:#c08a2d;--amber-soft:#e9c66b;
  --line:#ddd7c9;--ok:#1f6f52;--warn:#b07d1c;--err:#9c3024;
  --shadow:0 18px 50px -28px rgba(15,40,64,.55);--radius:13px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bone);color:var(--ink);
  font-family:"Inter",system-ui,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--navy)}
::selection{background:var(--amber-soft);color:var(--navy-deep)}

/* top bar */
.adminbar{background:var(--navy-deep);color:#fff;border-bottom:3px solid var(--amber)}
.adminbar-inner{max-width:1180px;margin:0 auto;padding:14px 22px;display:flex;align-items:center;gap:16px}
.adminbar .logo{width:40px;height:40px;border-radius:9px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.adminbar .logo img{width:100%;height:100%;object-fit:contain;padding:4px}
.adminbar .title{font:600 16px/1.1 "Spectral",serif}
.adminbar .title small{display:block;font:600 9px/1.2 "Inter";letter-spacing:.2em;color:var(--amber-soft);text-transform:uppercase}
.adminbar nav{margin-left:auto;display:flex;align-items:center;gap:6px}
.adminbar nav a{color:#cdd9e4;text-decoration:none;font-size:13.5px;font-weight:600;
  padding:8px 13px;border-radius:8px}
.adminbar nav a:hover{background:rgba(255,255,255,.08);color:#fff}
.adminbar nav a.active{background:var(--amber);color:#fff}
.adminbar .who{font-size:12px;color:#9fb2c2;font-family:"JetBrains Mono",monospace;
  border-left:1px solid rgba(255,255,255,.18);padding-left:14px;margin-left:6px}
.badge-rol{font:600 9px/1 "Inter";letter-spacing:.06em;text-transform:uppercase;
  padding:3px 6px;border-radius:4px;margin-left:6px}
.badge-rol.admin{background:var(--amber);color:#fff}
.badge-rol.feda{background:#3c6e8f;color:#fff}

.wrap{max-width:1180px;margin:0 auto;padding:26px 22px 80px}
h1.page{font:600 24px/1.2 "Spectral",serif;color:var(--navy-deep);margin:0 0 4px}
.page-sub{color:var(--ink-soft);font-size:14px;margin:0 0 22px}

/* Sub-navegación de la sección Configuración */
.subnav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.subnav a{text-decoration:none;font:600 13.5px/1 "Inter";color:var(--ink-soft);
  background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:9px 16px;
  transition:background .15s,border-color .15s,color .15s}
.subnav a:hover{border-color:var(--navy);color:var(--navy-deep)}
.subnav a.active{background:var(--navy);border-color:var(--navy);color:#fff}

/* cards / panels */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);overflow:hidden;margin-bottom:20px}
.card-head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}
.card-head h2{margin:0;font:600 16px/1.2 "Spectral",serif;color:var(--navy-deep)}
.card-body{padding:20px}

/* flash */
.flash{display:flex;gap:10px;align-items:flex-start;border-radius:10px;padding:12px 15px;
  margin-bottom:18px;font-size:14px;border:1px solid}
.flash.ok{background:#e8f3ed;border-color:#bcdcc9;color:#15503b}
.flash.err{background:#f8e7e4;border-color:#e6c2bc;color:#7e271d}
.flash.warn{background:#fbf3e2;border-color:#ecd9b0;color:#7a531a}

/* forms */
label.lbl{display:block;font:600 12px/1 "Inter";letter-spacing:.02em;text-transform:uppercase;
  color:var(--navy-deep);margin:0 0 6px}
input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{
  width:100%;font:500 14.5px/1.4 "Inter";color:var(--ink);background:#fff;
  border:1.5px solid var(--line);border-radius:9px;padding:10px 12px;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 4px rgba(22,56,92,.12)}
textarea{resize:vertical;min-height:90px}
.field{margin-bottom:16px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:760px){.grid2,.grid3{grid-template-columns:1fr}}
.help{font-size:12px;color:var(--ink-soft);margin-top:5px}

.btn{font:600 14px/1 "Inter";border:none;border-radius:9px;padding:11px 17px;cursor:pointer;
  display:inline-flex;align-items:center;gap:8px;text-decoration:none;transition:background .15s,transform .1s}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--navy);color:#fff}.btn-primary:hover{background:var(--navy-deep)}
.btn-amber{background:linear-gradient(135deg,var(--amber),#a9761f);color:#fff}
.btn-ghost{background:transparent;color:var(--navy);border:1.5px solid var(--line)}
.btn-ghost:hover{border-color:var(--navy)}
.btn-sm{padding:8px 12px;font-size:13px}

/* config groups */
.cfg-group{border:1px solid var(--line);border-radius:11px;margin-bottom:16px;overflow:hidden}
.cfg-group > summary{cursor:pointer;list-style:none;padding:14px 18px;background:#f1ede3;
  font:600 14.5px/1 "Inter";color:var(--navy-deep);display:flex;align-items:center;gap:8px}
.cfg-group > summary::-webkit-details-marker{display:none}
.cfg-group[open] > summary{border-bottom:1px solid var(--line)}
.cfg-group .gp-body{padding:18px}

/* tabla torneos */
.table-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.table-tools input,.table-tools select{width:auto;min-width:150px;flex:0 0 auto}
.table-tools .search{flex:1 1 220px;min-width:180px}
.count-pill{font:600 12px/1 "JetBrains Mono";color:var(--ink-soft);margin-left:auto}

.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
table.data{width:100%;border-collapse:collapse;font-size:13.5px;min-width:760px}
table.data thead th{position:sticky;top:0;background:#eee8db;color:var(--navy-deep);
  text-align:left;font:600 12px/1.2 "Inter";letter-spacing:.02em;padding:11px 14px;
  border-bottom:1px solid var(--line);cursor:pointer;white-space:nowrap;user-select:none}
table.data thead th .arrow{opacity:.35;font-size:10px;margin-left:3px}
table.data thead th.sorted .arrow{opacity:1;color:var(--amber)}
table.data thead th.nosort{cursor:default}
table.data tbody td{padding:11px 14px;border-bottom:1px solid #efe9da;vertical-align:middle}
table.data tbody tr:hover{background:#f3efe5}
table.data tbody tr{cursor:pointer}

/* Color de fila según estado del informe (tabla de torneos) */
table.data tbody tr.st-recibido  {background:#f4f7fa}
table.data tbody tr.st-verificado{background:#fbf6ec}
table.data tbody tr.st-evaluado  {background:#eef6f1}
table.data tbody tr.st-rechazado {background:#f9ecea}
table.data tbody tr.st-recibido  td:first-child{box-shadow:inset 4px 0 var(--navy)}
table.data tbody tr.st-verificado td:first-child{box-shadow:inset 4px 0 var(--amber)}
table.data tbody tr.st-evaluado  td:first-child{box-shadow:inset 4px 0 var(--ok)}
table.data tbody tr.st-rechazado td:first-child{box-shadow:inset 4px 0 var(--err)}
table.data tbody tr.st-recibido:hover,
table.data tbody tr.st-verificado:hover,
table.data tbody tr.st-evaluado:hover,
table.data tbody tr.st-rechazado:hover{filter:brightness(.965)}
.mono{font-family:"JetBrains Mono",monospace}
.tag{display:inline-block;font:600 10.5px/1 "Inter";padding:4px 8px;border-radius:5px;white-space:nowrap}
.tag.evt{background:#e7eef4;color:#1f4c70}
.tag.inf{background:#f1ebdc;color:#7a5a1c}
.tag.mail-ok{background:#e3f0e9;color:#1f6f52}
.tag.mail-no{background:#f6e6e3;color:#9c3024}
.empty{padding:40px;text-align:center;color:var(--ink-soft)}

/* detalle */
.kv{display:grid;grid-template-columns:200px 1fr;gap:0}
.kv .k{padding:9px 0;color:var(--ink-soft);font-size:13px;border-bottom:1px solid #efe9da}
.kv .v{padding:9px 0;font-weight:600;color:var(--ink);font-size:14px;border-bottom:1px solid #efe9da}
@media(max-width:560px){.kv{grid-template-columns:1fr}.kv .k{border:none;padding-bottom:0}}
.files-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.file-card{display:flex;align-items:center;gap:11px;border:1px solid var(--line);border-radius:10px;
  padding:12px 14px;background:#fff;text-decoration:none;color:var(--ink);transition:border-color .15s,box-shadow .2s}
.file-card:hover{border-color:var(--navy);box-shadow:0 8px 20px -14px rgba(15,40,64,.6)}
.file-card .ic{width:34px;height:34px;border-radius:8px;background:var(--bone);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;flex:0 0 auto;color:var(--navy)}
.file-card .fn{font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-card .fm{font:500 11px/1 "JetBrains Mono";color:var(--ink-soft);margin-top:3px}
.cat-label{font:600 10px/1 "Inter";letter-spacing:.06em;text-transform:uppercase;color:var(--amber);margin-bottom:3px}

/* comentarios */
.coment{border-left:3px solid var(--amber);background:#fff;border:1px solid var(--line);
  border-left-width:3px;border-radius:9px;padding:13px 15px;margin-bottom:12px}
.coment .meta{font-size:12px;color:var(--ink-soft);margin-bottom:6px}
.coment .meta b{color:var(--navy-deep)}
.coment .body{font-size:14px;white-space:pre-wrap}
.coment .sent{font:600 10.5px/1 "Inter";margin-left:8px;padding:3px 7px;border-radius:5px}
.coment .sent.ok{background:#e3f0e9;color:#1f6f52}
.coment .sent.no{background:#f6e6e3;color:#9c3024}

/* login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;
  background:radial-gradient(120% 90% at 50% -10%, #15314f 0%, #0d2238 55%, #091a2c 100%)}
.login-card{background:var(--paper);width:100%;max-width:400px;border-radius:16px;overflow:hidden;
  box-shadow:0 40px 90px -40px rgba(0,0,0,.7)}
.login-strip{height:6px;background:repeating-linear-gradient(90deg,var(--navy) 0 14px,var(--amber) 14px 28px)}
.login-card .head{text-align:center;padding:26px 26px 6px}
.login-card .head .logo{width:54px;height:54px;border-radius:12px;background:var(--navy-deep);margin:0 auto 12px;
  display:flex;align-items:center;justify-content:center;overflow:hidden}
.login-card .head .logo img{width:100%;height:100%;object-fit:contain;padding:6px}
.login-card .head h1{font:600 19px/1.2 "Spectral",serif;color:var(--navy-deep);margin:0}
.login-card .head p{color:var(--ink-soft);font-size:13px;margin:4px 0 0}
.login-card form{padding:18px 26px 28px}

/* ===== Popups del tema (confirm / alert reutilizables) ===== */
.ui-ov{position:fixed;inset:0;background:rgba(12,22,38,.6);display:none;align-items:center;justify-content:center;padding:20px;z-index:200}
.ui-ov.show{display:flex}
.ui-card{background:#fff;width:100%;max-width:440px;border-radius:14px;overflow:hidden;box-shadow:0 30px 80px -30px rgba(0,0,0,.7);transform:translateY(6px);animation:uiPop .14s ease-out forwards}
@keyframes uiPop{to{transform:translateY(0)}}
.ui-head{background:#0f2840;color:#fff;padding:13px 18px;border-bottom:3px solid #c08a2d;font:600 15px "Inter",sans-serif}
.ui-head.danger{border-bottom-color:#9c3024}
.ui-body{padding:18px;font:14px/1.55 "Inter",sans-serif;color:#1a1d24;white-space:pre-line}
.ui-foot{display:flex;gap:10px;justify-content:flex-end;padding:0 18px 18px}
.btn.btn-danger{background:#9c3024;border-color:#9c3024;color:#fff}
.btn.btn-danger:hover{background:#85281e;border-color:#85281e}
