@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root{
  --navy-950:#0a1420;
  --navy-900:#0f1c2e;
  --navy-850:#132135;
  --navy-800:#17293f;
  --navy-700:#1f3650;
  --navy-600:#2a4665;
  --steel:#5b83ac;
  --amber:#c79a3a;
  --amber-bright:#e0b452;
  --amber-dim:#7a5f1f;
  --green:#33a873;
  --red:#d1596a;
  --text:#f2f5f8;
  --text-dim:#93a4b8;
  --text-faint:#64758a;
  --radius-sm:6px;
  --radius-md:10px;
  --radius-lg:14px;
  --shadow-sm:0 1px 2px rgba(0,0,0,.25);
  --shadow-md:0 6px 20px rgba(0,0,0,.28);
  --font: 'Inter', 'Segoe UI', Roboto, -apple-system, sans-serif;
  --mono:'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; min-height:100vh; color:var(--text); font-family:var(--font);
  -webkit-font-smoothing:antialiased; font-size:14px;
  background-color:var(--navy-950);
  background-image:
    radial-gradient(1200px 600px at 100% -10%, rgba(199,154,58,.06), transparent),
    radial-gradient(900px 500px at -10% 110%, rgba(91,131,172,.08), transparent),
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size:auto, auto, 34px 34px, 34px 34px;
  background-attachment:fixed;
}
a{color:inherit; text-decoration:none;}

.login-logo .brand-mark{position:relative;}
.login-logo .brand-mark::after{
  content:''; position:absolute; inset:-14px; border-radius:16px;
  background:radial-gradient(circle, rgba(224,180,82,.28), transparent 70%);
  z-index:-1;
}

/* ---------- Shell layout: sidebar + main (panel.php) ---------- */
.shell{display:flex; min-height:100vh;}
.sidebar{
  width:240px; flex:none; background:var(--navy-900); border-right:1px solid var(--navy-700);
  display:flex; flex-direction:column; position:sticky; top:0; height:100vh; overflow-y:auto;
}
.sidebar-brand{display:flex; align-items:center; gap:11px; padding:22px 18px 20px; border-bottom:1px solid var(--navy-800);}
.sidebar-brand .mark{width:34px; height:34px; border-radius:8px; background:var(--navy-800); border:1px solid var(--amber); color:var(--amber-bright); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:15px; flex:none;}
.sidebar-brand h1{font-size:14px; letter-spacing:.08em; text-transform:uppercase; margin:0; font-weight:800;}
.sidebar-brand small{display:block; font-size:10px; color:var(--text-faint); letter-spacing:.05em; margin-top:2px; font-weight:600;}
.sidebar-nav{flex:1; padding:14px 10px;}
.sidebar-nav .navlabel{font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:var(--text-faint); font-weight:700; padding:14px 10px 6px;}
.navitem{display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:var(--radius-sm); color:var(--text-dim); font-weight:600; font-size:13px; margin-bottom:2px; border-left:2px solid transparent; transition:background .15s, color .15s;}
.navitem:hover{background:var(--navy-800); color:var(--text);}
.navitem.active{background:rgba(199,154,58,.1); color:var(--amber-bright); border-left-color:var(--amber);}
.navitem .dot{width:6px; height:6px; border-radius:50%; background:currentColor; opacity:.6; flex:none;}
.sidebar-foot{padding:14px 16px 18px; border-top:1px solid var(--navy-800);}
.sidebar-user{font-size:12.5px; margin-bottom:10px;}
.sidebar-user b{display:block; color:var(--text); font-size:13px;}
.sidebar-user span{color:var(--text-dim);}
.main{flex:1; min-width:0; padding:26px 30px 60px; max-width:1280px;}
.mobile-topbar{display:none;}

@media(max-width:880px){
  .shell{flex-direction:column;}
  .sidebar{display:none;}
  .mobile-topbar{
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    padding:14px 16px; background:var(--navy-900); border-bottom:1px solid var(--navy-700); position:sticky; top:0; z-index:20;
  }
  .main{padding:18px 16px 50px;}
}

