/**
 * GeekyNG Quiz Pro - Light Theme v2.0
 */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600;9..40,700&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root {
    --gqp-primary: #f59e0b;
    --gqp-primary-rgb: 245,158,11;
    --gqp-bg: #f8f9fb;
    --gqp-surface: #ffffff;
    --gqp-surface-2: #f3f4f6;
    --gqp-surface-3: #e5e7eb;
    --gqp-border: #e5e7eb;
    --gqp-border-2: #d1d5db;
    --gqp-text: #111827;
    --gqp-text-muted: #6b7280;
    --gqp-text-dim: #9ca3af;
    --gqp-success: #10b981;
    --gqp-danger: #ef4444;
    --gqp-warning: #f59e0b;
    --gqp-info: #3b82f6;
    --gqp-radius: 16px;
    --gqp-radius-sm: 10px;
    --gqp-radius-xs: 6px;
    --gqp-shadow: 0 1px 3px rgba(0,0,0,0.08), 0 4px 16px rgba(0,0,0,0.04);
    --gqp-shadow-lg: 0 4px 24px rgba(0,0,0,0.1);
    --gqp-transition: 0.25s cubic-bezier(0.4,0,0.2,1);
    --gqp-font: 'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    --gqp-font-mono: 'JetBrains Mono','Fira Code',monospace;
}
.gqp-app { font-family:var(--gqp-font); background:var(--gqp-bg); color:var(--gqp-text); min-height:100vh; line-height:1.6; -webkit-font-smoothing:antialiased; }
.gqp-app *,.gqp-app *::before,.gqp-app *::after { box-sizing:border-box; }

/* HEADER */
.gqp-header { position:sticky; top:0; z-index:100; background:rgba(255,255,255,0.9); backdrop-filter:blur(16px); border-bottom:1px solid var(--gqp-border); }
.gqp-header-inner { max-width:720px; margin:0 auto; padding:12px 20px; display:flex; align-items:center; justify-content:space-between; }
.gqp-brand { display:flex; align-items:center; gap:10px; }
.gqp-brand-icon { width:36px; height:36px; border-radius:10px; background:rgba(var(--gqp-primary-rgb),0.12); display:flex; align-items:center; justify-content:center; color:var(--gqp-primary); }
.gqp-brand-text { font-weight:600; font-size:0.95rem; }
.gqp-header-right { display:flex; align-items:center; gap:10px; }
.gqp-user-badge { display:flex; align-items:center; gap:6px; background:var(--gqp-surface-2); padding:5px 12px; border-radius:20px; font-size:0.78rem; font-weight:600; color:var(--gqp-text-muted); }
.gqp-header-timer { display:flex; align-items:center; gap:5px; font-family:var(--gqp-font-mono); font-weight:600; font-size:0.9rem; color:var(--gqp-primary); background:rgba(var(--gqp-primary-rgb),0.08); padding:5px 12px; border-radius:8px; }

/* SECTIONS */
.gqp-section { max-width:720px; margin:0 auto; padding:24px 16px 40px; animation:gqpFade 0.35s ease; }
@keyframes gqpFade { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:translateY(0)} }

