:root{
  --bg: #f5f7fb;
  --card: #ffffff;
  --muted: #6c7a89;
  --accent: #22c55e;
  --glass: rgba(255,255,255,0.7);
  --radius: 14px;
  --shadow-1: 0 8px 24px rgba(19,22,28,0.06);
  --shadow-2: 0 18px 40px rgba(8,15,31,0.12);
  --max-width: 1100px;
  --transition: 220ms cubic-bezier(.2,.9,.2,1);
}

/* global */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: Inter, "Segoe UI", Roboto, system-ui, -apple-system, "Helvetica Neue", Arial;
  background:
    radial-gradient(800px 400px at 10% 10%, rgba(34,197,94,0.03), transparent),
    radial-gradient(700px 300px at 90% 90%, rgba(52,211,153,0.02), transparent),
    var(--bg);
  color:#071426;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  display:flex;
  flex-direction:column;
  min-height:100vh;
  transition: background var(--transition);
}

/* dark mode root override */
body.dark{
  --bg: #071226;
  --card: #061025;
  --muted: #9aa6b2;
  background: radial-gradient(800px 400px at 10% 10%, rgba(34,197,94,0.02), transparent), var(--bg);
  color: #e6eef6;
}

/* header */
.site-header{
  padding:22px 18px;
  background: linear-gradient(90deg, rgba(255,255,255,0.60), rgba(255,255,255,0.35));
  backdrop-filter: blur(6px);
  box-shadow: var(--shadow-1);
  border-bottom: 1px solid rgba(15,23,36,0.03);
}
body.dark .site-header{
  background: linear-gradient(90deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02));
}
.header-inner{max-width:var(--max-width); margin:0 auto;}
.brand-row{display:flex; align-items:center; justify-content:space-between; gap:12px}
.brand{font-size:1.9rem; color:inherit; margin:0; letter-spacing:0.3px}
.controls{display:flex; gap:8px; align-items:center}
.icon-btn{background:transparent;border:0;padding:8px;border-radius:10px;cursor:pointer; transition:transform 140ms}
.icon-btn:focus{outline:2px solid rgba(34,197,94,0.18)}
.tagline{margin:6px 0 14px 0; color:var(--muted); font-size:0.98rem}

/* search row */
.search-row{display:flex; align-items:center; gap:14px; justify-content:space-between; flex-wrap:wrap}
.search{display:flex; align-items:center; gap:8px; background:var(--card); padding:8px 12px; border-radius:999px; box-shadow: var(--shadow-1); min-width:260px; transition: box-shadow var(--transition)}
body.dark .search{background:rgba(255,255,255,0.02)}
.search input{border:0;background:transparent; padding:8px; min-width:160px; font-size:0.98rem; color:inherit}
.search-icon{opacity:0.7}

/* tabs */
.tabs{display:flex; gap:8px; margin-top:12px; flex-wrap:wrap}
.tab{background:transparent;border:1px solid transparent;padding:8px 12px;border-radius:999px;cursor:pointer; color:var(--muted); font-weight:600; transition:all 160ms}
.tab:hover{transform:translateY(-3px)}
.tab.active{background:linear-gradient(90deg,#ecfdf5,#f0fdf4); color: #06201a; border:1px solid rgba(6,32,26,0.06)}
body.dark .tab.active{background:linear-gradient(90deg, rgba(255,255,255,0.03), rgba(255,255,255,0.02)); color:var(--muted)}

/* main grid */
.main{flex:1;padding:28px 18px}
.container{max-width:var(--max-width); margin:0 auto}
.grid{display:grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap:18px; margin-top:18px}

/* job card */
.card{
  display:flex; flex-direction:column; align-items:center; gap:12px; text-decoration:none;
  padding:18px; background:var(--card); border-radius:var(--radius); color:inherit;
  box-shadow: var(--shadow-1); transition: transform var(--transition), box-shadow var(--transition), background var(--transition);
  transform-origin:center; position:relative; overflow:visible; min-height:120px;
}
.card:focus{outline:2px solid rgba(34,197,94,0.14)}
.card:hover{transform:translateY(-8px) rotate(-0.6deg) scale(1.02); box-shadow: var(--shadow-2)}
.card:active{transform: translateY(-2px) scale(.99)}
.card .icon-wrap{width:56px;height:56px;border-radius:12px; display:flex; align-items:center; justify-content:center; background:linear-gradient(180deg, rgba(255,255,255,0.85), rgba(240,255,240,0.95)); transition:transform 220ms, box-shadow 220ms}
body.dark .card .icon-wrap{background: rgba(255,255,255,0.02)}
.card .icon-wrap .icon{width:30px;height:30px; display:block; color:var(--accent)}
.card .title{font-weight:700}
.card .meta{color:var(--muted); font-size:0.9rem}

/* favorite star */
.favorite{
  position:absolute; right:12px; top:12px; background:transparent; border:0; cursor:pointer; padding:6px; border-radius:8px;
  transition: transform 160ms;
}
.favorite .icon{width:18px;height:18px; color:rgba(7,20,38,0.45)}
.favorite.active .icon{color:var(--accent); transform:scale(1.05)}

/* new tag */
.new-badge{position:absolute; left:12px; top:12px; background:var(--accent); color:white; padding:6px 8px; border-radius:999px; font-size:0.8rem; font-weight:700; box-shadow: 0 6px 18px rgba(34,197,94,0.12)}

/* entrance animation staggered driven by JS inline delay */
@keyframes enter {
  from { transform: translateY(18px) scale(.98); opacity:0; }
  60% { transform: translateY(-6px) scale(1.01); opacity:1; }
  to { transform: translateY(0) scale(1); opacity:1; }
}
.card{opacity:0; animation: enter 520ms cubic-bezier(.2,.9,.2,1) both}

/* pop animation */
@keyframes pop { 0%{transform:scale(1)} 40%{transform:scale(.94)} 70%{transform:scale(1.06)} 100%{transform:scale(1)}}
.card.pop{animation: pop 360ms cubic-bezier(.2,.9,.2,1)}

/* floating social X */
.social-x{position:fixed; right:18px; bottom:18px; width:56px; height:56px; display:flex; align-items:center; justify-content:center; background: linear-gradient(180deg,#1DA1F2,#1786d8); border-radius:999px; box-shadow: 0 10px 30px rgba(23,35,54,0.18); z-index:999; text-decoration:none}
.social-x:hover{transform:translateY(-6px) scale(1.03)}

/* footer */
.site-footer{padding:18px;text-align:center;color:var(--muted);font-size:0.9rem;border-top:1px solid rgba(15,23,36,0.03)}

/* responsive tweaks */
@media (max-width:600px){
  .search{min-width:0; width:100%}
  .tab{padding:8px}
  .brand{font-size:1.4rem}
}

/* accessibility focus for buttons */
button:focus{outline:2px dashed rgba(34,197,94,0.2); outline-offset:2px}
