/* ============================================================
   ChessCoach — main.css
   Palette: #272729 bg, #7fa84c green, #e8e8e8 text
============================================================ */
:root {
  --bg:    #1a1a1c; --bg2: #212123; --bg3: #272729;
  --bg4:   #2e2e30; --bg5: #333335;
  --line:  rgba(255,255,255,.07); --line2: rgba(255,255,255,.12);
  --g:     #7fa84c; --g2: #8fba5a; --g3: rgba(127,168,76,.14); --g4: rgba(127,168,76,.07);
  --t:     #e8e8e8; --t2: #9a9a9c; --t3: #5a5a5c;
  --red:   #e05c5c; --red2: rgba(224,92,92,.12);
  --serif: 'Instrument Serif', Georgia, serif;
  --sans:  'Syne', system-ui, sans-serif;
  --r:     8px;
}

*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body { background: var(--bg); color: var(--t); font-family: var(--sans);
       overflow-x: hidden; line-height: 1.6; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }

/* ── BUTTONS ── */
.btn { display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);
       font-weight:700;font-size:.88rem;padding:10px 22px;border-radius:var(--r);
       cursor:pointer;text-decoration:none;transition:all .18s;border:none;white-space:nowrap; }
.btn-solid  { background:var(--g);color:#0e160a;box-shadow:0 2px 12px rgba(127,168,76,.3); }
.btn-solid:hover { background:var(--g2);transform:translateY(-1px); }
.btn-outline { background:transparent;color:var(--t);border:1px solid var(--line2); }
.btn-outline:hover { background:var(--bg3); }
.btn-ghost  { background:transparent;color:var(--t2);border:1px solid var(--line); }
.btn-ghost:hover { background:var(--bg3);color:var(--t); }
.btn-danger { background:var(--red);color:#fff; }
.btn-danger:hover { filter:brightness(1.1); }
.btn-lg { font-size:.98rem;padding:13px 32px; }
.btn-sm { font-size:.78rem;padding:7px 14px; }
.btn-block { width:100%;justify-content:center; }

/* ── NAV ── */
#nav { position:fixed;top:0;left:0;right:0;z-index:100;height:62px;display:flex;
       align-items:center;padding:0 clamp(16px,4vw,60px);background:rgba(26,26,28,.94);
       backdrop-filter:blur(20px);border-bottom:1px solid var(--line);gap:28px; }
.logo { font-family:var(--serif);font-size:1.25rem;color:var(--t);display:flex;
        align-items:center;gap:7px;flex-shrink:0; }
.logo-king { color:var(--g);font-size:1.35rem; }
.nav-menu { display:flex;align-items:center;gap:22px;list-style:none;flex:1; }
.nav-menu a { font-size:.83rem;font-weight:600;color:var(--t2);transition:color .2s; }
.nav-menu a:hover { color:var(--t); }
.nav-r { margin-left:auto;display:flex;align-items:center;gap:8px; }
.nav-user { display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--t2); }
.nav-av { width:28px;height:28px;border-radius:50%;background:var(--g);color:#0e160a;
          display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.8rem; }

/* ── FORMS ── */
.form-group { margin-bottom:16px; }
.form-group label { display:block;font-size:.82rem;font-weight:700;color:var(--t2);
                    margin-bottom:6px;letter-spacing:.02em; }
.form-control { width:100%;padding:11px 14px;border-radius:var(--r);background:var(--bg);
                border:1px solid var(--line2);color:var(--t);font-size:.9rem;
                font-family:var(--sans);outline:none;transition:border-color .18s; }
.form-control:focus { border-color:var(--g); }
.form-control::placeholder { color:var(--t3); }
.form-control.is-invalid { border-color:var(--red); }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
.form-hint { font-size:.75rem;color:var(--t3);margin-top:5px; }
.pass-wrap { position:relative; }
.pass-wrap .form-control { padding-right:42px; }
.pass-eye { position:absolute;right:12px;top:50%;transform:translateY(-50%);
            background:none;border:none;color:var(--t3);cursor:pointer;font-size:.85rem; }
.pass-eye:hover { color:var(--t); }
select.form-control { cursor:pointer; }
textarea.form-control { resize:vertical;min-height:90px; }

/* ── ALERTS ── */
.alert { display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:var(--r);
         font-size:.88rem;margin-bottom:16px; }
