@import "https://fonts.googleapis.com/css2?family=Archivo+Black&family=Archivo:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap";html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100vh}button,input,select,textarea{font:inherit}:root{--navy:#1f2a3a;--navy-dark:#172033;--brand-dark:#17263b;--brand-green:#16a34a;--brand-green-dark:#11843b;--brand-green-soft:#e8f7ed;--orange:#e67e22;--orange-dark:#c8690f;--paper:#f8fafc;--paper-dark:#f1f5f9;--ink:#17263b;--ink-soft:#64748b;--green:#16a34a;--green-bg:#dcfce7;--red:#dc2626;--red-bg:#fee2e2;--blue-bg:#e8eef5;--line:#d7dee7;--gold:#f59e0b}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:Archivo,sans-serif}#root{min-height:100vh}.topbar{background:var(--navy);color:#fff;border-bottom:4px solid var(--brand-green);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:14px 28px;display:flex}.brand{letter-spacing:.5px;align-items:center;gap:10px;font-family:Archivo Black,sans-serif;font-size:22px;display:flex}.brand .tag{background:var(--brand-green);letter-spacing:.5px;border-radius:3px;padding:3px 10px;font-family:Archivo,sans-serif;font-size:12px;font-weight:500}.meta{opacity:.85;align-items:center;gap:12px;font-family:JetBrains Mono,monospace;font-size:12px;display:flex}.year-select{color:#fff;background:#ffffff26;border:1px solid #ffffff4d;border-radius:5px;padding:3px 8px;font-family:JetBrains Mono,monospace;font-size:11px}.year-select option{color:#000}.layout{grid-template-columns:1.3fr 1fr;gap:0;min-height:calc(100vh - 58px);display:grid}@media (width<=1000px){.layout{grid-template-columns:1fr}}.board-panel{background:radial-gradient(ellipse at top, #fff 0%, var(--paper) 60%);padding:24px 28px}.board-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:16px;display:flex}.board-title{color:var(--navy);font-family:Archivo Black,sans-serif;font-size:18px}.turn-badge{color:#fff;border-radius:20px;padding:5px 12px;font-family:JetBrains Mono,monospace;font-size:12px}.track{flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.tile{text-align:center;cursor:default;border:2px solid #0000;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;width:62px;height:62px;font-size:9px;font-weight:600;display:flex;position:relative;box-shadow:inset 0 0 0 1px #0000000a}.tile .n{opacity:.5;font-family:JetBrains Mono,monospace;font-size:8px;position:absolute;top:2px;left:4px}.tile-inicio{background:var(--navy);color:#fff}.tile-operacion{background:var(--blue-bg);color:var(--navy)}.tile-cliente{color:var(--orange-dark);background:#fdebd0}.tile-sii{background:var(--red-bg);color:var(--red)}.tile-plan{background:var(--green-bg);color:var(--green)}.tile-calificacion{color:#6c3483;background:#eae0f5}.tile.active{border-color:var(--brand-green);z-index:5;transform:scale(1.12);box-shadow:0 4px 14px #16a34a4d}.token{border:2px solid #fff;border-radius:50%;width:14px;height:14px;position:absolute;bottom:-6px}.token.A{background:#2e86c1;left:6px}.token.B{background:#c0392b;right:6px}.dice-zone{border:1.5px solid var(--line);background:#fff;border-radius:10px;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:18px;padding:14px 18px;display:flex}.die-mini{background:var(--navy);color:#fff;border-radius:10px;justify-content:center;align-items:center;width:50px;height:50px;font-family:Archivo Black,sans-serif;font-size:24px;display:flex}.dice-overlay{z-index:9999;background:#1b4f72eb;flex-direction:column;justify-content:center;align-items:center;gap:24px;display:flex;position:fixed;inset:0}.dice-overlay .big-die{width:180px;height:180px;color:var(--navy);background:#fff;border-radius:28px;justify-content:center;align-items:center;font-family:Archivo Black,sans-serif;font-size:90px;animation:.12s infinite diceShake;display:flex;box-shadow:0 20px 60px #0006}.dice-overlay .big-die.settled{animation:.4s ease-out diceSettle}@keyframes diceShake{0%{transform:rotate(-8deg)scale(1)}50%{transform:rotate(8deg)scale(1.05)}to{transform:rotate(-8deg)scale(1)}}@keyframes diceSettle{0%{transform:scale(1.3)rotate(15deg)}60%{transform:scale(.9)rotate(-5deg)}to{transform:scale(1)rotate(0)}}.dice-overlay .label{color:#fff;letter-spacing:1px;font-family:Archivo,sans-serif;font-size:16px;font-weight:600}.dice-overlay .team-name{color:var(--brand-green);font-family:Archivo Black,sans-serif;font-size:22px}.btn{cursor:pointer;letter-spacing:.3px;border:none;border-radius:7px;padding:10px 18px;font-family:Archivo,sans-serif;font-size:13px;font-weight:700;transition:transform .1s}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-primary{background:var(--brand-green);color:#fff}.btn-primary:hover{background:var(--brand-green-dark)}.btn-secondary{background:var(--navy);color:#fff}.btn-ghost{border:1.5px solid var(--line);color:var(--ink);background:0 0}.event-card{border:1.5px solid var(--line);background:#fff;border-radius:10px;margin-bottom:16px;padding:18px 20px;position:relative;overflow:hidden}.event-card.SII:before,.event-card.CLIENTE:before,.event-card.PLAN:before,.event-card.CALIFICACION:before{content:"";width:6px;height:100%;position:absolute;top:0;left:0}.event-card.SII:before{background:var(--red)}.event-card.CLIENTE:before{background:var(--orange)}.event-card.PLAN:before{background:var(--green)}.event-card.CALIFICACION:before{background:#6c3483}.event-tag{letter-spacing:1px;border-radius:4px;margin-bottom:8px;padding:3px 8px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;display:inline-block}.event-tag.SII{background:var(--red-bg);color:var(--red)}.event-tag.CLIENTE{color:var(--orange-dark);background:#fdebd0}.event-tag.PLAN{background:var(--green-bg);color:var(--green)}.event-tag.CALIFICACION{color:#6c3483;background:#eae0f5}.step-indicator{gap:6px;margin-bottom:12px;display:flex}.step-dot{border:2px solid var(--line);width:28px;height:28px;color:var(--ink-soft);border-radius:50%;justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700;display:flex}.step-dot.active{color:#fff;background:#6c3483;border-color:#6c3483}.step-dot.done-ok{border-color:var(--green);background:var(--green-bg);color:var(--green)}.step-dot.done-bad{border-color:var(--red);background:var(--red-bg);color:var(--red)}.step-label{color:#6c3483;letter-spacing:.5px;margin-bottom:4px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700}.event-title{color:var(--navy);margin-bottom:8px;font-family:Archivo Black,sans-serif;font-size:16px}.case-study{background:var(--paper-dark);border-left:3px solid var(--navy);border-radius:0 6px 6px 0;margin-bottom:10px;padding:10px 14px}.case-study .case-label{color:var(--ink-soft);letter-spacing:1px;margin-bottom:4px;font-family:JetBrains Mono,monospace;font-size:9px}.event-text{color:var(--ink);margin-bottom:10px;font-size:13px;line-height:1.6}.event-art{color:var(--ink-soft);margin-bottom:10px;font-family:JetBrains Mono,monospace;font-size:11px}.event-actions{flex-wrap:wrap;gap:10px;display:flex}.quiz-box{background:var(--paper-dark);border:1.5px dashed var(--line);border-radius:8px;margin:12px 0;padding:14px 16px}.quiz-q{color:var(--navy);align-items:flex-start;gap:6px;margin-bottom:10px;font-family:Archivo,sans-serif;font-size:13px;font-weight:700;line-height:1.4;display:flex}.quiz-opts{flex-direction:column;gap:8px;display:flex}.quiz-opt{border:1.5px solid var(--line);cursor:pointer;text-align:left;background:#fff;border-radius:7px;padding:9px 12px;font-family:Archivo,sans-serif;font-size:13px;transition:all .12s}.quiz-opt:hover{border-color:var(--brand-green);background:var(--brand-green-soft)}.quiz-opt.selected{border-color:var(--navy);background:var(--blue-bg)}.quiz-opt.correct{border-color:var(--green);background:var(--green-bg);font-weight:700}.quiz-opt.incorrect{border-color:var(--red);background:var(--red-bg);font-weight:700}.quiz-tf{gap:10px;display:flex}.quiz-tf .quiz-opt{text-align:center;flex:1;font-weight:700}.quiz-num-input{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.quiz-num-input input{border:1.5px solid var(--line);border-radius:7px;width:180px;padding:8px 12px;font-family:JetBrains Mono,monospace;font-size:16px}.result-banner{border-radius:8px;align-items:flex-start;gap:10px;margin-top:10px;padding:12px 14px;font-size:13px;line-height:1.5;display:flex}.result-banner.ok{background:var(--green-bg);color:var(--green);border:1.5px solid var(--green)}.result-banner.bad{background:var(--red-bg);color:var(--red);border:1.5px solid var(--red)}.result-banner .icon{font-size:20px}.explain-box{border:1px solid var(--line);color:var(--ink-soft);background:#fff;border-radius:6px;margin-top:8px;padding:10px 12px;font-size:12px;line-height:1.5}.explain-box strong{color:var(--ink)}.log{border:1.5px solid var(--line);background:#fff;border-radius:10px;max-height:180px;padding:14px 16px;overflow-y:auto}.log-title{color:var(--ink-soft);letter-spacing:.5px;margin-bottom:8px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700}.log-entry{border-bottom:1px solid #f0ebdd;justify-content:space-between;gap:8px;padding:5px 0;font-size:12px;display:flex}.log-entry:last-child{border-bottom:none}.log-amt{white-space:nowrap;font-family:JetBrains Mono,monospace;font-weight:700}.log-amt.pos{color:var(--green)}.log-amt.neg{color:var(--red)}.reg-panel{background:var(--navy-dark);color:#fff;padding:24px 26px;overflow-y:auto}.reg-title{margin-bottom:4px;font-family:Archivo Black,sans-serif;font-size:16px}.reg-sub{opacity:.6;margin-bottom:18px;font-family:JetBrains Mono,monospace;font-size:11px}.team-tabs{gap:8px;margin-bottom:16px;display:flex}.team-tab{text-align:center;cursor:pointer;background:#ffffff0f;border:2px solid #0000;border-radius:8px;flex:1;padding:10px;font-size:13px;font-weight:700}.team-tab.activeA{background:#2e86c12e;border-color:#2e86c1}.team-tab.activeB{background:#e74c3c2e;border-color:#e74c3c}.sheet{background:var(--paper);color:var(--ink);border-radius:10px;margin-bottom:14px;padding:16px}.sheet-h{color:var(--navy);justify-content:space-between;align-items:center;margin-bottom:10px;font-family:Archivo Black,sans-serif;font-size:13px;display:flex}.sheet-h .badge{background:var(--brand-green);color:#fff;border-radius:10px;padding:2px 8px;font-family:JetBrains Mono,monospace;font-size:10px}table.regtab{border-collapse:collapse;width:100%;font-size:11px}table.regtab th{text-align:left;color:var(--ink-soft);border-bottom:1.5px solid var(--line);padding:4px 6px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600}table.regtab td{border-bottom:1px solid #efe9d9;padding:5px 6px;font-family:JetBrains Mono,monospace}table.regtab tr.total td{border-bottom:none;border-top:1.5px solid var(--line);background:var(--paper-dark);font-weight:700}.pos{color:var(--green)}.neg{color:var(--red)}.metrics{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;display:grid}.metric{text-align:center;background:#ffffff0f;border-radius:8px;padding:12px}.metric .lbl{opacity:.7;margin-bottom:4px;font-family:JetBrains Mono,monospace;font-size:10px}.metric .val{font-family:Archivo Black,sans-serif;font-size:18px}.rep-row{background:#ffffff0f;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:14px;padding:10px 12px;display:flex}.rep-dot{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;font-size:9px;font-weight:700;display:inline-flex}.rep-dot.g{color:#fff;background:#27ae60}.rep-dot.r{color:#fff;background:#e74c3c}.rep-dot.e{background:#ffffff26}.f29-box{background:#ffffff14;border:1.5px dashed #ffffff4d;border-radius:8px;margin-bottom:14px;padding:14px}.f29-row{justify-content:space-between;padding:4px 0;font-family:JetBrains Mono,monospace;font-size:12px;display:flex}.f29-row.tot{border-top:1px solid #ffffff40;margin-top:6px;padding-top:8px;font-weight:700}.winner-overlay{z-index:1000;background:#141414d9;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.winner-card{text-align:center;background:#fff;border-radius:18px;width:100%;max-width:520px;padding:36px 40px;box-shadow:0 30px 80px #0006}.winner-trophy{margin-bottom:10px;font-size:64px}.winner-title{color:var(--navy);margin-bottom:4px;font-family:Archivo Black,sans-serif;font-size:26px}.winner-team{color:#fff;border-radius:12px;margin:10px 0;padding:14px;font-family:Archivo Black,sans-serif;font-size:32px}.winner-stats{grid-template-columns:1fr 1fr;gap:10px;margin:18px 0;display:grid}.winner-stat{background:var(--paper);border-radius:10px;padding:12px}.winner-stat .lbl{color:var(--ink-soft);margin-bottom:4px;font-family:JetBrains Mono,monospace;font-size:10px}.winner-stat .val{color:var(--navy);font-family:Archivo Black,sans-serif;font-size:18px}.winner-sub{color:var(--ink-soft);margin-bottom:16px;font-size:13px;line-height:1.5}.fiscal-overlay{z-index:1001;background:#660000d9;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.fiscal-card{background:#fff;border-radius:16px;width:100%;max-width:480px;padding:0;overflow:hidden;box-shadow:0 30px 80px #00000080}.fiscal-header{color:#fff;background:linear-gradient(135deg,#922b21,#641e16);align-items:center;gap:14px;padding:20px 24px;display:flex}.fiscal-badge{background:#ffffff26;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;display:flex}.fiscal-header-text .level{opacity:.8;letter-spacing:1px;font-family:JetBrains Mono,monospace;font-size:11px}.fiscal-header-text .title{font-family:Archivo Black,sans-serif;font-size:18px}.fiscal-body{padding:24px}.fiscal-body p{color:var(--ink);margin-bottom:12px;font-size:14px;line-height:1.6}.fiscal-detail{background:var(--paper-dark);color:var(--ink-soft);border-radius:8px;margin-bottom:16px;padding:12px 14px;font-family:JetBrains Mono,monospace;font-size:12px}.fiscal-warning-box{background:var(--green-bg);border:1.5px solid var(--green);color:var(--green);border-radius:8px;margin-bottom:16px;padding:12px 14px;font-size:13px}.fiscal-fine-box{background:var(--red-bg);border:1.5px solid var(--red);color:var(--red);border-radius:8px;margin-bottom:16px;padding:12px 14px;font-size:13px}.fiscal-icon-indicator{z-index:400;border:1.5px solid var(--line);color:var(--ink-soft);background:#fff;border-radius:50px;align-items:center;gap:8px;padding:8px 16px;font-size:11px;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 4px 12px #0000001a}.fiscal-icon-indicator .dot{background:#27ae60;border-radius:50%;width:8px;height:8px}.choice-overlay{z-index:998;background:#1b4f72e0;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.choice-card{background:#fff;border-radius:16px;width:100%;max-width:680px;padding:24px;box-shadow:0 30px 80px #0006}.choice-title{color:var(--navy);text-align:center;margin-bottom:6px;font-family:Archivo Black,sans-serif;font-size:18px}.choice-sub{color:var(--ink-soft);text-align:center;margin-bottom:18px;font-size:13px}.choice-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.choice-opt-card{border:2px solid var(--line);cursor:pointer;border-radius:12px;flex-direction:column;padding:16px;transition:all .15s;display:flex}.choice-opt-card:hover{border-color:var(--brand-green);transform:translateY(-2px);box-shadow:0 8px 20px #16a34a2e}.choice-opt-card.dificil{background:#faf6fe;border-color:#6c3483}.choice-opt-card .opt-badge{letter-spacing:1px;border-radius:4px;align-self:flex-start;margin-bottom:8px;padding:3px 8px;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:700;display:inline-block}.choice-opt-card.normal .opt-badge{background:var(--blue-bg);color:var(--navy)}.choice-opt-card.dificil .opt-badge{color:#6c3483;background:#eae0f5}.choice-opt-card .opt-title{margin-bottom:6px;font-family:Archivo Black,sans-serif;font-size:14px}.choice-opt-card .opt-desc{color:var(--ink-soft);flex:1;margin-bottom:10px;font-size:12px;line-height:1.4}.choice-opt-card .opt-footer{color:var(--ink-soft);border-top:1px solid var(--line);padding-top:8px;font-family:JetBrains Mono,monospace;font-size:10px}@media (width<=640px){.topbar{gap:6px;padding:10px 12px}.brand{font-size:16px}.brand .tag{padding:2px 7px;font-size:10px}.meta{flex-wrap:wrap;gap:6px;font-size:10px}.meta>span{margin-left:0!important}.board-panel{padding:14px 12px}.reg-panel{padding:16px 14px}.tile{width:44px;height:44px;font-size:7px}.tile .n{font-size:6px}.die-mini{width:40px;height:40px;font-size:18px}.dice-zone{gap:10px;padding:10px 12px}.dice-zone>div[style*=margin-left\:auto]{width:100%;align-items:stretch!important;margin-left:0!important}.btn{padding:9px 14px;font-size:12px}.fiscal-card,.choice-card,.winner-card{width:94vw!important;max-width:94vw!important}.event-card{padding:14px}.quiz-opt{padding:11px 12px;font-size:13px}.choice-grid,.winner-stats{grid-template-columns:1fr!important}}.tributopolis-logo{text-align:center;color:var(--brand-dark)}.tributopolis-logo-icon{border:4px solid var(--brand-green);background:#fff;border-radius:50%;justify-content:center;align-items:center;width:62px;height:62px;margin:0 auto 14px;display:flex}.tributopolis-logo-icon svg{width:40px;height:40px;display:block}.tributopolis-logo-name{letter-spacing:1.2px;white-space:nowrap;font-family:Archivo Black,sans-serif;font-size:27px;line-height:1}.tributopolis-logo-name .logo-dark{color:var(--brand-dark)}.tributopolis-logo-name .logo-green{color:var(--brand-green)}.tributopolis-logo-subtitle{color:var(--brand-green);letter-spacing:2.8px;margin-top:7px;font-size:9px;font-weight:700}.tributopolis-logo.compact .tributopolis-logo-icon{width:52px;height:52px;margin-bottom:11px}.tributopolis-logo.compact .tributopolis-logo-icon svg{width:33px;height:33px}.tributopolis-logo.compact .tributopolis-logo-name{font-size:23px}.auth-page{background:var(--navy);justify-content:center;align-items:center;min-height:100vh;padding:28px 18px;display:flex}.auth-card{text-align:left;background:#fff;border:1px solid #17263b14;border-radius:18px;width:100%;max-width:430px;padding:36px;box-shadow:0 20px 60px #0000003d}.auth-card-register{max-width:520px}.auth-heading{text-align:center;margin:28px 0 22px}.auth-heading h1{color:var(--brand-dark);margin:0 0 6px;font-family:Archivo Black,sans-serif;font-size:20px}.auth-heading p{color:var(--ink-soft);margin:0;font-size:12px}.auth-field{margin-bottom:14px}.auth-field label{color:var(--brand-dark);margin-bottom:6px;font-size:12px;font-weight:700;display:block}.auth-field label span{color:var(--ink-soft);font-weight:500}.auth-field input{border:1.5px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:8px;outline:none;padding:11px 12px;transition:border-color .15s,box-shadow .15s}.auth-field input:focus{border-color:var(--brand-green);box-shadow:0 0 0 3px #16a34a1f}.auth-grid-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.auth-primary,.auth-secondary{width:100%;padding:12px 14px}.auth-secondary{margin-top:10px}.auth-link{color:var(--brand-green-dark);cursor:pointer;background:0 0;border:0;margin:14px auto 0;font-size:12px;font-weight:600;text-decoration:underline;display:block}.auth-alert{border-radius:7px;margin-bottom:12px;padding:9px 11px;font-size:12px}.auth-alert.error{background:var(--red-bg);color:var(--red)}.auth-alert.success{background:var(--green-bg);color:var(--green)}.role-selector{grid-template-columns:1fr 1fr;gap:8px;display:grid}.role-selector button{border:1.5px solid var(--line);color:var(--ink-soft);cursor:pointer;background:#fff;border-radius:8px;padding:10px;font-weight:700}.role-selector button.active{background:var(--brand-green);border-color:var(--brand-green);color:#fff}.home-card{text-align:center;max-width:420px}.home-subtitle{color:var(--ink-soft);margin:18px 0 24px;font-size:12px;line-height:1.4}.home-action{width:100%;margin-bottom:10px;padding:13px 14px;font-size:14px}.home-action:last-child{margin-bottom:0}@media (width<=640px){.auth-page{padding:18px 12px}.auth-card{border-radius:15px;padding:28px 22px}.auth-grid-2{grid-template-columns:1fr;gap:0}.tributopolis-logo-name{font-size:23px}.tributopolis-logo-subtitle{letter-spacing:2.2px;font-size:8px}}.legacy-page{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.legacy-page-light{background:radial-gradient(at top,#fff 0%,#f1f7f3 60%,#edf3ef 100%)}.legacy-page-dark{background:var(--navy)}.legacy-welcome-card,.legacy-code-card,.legacy-join-card,.legacy-wait-card{background:#fff;border-radius:18px;width:100%;box-shadow:0 20px 60px #00000026}.legacy-welcome-card{text-align:center;max-width:420px;padding:36px}.legacy-welcome-card h1,.legacy-code-card h1,.legacy-join-card h1,.legacy-wait-card h1{color:var(--navy);margin:8px 0 20px;font-family:Archivo Black,sans-serif}.legacy-prof-icon{font-size:44px}.legacy-selected-course{color:var(--ink-soft);background:var(--paper-dark);border-radius:8px;margin:-8px 0 18px;padding:8px 10px;font-size:12px}.legacy-welcome-card .btn{width:100%;margin-bottom:12px;padding:14px;font-size:15px}.legacy-link-button{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;margin-top:10px;font-size:12px;text-decoration:underline}.legacy-code-card{text-align:center;max-width:400px;padding:36px}.legacy-key-icon{margin-bottom:6px;font-size:50px}.legacy-code-card input{text-align:center;letter-spacing:4px;text-transform:uppercase;border:2px solid #222;border-radius:10px;width:100%;margin-bottom:12px;padding:14px;font-family:JetBrains Mono,monospace;font-size:22px}.legacy-code-card .btn{width:100%;margin-bottom:10px;padding:12px}.legacy-create-card{background:#fff;border-radius:18px;width:100%;max-width:640px;padding:34px 36px;box-shadow:0 20px 60px #0000001f}.legacy-die-logo{border:4px solid var(--green);background:#fff;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 10px;font-size:26px;display:flex}.legacy-create-title{text-align:center;color:var(--navy);margin:0;font-family:Archivo Black,sans-serif;font-size:25px}.legacy-create-sub{text-align:center;color:var(--ink-soft);margin:4px 0 18px;font-size:12px}.legacy-course-pill{background:var(--paper-dark);color:var(--ink-soft);border-radius:8px;margin-bottom:18px;padding:8px 10px;font-size:11px}.legacy-field-block{margin-bottom:18px}.legacy-field-block>label{color:var(--navy);margin-bottom:8px;font-size:12px;font-weight:700;display:block}.legacy-team-count{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.legacy-team-count button{color:#555;cursor:pointer;background:#e7e7e7;border:0;border-radius:8px;padding:10px;font-weight:700}.legacy-team-count button.active{background:var(--green);color:#fff}.legacy-team-names{gap:8px;display:grid}.legacy-team-name-row{align-items:center;gap:10px;display:flex}.legacy-team-dot{border-radius:50%;flex:none;width:14px;height:14px}.legacy-team-name-row input{width:100%;font:inherit;border:1px solid #cddfd3;border-radius:8px;padding:9px 11px}.legacy-section-box{background:#eaf5ed;border:1px solid #d0e4d5;border-radius:12px;margin-bottom:16px;padding:16px}.legacy-section-title{color:var(--navy);justify-content:space-between;align-items:center;margin-bottom:10px;font-size:12px;font-weight:700;display:flex}.legacy-section-title button{color:#12883a;cursor:pointer;background:0 0;border:0;font-size:11px;font-weight:700;text-decoration:underline}.legacy-topic-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.legacy-topic{text-align:left;cursor:pointer;background:#ffffff4d;border:1.5px solid;border-radius:8px;align-items:flex-start;gap:10px;padding:9px 10px;display:flex}.legacy-topic.selected{background:#ffffff7a}.legacy-topic-check{color:#fff;border:1.5px solid;border-radius:4px;flex:none;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;display:flex}.legacy-topic strong{font-size:12px;line-height:1.2;display:block}.legacy-topic small{color:#5c6670;margin-top:3px;font-family:JetBrains Mono,monospace;font-size:9px;display:block}.legacy-timer-toggle{grid-template-columns:1fr 1fr;gap:8px;display:grid}.legacy-timer-toggle button{color:#9a9a9a;cursor:pointer;background:#e6e6e6;border:0;border-radius:8px;padding:11px;font-weight:700}.legacy-timer-toggle button.active{color:var(--green);background:#d9efe0}.legacy-timer-toggle button.nolimit.active{color:#d33;background:#fde7e7}.legacy-timer-seconds{align-items:center;gap:10px;margin-top:10px;font-size:11px;display:flex}.legacy-timer-seconds input{border:1px solid var(--line);border-radius:6px;width:90px;padding:7px}.legacy-auth-note{color:var(--ink-soft);margin:14px 0;font-size:11px}.legacy-error{color:var(--red);margin:10px 0;font-size:12px}.legacy-create-submit,.legacy-create-back{width:100%;margin-top:8px;padding:14px}.legacy-create-submit{font-size:15px}.legacy-create-back{background:#fff}.legacy-lobby-page{background:#f3f8f4;min-height:100vh;padding:20px 42px}.legacy-lobby-code-card{text-align:center;background:#fff;border-radius:16px;margin-bottom:20px;padding:28px;box-shadow:0 2px 12px #0000000a}.legacy-lobby-label{color:#475569;font-size:11px}.legacy-lobby-code{color:#fff;letter-spacing:4px;background:#3f6fdf;margin:8px 0;padding:8px 10px;font-family:Archivo Black,sans-serif;font-size:48px;line-height:1;display:inline-block}.legacy-lobby-course{color:var(--ink-soft);margin-top:4px;font-size:11px}.legacy-lobby-code-card p{color:#475569;margin:8px 0 0;font-size:11px}.legacy-lobby-teams{gap:14px;margin-bottom:20px;display:grid}.legacy-lobby-teams.cols-2{grid-template-columns:repeat(2,1fr)}.legacy-lobby-teams.cols-3{grid-template-columns:repeat(3,1fr)}.legacy-lobby-team{background:#fff;border-top:5px solid;border-radius:14px;padding:18px;box-shadow:0 2px 12px #0000000f}.legacy-lobby-team h2{margin:4px 0 10px;font-family:Archivo Black,sans-serif;font-size:16px}.legacy-empty-team{color:var(--ink-soft);font-size:12px}.legacy-member-list{gap:8px;display:grid}.legacy-member{background:var(--paper-dark);border-radius:8px;padding:8px 10px;font-size:12px}.legacy-member strong{margin-left:5px;font-size:9px}.legacy-member-actions{gap:6px;margin-top:6px;display:flex}.legacy-member-actions select{border:1px solid var(--line);border-radius:5px;flex:1;padding:4px 6px;font-size:10px}.legacy-member-actions .btn{padding:4px 8px;font-size:9px}.legacy-start-game{width:100%;padding:16px;font-size:16px}.legacy-lobby-note{text-align:center;color:var(--ink-soft);margin-top:10px;font-size:11px}.legacy-lobby-page>.legacy-link-button{margin:12px auto;display:block}.legacy-join-card{max-width:560px;padding:30px 34px}.legacy-join-card h1{text-align:center;margin-bottom:4px;font-size:22px}.legacy-join-card>p{text-align:center;color:var(--ink-soft);margin-top:0;margin-bottom:20px;font-size:13px}.legacy-join-card>label:not(.legacy-leader-choice){margin:14px 0 7px;font-size:12px;font-weight:700;display:block}.legacy-readonly-name{background:#fff;border:1px solid #cddfd3;border-radius:8px;width:100%;padding:12px;font-size:14px}.legacy-team-choice-grid{grid-template-columns:1fr 1fr;gap:9px;display:grid}.legacy-team-choice-grid button{text-align:left;cursor:pointer;background:#fff;border:2px solid #cfe4d5;border-radius:10px;padding:13px}.legacy-team-choice-grid button.selected{background:#f5fbf7}.legacy-team-choice-grid strong,.legacy-team-choice-grid small{display:block}.legacy-team-choice-grid strong{font-size:13px}.legacy-team-choice-grid small{color:var(--ink-soft);margin-top:2px;font-size:10px}.legacy-leader-choice{background:#e7f4ea;border-radius:9px;align-items:flex-start;gap:10px;margin:16px 0;padding:13px;display:flex}.legacy-leader-choice input{margin-top:4px}.legacy-leader-choice strong{font-size:12px;display:block}.legacy-leader-choice small{color:#475569;margin-top:2px;font-size:9px;display:block}.legacy-join-submit{width:100%;padding:13px;font-size:14px}.legacy-join-card>.legacy-link-button{margin:10px auto 0;display:block}.legacy-wait-card{text-align:center;max-width:420px;padding:36px}.legacy-check-icon{font-size:44px}.legacy-wait-card h1{margin-bottom:4px}.legacy-wait-card p{color:var(--ink-soft);margin-top:0;font-size:13px}.legacy-wait-user,.legacy-wait-code{background:var(--paper-dark);border-radius:8px;margin:10px 0;padding:10px;font-size:12px}.legacy-wait-card .btn{width:100%;margin-top:8px}@media (width<=700px){.legacy-create-card{padding:26px 20px}.legacy-topic-grid{grid-template-columns:1fr}.legacy-lobby-page{padding:14px}.legacy-lobby-teams.cols-2,.legacy-lobby-teams.cols-3,.legacy-team-choice-grid{grid-template-columns:1fr}.legacy-lobby-code{font-size:38px}.legacy-team-count{gap:5px}}.game-topbar{color:#fff;border-bottom:4px solid var(--brand-green);z-index:50;background:#1f2a3a;justify-content:space-between;align-items:center;gap:18px;min-height:62px;padding:10px 22px;display:flex;position:relative}.game-topbar-brand{align-items:center;gap:10px;min-width:0;display:flex}.game-topbar-mark{border:3px solid var(--brand-green);width:30px;height:30px;color:var(--brand-dark);background:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:17px;font-weight:900;display:flex}.game-topbar-logo{letter-spacing:.8px;white-space:nowrap;font-family:Archivo Black,sans-serif;font-size:19px;line-height:.95}.game-topbar-logo-green{color:var(--brand-green)}.game-topbar-logo small{color:var(--brand-green);letter-spacing:2px;margin-top:5px;font-family:JetBrains Mono,monospace;font-size:7px;display:block}.game-topbar-room{background:var(--brand-green);color:#fff;white-space:nowrap;border-radius:14px;padding:5px 11px;font-size:10px;font-weight:800}.game-topbar-right{justify-content:flex-end;align-items:center;gap:14px;min-width:0;display:flex}.game-topbar-status{color:#ffffffd1;white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:10px}.game-topbar-actions{align-items:center;gap:6px;display:flex}.game-topbar-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#ffffff24;border:0;border-radius:6px;padding:7px 12px;font:700 10px Archivo,sans-serif}.game-topbar-btn.active{background:var(--brand-green)}.game-topbar-btn:hover{background:#ffffff38}.game-topbar-btn.active:hover{background:var(--brand-green-dark)}.game-topbar-exit{color:#ffffffb8;cursor:pointer;background:0 0;border:0;padding:6px 4px;font-size:10px;text-decoration:underline}@media (width<=980px){.game-topbar{flex-direction:column;align-items:flex-start;padding:10px 14px}.game-topbar-right{flex-wrap:wrap;justify-content:space-between;gap:10px;width:100%}.game-topbar-actions{flex-wrap:wrap}}.chat-panel{z-index:120;background:#f4faf6;border:1px solid #cfe2d4;border-radius:15px;flex-direction:column;width:340px;height:440px;max-height:calc(100vh - 82px);display:flex;position:fixed;top:58px;right:18px;overflow:hidden;box-shadow:0 18px 50px #00000042}.chat-tabs{background:#fff;border-bottom:1px solid #d8e5dc;flex:none;height:42px;display:flex;position:relative}.chat-tabs>button:not(.chat-close){color:#1f2937;cursor:pointer;background:#fff;border:0;flex:1;font-size:12px;font-weight:700}.chat-tabs>button:not(.chat-close).active{background:#e4f3e8}.chat-close{color:#6b7280;cursor:pointer;background:#fff;border:0;width:38px;font-size:23px;line-height:1}.chat-messages{background:#f4faf6;flex:1;padding:18px 14px;overflow-y:auto}.chat-empty{text-align:center;color:#68737d;margin-top:15px;font-size:12px}.chat-message{max-width:82%;margin-bottom:10px}.chat-message.mine{text-align:right;margin-left:auto}.chat-message-name{color:#56616c;margin:0 5px 3px;font-size:9px;font-weight:800}.chat-message-text{color:#1f2937;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;background:#fff;border:1px solid #d8e5dc;border-radius:10px;padding:8px 10px;font-size:12px;display:inline-block}.chat-message.mine .chat-message-text{background:#ddf3e4;border-color:#bee0c8}.chat-compose{background:#fff;border-top:1px solid #d8e5dc;flex:none;gap:7px;padding:10px 12px;display:flex}.chat-compose input{border:1px solid #cfddd3;border-radius:9px;outline:none;flex:1;min-width:0;padding:9px 10px;font:12px Archivo,sans-serif}.chat-compose input:focus{border-color:var(--brand-green)}.chat-compose button{background:var(--brand-green);color:#fff;cursor:pointer;border:0;border-radius:8px;padding:9px 13px;font-size:12px;font-weight:800}.chat-compose button:disabled{opacity:.55;cursor:default}@media (width<=600px){.chat-panel{width:auto;height:430px;max-height:calc(100vh - 110px);top:92px;left:10px;right:10px}}.flow-page-centered{background:radial-gradient(circle at top, #fff 0%, #f4faf6 46%, var(--paper) 100%);justify-content:center;align-items:flex-start;width:100%;min-height:100vh;padding:44px 20px 56px;display:flex}.flow-shell{width:100%;margin:0 auto}.flow-shell-profesor{max-width:760px}.flow-shell-alumno{max-width:700px}.flow-heading{text-align:center;margin:0 0 24px}.flow-heading h1{color:var(--navy);margin:0 0 7px;font-family:Archivo Black,sans-serif;font-size:28px;line-height:1.15}.flow-subtitle{color:var(--ink-soft);font-size:13px;line-height:1.5}.flow-actions{justify-content:center;margin-top:12px;display:flex}.flow-shell>div,.flow-shell>section{max-width:100%}@media (width<=720px){.flow-page-centered{padding:26px 14px 40px}.flow-heading h1{font-size:24px}.flow-shell-profesor,.flow-shell-alumno{max-width:100%}}.dashboard-red-badge{background:var(--red);color:#fff;border-radius:12px;justify-content:center;align-items:center;min-width:22px;height:22px;margin-left:7px;padding:0 7px;font-family:Archivo,sans-serif;font-size:11px;font-weight:800;display:inline-flex}.position-card{color:var(--ink);background:#fff;border-radius:10px;margin-bottom:14px;padding:14px 16px}.position-card-top{justify-content:space-between;align-items:center;gap:16px;display:flex}.position-card-rank{align-items:center;gap:10px;display:flex}.position-medal{font-size:28px;line-height:1}.position-rank-text{color:var(--red);font-size:14px;font-weight:800}.position-rank-sub{color:var(--ink-soft);margin-top:2px;font-size:10px}.position-cash-flow{color:var(--ink-soft);flex-direction:column;align-items:flex-end;gap:2px;font-size:9px;display:flex}.position-cash-flow strong{font-size:14px}.position-progress-row{grid-template-columns:1fr 1fr auto;align-items:center;gap:8px;margin-top:13px;font-size:10px;font-weight:700;display:grid}.position-progress-row span:nth-child(2){text-align:center}.position-progress{background:var(--red-bg);border-radius:999px;height:5px;margin-top:6px;overflow:hidden}.position-progress>div{background:var(--green);border-radius:999px;height:100%;transition:width .2s}button.team-tab{color:#fff;cursor:pointer;font-family:Archivo,sans-serif}@media (width<=600px){.position-card-top{flex-direction:column;align-items:flex-start}.position-cash-flow{align-items:flex-start}}.dice-overlay .big-die.dice-new{transform-style:preserve-3d;background:linear-gradient(145deg,#fff 0%,#f4f7f5 58%,#dce5df 100%);border:2px solid #fffc;padding:22px;box-shadow:0 28px 70px #0000006b,inset 8px 8px 16px #fffffff2,inset -10px -10px 18px #17263b1a}.dice-face-grid{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);place-items:center;width:100%;height:100%;display:grid}.dice-pip{opacity:0;border-radius:50%;width:23px;height:23px}.dice-pip.active{opacity:1;background:var(--navy);box-shadow:inset 3px 3px 5px #00000047,0 1px 1px #fffc}.dice-overlay .big-die.dice-new:not(.settled){animation:.18s linear infinite diceRollNew}.dice-overlay .big-die.dice-new.settled{animation:.42s cubic-bezier(.18,.82,.28,1.25) diceSettleNew}@keyframes diceRollNew{0%{transform:perspective(600px)rotateX(0)rotateY(0)rotate(-8deg)scale(1)}33%{transform:perspective(600px)rotateX(22deg)rotateY(-28deg)rotate(8deg)scale(1.06)}66%{transform:perspective(600px)rotateX(-24deg)rotateY(26deg)rotate(-5deg)scale(.98)}to{transform:perspective(600px)rotateX(0)rotateY(0)rotate(-8deg)scale(1)}}@keyframes diceSettleNew{0%{transform:perspective(600px)rotateX(25deg)rotateY(-25deg)scale(1.25)}65%{transform:perspective(600px)rotateX(-5deg)rotateY(6deg)scale(.94)}to{transform:perspective(600px)rotateX(0)rotateY(0)scale(1)}}.game-topbar-btn.sound-toggle{min-width:42px;padding-left:10px;padding-right:10px;font-size:17px}
