/*
 * Grade Calculator — Stylesheet
 * Tomato Logics Private Limited | https://tomatologics.com/
 * ─────────────────────────────────────────────────────────
 * Sections:
 *   1. Fonts & CSS variables
 *   2. Frontend calculator
 *      2a. Wrap & header
 *      2b. Subject cards
 *      2c. Buttons
 *      2d. Error message
 *      2e. Results
 *      2f. Grading scale
 *      2g. Footer credit
 *   3. Admin settings page
 *   4. Admin dashboard widget
 *   5. Admin review popup
 * ─────────────────────────────────────────────────────────
 */

@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@500;700&display=swap');

/* ═══════════════════════════════════════════════════════════
   1. FONTS & CSS VARIABLES
   ═══════════════════════════════════════════════════════════ */
:root {
    --gc-primary:       #4f46e5;
    --gc-primary-dark:  #3730a3;
    --gc-primary-rgb:   79, 70, 229;
    --gc-accent:        #06b6d4;
    --gc-success:       #10b981;
    --gc-danger:        #ef4444;
    --gc-warning:       #f59e0b;

    --gc-bg:            #f5f6ff;
    --gc-card:          #ffffff;
    --gc-border:        #e0e7ff;
    --gc-border-hover:  #c7d2fe;

    --gc-text:          #1e1b4b;
    --gc-text-muted:    #6b7280;

    --gc-shadow-sm:     0 2px 8px  rgba(79, 70, 229, 0.08);
    --gc-shadow:        0 4px 20px rgba(79, 70, 229, 0.12);
    --gc-shadow-lg:     0 8px 36px rgba(79, 70, 229, 0.18);

    --gc-radius:        16px;
    --gc-radius-sm:     10px;
    --gc-radius-xs:     6px;

    --gc-font:          'Outfit', -apple-system, BlinkMacSystemFont, sans-serif;
    --gc-mono:          'JetBrains Mono', 'Courier New', monospace;

    --gc-ease:          cubic-bezier(0.4, 0, 0.2, 1);
    --gc-spring:        cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* ═══════════════════════════════════════════════════════════
   2. FRONTEND CALCULATOR
   ═══════════════════════════════════════════════════════════ */

/* 2a. Wrap & header */
.gc-wrap {
    font-family:    var(--gc-font);
    color:          var(--gc-text);
    max-width:      800px;
    margin:         2rem auto;
    padding:        0 1rem 3rem;
    box-sizing:     border-box;
}
.gc-wrap *, .gc-wrap *::before, .gc-wrap *::after {
    box-sizing: border-box;
}

.gc-header {
    text-align:     center;
    padding:        2rem 1rem 1.75rem;
}
.gc-header-icon {
    font-size:      3.2rem;
    display:        block;
    margin-bottom:  .5rem;
    animation:      gc-bob 2.4s ease-in-out infinite;
}
@keyframes gc-bob {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(-9px); }
}
.gc-title {
    font-size:      clamp(1.9rem, 5vw, 2.8rem);
    font-weight:    800;
    margin:         0 0 .4rem;
    background:     linear-gradient(135deg, var(--gc-primary), var(--gc-accent));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height:    1.15;
}
.gc-subtitle {
    color:      var(--gc-text-muted);
    font-size:  1rem;
    margin:     0;
}

/* 2b. Subject cards */
.gc-subjects-list {
    display:        flex;
    flex-direction: column;
    gap:            .85rem;
    margin-bottom:  .85rem;
}

.gc-subject-card {
    background:     var(--gc-card);
    border:         1.5px solid var(--gc-border);
    border-radius:  var(--gc-radius);
    box-shadow:     var(--gc-shadow-sm);
    padding:        1.4rem 1.3rem 1.1rem;
    position:       relative;
    transition:     box-shadow .25s var(--gc-ease), border-color .25s var(--gc-ease);
    animation:      gc-slide-in .3s var(--gc-ease);
}
@keyframes gc-slide-in {
    from { opacity: 0; transform: translateY(-10px); }
    to   { opacity: 1; transform: translateY(0); }
}
.gc-subject-card:hover {
    box-shadow:    var(--gc-shadow);
    border-color:  var(--gc-border-hover);
}

