/* EF10 GAMES Personnel Tracking - Modern UI */
:root{
  --bg:#0b0c0e; --bg-soft:#111216; --card:#14161a; --muted:#9aa0aa; --text:#edf0f3; --text-inv:#0b0c0e; --primary:#d21f3c; --accent:#ef3e4a; --danger:#ff5265; --ok:#28c08a; --outline:#23262b;
  --shadow:0 14px 32px rgba(0,0,0,.45);
  --radius:12px;
}
[data-theme="light"]{
  --bg:#f6f7fb; --bg-soft:#eef1f6; --card:#ffffff; --muted:#6b7280; --text:#0f1324; --text-inv:#ffffff; --primary:#d21f3c; --accent:#ff5a5f; --danger:#e11d2e; --ok:#22a86b; --outline:#e5e7ef;
  --shadow:0 10px 24px rgba(0,0,0,.12);
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;background:linear-gradient(180deg, var(--bg), var(--bg-soft));color:var(--text);padding-bottom:48px}
.container{max-width:1200px;margin:0 auto}

.auth-body{display:grid;place-items:center;min-height:100vh;padding:24px}
.login-card{width:min(460px, 92vw);background:var(--card);padding:28px;border-radius:var(--radius);box-shadow:var(--shadow);animation:floatIn .6s ease;border:1px solid var(--outline)}
.brand{display:grid;place-items:center;gap:6px;margin-bottom:14px;text-align:center}
.logo-pulse{width:88px;height:88px;border-radius:14px;background:#111 url('/assets/img/logo.png') center/cover no-repeat;box-shadow:0 8px 24px rgba(0,0,0,.35)}
@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.03)}100%{transform:scale(1)}}
@keyframes floatIn{from{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}

.form{display:grid;gap:8px}
.form.inline{grid-template-columns:1fr auto;align-items:center}
label{font-size:.9rem;color:var(--muted)}
input, textarea, select{width:100%;padding:12px 14px;border:1px solid var(--outline);background:var(--card);color:var(--text);border-radius:10px;outline:none;transition:.18s}
input:focus, textarea:focus, select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(210,31,60,.18)}
.btn-primary, .btn-secondary, .btn-link{cursor:pointer;border:none;border-radius:10px;padding:12px 14px;font-weight:700}
.btn-primary{background:linear-gradient(0deg, var(--primary), var(--accent));color:white}
.btn-secondary{background:var(--bg-soft);color:var(--text);border:1px solid var(--outline)}
.btn-secondary:hover{filter:brightness(1.05)}
.btn-link{background:transparent;color:var(--muted)}
.form-error{color:var(--danger);font-size:.9rem}
.auth-footer{margin-top:18px;color:var(--muted);font-size:.85rem}

