:root{--font-heading: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bg-primary: #fdfcfa;--bg-secondary: #f6f5f2;--bg-card: rgba(255, 255, 255, .7);--bg-card-hover: rgba(255, 255, 255, .95);--border-color: rgba(15, 23, 42, .08);--grid-border-color: rgba(15, 23, 42, .35);--cell-bg: #ffffff;--cell-block-bg: #d6d3d1;--border-hover: rgba(185, 28, 28, .45);--text-primary: #1c1917;--text-secondary: #57534e;--text-muted: #878681;--accent-primary: #b91c1c;--accent-secondary: #7f1d1d;--accent-gradient: linear-gradient(135deg, #b91c1c 0%, #7f1d1d 100%);--accent-gradient-hover: linear-gradient(135deg, #991b1b 0%, #5c1111 100%);--glow-color: rgba(185, 28, 28, .06);--shadow-card: 0 8px 30px 0 rgba(120, 113, 108, .08);--badge-bg: rgba(185, 28, 28, .08);--badge-text: #b91c1c;--transition-speed: .3s}[data-theme=dark]{--bg-primary: #0c0a09;--bg-secondary: #1c1917;--bg-card: rgba(28, 25, 23, .5);--bg-card-hover: rgba(41, 37, 36, .35);--border-color: rgba(255, 255, 255, .06);--grid-border-color: rgba(255, 255, 255, .3);--cell-bg: #1c1917;--cell-block-bg: #0c0a09;--border-hover: rgba(239, 68, 68, .35);--text-primary: #f5f5f4;--text-secondary: #a8a29e;--text-muted: #78716c;--accent-primary: #ef4444;--accent-secondary: #991b1b;--accent-gradient: linear-gradient(135deg, #ef4444 0%, #991b1b 100%);--accent-gradient-hover: linear-gradient(135deg, #f87171 0%, #b91c1c 100%);--glow-color: rgba(239, 68, 68, .12);--shadow-card: 0 8px 32px 0 rgba(0, 0, 0, .5);--badge-bg: rgba(239, 68, 68, .15);--badge-text: #ef4444}*{box-sizing:border-box}body{margin:0;color:var(--text-primary);font-family:var(--font-body);background:radial-gradient(1200px 420px at -10% -10%,var(--glow-color) 0%,transparent 55%),radial-gradient(950px 360px at 110% -20%,var(--glow-color) 0%,transparent 50%),var(--bg-primary);background-color:var(--bg-primary);min-height:100vh;transition:background-color var(--transition-speed),color var(--transition-speed)}.auth-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-primary);z-index:9999;display:flex;align-items:center;justify-content:center;transition:opacity var(--transition-speed) ease,visibility var(--transition-speed) ease}.auth-overlay.hidden{opacity:0;visibility:hidden}.auth-spinner-container{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem}.auth-spinner-container h1{font-family:var(--font-heading);font-size:2.2rem;font-weight:800;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin:.5rem 0 .2rem}.auth-spinner-container p{color:var(--text-secondary);font-size:.95rem;margin:0}.auth-spinner{width:48px;height:48px;border:4px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hero{padding:2.5rem 1.25rem 1rem;border-bottom:1px solid var(--border-color);background:var(--bg-card);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.hero-inner{max-width:1100px;margin:0 auto}.hero-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.brand-group{display:flex;align-items:center;gap:.75rem}.back-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--text-secondary);text-decoration:none;font-size:.85rem;font-weight:600;padding:.45rem .85rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:20px;transition:all var(--transition-speed) ease;margin-right:.5rem}.back-link svg{transition:transform var(--transition-speed) ease}.back-link:hover{background:var(--bg-card-hover);color:var(--accent-primary);border-color:var(--border-hover);box-shadow:0 2px 8px var(--glow-color)}.back-link:hover svg{transform:translate(-3px)}.brand-group h1{font-family:var(--font-heading);font-size:clamp(1.8rem,3vw,2.5rem);font-weight:800;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.badge{font-size:.7rem;font-weight:700;padding:.25rem .6rem;border-radius:9999px;background:var(--badge-bg);color:var(--badge-text);text-transform:uppercase;letter-spacing:.05em}.hero-desc{color:var(--text-secondary);margin-top:.5rem;max-width:600px;font-size:1.05rem}.header-actions{display:flex;align-items:center;gap:1rem}.user-profile{display:flex;align-items:center;gap:.75rem;padding:.35rem .75rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:30px}.user-info{display:flex;align-items:center;gap:.5rem}.user-avatar{width:28px;height:28px;border-radius:50%;background:var(--accent-gradient);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;text-transform:uppercase}.user-name{font-size:.9rem;font-weight:600;color:var(--text-primary)}.logout-btn{padding:.25rem .6rem;font-size:.8rem;border-radius:15px;background:transparent;border:1px solid var(--border-color);transition:all var(--transition-speed) ease}.logout-btn:hover{background:#ef44441a;border-color:#ef44444d;color:var(--accent-primary)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;margin:0}.layout{max-width:1100px;margin:0 auto;padding:1.5rem 1.25rem 3rem;display:grid;grid-template-columns:minmax(280px,340px) 1fr;gap:1.5rem}body.teacher-hidden .layout{grid-template-columns:1fr}.panel{background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:16px;box-shadow:var(--shadow-card);transition:background-color var(--transition-speed),border-color var(--transition-speed),box-shadow var(--transition-speed)}.panel:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.controls{position:sticky;top:1rem;align-self:start;padding:1.25rem;display:grid;gap:.75rem}body.teacher-hidden .controls{display:none}label{font-weight:700;font-size:.9rem;color:var(--text-primary)}input,textarea,select{width:100%;border:1px solid var(--border-color);border-radius:8px;padding:.55rem .6rem;background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-body);transition:all var(--transition-speed) ease}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent-primary);background:var(--bg-primary);box-shadow:0 0 0 3px var(--glow-color)}textarea{resize:vertical;min-height:170px}.hint{color:var(--text-muted);font-size:.85rem;margin-top:-.25rem}.actions{display:flex;gap:.5rem;flex-wrap:wrap}button{border:1px solid var(--border-color);border-radius:8px;padding:.5rem 1rem;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font-family:var(--font-body);font-weight:600;transition:all var(--transition-speed) ease}button:hover{background:var(--bg-card-hover);border-color:var(--border-hover);transform:translateY(-1px);box-shadow:0 4px 12px var(--glow-color)}button:active{transform:translateY(0)}button.primary{background:var(--accent-gradient);border-color:transparent;color:#fff}button.primary:hover{background:var(--accent-gradient-hover);border-color:transparent;box-shadow:0 4px 15px var(--glow-color)}.print-row{margin-top:.5rem;display:grid;gap:.5rem;border-top:1px solid var(--border-color);padding-top:.75rem}.status{min-height:1.2rem;font-size:.85rem;margin:0;font-weight:600}.results{display:grid;gap:1.5rem}.team-card{padding:1.25rem}.team-header{display:flex;justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:1rem}.team-title{font-size:1.4rem;color:var(--text-primary);font-weight:700}.crossword-wrap{overflow:auto;border:1px solid var(--border-color);border-radius:12px;padding:1rem;background:var(--bg-secondary)}.grid{border-collapse:collapse;margin:0 auto}.cell{position:relative;width:36px;height:36px;padding:0;text-align:center;vertical-align:middle;border:1px solid var(--grid-border-color);background:var(--cell-bg);font-weight:700;text-transform:uppercase;transition:all var(--transition-speed) ease}.cell.block{background:var(--cell-block-bg);border-color:var(--grid-border-color)}.cell .num{position:absolute;top:2px;left:3px;font-size:.6rem;color:var(--text-muted);font-weight:700}.cell-input{width:100%;height:100%;border:0;margin:0;padding:0;text-align:center;font-size:1.1rem;font-weight:700;text-transform:uppercase;color:var(--text-primary);background:transparent}.cell-input:focus{outline:none;background:var(--cell-bg);box-shadow:inset 0 0 0 2px var(--accent-primary)}.cell-input.correct{background:#10b98126!important;color:#10b981}.cell-input.incorrect{background:#ef444426!important;color:#ef4444}.clue-item{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.check-word{padding:.25rem .5rem;font-size:.8rem}.clue-status{font-size:.8rem;font-weight:700}.clue-status.ok{color:#10b981}.clue-status.warn{color:#f59e0b}.clue-status.bad{color:#ef4444}.clues{margin-top:1rem}.clues h4{margin-bottom:.5rem;font-size:1.1rem}.clue-list{margin:0;padding-left:1.1rem;display:grid;gap:.4rem}.clue-list li{font-size:.95rem;color:var(--text-secondary)}@media (max-width: 980px){.layout{grid-template-columns:1fr}.hero-top{align-items:flex-start;flex-direction:column}.controls{position:static}}@media print{:root{--text-primary: #000;--border-color: #000}body{background:#fff!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}.hero,.controls,.status,.actions,.print-row,.hint,.toggle-answer,.auth-overlay{display:none!important}.results{display:block}.team-card{page-break-inside:avoid;margin-bottom:1rem;border:0;padding:0;box-shadow:none!important;background:#fff!important}.team-header{margin-bottom:.25rem}.team-title{font-size:18pt}.crossword-wrap{border:0;padding:0;overflow:visible;background:#fff!important}.grid{border-collapse:separate!important;border-spacing:0!important;border:0!important;background:#fff!important;table-layout:fixed!important}.clues{margin-top:.5rem}.clue-list li{font-size:12pt;color:#000!important}.grid td,.cell{width:28px;height:28px;background:#fff!important;border:1.5px solid #000!important;box-shadow:inset 0 0 0 .5px #000!important}.cell.block{background:transparent!important;border:0!important;box-shadow:none!important}.cell .num{font-size:.5rem;color:#000!important}.cell-input{color:#000!important;background:transparent!important}.check-word,.clue-status{display:none!important}.team-card.hide-answers .cell-input{color:transparent!important}body.print-single .team-card{display:none}body.print-single .team-card.print-target{display:block}}
