/* Average Grade Calculator — frontend styles (scoped under .agc-wrapper to avoid theme clashes) */

.agc-wrapper{
  --agc-navy:#7C3AED;
  --agc-navy-deep:#6D28D9;
  --agc-heading:#5B21B6;
  --agc-accent:#C026D3;
  --agc-accent-soft:#F3F1FC;
  --agc-bg:#FAF9FF;
  --agc-card:#FFFFFF;
  --agc-border:#DCD3F0;
  --agc-text:#2E1F3F;
  --agc-text-mute:#6B647A;
  --agc-grade-a:#2F9E5B;
  --agc-grade-b:#2E6F9E;
  --agc-grade-c:#C98A1E;
  --agc-grade-d:#D9722B;
  --agc-grade-f:#8C231B;
  --agc-radius:14px;
  --agc-radius-sm:8px;
  --agc-focus:#7C3AED;
  --agc-row-alt:#F8F6FE;

  max-width:760px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:20px;
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--agc-text);
  line-height:1.5;
}

.agc-wrapper *{box-sizing:border-box;}

.agc-card{
  background:var(--agc-card);
  border:1px solid var(--agc-border);
  border-radius:var(--agc-radius);
  padding:24px;
}

.agc-section-title{
  margin:0 0 4px;
  font-size:1.05rem;
  color:var(--agc-heading);
}
.agc-section-sub{
  margin:0 0 16px;
  color:var(--agc-text-mute);
  font-size:0.88rem;
}

