:root{--g900:#1c3a1c;--g700:#2d6030;--g600:#357a38;--g500:#4a9e4e;--g400:#6ab86e;--g50:#f1faf2;--white:#fff;--gray-100:#f0f2f0;--gray-200:#e2e6e2;--gray-300:#c8cec8;--gray-400:#a0a8a0;--gray-500:#6b756b;--gray-700:#3d453d;--gray-900:#1a1e1a;--red:#c0392b;--ff-serif:'Playfair Display',Georgia,serif;--ff-sans:'DM Sans',system-ui,sans-serif;--shadow:0 4px 20px rgba(0,0,0,.12);}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{font-family:var(--ff-sans);background:var(--g900);min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;position:relative;overflow-x:hidden;}
body::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 20% 50%,rgba(53,122,56,.25) 0%,transparent 70%),radial-gradient(ellipse 60% 80% at 80% 20%,rgba(28,58,28,.6) 0%,transparent 60%);pointer-events:none;}
body::after{content:'';position:absolute;top:-120px;right:-120px;width:400px;height:400px;border:60px solid rgba(106,184,110,.06);border-radius:50%;pointer-events:none;}
.login-wrap{position:relative;z-index:1;width:100%;max-width:420px;padding:40px 0;}
.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:24px;justify-content:center;}
.login-brand img{height:36px;}
.login-brand-name{font-family:var(--ff-serif);font-size:1.3rem;font-weight:700;color:var(--white);}
.login-card{background:var(--white);padding:36px 40px 32px;box-shadow:var(--shadow);border-top:3px solid var(--g600);}
@media(max-width:440px){.login-card{padding:28px 22px 24px;}}
.login-card h2{font-family:var(--ff-serif);font-size:1.45rem;font-weight:600;color:var(--gray-900);margin-bottom:4px;}
.login-sub{font-size:0.84rem;color:var(--gray-400);margin-bottom:24px;line-height:1.6;}
.auth-tabs{display:flex;border-bottom:1.5px solid var(--gray-200);margin-bottom:22px;}
.auth-tab{flex:1;padding:9px 8px;background:none;border:none;font-family:var(--ff-sans);font-size:0.84rem;font-weight:500;cursor:pointer;color:var(--gray-400);border-bottom:2px solid transparent;margin-bottom:-1.5px;transition:all .15s;}
.auth-tab.active{color:var(--g700);border-bottom-color:var(--g600);}
.auth-panel{display:none;}
.auth-panel.active{display:block;}
.form-label{display:block;font-size:0.7rem;font-weight:500;color:var(--gray-500);margin-bottom:4px;letter-spacing:.03em;}
.form-group{margin-bottom:14px;}
input[type=email],input[type=password],input[type=text]{
  width:100%;padding:11px 13px;border:1.5px solid var(--gray-300);
  font-family:var(--ff-sans);font-size:0.9rem;outline:none;
  color:var(--gray-900);border-radius:3px;transition:border-color .15s;
}
input:focus{border-color:var(--g600);}
.btn-main{
  width:100%;padding:12px;background:var(--g600);color:var(--white);
  border:none;font-family:var(--ff-serif);font-size:0.96rem;font-weight:600;
  font-style:italic;cursor:pointer;transition:background .18s;border-radius:3px;
  letter-spacing:.01em;
}
.btn-main:hover{background:var(--g700);}
.btn-main:disabled{opacity:.5;cursor:not-allowed;}
.divider{display:flex;align-items:center;gap:10px;color:var(--gray-300);font-size:0.74rem;margin:16px 0;}
.divider::before,.divider::after{content:'';flex:1;height:1px;background:var(--gray-200);}
.btn-google{
  width:100%;padding:10px 14px;background:var(--white);
  border:1.5px solid var(--gray-200);font-family:var(--ff-sans);font-size:0.86rem;
  font-weight:500;cursor:pointer;color:var(--gray-700);display:flex;
  align-items:center;justify-content:center;gap:10px;transition:all .16s;border-radius:3px;
}
.btn-google:hover{background:var(--gray-100);border-color:var(--gray-300);}
.google-icon{width:18px;height:18px;flex-shrink:0;}
.msg{font-size:0.8rem;margin-top:10px;padding:9px 12px;display:none;border-radius:3px;}
.msg.ok {display:block;background:var(--g50);color:var(--g900);border-left:3px solid var(--g400);}
.msg.err{display:block;background:#fdf0ef;color:var(--red);border-left:3px solid var(--red);}
.login-footer{margin-top:18px;text-align:center;font-size:0.76rem;color:rgba(255,255,255,.35);}
.login-footer a{color:rgba(255,255,255,.55);transition:color .15s;}
.login-footer a:hover{color:rgba(255,255,255,.85);}
.forgot-link{float:right;font-size:0.72rem;color:var(--g600);transition:color .15s;}
.forgot-link:hover{color:var(--g700);}
.pw-wrap{position:relative;}
.pw-wrap input{padding-right:40px;}
.pw-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--gray-400);padding:0;font-size:0.78rem;}

