/* Glucólisis – gl.css | Lab. Biosensores UNAM FM */
:root{
  --gl-primary:#1565c0;
  --gl-deep:#0d3d8a;
  --gl-light:#e3f0ff;
  --gl-accent:#e65100;
  --gl-accent-bg:#fff3e0;
  --gl-accent-border:#ff9800;
  --gl-easy:#1b6b3a;
  --gl-medium:#8a6200;
  --gl-hard:#9b1c1c;
  --gl-radius:10px;
  --gl-shadow:0 2px 12px rgba(0,0,0,.12);
}
#gl-wrap *{box-sizing:border-box;margin:0;padding:0;}
#gl-wrap{font-family:'Segoe UI',Arial,sans-serif;max-width:860px;margin:0 auto;padding:16px;color:#1a1a2e;}

/* SCREENS */
.gl-screen{width:100%;}
.gl-hidden{display:none!important;}

/* HERO */
.gl-hero{text-align:center;padding:32px 16px 24px;background:linear-gradient(135deg,var(--gl-deep) 0%,var(--gl-primary) 100%);border-radius:var(--gl-radius);color:#fff;margin-bottom:20px;}
.gl-hero-icon{font-size:3rem;margin-bottom:8px;}
.gl-hero-title{font-size:2.2rem;font-weight:800;letter-spacing:1px;}
.gl-hero-sub{font-size:1rem;opacity:.85;margin-top:4px;}
.gl-hero-desc{font-size:.93rem;opacity:.8;margin-top:10px;max-width:600px;margin-left:auto;margin-right:auto;line-height:1.5;}

/* SETUP */
.gl-setup-box{background:#fff;border-radius:var(--gl-radius);padding:24px;box-shadow:var(--gl-shadow);margin-bottom:20px;}
.gl-label{display:block;font-weight:600;margin-bottom:6px;color:var(--gl-deep);}
.gl-input{width:100%;padding:10px 14px;border:2px solid #ccc;border-radius:6px;font-size:1rem;transition:border .2s;}
.gl-input:focus{outline:none;border-color:var(--gl-primary);}
.gl-input-sm{width:90px;padding:8px 10px;}
.gl-btn{display:inline-block;padding:11px 28px;border:none;border-radius:6px;font-size:1rem;font-weight:700;cursor:pointer;transition:transform .15s,box-shadow .15s;}
.gl-btn:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(0,0,0,.18);}
.gl-btn-primary{background:var(--gl-primary);color:#fff;margin-top:14px;width:100%;}
.gl-btn-accent{background:var(--gl-accent);color:#fff;}
.gl-btn-outline{background:#fff;color:var(--gl-primary);border:2px solid var(--gl-primary);}
.gl-rules{background:var(--gl-light);border-left:4px solid var(--gl-primary);border-radius:0 var(--gl-radius) var(--gl-radius) 0;padding:16px 20px;}
.gl-rules h3{color:var(--gl-deep);margin-bottom:8px;font-size:1rem;}
.gl-rules ul{list-style:none;display:flex;flex-direction:column;gap:6px;}
.gl-rules li{font-size:.9rem;color:#333;}

/* TOPBAR */
.gl-topbar{display:flex;align-items:center;gap:10px;background:var(--gl-deep);color:#fff;border-radius:var(--gl-radius);padding:10px 16px;margin-bottom:8px;flex-wrap:wrap;}
.gl-topbar-team{flex:1;font-weight:700;font-size:1rem;}
.gl-topbar-score,.gl-topbar-timer{text-align:center;min-width:80px;}
.gl-lbl{display:block;font-size:.7rem;opacity:.75;text-transform:uppercase;}
#gl-disp-score,#gl-disp-timer{font-size:1.3rem;font-weight:800;}
#gl-disp-timer.gl-urgent{color:#ff6b6b;}

/* PROGRESS */
#gl-progress-bar{height:6px;background:#ddd;border-radius:3px;margin-bottom:14px;overflow:hidden;}
#gl-progress-fill{height:100%;width:0%;background:var(--gl-primary);transition:width .4s;}

/* MISSION GRID */
#gl-missions{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media(max-width:600px){#gl-missions{grid-template-columns:1fr;}}

/* MISSION CARD */
.gl-card{border-radius:var(--gl-radius);overflow:hidden;box-shadow:var(--gl-shadow);background:#fff;border:2px solid transparent;transition:border .2s;}
.gl-card.gl-card-easy{border-top:4px solid var(--gl-easy);}
.gl-card.gl-card-medium{border-top:4px solid var(--gl-medium);}
.gl-card.gl-card-hard{border-top:4px solid var(--gl-hard);}
.gl-card.gl-card-active,.gl-card.gl-card-done{grid-column:span 2;}
@media(max-width:600px){.gl-card.gl-card-active,.gl-card.gl-card-done{grid-column:span 1;}}
.gl-card.gl-card-locked{opacity:.55;pointer-events:none;}
.gl-card-header{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;user-select:none;}
.gl-card-badge{font-size:.72rem;font-weight:700;padding:3px 8px;border-radius:12px;color:#fff;white-space:nowrap;}
.gl-badge-easy{background:var(--gl-easy);}
.gl-badge-medium{background:var(--gl-medium);}
.gl-badge-hard{background:var(--gl-hard);}
.gl-badge-locked{background:#999;}
.gl-card-title{flex:1;font-weight:700;font-size:.9rem;}
.gl-card-pts{font-size:.82rem;color:#555;}
.gl-card-body{padding:14px 16px;border-top:1px solid #eee;display:none;}
.gl-card.gl-card-active .gl-card-body{display:block;}
.gl-clue{font-size:.95rem;line-height:1.55;margin-bottom:12px;color:#222;}
.gl-hints{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.gl-hint-btn{font-size:.8rem;padding:5px 11px;border:2px solid var(--gl-primary);border-radius:5px;background:#fff;color:var(--gl-primary);cursor:pointer;font-weight:600;transition:background .15s;}
.gl-hint-btn:hover:not(.gl-hint-used){background:var(--gl-light);}
.gl-hint-btn.gl-hint-used{background:#ddd;border-color:#bbb;color:#888;cursor:default;}
.gl-hint-box{background:var(--gl-light);border-left:3px solid var(--gl-primary);border-radius:0 6px 6px 0;padding:9px 12px;font-size:.88rem;margin-bottom:12px;display:none;}
.gl-answer-row{display:flex;gap:8px;flex-wrap:wrap;}
.gl-answer-input{flex:1;min-width:160px;padding:9px 12px;border:2px solid #ccc;border-radius:6px;font-size:.95rem;}
.gl-answer-input:focus{outline:none;border-color:var(--gl-primary);}
.gl-btn-check{padding:9px 20px;background:var(--gl-primary);color:#fff;border:none;border-radius:6px;font-weight:700;cursor:pointer;font-size:.95rem;}
.gl-feedback{margin-top:10px;padding:9px 13px;border-radius:6px;font-weight:600;font-size:.9rem;}
.gl-feedback-ok{background:#d4edda;color:#155724;}
.gl-feedback-fail{background:#f8d7da;color:#721c24;}
.gl-feedback-partial{background:#fff3cd;color:#856404;}

/* CARD DONE */
.gl-card-done-body{padding:12px 16px;display:flex;align-items:center;gap:10px;background:#f0fdf4;}
.gl-done-icon{font-size:1.4rem;}
.gl-done-text{font-size:.88rem;color:#155724;}

/* BONUS */
.gl-bonus-card{background:#fff;border-radius:var(--gl-radius);padding:24px;box-shadow:var(--gl-shadow);border:2px solid var(--gl-accent-border);margin-top:16px;}
.gl-bonus-card h2{color:var(--gl-accent);margin-bottom:14px;}
.gl-bonus-body p{margin-bottom:10px;font-size:.93rem;line-height:1.55;}
.gl-bonus-body ol{padding-left:20px;margin-bottom:14px;}
.gl-bonus-body li{margin-bottom:8px;font-size:.93rem;line-height:1.5;}
.gl-bonus-note{font-style:italic;color:#666;font-size:.85rem!important;}
.gl-textarea{width:100%;padding:10px 14px;border:2px solid #ccc;border-radius:6px;font-size:.93rem;resize:vertical;margin:8px 0 14px;}
.gl-textarea:focus{outline:none;border-color:var(--gl-accent);}
.gl-bonus-self{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}

/* CERTIFICATE */
#gl-cert{text-align:center;}
.gl-cert-paper{background:#fff;border:3px solid var(--gl-primary);border-radius:var(--gl-radius);padding:32px;max-width:620px;margin:0 auto 20px;box-shadow:var(--gl-shadow);}
.gl-cert-header{margin-bottom:18px;}
.gl-cert-logo{font-size:2.8rem;margin-bottom:6px;}
.gl-cert-header h2{font-size:1.7rem;color:var(--gl-deep);font-weight:800;}
.gl-cert-header h3{font-size:1.1rem;color:var(--gl-primary);margin-top:4px;}
.gl-cert-sub{font-size:.82rem;color:#666;margin-top:4px;}
.gl-cert-awarded{font-size:.9rem;color:#555;margin-bottom:4px;}
.gl-cert-team{font-size:1.8rem;font-weight:800;color:var(--gl-deep);margin-bottom:16px;word-break:break-word;}
.gl-cert-scores{background:var(--gl-light);border-radius:8px;padding:14px;margin-bottom:14px;text-align:left;}
.gl-cert-scores h4{color:var(--gl-deep);margin-bottom:8px;}
.gl-cert-scores .gl-score-row{display:flex;justify-content:space-between;font-size:.88rem;padding:3px 0;border-bottom:1px solid #b3d4f5;}
.gl-cert-hints{font-size:.82rem;color:#666;margin-bottom:14px;text-align:left;}
.gl-cert-footer{font-size:.78rem;color:#999;border-top:1px solid #eee;padding-top:10px;}
.gl-cert-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
@media print{
  #gl-wrap>*:not(#gl-cert){display:none!important;}
  #gl-cert{display:block!important;}
  .gl-cert-actions{display:none!important;}
  .gl-cert-paper{border:2px solid #333;box-shadow:none;}
}