/* ---- Mode controls ---- */
.agc-mode-row{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin-bottom:18px;
}
.agc-mode-group{flex:1;min-width:200px;}
.agc-mode-group label{
  display:block;
  font-size:0.8rem;
  font-weight:700;
  color:var(--agc-text-mute);
  text-transform:uppercase;
  letter-spacing:0.03em;
  margin-bottom:6px;
}
.agc-seg{
  display:flex;
  border:1.5px solid var(--agc-border);
  border-radius:var(--agc-radius-sm);
  overflow:hidden;
}
.agc-seg button{
  flex:1;
  border:none;
  background:var(--agc-card);
  color:var(--agc-text-mute);
  padding:10px 6px;
  font-size:0.85rem;
  font-weight:600;
  cursor:pointer;
  border-right:1px solid var(--agc-border);
}
.agc-seg button:last-child{border-right:none;}
.agc-seg button.agc-active{background:var(--agc-navy);color:#fff;}
.agc-seg button:hover:not(.agc-active){background:var(--agc-accent-soft);}

/* ---- Table ---- */
.agc-table-scroll{
  overflow-x:auto;
  border:1px solid var(--agc-border);
  border-radius:var(--agc-radius-sm);
}
table.agc-grade-table{
  width:100%;
  border-collapse:collapse;
  min-width:520px;
}
table.agc-grade-table th{
  text-align:left;
  padding:10px 10px;
  font-size:0.72rem;
  text-transform:uppercase;
  letter-spacing:0.04em;
  color:var(--agc-text-mute);
  border-bottom:1.5px solid var(--agc-border);
  background:var(--agc-card);
  white-space:nowrap;
}
table.agc-grade-table td{
  padding:8px 8px;
  border-bottom:1px solid var(--agc-border);
  vertical-align:middle;
}
table.agc-grade-table tbody tr:nth-child(even){background:var(--agc-row-alt);}
table.agc-grade-table tbody tr:hover{background:var(--agc-accent-soft);}

.agc-name-input, .agc-grade-input, .agc-weight-input, .agc-points-input{
  width:100%;
  min-width:70px;
  padding:8px 9px;
  border:1.5px solid var(--agc-border);
  border-radius:var(--agc-radius-sm);
  font-size:0.92rem;
  background:#fff;
  color:var(--agc-text);
}
.agc-name-input{min-width:110px;}
.agc-name-input:focus, .agc-grade-input:focus, .agc-weight-input:focus, .agc-points-input:focus, .agc-wrapper select:focus{
  outline:2px solid var(--agc-focus);outline-offset:-1px;
}
select.agc-grade-input, select.agc-letter-select{
  appearance:auto;
}
.agc-points-pair{display:flex;align-items:center;gap:4px;}
.agc-points-pair input{width:56px;min-width:56px;}
.agc-points-pair span{color:var(--agc-text-mute);font-size:0.85rem;}

.agc-contrib-cell{min-width:70px;}
.agc-contrib-bar-track{
  height:6px;
  background:var(--agc-border);
  border-radius:999px;
  overflow:hidden;
  margin-bottom:3px;
}
.agc-contrib-bar-fill{
  height:100%;
  background:var(--agc-navy);
  border-radius:999px;
}
.agc-contrib-label{font-size:0.72rem;color:var(--agc-text-mute);}

.agc-remove-btn{
  width:32px;
  height:32px;
  border:1.5px solid var(--agc-border);
  background:#fff;
  color:var(--agc-navy);
  border-radius:var(--agc-radius-sm);
  font-size:1rem;
  font-weight:700;
  cursor:pointer;
  line-height:1;
}
.agc-remove-btn:hover{background:var(--agc-accent-soft);border-color:var(--agc-accent);}

.agc-table-actions{
  display:flex;
  gap:10px;
  margin-top:14px;
  flex-wrap:wrap;
}
.agc-btn{
  min-height:44px;
  padding:0 18px;
  border-radius:var(--agc-radius-sm);
  font-size:0.9rem;
  font-weight:700;
  cursor:pointer;
  border:none;
}
.agc-btn-primary{background:var(--agc-navy);color:#fff;}
.agc-btn-primary:hover{background:var(--agc-navy-deep);}
.agc-btn-primary:disabled{background:var(--agc-navy);cursor:not-allowed;}
.agc-btn-ghost{background:transparent;border:1.5px solid var(--agc-border);color:var(--agc-text-mute);}
.agc-btn-ghost:hover{border-color:var(--agc-accent);color:var(--agc-accent);}
.agc-btn-sm{min-height:36px;padding:0 12px;font-size:0.82rem;}

/* ---- Result summary ---- */
.agc-result-card{
  background:var(--agc-navy);
  border-radius:var(--agc-radius);
  padding:26px 24px;
  color:#fff;
  display:flex;
  flex-wrap:wrap;
  gap:22px;
  align-items:center;
  justify-content:space-between;
}
.agc-result-main{text-align:left;}
.agc-result-label{font-size:0.85rem;opacity:0.8;margin-bottom:4px;}
.agc-result-percent{
  font-family:"Fraunces","Georgia",serif;
  font-size:3rem;
  font-weight:600;
  line-height:1;
  letter-spacing:-0.02em;
}
.agc-result-letter{
  display:inline-block;
  margin-top:8px;
  font-size:1rem;
  font-weight:700;
  padding:4px 16px;
  border-radius:999px;
  background:rgba(255,255,255,0.16);
}
.agc-result-meta{
  font-size:0.85rem;
  opacity:0.85;
  max-width:260px;
}

/* ---- Goal seek ---- */
.agc-goal-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-bottom:16px;
}
@media (max-width:480px){.agc-goal-grid{grid-template-columns:1fr;}}
.agc-goal-field label{
  display:block;
  font-size:0.82rem;
  font-weight:600;
  color:var(--agc-text-mute);
  margin-bottom:6px;
}
.agc-goal-field input{
  width:100%;
  padding:10px 12px;
  border:1.5px solid var(--agc-border);
  border-radius:var(--agc-radius-sm);
  font-size:0.95rem;
}
.agc-goal-field input[readonly]{background:var(--agc-row-alt);color:var(--agc-text-mute);}
.agc-hint{margin:6px 0 0;font-size:0.78rem;color:var(--agc-text-mute);}

.agc-goal-output{
  margin-top:16px;
  padding:16px;
  border-radius:var(--agc-radius-sm);
  background:var(--agc-accent-soft);
  font-size:0.95rem;
  color:var(--agc-text);
  display:none;
}
.agc-goal-output.agc-show{display:block;}
.agc-goal-output strong{color:var(--agc-heading);font-size:1.15rem;}

.agc-share-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px;}

.agc-privacy-note{
  text-align:center;
  color:var(--agc-text-mute);
  font-size:0.82rem;
  margin:4px 0 0;
}
.agc-privacy-note svg{vertical-align:-2px;margin-right:4px;}

@media print{
  body *{visibility:hidden;}
  #agc-print-area, #agc-print-area *{visibility:visible;}
  #agc-print-area{position:absolute;top:0;left:0;width:100%;}
  .agc-wrapper > *:not(#agc-print-area){display:none !important;}
}

@media (prefers-reduced-motion: reduce){
  .agc-wrapper *{transition:none !important;}
}
