:root{--brand-900: #7e2418;--brand-800: #9c2f1f;--brand-700: #c24431;--brand-600: #e4604a;--brand-500: #ee7660;--brand-200: #f8cabf;--brand-100: #fce7e2;--brand-050: #fef4f1;--accent-700: #0b6e68;--accent-600: #0f8b85;--accent-100: #dff2f0;--danger-700: #8f1d3c;--danger-600: #b62547;--danger-100: #fbe7ec;--warn-700: #9a5f08;--warn-600: #c77b0a;--warn-100: #fbf0dc;--ink: #261a16;--ink-2: #55403a;--muted: #7c655e;--line: #f1e2dd;--line-2: #f8eeea;--surface: #ffffff;--bg: #f9efec;--bg-2: #fcf6f4;--color-primary: var(--brand-600);--color-on-primary: #ffffff;--header-from: var(--brand-800);--header-to: var(--brand-700);--focus-ring: 0 0 0 3px rgba(228, 96, 74, .35);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Helvetica Neue", sans-serif;--fs-2xs: .6875rem;--fs-xs: .78rem;--fs-sm: .875rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-2xl: 1.75rem;--fs-3xl: 2.125rem;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fw-heavy: 800;--lh-tight: 1.2;--lh-snug: 1.35;--lh-normal: 1.5;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 22px;--r-pill: 999px;--sh-sm: 0 1px 2px rgba(126, 36, 24, .06);--sh-md: 0 1px 3px rgba(126, 36, 24, .08), 0 6px 18px rgba(126, 36, 24, .07);--sh-lg: 0 8px 30px rgba(126, 36, 24, .14);--maxw: 760px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:var(--fs-md);line-height:var(--lh-normal);overscroll-behavior-y:none}a{color:var(--brand-600);text-decoration:none;font-weight:var(--fw-semibold)}h1,h2,h3{line-height:var(--lh-tight);margin:0 0 var(--sp-2)}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--r-sm)}.app{min-height:100vh;display:flex;flex-direction:column;max-width:var(--maxw);margin-inline:auto}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:var(--sp-4) var(--sp-4) calc(var(--sp-6) + var(--safe-bottom));flex:1}.appbar{position:sticky;top:0;z-index:20;background:linear-gradient(180deg,var(--header-from),var(--header-to));color:#fff;padding:calc(var(--safe-top) + var(--sp-3)) var(--sp-4) var(--sp-3);display:flex;align-items:center;gap:var(--sp-3);box-shadow:var(--sh-sm)}.appbar .title{font-weight:var(--fw-bold);font-size:var(--fs-lg);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appbar .iconbtn{background:#ffffff29;color:#fff;border:none;border-radius:var(--r-md);width:40px;height:40px;font-size:var(--fs-xl);display:grid;place-items:center;cursor:pointer;flex:none;transition:background .15s ease}.appbar .iconbtn:active{background:#ffffff4d}.logo{display:inline-flex;align-items:center;gap:var(--sp-3);min-width:0}.logo .logo-mark{flex:none;display:block}.logo .logo-word{font-weight:var(--fw-semibold);font-size:var(--fs-lg);letter-spacing:.01em;white-space:nowrap;line-height:1}.logo .logo-word b{font-weight:var(--fw-heavy)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-md);padding:var(--sp-4)}.tile{display:flex;align-items:center;gap:var(--sp-4);width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-md);padding:var(--sp-4);margin-bottom:var(--sp-3);cursor:pointer;color:inherit;transition:transform .06s ease,border-color .15s ease,box-shadow .15s ease}.tile:hover{border-color:var(--brand-200)}.tile:active{transform:scale(.99);border-color:var(--brand-600)}.tile:disabled{opacity:.55;cursor:default;box-shadow:none}.tile .tile-icon{width:46px;height:46px;display:grid;place-items:center;background:var(--brand-100);color:var(--brand-700);border-radius:var(--r-md);flex:none}.tile .tile-body{flex:1;min-width:0}.tile .tile-title{display:block;font-weight:var(--fw-semibold);font-size:var(--fs-md);color:var(--ink)}.tile .tile-sub{display:block;color:var(--muted);font-size:var(--fs-sm);margin-top:2px}.tile .tile-chevron{color:var(--muted);font-size:var(--fs-xl);flex:none}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-md);font-weight:var(--fw-semibold);font-family:var(--font);cursor:pointer;transition:transform .06s ease,background .15s ease,border-color .15s ease}.btn:active{transform:scale(.99)}.btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.btn.primary:hover{background:var(--brand-700);border-color:var(--brand-700)}.btn.primary:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{background:transparent}.btn.ghost:hover{background:var(--brand-050)}.btn.danger{color:var(--danger-600);border-color:var(--danger-600);background:var(--surface)}.btn.danger:hover{background:var(--danger-100)}.btn.block{width:100%}.btn-row{display:flex;gap:var(--sp-2)}.btn-row .btn{flex:1}.seg{display:inline-flex;background:var(--brand-100);border-radius:var(--r-md);padding:var(--sp-1);gap:var(--sp-1)}.seg button{border:none;background:transparent;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-sm);font-weight:var(--fw-semibold);font-size:var(--fs-sm);color:var(--brand-700);cursor:pointer;font-family:var(--font);transition:background .15s ease,box-shadow .15s ease}.seg button.on{background:var(--surface);box-shadow:var(--sh-sm);color:var(--brand-800)}.chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.chip{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-pill);padding:var(--sp-2) var(--sp-3);font-weight:var(--fw-semibold);font-size:var(--fs-sm);cursor:pointer;color:var(--ink);font-family:var(--font);transition:background .15s ease,border-color .15s ease,color .15s ease}.chip:hover{border-color:var(--brand-200)}.chip.on{background:var(--brand-600);color:#fff;border-color:var(--brand-600)}.chip:disabled{opacity:.4;cursor:default}label.field{display:block;margin:var(--sp-4) 0 var(--sp-2);font-weight:var(--fw-semibold);font-size:var(--fs-sm);color:var(--ink-2)}.hint{color:var(--muted);font-size:var(--fs-sm)}input[type=number],input[type=text],input[type=email],input[type=date],input[type=time],textarea,select{width:100%;padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);font-size:var(--fs-md);font-family:var(--font);background:var(--surface);color:var(--ink)}textarea{resize:vertical;line-height:var(--lh-snug)}input[type=number]:focus,input[type=text]:focus,input[type=email]:focus,input[type=date]:focus,input[type=time]:focus,textarea:focus,select:focus{outline:none;border-color:var(--brand-600);box-shadow:var(--focus-ring)}.section-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:var(--fw-bold);margin:var(--sp-6) var(--sp-1) var(--sp-2)}.section-title.with-action{display:flex;justify-content:space-between;align-items:center}.quizbar{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}.progresswrap{flex:1;height:8px;background:var(--line);border-radius:var(--r-pill);overflow:hidden}.progressfill{height:100%;background:var(--brand-600);border-radius:var(--r-pill);transition:width .25s ease}.qcount{font-variant-numeric:tabular-nums;font-weight:var(--fw-bold);color:var(--muted);font-size:var(--fs-sm);white-space:nowrap}.timer{font-variant-numeric:tabular-nums;font-weight:var(--fw-bold);background:#ffffff2e;color:#fff;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);font-size:var(--fs-md);white-space:nowrap}.timer.warn{background:var(--warn-100);color:var(--warn-700)}.timer.danger{background:var(--danger-100);color:var(--danger-700)}.meta-row{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-3)}.badge{font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.03em;background:var(--brand-100);color:var(--brand-800);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm)}.question{font-size:var(--fs-lg);font-weight:var(--fw-semibold);line-height:var(--lh-snug);white-space:pre-wrap;margin-bottom:var(--sp-4);color:var(--ink)}.options{display:flex;flex-direction:column;gap:var(--sp-3)}.option{display:flex;gap:var(--sp-3);align-items:flex-start;text-align:left;width:100%;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);cursor:pointer;color:var(--ink);font-size:var(--fs-md);line-height:var(--lh-snug);font-family:var(--font);transition:border-color .15s ease,background .15s ease}.option:hover{border-color:var(--brand-200)}.option .key{font-weight:var(--fw-heavy);color:var(--muted);flex:none;width:22px}.option .otext{flex:1;white-space:pre-wrap}.option.selected{border-color:var(--brand-600);background:var(--brand-050)}.option.selected .key{color:var(--brand-600)}.option.correct{border-color:var(--accent-600);background:var(--accent-100)}.option.correct .key{color:var(--accent-700)}.option.wrong{border-color:var(--danger-600);background:var(--danger-100)}.option.wrong .key{color:var(--danger-600)}.option.locked{cursor:default}.option.locked:hover{border-color:var(--line)}.option.locked.selected:hover{border-color:var(--brand-600)}.option.locked.correct:hover{border-color:var(--accent-600)}.option.locked.wrong:hover{border-color:var(--danger-600)}.feedback{margin-top:var(--sp-4);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);border:1px solid var(--line)}.feedback.ok{background:var(--accent-100);border-color:#b8ded9}.feedback.ko{background:var(--danger-100);border-color:#f3c9c4}.feedback .fb-head{font-weight:var(--fw-bold);margin-bottom:var(--sp-2);display:flex;align-items:center;gap:var(--sp-2)}.ans-line{display:flex;gap:var(--sp-2);padding:2px 0;font-size:var(--fs-sm)}.ans-line .tag{font-weight:var(--fw-bold);flex:none}.ans-line.bad .tag{color:var(--danger-600)}.ans-line.good .tag{color:var(--accent-700)}.norma{margin-top:var(--sp-3);background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--brand-600);border-radius:var(--r-sm);padding:var(--sp-3)}.norma.alt{border-left-color:var(--accent-600)}.norma .label{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--brand-800);font-weight:var(--fw-heavy);margin-bottom:3px}.norma.alt .label{color:var(--accent-700)}.norma .cite{font-size:var(--fs-sm);white-space:pre-wrap;color:var(--ink-2)}.norma .disclaimer{margin-top:var(--sp-2);font-size:var(--fs-2xs);color:var(--muted);font-style:italic}.actionbar{position:sticky;bottom:0;background:linear-gradient(180deg,rgba(238,243,249,0),var(--bg) 36%);padding:var(--sp-3) 0 calc(var(--sp-2) + var(--safe-bottom));margin-top:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.statgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-3)}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-4);box-shadow:var(--sh-md);text-align:left}button.stat{cursor:pointer;font-family:var(--font)}.stat .num{font-size:var(--fs-2xl);font-weight:var(--fw-heavy);color:var(--brand-800);line-height:1.1}.stat .num.good{color:var(--accent-700)}.stat .num.bad{color:var(--danger-600)}.stat .lbl{color:var(--muted);font-size:var(--fs-sm);margin-top:2px}.bar{height:8px;background:var(--line);border-radius:var(--r-pill);overflow:hidden;margin-top:var(--sp-2)}.bar>span{display:block;height:100%;background:var(--accent-600);border-radius:var(--r-pill)}.blockrow{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--line-2)}.blockrow:last-child{border-bottom:none}.blockrow .bk{font-weight:var(--fw-heavy);width:26px;color:var(--brand-600)}.blockrow .bk-main{flex:1;min-width:0}.blockrow .bk-title{font-weight:var(--fw-semibold);font-size:var(--fs-sm)}.blockrow .pct{font-weight:var(--fw-heavy);font-variant-numeric:tabular-nums;color:var(--ink-2)}.verdict{text-align:center;padding:var(--sp-6) var(--sp-4);border-radius:var(--r-lg);color:#fff;margin-bottom:var(--sp-4)}.verdict.pass{background:linear-gradient(135deg,var(--accent-600),var(--accent-700))}.verdict.fail{background:linear-gradient(135deg,var(--danger-600),var(--danger-700))}.verdict .big{font-size:var(--fs-3xl);font-weight:var(--fw-heavy);font-variant-numeric:tabular-nums}.verdict .sub{opacity:.95}.kv{display:flex;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--line-2)}.kv:last-child{border-bottom:none}.kv .k{color:var(--muted)}.kv .v{font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;text-align:right}.review-block{margin-bottom:var(--sp-4)}.muted{color:var(--muted)}.center{text-align:center}.strong{font-weight:var(--fw-bold)}.lead{color:var(--muted);margin-top:0;margin-bottom:var(--sp-4)}.bignum{font-size:var(--fs-3xl);font-weight:var(--fw-heavy);color:var(--brand-800);line-height:1.1}.stack-2>*+*{margin-top:var(--sp-2)}.mt-2{margin-top:var(--sp-2)}.mt-3{margin-top:var(--sp-3)}.mt-4{margin-top:var(--sp-4)}.mt-6{margin-top:var(--sp-6)}.mb-0{margin-bottom:0}.loading{min-height:70vh;display:grid;place-items:center;color:var(--muted);padding:var(--sp-6)}.spinner{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--brand-600);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto var(--sp-3)}@keyframes spin{to{transform:rotate(360deg)}}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d182880;display:grid;place-items:end center;z-index:50}.sheet{width:100%;max-width:var(--maxw);margin:var(--sp-3);margin-bottom:calc(var(--sp-3) + var(--safe-bottom))}.seg.seg-3{display:flex;width:100%}.seg.seg-3 button{flex:1;padding:var(--sp-2) var(--sp-2);white-space:nowrap}.celebrate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:var(--sp-5);overflow:hidden;background:radial-gradient(140% 120% at 50% 0%,#12a15038,#0b3d73db 60%,#0a3568f0);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:celebrate-fade .35s ease both}@keyframes celebrate-fade{0%{opacity:0}to{opacity:1}}.celebrate-confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.confetti{position:absolute;top:-8%;border-radius:2px;opacity:.95;will-change:transform;animation-name:confetti-fall;animation-timing-function:linear;animation-iteration-count:infinite}.confetti.round{border-radius:50%}@keyframes confetti-fall{0%{transform:translate3d(0,-10vh,0) rotate(0);opacity:0}8%{opacity:1}to{transform:translate3d(var(--sway, 0),112vh,0) rotate(var(--spin, 360deg));opacity:1}}.celebrate-card{position:relative;z-index:1;width:100%;max-width:420px;text-align:center;background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-lg);padding:var(--sp-8) var(--sp-6) var(--sp-6);animation:celebrate-pop .5s cubic-bezier(.18,.89,.32,1.28) both}@keyframes celebrate-pop{0%{transform:scale(.82) translateY(12px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.celebrate-badge{position:relative;display:inline-grid;place-items:center;margin-bottom:var(--sp-4);animation:celebrate-bounce 1.6s ease-in-out .2s infinite}@keyframes celebrate-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.celebrate-badge .logo-mark{border-radius:var(--r-lg);box-shadow:var(--sh-md)}.celebrate-check{position:absolute;right:-10px;bottom:-8px;width:34px;height:34px;border-radius:var(--r-pill);background:linear-gradient(135deg,var(--accent-600),var(--accent-700));color:#fff;font-weight:var(--fw-heavy);font-size:var(--fs-lg);display:grid;place-items:center;border:3px solid var(--surface)}.celebrate-title{margin:0 0 var(--sp-2);font-size:var(--fs-2xl);font-weight:var(--fw-heavy);color:var(--brand-800)}.celebrate-detail{margin:0 0 var(--sp-5);color:var(--ink-2);font-size:var(--fs-md);line-height:var(--lh-snug)}.celebrate-btn{margin-top:var(--sp-2)}@media (prefers-reduced-motion: reduce){.confetti,.celebrate-badge{animation:none}.celebrate,.celebrate-card{animation-duration:1ms}}.card.notice{border-color:var(--warn-600);background:var(--warn-100);color:var(--ink)}.plan{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:var(--sp-4);margin-bottom:var(--sp-3)}.plan.free{background:var(--bg-2)}.plan.featured{border-color:var(--brand-600);box-shadow:var(--sh-md)}.plan-badge{position:absolute;top:calc(-1 * var(--sp-2));right:var(--sp-4);background:linear-gradient(135deg,var(--brand-600),var(--brand-700));color:#fff;font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.04em;padding:4px 10px;border-radius:var(--r-pill);box-shadow:var(--sh-sm)}.plan-top{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3)}.plan-name{font-weight:var(--fw-heavy);font-size:var(--fs-lg);color:var(--ink)}.plan-price{font-weight:var(--fw-heavy);font-size:var(--fs-xl);color:var(--brand-700);font-variant-numeric:tabular-nums}.plan-period{color:var(--muted);font-size:var(--fs-sm);margin-top:2px}.plan-framing{color:var(--ink-2);font-size:var(--fs-sm);line-height:var(--lh-snug);margin:var(--sp-2) 0 var(--sp-3)}.plan.free .plan-framing{margin-bottom:0}.tile.premium-cta{border-color:var(--brand-200);background:linear-gradient(180deg,var(--brand-050),var(--surface))}.card.download-cta{border-color:var(--brand-600);background:linear-gradient(180deg,var(--brand-050),var(--surface));margin-bottom:var(--sp-3)}.plan-store-note{margin-top:var(--sp-2);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--brand-700);text-align:center;background:var(--brand-100);border-radius:var(--r-md);padding:var(--sp-2)}.tile.pro-on{border-color:var(--accent-600);background:var(--accent-100)}.calc-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:end center;background:#0d182880;padding:var(--sp-3);padding-bottom:calc(var(--sp-3) + var(--safe-bottom));animation:celebrate-fade .2s ease both}.calc-window{width:100%;max-width:380px;max-height:92vh;display:flex;flex-direction:column;gap:var(--sp-2);background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-lg);padding:var(--sp-3);animation:celebrate-pop .28s cubic-bezier(.18,.89,.32,1.28) both}@media (min-width: 560px){.calc-overlay{place-items:center}}.calc-head{display:flex;align-items:center;justify-content:space-between;padding:0 var(--sp-1)}.calc-title{font-weight:var(--fw-bold);font-size:var(--fs-lg);color:var(--brand-800)}.calc-close{color:var(--ink-2);font-size:var(--fs-lg)}.calc-tape{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);height:132px;overflow-y:auto;font-variant-numeric:tabular-nums}.calc-tape-empty{color:var(--muted);font-size:var(--fs-sm);height:100%;display:grid;place-items:center;text-align:center}.calc-tape-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-1) 0;border-bottom:1px solid var(--line-2)}.calc-tape-row:last-child{border-bottom:none}.calc-tape-expr{color:var(--muted);font-size:var(--fs-sm)}.calc-tape-res{color:var(--ink);font-weight:var(--fw-bold);font-size:var(--fs-md)}.calc-tape-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:0 var(--sp-1)}.calc-tape-count{color:var(--muted);font-size:var(--fs-xs)}.calc-clearhist{font-size:var(--fs-xs);padding:var(--sp-1) var(--sp-3)}.calc-clearhist:disabled{opacity:.5}.calc-display{text-align:right;font-size:var(--fs-3xl);font-weight:var(--fw-bold);color:var(--brand-800);font-variant-numeric:tabular-nums;padding:var(--sp-2) var(--sp-3);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.calc-keys{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2)}.calc-key{border:none;border-radius:var(--r-md);background:var(--brand-050);color:var(--ink);font-family:var(--font);font-size:var(--fs-xl);font-weight:var(--fw-semibold);min-height:56px;cursor:pointer;transition:filter .12s ease,transform .04s ease;font-variant-numeric:tabular-nums}.calc-key:active{transform:scale(.96);filter:brightness(.96)}.calc-key.fn{background:var(--brand-100);color:var(--brand-800);font-weight:var(--fw-bold)}.calc-key.op{background:var(--brand-600);color:#fff;font-weight:var(--fw-bold);font-size:var(--fs-2xl)}.calc-key.eq{background:linear-gradient(135deg,var(--accent-600),var(--accent-700));color:#fff;font-weight:var(--fw-heavy);font-size:var(--fs-2xl)}.gami-strip{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2);align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:var(--sp-3);margin-bottom:var(--sp-3);cursor:pointer;font-family:var(--font)}.gami-cell{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.gami-cell+.gami-cell{border-left:1px solid var(--line-2)}.gami-num{font-weight:var(--fw-heavy);font-size:var(--fs-lg);color:var(--brand-800);white-space:nowrap}.gami-lbl{font-size:var(--fs-xs);color:var(--muted);text-align:center}.gami-bar{width:80%;height:6px;background:var(--brand-100);border-radius:var(--r-pill);overflow:hidden}.gami-bar.big{width:100%;height:10px}.gami-bar-fill{height:100%;background:linear-gradient(90deg,var(--brand-600),var(--brand-500));border-radius:var(--r-pill);transition:width .4s ease}.gami-ring{transform:rotate(-90deg)}.gami-ring .ring-bg{fill:none;stroke:var(--brand-100);stroke-width:5}.gami-ring .ring-fg{fill:none;stroke:var(--accent-600);stroke-width:5;stroke-linecap:round;transition:stroke-dashoffset .4s ease}.card.nudge{border-color:var(--accent-600);background:var(--accent-100);color:var(--accent-700);font-weight:var(--fw-semibold);margin-bottom:var(--sp-3)}.tile.plan-today{border-color:var(--accent-600);background:linear-gradient(180deg,var(--accent-100),var(--surface))}.tile.plan-cta{border-color:var(--brand-200);background:var(--brand-050)}.gami-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3)}.gami-hero-streak{text-align:right}.gami-hero-fire{font-weight:var(--fw-heavy);font-size:var(--fs-xl);color:var(--brand-800)}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sp-3)}.badge-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:var(--sp-4) var(--sp-3);text-align:center;opacity:.55;filter:grayscale(.7)}.badge-card.on{opacity:1;filter:none;border-color:var(--accent-600);background:linear-gradient(180deg,var(--accent-100),var(--surface))}.badge-ic{font-size:30px;line-height:1;margin-bottom:var(--sp-2)}.badge-name{font-weight:var(--fw-bold);color:var(--ink);font-size:var(--fs-sm)}.badge-desc{color:var(--muted);font-size:var(--fs-xs);margin-top:2px;line-height:var(--lh-snug)}.badge-lock{margin-top:var(--sp-2);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:var(--fw-bold)}.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.onb-title{font-size:var(--fs-2xl);font-weight:var(--fw-heavy);color:var(--brand-800);margin:var(--sp-4) 0 var(--sp-2)}.onb-list{margin:var(--sp-3) 0;padding-left:var(--sp-5);color:var(--ink-2)}.onb-list li{margin-bottom:var(--sp-2);line-height:var(--lh-snug)}.linklike{background:none;border:none;padding:0;font:inherit;color:var(--brand-600);font-weight:var(--fw-semibold);text-decoration:underline;cursor:pointer}.legal p{color:var(--ink-2);line-height:var(--lh-normal);margin:0 0 var(--sp-3)}.legal h2{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--ink);margin:var(--sp-5) 0 var(--sp-2)}.row-link{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);color:var(--ink);text-decoration:none;font-weight:var(--fw-semibold);padding:var(--sp-1) 0}.row-link-go{color:var(--muted);font-size:var(--fs-xl)}.home{background:var(--bg)}.hero{background:linear-gradient(160deg,var(--brand-800),var(--brand-600));color:#fff;padding:calc(var(--safe-top) + var(--sp-4)) var(--sp-4) var(--sp-6);border-radius:0 0 var(--r-xl) var(--r-xl);box-shadow:var(--sh-md)}.hero-top,.hero-card{max-width:var(--maxw);margin-left:auto;margin-right:auto}.hero-top{display:flex;align-items:center;gap:var(--sp-3)}.hero-brand{display:flex;align-items:center;gap:var(--sp-3);min-width:0;flex:1}.hero-brand .logo-mark{background:#ffffff24;border-radius:var(--r-md);padding:5px;flex:none}.hero-brand-text{display:flex;flex-direction:column;min-width:0;line-height:1.2}.hero-brand-text b{font-weight:var(--fw-heavy);font-size:var(--fs-lg);white-space:nowrap}.hero-brand-text small{font-size:var(--fs-xs);color:#ffffffd1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-actions{display:flex;gap:var(--sp-2);flex:none}.hero-icon{width:38px;height:38px;border:none;border-radius:var(--r-md);background:#ffffff29;color:#fff;font-size:var(--fs-lg);display:grid;place-items:center;cursor:pointer;transition:background .15s ease}.hero-icon:active{background:#ffffff4d}.hero-card{margin-top:var(--sp-4);background:#fff;border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5);display:flex;align-items:center;gap:var(--sp-3);box-shadow:var(--sh-lg)}.hero-card-main{flex:1;min-width:0}.hero-num{font-size:2.6rem;font-weight:var(--fw-heavy);color:var(--brand-700);line-height:1;letter-spacing:-.01em}.hero-label{font-weight:var(--fw-bold);color:var(--ink);font-size:var(--fs-lg);margin-top:3px}.hero-sub{color:var(--muted);font-size:var(--fs-sm);margin-top:4px}.hero-aside{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);flex:none}.hero-flag{font-size:1.7rem;line-height:1}.hero-badge{background:var(--brand-100);color:var(--brand-700);font-weight:var(--fw-bold);font-size:var(--fs-xs);padding:2px 9px;border-radius:var(--r-pill)}.menucard{display:flex;align-items:center;gap:var(--sp-4);width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-md);padding:var(--sp-4);margin-bottom:var(--sp-3);cursor:pointer;color:inherit;transition:transform .06s ease,border-color .15s ease}.menucard:hover{border-color:var(--brand-200)}.menucard:active{transform:scale(.99)}.menucard:disabled{opacity:.55;cursor:default;box-shadow:none}.menucard-chip{width:46px;height:46px;border-radius:var(--r-md);display:grid;place-items:center;flex:none}.menucard-body{flex:1;min-width:0}.menucard-title{display:block;font-weight:var(--fw-semibold);font-size:var(--fs-md);color:var(--ink)}.menucard-sub{display:block;color:var(--muted);font-size:var(--fs-sm);margin-top:2px}.menucard-go{color:var(--muted);font-size:var(--fs-xl);flex:none}.chip-blue{background:var(--brand-100);color:var(--brand-600)}.chip-navy{background:#e6edf7;color:var(--brand-800)}.chip-green{background:var(--accent-100);color:var(--accent-600)}.chip-orange{background:var(--warn-100);color:var(--warn-600)}.chip-purple{background:#ece9fb;color:#6d4fd0}.chip-gold{background:#fbf2d6;color:#b6890a}.randomlink{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);width:100%;background:transparent;border:1px dashed var(--line);color:var(--muted);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);font-family:var(--font);cursor:pointer;margin:2px 0 var(--sp-4)}.randomlink span{color:var(--brand-600);font-weight:var(--fw-semibold)}.randomlink:active{background:var(--brand-050)}.examdate-label{display:block;font-weight:var(--fw-semibold);font-size:var(--fs-md);color:var(--ink)}.examdate-help{color:var(--muted);font-size:var(--fs-sm);margin:4px 0 0}.examdate-control{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);background:var(--bg-2);transition:border-color .15s ease,box-shadow .15s ease}.examdate-control:focus-within{border-color:var(--brand-600);box-shadow:var(--focus-ring)}.examdate-cal{font-size:1.2rem;flex:none}.examdate-control input[type=date]{flex:1;min-width:0;border:none;background:transparent;font-family:var(--font);font-size:var(--fs-md);color:var(--ink);padding:var(--sp-2) 0}.examdate-control input[type=date]:focus{outline:none}.examdate-clear{flex:none;border:none;background:var(--brand-100);color:var(--brand-700);font-weight:var(--fw-semibold);font-size:var(--fs-sm);border-radius:var(--r-pill);padding:5px 11px;cursor:pointer}.examdate-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-top:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);background:var(--brand-050);border:1px solid var(--brand-100)}.examdate-summary.expired{background:var(--warn-100);border-color:var(--warn-100)}.examdate-summary-text{font-weight:var(--fw-semibold);color:var(--ink);font-size:var(--fs-sm)}.examdate-chip{flex:none;background:var(--brand-600);color:#fff;font-weight:var(--fw-bold);font-size:var(--fs-xs);padding:4px 10px;border-radius:var(--r-pill);white-space:nowrap}.stepper{display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--r-pill);overflow:hidden;flex:none}.stepper button{width:40px;height:38px;border:none;background:var(--bg-2);color:var(--brand-700);font-size:var(--fs-xl);font-weight:var(--fw-bold);cursor:pointer}.stepper button:disabled{opacity:.4;cursor:default}.stepper button:active:not(:disabled){background:var(--brand-100)}.stepper-val{min-width:58px;text-align:center;font-weight:var(--fw-semibold);color:var(--ink);font-size:var(--fs-md)}.weekdays{display:flex;gap:var(--sp-2);flex-wrap:wrap}.weekday{width:40px;height:40px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);color:var(--muted);font-weight:var(--fw-semibold);font-size:var(--fs-sm);cursor:pointer;transition:transform .1s ease,background .12s ease,color .12s ease,border-color .12s ease}.weekday.on{background:var(--brand-600);border-color:var(--brand-600);color:#fff}.weekday:active{transform:scale(.95)}.plan-forecast .forecast-lead{font-size:var(--fs-lg);color:var(--ink);line-height:var(--lh-snug)}.plan-forecast .forecast-lead b{color:var(--brand-700);font-weight:var(--fw-heavy)}.forecast-verdict{border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4)}.forecast-verdict.ok{background:var(--accent-100)}.forecast-verdict.warn{background:var(--warn-100)}.forecast-verdict .verdict-title{font-weight:var(--fw-bold);color:var(--ink);margin-bottom:4px}.forecast-verdict p{font-size:var(--fs-sm);color:var(--ink-2);line-height:var(--lh-snug)}.celebrate-review{margin-top:var(--sp-2)}.hr{height:1px;background:var(--line-2);margin:var(--sp-4) 0;border:0}.mt-1{margin-top:var(--sp-1)}.hero-badge-top{background:#fff;color:var(--brand-700);align-self:flex-start;flex:none}.tabbar{position:fixed;left:50%;transform:translate(-50%);width:100%;max-width:var(--maxw);bottom:0;z-index:30;display:flex;background:#fffffff0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding-bottom:var(--safe-bottom)}.tabbar-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:none;padding:8px 4px 7px;cursor:pointer;color:var(--muted);font-size:var(--fs-2xs);font-weight:var(--fw-medium);font-family:var(--font);transition:color .12s ease}.tabbar-item svg{width:24px;height:24px}.tabbar-item.on{color:var(--brand-600)}.tabbar-item.on span{font-weight:var(--fw-semibold)}.tabbar-item:active{color:var(--brand-700)}.shell--tabbar .container{padding-bottom:calc(64px + var(--safe-bottom) + var(--sp-4))}.esp-chip{display:flex;align-items:center;gap:var(--sp-2);width:100%;margin-top:var(--sp-3);background:#ffffff1f;border:1px solid rgba(255,255,255,.22);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);color:#fff;font-family:var(--font);font-size:var(--fs-sm);cursor:pointer}.esp-chip:active{background:#fff3}.esp-chip-key{background:#fff;color:var(--brand-800);font-weight:var(--fw-heavy);font-size:var(--fs-2xs);border-radius:var(--r-pill);padding:2px 8px;flex:none}.esp-chip-name{flex:1;text-align:left;font-weight:var(--fw-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.esp-chip-go{flex:none;font-weight:var(--fw-semibold);opacity:.85}.esp-grid{display:grid;gap:var(--sp-3);margin:var(--sp-4) 0}.esp-card{display:flex;flex-direction:column;gap:var(--sp-1);text-align:left;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:var(--sp-4);font-family:var(--font);cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease}.esp-card:active{border-color:var(--brand-200)}.esp-card.on{border-color:var(--brand-600);background:var(--brand-050);box-shadow:var(--sh-md)}.esp-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.esp-card-name{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--ink)}.esp-card.on .esp-card-name{color:var(--brand-800)}.esp-card-check{flex:none;width:26px;height:26px;display:grid;place-items:center;border-radius:var(--r-pill);background:var(--brand-600);color:#fff;font-weight:var(--fw-heavy);font-size:var(--fs-sm)}.esp-card-detail{color:var(--ink-2);font-size:var(--fs-sm);line-height:var(--lh-snug)}.esp-card-counts{color:var(--muted);font-size:var(--fs-xs);font-weight:var(--fw-semibold);margin-top:2px}.caso-contexto{border-left:4px solid var(--brand-600)}.caso-label{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--brand-800);font-weight:var(--fw-heavy);margin-bottom:var(--sp-2)}.caso-texto{margin:0;white-space:pre-wrap;color:var(--ink);font-size:var(--fs-md);line-height:var(--lh-normal)}.caso-apartado{margin-bottom:var(--sp-3)}.caso-q{display:flex;gap:var(--sp-3);align-items:flex-start}.caso-qnum{flex:none;width:28px;height:28px;display:grid;place-items:center;border-radius:var(--r-pill);background:var(--brand-100);color:var(--brand-800);font-weight:var(--fw-heavy);font-size:var(--fs-sm)}.caso-qtext{flex:1;font-weight:var(--fw-semibold);color:var(--ink);line-height:var(--lh-snug);padding-top:3px}.caso-solucion{margin-top:var(--sp-3);background:var(--accent-100);border:1px solid #b8ded9;border-left:4px solid var(--accent-600);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4)}.caso-solucion .caso-label{color:var(--accent-700)}.caso-solucion .caso-texto{font-size:var(--fs-sm)}.caso-normas{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-3)}.caso-norma-chip{background:var(--surface);border:1px solid var(--accent-600);color:var(--accent-700);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);border-radius:var(--r-pill);padding:3px 10px}.caso-eval{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--line-2)}.caso-eval-label{display:block;font-size:var(--fs-sm);color:var(--muted);margin-bottom:var(--sp-2)}.caso-eval-btn{flex:1;border:1.5px solid var(--line);background:var(--surface);color:var(--ink-2)}.caso-eval-btn.ok.on{border-color:var(--accent-600);background:var(--accent-100);color:var(--accent-700);font-weight:var(--fw-bold)}.caso-eval-btn.ko.on{border-color:var(--danger-600);background:var(--danger-100);color:var(--danger-700);font-weight:var(--fw-bold)}