/* CARDS */
.gqp-card { background:var(--gqp-surface); border:1px solid var(--gqp-border); border-radius:var(--gqp-radius); padding:32px; margin-bottom:16px; box-shadow:var(--gqp-shadow); }
.gqp-card+.gqp-card { margin-top:12px; }
.gqp-card-center { text-align:center; }
.gqp-card-hero { text-align:center; padding:48px 32px; background:linear-gradient(180deg,#fff 0%,#fafbfc 100%); }
.gqp-card-pulse { border-color:rgba(var(--gqp-primary-rgb),0.3); animation:gqpPulseCard 2s infinite; }
@keyframes gqpPulseCard { 0%,100%{box-shadow:0 0 0 0 rgba(var(--gqp-primary-rgb),0.15)} 50%{box-shadow:0 0 0 8px rgba(var(--gqp-primary-rgb),0)} }

/* HERO */
.gqp-hero-badge { width:72px; height:72px; border-radius:50%; background:rgba(var(--gqp-primary-rgb),0.08); display:flex; align-items:center; justify-content:center; margin:0 auto 16px; }
.gqp-hero-title { font-size:1.65rem; font-weight:700; margin:0 0 8px; letter-spacing:-0.02em; }
.gqp-hero-sub { color:var(--gqp-text-muted); margin:0 0 24px; max-width:480px; margin-left:auto; margin-right:auto; }
.gqp-instructions-box { background:var(--gqp-surface-2); border:1px solid var(--gqp-border); border-radius:var(--gqp-radius-sm); padding:14px 18px; margin-bottom:24px; text-align:left; font-size:0.88rem; color:var(--gqp-text-muted); line-height:1.7; }
.gqp-hero-actions { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }

/* BUTTONS */
.gqp-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:11px 22px; border-radius:var(--gqp-radius-sm); font-family:var(--gqp-font); font-size:0.88rem; font-weight:600; cursor:pointer; transition:all var(--gqp-transition); border:none; line-height:1; white-space:nowrap; }
.gqp-btn:disabled { opacity:0.4; cursor:not-allowed; }
.gqp-btn-primary { background:var(--gqp-primary); color:#fff; }
.gqp-btn-primary:hover:not(:disabled) { filter:brightness(1.08); transform:translateY(-1px); box-shadow:0 4px 14px rgba(var(--gqp-primary-rgb),0.25); }
.gqp-btn-outline { background:transparent; color:var(--gqp-text); border:1px solid var(--gqp-border-2); }
.gqp-btn-outline:hover:not(:disabled) { border-color:var(--gqp-primary); color:var(--gqp-primary); }
.gqp-btn-ghost { background:transparent; color:var(--gqp-text-muted); }
.gqp-btn-ghost:hover:not(:disabled) { color:var(--gqp-text); background:var(--gqp-surface-2); }
.gqp-btn-success { background:var(--gqp-success); color:#fff; }
.gqp-btn-lg { padding:14px 28px; font-size:1rem; border-radius:12px; }
.gqp-btn-xl { padding:18px 36px; font-size:1.1rem; border-radius:14px; }
.gqp-btn-glow { box-shadow:0 0 20px rgba(var(--gqp-primary-rgb),0.25); animation:gqpGlow 2s ease-in-out infinite alternate; }
@keyframes gqpGlow { from{box-shadow:0 0 12px rgba(var(--gqp-primary-rgb),0.15)} to{box-shadow:0 0 28px rgba(var(--gqp-primary-rgb),0.35)} }
.gqp-btn-icon { width:34px; height:34px; border-radius:8px; background:var(--gqp-surface-2); border:1px solid var(--gqp-border); color:var(--gqp-text-muted); cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all var(--gqp-transition); }
.gqp-btn-icon:hover { background:var(--gqp-surface-3); color:var(--gqp-primary); }
.gqp-btn-spinner { width:14px; height:14px; border:2px solid rgba(255,255,255,0.3); border-top-color:#fff; border-radius:50%; animation:gqpSpin 0.6s linear infinite; display:inline-block; }

/* FORMS */
.gqp-card-step { margin-bottom:24px; }
.gqp-step-pill { display:inline-block; background:rgba(var(--gqp-primary-rgb),0.1); color:var(--gqp-primary); font-size:0.72rem; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; padding:4px 12px; border-radius:20px; margin-bottom:10px; }
.gqp-card-step h2 { font-size:1.35rem; font-weight:700; margin:0 0 4px; }
.gqp-card-step p { color:var(--gqp-text-muted); margin:0; font-size:0.88rem; }
.gqp-form-group { margin-bottom:16px; }
.gqp-form-group label { display:block; font-size:0.82rem; font-weight:600; margin-bottom:5px; }
.gqp-req { color:var(--gqp-danger); } .gqp-opt { color:var(--gqp-text-dim); font-weight:400; font-size:0.78rem; }
.gqp-form-group input[type="text"],.gqp-form-group input[type="tel"],.gqp-form-group input[type="email"],.gqp-form-group select {
    width:100%; padding:10px 14px; background:var(--gqp-surface); border:1px solid var(--gqp-border-2); border-radius:var(--gqp-radius-xs); color:var(--gqp-text); font-family:var(--gqp-font); font-size:0.88rem; transition:border var(--gqp-transition); outline:none;
}
.gqp-form-group input:focus,.gqp-form-group select:focus { border-color:var(--gqp-primary); box-shadow:0 0 0 3px rgba(var(--gqp-primary-rgb),0.1); }
.gqp-form-group select { appearance:none; background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%239ca3af' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; padding-right:36px; }
.gqp-hint { display:block; font-size:0.75rem; color:var(--gqp-text-dim); margin-top:3px; }
.gqp-form-row-2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.gqp-checkbox-wrap { display:flex; align-items:flex-start; gap:8px; cursor:pointer; font-weight:400!important; font-size:0.85rem!important; color:var(--gqp-text-muted)!important; }
.gqp-checkbox-wrap input[type="checkbox"] { display:none; }
.gqp-checkbox-box { flex-shrink:0; width:18px; height:18px; border:2px solid var(--gqp-border-2); border-radius:4px; background:var(--gqp-surface); position:relative; transition:all var(--gqp-transition); margin-top:2px; }
.gqp-checkbox-wrap input:checked+.gqp-checkbox-box { background:var(--gqp-primary); border-color:var(--gqp-primary); }
.gqp-checkbox-wrap input:checked+.gqp-checkbox-box::after { content:''; position:absolute; left:4px; top:1px; width:6px; height:10px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }
.gqp-form-actions { display:flex; justify-content:space-between; align-items:center; margin-top:20px; gap:12px; }
.gqp-form-footer { text-align:center; margin-top:16px; font-size:0.82rem; color:var(--gqp-text-muted); }
.gqp-form-footer a { color:var(--gqp-primary); text-decoration:none; font-weight:600; }

/* QUIZ INFO BAR */
.gqp-quiz-info-bar { background:rgba(var(--gqp-primary-rgb),0.06); border:1px solid rgba(var(--gqp-primary-rgb),0.15); border-radius:var(--gqp-radius-xs); padding:10px 14px; margin-bottom:16px; font-size:0.82rem; color:var(--gqp-text-muted); }

/* ALERTS */
.gqp-alert { padding:10px 14px; border-radius:var(--gqp-radius-xs); font-size:0.82rem; margin-bottom:16px; line-height:1.5; }
.gqp-alert-error { background:#fef2f2; border:1px solid #fecaca; color:#dc2626; }

/* ID DISPLAY */
.gqp-success-icon { width:72px; height:72px; border-radius:50%; background:#ecfdf5; display:flex; align-items:center; justify-content:center; margin:0 auto 14px; }
.gqp-id-display { background:var(--gqp-surface-2); border:2px dashed rgba(var(--gqp-primary-rgb),0.25); border-radius:var(--gqp-radius-sm); padding:18px; margin:20px auto; max-width:340px; }
.gqp-id-label { display:block; font-size:0.72rem; font-weight:600; text-transform:uppercase; letter-spacing:0.06em; color:var(--gqp-text-dim); margin-bottom:6px; }
.gqp-id-value-wrap { display:flex; align-items:center; justify-content:center; gap:8px; }
.gqp-id-value { font-family:var(--gqp-font-mono); font-size:1.4rem; font-weight:700; color:var(--gqp-primary); letter-spacing:0.04em; }

/* NOTICES */
.gqp-notice { padding:12px 16px; border-radius:var(--gqp-radius-sm); font-size:0.82rem; margin:16px auto; max-width:440px; text-align:left; }
.gqp-notice strong { display:block; margin-bottom:2px; }
.gqp-notice-warning { background:#fffbeb; border:1px solid #fde68a; color:#92400e; }
.gqp-notice-info { background:#eff6ff; border:1px solid #bfdbfe; color:#1e40af; }

/* COUNTDOWN */
.gqp-countdown-box { background:var(--gqp-surface-2); border:1px solid var(--gqp-border); border-radius:var(--gqp-radius-sm); padding:18px; margin:20px auto; max-width:320px; }
.gqp-countdown-label { display:block; font-size:0.72rem; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; color:var(--gqp-text-dim); margin-bottom:10px; }
.gqp-countdown-digits { display:flex; align-items:center; justify-content:center; gap:6px; }
.gqp-cd-unit { text-align:center; }
.gqp-cd-unit span { display:block; font-family:var(--gqp-font-mono); font-size:1.8rem; font-weight:700; color:var(--gqp-primary); line-height:1; }
.gqp-cd-unit small { font-size:0.6rem; color:var(--gqp-text-dim); text-transform:uppercase; }
.gqp-cd-sep { font-family:var(--gqp-font-mono); font-size:1.3rem; font-weight:700; color:var(--gqp-text-dim); margin-bottom:12px; }

/* LIVE INDICATOR */
.gqp-live-indicator { display:inline-flex; align-items:center; gap:5px; background:#fef2f2; color:#dc2626; font-size:0.7rem; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; padding:4px 12px; border-radius:20px; margin-bottom:14px; }
.gqp-pulse-dot { width:7px; height:7px; border-radius:50%; background:#ef4444; animation:gqpPulseDot 1.5s ease infinite; }
.gqp-pulse-dot-sm { width:5px; height:5px; border-radius:50%; background:#ef4444; display:inline-block; animation:gqpPulseDot 1.5s ease infinite; }
@keyframes gqpPulseDot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:0.5;transform:scale(1.5)} }

/* QUIZ TOPBAR */
.gqp-quiz-topbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:8px; flex-wrap:wrap; }
.gqp-quiz-user-info { font-size:0.8rem; color:var(--gqp-text-muted); width:100%; }
.gqp-quiz-user-info strong { color:var(--gqp-primary); }
.gqp-quiz-progress-wrap { flex:1; }
.gqp-progress-text { font-size:0.78rem; color:var(--gqp-text-muted); margin-bottom:4px; display:block; }
.gqp-progress-text b { color:var(--gqp-text); }
.gqp-progress-track { height:5px; background:var(--gqp-surface-3); border-radius:3px; overflow:hidden; }
.gqp-progress-fill { height:100%; background:linear-gradient(90deg,var(--gqp-primary),#fbbf24); border-radius:3px; transition:width 0.4s ease; }
.gqp-quiz-timer-wrap { display:flex; align-items:center; gap:5px; font-family:var(--gqp-font-mono); font-weight:700; font-size:0.95rem; padding:6px 12px; border-radius:8px; border:1px solid var(--gqp-border); white-space:nowrap; }
.gqp-quiz-timer-wrap.warning { color:var(--gqp-warning); border-color:#fde68a; background:#fffbeb; }
.gqp-quiz-timer-wrap.critical { color:var(--gqp-danger); border-color:#fecaca; background:#fef2f2; animation:gqpBlink 1s ease infinite; }
@keyframes gqpBlink { 50%{opacity:0.5} }

/* PER-QUESTION TIMER */
.gqp-question-timer-bar { height:4px; background:var(--gqp-surface-3); border-radius:2px; margin-bottom:4px; overflow:hidden; }
.gqp-question-timer-fill { height:100%; background:var(--gqp-success); border-radius:2px; transition:width 1s linear; }
.gqp-question-timer-fill.warning { background:var(--gqp-warning); }
.gqp-question-timer-fill.critical { background:var(--gqp-danger); }
.gqp-question-timer-text { font-size:0.72rem; color:var(--gqp-text-dim); margin-bottom:12px; text-align:right; }

/* QUESTION CARD */
.gqp-question-card { position:relative; }
.gqp-question-meta { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.gqp-q-badge { font-size:0.72rem; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; color:var(--gqp-primary); background:rgba(var(--gqp-primary-rgb),0.08); padding:4px 10px; border-radius:6px; }
.gqp-q-points { font-size:0.75rem; color:var(--gqp-text-dim); font-weight:600; }
.gqp-question-text { font-size:1.1rem; font-weight:600; margin:0 0 20px; line-height:1.5; }

/* OPTIONS */
.gqp-options { display:flex; flex-direction:column; gap:8px; margin-bottom:20px; }
.gqp-option { display:flex; align-items:center; gap:12px; padding:12px 16px; background:var(--gqp-surface); border:2px solid var(--gqp-border); border-radius:var(--gqp-radius-sm); cursor:pointer; transition:all var(--gqp-transition); }
.gqp-option:hover { border-color:rgba(var(--gqp-primary-rgb),0.3); background:rgba(var(--gqp-primary-rgb),0.02); }
.gqp-option.selected { border-color:var(--gqp-primary); background:rgba(var(--gqp-primary-rgb),0.06); }
.gqp-option.selected .gqp-opt-letter { background:var(--gqp-primary); color:#fff; border-color:var(--gqp-primary); }
.gqp-opt-letter { flex-shrink:0; width:30px; height:30px; border-radius:50%; border:2px solid var(--gqp-border-2); display:flex; align-items:center; justify-content:center; font-size:0.78rem; font-weight:700; color:var(--gqp-text-muted); transition:all var(--gqp-transition); }
.gqp-opt-text { font-size:0.9rem; line-height:1.4; }

.gqp-question-nav-bar { display:flex; justify-content:space-between; align-items:center; gap:8px; border-top:1px solid var(--gqp-border); padding-top:16px; }

/* NAVIGATOR */
.gqp-nav-card { padding:18px; }
.gqp-nav-card h4 { font-size:0.82rem; font-weight:600; margin:0 0 10px; color:var(--gqp-text-muted); }
.gqp-qnav { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:10px; }
.gqp-qnav-btn { width:34px; height:34px; border-radius:7px; border:1px solid var(--gqp-border-2); background:var(--gqp-surface); color:var(--gqp-text-muted); font-size:0.75rem; font-weight:600; cursor:pointer; transition:all var(--gqp-transition); display:flex; align-items:center; justify-content:center; }
.gqp-qnav-btn:hover { border-color:var(--gqp-primary); }
.gqp-qnav-btn.current { border-color:var(--gqp-primary); background:rgba(var(--gqp-primary-rgb),0.08); color:var(--gqp-primary); }
.gqp-qnav-btn.answered { background:var(--gqp-success); border-color:var(--gqp-success); color:#fff; }
.gqp-qnav-legend { display:flex; gap:14px; font-size:0.7rem; color:var(--gqp-text-dim); }
.gqp-qnav-legend span { display:flex; align-items:center; gap:4px; }
.gqp-dot { width:10px; height:10px; border-radius:3px; display:inline-block; }
.gqp-dot-answered { background:var(--gqp-success); }
.gqp-dot-current { background:rgba(var(--gqp-primary-rgb),0.3); border:1px solid var(--gqp-primary); }
.gqp-dot-empty { background:var(--gqp-surface-3); border:1px solid var(--gqp-border-2); }

/* LIVE DASHBOARD LINK */
.gqp-live-link { text-align:center; margin-top:8px; }
.gqp-live-link a { font-size:0.85rem; color:var(--gqp-primary); font-weight:600; text-decoration:none; }
.gqp-live-link a:hover { text-decoration:underline; }

/* RESULTS */
.gqp-results-card h2 { font-size:1.4rem; margin:0 0 20px; }
.gqp-score-ring { width:130px; height:130px; position:relative; margin:0 auto 20px; }
.gqp-score-ring svg { width:100%; height:100%; }
.gqp-score-ring-text { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.gqp-score-val { font-family:var(--gqp-font-mono); font-size:1.8rem; font-weight:700; color:var(--gqp-primary); line-height:1; }
.gqp-score-lbl { font-size:0.68rem; color:var(--gqp-text-dim); text-transform:uppercase; }
.gqp-result-stats { display:flex; justify-content:center; gap:24px; margin-bottom:20px; }
.gqp-rstat { text-align:center; }
.gqp-rstat span { display:block; font-size:1.4rem; font-weight:700; line-height:1; }
.gqp-rstat small { font-size:0.68rem; color:var(--gqp-text-dim); text-transform:uppercase; }
.gqp-rstat-correct { color:var(--gqp-success); }
.gqp-rstat-wrong { color:var(--gqp-danger); }
.gqp-rstat-skipped { color:var(--gqp-text-muted); }
.gqp-rank-badge-wrap { background:var(--gqp-surface-2); border:1px solid var(--gqp-border); border-radius:var(--gqp-radius-sm); padding:12px 18px; display:inline-flex; flex-direction:column; align-items:center; gap:3px; }
.gqp-rank-label { font-size:0.68rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--gqp-text-dim); font-weight:600; }
.gqp-rank-num { font-family:var(--gqp-font-mono); font-size:1.6rem; font-weight:700; color:var(--gqp-primary); }

/* LEADERBOARD */
.gqp-leaderboard-card { padding:24px; }
.gqp-lb-header { margin-bottom:14px; }
.gqp-lb-header h3 { font-size:1.05rem; margin:0 0 3px; }
.gqp-text-muted { color:var(--gqp-text-muted); }
.gqp-text-sm { font-size:0.78rem; }
.gqp-text-center { text-align:center; }
.gqp-lb-table-wrap { overflow-x:auto; }
.gqp-lb-table { width:100%; border-collapse:collapse; font-size:0.82rem; }
.gqp-lb-table thead th { text-align:left; padding:8px 10px; font-size:0.7rem; font-weight:700; text-transform:uppercase; letter-spacing:0.05em; color:var(--gqp-text-dim); border-bottom:2px solid var(--gqp-border); }
.gqp-lb-table tbody tr { border-bottom:1px solid var(--gqp-border); transition:background var(--gqp-transition); }
.gqp-lb-table tbody tr:hover { background:var(--gqp-surface-2); }
.gqp-lb-table tbody td { padding:8px 10px; vertical-align:middle; }
.gqp-row-active { background:rgba(var(--gqp-primary-rgb),0.03)!important; }
.gqp-rank-pill { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; font-size:0.72rem; font-weight:700; background:var(--gqp-surface-3); color:var(--gqp-text-muted); }
.gqp-rank-1 { background:linear-gradient(135deg,#fbbf24,#f59e0b); color:#fff; }
.gqp-rank-2 { background:linear-gradient(135deg,#d1d5db,#9ca3af); color:#fff; }
.gqp-rank-3 { background:linear-gradient(135deg,#d97706,#b45309); color:#fff; }
.gqp-lb-name { font-weight:500; }
.gqp-lb-score b { color:var(--gqp-primary); font-family:var(--gqp-font-mono); }
.gqp-live-pill { display:inline-flex; align-items:center; gap:3px; font-size:0.62rem; font-weight:700; text-transform:uppercase; color:#dc2626; background:#fef2f2; padding:2px 6px; border-radius:4px; margin-left:5px; }
.gqp-status-pill { display:inline-block; font-size:0.68rem; font-weight:600; padding:2px 8px; border-radius:4px; }
.gqp-status-active { background:#fffbeb; color:#b45309; }
.gqp-status-done { background:#ecfdf5; color:#065f46; }
.gqp-lb-footer { text-align:center; margin-top:12px; font-size:0.72rem; color:var(--gqp-text-dim); }

/* OVERLAY */
.gqp-overlay { position:fixed; inset:0; z-index:9999; background:rgba(255,255,255,0.85); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; }
.gqp-spinner-wrap { display:flex; flex-direction:column; align-items:center; gap:12px; color:var(--gqp-text-muted); }
.gqp-spinner { width:36px; height:36px; border:3px solid var(--gqp-surface-3); border-top-color:var(--gqp-primary); border-radius:50%; animation:gqpSpin 0.7s linear infinite; }
@keyframes gqpSpin { to{transform:rotate(360deg)} }

/* TOASTS */
.gqp-toast-container { position:fixed; bottom:20px; right:20px; z-index:10000; display:flex; flex-direction:column; gap:6px; max-width:340px; }
.gqp-toast { padding:10px 16px; border-radius:var(--gqp-radius-xs); font-size:0.82rem; font-weight:500; box-shadow:var(--gqp-shadow-lg); transform:translateX(100%); opacity:0; transition:all 0.3s ease; }
.gqp-toast.show { transform:translateX(0); opacity:1; }
.gqp-toast-success { background:#ecfdf5; color:#065f46; border:1px solid #a7f3d0; }
.gqp-toast-error { background:#fef2f2; color:#991b1b; border:1px solid #fecaca; }
.gqp-toast-warning { background:#fffbeb; color:#92400e; border:1px solid #fde68a; }
.gqp-toast-info { background:#eff6ff; color:#1e40af; border:1px solid #bfdbfe; }

/* RESPONSIVE */
@media (max-width:640px) {
    .gqp-card { padding:20px; }
    .gqp-card-hero { padding:32px 18px; }
    .gqp-hero-title { font-size:1.3rem; }
    .gqp-form-row-2 { grid-template-columns:1fr; }
    .gqp-hero-actions { flex-direction:column; }
    .gqp-hero-actions .gqp-btn { width:100%; }
    .gqp-toast-container { left:12px; right:12px; max-width:none; }
    .gqp-id-value { font-size:1.15rem; }
}
