:root{--primitive-color-void: #03050B;--primitive-color-abyss: #070C18;--primitive-color-navy-800: #0B1426;--primitive-color-navy-700: #111D36;--primitive-color-navy-600: #1A2A4A;--primitive-color-blue-500: #3B74BD;--primitive-color-blue-400: #4DA3FF;--primitive-color-cyan-200: #A8DDFF;--primitive-color-white: #F2F7FF;--primitive-color-ice-200: #C9D8EE;--primitive-color-slate-400: #8195B3;--primitive-color-green-400: #5FE3B0;--primitive-color-amber-400: #FFB547;--primitive-color-red-400: #FF4F64;--primitive-color-red-950: #14040A;--primitive-color-gold-300: #F4D27A;--primitive-font-sans: "Inter", system-ui, -apple-system, sans-serif;--primitive-font-mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace;--primitive-font-arabic: "Noto Naskh Arabic", "Geeza Pro", serif;--primitive-font-quran: "Amiri Quran", "Noto Naskh Arabic", serif;--primitive-fontSize-2xs: .6875rem;--primitive-fontSize-xs: .75rem;--primitive-fontSize-sm: .875rem;--primitive-fontSize-base: 1rem;--primitive-fontSize-lg: 1.125rem;--primitive-fontSize-xl: 1.5rem;--primitive-fontSize-2xl: 2rem;--primitive-fontSize-3xl: 2.75rem;--primitive-fontSize-4xl: 4rem;--primitive-fontSize-arabic: 1.375rem;--primitive-tracking-tight: -.02em;--primitive-tracking-label: .14em;--primitive-tracking-title: .32em;--primitive-spacing-1: 4px;--primitive-spacing-2: 8px;--primitive-spacing-3: 12px;--primitive-spacing-4: 16px;--primitive-spacing-5: 20px;--primitive-spacing-6: 24px;--primitive-spacing-8: 32px;--primitive-spacing-12: 48px;--primitive-radius-none: 0;--primitive-radius-sm: 2px;--primitive-duration-press: 80ms;--primitive-duration-fast: .14s;--primitive-duration-normal: .22s;--primitive-duration-slow: .32s;--primitive-duration-decode: .45s;--primitive-duration-count: .7s;--primitive-duration-epic: 1.4s}:root{--color-background: #03050B;--color-surface: #070C18;--color-panel: #0B1426;--color-panel-raised: #111D36;--color-foreground: #F2F7FF;--color-secondary-foreground: #C9D8EE;--color-muted-foreground: #8195B3;--color-primary: #4DA3FF;--color-primary-foreground: #03050B;--color-glow: #A8DDFF;--color-border: #3B74BD;--color-divider: #1A2A4A;--color-ring: #A8DDFF;--color-success: #5FE3B0;--color-warning: #FFB547;--color-danger: #FF4F64;--color-penalty-bg: #14040A;--color-reward: #F4D27A;--color-rank-s: #F4D27A;--font-heading: "Inter", system-ui, -apple-system, sans-serif;--font-body: "Inter", system-ui, -apple-system, sans-serif;--font-data: "JetBrains Mono", ui-monospace, "SF Mono", monospace;--font-arabic: "Noto Naskh Arabic", "Geeza Pro", serif;--font-quran: "Amiri Quran", "Noto Naskh Arabic", serif;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-snap: cubic-bezier(.2, 0, 0, 1)}:root{--window-bg: linear-gradient(180deg, rgba(22, 44, 86, .55) 0%, rgba(9, 16, 32, .82) 38%, rgba(6, 10, 22, .9) 100%);--window-border: rgba(120, 175, 255, .28);--window-highlight: linear-gradient(90deg, transparent, rgba(168, 221, 255, .85), transparent);--window-shadow: 0 24px 60px -28px rgba(77, 163, 255, .45), 0 0 0 1px rgba(3, 5, 11, .6);--window-padding: 20px;--window-tick: 8px;--button-bg: rgba(77, 163, 255, .06);--button-fg: #F2F7FF;--button-border: rgba(120, 175, 255, .45);--button-active-bg: rgba(77, 163, 255, .18);--button-min-height: 48px;--quest-row-min-height: 56px;--quest-check-size: 22px;--bar-height: 4px;--bar-track: rgba(120, 175, 255, .12);--bar-xp: linear-gradient(90deg, #3B74BD, #4DA3FF 70%, #A8DDFF);--tabbar-height: 64px;--tabbar-bg: rgba(3, 5, 11, .86)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;background:var(--color-background)}body{background:var(--color-background);color:var(--color-foreground);font-family:var(--font-body);font-size:var(--primitive-fontSize-base);line-height:1.5;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;min-height:100dvh;overflow-x:hidden;overscroll-behavior-y:none}button,input,select{font:inherit;color:inherit}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:-1;background:radial-gradient(120% 60% at 50% -10%,rgba(77,163,255,.16),transparent 60%),radial-gradient(80% 40% at 50% 110%,rgba(59,116,189,.1),transparent 70%)}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:-1;opacity:.5;background-image:linear-gradient(rgba(120,175,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(120,175,255,.035) 1px,transparent 1px);background-size:32px 32px;-webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 80%);mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 80%)}body.zone:before{background:radial-gradient(120% 60% at 50% -10%,rgba(255,79,100,.18),transparent 60%)}.app{padding:calc(env(safe-area-inset-top) + 14px) 16px calc(var(--tabbar-height) + env(safe-area-inset-bottom) + 28px)}.stack{display:flex;flex-direction:column;gap:14px;max-width:480px;margin:0 auto}.topbar{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-data);font-size:var(--primitive-fontSize-2xs);letter-spacing:var(--primitive-tracking-label);color:var(--color-muted-foreground);text-transform:uppercase;padding:0 2px 2px;min-height:28px}.topbar .live{display:flex;align-items:center;gap:6px}.topbar .live i{width:5px;height:5px;background:var(--color-success);box-shadow:0 0 6px var(--color-success)}.zone .topbar .live i{background:var(--color-danger);box-shadow:0 0 6px var(--color-danger)}.page-title{font-size:var(--primitive-fontSize-2xs);font-weight:500;letter-spacing:var(--primitive-tracking-title);color:var(--color-secondary-foreground);text-transform:uppercase;padding:2px}.back{display:inline-flex;align-items:center;gap:6px;min-height:44px;background:none;border:0;color:var(--color-secondary-foreground);font-size:var(--primitive-fontSize-2xs);letter-spacing:var(--primitive-tracking-title);text-transform:uppercase;cursor:pointer}.back svg{width:16px;height:16px}.window{position:relative;background:var(--window-bg);border:1px solid var(--window-border);box-shadow:var(--window-shadow);padding:var(--window-padding);animation:win-in var(--primitive-duration-slow) var(--ease-out) both;animation-delay:calc(var(--w,0) * 60ms)}.window>.hl{position:absolute;left:0;right:0;top:-1px;height:1px;background:var(--window-highlight);transform:scaleX(0);animation:line-in .42s var(--ease-out) forwards;animation-delay:calc(40ms + var(--w,0) * 60ms)}.window>.tk{position:absolute;width:var(--window-tick);height:var(--window-tick);border-color:var(--color-glow);border-style:solid;opacity:.8}.tk.tl{top:-1px;left:-1px;border-width:1px 0 0 1px}.tk.br{bottom:-1px;right:-1px;border-width:0 1px 1px 0}.window .rv{animation:rise var(--primitive-duration-normal) var(--ease-out) both;animation-delay:calc(.12s + var(--w,0) * 60ms + var(--i,0) * 35ms)}.window.danger{--window-border:rgba(255,79,100,.5);background:linear-gradient(180deg,#5a0e1c73,#14040ae6)}.window.danger>.tk{border-color:var(--color-danger)}.window.danger .wt{color:var(--color-danger)}.wt{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:var(--primitive-fontSize-2xs);font-weight:500;letter-spacing:var(--primitive-tracking-title);text-transform:uppercase;color:var(--color-secondary-foreground);margin-bottom:14px}.wt .meta{font-family:var(--font-data);letter-spacing:var(--primitive-tracking-label);color:var(--color-muted-foreground);white-space:nowrap}@keyframes win-in{0%{opacity:0;transform:translateY(10px)}12%{opacity:.7}18%{opacity:.25}30%{opacity:1}to{opacity:1;transform:none}}@keyframes line-in{to{transform:scaleX(1)}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.mono{font-family:var(--font-data);letter-spacing:.06em}.muted{color:var(--color-muted-foreground)}.small{font-size:var(--primitive-fontSize-xs)}.label{font-family:var(--font-data);font-size:var(--primitive-fontSize-2xs);letter-spacing:var(--primitive-tracking-label);color:var(--color-muted-foreground);text-transform:uppercase}.gold{color:var(--color-reward)}.ok{color:var(--color-success)}.warn{color:var(--color-warning)}.bad{color:var(--color-danger)}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.divider{height:1px;background:var(--color-divider);margin:12px 0}.hero{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:end}.lvl{line-height:.85}.lvl small{display:block;font-family:var(--font-data);font-size:var(--primitive-fontSize-2xs);letter-spacing:var(--primitive-tracking-label);color:var(--color-muted-foreground);margin-bottom:6px}.lvl b{font-weight:200;font-size:var(--primitive-fontSize-4xl);letter-spacing:var(--primitive-tracking-tight);font-variant-numeric:tabular-nums}.who{display:grid;gap:3px;padding-bottom:4px;min-width:0}.who .name{font-size:var(--primitive-fontSize-lg);font-weight:500}.who .title{font-size:var(--primitive-fontSize-xs);color:var(--color-secondary-foreground)}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;font-family:var(--font-data);font-size:var(--primitive-fontSize-2xs);letter-spacing:var(--primitive-tracking-label);color:var(--color-muted-foreground)}.tags span{border:1px solid var(--color-divider);padding:2px 6px}.tags .hi{color:var(--color-foreground);border-color:var(--window-border)}.tags .rank-S{color:var(--color-reward);border-color:var(--color-reward)}.xp-row{display:flex;justify-content:space-between;font-family:var(--font-data);font-size:var(--primitive-fontSize-2xs);letter-spacing:var(--primitive-tracking-label);color:var(--color-muted-foreground);margin-bottom:8px}.xp-row b{color:var(--color-foreground);font-weight:500}.track{position:relative;height:var(--bar-height);background:var(--bar-track);overflow:hidden}.fill{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bar-xp);transform-origin:left;transform:scaleX(0);transition:transform .7s var(--ease-out)}.fill:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:30%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.9),transparent);transform:translate(-120%)}.fill.shine:after{animation:shine .7s var(--ease-out)}@keyframes shine{to{transform:translate(420%)}}.fill.hp{background:linear-gradient(90deg,#8a2a3a,var(--color-danger))}.fill.mp{background:linear-gradient(90deg,#3B74BD,var(--color-glow))}.fill.ok{background:linear-gradient(90deg,#2d8a68,var(--color-success))}.mini{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:14px}.mini .xp-row{margin-bottom:6px}.stats{margin-top:18px;border-top:1px solid var(--color-divider)}.stat{display:grid;grid-template-columns:44px 1fr auto 44px;align-items:center;gap:10px;min-height:46px;border-bottom:1px solid var(--color-divider)}.stat .k{font-family:var(--font-data);font-size:var(--primitive-fontSize-xs);font-weight:500;letter-spacing:var(--primitive-tracking-label);color:var(--color-glow)}.stat .bar{height:2px;background:var(--bar-track);position:relative}.stat .bar i{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-secondary-foreground);opacity:.55;transform-origin:left;transition:transform .9s var(--ease-out)}.stat .v{font-weight:300;font-size:var(--primitive-fontSize-xl);font-variant-numeric:tabular-nums;text-align:right;min-width:2ch}.plus{width:44px;height:44px;display:grid;place-items:center;background:none;border:1px solid transparent;color:var(--color-reward);cursor:pointer;transition:transform var(--primitive-duration-press) var(--ease-snap)}.plus:not(:disabled){border-color:#f4d27a66}.plus:disabled{opacity:0;pointer-events:none}.plus:active{transform:scale(.92)}.plus svg{width:16px;height:16px}.quest{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;min-height:var(--quest-row-min-height);width:100%;background:none;border:0;border-bottom:1px solid var(--color-divider);text-align:left;cursor:pointer;padding:6px 0;transition:transform var(--primitive-duration-press) var(--ease-snap),background var(--primitive-duration-fast)}.quest:last-child{border-bottom:0}.quest:active{transform:scale(.985);background:#4da3ff0d}.quest .t{font-size:var(--primitive-fontSize-sm);position:relative;display:inline-block;max-width:100%;transition:color var(--primitive-duration-normal)}.quest .t:after{content:"";position:absolute;left:0;right:0;top:55%;height:1px;background:var(--color-muted-foreground);transform:scaleX(0);transform-origin:left;transition:transform .26s var(--ease-out)}.quest small{display:block;font-size:var(--primitive-fontSize-xs);color:var(--color-muted-foreground);margin-top:1px}.quest .p{font-family:var(--font-data);font-size:var(--primitive-fontSize-xs);color:var(--color-muted-foreground);letter-spacing:.06em;white-space:nowrap}.quest.done .t{color:var(--color-muted-foreground)}.quest.done .t:after{transform:scaleX(1)}.quest.done .p{color:var(--color-success)}.quest.static{cursor:default}.quest.static:active{transform:none;background:none}.box{width:var(--quest-check-size);height:var(--quest-check-size);border:1px solid var(--color-border);display:grid;place-items:center;transition:border-color var(--primitive-duration-fast),background var(--primitive-duration-fast);flex:none}.box svg{width:14px;height:14px;stroke:var(--color-background);stroke-width:3;fill:none;stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .24s var(--ease-out) 60ms}.done .box,.box.on{background:var(--color-success);border-color:var(--color-success)}.done .box svg,.box.on svg{stroke-dashoffset:0}.float{position:absolute;right:40px;top:50%;font-family:var(--font-data);font-size:var(--primitive-fontSize-xs);font-weight:500;color:var(--color-reward);pointer-events:none;animation:float .9s var(--ease-out) forwards;white-space:nowrap;z-index:2}@keyframes float{0%{opacity:0;transform:translateY(-30%)}15%{opacity:1}to{opacity:0;transform:translateY(-220%)}}.qfoot{display:flex;justify-content:space-between;gap:8px;margin-top:12px;font-family:var(--font-data);font-size:var(--primitive-fontSize-2xs);letter-spacing:var(--primitive-tracking-label);color:var(--color-muted-foreground);text-transform:uppercase}.qfoot b{color:var(--color-reward);font-weight:500}.chips{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;padding:4px 0 12px}.chips.c4{grid-template-columns:repeat(4,1fr)}.chip{min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:#4da3ff0a;border:1px solid var(--color-divider);cursor:pointer;font-size:var(--primitive-fontSize-2xs);letter-spacing:.08em;text-transform:uppercase;transition:transform var(--primitive-duration-press) var(--ease-snap),background var(--primitive-duration-fast),border-color var(--primitive-duration-fast)}.chip small{font-family:var(--font-data);font-size:10px;color:var(--color-muted-foreground);letter-spacing:0}.chip:active{transform:scale(.95)}.chip.on{border-color:var(--color-success);background:#5fe3b01f;color:var(--color-success)}.chip.now{border-color:var(--color-border)}.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:var(--button-min-height);background:var(--button-bg);color:var(--button-fg);border:1px solid var(--button-border);font-size:var(--primitive-fontSize-2xs);font-weight:500;letter-spacing:var(--primitive-tracking-title);text-transform:uppercase;cursor:pointer;transition:transform var(--primitive-duration-press) var(--ease-snap),background var(--primitive-duration-fast);padding:0 14px}.btn:active{transform:scale(.98);background:var(--button-active-bg)}.btn.sm{min-height:44px;width:auto}.btn.primary{background:#4da3ff29;border-color:var(--color-primary)}.btn.danger{--button-border:rgba(255,79,100,.6);--button-bg:rgba(255,79,100,.08);--button-active-bg:rgba(255,79,100,.2)}.btn:disabled{opacity:.4;pointer-events:none}.btn svg{width:16px;height:16px}.btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}.btns.c3{grid-template-columns:1fr 1fr 1fr}:focus-visible{outline:1px solid var(--color-ring);outline-offset:2px}.input,.select{width:100%;min-height:48px;background:#03050b99;border:1px solid var(--color-border);padding:0 12px;font-size:16px;color:var(--color-foreground);border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.input::placeholder{color:var(--color-muted-foreground)}.field{display:grid;gap:6px}.field label{font-family:var(--font-data);font-size:var(--primitive-fontSize-2xs);letter-spacing:var(--primitive-tracking-label);color:var(--color-muted-foreground);text-transform:uppercase}.form{display:grid;gap:10px}.form-row{display:grid;grid-template-columns:1fr auto;gap:8px}.nav-row{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:52px;background:none;border:0;border-bottom:1px solid var(--color-divider);cursor:pointer;text-align:left;font-size:var(--primitive-fontSize-sm)}.nav-row:last-child{border-bottom:0}.nav-row svg{width:16px;height:16px;color:var(--color-muted-foreground)}.prayer{display:grid;grid-template-columns:1fr auto 44px;align-items:center;gap:12px;min-height:52px;border-bottom:1px solid var(--color-divider)}.prayer:last-child{border-bottom:0}.prayer .n{font-size:var(--primitive-fontSize-sm)}.prayer .n small{display:block;font-size:var(--primitive-fontSize-xs);color:var(--color-muted-foreground)}.prayer .tm{font-family:var(--font-data);font-size:var(--primitive-fontSize-sm);color:var(--color-secondary-foreground)}.prayer.next .n,.prayer.next .tm{color:var(--color-glow)}.prayer.next .n:before{content:"";display:inline-block;width:5px;height:5px;background:var(--color-glow);box-shadow:0 0 6px var(--color-glow);margin-right:8px;vertical-align:middle}.icon-check{width:44px;height:44px;display:grid;place-items:center;background:none;border:0;cursor:pointer}.big-count{text-align:center;padding:8px 0}.big-count b{display:block;font-weight:200;font-size:var(--primitive-fontSize-4xl);line-height:1;font-variant-numeric:tabular-nums}.ar{direction:rtl;text-align:center;font-family:var(--font-arabic);font-size:var(--primitive-fontSize-arabic);line-height:2.1}.ar.quran{font-family:var(--font-quran);font-size:1.5rem;line-height:2.3}.dhikr{position:relative;padding:18px 0;border-bottom:1px solid var(--color-divider);cursor:pointer;transition:opacity var(--primitive-duration-normal)}.dhikr:last-child{border-bottom:0}.dhikr .meta{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-family:var(--font-data);font-size:var(--primitive-fontSize-2xs);letter-spacing:var(--primitive-tracking-label);color:var(--color-muted-foreground);text-transform:uppercase}.dhikr .meta b{color:var(--color-foreground);font-weight:500}.dhikr.full{opacity:.45}.dhikr.full .meta b{color:var(--color-success)}.dhikr .prog{height:2px;background:var(--bar-track);margin-top:8px;position:relative;overflow:hidden}.dhikr .prog i{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-primary);transform-origin:left;transition:transform .18s var(--ease-out)}.dhikr.pulse{animation:pulse .22s var(--ease-out)}@keyframes pulse{50%{background:#4da3ff0f}}.tap{position:relative;width:96px;height:96px;margin:8px auto 0;display:grid;place-items:center;border:1px solid var(--button-border);background:var(--button-bg);cursor:pointer;transition:transform var(--primitive-duration-press) var(--ease-snap)}.tap:active{transform:scale(.94);background:var(--button-active-bg)}.tap svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.5;fill:none}.ripple{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:1px solid var(--color-glow);pointer-events:none;animation:ripple .45s var(--ease-out) forwards}@keyframes ripple{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}.ex{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--color-divider);font-size:var(--primitive-fontSize-sm)}.ex:last-child{border-bottom:0}.ex small{display:block;color:var(--color-muted-foreground);font-size:var(--primitive-fontSize-xs)}.ex .mono{font-size:var(--primitive-fontSize-xs);color:var(--color-secondary-foreground);text-align:right}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.week div{border:1px solid var(--color-divider);padding:8px 2px;text-align:center;font-size:10px;letter-spacing:.06em;line-height:1.3;min-height:58px;display:flex;flex-direction:column;justify-content:center}.week div b{display:block;font-family:var(--font-data);font-weight:500;color:var(--color-muted-foreground);margin-bottom:2px}.week .today{border-color:var(--color-primary);color:var(--color-foreground);box-shadow:inset 0 0 12px #4da3ff26}.week .rest{color:var(--color-muted-foreground)}.week .hit{border-color:#5fe3b080}.todo{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;min-height:56px;border-bottom:1px solid var(--color-divider)}.todo:last-child{border-bottom:0}.todo .t{font-size:var(--primitive-fontSize-sm);position:relative;display:inline-block}.todo .t:after{content:"";position:absolute;left:0;right:0;top:55%;height:1px;background:var(--color-muted-foreground);transform:scaleX(0);transform-origin:left;transition:transform .26s var(--ease-out)}.todo.done .t{color:var(--color-muted-foreground)}.todo.done .t:after{transform:scaleX(1)}.todo small{display:block;font-family:var(--font-data);font-size:10px;letter-spacing:var(--primitive-tracking-label);color:var(--color-muted-foreground)}.del{width:44px;height:44px;display:grid;place-items:center;background:none;border:0;color:var(--color-muted-foreground);cursor:pointer}.del svg{width:14px;height:14px}.filters{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;margin:0 -2px}.filters::-webkit-scrollbar{display:none}.filters button{flex:none;min-height:36px;padding:0 10px;background:none;border:1px solid var(--color-divider);font-family:var(--font-data);font-size:10px;letter-spacing:var(--primitive-tracking-label);color:var(--color-muted-foreground);cursor:pointer}.filters button[aria-pressed=true]{border-color:var(--color-primary);color:var(--color-foreground);background:#4da3ff1a}.class{display:grid;grid-template-columns:76px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--color-divider);font-size:var(--primitive-fontSize-sm)}.class:last-child{border-bottom:0}.class .mono{font-size:var(--primitive-fontSize-xs);color:var(--color-secondary-foreground)}.class small{display:block;color:var(--color-muted-foreground);font-size:var(--primitive-fontSize-xs)}.class.now{color:var(--color-glow)}.ring-wrap{position:relative;width:200px;height:200px;margin:4px auto 14px}.ring-wrap svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-wrap circle{fill:none;stroke-width:2}.ring-wrap .bg{stroke:var(--bar-track)}.ring-wrap .fg{stroke:var(--color-primary);stroke-linecap:butt;transition:stroke-dashoffset 1s linear;filter:drop-shadow(0 0 4px rgba(77,163,255,.6))}.ring-wrap .c{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;text-align:center}.ring-wrap .c b{font-weight:200;font-size:2.5rem;font-variant-numeric:tabular-nums;line-height:1}.ring-wrap .c small{font-family:var(--font-data);font-size:10px;letter-spacing:var(--primitive-tracking-label);color:var(--color-muted-foreground);margin-top:6px}.chart{width:100%;height:120px;display:block}.chart .line{fill:none;stroke:var(--color-primary);stroke-width:1.5}.chart .area{fill:url(#ga)}.chart .dot{fill:var(--color-glow)}.water{display:grid;grid-template-columns:repeat(10,1fr);gap:3px;margin:6px 0 12px}.water i{height:22px;border:1px solid var(--color-divider);transition:background var(--primitive-duration-normal),border-color var(--primitive-duration-normal)}.water i.on{background:#4da3ff59;border-color:var(--color-primary)}.kv{display:grid;grid-template-columns:repeat(4,1fr);text-align:center;gap:6px}.kv b{display:block;font-weight:300;font-size:var(--primitive-fontSize-lg);font-variant-numeric:tabular-nums}.kv span{font-family:var(--font-data);font-size:10px;letter-spacing:var(--primitive-tracking-label);color:var(--color-muted-foreground)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:24px;background:#03050bbf;animation:fade .2s var(--ease-out)}.overlay.closing{animation:fade-out .2s var(--ease-in) forwards}@keyframes fade{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}.popup{position:relative;width:min(100%,360px);background:var(--window-bg);border:1px solid var(--window-border);box-shadow:0 30px 80px -20px #4da3ff8c;padding:24px 20px 20px;text-align:center;animation:sys-open .38s var(--ease-snap) both}.closing .popup{animation:sys-close .2s var(--ease-in) forwards}@keyframes sys-open{0%{transform:scale(0,.004)}40%{transform:scaleY(.004)}to{transform:scale(1)}}@keyframes sys-close{0%{transform:scale(1)}55%{transform:scaleY(.004)}to{transform:scale(0,.004)}}.popup .tk{position:absolute;width:8px;height:8px;border-color:var(--color-glow);border-style:solid}.popup .tag{font-family:var(--font-data);font-size:var(--primitive-fontSize-xs);letter-spacing:.3em;color:var(--color-glow);margin-bottom:12px}.popup p{font-size:var(--primitive-fontSize-sm);color:var(--color-secondary-foreground);margin-bottom:20px;line-height:1.6}.popup p b{color:var(--color-foreground);font-weight:500}.popup .body{animation:rise .22s var(--ease-out) .3s both}.popup.penalty{--window-border:rgba(255,79,100,.55);background:linear-gradient(180deg,#5a0e1c80,#14040af0);box-shadow:0 30px 80px -20px #ff4f6480;animation:sys-open .38s var(--ease-snap) both,glitch .26s steps(2) .4s}.popup.penalty .tk{border-color:var(--color-danger)}.popup.penalty .tag{color:var(--color-danger)}@keyframes glitch{0%{transform:translate(0)}20%{transform:translate(-3px,1px)}40%{transform:translate(3px,-1px)}60%{transform:translate(-2px)}80%{transform:translate(2px,1px)}to{transform:none}}.overlay.red{background:radial-gradient(ellipse at center,#14040ac7,#3c000ce0)}.vignette{position:fixed;top:0;right:0;bottom:0;left:0;z-index:49;pointer-events:none;box-shadow:inset 0 0 120px 20px #ff4f648c;animation:vig 1.6s var(--ease-out) forwards}@keyframes vig{0%{opacity:0}15%{opacity:1}35%{opacity:.4}50%{opacity:.9}to{opacity:0}}.lvup{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:24px;background:#03050bf2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;animation:fade .2s var(--ease-out)}.lvup .beam{position:absolute;left:0;right:0;top:50%;height:1px;background:linear-gradient(90deg,transparent,var(--color-reward),transparent);animation:beam .52s var(--ease-out) forwards}.lvup .ring{position:absolute;left:50%;top:50%;width:160px;height:160px;margin:-80px 0 0 -80px;border:1px solid rgba(244,210,122,.6);border-radius:50%;opacity:0;animation:ringx 1.1s var(--ease-out) .26s forwards}.lvup .content{position:relative;animation:rise .36s var(--ease-out) .3s both}.lvup .t{font-weight:300;font-size:var(--primitive-fontSize-xl);letter-spacing:.42em;color:var(--color-reward);text-indent:.42em}.lvup .num{font-weight:200;font-size:96px;line-height:1;letter-spacing:-.03em;margin:8px 0;font-variant-numeric:tabular-nums}.lvup .sub{font-family:var(--font-data);font-size:var(--primitive-fontSize-xs);line-height:1.9;letter-spacing:var(--primitive-tracking-label);color:var(--color-secondary-foreground)}.lvup .hint{position:absolute;bottom:calc(env(safe-area-inset-bottom) + 32px);left:0;right:0;font-family:var(--font-data);font-size:var(--primitive-fontSize-2xs);letter-spacing:.2em;color:var(--color-muted-foreground);animation:rise .3s var(--ease-out) 1.3s both}@keyframes beam{0%{transform:scaleX(0);opacity:1}60%{transform:scaleX(1);opacity:1}to{transform:scaleX(1) scaleY(60);opacity:0}}@keyframes ringx{0%{opacity:.9;transform:scale(.4)}to{opacity:0;transform:scale(2.6)}}.boot{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--color-background);display:grid;place-items:center;transition:opacity .26s var(--ease-out)}.boot.gone{opacity:0;pointer-events:none}.boot .w{font-family:var(--font-data);font-size:var(--primitive-fontSize-xs);letter-spacing:.5em;color:var(--color-glow);text-indent:.5em}.boot .l{width:160px;height:1px;margin:14px auto 0;background:var(--window-highlight);transform:scaleX(0);animation:line-in .52s var(--ease-out) 80ms forwards}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;height:calc(var(--tabbar-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--tabbar-bg);border-top:1px solid var(--color-divider);display:grid;grid-template-columns:repeat(5,1fr);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%)}.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--color-muted-foreground);text-decoration:none;font-size:9px;font-weight:500;letter-spacing:.16em;min-height:44px;transition:color var(--primitive-duration-fast)}.tabbar a svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.5;fill:none}.tabbar a[aria-current]{color:var(--color-foreground)}.tabbar .ind{position:absolute;top:-1px;left:0;width:20%;height:1px;display:flex;justify-content:center;transition:transform .38s var(--ease-out)}.tabbar .ind:before{content:"";width:28px;height:1px;background:var(--color-glow);box-shadow:0 0 10px var(--color-glow)}.badge{position:absolute;margin:-18px 0 0 18px;min-width:6px;height:6px;background:var(--color-danger);box-shadow:0 0 6px var(--color-danger)}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-delay:0ms!important;transition-duration:1ms!important}}a{color:inherit;text-decoration:none}.popup p b.gold,.popup p .gold{color:var(--color-reward)}.popup p b.ok{color:var(--color-success)}