.alert span { font-weight:700;flex-shrink:0; }
.alert-success { background:var(--g4);border:1px solid rgba(127,168,76,.25);color:var(--g2); }
.alert-error   { background:var(--red2);border:1px solid rgba(224,92,92,.25);color:var(--red); }
.alert-info    { background:rgba(255,255,255,.05);border:1px solid var(--line2);color:var(--t2); }

/* ── CARD ── */
.card { background:var(--bg3);border:1px solid var(--line);border-radius:12px;padding:28px; }
.card-title { font-family:var(--serif);font-size:1.15rem;color:var(--t);margin-bottom:4px; }
.card-sub { font-size:.83rem;color:var(--t2);margin-bottom:20px; }

/* ── LABEL TAG ── */
.label { font-size:.68rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
         color:var(--g);display:inline-block;margin-bottom:14px; }
.badge { display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;
         font-size:.7rem;font-weight:700;letter-spacing:.04em; }
.badge-pro  { background:var(--g3);color:var(--g);border:1px solid rgba(127,168,76,.2); }
.badge-free { background:rgba(255,255,255,.06);color:var(--t3);border:1px solid var(--line); }
.badge-demo { background:rgba(255,180,50,.1);color:#ffb432;border:1px solid rgba(255,180,50,.2); }

/* ── SECTION ── */
section { position:relative;z-index:1;padding:80px clamp(16px,4vw,60px); }
.section-header { margin-bottom:48px; }
.section-title { font-family:var(--serif);font-size:clamp(1.8rem,3.5vw,2.6rem);
                 color:var(--t);font-weight:400;letter-spacing:-.02em;line-height:1.1;margin-bottom:10px; }
.section-sub { font-size:.93rem;color:var(--t2);line-height:1.75;max-width:520px; }

/* ── TABLE ── */
.table-wrap { overflow-x:auto;border-radius:var(--r);border:1px solid var(--line); }
table { width:100%;border-collapse:collapse;font-size:.87rem; }
thead th { background:var(--bg4);color:var(--t2);font-weight:700;font-size:.75rem;
           letter-spacing:.06em;text-transform:uppercase;padding:10px 14px;
           border-bottom:1px solid var(--line);text-align:left; }
tbody tr { border-bottom:1px solid var(--line);transition:background .15s; }
tbody tr:last-child { border-bottom:none; }
tbody tr:hover { background:var(--bg4); }
td { padding:12px 14px;color:var(--t2);vertical-align:middle; }
td strong { color:var(--t); }

/* ── DASHBOARD LAYOUT ── */
.dash-wrap { display:grid;grid-template-columns:240px 1fr;min-height:calc(100vh - 62px);
             margin-top:62px; }
.dash-side { background:var(--bg2);border-right:1px solid var(--line);
             padding:28px 16px;position:sticky;top:62px;height:calc(100vh - 62px);overflow-y:auto; }
.dash-main { padding:32px clamp(16px,3vw,48px);overflow:auto; }

.side-section { margin-bottom:28px; }
.side-label { font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
              color:var(--t3);padding:0 8px;margin-bottom:8px;display:block; }
.side-nav { list-style:none; }
.side-nav li a { display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:6px;
                 font-size:.87rem;font-weight:600;color:var(--t2);transition:all .18s; }
.side-nav li a:hover { background:var(--bg3);color:var(--t); }
.side-nav li a.active { background:var(--g4);color:var(--g);border:1px solid rgba(127,168,76,.2); }
.side-nav li a .ico { font-size:1rem;width:20px;text-align:center; }

.dash-header { display:flex;align-items:center;justify-content:space-between;
               margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--line); }
.dash-header h1 { font-family:var(--serif);font-size:1.6rem;font-weight:400;color:var(--t); }

.stats-row { display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
             gap:16px;margin-bottom:28px; }
.stat-card { background:var(--bg3);border:1px solid var(--line);border-radius:var(--r);
             padding:20px;transition:border-color .2s; }
.stat-card:hover { border-color:rgba(127,168,76,.25); }
.stat-n { font-family:var(--serif);font-size:2rem;color:var(--g2);line-height:1;margin-bottom:4px; }
.stat-l { font-size:.75rem;color:var(--t3);letter-spacing:.04em; }

