:root,[data-theme=classico]{--bg: #fbf7f2;--card: #ffffff;--line: #ece4d9;--ink: #26302e;--muted: #7b8582;--pri: #1f7a6d;--onpri: #ffffff;--tint1: #dff0ec;--ontint1: #14564c;--hl: #f6e3a8;--onhl: #5a4510;--dark: #23312f;--ondark: #ffffff;--chip: #f1ebe2;--av1: #1f7a6d;--onav1: #ffffff;--av2: #e9a23b;--onav2: #3a2808;--nav: #ffffff;--warn: #fde4dc;--onwarn: #8a2f17;--fh: "Bricolage Grotesque", "DM Sans", system-ui, sans-serif;--fb: "DM Sans", system-ui, sans-serif;--hw: 700;--hcase: none;--rad: 18px;--rbtn: 14px}[data-theme=ragazze]{--bg: #fff3f6;--card: #ffffff;--line: #f8d9e3;--ink: #4a2433;--muted: #a1768a;--pri: #e0517f;--onpri: #ffffff;--tint1: #ffe0ea;--ontint1: #a02b55;--hl: #e9dcff;--onhl: #5a3a9a;--dark: #6b2a47;--ondark: #ffffff;--chip: #ffe9f0;--av1: #e0517f;--onav1: #ffffff;--av2: #b79cf2;--onav2: #2f1a63;--nav: #ffffff;--warn: #ffe3d6;--onwarn: #9a3512;--fh: "Quicksand", "Nunito", system-ui, sans-serif;--fb: "Nunito", system-ui, sans-serif;--hw: 700;--hcase: none;--rad: 26px;--rbtn: 999px}[data-theme=uomo]{--bg: #14181f;--card: #1d232d;--line: #2b3340;--ink: #e8edf4;--muted: #8a96a8;--pri: #3b82f6;--onpri: #ffffff;--tint1: #1b2f52;--ontint1: #9cc2ff;--hl: #4a3510;--onhl: #fbbf5c;--dark: #0b0e13;--ondark: #e8edf4;--chip: #262e3a;--av1: #3b82f6;--onav1: #ffffff;--av2: #f59e0b;--onav2: #1c1300;--nav: #1d232d;--warn: #4a1f18;--onwarn: #ffb4a3;--fh: "Barlow Condensed", "Barlow", system-ui, sans-serif;--fb: "Barlow", system-ui, sans-serif;--hw: 700;--hcase: uppercase;--rad: 8px;--rbtn: 6px}[data-theme=magia]{--bg: #f1e6cf;--card: #f8f0de;--line: #d6c398;--ink: #2f1a14;--muted: #7d6a4a;--pri: #7a1f2b;--onpri: #f8ecd0;--tint1: #e8d5a8;--ontint1: #5a1620;--hl: #1f3b5c;--onhl: #f2dd9a;--dark: #2a1a2f;--ondark: #f2dd9a;--chip: #e8d9b6;--av1: #7a1f2b;--onav1: #f8ecd0;--av2: #c9a227;--onav2: #2a1a02;--nav: #ead9b0;--warn: #f0c9b8;--onwarn: #6a1d10;--fh: "Cinzel", "Lora", Georgia, serif;--fb: "Lora", Georgia, serif;--hw: 700;--hcase: none;--rad: 10px;--rbtn: 8px}[data-theme=fantasy]{--bg: #1b2218;--card: #252e21;--line: #3a4733;--ink: #ece4cf;--muted: #a3a98f;--pri: #5e8c4a;--onpri: #fdf8e8;--tint1: #2f4228;--ontint1: #bfe0a8;--hl: #4b3b1c;--onhl: #e8c982;--dark: #10150e;--ondark: #e8c982;--chip: #2e3829;--av1: #5e8c4a;--onav1: #fdf8e8;--av2: #c8a15a;--onav2: #261b05;--nav: #252e21;--warn: #4a2a1a;--onwarn: #f3b896;--fh: "IM Fell English SC", "Alegreya Sans", Georgia, serif;--fb: "Alegreya Sans", Georgia, serif;--hw: 400;--hcase: none;--rad: 6px;--rbtn: 4px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}:root{--sh: 0 1px 2px rgba(20, 30, 28, .05), 0 12px 28px -16px rgba(20, 30, 28, .28);--sh-lg: 0 2px 4px rgba(20, 30, 28, .06), 0 24px 48px -20px rgba(20, 30, 28, .4);--ease: cubic-bezier(.22, 1, .36, 1)}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--fb);font-size:16px;line-height:1.4;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}h1,h2,h3{font-family:var(--fh);font-weight:var(--hw);text-transform:var(--hcase);margin:0;letter-spacing:.005em}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--pri)}button{touch-action:manipulation}button:active:not(:disabled){transform:scale(.97)}.shell{max-width:520px;margin:0 auto;min-height:100%;display:flex;flex-direction:column}.page{flex:1;padding:20px 16px 130px}.page>*{animation:rise .45s var(--ease) both}.page>*:nth-child(2){animation-delay:.04s}.page>*:nth-child(3){animation-delay:.08s}.page>*:nth-child(4){animation-delay:.12s}.page>*:nth-child(5){animation-delay:.16s}.page>*:nth-child(n+6){animation-delay:.2s}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes pop{0%{transform:scale(.6)}60%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes sheet{0%{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.nav{position:fixed;left:0;right:0;bottom:0;z-index:30;padding:0 12px calc(10px + env(safe-area-inset-bottom));pointer-events:none}.nav-in{max-width:496px;margin:0 auto;display:flex;gap:2px;padding:6px;pointer-events:auto;background:color-mix(in srgb,var(--nav) 88%,transparent);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border:1px solid var(--line);border-radius:26px;box-shadow:var(--sh-lg)}.nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 0 6px;text-decoration:none;color:var(--muted);font-size:10.5px;font-weight:700;position:relative;border-radius:20px;transition:background .2s,color .2s}.nav a.active{color:var(--pri);background:var(--tint1)}.nav .ico{font-size:21px;line-height:1.1;transition:transform .25s var(--ease)}.nav a.active .ico{transform:translateY(-1px) scale(1.12)}.fab{position:fixed;right:max(16px,calc(50% - 244px));bottom:calc(88px + env(safe-area-inset-bottom));z-index:31;width:56px;height:56px;border-radius:20px;border:0;cursor:pointer;font-size:30px;line-height:1;font-weight:300;background:var(--pri);color:var(--onpri);box-shadow:0 10px 24px -6px color-mix(in srgb,var(--pri) 70%,transparent),var(--sh);display:grid;place-items:center;transition:transform .25s var(--ease)}.fab.open{transform:rotate(45deg)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#0a100e73;animation:fade .2s both;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:520px;background:var(--card);border-radius:28px 28px 0 0;padding:10px 18px calc(24px + env(safe-area-inset-bottom));animation:sheet .3s var(--ease) both;box-shadow:var(--sh-lg);max-height:88vh;overflow:auto}.sheet .grab{width:40px;height:4px;border-radius:4px;background:var(--line);margin:0 auto 14px}.qa-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.qa{border:0;background:var(--chip);border-radius:20px;padding:14px 6px 11px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;font-weight:700;font-size:12.5px;text-decoration:none;color:var(--ink);text-align:center}.qa .e{font-size:26px;width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:var(--card)}.head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.head h1{font-size:28px;line-height:1.1}.sub{color:var(--muted);font-size:14px;margin-top:2px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:16px;margin-bottom:12px;box-shadow:var(--sh)}.card.tint{background:var(--tint1);color:var(--ontint1);border-color:transparent;box-shadow:none}.card.hl{background:var(--hl);color:var(--onhl);border-color:transparent;box-shadow:none}.card.dark{background:var(--dark);color:var(--ondark);border-color:transparent}.card.warn{background:var(--warn);color:var(--onwarn);border-color:transparent;box-shadow:none}.card h2{font-size:18px;margin-bottom:8px}.card.flat{box-shadow:none}a>.card,.tap{transition:transform .2s var(--ease),box-shadow .2s}a:active>.card{transform:scale(.985)}.hero{position:relative;overflow:hidden;color:var(--onpri);border:0;border-radius:calc(var(--rad) + 6px);padding:20px;margin-bottom:12px;background:linear-gradient(135deg,var(--pri),color-mix(in srgb,var(--pri) 55%,var(--dark)));box-shadow:0 18px 36px -18px color-mix(in srgb,var(--pri) 80%,transparent)}.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;background:#ffffff17;pointer-events:none}.hero:before{width:190px;height:190px;right:-50px;top:-70px}.hero:after{width:120px;height:120px;right:60px;bottom:-70px}.hero>*{position:relative;z-index:1}.hero .small{opacity:.85}.hero a{color:inherit}.row{display:flex;align-items:center;gap:10px}.row.between{justify-content:space-between}.grow{flex:1;min-width:0}.muted{color:var(--muted)}.small{font-size:13px}.big{font-family:var(--fh);font-weight:var(--hw);font-size:36px;line-height:1.05;letter-spacing:-.01em}.stack>*+*{margin-top:10px}.sep{height:1px;background:var(--line);margin:12px 0}.sec{display:flex;align-items:baseline;justify-content:space-between;margin:20px 2px 8px}.sec h2{font-size:18px}.sec a,.sec button{font-size:13px;font-weight:700}.ibub{width:40px;height:40px;flex:none;border-radius:14px;display:grid;place-items:center;font-size:20px;background:var(--tint1)}.ibub.sm{width:32px;height:32px;border-radius:11px;font-size:16px}.btn{border:0;cursor:pointer;background:var(--pri);color:var(--onpri);font-weight:700;padding:12px 18px;border-radius:var(--rbtn);font-size:15px;transition:transform .15s,opacity .15s,box-shadow .2s;box-shadow:0 6px 14px -8px color-mix(in srgb,var(--pri) 80%,transparent)}.btn:disabled{opacity:.45;cursor:default;box-shadow:none}.btn.ghost{background:var(--chip);color:var(--ink);box-shadow:none}.btn.danger{background:var(--warn);color:var(--onwarn);box-shadow:none}.btn.block{width:100%}.btn.sm{padding:7px 13px;font-size:13px}.icon-btn{border:0;background:var(--chip);color:var(--ink);width:38px;height:38px;border-radius:999px;cursor:pointer;font-size:16px;display:inline-grid;place-items:center}.input,.select,.textarea{width:100%;background:var(--card);color:var(--ink);border:1.5px solid var(--line);border-radius:calc(var(--rbtn) * .85);padding:12px 14px;outline:none;transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus,.textarea:focus{border-color:var(--pri);box-shadow:0 0 0 4px color-mix(in srgb,var(--pri) 16%,transparent)}.field{display:block;margin-bottom:12px}.field>span{display:block;font-size:12.5px;font-weight:700;margin-bottom:5px;color:var(--muted);letter-spacing:.02em}.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{border:1.5px solid transparent;background:var(--chip);color:var(--ink);padding:7px 13px;border-radius:999px;font-size:13px;font-weight:700;cursor:pointer;transition:all .15s}.chip.on{background:var(--pri);color:var(--onpri)}.chips.scroll{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px;padding:2px 16px 6px;scrollbar-width:none}.chips.scroll::-webkit-scrollbar{display:none}.chips.scroll .chip{flex:none}.badge{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--chip);font-size:12px;font-weight:700}.badge.ok{background:var(--tint1);color:var(--ontint1)}.badge.bad{background:var(--warn);color:var(--onwarn)}.avatar{width:32px;height:32px;border-radius:999px;display:inline-grid;place-items:center;font-weight:700;font-size:13px;flex:none;background:var(--av1);color:var(--onav1);border:2px solid var(--card)}.avatar.b{background:var(--av2);color:var(--onav2)}.avatars{display:flex}.avatars .avatar+.avatar{margin-left:-8px}.empty{text-align:center;color:var(--muted);padding:30px 14px}.empty>div:first-child{font-size:40px;margin-bottom:4px}.error{color:var(--onwarn);background:var(--warn);padding:10px 13px;border-radius:12px;font-size:14px;margin-bottom:10px}.toast-ok{background:var(--tint1);color:var(--ontint1);padding:10px 13px;border-radius:12px;font-size:14px;margin-bottom:10px}.list-item{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.list-item:last-child{border-bottom:0}.check{width:28px;height:28px;border-radius:999px;border:2px solid color-mix(in srgb,var(--muted) 45%,var(--line));background:transparent;cursor:pointer;flex:none;display:grid;place-items:center;color:var(--onpri);font-size:14px;padding:0;transition:background .15s,border-color .15s}.check.on{background:var(--pri);border-color:var(--pri);animation:pop .3s var(--ease)}.done-text{text-decoration:line-through;color:var(--muted)}.cat-title{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:16px 2px 6px}.add-bar{display:flex;gap:8px;margin-bottom:12px}.monthbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;text-transform:capitalize;font-weight:700;font-family:var(--fh);font-size:18px}.segmented{display:flex;background:var(--chip);border-radius:999px;padding:4px;margin-bottom:14px}.segmented button{flex:1;border:0;background:transparent;padding:9px 6px;border-radius:999px;font-weight:700;cursor:pointer;color:var(--muted);font-size:14px;transition:all .2s}.segmented button.on{background:var(--card);color:var(--ink);box-shadow:var(--sh)}.bar{height:10px;background:var(--chip);border-radius:99px;overflow:hidden;display:flex}.bar>i{display:block;height:100%;border-radius:99px;transition:width .6s var(--ease)}.bar.thin{height:6px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:14px;box-shadow:var(--sh);text-decoration:none;color:var(--ink);display:block}.stat .k{font-size:12px;font-weight:700;color:var(--muted);display:flex;align-items:center;gap:6px}.stat .v{font-family:var(--fh);font-weight:var(--hw);font-size:23px;margin-top:4px;line-height:1.1}.stat .d{font-size:12px;color:var(--muted);margin-top:2px}.tiles-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}.tile-link{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:14px;box-shadow:var(--sh);text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:8px;min-height:104px;position:relative}.tile-link b{font-family:var(--fh);font-size:16px}.tile-link .small{color:var(--muted);line-height:1.25}.tile-link.wide{grid-column:span 2;flex-direction:row;align-items:center;min-height:0}.ring-wrap{position:relative;display:inline-grid;place-items:center}.ring-wrap>.in{position:absolute;text-align:center;line-height:1.1}.legend{display:flex;flex-direction:column;gap:7px;font-size:13px;flex:1;min-width:0}.legend>div{display:flex;align-items:center;gap:8px}.legend i{width:10px;height:10px;border-radius:4px;flex:none}.pill-row{display:flex;gap:6px;margin:0 0 12px;padding:2px 0 6px}.pill-row::-webkit-scrollbar{display:none}.daypill{flex:1;min-width:0;padding:8px 0;border-radius:18px;background:var(--card);border:1px solid var(--line);text-align:center;cursor:pointer;font-weight:700;position:relative}.daypill small{display:block;font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase}.daypill.on{background:var(--pri);color:var(--onpri);border-color:transparent}.daypill.on small{color:inherit;opacity:.85}.daypill .dot{position:absolute;bottom:4px;left:50%;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--pri)}.daypill.on .dot{background:var(--onpri)}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.cal .dow{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;padding:4px 0}.cal button{aspect-ratio:1;border:0;background:transparent;border-radius:14px;font-weight:600;cursor:pointer;position:relative;display:grid;place-items:center;font-size:14px}.cal button.out{color:var(--muted);opacity:.5}.cal button.today{box-shadow:inset 0 0 0 2px var(--pri)}.cal button.on{background:var(--pri);color:var(--onpri)}.cal button .dots{position:absolute;bottom:4px;display:flex;gap:2px}.cal button .dots i{width:4px;height:4px;border-radius:50%;background:var(--pri)}.cal button.on .dots i{background:var(--onpri)}.note{border-radius:var(--rad);padding:14px;min-height:96px;position:relative;box-shadow:var(--sh);white-space:pre-wrap;word-break:break-word;color:#3a3320}.note .by{font-size:11px;opacity:.7;margin-top:8px;font-weight:700}.note .x{position:absolute;top:6px;right:6px;border:0;background:#00000014;width:26px;height:26px;border-radius:50%;cursor:pointer;font-size:13px}.notes-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.chart-bars{display:flex;align-items:flex-end;gap:6px;height:120px}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:60;overflow:hidden}.confetti i{position:absolute;top:-12px;width:9px;height:14px;border-radius:2px;animation:fall 1.4s ease-in forwards}@keyframes fall{to{transform:translateY(105vh) rotate(540deg);opacity:.9}}.center-page{min-height:100%;display:flex;flex-direction:column;justify-content:center;padding:24px 22px;max-width:420px;margin:0 auto}.center-page h1{font-size:34px;margin-bottom:6px}.logo{font-size:56px;margin-bottom:10px;filter:drop-shadow(0 10px 14px rgba(0,0,0,.12))}.code-input{text-align:center;letter-spacing:.4em;font-size:24px;font-weight:700}.theme-card{display:flex;align-items:center;gap:12px;padding:12px;border:2px solid var(--line);border-radius:var(--rad);background:var(--card);width:100%;text-align:left;cursor:pointer;margin-bottom:10px;box-shadow:var(--sh)}.theme-card.on{border-color:var(--pri)}.swatch{display:flex;flex:none}.swatch i{width:22px;height:44px;display:block}.swatch i:first-child{border-radius:10px 0 0 10px;border:1px solid rgba(128,128,128,.35)}.swatch i:last-child{border-radius:0 10px 10px 0}.game-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.game-tile{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:14px;text-align:left;cursor:pointer}.game-tile .gi{font-size:30px}.game-tile b{display:block;font-family:var(--fh);margin-top:4px}.game-tile span{font-size:12px;color:var(--muted)}.board{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:300px;margin:14px auto}.cell{aspect-ratio:1;border-radius:var(--rad);border:2px solid var(--line);background:var(--card);font-size:40px;font-family:var(--fh);font-weight:700;color:var(--pri);cursor:pointer}.cell:disabled{cursor:default}.cell.win{background:var(--tint1)}.tiles{display:flex;gap:6px;justify-content:center;margin:6px 0}.tile{width:40px;height:48px;border-radius:10px;display:grid;place-items:center;font-weight:700;font-size:22px;text-transform:uppercase;background:var(--chip)}.tile.hit{background:var(--pri);color:var(--onpri)}.tile.near{background:var(--hl);color:var(--onhl)}.tile.miss{background:var(--line);color:var(--muted)}.progress-pill{background:var(--chip);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.link-btn{background:none;border:0;color:var(--pri);font-weight:700;cursor:pointer;padding:0}.c4{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;background:var(--pri);padding:8px;border-radius:var(--rad);max-width:380px;margin:14px auto}.c4 button{background:none;border:0;padding:0;display:grid;gap:5px;cursor:pointer}.c4 button:disabled{cursor:default}.c4 i{display:block;aspect-ratio:1;border-radius:999px;background:var(--bg)}.c4 i.p0{background:var(--av1);box-shadow:inset 0 0 0 3px var(--bg)}.c4 i.p1{background:var(--av2)}.c4 i.win{outline:3px solid var(--ondark);outline-offset:-3px}
