:root{color-scheme:dark;--green: #87c536;--green-strong: #9bd84a;--green-soft: rgba(135, 197, 54, .14);--green-glow: rgba(135, 197, 54, .35);--ink: #0b0d0c;--bg: #111312;--card: #1a1d1b;--card-2: #222623;--field: #0f1110;--line: #2b302c;--text: #ecefe9;--muted: #9aa39b;--ok: #9bd84a;--ok-bg: rgba(135, 197, 54, .15);--warn: #f3c552;--warn-bg: rgba(243, 197, 82, .13);--bad: #ff6f6f;--bad-bg: rgba(255, 111, 111, .13);--info: #74b9ff;--info-bg: rgba(116, 185, 255, .13);--radius: 16px;--tabbar-h: 68px;--font-display: "Oswald", "Arial Narrow", system-ui, sans-serif;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);-webkit-text-size-adjust:100%}*{box-sizing:border-box}html,body{margin:0;background:var(--bg)}body{min-height:100dvh}h1,h2,h3{margin:0 0 12px;line-height:1.2}h1{font-family:var(--font-display);font-weight:600;font-size:1.7rem;letter-spacing:.01em}h2{font-size:1.3rem}h3{font-size:1.05rem}p{margin:0 0 10px}a{color:var(--green-strong)}code{background:var(--card-2);padding:1px 5px;border-radius:4px}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit}::selection{background:var(--green);color:#111}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.right{text-align:right}.pad{padding:12px}.text-bad{color:var(--bad)}.danger{color:var(--bad)!important}.app{min-height:100dvh;padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom))}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:calc(8px + env(safe-area-inset-top)) 16px 8px;background:#111312e0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);box-shadow:0 1px #87c53640}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text)}.brand img{height:38px;width:38px;filter:drop-shadow(0 0 6px var(--green-glow))}.brand span{font-family:var(--font-display);font-weight:600;font-size:1.15rem;letter-spacing:.06em;text-transform:uppercase}.brand b{color:var(--green);font-weight:600}.who{display:flex;flex-direction:column;align-items:flex-end;font-size:.85rem}.who small{color:var(--green-strong)}.content{max-width:720px;margin:0 auto}.page{padding:16px;display:flex;flex-direction:column;gap:14px}.page-head{display:flex;align-items:center;gap:10px}.page-head h1{margin:0;flex:1}.hello{margin-bottom:0}.section-title{margin:6px 4px 0;color:var(--muted);font-size:.9rem;text-transform:uppercase;letter-spacing:.06em}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:10;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--ink);border-top:1px solid var(--line)}.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#8b938c;text-decoration:none;font-size:.72rem}.tabbar a.active{color:var(--green)}.tab-scan .scan-bubble{display:grid;place-items:center;width:56px;height:56px;margin-top:-28px;border-radius:50%;background:var(--green);color:#111;border:4px solid var(--ink);box-shadow:0 0 18px var(--green-glow)}.tabbar a.tab-scan.active{color:var(--green)}.center-screen{min-height:100dvh;display:grid;place-items:center;padding:16px}.card{background:var(--card);border-radius:var(--radius);padding:16px;border:1px solid var(--line)}.card.flush{padding:0;overflow:hidden}.card.narrow{width:100%;max-width:380px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.card-head h3{margin:0}.list{list-style:none;margin:0;padding:0}.list>li+li{border-top:1px solid var(--line)}.list>li.card+li.card{border-top:1px solid var(--line)}.list>li.card{margin-bottom:10px}.row{display:flex;align-items:center;gap:12px;width:100%;padding:11px 14px;background:none;border:0;text-align:left;color:inherit;text-decoration:none}.card:not(.flush) .row{padding-left:0;padding-right:0}a.row:active,button.row:active{background:var(--green-soft)}.row-main{flex:1;min-width:0;display:flex;flex-direction:column}.row-main strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-main small,.row-side small{color:var(--muted)}.row-side{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.row-buttons{display:flex;gap:8px}.time{font-weight:700;font-variant-numeric:tabular-nums;min-width:48px;color:var(--green-strong)}.stack{display:flex;flex-direction:column;gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 16px;border-radius:12px;border:1px solid transparent;font-weight:650;text-decoration:none;text-align:center;transition:transform .08s ease,box-shadow .2s ease,background .2s ease}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.55;cursor:default}.btn-lg{min-height:52px;font-size:1.05rem;width:100%}.btn-sm{min-height:36px;padding:0 12px;font-size:.9rem}.btn-primary{background:var(--green);color:#111;box-shadow:0 6px 20px #87c53638}.btn-dark{background:var(--card-2);color:var(--text);border-color:var(--line)}.btn-danger{background:#d84343;color:#fff}.btn-ghost{background:transparent;color:var(--text);border-color:var(--line)}.icon-btn{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:0;background:transparent;color:var(--text)}.icon-btn:disabled{opacity:.3}.icon-btn.flip svg{transform:scaleX(-1)}.link{background:none;border:0;padding:0;color:var(--green-strong);font-weight:600;text-decoration:underline}.form{display:flex;flex-direction:column;gap:12px}.field{display:flex;flex-direction:column;gap:5px;border:0;padding:0;margin:0}.field>span{font-size:.85rem;font-weight:600;color:var(--muted)}.field input,.field select,.field textarea,.day-nav input,.user-controls select,.plan-row input{width:100%;min-height:44px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--field);color:var(--text)}.field input:disabled{opacity:.7}.field input:focus,.field select:focus,.field textarea:focus,.search:focus-within{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}.check{display:flex;align-items:center;gap:10px;font-weight:600}.check input{width:22px;height:22px;accent-color:var(--green)}.indent{padding-left:14px;border-left:3px solid var(--green);display:flex;flex-direction:column;gap:12px}.photo-field{display:flex;flex-direction:column;align-items:center;gap:8px}.search{display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--field);border:1px solid var(--line);border-radius:12px;color:var(--muted)}.search input{flex:1;border:0;min-height:46px;background:transparent;color:var(--text)}.search input:focus{outline:none}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.chip{flex:none;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--text);font-size:.9rem;font-weight:600}.chip.on{background:var(--green);border-color:var(--green);color:#111}.tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--field);border:1px solid var(--line);border-radius:12px;padding:4px}.tabs button{border:0;background:none;padding:10px;border-radius:9px;font-weight:600;color:var(--muted)}.tabs button.on{background:var(--card-2);color:var(--green)}.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:.75rem;font-weight:700;white-space:nowrap}.tone-ok{background:var(--ok-bg);color:var(--ok)}.tone-warn{background:var(--warn-bg);color:var(--warn)}.tone-bad{background:var(--bad-bg);color:var(--bad)}.tone-info{background:var(--info-bg);color:var(--info)}.tone-muted{background:var(--card-2);color:var(--muted)}.alert{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;border-radius:10px;font-size:.92rem}.alert-bad{background:var(--bad-bg);color:var(--bad)}.alert-warn{background:var(--warn-bg);color:var(--warn)}.alert-info{background:var(--info-bg);color:var(--info)}.link-alert{text-decoration:none;justify-content:space-between}.loading{padding:40px 16px;text-align:center;color:var(--muted)}.loading.big{padding:80px 16px;font-size:1.1rem}.empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;color:var(--muted);text-align:center}.lion-static{filter:drop-shadow(0 0 10px var(--green-glow))}.photo{flex:none;display:grid;place-items:center;overflow:hidden;border-radius:50%;background:var(--card-2);color:var(--green);font-weight:800;border:1px solid var(--line)}.photo img{width:100%;height:100%;object-fit:cover}.login{position:relative;min-height:100dvh;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(24px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom));background:#070807}.login:before{content:"";position:absolute;top:-24px;right:-24px;bottom:-24px;left:-24px;background:url(/login-bg.jpg) center / cover no-repeat;filter:blur(4px) saturate(1.2);transform:scale(1.06);animation:bg-drift 24s ease-in-out infinite alternate}.login:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(70% 45% at 50% 18%,rgba(135,197,54,.18),transparent 70%),linear-gradient(180deg,#07080759,#07080799 55%,#070807d9)}.login-main{position:relative;z-index:1;width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center}.login-main>.mascot{margin-bottom:-26px;z-index:2}.login-card{width:100%;display:flex;flex-direction:column;gap:14px;padding:34px 22px 22px;border-radius:26px;background:linear-gradient(180deg,#222723b8,#101211c7);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border:1px solid rgba(135,197,54,.45);box-shadow:0 0 0 1px #0006,0 0 30px #87c5361f,0 24px 60px #0000008c;animation:fade-up .6s .35s both}.login-logo{align-self:center;width:112px;height:auto;margin-bottom:2px;filter:drop-shadow(0 0 1px rgba(255,255,255,.55)) drop-shadow(0 0 12px rgba(135,197,54,.45))}.login-title,.login-sub{margin:0;text-align:center;font-family:var(--font-display);text-transform:uppercase;color:#fff}.login-title{font-size:1.75rem;font-weight:600;letter-spacing:.02em;line-height:1.1}.login-sub{font-size:1.05rem;font-weight:500;letter-spacing:.04em;margin-top:-8px;color:var(--green-strong)}.pill-field{display:flex;align-items:center;gap:10px;height:56px;padding:0 8px 0 18px;border-radius:999px;background:#00000061;border:1.5px solid rgba(255,255,255,.12);color:var(--green);transition:border-color .2s ease,box-shadow .2s ease}.pill-field:focus-within{border-color:var(--green);box-shadow:0 0 0 3px #87c5362e,0 0 22px #87c53659}.pill-field input{flex:1;min-width:0;height:100%;border:0;background:transparent;color:#fff;font-size:1.05rem}.pill-field input::placeholder{color:#9aa39b}.pill-field input:focus{outline:none}.pill-field .icon-btn{color:var(--muted);width:40px;height:40px}.btn-pill{min-height:56px;border-radius:999px;font-family:var(--font-display);font-size:1.3rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;box-shadow:0 0 24px #87c53659}.login-help{margin:2px 0 0;text-align:center;font-size:.9rem;color:#c9cfc8}.login-help strong{color:var(--green-strong);font-weight:600}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes bg-drift{0%{transform:scale(1.06) translate(-1.5%)}to{transform:scale(1.1) translate(1.5%)}}.quick{display:grid;grid-template-columns:1.4fr 1fr;gap:10px}.quick-btn{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:6px;min-height:96px;padding:14px;border-radius:var(--radius);background:var(--card);color:var(--text);text-decoration:none;font-weight:700;border:1px solid var(--line)}.quick-btn.primary{background:linear-gradient(135deg,#9bd84a,#6fae22);color:#111;border:0;box-shadow:0 8px 26px #87c53647}.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{display:flex;flex-direction:column;padding:14px;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);text-decoration:none;color:var(--text)}.stat strong{font-family:var(--font-display);font-weight:600;font-size:2rem;line-height:1.1}.stat span{font-size:.85rem;color:var(--muted)}.stat.ok strong{color:var(--ok)}.stat.warn strong{color:var(--warn)}.stat.bad strong{color:var(--bad)}.profile{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px}.profile h2{margin:6px 0 0}.badges{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;width:100%;margin:10px 0;text-align:left;font-size:.92rem}.facts dt{color:var(--muted)}.facts dd{margin:0}.warnings{width:100%;display:flex;flex-direction:column;gap:6px;margin-bottom:6px}.periods{list-style:none;margin:0;padding:0}.periods li{display:flex;flex-direction:column;gap:3px;padding:10px 0;border-top:1px solid var(--line)}.periods li:first-child{border-top:0}.period-main{display:flex;justify-content:space-between;align-items:center;gap:8px}.period-actions{display:flex;gap:14px;margin-top:4px;font-size:.9rem}.cancelled{opacity:.5}.qr-box{display:grid;place-items:center;min-height:260px}.qr-box img{width:260px;height:260px;image-rendering:pixelated;border-radius:12px;border:8px solid #fff}.steps{padding-left:20px;display:flex;flex-direction:column;gap:12px}.scan-page h1{margin-bottom:0}.camera{position:relative;width:100%;aspect-ratio:1;border-radius:var(--radius);overflow:hidden;background:#000;border:1px solid var(--line)}.camera video{width:100%;height:100%;object-fit:cover}.camera .frame{position:absolute;top:15%;right:15%;bottom:15%;left:15%;border-radius:18px;border:4px solid var(--green);box-shadow:0 0 0 999px #00000073,0 0 24px var(--green-glow)}.result{border-radius:var(--radius);overflow:hidden;background:var(--card);border:1px solid var(--line)}.result-banner{display:flex;align-items:center;gap:12px;padding:16px;color:#fff}.result-banner div{display:flex;flex-direction:column}.result-banner strong{font-family:var(--font-display);font-weight:600;font-size:1.45rem;text-transform:uppercase;letter-spacing:.02em}.result-ok .result-banner{background:linear-gradient(135deg,#4c9a1c,#2f6f0d)}.result-bad .result-banner{background:linear-gradient(135deg,#d43b3b,#8f1f1f)}.result-body{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:18px 16px 4px}.result-body .photo{border-radius:18px;border:4px solid var(--line)}.result-ok .result-body .photo{border-color:var(--green);box-shadow:0 0 24px var(--green-glow)}.result-body h2{margin:8px 0 0;font-size:1.5rem}.result-body .code{font-weight:700;color:var(--muted)}.result-notes{width:100%;display:flex;flex-direction:column;gap:6px;text-align:left}.result-actions{display:flex;flex-direction:column;gap:8px;padding:16px}.done{display:flex;flex-direction:column;gap:12px}.picker{display:flex;flex-direction:column;gap:10px}.picker .list{background:var(--card);border-radius:var(--radius);border:1px solid var(--line)}.day-nav{display:grid;grid-template-columns:40px 1fr 40px;gap:8px;align-items:center}.user-row{display:flex;flex-direction:column;gap:8px;padding:12px 0}.user-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.user-controls select{width:auto;min-height:36px;padding:4px 8px}.plan-row{display:flex;align-items:center;gap:8px;padding:8px 0;flex-wrap:wrap}.plan-row .grow{flex:1;min-width:120px}.plan-row label{display:flex;align-items:center;gap:4px;color:var(--muted)}.plan-row label input{width:64px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0009;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:560px;max-height:92dvh;overflow-y:auto;background:var(--card);border-radius:22px 22px 0 0;border:1px solid var(--line);border-bottom:0;padding:8px 16px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px;animation:up .18s ease-out}.sheet-head{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--card);padding-top:8px}.sheet-head h3{margin:0}@keyframes up{0%{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}.mascot{--mascot: url(/mascota-leon.png);--face: radial-gradient(ellipse 31% 35% at 50% 46%, #000 88%, transparent 100%);--mane: radial-gradient(ellipse 31% 35% at 50% 46%, transparent 70%, #000 88%);position:relative;width:var(--size);height:var(--size);animation:mascot-enter .9s cubic-bezier(.2,1.5,.45,1) both}.mascot-body{position:absolute;top:0;right:0;bottom:0;left:0;transition:transform .35s ease}.mascot-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-webkit-user-select:none;user-select:none}.mascot-mane{-webkit-mask-image:var(--mane);mask-image:var(--mane);transform-origin:50% 46%;animation:mane-breathe 4s ease-in-out infinite}.mascot-face{-webkit-mask-image:var(--face);mask-image:var(--face);animation:face-float 4s ease-in-out -.6s infinite}.mascot-lid{fill:var(--green);transform-box:fill-box;transform-origin:50% 0;transform:scaleY(0);animation:lid-blink 7s ease-in-out 1.5s infinite}.mascot-shine{-webkit-mask:var(--mascot) center / 100% 100% no-repeat;mask:var(--mascot) center / 100% 100% no-repeat;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.9) 50%,transparent 62%) 160% 0 / 300% 100% no-repeat;animation:mascot-shine 6.5s ease-in-out 1.2s infinite}.mascot-aura{position:absolute;top:10%;right:10%;bottom:10%;left:10%;border-radius:50%;background:radial-gradient(circle,rgba(135,197,54,.55),transparent 68%);filter:blur(16px);animation:aura-pulse 4s ease-in-out infinite}.mascot-ring{position:absolute;top:6%;right:6%;bottom:6%;left:6%;border-radius:50%;border:3px solid var(--green);opacity:0;pointer-events:none}.mascot.is-shy .mascot-lid{animation:lid-close .22s ease-out forwards}.mascot.is-shy .mascot-body{transform:translateY(4px) rotate(-4deg) scale(.97)}.mascot.is-roar .mascot-body{animation:mascot-roar .9s cubic-bezier(.3,1.4,.5,1) forwards}.mascot.is-roar .mascot-aura{animation:aura-flare .9s ease-out forwards}.mascot.is-roar .mascot-ring{animation:roar-ring .85s ease-out forwards}.mascot.is-roar .mascot-ring.r2{animation-delay:.16s}.mascot.is-roar .mascot-shine{animation:mascot-shine .7s ease-out forwards}.mascot.is-no .mascot-body{animation:mascot-no .55s ease-in-out}@keyframes mascot-enter{0%{opacity:0;transform:translateY(36px) scale(.55) rotate(-8deg)}to{opacity:1;transform:none}}@keyframes mane-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.035) translateY(-1px)}}@keyframes face-float{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes lid-blink{0%,44%,50%,86%,89.5%,93%,to{transform:scaleY(0)}47%{transform:scaleY(1)}87.8%,91.3%{transform:scaleY(1)}}@keyframes lid-close{to{transform:scaleY(1)}}@keyframes mascot-shine{0%,72%{background-position:160% 0}to{background-position:-60% 0}}@keyframes aura-pulse{0%,to{opacity:.45;transform:scale(.92)}50%{opacity:.85;transform:scale(1.08)}}@keyframes aura-flare{0%{opacity:.8;transform:scale(1)}35%{opacity:1;transform:scale(1.5)}to{opacity:.7;transform:scale(1.2)}}@keyframes roar-ring{0%{opacity:.9;transform:scale(.7)}to{opacity:0;transform:scale(2.1)}}@keyframes mascot-roar{0%{transform:scale(1)}22%{transform:scale(1.2) rotate(-5deg)}36%{transform:scale(1.18) rotate(5deg)}50%{transform:scale(1.19) rotate(-3deg)}64%{transform:scale(1.17) rotate(2deg)}to{transform:scale(1.12)}}@keyframes mascot-no{0%,to{transform:translate(0)}18%{transform:translate(-12px) rotate(-4deg)}38%{transform:translate(10px) rotate(3deg)}58%{transform:translate(-7px) rotate(-2deg)}78%{transform:translate(4px)}}@media (prefers-reduced-motion: reduce){.mascot,.mascot *,.login:before,.login-card{animation:none!important;transition:none!important}.mascot.is-shy .mascot-lid{transform:scaleY(1)}}@media (min-width: 720px){.stats{grid-template-columns:repeat(4,1fr)}.sheet-backdrop{align-items:center}.sheet{border-radius:22px;border-bottom:1px solid var(--line)}}