.gc-subject-badge {
    position:       absolute;
    top:            -10px;
    left:           14px;
    background:     linear-gradient(135deg, var(--gc-primary), var(--gc-accent));
    color:          #fff;
    font-size:      .68rem;
    font-weight:    700;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding:        2px 11px;
    border-radius:  20px;
}

.gc-subject-grid {
    display:                grid;
    grid-template-columns:  2fr 1fr 1fr auto;
    gap:                    .7rem;
    align-items:            end;
}
@media (max-width: 600px) {
    .gc-subject-grid {
        grid-template-columns: 1fr 1fr;
    }
    .gc-subject-grid .gc-field-name {
        grid-column: 1 / -1;
    }
    .gc-remove-btn {
        justify-self: end;
    }
}

.gc-field {
    display:        flex;
    flex-direction: column;
    gap:            .3rem;
}
.gc-field label {
    font-size:      .74rem;
    font-weight:    700;
    color:          var(--gc-text-muted);
    letter-spacing: .055em;
    text-transform: uppercase;
}

.gc-input-wrap {
    position: relative;
}
.gc-input-icon {
    position:       absolute;
    left:           .8rem;
    top:            50%;
    transform:      translateY(-50%);
    font-size:      .95rem;
    pointer-events: none;
    line-height:    1;
}
.gc-input {
    width:          100%;
    padding:        .68rem .8rem .68rem 2.35rem;
    font-family:    var(--gc-font);
    font-size:      .93rem;
    font-weight:    500;
    color:          var(--gc-text);
    background:     #f8f9ff;
    border:         1.5px solid var(--gc-border);
    border-radius:  var(--gc-radius-sm);
    outline:        none;
    transition:     border-color .2s, box-shadow .2s, background .2s;
    -moz-appearance: textfield;
}
.gc-input::-webkit-inner-spin-button,
.gc-input::-webkit-outer-spin-button { -webkit-appearance: none; }
.gc-input:focus {
    border-color:   var(--gc-primary);
    background:     #fff;
    box-shadow:     0 0 0 3px rgba(var(--gc-primary-rgb), .14);
}
.gc-input.is-error {
    border-color:   var(--gc-danger);
    box-shadow:     0 0 0 3px rgba(239,68,68,.12);
}

/* Live preview */
.gc-live-badge {
    display:        none;
    align-items:    center;
    gap:            .4rem;
    margin-top:     .3rem;
    font-size:      .8rem;
    font-weight:    600;
    animation:      gc-pop-in .2s var(--gc-spring);
}
.gc-live-badge.is-visible { display: flex; }
@keyframes gc-pop-in {
    from { opacity: 0; transform: scale(.8); }
    to   { opacity: 1; transform: scale(1);  }
}
.gc-live-pct { color: var(--gc-primary); }
.gc-grade-pill {
    display:        inline-block;
    padding:        1px 9px;
    border-radius:  20px;
    font-family:    var(--gc-mono);
    font-size:      .72rem;
    font-weight:    700;
    color:          #fff;
}

/* Remove button */
.gc-remove-btn {
    width:          36px;
    height:         36px;
    background:     #fff5f5;
    border:         1.5px solid #fecaca;
    border-radius:  var(--gc-radius-sm);
    color:          var(--gc-danger);
    font-size:      1rem;
    cursor:         pointer;
    display:        flex;
    align-items:    center;
    justify-content: center;
    flex-shrink:    0;
    transition:     background .2s, color .2s, transform .2s;
    line-height:    1;
}
.gc-remove-btn:hover {
    background: var(--gc-danger);
    color:      #fff;
    border-color: var(--gc-danger);
    transform:  scale(1.08);
}

/* 2c. Buttons */
.gc-add-row {
    display:        flex;
    justify-content: center;
    margin-bottom:  1.25rem;
}
.gc-add-btn {
    display:        flex;
    align-items:    center;
    gap:            .45rem;
    padding:        .6rem 1.6rem;
    background:     #eef2ff;
    border:         2px dashed var(--gc-border-hover);
    border-radius:  50px;
    color:          var(--gc-primary);
    font-family:    var(--gc-font);
    font-size:      .9rem;
    font-weight:    600;
    cursor:         pointer;
    transition:     background .2s, border-color .2s, color .2s, transform .2s;
}
.gc-add-plus { font-size: 1.25rem; font-weight: 700; line-height: 1; }
.gc-add-btn:hover {
    background:     var(--gc-primary);
    border-color:   var(--gc-primary);
    color:          #fff;
    transform:      translateY(-2px);
}