/* ---------- Simple topbar (trabajador.php / login) ---------- */
.app{max-width:1180px; margin:0 auto; padding:18px 16px 60px;}
.topbar{display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-radius:var(--radius-md); margin-bottom:22px; background:var(--navy-900); border:1px solid var(--navy-700); box-shadow:var(--shadow-sm);}
.brand{display:flex; align-items:center; gap:12px;}
.brand-mark{width:36px; height:36px; border-radius:8px; background:var(--navy-800); border:1px solid var(--amber); color:var(--amber-bright); flex:none; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:15px;}
.brand h1{font-size:14px; letter-spacing:.08em; text-transform:uppercase; margin:0; font-weight:800; color:var(--text);}
.brand small{display:block; font-size:11px; color:var(--text-faint); letter-spacing:.04em; margin-top:2px; font-weight:600;}
.who{display:flex; align-items:center; gap:14px; font-size:13px; color:var(--text-dim);}
.who b{color:var(--text); font-weight:700;}

/* ---------- Buttons ---------- */
.btn{appearance:none; border:1px solid var(--navy-600); background:var(--navy-800); color:var(--text); padding:9px 16px; border-radius:var(--radius-sm); font-size:13px; cursor:pointer; font-weight:600; font-family:var(--font); transition:background .15s, border-color .15s, transform .1s;}
.btn:hover{background:var(--navy-700); border-color:var(--steel);}
.btn:active{transform:translateY(1px);}
.btn-primary{background:linear-gradient(180deg, var(--amber-bright), var(--amber)); color:#1c1506; border:1px solid var(--amber-dim); box-shadow:var(--shadow-sm);}
.btn-primary:hover{filter:brightness(1.05); background:linear-gradient(180deg, var(--amber-bright), var(--amber));}
.btn-danger{background:transparent; border-color:var(--red); color:var(--red);}
.btn-danger:hover{background:rgba(209,89,106,.12);}
.btn-ghost{background:transparent; border-color:var(--navy-600); color:var(--text-dim);}
.btn-sm{padding:6px 11px; font-size:12px; border-radius:5px;}
.btn:disabled{opacity:.4; cursor:not-allowed;}

/* ---------- Cards ---------- */
.card{background:var(--navy-900); border:1px solid var(--navy-700); border-radius:var(--radius-md); padding:22px; margin-bottom:18px; box-shadow:var(--shadow-sm);}
.card h2{font-size:11.5px; text-transform:uppercase; letter-spacing:.1em; color:var(--amber-bright); margin:0 0 18px; display:flex; align-items:center; gap:9px; font-weight:800;}
.card h2::before{content:''; width:3px; height:14px; background:var(--amber); display:inline-block; border-radius:2px;}

/* ---------- Forms ---------- */
label{display:block; font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--text-dim); margin-bottom:7px; font-weight:700;}
input, select, textarea{width:100%; background:var(--navy-950); border:1px solid var(--navy-600); color:var(--text); padding:10px 12px; border-radius:var(--radius-sm); font-size:13.5px; font-family:var(--font); transition:border-color .15s;}
input:focus, select:focus, textarea:focus{outline:none; border-color:var(--steel); box-shadow:0 0 0 3px rgba(91,131,172,.15);}
textarea{resize:vertical; min-height:70px;}
.grid{display:grid; gap:14px;}
.grid-2{grid-template-columns:1fr 1fr;}
.grid-3{grid-template-columns:1fr 1fr 1fr;}
@media(max-width:720px){.grid-2,.grid-3{grid-template-columns:1fr;}}

/* ---------- Badges ---------- */
.badge{display:inline-block; padding:3px 10px; border-radius:20px; font-size:10.5px; font-weight:700; letter-spacing:.02em;}
.badge-pendiente{background:rgba(199,154,58,.16); color:var(--amber-bright);}
.badge-aprobado{background:rgba(51,168,115,.16); color:var(--green);}
.badge-rechazado{background:rgba(209,89,106,.16); color:var(--red);}
.mono{font-family:var(--mono);}
.empty{color:var(--text-dim); font-size:13px; padding:26px 0; text-align:center;}

/* ---------- Tabs (mobile fallback nav) ---------- */
.tabs{display:flex; gap:4px; margin-bottom:18px; border-bottom:1px solid var(--navy-700); overflow-x:auto;}
@media(min-width:881px){ .tabs{display:none;} }
.tab{padding:10px 16px; font-size:12px; font-weight:700; color:var(--text-dim); cursor:pointer; border-bottom:2px solid transparent; white-space:nowrap; text-transform:uppercase; letter-spacing:.03em;}
.tab.active{color:var(--amber-bright); border-color:var(--amber);}

