*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);font-weight:var(--w-body);font-size:var(--t-body);color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;overscroll-behavior:none;line-height:1.4}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;background:0 0;border:0;margin:0;padding:0}button:disabled{cursor:default}a{color:inherit;text-decoration:none}img,svg{display:block}h1,h2,h3,h4,p{margin:0}ul,ol{margin:0;padding:0;list-style:none}:focus{outline:none}:focus-visible{outline:2.5px solid var(--blue);outline-offset:2px;border-radius:12px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.t-title{font-size:var(--t-title);line-height:1.12;font-weight:var(--w-title);letter-spacing:var(--tr-title);text-wrap:balance}.t-title-2{font-size:var(--t-title-2);line-height:1.2;font-weight:var(--w-button);letter-spacing:-.015em;text-wrap:balance}.t-headline{font-size:var(--t-body);line-height:1.3;font-weight:var(--w-button)}.t-body{font-size:var(--t-body);line-height:1.45;font-weight:var(--w-body);text-wrap:pretty}.t-sub{font-size:var(--t-sub);line-height:1.38;font-weight:var(--w-label);color:var(--ink-2);text-wrap:pretty}.t-caption{font-size:var(--t-caption);line-height:1.32;font-weight:var(--w-label);color:var(--ink-2)}.t-muted{color:var(--ink-2)}.t-mono{font-family:var(--mono);letter-spacing:0}.btn{--h:56px;min-height:var(--h);border-radius:var(--r-pill);font-size:var(--t-body);font-weight:var(--w-button);letter-spacing:-.005em;white-space:nowrap;transition:transform var(--d-press) var(--ease-out), background-color var(--d-state) var(--ease-out), color var(--d-state) var(--ease-out), opacity var(--d-state) var(--ease-out), box-shadow var(--d-state) var(--ease-out);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;justify-content:center;align-items:center;gap:8px;padding:6px 24px;display:inline-flex;position:relative}.btn svg{flex:none}.btn:active:not(:disabled){transform:scale(.96)}.btn:disabled{opacity:.38}.btn--m{--h:44px;font-size:var(--t-sub);padding:0 18px}.btn--s{--h:34px;font-size:var(--t-caption);font-weight:var(--w-button);padding:0 14px}.btn--s:after{content:"";position:absolute;inset:-5px -3px}.btn--block{width:100%}.btn--primary{background:var(--blue);color:var(--on-blue)}.btn--ink{background:var(--ink);color:var(--on-ink)}.btn--secondary,.btn--tinted{background:var(--surface);color:var(--ink)}.btn--plain{color:var(--ink);font-weight:var(--w-button);background:0 0;padding:0 10px}@media (hover:hover){.btn--primary:hover:not(:disabled){background:var(--blue-press)}.btn--ink:hover:not(:disabled){background:color-mix(in srgb, var(--ink) 86%, var(--canvas))}.btn--secondary:hover:not(:disabled),.btn--tinted:hover:not(:disabled){background:var(--surface-2)}.btn--plain:hover:not(:disabled){color:var(--ink-2)}}.btn[data-busy]>:not(.spinner){opacity:0}.btn[data-busy]>.spinner{position:absolute}.glass{background:var(--glass);backdrop-filter:blur(22px)saturate(1.9);box-shadow:var(--glass-shadow), inset 0 0 0 .5px var(--glass-rim);isolation:isolate;position:relative}.glass:before{content:"";border-radius:inherit;pointer-events:none;z-index:-1;background:linear-gradient(180deg, color-mix(in srgb, var(--glass-edge) 70%, transparent) 0%, transparent 42%), radial-gradient(120% 90% at 50% 120%, color-mix(in srgb, var(--glass-edge) 35%, transparent), transparent 60%);mix-blend-mode:soft-light;position:absolute;inset:0}.glass:after{content:"";border-radius:inherit;pointer-events:none;box-shadow:inset 0 1px .5px var(--glass-edge), inset 0 -.5px .5px color-mix(in srgb, var(--glass-edge) 40%, transparent);position:absolute;inset:0}@media (prefers-reduced-transparency:reduce){.glass{background:var(--glass-strong);backdrop-filter:none}}.icon-btn{border-radius:var(--r-pill);width:44px;height:44px;color:var(--ink);transition:transform var(--d-press) var(--ease-out), background-color var(--d-state) var(--ease-out), opacity var(--d-state) var(--ease-out);place-items:center;display:inline-grid}.icon-btn:active:not(:disabled){transform:scale(.92)}.icon-btn--surface{background:var(--surface)}@media (hover:hover){.icon-btn--surface:hover{background:var(--surface-2)}}.chip{border-radius:var(--r-pill);background:var(--surface);min-height:28px;color:var(--ink-2);font-size:var(--t-caption);font-weight:var(--w-button);white-space:nowrap;align-items:center;gap:6px;padding:3px 10px;display:inline-flex}.chip--blue,.chip--green,.chip--red,.chip--orange{background:var(--surface);color:var(--ink-2)}.group{background:var(--surface);border-radius:var(--r-card);padding:4px 0}.row{text-align:left;width:100%;min-height:56px;transition:background-color var(--d-state) var(--ease-out);align-items:center;gap:14px;padding:10px 18px;display:flex}.row+.row{box-shadow:inset 0 .5px 0 var(--line)}.group>:first-child{border-top-left-radius:calc(var(--r-card) - 4px);border-top-right-radius:calc(var(--r-card) - 4px)}.group>:last-child{border-bottom-left-radius:calc(var(--r-card) - 4px);border-bottom-right-radius:calc(var(--r-card) - 4px)}.row{flex-wrap:wrap}.row>.row__value,.row>.detail-lines{overflow-wrap:anywhere;min-width:0;margin-left:auto}button.row:active{background:var(--surface-2)}@media (hover:hover){button.row:hover{background:color-mix(in srgb, var(--surface-2) 60%, transparent)}}.row__main{flex-direction:column;flex:5.5em;min-width:0;display:flex}.row__title{font-size:var(--t-body);font-weight:var(--w-label);line-height:1.3}.row__sub{font-size:var(--t-caption);color:var(--ink-2);margin-top:2px;line-height:1.3}.row__value{font-size:var(--t-body);font-weight:var(--w-button);text-align:right;font-variant-numeric:tabular-nums}.skeleton{background:var(--skeleton);border-radius:10px;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg, transparent, var(--skeleton-shine), transparent);animation:shimmer 1.3s var(--ease-in-out) infinite;position:absolute;inset:0;transform:translate(-100%)}@keyframes shimmer{to{transform:translate(100%)}}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}}@keyframes pop-in{0%{opacity:0;transform:scale(.94)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-9px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(3px)}}.rise{animation:rise-in .52s var(--ease-out) both}.shake{animation:shake .42s var(--ease-out)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;transition-delay:0s!important;animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}[data-reduced-motion=true] *,[data-reduced-motion=true] :before,[data-reduced-motion=true] :after{transition-duration:1ms!important;transition-delay:0s!important;animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:0s!important}@media (prefers-reduced-motion:reduce){.spinner>i{animation-duration:.8s!important;animation-iteration-count:infinite!important;animation-delay:calc((var(--i,0) - 8) * .1s)!important}}[data-reduced-motion=true] .spinner>i{animation-duration:.8s!important;animation-iteration-count:infinite!important;animation-delay:calc((var(--i,0) - 8) * .1s)!important}