@import "https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700;800&family=Space+Mono:wght@400;700&display=swap";:root{--bg:#0b0b0c;--bg-2:#141416;--bg-3:#1c1c1f;--line:#26262a;--line-2:#333338;--text:#f4f1ec;--text-2:#a9a9b0;--text-3:#74747c;--red:#e2231a;--red-2:#ff3b30;--red-soft:#e2231a29;--ok:#2fbf71;--warn:#f4b400;--radius:16px;--radius-s:10px;--nav-h:64px;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--font:Manrope, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"Space Mono", ui-monospace, Menlo, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;font-size:16px;line-height:1.45}a{color:var(--red-2)}h1,h2,h3{letter-spacing:-.02em;margin:0;line-height:1.15}h1{font-size:28px;font-weight:800}h2{font-size:20px;font-weight:800}h3{font-size:16px;font-weight:700}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--red-2);outline-offset:2px}.frame{flex-direction:column;height:100dvh;display:flex}.content{-webkit-overflow-scrolling:touch;min-height:0;padding:calc(16px + var(--sat)) 16px 24px;flex:auto;overflow:hidden auto}.content-inner{flex-direction:column;gap:16px;max-width:720px;margin:0 auto;display:flex}.nav{grid-template-columns:repeat(var(--nav-cols,5), minmax(0, 1fr));height:calc(var(--nav-h) + var(--sab));padding-bottom:var(--sab);border-top:1px solid var(--line);background:var(--bg-2);flex:none;display:grid}.nav button{min-width:0;min-height:44px;color:var(--text-3);letter-spacing:.02em;cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:0 2px;font-size:10px;font-weight:700;display:flex;position:relative}.nav button span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.nav button[aria-current=page]{color:var(--text)}.nav button[aria-current=page] svg{stroke:var(--red-2)}.nav svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.badge{background:var(--red);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:800;display:flex;position:absolute;top:6px;right:calc(50% - 22px)}.card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:12px;min-width:0;padding:18px;display:flex}.card.tight{gap:8px;padding:14px 16px}.row{align-items:center;gap:12px;min-width:0;display:flex}.row.between{justify-content:space-between}.col{flex-direction:column;gap:4px;min-width:0;display:flex}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}@media (max-width:480px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}.wrap{overflow-wrap:anywhere}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.small{font-size:13px}.mono{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;font-size:11px}.mono.red{color:var(--red-2)}.num{font-variant-numeric:tabular-nums}.btn{border:1px solid var(--line-2);background:var(--bg-3);min-height:44px;color:var(--text);cursor:pointer;white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--text-3)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--red);border-color:var(--red);color:#fff}.btn.primary:hover{background:var(--red-2);border-color:var(--red-2)}.btn.ghost{background:0 0}.btn.danger{border-color:var(--red);color:var(--red-2);background:0 0}.btn.wide{width:100%}.btn.sm{border-radius:10px;min-height:36px;padding:0 12px;font-size:14px}.btn svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.icon-btn{width:44px;height:44px;padding:0}label.field{color:var(--text-2);flex-direction:column;gap:6px;font-size:13px;font-weight:700;display:flex}.input,select.input,textarea.input{border-radius:var(--radius-s);border:1px solid var(--line-2);background:var(--bg);width:100%;min-height:44px;color:var(--text);padding:10px 12px;font-size:16px;font-weight:600}textarea.input{resize:vertical;min-height:88px}.input::placeholder{color:var(--text-3);font-weight:500}.check{cursor:pointer;align-items:center;gap:10px;min-height:44px;font-weight:600;display:flex}.check input{width:20px;height:20px;accent-color:var(--red)}.chip{border:1px solid var(--line-2);background:var(--bg-3);min-height:30px;color:var(--text-2);text-align:left;border-radius:999px;align-items:center;gap:6px;max-width:100%;padding:4px 10px;font-size:13px;font-weight:700;line-height:1.25;display:inline-flex}.chip.on{border-color:var(--red);color:var(--text);background:var(--red-soft)}.chip.ok{color:var(--ok);border-color:#2fbf7180}.chip.warn{color:var(--warn);border-color:#f4b40080}.chips{flex-wrap:wrap;gap:8px;min-width:0;display:flex}button.chip{cursor:pointer;min-height:36px}.bar{background:var(--bg-3);border-radius:4px;height:8px;overflow:hidden}.bar>i{background:var(--red);border-radius:4px;height:100%;transition:width .5s;display:block}.bar.ok>i{background:var(--ok)}.ring{flex-shrink:0;width:112px;height:112px;position:relative}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:10px;stroke-linecap:round}.ring .track{stroke:var(--bg-3)}.ring .value{stroke:var(--red);transition:stroke-dashoffset .6s}.ring.ok .value{stroke:var(--ok)}.ring .label{letter-spacing:-.02em;flex-direction:column;justify-content:center;align-items:center;font-size:22px;font-weight:800;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.ring .label small{color:var(--text-2);font-size:11px;font-weight:700}.list{flex-direction:column;gap:8px;display:flex}.item{background:var(--bg-2);border:1px solid var(--line);text-align:left;cursor:pointer;border-radius:12px;align-items:center;gap:12px;width:100%;min-width:0;padding:12px 14px;display:flex}.item:hover{border-color:var(--line-2)}.item .thumb{background:var(--bg-3);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;overflow:hidden}.item .thumb img{object-fit:cover;width:100%;height:100%}.item .thumb svg{width:20px;height:20px;stroke:var(--text-2);fill:none;stroke-width:2px}.item .title{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.item .sub{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.item .hrs{flex-shrink:0;font-size:18px;font-weight:800}.empty{text-align:center;border:1px dashed var(--line-2);border-radius:var(--radius);color:var(--text-2);flex-direction:column;align-items:center;gap:10px;padding:28px 16px;display:flex}.sheet-backdrop{z-index:50;background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.sheet{background:var(--bg-2);border:1px solid var(--line-2);width:100%;max-width:720px;max-height:calc(100dvh - 24px);padding:16px 16px calc(16px + var(--sab));border-radius:20px 20px 0 0;flex-direction:column;gap:14px;display:flex;overflow-y:auto}@media (min-width:720px){.sheet-backdrop{align-items:center}.sheet{border-radius:20px;max-height:calc(100dvh - 64px)}}.sheet-handle{background:var(--line-2);border-radius:2px;width:40px;height:4px;margin:0 auto}.toast{left:50%;bottom:calc(var(--nav-h) + var(--sab) + 12px);background:var(--bg-3);border:1px solid var(--line-2);z-index:60;border-radius:12px;max-width:calc(100vw - 32px);padding:10px 14px;font-size:14px;font-weight:700;position:fixed;transform:translate(-50%)}.toast.err{border-color:var(--red)}.alert{border:1px solid var(--line-2);background:var(--bg-3);border-radius:12px;padding:12px 14px;font-size:14px}.alert.err{background:var(--red-soft);border-color:#e2231a99}.alert.ok{border-color:#2fbf7180}.gate{min-height:100dvh;padding:calc(24px + var(--sat)) 20px calc(24px + var(--sab));flex-direction:column;justify-content:center;gap:24px;max-width:480px;margin:0 auto;display:flex}.logo-mark{width:72px;height:72px}.gate h1{font-size:34px}.gate .features{gap:10px;display:grid}.gate .features div{color:var(--text-2);align-items:flex-start;gap:10px;font-size:14px;display:flex}.gate .features svg{width:18px;height:18px;stroke:var(--red-2);fill:none;stroke-width:2px;flex-shrink:0;margin-top:2px}.gbtn{color:#1f1f1f;background:#fff;border-color:#fff}.gbtn:hover{background:#f1f1f1}.legal{justify-content:center;gap:14px;font-size:13px;display:flex}.legal a{color:var(--text-2)}.bars{flex-direction:column;gap:10px;display:flex}.bars .brow{grid-template-columns:minmax(0,1fr) 56px;align-items:center;gap:10px;display:grid}.bars .brow .name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.bars .brow .v{text-align:right;font-weight:800}.bars .bar{grid-column:1/-1}.years{align-items:flex-end;gap:10px;height:120px;display:flex}.years .y{flex-direction:column;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.years .y i{background:var(--red);border-radius:6px 6px 0 0;width:100%;max-width:48px;display:block}.years .y span{color:var(--text-2);font-size:12px;font-weight:700}.vendor{border:1px solid var(--line);background:var(--bg-2);color:inherit;border-radius:14px;align-items:center;gap:12px;min-width:0;padding:14px;text-decoration:none;display:flex}.vendor .vlogo{background:var(--bg-3);width:48px;height:48px;color:var(--red-2);border:1px solid var(--line-2);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;font-weight:800;display:flex}.skel{background:linear-gradient(90deg, var(--bg-2), var(--bg-3), var(--bg-2));background-size:200% 100%;border-radius:12px;min-height:60px;animation:1.2s linear infinite sk}@keyframes sk{to{background-position:-200% 0}}.fade-in{animation:.28s both fade}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.dropzone{border:2px dashed var(--line-2);border-radius:var(--radius);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:20px;display:flex}.dropzone.over{border-color:var(--red);background:var(--red-soft)}.preview-img{border:1px solid var(--line-2);object-fit:contain;background:#000;border-radius:12px;max-width:100%;max-height:220px}.table{border-collapse:collapse;width:100%;font-size:14px}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:10px 8px}.table th{color:var(--text-2);text-transform:uppercase;letter-spacing:.08em;font-size:12px}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.dmark .dmark-lit{transition:stroke-dashoffset .8s cubic-bezier(.2,.7,.2,1)}.dmark-in .dmark-lit{animation:1.1s cubic-bezier(.2,.7,.2,1) both dmark-fill}@keyframes dmark-fill{0%{stroke-dashoffset:var(--dash)}to{stroke-dashoffset:calc(var(--dash) * (1 - var(--fill)))}}.dmark-loop .dmark-lit{animation:1.1s cubic-bezier(.2,.7,.2,1) both dmark-fill,4s ease-in-out 1.4s infinite dmark-breathe}@keyframes dmark-breathe{0%,to{stroke-dashoffset:calc(var(--dash) * (1 - var(--fill)))}50%{stroke-dashoffset:calc(var(--dash) * (1 - var(--fill) - .06))}}@media (prefers-reduced-motion:reduce){.dmark .dmark-lit{transition:none!important;animation:none!important}}.mastery{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}@media (max-width:480px){.mastery{grid-template-columns:repeat(2,minmax(0,1fr))}}.mtile{background:var(--bg-2);border:1px solid var(--line);text-align:left;cursor:pointer;border-radius:14px;flex-direction:column;gap:6px;min-height:108px;padding:12px;display:flex;position:relative;overflow:hidden}.mtile:hover{border-color:var(--line-2)}.mtile.focus{border-color:#e2231a99}.mtile .mfill{background:var(--red-soft);transition:height 1s cubic-bezier(.2,.7,.2,1);position:absolute;bottom:0;left:0;right:0}.mtile.lvl-4 .mfill{background:#e2231a52}.mtile>*{position:relative}.mtile .mname{font-size:13px;font-weight:800;line-height:1.2}.mtile .mlevel{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--red-2);font-size:10px}.mtile .mhours{letter-spacing:-.02em;margin-top:auto;font-size:20px;font-weight:800}.mtile .mhours small{color:var(--text-2);margin-left:3px;font-size:11px;font-weight:700}.mtile .mnext{color:var(--text-3);font-size:11px}