.row-actions{display:flex; gap:8px; flex-wrap:wrap;}
.msg{padding:11px 15px; border-radius:var(--radius-sm); font-size:13px; margin-bottom:14px; border:1px solid transparent;}
.msg-ok{background:rgba(51,168,115,.1); color:var(--green); border-color:rgba(51,168,115,.28);}
.msg-err{background:rgba(209,89,106,.1); color:var(--red); border-color:rgba(209,89,106,.28);}

/* ---------- Stat cards ---------- */
.stat{background:var(--navy-950); border:1px solid var(--navy-700); border-radius:var(--radius-md); padding:16px 18px; position:relative; overflow:hidden;}
.stat::before{content:''; position:absolute; top:0; left:0; width:3px; height:100%; background:var(--amber); opacity:.5;}
.stat .n{font-size:24px; font-weight:800; font-family:var(--mono); letter-spacing:-.02em;}
.stat .l{font-size:10.5px; color:var(--text-dim); text-transform:uppercase; margin-top:3px; letter-spacing:.05em; font-weight:600;}

.legal{font-size:12.5px; color:var(--text-dim); line-height:1.7; background:var(--navy-950); border:1px solid var(--navy-700); border-radius:var(--radius-md); padding:16px 18px;}
.legal b{color:var(--text);}

/* ---------- Login ---------- */
.login-wrap{max-width:380px; margin:9vh auto 0;}
.login-wrap .card{padding:32px 28px; box-shadow:var(--shadow-md);}
.login-logo{text-align:center; margin-bottom:24px;}
.login-logo .brand-mark{margin:0 auto 14px; width:48px; height:48px; font-size:19px; border-radius:10px;}
.login-logo h1{font-size:21px; letter-spacing:.09em; font-weight:800; margin:0;}
.hint{font-size:11.5px; color:var(--text-dim); margin-top:14px; text-align:center; line-height:1.5;}

/* ---------- Activity cards ---------- */
.activity-card{background:var(--navy-950); border:1px solid var(--navy-700); border-radius:var(--radius-md); padding:18px; margin-bottom:14px; transition:border-color .15s, background-color .6s; scroll-margin-top:80px;}
.activity-card.flash{background:rgba(199,154,58,.08); border-color:var(--amber);}
.activity-card:hover{border-color:var(--navy-600);}
.activity-card-top{display:flex; gap:14px; align-items:flex-start; flex-wrap:wrap; margin-bottom:13px;}
.activity-title-row{display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:13.5px;}
.activity-meta{font-size:12px; color:var(--text-dim); margin-top:4px;}
.activity-badges{display:flex; gap:8px; flex-wrap:wrap; margin-left:auto;}
.activity-body{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:13px;}
@media(max-width:640px){.activity-body{grid-template-columns:1fr;}}
.field-label{font-size:10px; text-transform:uppercase; letter-spacing:.06em; color:var(--text-dim); font-weight:700; margin-bottom:4px;}
.field-value{font-size:13px; color:var(--text); line-height:1.55;}
.admin-fields{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:13px; padding-top:13px; border-top:1px solid var(--navy-800);}
@media(max-width:640px){.admin-fields{grid-template-columns:1fr;}}
.section-sep{padding-top:11px; margin-top:5px; border-top:1px solid var(--navy-800); font-size:12px;}
.thumb{width:56px; height:56px; object-fit:cover; border-radius:7px; border:1px solid var(--navy-600); cursor:pointer;}
.thumb-row{display:flex; gap:8px; flex-wrap:wrap; margin-top:6px;}

table{width:100%; border-collapse:collapse; font-size:13px;}
th{text-align:left; font-size:10px; text-transform:uppercase; letter-spacing:.04em; color:var(--text-dim); font-weight:700; padding:9px 11px; border-bottom:1px solid var(--navy-700); white-space:nowrap;}
td{padding:10px 11px; border-bottom:1px solid var(--navy-800); vertical-align:middle;}
tbody tr:hover td{background:rgba(255,255,255,.015);}

.filters{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:0;}
.filters > div{flex:1; min-width:150px;}
.checkbox-row{display:flex; align-items:flex-start; gap:9px; font-size:12px; color:var(--text-dim); cursor:pointer; text-transform:none; font-weight:400; line-height:1.5;}
.checkbox-row input{width:auto; margin-top:2px;}