/* ─── NEW: Age / legal consent styles ─── */
.age-confirm{margin:14px 0 16px;padding:12px 14px;background:var(--g50);border:1.5px solid #c8e6ca;border-radius:3px;}
.age-confirm-row{display:flex;align-items:flex-start;gap:10px;}
.age-confirm-row input[type=checkbox]{
  width:17px;height:17px;min-width:17px;margin-top:2px;flex-shrink:0;
  accent-color:var(--g600);cursor:pointer;
}
.age-confirm-row label{font-size:0.82rem;color:var(--gray-700);line-height:1.5;cursor:pointer;}
/* Under-13 guardian panel — hidden by default */
.under13-panel{display:none;margin-top:12px;padding:12px 14px;background:#fff3cd;border:1.5px solid #ffc107;border-radius:3px;}
.under13-panel p{font-size:0.8rem;color:#856404;margin-bottom:8px;line-height:1.5;}
.under13-panel input{width:100%;padding:9px 11px;border:1.5px solid #ffc107;border-radius:3px;font-size:0.85rem;font-family:var(--ff-sans);}
/* Legal links bar */
.legal-links{font-size:0.73rem;color:var(--gray-400);margin-top:14px;text-align:center;line-height:1.6;}
.legal-links a{color:var(--g600);}
.legal-links a:hover{color:var(--g700);}
.legal-badge{display:flex;align-items:center;justify-content:center;gap:6px;font-size:0.68rem;color:var(--gray-400);margin-top:8px;}
.legal-badge svg{flex-shrink:0;color:var(--g500);}

/* ─── Role selection cards ─── */
.role-select-group{margin-bottom:18px;}
.role-select-label{font-size:0.72rem;font-weight:600;color:var(--gray-500);letter-spacing:.05em;text-transform:uppercase;margin-bottom:8px;}
.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.role-card{
  background:var(--gray-100);border:1.5px solid var(--gray-200);border-radius:4px;
  padding:10px 10px 8px;text-align:left;cursor:pointer;transition:all .15s;
  display:flex;flex-direction:column;gap:2px;
}
.role-card:hover{border-color:var(--g500);background:#f0faf1;}
.role-card.selected{border-color:var(--g600);background:var(--g50);box-shadow:0 0 0 2px rgba(53,122,56,.15);}
.role-card-title{font-size:0.82rem;font-weight:600;color:var(--gray-700);}
.role-card.selected .role-card-title{color:var(--g700);}
.role-card-desc{font-size:0.69rem;color:var(--gray-400);line-height:1.3;}
/* Approval / pending notice */
.approval-notice{
  background:#fff8e1;border:1.5px solid #f59e0b;border-radius:4px;
  padding:11px 13px;margin-bottom:14px;font-size:0.8rem;color:#78350f;line-height:1.55;
}
.approval-notice strong{display:block;margin-bottom:3px;color:#92400e;}
/* Judge redirect block */
.judge-redirect{
  background:var(--g50);border:1.5px solid #c8e6ca;border-radius:4px;
  padding:14px;margin-bottom:14px;font-size:0.82rem;color:var(--g900);line-height:1.5;
}
.judge-redirect p{margin-bottom:0;}