.gc-action-row {
    display:    flex;
    gap:        .7rem;
    margin-bottom: .85rem;
}
.gc-calc-btn {
    flex:           1;
    padding:        .9rem 1rem;
    background:     linear-gradient(135deg, var(--gc-primary) 0%, var(--gc-accent) 100%);
    color:          #fff;
    border:         none;
    border-radius:  var(--gc-radius);
    font-family:    var(--gc-font);
    font-size:      1.02rem;
    font-weight:    700;
    cursor:         pointer;
    box-shadow:     0 4px 14px rgba(var(--gc-primary-rgb), .38);
    transition:     transform .2s, box-shadow .2s;
    letter-spacing: .02em;
}
.gc-calc-btn:hover {
    transform:  translateY(-2px);
    box-shadow: 0 8px 22px rgba(var(--gc-primary-rgb), .46);
}
.gc-calc-btn:active { transform: translateY(0); }

.gc-reset-btn {
    padding:        .9rem 1.3rem;
    background:     var(--gc-card);
    border:         1.5px solid var(--gc-border);
    border-radius:  var(--gc-radius);
    color:          var(--gc-text-muted);
    font-family:    var(--gc-font);
    font-size:      .92rem;
    font-weight:    600;
    cursor:         pointer;
    transition:     background .2s, border-color .2s, color .2s;
}
.gc-reset-btn:hover {
    background:     #f0f2ff;
    border-color:   var(--gc-border-hover);
    color:          var(--gc-primary);
}

/* 2d. Error */
.gc-error-msg {
    display:        flex;
    align-items:    center;
    gap:            .5rem;
    background:     #fff5f5;
    border:         1.5px solid #fecaca;
    border-radius:  var(--gc-radius-sm);
    color:          var(--gc-danger);
    padding:        .75rem 1rem;
    font-size:      .9rem;
    font-weight:    500;
    margin-bottom:  .85rem;
    animation:      gc-shake .35s ease;
}
@keyframes gc-shake {
    0%, 100% { transform: translateX(0); }
    20%       { transform: translateX(-5px); }
    60%       { transform: translateX(5px); }
}

/* 2e. Results */
.gc-results {
    animation: gc-fade-up .35s var(--gc-ease);
}
@keyframes gc-fade-up {
    from { opacity: 0; transform: translateY(18px); }
    to   { opacity: 1; transform: translateY(0);    }
}
.gc-results-heading {
    font-size:   1.25rem;
    font-weight: 700;
    margin:      0 0 1rem;
    color:       var(--gc-text);
}