.topbar{position:sticky;top:0;z-index:5;backdrop-filter: blur(8px);display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-bottom:1px solid var(--outline);background:var(--card)}
.topbar .left{display:flex;gap:10px;align-items:center}
.logo-sm{width:28px;height:28px;border-radius:8px;background:#111 url('/assets/img/logo.png') center/cover no-repeat;border:1px solid #2a2b30}
.topbar .right a, .topbar .right .btn-link{color:var(--muted);text-decoration:none;margin:0 8px}
.topbar .right a.active{color:var(--text)}
.topbar .right{display:flex;align-items:center;gap:6px}
.bell{position:relative;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;line-height:1}
.badge{position:absolute;top:-4px;right:-4px;background:#e11d2e;color:#fff;border-radius:999px;font-size:.7rem;padding:2px 6px;border:1px solid #2a2b30}

.grid{display:grid;gap:16px;padding:16px;grid-template-columns:repeat(2, minmax(0, 1fr));max-width:1200px;margin:0 auto}
.card{background:linear-gradient(180deg, rgba(255,255,255,.015), rgba(255,255,255,.008));border:1px solid var(--outline);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}
.card h2{margin:0 0 10px 0}
.span-2{grid-column:span 2}

/* Hero section */
.hero{display:flex;align-items:center;gap:14px;padding:14px;border-radius:var(--radius);background:linear-gradient(120deg, rgba(210,31,60,.10), rgba(210,31,60,.06));border:1px solid #2a2b30}
.hero .hero-logo{width:56px;height:56px;border-radius:12px;background:#111 url('/assets/img/logo.png') center/cover no-repeat;border:1px solid #2a2b30;box-shadow:0 8px 20px rgba(0,0,0,.35)}
.hero .hero-text{font-weight:700}

.list{display:grid;gap:10px}
.list .item{padding:12px;border-radius:10px;background:var(--card);border:1px solid var(--outline);display:flex;gap:12px;align-items:flex-start;transition:transform .12s, box-shadow .12s}
.list .item:hover{transform:translateY(-1px);box-shadow:0 10px 20px rgba(0,0,0,.25)}
.list .item .thumb{width:72px;height:72px;border-radius:10px;object-fit:cover;border:1px solid #2a2b30;flex:0 0 auto}
.chip{display:inline-block;font-size:.75rem;background:var(--bg-soft);color:var(--muted);padding:2px 8px;border-radius:999px;border:1px solid var(--outline)}
.chip-open{background:rgba(210,31,60,.08); color:#ff5a5f; border-color:rgba(210,31,60,.25)}
.chip-answered{background:rgba(40,192,138,.1); color:#28c08a; border-color:rgba(40,192,138,.35)}
.chip-closed{background:rgba(107,114,128,.15); color:#6b7280; border-color:rgba(107,114,128,.35)}
.chip-news{background:rgba(210,31,60,.08); color:#ff4d5a; border-color:rgba(210,31,60,.25)}
.chip-announcement{background:rgba(255,176,32,.12); color:#ffb020; border-color:rgba(255,176,32,.35)}
.chip-support{background:rgba(59,130,246,.12); color:#3b82f6; border-color:rgba(59,130,246,.35)}
.attach{display:inline-block;color:var(--text); text-decoration:underline; font-size:.9rem}
.skeleton{background:linear-gradient(90deg,#1a1b20,#1f2026,#1a1b20);background-size:200% 100%;animation:sk 1.2s infinite}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}
.status{padding:10px;border-radius:10px;background:rgba(40,192,138,.08);border:1px solid rgba(40,192,138,.25)}
.actions{display:flex;gap:10px;margin-top:8px}

/* Floating chat widget */
.chat-fab{position:fixed;right:18px;bottom:18px;width:56px;height:56px;border-radius:14px;background:linear-gradient(0deg, var(--primary), var(--accent));color:#fff;display:grid;place-items:center;box-shadow:var(--shadow);cursor:pointer;z-index:20;border:1px solid #2a2b30;transition:transform .15s}
.chat-fab:hover{transform:translateY(-2px)}
.chat-panel{position:fixed;right:18px;bottom:84px;width:min(380px, 94vw);height:520px;border-radius:var(--radius);background:var(--card);border:1px solid var(--outline);box-shadow:var(--shadow);display:none;grid-template-rows:auto 1fr auto;overflow:hidden;z-index:20}
.chat-header{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--outline);background:var(--card)}
.chat-body{display:grid;grid-template-columns:120px 1fr}
.chat-users{border-right:1px solid var(--outline);overflow:auto;background:var(--bg-soft)}
.chat-users .user{padding:8px 10px;border-bottom:1px solid var(--outline);cursor:pointer;font-size:.95rem;display:flex;align-items:center;gap:8px}
.chat-users .user .avatar{width:24px;height:24px;border-radius:50%;background:#191a1f;border:1px solid #2a2b30;display:inline-block}
.chat-users .user.active{background:var(--bg-soft)}
.chat-messages{display:flex;flex-direction:column;gap:8px;padding:12px;overflow:auto;background:var(--bg-soft)}
.chat-msg{display:flex;gap:8px}
.chat-msg.me{justify-content:flex-end}
.chat-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover;border:1px solid #2a2b30}
.bubble{max-width:70%;padding:10px 12px;border-radius:12px;background:var(--card);border:1px solid var(--outline)}
.bubble.me{background:linear-gradient(45deg, var(--primary), var(--accent)); color:#fff;border:none}
.chat-input{display:flex;gap:6px;padding:10px;border-top:1px solid var(--outline);background:var(--card)}
.chat-input input{flex:1}

/* Bottom status bar */
.statusbar{position:fixed;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--outline);padding:6px 10px;display:flex;align-items:center;gap:8px;z-index:10;box-shadow:0 -6px 20px rgba(0,0,0,.12);font-size:.9rem}
.status-dot{width:10px;height:10px;border-radius:50%}
.status-online{background:#28c08a}
.status-away{background:#ffb020}
.status-dnd{background:#ff4d6d}

/* Bottom-left circular status control */
.status-fab{position:fixed;left:18px;bottom:18px;width:44px;height:44px;border-radius:50%;background:linear-gradient(45deg, var(--primary), var(--accent));display:grid;place-items:center;color:#fff;border:1px solid #2a2b30;box-shadow:var(--shadow);cursor:pointer;z-index:20}
.status-menu{position:fixed;left:18px;bottom:70px;display:none;flex-direction:column;background:var(--card);border:1px solid var(--outline);border-radius:10px;box-shadow:var(--shadow);overflow:hidden;z-index:20}
.status-menu button{background:transparent;color:var(--text);padding:10px 12px;border:none;text-align:left;cursor:pointer}
.status-menu button:hover{background:var(--bg-soft)}

.profile{display:flex;gap:16px;align-items:center}
.avatar{width:72px;height:72px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.15)}

/* Toast notifications */
.toast-wrap{position:fixed;right:18px;top:18px;display:grid;gap:8px;z-index:50}
.toast{min-width:220px;max-width:360px;background:#141519;border:1px solid var(--outline);color:var(--text);padding:10px 12px;border-radius:10px;box-shadow:var(--shadow);animation:floatIn .2s ease}
.toast.ok{border-color:#214b38}
.toast.err{border-color:#5a222a}

@media (max-width:900px){
  .grid{grid-template-columns:1fr}
  .span-2{grid-column:span 1}
}
