/* ─── Shell: variables globales & navigation commune ─── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  /* ─── Core palette ─── */
  --bg:#f8fafc;--bg2:#ffffff;--bg3:#f1f5f9;
  --text:#0f172a;--text2:#475569;--text3:#94a3b8;
  --border:#e2e8f0;--shadow:0 1px 3px rgba(0,0,0,.06);
  --accent:#3b82f6;--accent-hover:#2563eb;--accent2:#6366f1;
  --green:#10b981;--green-light:#d1fae5;--green-dark:#065f46;
  --red:#ef4444;--red-light:#fee2e2;--red-dark:#991b1b;
  --orange:#f59e0b;--orange-light:#fef3c7;--orange-dark:#92400e;
  --pink:#ec4899;
  --blue-light:#dbeafe;--blue-dark:#1e40af;
  --success:#16a34a;--error:#dc2626;
  /* ─── Toggle / pill active state ─── */
  --toggle-bg:#334155;--toggle-text:#fff;
  /* ─── Layout ─── */
  --radius:12px;--radius-sm:8px;
  --font:'Inter',system-ui,-apple-system,sans-serif;
  --nav-h-desktop:52px;
  --nav-h-mobile:56px;
  /* ─── Z-index scale ─── */
  --z-sticky:100;--z-nav:200;--z-overlay:300;--z-drawer:301;--z-modal:400;
}
.dark{
  --bg:#0f172a;--bg2:#1e293b;--bg3:#334155;
  --text:#f1f5f9;--text2:#94a3b8;--text3:#64748b;
  --border:#334155;--shadow:0 1px 3px rgba(0,0,0,.3);
  --green-light:#065f46;--green-dark:#d1fae5;
  --red-light:#991b1b;--red-dark:#fee2e2;
  --orange-light:#92400e;--orange-dark:#fef3c7;
  --blue-light:#1e3a5f;--blue-dark:#93c5fd;
  --toggle-bg:#e2e8f0;--toggle-text:#0f172a;
}

body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh;transition:background .3s,color .3s;overflow-x:hidden}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select{font-family:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;font-size:.9rem;transition:border .2s}
input:focus,select:focus{outline:none;border-color:var(--accent)}
a{color:var(--accent);text-decoration:none}

/* ─── Lucide icons ─── */
.lucide{width:1em;height:1em;vertical-align:-.125em;stroke-width:2;display:inline-block;flex-shrink:0}
.icon-sm{width:16px;height:16px}
.icon-md{width:20px;height:20px}
.icon-lg{width:24px;height:24px}