.gc-table-wrap {
    background:     var(--gc-card);
    border:         1.5px solid var(--gc-border);
    border-radius:  var(--gc-radius);
    box-shadow:     var(--gc-shadow-sm);
    overflow-x:     auto;
    margin-bottom:  1.1rem;
}
.gc-table {
    width:          100%;
    border-collapse: collapse;
    font-size:      .9rem;
}
.gc-table th {
    background:     #f5f6ff;
    padding:        .7rem 1rem;
    text-align:     left;
    font-size:      .72rem;
    font-weight:    700;
    letter-spacing: .055em;
    text-transform: uppercase;
    color:          var(--gc-text-muted);
    border-bottom:  1.5px solid var(--gc-border);
    white-space:    nowrap;
}
.gc-table td {
    padding:        .8rem 1rem;
    color:          var(--gc-text);
    border-bottom:  1px solid #f0f2ff;
    white-space:    nowrap;
}
.gc-table tbody tr:last-child td { border-bottom: none; }
.gc-table tbody tr:hover td      { background: #fafbff; }

/* Grade pills in table */
.gc-grade-aplus { background: #7c3aed; }
.gc-grade-a     { background: #059669; }
.gc-grade-b     { background: #2563eb; }
.gc-grade-c     { background: #d97706; }
.gc-grade-d     { background: #ea580c; }
.gc-grade-f     { background: #dc2626; }

.gc-status-pass { color: var(--gc-success); font-weight: 700; }
.gc-status-fail { color: var(--gc-danger);  font-weight: 700; }

/* Summary card */
.gc-summary {
    background:     linear-gradient(135deg, var(--gc-primary), #6366f1 50%, var(--gc-accent));
    border-radius:  var(--gc-radius);
    padding:        1.4rem 1rem;
    display:        flex;
    align-items:    center;
    justify-content: space-around;
    flex-wrap:      wrap;
    gap:            .75rem;
    box-shadow:     var(--gc-shadow-lg);
    margin-bottom:  1.25rem;
}
.gc-summary-item {
    display:        flex;
    flex-direction: column;
    align-items:    center;
    gap:            .25rem;
    flex:           1;
    min-width:      90px;
    text-align:     center;
}
.gc-summary-label {
    font-size:      .7rem;
    font-weight:    600;
    color:          rgba(255,255,255,.72);
    text-transform: uppercase;
    letter-spacing: .055em;
}
.gc-summary-val {
    font-size:      1.9rem;
    font-weight:    800;
    color:          #fff;
    font-family:    var(--gc-mono);
    line-height:    1.1;
}
.gc-summary-grade {
    background:     rgba(255,255,255,.18);
    border-radius:  50px;
    padding:        3px 18px;
    backdrop-filter: blur(4px);
}
.gc-summary-sep {
    width: 1px; height: 44px;
    background: rgba(255,255,255,.22);
    flex-shrink: 0;
}
@media (max-width: 480px) {
    .gc-summary-sep { display: none; }
}

/* 2f. Grading scale */
.gc-scale-card {
    background:     var(--gc-card);
    border:         1.5px solid var(--gc-border);
    border-radius:  var(--gc-radius);
    box-shadow:     var(--gc-shadow-sm);
    padding:        1.3rem;
    margin-top:     .5rem;
}
.gc-scale-heading {
    font-size:   .97rem;
    font-weight: 700;
    margin:      0 0 .9rem;
    color:       var(--gc-text);
}
.gc-scale-grid {
    display:               grid;
    grid-template-columns: repeat(6, 1fr);
    gap:                   .55rem;
}
@media (max-width: 560px) {
    .gc-scale-grid { grid-template-columns: repeat(3, 1fr); }
}
.gc-scale-item {
    border-radius:  var(--gc-radius-sm);
    padding:        .7rem .3rem;
    display:        flex;
    flex-direction: column;
    align-items:    center;
    gap:            .18rem;
    text-align:     center;
}
.gc-si-grade { font-family: var(--gc-mono); font-weight: 700; font-size: 1.25rem; color: #fff; }
.gc-si-range { font-size: .65rem; color: rgba(255,255,255,.82); font-weight: 500; }
.gc-si-label { font-size: .62rem; color: rgba(255,255,255,.68); }

.gc-si-aplus { background: #7c3aed; }
.gc-si-a     { background: #059669; }
.gc-si-b     { background: #2563eb; }
.gc-si-c     { background: #d97706; }
.gc-si-d     { background: #ea580c; }
.gc-si-f     { background: #dc2626; }

/* 2g. Footer credit */
.gc-footer-credit {
    text-align:  center;
    margin-top:  2rem;
    font-size:   .78rem;
    color:       var(--gc-text-muted);
}
.gc-footer-credit a {
    color:           var(--gc-primary);
    text-decoration: none;
    font-weight:     600;
}
.gc-footer-credit a:hover { text-decoration: underline; }


/* ═══════════════════════════════════════════════════════════
   3. ADMIN SETTINGS PAGE
   ═══════════════════════════════════════════════════════════ */
.gc-admin-page {
    font-family: var(--gc-font);
    max-width:   1200px;
    padding:     0 0 3rem;
    color:       #1e1b4b;
}
.gc-admin-page *, .gc-admin-page *::before, .gc-admin-page *::after {
    box-sizing: border-box;
}

/* Header bar */
.gc-admin-header {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    background:      linear-gradient(135deg, var(--gc-primary) 0%, var(--gc-accent) 100%);
    border-radius:   var(--gc-radius);
    padding:         1.4rem 1.8rem;
    margin:          1.5rem 0 1.6rem;
    flex-wrap:       wrap;
    gap:             1rem;
}
.gc-admin-header-left {
    display:     flex;
    align-items: center;
    gap:         .9rem;
}
.gc-admin-logo {
    font-size:        2.4rem;
    background:       rgba(255,255,255,.18);
    border-radius:    12px;
    width:            54px; height: 54px;
    display:          flex;
    align-items:      center;
    justify-content:  center;
}
.gc-admin-title {
    font-size:   1.55rem;
    font-weight: 800;
    color:       #fff;
    margin:      0;
    padding:     0;
    border:      none;
    line-height: 1.2;
}
.gc-admin-subtitle {
    color:     rgba(255,255,255,.8);
    font-size: .85rem;
    margin:    .15rem 0 0;
}
.gc-admin-subtitle a {
    color:           rgba(255,255,255,.9);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.gc-version-badge {
    background:     rgba(255,255,255,.2);
    color:          #fff;
    font-size:      .8rem;
    font-weight:    700;
    padding:        4px 14px;
    border-radius:  20px;
    font-family:    var(--gc-mono);
    letter-spacing: .04em;
    backdrop-filter: blur(4px);
}

/* Grid layout */
.gc-admin-grid {
    display:               grid;
    grid-template-columns: 1fr 300px;
    gap:                   1.4rem;
    align-items:           start;
}
@media (max-width: 900px) {
    .gc-admin-grid { grid-template-columns: 1fr; }
}

/* Card base */
.gc-admin-card {
    background:     #fff;
    border:         1.5px solid #e5e7ff;
    border-radius:  var(--gc-radius);
    box-shadow:     0 2px 12px rgba(79,70,229,.07);
    padding:        1.5rem;
    margin-bottom:  1.4rem;
}
.gc-admin-card:last-child { margin-bottom: 0; }

.gc-card-header {
    display:        flex;
    align-items:    center;
    gap:            .6rem;
    margin-bottom:  1rem;
}
.gc-card-icon { font-size: 1.3rem; line-height: 1; }
.gc-card-title {
    font-size:   1.05rem;
    font-weight: 700;
    margin:      0;
    color:       #1e1b4b;
    padding:     0;
    border:      none;
}
.gc-card-desc {
    color:       #4b5563;
    font-size:   .92rem;
    line-height: 1.6;
    margin:      0 0 1rem;
}

/* Shortcode display */
.gc-shortcode-display {
    display:        flex;
    align-items:    center;
    gap:            .75rem;
    background:     #f0f2ff;
    border:         1.5px solid #c7d2fe;
    border-radius:  var(--gc-radius-sm);
    padding:        .85rem 1rem;
    flex-wrap:      wrap;
    margin-bottom:  1.4rem;
}
.gc-shortcode-display code {
    font-family: var(--gc-mono);
    font-size:   1rem;
    font-weight: 700;
    color:       var(--gc-primary);
    flex:        1;
    word-break:  break-all;
}
.gc-copy-shortcode {
    background:     var(--gc-primary);
    color:          #fff;
    border:         none;
    border-radius:  8px;
    padding:        .5rem 1.1rem;
    font-family:    var(--gc-font);
    font-size:      .85rem;
    font-weight:    600;
    cursor:         pointer;
    white-space:    nowrap;
    transition:     background .2s, transform .2s;
}
.gc-copy-shortcode:hover { background: var(--gc-primary-dark); transform: translateY(-1px); }

/* Steps */
.gc-steps {
    display:        flex;
    flex-direction: column;
    gap:            .7rem;
    margin-bottom:  1.2rem;
}
.gc-step {
    display:     flex;
    align-items: flex-start;
    gap:         .75rem;
    font-size:   .9rem;
    line-height: 1.55;
    color:       #374151;
}
.gc-step-num {
    background:       linear-gradient(135deg, var(--gc-primary), var(--gc-accent));
    color:            #fff;
    font-weight:      700;
    font-size:        .78rem;
    width:            24px; height: 24px;
    border-radius:    50%;
    display:          flex;
    align-items:      center;
    justify-content:  center;
    flex-shrink:      0;
    margin-top:       1px;
}
.gc-step code {
    background:     #eef2ff;
    color:          var(--gc-primary);
    border-radius:  4px;
    padding:        1px 6px;
    font-family:    var(--gc-mono);
    font-size:      .82rem;
}

/* Tip box */
.gc-tip-box {
    display:        flex;
    align-items:    flex-start;
    gap:            .6rem;
    background:     #fffbeb;
    border:         1.5px solid #fde68a;
    border-radius:  var(--gc-radius-sm);
    padding:        .8rem 1rem;
    font-size:      .86rem;
    color:          #92400e;
    line-height:    1.55;
}
.gc-tip-icon { font-size: 1.1rem; flex-shrink: 0; margin-top: 1px; }
.gc-tip-box code {
    background:  #fef3c7;
    border-radius: 4px;
    padding:     1px 5px;
    font-family: var(--gc-mono);
    font-size:   .82rem;
    color:       #92400e;
}

/* Features grid */
.gc-features-grid {
    display:               grid;
    grid-template-columns: 1fr 1fr;
    gap:                   .85rem;
}
@media (max-width: 640px) {
    .gc-features-grid { grid-template-columns: 1fr; }
}
.gc-feature-item {
    display:     flex;
    align-items: flex-start;
    gap:         .6rem;
    padding:     .75rem;
    background:  #f8f9ff;
    border:      1px solid #e5e7ff;
    border-radius: var(--gc-radius-sm);
}
.gc-feature-icon { font-size: 1.3rem; flex-shrink: 0; line-height: 1; }
.gc-feature-item strong { display: block; font-size: .88rem; color: #1e1b4b; margin-bottom: .18rem; }
.gc-feature-item p      { font-size: .78rem; color: #6b7280; margin: 0; line-height: 1.4; }

/* Admin grading scale */
.gc-admin-scale-grid {
    display:               grid;
    grid-template-columns: repeat(6, 1fr);
    gap:                   .6rem;
}
@media (max-width: 640px) {
    .gc-admin-scale-grid { grid-template-columns: repeat(3, 1fr); }
}
.gc-admin-scale-item {
    border-radius:  var(--gc-radius-sm);
    background:     var(--gc-clr, #4f46e5);
    padding:        .7rem .3rem;
    display:        flex;
    flex-direction: column;
    align-items:    center;
    gap:            .18rem;
    text-align:     center;
}
.gc-admin-scale-grade { font-family: var(--gc-mono); font-weight: 700; font-size: 1.2rem; color: #fff; }
.gc-admin-scale-range { font-size: .63rem; color: rgba(255,255,255,.84); }
.gc-admin-scale-label { font-size: .6rem;  color: rgba(255,255,255,.68); }

/* Quick links card */
.gc-link-list {
    display:        flex;
    flex-direction: column;
    gap:            .45rem;
}
.gc-link-item {
    display:         flex;
    align-items:     center;
    gap:             .7rem;
    padding:         .8rem .9rem;
    background:      #f8f9ff;
    border:          1.5px solid #e5e7ff;
    border-radius:   var(--gc-radius-sm);
    text-decoration: none;
    color:           #1e1b4b;
    transition:      background .2s, border-color .2s, transform .2s;
}
.gc-link-item:hover {
    background:      #eef2ff;
    border-color:    var(--gc-primary);
    transform:       translateX(3px);
    color:           var(--gc-primary);
}
.gc-link-review:hover  { border-color: #f59e0b; color: #92400e; }
.gc-link-whatsapp:hover { border-color: #25D366; color: #166534; }

.gc-link-icon  { font-size: 1.15rem; flex-shrink: 0; }
.gc-link-text  { flex: 1; }
.gc-link-text strong { display: block; font-size: .88rem; margin-bottom: .1rem; }
.gc-link-text small  { font-size: .75rem; color: #9ca3af; }
.gc-link-arrow { color: #9ca3af; font-weight: 600; font-size: .9rem; }

/* Info table */
.gc-info-table {
    width:          100%;
    border-collapse: collapse;
    font-size:      .88rem;
}
.gc-info-table tr { border-bottom: 1px solid #f0f2ff; }
.gc-info-table tr:last-child { border-bottom: none; }
.gc-info-table td {
    padding:    .6rem .4rem;
    color:      #374151;
}
.gc-info-table td:first-child {
    color:       #9ca3af;
    font-weight: 600;
    font-size:   .78rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    width: 80px;
}
.gc-info-table code {
    background:  #eef2ff;
    color:       var(--gc-primary);
    border-radius: 4px;
    padding:     1px 6px;
    font-family: var(--gc-mono);
    font-size:   .82rem;
}
.gc-info-table a {
    color:           var(--gc-primary);
    text-decoration: none;
    font-weight:     600;
}
.gc-info-table a:hover { text-decoration: underline; }

/* Review CTA card */
.gc-card-review {
    background:  linear-gradient(135deg, #fdf4ff, #eff6ff) !important;
    border-color: #e9d5ff !important;
    text-align:  center;
}
.gc-review-stars  { font-size: 1.3rem; letter-spacing: .12em; margin-bottom: .6rem; }
.gc-review-heading {
    font-size:   1rem;
    font-weight: 700;
    color:       #1e1b4b;
    margin:      0 0 .5rem;
}
.gc-review-text {
    font-size:   .84rem;
    color:       #6b7280;
    line-height: 1.55;
    margin:      0 0 1.1rem;
}
.gc-review-cta-btn {
    display:         inline-block;
    background:      linear-gradient(135deg, var(--gc-primary), var(--gc-accent));
    color:           #fff;
    text-decoration: none;
    padding:         .65rem 1.4rem;
    border-radius:   50px;
    font-size:       .9rem;
    font-weight:     700;
    box-shadow:      0 4px 14px rgba(79,70,229,.35);
    transition:      transform .2s, box-shadow .2s;
}
.gc-review-cta-btn:hover {
    transform:  translateY(-2px);
    box-shadow: 0 8px 22px rgba(79,70,229,.44);
    color:      #fff;
}

/* ═══════════════════════════════════════════════════════════
   4. ADMIN DASHBOARD WIDGET
   ═══════════════════════════════════════════════════════════ */
.gc-dash-widget { font-family: var(--gc-font); }
.gc-dash-desc {
    color:       #555d6b;
    font-size:   .88rem;
    line-height: 1.55;
    margin-top:  0;
}
.gc-dash-shortcode {
    display:      flex;
    align-items:  center;
    gap:          .6rem;
    flex-wrap:    wrap;
    background:   #f0f2ff;
    border:       1.5px solid #c7d2fe;
    border-radius: 8px;
    padding:      .65rem .9rem;
    margin-bottom: .9rem;
}
.gc-dash-sc-label {
    font-size:   .72rem;
    font-weight: 700;
    color:       #6b7280;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.gc-dash-shortcode code {
    font-family: var(--gc-mono);
    font-size:   .9rem;
    font-weight: 700;
    color:       var(--gc-primary);
    flex:        1;
}
.gc-dash-copy {
    background:  var(--gc-primary);
    color:       #fff;
    border:      none;
    border-radius: 6px;
    padding:     3px 10px;
    font-size:   .75rem;
    font-weight: 600;
    cursor:      pointer;
    transition:  background .2s;
    font-family: var(--gc-font);
    white-space: nowrap;
}
.gc-dash-copy:hover { background: var(--gc-primary-dark); }

.gc-dash-features {
    list-style: none;
    margin:     0 0 .9rem;
    padding:    0;
}
.gc-dash-features li {
    font-size:   .85rem;
    color:       #374151;
    padding:     .18rem 0;
}

.gc-dash-actions {
    display:  flex;
    gap:      .5rem;
    flex-wrap: wrap;
}
.gc-dash-btn {
    display:         inline-block;
    padding:         .4rem .9rem;
    border-radius:   7px;
    font-size:       .8rem;
    font-weight:     600;
    text-decoration: none;
    transition:      opacity .2s, transform .15s;
    font-family:     var(--gc-font);
}
.gc-dash-btn:hover { opacity: .88; transform: translateY(-1px); }
.gc-dash-btn-primary {
    background: linear-gradient(135deg, var(--gc-primary), var(--gc-accent));
    color:      #fff !important;
}
.gc-dash-btn-secondary {
    background:  #f0f2ff;
    border:      1px solid #c7d2fe;
    color:       var(--gc-primary) !important;
}


/* ═══════════════════════════════════════════════════════════
   5. ADMIN REVIEW POPUP
   ═══════════════════════════════════════════════════════════ */
.gc-popup-overlay {
    position:        fixed;
    inset:           0;
    background:      rgba(8, 7, 36, .65);
    z-index:         999999;
    display:         none;
    align-items:     center;
    justify-content: center;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    padding:         1rem;
}
.gc-popup-overlay.gc-popup-active {
    display: flex;
    animation: gc-overlay-fade .28s ease;
}
@keyframes gc-overlay-fade {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.gc-popup-modal {
    background:    #fff;
    border-radius: 22px;
    max-width:     440px;
    width:         100%;
    padding:       2.2rem 2rem 1.8rem;
    position:      relative;
    box-shadow:    0 24px 64px rgba(0,0,0,.28), 0 4px 16px rgba(0,0,0,.12);
    text-align:    center;
    font-family:   var(--gc-font);
    animation:     gc-modal-in .4s var(--gc-spring);
}
@keyframes gc-modal-in {
    from { opacity: 0; transform: scale(.82) translateY(16px); }
    to   { opacity: 1; transform: scale(1)   translateY(0);    }
}

/* Close × button */
.gc-popup-x {
    position:       absolute;
    top:            14px;
    right:          14px;
    width:          30px; height: 30px;
    background:     #f3f4f6;
    border:         none;
    border-radius:  50%;
    font-size:      1.1rem;
    line-height:    1;
    cursor:         pointer;
    color:          #6b7280;
    display:        flex;
    align-items:    center;
    justify-content: center;
    transition:     background .18s, color .18s;
}
.gc-popup-x:hover { background: #fee2e2; color: var(--gc-danger); }

/* Emoji */
.gc-popup-emoji {
    font-size:     2.8rem;
    margin-bottom: .55rem;
    display:       block;
    animation:     gc-bob 2.2s ease-in-out infinite;
}

/* Title */
.gc-popup-title {
    font-size:   1.3rem;
    font-weight: 800;
    color:       #1e1b4b;
    line-height: 1.3;
    margin:      0 0 .7rem;
    padding:     0;
    border:      none;
}

/* Body */
.gc-popup-body {
    font-size:   .9rem;
    color:       #6b7280;
    line-height: 1.62;
    margin:      0 0 1.4rem;
}
.gc-popup-body strong { color: #374151; }

/* Primary CTA */
.gc-popup-btn-primary {
    display:         block;
    width:           100%;
    padding:         .85rem 1rem;
    background:      linear-gradient(135deg, var(--gc-primary), var(--gc-accent));
    color:           #fff !important;
    text-decoration: none !important;
    border-radius:   12px;
    font-family:     var(--gc-font);
    font-size:       1rem;
    font-weight:     700;
    margin-bottom:   .75rem;
    box-shadow:      0 4px 16px rgba(var(--gc-primary-rgb), .36);
    transition:      transform .2s, box-shadow .2s;
    letter-spacing:  .01em;
}
.gc-popup-btn-primary:hover {
    transform:  translateY(-2px);
    box-shadow: 0 8px 24px rgba(var(--gc-primary-rgb), .46);
}

/* Secondary row */
.gc-popup-secondary {
    display: flex;
    gap:     .55rem;
}

.gc-popup-btn {
    border:      none;
    border-radius: 10px;
    font-family: var(--gc-font);
    font-size:   .86rem;
    font-weight: 600;
    cursor:      pointer;
    transition:  background .2s, transform .15s;
}
.gc-popup-btn:hover { transform: translateY(-1px); }

.gc-popup-btn-done {
    flex:        1;
    padding:     .65rem .5rem;
    background:  #ecfdf5;
    color:       #065f46;
    border:      1.5px solid #a7f3d0;
}
.gc-popup-btn-done:hover { background: #d1fae5; }

.gc-popup-btn-later {
    flex:        1;
    padding:     .65rem .5rem;
    background:  #f3f4f6;
    color:       #374151;
    border:      1.5px solid #e5e7eb;
}
.gc-popup-btn-later:hover { background: #e5e7eb; }

/* Footer note */
.gc-popup-note {
    font-size:   .75rem;
    color:       #9ca3af;
    margin:      1rem 0 0;
    line-height: 1.5;
}