/* ── AUTH PAGES ── */
.auth-wrap { min-height:100vh;display:flex;align-items:center;justify-content:center;
             padding:80px 16px 40px; }
.auth-box { background:var(--bg3);border:1px solid rgba(127,168,76,.15);border-radius:14px;
            padding:44px 40px;width:100%;max-width:440px;
            box-shadow:0 32px 64px rgba(0,0,0,.6); }
.auth-box::before { content:'';display:block;position:absolute; }
.auth-logo { text-align:center;margin-bottom:28px; }
.auth-logo .king { font-size:2.5rem;display:block;margin-bottom:6px; }
.auth-logo h2 { font-family:var(--serif);font-size:1.5rem;font-weight:400;color:var(--t); }
.auth-logo p { font-size:.85rem;color:var(--t2);margin-top:4px; }

/* ── FOOTER ── */
footer { background:var(--bg2);border-top:1px solid var(--line);
         padding:48px clamp(16px,4vw,60px) 32px; }
.foot-grid { display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:36px; }
.foot-brand p { font-size:.82rem;color:var(--t3);line-height:1.7;margin-top:12px;max-width:200px; }
.foot-col h5 { font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
               color:var(--t3);margin-bottom:12px; }
.foot-col ul { list-style:none; }
.foot-col li { margin-bottom:8px; }
.foot-col a { font-size:.82rem;color:var(--t2);transition:color .2s; }
.foot-col a:hover { color:var(--g2); }
.foot-bottom { padding-top:24px;border-top:1px solid var(--line);display:flex;
               justify-content:space-between;font-size:.77rem;color:var(--t3);
               flex-wrap:wrap;gap:8px; }

/* ── STUDENT CARD ── */
.student-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px; }
.student-card { background:var(--bg3);border:1px solid var(--line);border-radius:10px;
                padding:20px;transition:border-color .2s,transform .18s;cursor:pointer; }
.student-card:hover { border-color:rgba(127,168,76,.3);transform:translateY(-2px); }
.sc-head { display:flex;align-items:center;gap:12px;margin-bottom:14px; }
.sc-av { width:44px;height:44px;border-radius:50%;background:var(--bg4);
         border:1px solid var(--line2);display:flex;align-items:center;justify-content:center;
         font-weight:800;font-size:.95rem;color:var(--g);flex-shrink:0; }
.sc-name { font-weight:700;color:var(--t);font-size:.95rem; }
.sc-level { font-size:.75rem;color:var(--t3); }
.sc-stats { display:flex;gap:14px; }
.sc-stat { font-size:.78rem;color:var(--t2); }
.sc-stat span { font-weight:700;color:var(--t);margin-right:4px; }

/* ── NOTES ── */
.notes-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px; }
.note-card { background:var(--bg3);border:1px solid var(--line);border-radius:10px;
             padding:20px;transition:border-color .2s; }
.note-card.pinned { border-color:rgba(127,168,76,.3); }
.note-title { font-weight:700;color:var(--t);margin-bottom:8px;font-size:.92rem; }
.note-body { font-size:.83rem;color:var(--t2);line-height:1.7;
             display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden; }
.note-meta { display:flex;align-items:center;justify-content:space-between;
             margin-top:12px;font-size:.72rem;color:var(--t3); }

/* ── RESPONSIVE ── */
@media(max-width:900px) {
  .dash-wrap { grid-template-columns:1fr; }
  .dash-side  { display:none; }
  .foot-grid  { grid-template-columns:1fr 1fr; }
  .form-row   { grid-template-columns:1fr; }
}
@media(max-width:640px) {
  .nav-menu   { display:none; }
  .foot-grid  { grid-template-columns:1fr; }
  .auth-box   { padding:32px 22px; }
}

/* ── Language switch ──────────────────────────────────────── */
.lang-switch {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 10px;
  border-radius: 6px;
  border: 1px solid var(--line);
  font-size: .76rem;
  font-weight: 700;
  color: var(--t2);
  text-decoration: none;
  transition: border-color .2s, color .2s, background .2s;
  white-space: nowrap;
  letter-spacing: .03em;
}
.lang-switch:hover {
  border-color: var(--g);
  color: var(--g);
  background: rgba(127,168,76,.06);
}
#nav .lang-switch {
  margin-right: 4px;
}
footer .lang-switch {
  margin-bottom: 8px;
  display: inline-flex;
}