/* ─── Shell nav (desktop) ─── */
.shell-nav{
  height:var(--nav-h-desktop);
  background:var(--bg2);
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;
  padding:0 20px;
  position:sticky;top:0;z-index:var(--z-nav);
}
.shell-nav-inner{
  width:100%;max-width:1100px;margin:0 auto;
  display:flex;align-items:center;gap:12px;
}
.shell-brand{
  font-weight:800;font-size:1.05rem;letter-spacing:-.02em;
  margin-right:auto;white-space:nowrap;
}
.shell-links{display:flex;gap:4px}
.shell-link{
  padding:6px 16px;border-radius:8px;
  font-size:.85rem;font-weight:600;
  color:var(--text2);text-decoration:none;
  transition:all .2s;display:inline-flex;align-items:center;gap:4px;
  position:relative;min-height:36px;
}
.shell-link:hover{background:var(--bg3);color:var(--text)}
.shell-link.active{background:var(--accent);color:#fff}
.shell-badge{
  color:var(--red);font-size:.6rem;vertical-align:super;
  margin-left:2px;
}
.shell-dark-btn{
  width:40px;height:40px;display:flex;align-items:center;justify-content:center;
  border-radius:var(--radius-sm);font-size:1.1rem;
  transition:background .2s;margin-left:8px;
}
.shell-dark-btn:hover{background:var(--bg3)}

/* ─── Shell main ─── */
.shell-main{
  min-height:calc(100vh - var(--nav-h-desktop));
}

/* ─── Shell bottom nav (mobile) ─── */
.shell-bottom-nav{
  display:none;
  position:fixed;bottom:0;left:0;right:0;
  background:var(--bg2);border-top:1px solid var(--border);
  z-index:var(--z-nav);
  box-shadow:0 -1px 4px rgba(0,0,0,.06);
}
.shell-bottom-link{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:8px 0;font-size:.65rem;font-weight:600;
  color:var(--text3);text-decoration:none;
  transition:color .2s;min-height:var(--nav-h-mobile);
  justify-content:center;position:relative;
}
.shell-bottom-link span:first-child{font-size:1.2rem;line-height:1}
.shell-bottom-link.active{color:var(--accent)}

/* ─── Mobile responsive ─── */
@media(max-width:768px){
  .shell-nav{height:auto;padding:8px 16px}
  .shell-links{display:none}
  .shell-bottom-nav{display:flex}
  .shell-main{
    min-height:calc(100vh - var(--nav-h-mobile) - 48px);
    padding-bottom:var(--nav-h-mobile);
  }
}

/* ─── Shared button styles ─── */
.btn{padding:8px 16px;border-radius:var(--radius-sm);font-weight:600;font-size:.85rem;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;border:none;cursor:pointer}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{opacity:.9}
.btn-primary:disabled{opacity:.5;cursor:not-allowed}
.btn-secondary{background:var(--bg3);color:var(--text);border:1px solid var(--border)}
.btn-secondary:hover{background:var(--border)}
.btn-danger{background:var(--red);color:#fff}
.btn-danger:hover{opacity:.9}
.btn-sm{min-height:36px;padding:4px 12px;font-size:.78rem}
.btn-ghost{border:1px solid var(--border)}.btn-ghost:hover{background:var(--bg3)}
.btn-success{background:var(--success);color:#fff;font-weight:700}
.btn-success:hover{background:var(--green)}

/* ─── Shared toggle / pill active states ─── */
.toggle-bar-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:16px;font-size:.75rem;font-weight:600;color:var(--text2);border:1.5px solid var(--border);background:var(--bg);transition:all .2s;-webkit-tap-highlight-color:transparent}
.toggle-bar-btn.active{background:var(--toggle-bg);color:var(--toggle-text);border-color:var(--toggle-bg)}
.segmented{display:inline-flex;border-radius:8px;overflow:hidden;border:1.5px solid var(--border);background:var(--bg)}
.seg-btn{min-height:30px;padding:0 10px;font-size:.72rem;font-weight:600;border:none;background:transparent;color:var(--text2);transition:all .2s;white-space:nowrap;display:inline-flex;align-items:center;gap:4px;-webkit-tap-highlight-color:transparent;position:relative}
.seg-btn+.seg-btn{border-left:1px solid var(--border)}
.seg-btn.active{background:var(--toggle-bg);color:var(--toggle-text)}
.seg-btn:not(.active):active{background:var(--bg3)}
.period-pill{padding:5px 12px;border-radius:14px;font-size:.72rem;font-weight:700;border:1.5px solid var(--border);background:var(--bg);color:var(--text2);transition:all .2s;-webkit-tap-highlight-color:transparent}
.period-pill.active{background:var(--toggle-bg);color:var(--toggle-text);border-color:var(--toggle-bg)}

/* ─── Login overlay ─── */
.login-overlay{position:fixed;inset:0;background:rgba(15,23,42,.85);z-index:999;display:flex;align-items:center;justify-content:center;padding:16px;backdrop-filter:blur(4px)}
.login-box{background:var(--bg2);border-radius:var(--radius);padding:32px 28px;max-width:340px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.4);border:1px solid var(--border);text-align:center}
.login-box h2{font-size:1.3rem;font-weight:800;margin-bottom:8px;color:var(--text)}
.login-box p{font-size:.85rem;color:var(--text2);margin-bottom:20px}
.login-box input[type="password"]{width:100%;padding:12px 16px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-size:.95rem;font-family:var(--font);outline:none;transition:border-color .2s}
.login-box input[type="password"]:focus{border-color:var(--accent)}
.login-box button{width:100%;margin-top:12px;padding:12px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:#fff;font-size:.95rem;font-weight:700;font-family:var(--font);cursor:pointer;transition:background .2s}
.login-box button:hover{background:var(--accent-hover)}
.login-error{color:var(--red);font-size:.82rem;font-weight:600;margin-top:10px;min-height:1.2em}

/* ─── Shared toast ─── */
.toast{position:fixed;top:16px;left:50%;transform:translateX(-50%);padding:8px 20px;border-radius:20px;background:var(--bg3);color:var(--text);font-size:.8rem;font-weight:600;z-index:var(--z-overlay);opacity:0;transition:opacity .3s;pointer-events:none;border:1px solid var(--border);box-shadow:var(--shadow)}
.toast.show{opacity:1}
.toast.error{background:var(--red);color:#fff;border-color:var(--red)}

/* ─── Shared modal ─── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:var(--z-nav);display:none;align-items:center;justify-content:center;padding:16px}
.modal-overlay.open{display:flex}
.modal{background:var(--bg2);border-radius:var(--radius);padding:20px;max-width:400px;width:100%;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.3);border:1px solid var(--border)}
.modal h3{font-size:1rem;font-weight:800;margin-bottom:12px}
.modal-list-item{padding:12px;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s;border:1px solid var(--border);margin-bottom:6px;min-height:48px;-webkit-tap-highlight-color:transparent}
.modal-list-item:active{background:var(--bg3);transform:scale(.98)}
.modal-list-item .item-title{font-weight:700;font-size:.88rem}
.modal-list-item .item-sub{font-size:.75rem;color:var(--text3);margin-top:2px}

/* ─── Shared match score pills ─── */
.match-score-pill{padding:4px 10px;border-radius:var(--radius-sm);font-size:.8rem;font-weight:800}
.match-score-pill.win{background:var(--green-light);color:var(--green-dark)}
.match-score-pill.loss{background:var(--red-light);color:var(--red-dark)}
.match-score-pill.draw{background:var(--orange-light);color:var(--orange-dark)}

/* ─── Shared status bar ─── */
.status-bar{padding:8px 20px;background:var(--orange-light);color:var(--orange-dark);font-size:.82rem;font-weight:500;display:none;align-items:center;gap:8px}
.status-bar.error{background:var(--red-light);color:var(--red-dark);display:flex}
.status-bar.info{background:var(--blue-light);color:var(--blue-dark);display:flex}
