:root{--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--primary: #0062A0;--on-primary: #FFFFFF;--primary-container: #D0E4FF;--on-primary-container: #001D35;--surface: #FDFCFF;--surface-container-low: #F0F4FA;--surface-container: #E8EFF7;--surface-container-high: #E2ECF5;--surface-container-highest: #DFEAF4;--on-surface: #1A1C1E;--on-surface-variant: #42474E;--select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2342474E' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");--outline: #73777F;--outline-variant: #C2C7CF;--inverse-surface: #2F3033;--inverse-on-surface: #F1F0F4;--inverse-primary: #9BCAFF;--error: #BA1A1A;--divider: #DCE1E8;--tint: rgba(0, 98, 160, .12);--tint-hover: rgba(0, 98, 160, .2);--hover: rgba(26, 28, 30, .08);--pressed: rgba(26, 28, 30, .12);--disabled: rgba(26, 28, 30, .38);--disabled-container: rgba(26, 28, 30, .12);--track: #D3E3F3;--halo: rgba(0, 98, 160, .14);--halo-strong: rgba(0, 98, 160, .24);--shadow: rgba(0, 0, 0, .3);--shadow-soft: rgba(0, 0, 0, .15);--scrim: rgba(0, 0, 0, .32);--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--primary: #9BCAFF;--on-primary: #003256;--primary-container: #00497A;--on-primary-container: #D0E4FF;--surface: #1A1C1E;--surface-container-low: #212529;--surface-container: #252A31;--surface-container-high: #282E36;--surface-container-highest: #293038;--on-surface: #E2E2E6;--on-surface-variant: #C2C7CF;--select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23C2C7CF' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");--outline: #8C9199;--outline-variant: #42474E;--inverse-surface: #E2E2E6;--inverse-on-surface: #2F3033;--inverse-primary: #0062A0;--error: #FFB4AB;--divider: #30353B;--tint: rgba(155, 202, 255, .2);--tint-hover: rgba(155, 202, 255, .3);--hover: rgba(226, 226, 230, .08);--pressed: rgba(226, 226, 230, .12);--disabled: rgba(226, 226, 230, .38);--disabled-container: rgba(226, 226, 230, .12);--track: #2E3A48;--halo: rgba(155, 202, 255, .14);--halo-strong: rgba(155, 202, 255, .24);--shadow: rgba(0, 0, 0, .6);--shadow-soft: rgba(0, 0, 0, .3);--scrim: rgba(0, 0, 0, .5);color-scheme:dark}}:root[data-theme=dark]{--primary: #9BCAFF;--on-primary: #003256;--primary-container: #00497A;--on-primary-container: #D0E4FF;--surface: #1A1C1E;--surface-container-low: #212529;--surface-container: #252A31;--surface-container-high: #282E36;--surface-container-highest: #293038;--on-surface: #E2E2E6;--on-surface-variant: #C2C7CF;--select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23C2C7CF' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");--outline: #8C9199;--outline-variant: #42474E;--inverse-surface: #E2E2E6;--inverse-on-surface: #2F3033;--inverse-primary: #0062A0;--error: #FFB4AB;--divider: #30353B;--tint: rgba(155, 202, 255, .2);--tint-hover: rgba(155, 202, 255, .3);--hover: rgba(226, 226, 230, .08);--pressed: rgba(226, 226, 230, .12);--disabled: rgba(226, 226, 230, .38);--disabled-container: rgba(226, 226, 230, .12);--track: #2E3A48;--halo: rgba(155, 202, 255, .14);--halo-strong: rgba(155, 202, 255, .24);--shadow: rgba(0, 0, 0, .6);--shadow-soft: rgba(0, 0, 0, .3);--scrim: rgba(0, 0, 0, .5);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{display:flex;flex-direction:column;height:100%;height:100vh;height:100dvh;margin:0;overflow:hidden;background:var(--surface-container-low);color:var(--on-surface);font:400 14px/20px var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}.sprite{position:absolute;width:0;height:0;overflow:hidden}svg{width:24px;height:24px;fill:currentColor;flex:none}button,select,input{font:inherit;color:inherit}button{border:0;background:none;padding:0;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}a{color:var(--primary)}.app-bar{display:flex;align-items:center;gap:4px;flex:none;height:64px;padding:0 4px 0 16px;padding-top:var(--safe-top);height:calc(64px + var(--safe-top));padding-left:calc(16px + var(--safe-left));padding-right:calc(4px + var(--safe-right));background:var(--surface-container);border-bottom:1px solid var(--divider);position:relative;z-index:20}.logo{width:36px;height:26px;margin-inline-end:8px}.titles{flex:1;min-width:0}.titles .title{margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font:500 18px/24px var(--font);letter-spacing:.1px}.titles p{margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font:400 13px/18px var(--font);color:var(--on-surface-variant)}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--on-surface-variant);flex:none;transition:background-color .15s}@media(hover:hover){.icon-btn:hover:not(:disabled){background:var(--hover)}}.icon-btn:active:not(:disabled){background:var(--pressed)}.icon-btn:disabled{color:var(--disabled)}.icon-btn.toggle[aria-pressed=true]{color:var(--primary);background:var(--tint)}.tint-btn{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;color:var(--primary);background:var(--tint);flex:none;transition:background-color .15s}.tint-btn svg{width:18px;height:18px}@media(hover:hover){.tint-btn:hover:not(:disabled){background:var(--tint-hover)}}.tint-btn:disabled{color:var(--disabled);background:var(--disabled-container)}.fab{display:grid;place-items:center;width:56px;height:56px;margin:0 8px;border-radius:16px;color:var(--on-primary-container);background:var(--primary-container);box-shadow:0 1px 3px var(--shadow-soft),0 4px 8px 3px var(--shadow-soft);transition:box-shadow .15s,transform .1s;flex:none}.fab:active{transform:scale(.96)}.fab svg{width:28px;height:28px}.filled-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px 0 20px;border-radius:24px;color:var(--on-primary);background:var(--primary);font:500 16px/24px var(--font);letter-spacing:.1px;box-shadow:0 1px 2px var(--shadow-soft);transition:box-shadow .15s}@media(hover:hover){.filled-btn:hover{box-shadow:0 1px 3px var(--shadow-soft),0 2px 6px 2px var(--shadow-soft)}}.text-btn{min-width:64px;min-height:40px;padding:0 12px;border-radius:20px;color:var(--primary);font:500 14px/20px var(--font);letter-spacing:.1px}@media(hover:hover){.text-btn:hover:not(:disabled){background:var(--tint)}}.text-btn:disabled{color:var(--disabled)}.top-progress{flex:none;height:3px;border-radius:0;margin-bottom:-3px;position:relative;z-index:15}main{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.on-welcome .app-bar .logo,.on-welcome .app-bar .titles{visibility:hidden}.welcome{display:flex;flex-direction:column;align-items:center;height:100%;max-width:calc(640px + var(--safe-left) + var(--safe-right));margin:0 auto;overflow:hidden;padding:16px calc(24px + var(--safe-right)) calc(28px + 5vh + var(--safe-bottom)) calc(24px + var(--safe-left));text-align:center}.welcome>*{flex:none}.welcome>:first-child{margin-top:auto}.welcome>:last-child{margin-bottom:auto}.welcome-logo{width:140px;height:96px}.welcome-title{margin:12px 0 4px;font:500 clamp(28px,8vw,40px)/1.2 var(--font);letter-spacing:-.2px}.tagline{margin:0 auto 24px;max-width:30em;font:400 16px/24px var(--font);color:var(--on-surface-variant)}.loading{width:240px;height:4px;margin:12px auto 0;visibility:hidden}.loading.active{visibility:visible}.loading:not(.active) .progress>div{animation:none}.welcome .about{flex:0 1 auto;min-height:64px;width:100%;max-width:600px;margin-top:12px;padding:12px 16px;overflow-y:auto;overscroll-behavior:contain;border-radius:12px;background:var(--surface-container);text-align:start;color:var(--on-surface-variant);font:400 14px/20px var(--font)}.welcome .about.more{-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 28px),transparent)}.about p{margin:0 0 10px}.about p:last-child{margin-bottom:0}@media(max-height:700px){.welcome-logo{width:112px;height:76px}.welcome-title{margin-top:8px}.tagline{margin-bottom:16px}.loading,.welcome .about{margin-top:9px}}@media(max-height:560px){.welcome{padding-top:10px;padding-bottom:calc(16px + 3vh + var(--safe-bottom))}.welcome-logo{width:80px;height:54px}.welcome-title{margin:4px 0 2px;font-size:26px}.tagline{margin-bottom:12px;font-size:14px;line-height:20px}.loading,.welcome .about{margin-top:6px}.welcome .about{min-height:52px}}@media(max-height:560px)and (min-width:600px){.welcome{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);grid-template-rows:minmax(0,1fr) auto auto auto auto auto minmax(0,1fr);column-gap:32px;justify-items:center;max-width:calc(960px + var(--safe-left) + var(--safe-right));padding-top:12px;padding-bottom:calc(12px + var(--safe-bottom))}.welcome>*{grid-column:1}.welcome-logo{grid-row:2;margin-top:0}.welcome-title{grid-row:3}.tagline{grid-row:4}#chooseButton{grid-row:5}.loading{grid-row:6;margin-top:10px}.welcome .about{grid-column:2;grid-row:1 / -1;align-self:center;max-height:100%;margin:0}}.progress{position:relative;height:4px;overflow:hidden;border-radius:2px;background:var(--track)}.progress>div{position:absolute;inset:0 auto 0 0;width:0;border-radius:2px;background:var(--primary);transition:width .2s}.progress.indeterminate>div{width:40%;animation:indeterminate 1.4s ease-in-out infinite}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(260%)}}.player{display:flex;flex-direction:column;min-height:100%;max-width:1024px;margin:0 auto;background:var(--surface);padding-left:var(--safe-left);padding-right:var(--safe-right)}@media(min-width:1025px){.player{border-left:1px solid var(--divider);border-right:1px solid var(--divider)}}.controls{flex:none}.side{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.control{flex:none;padding:10px 8px 6px;border-bottom:1px solid var(--divider)}.control-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:44px}.label{padding-inline-start:8px;font:500 16px/24px var(--font);letter-spacing:.15px}.value,.time,.loop-length,.time-field{direction:ltr;unicode-bidi:isolate}.value{min-width:88px;min-height:40px;padding:0 12px;border-radius:20px;text-align:center;font:500 17px/24px var(--font);font-variant-numeric:tabular-nums;color:var(--primary)}@media(hover:hover){.value:hover{background:var(--hover)}}.control-head>.tint-btn,.loop-actions{justify-self:end;margin-inline-end:8px}.slider-line{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:4px;min-height:48px}.loop{padding-top:12px;padding-bottom:12px}.ab,.loop-actions{display:flex;gap:8px}.ab-btn{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;--box: var(--on-surface-variant);--letter: var(--surface)}.ab-btn svg{width:28px;height:28px}.ab-box{fill:var(--box)}.ab-letter{fill:var(--letter);stroke:var(--letter);stroke-width:.9px}.ab-btn.set,.ab-icon.set{--box: var(--primary);--letter: var(--on-primary)}@media(hover:hover){.ab-btn:hover{background:var(--hover)}}@media(min-width:720px)and (min-height:700px){.control{padding:18px 20px 12px}.control-head{min-height:52px}.label{font-size:18px;line-height:26px}.value{min-width:110px;min-height:48px;font-size:22px;line-height:28px}.slider-line{min-height:60px;grid-template-columns:48px 1fr 48px;gap:12px}.control .tint-btn,.zoom .tint-btn{width:40px;height:40px}.control .tint-btn svg,.zoom .tint-btn svg{width:22px;height:22px}.loop{padding-top:20px;padding-bottom:20px}.ab-btn{width:52px;height:52px}.ab-btn svg{width:34px;height:34px}}@media(min-width:720px)and (min-height:700px){.player .transport{padding-right:20px;padding-left:20px;padding-bottom:calc(32px + var(--safe-bottom))}.player .zoom{top:20px;right:24px}.player .buttons{margin-top:6px}}@media(min-width:720px)and (min-height:900px){.control{padding:26px 24px 18px}.slider-line{min-height:64px}.loop{padding-top:28px;padding-bottom:28px}}.slider{--fill: 50%;-webkit-appearance:none;appearance:none;display:block;width:100%;height:44px;margin:0;padding:0;background:transparent;cursor:pointer;touch-action:pan-y}.slider:focus-visible{outline:none}.slider::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(to right,var(--primary) var(--fill),var(--track) var(--fill))}.slider::-moz-range-track{height:4px;border-radius:2px;background:var(--track)}.slider::-moz-range-progress{height:4px;border-radius:2px;background:var(--primary)}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;margin-top:-8px;border:0;border-radius:50%;background:var(--primary);box-shadow:0 1px 2px var(--shadow);transition:box-shadow .15s}.slider::-moz-range-thumb{width:20px;height:20px;border:0;border-radius:50%;background:var(--primary);box-shadow:0 1px 2px var(--shadow);transition:box-shadow .15s}@media(hover:hover){.slider:hover::-webkit-slider-thumb{box-shadow:0 0 0 10px var(--halo),0 1px 2px var(--shadow)}.slider:hover::-moz-range-thumb{box-shadow:0 0 0 10px var(--halo),0 1px 2px var(--shadow)}}.slider:active::-webkit-slider-thumb,.slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 12px var(--halo-strong),0 1px 2px var(--shadow)}.slider:active::-moz-range-thumb,.slider:focus-visible::-moz-range-thumb{box-shadow:0 0 0 12px var(--halo-strong),0 1px 2px var(--shadow)}[dir=rtl] .control .slider::-webkit-slider-runnable-track{background:linear-gradient(to left,var(--primary) var(--fill),var(--track) var(--fill))}.wave{position:relative;flex:1 1 auto;min-height:110px;overflow:hidden;background:var(--surface);border-bottom:1px solid var(--divider)}.wave canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.wave canvas.dragging{cursor:grabbing}.zoom{position:absolute;top:12px;right:12px;display:flex;gap:6px;padding:4px;border-radius:24px;background:var(--surface);opacity:.92}.transport{flex:none;padding:4px 8px calc(20px + var(--safe-bottom))}.seek-line{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:0 8px}.time{min-width:3.4em;font:500 14px/20px var(--font);font-variant-numeric:tabular-nums;color:var(--on-surface-variant)}.time:last-child{text-align:right}.buttons{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:2px}@media(max-width:359px){.buttons{gap:0}.fab{margin:0 4px}}@media(max-height:620px){.app-bar{height:calc(56px + var(--safe-top))}.control{padding-top:6px;padding-bottom:2px}.control-head{min-height:40px}.loop{padding-top:8px;padding-bottom:8px}.fab{width:48px;height:48px;border-radius:14px}.wave{min-height:90px}.transport{padding-bottom:calc(14px + var(--safe-bottom))}}@media(max-height:500px),(max-height:560px)and (min-width:600px){.app-bar{height:calc(48px + var(--safe-top))}.control{padding-top:2px;padding-bottom:2px}.control-head,.value{min-height:32px}.slider-line{min-height:40px}.slider,.icon-btn.step{height:38px}.loop{padding-top:2px;padding-bottom:2px}.ab-btn{width:40px;height:40px}.fab{width:44px;height:44px;border-radius:12px}.wave{min-height:90px}.transport{padding-top:2px;padding-bottom:calc(10px + var(--safe-bottom))}.seek-line .slider{height:36px}}@media(max-height:560px)and (min-width:600px)and (orientation:landscape){.player{flex-direction:row;padding-bottom:var(--safe-bottom)}.controls{display:flex;flex-direction:column;flex:1 1 0;min-width:0}.controls .control{display:flex;flex-direction:column;justify-content:center;flex:1 1 auto}#loopControl{border-bottom:0}.side{flex:1.15 1 0;min-width:0;border-inline-start:1px solid var(--divider)}.wave{flex:1 1 0;min-height:64px}.transport{padding-top:8px;padding-bottom:12px}.transport .buttons{margin-top:4px}}.menu{position:fixed;top:calc(56px + var(--safe-top));right:calc(8px + var(--safe-right));z-index:30;min-width:240px;max-width:calc(100vw - 16px);max-height:calc(100% - 72px);overflow-y:auto;padding:8px 0;border-radius:4px;color:var(--on-surface);background:var(--surface-container);box-shadow:0 1px 2px var(--shadow),0 2px 6px 2px var(--shadow-soft)}[dir=rtl] .menu{right:auto;left:calc(8px + var(--safe-left))}.menu-item{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:0 16px 0 12px;color:var(--on-surface);font:400 14px/20px var(--font);letter-spacing:.25px;text-align:start;text-decoration:none;cursor:pointer}.menu-item svg{color:var(--on-surface-variant)}.menu-item[aria-pressed=true] svg{color:var(--primary)}@media(hover:hover){.menu-item:hover{background:var(--hover)}}.menu-select span{flex:1}.menu-select select{max-width:180px;min-height:32px;border:1px solid var(--outline-variant);border-radius:8px;background-color:var(--surface);color:var(--on-surface)}.menu-divider{height:1px;margin:8px 0;background:var(--divider)}.dialog{width:min(400px,calc(100vw - 32px));max-height:calc(100% - 48px);padding:0;border:0;border-radius:28px;color:var(--on-surface);background:var(--surface-container-high);box-shadow:0 2px 6px 2px var(--shadow-soft),0 1px 2px var(--shadow)}.dialog::backdrop{background:var(--scrim)}@media(pointer:coarse){.dialog{margin-top:max(16px,calc(var(--safe-top) + 12px),6vh);margin-bottom:auto}}.dialog form{padding:24px 24px 16px}.dialog h2{margin:0 0 16px;font:400 24px/32px var(--font)}.dialog p{margin:0 0 12px;color:var(--on-surface-variant)}.dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:20px}.field{display:block;margin-bottom:14px}.field>span:first-child{display:block;margin-bottom:4px;font:500 12px/16px var(--font);letter-spacing:.5px;color:var(--on-surface-variant)}.field-row{display:flex;align-items:center;gap:8px}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.text-field,.select-field{width:100%;min-height:48px;padding:0 14px;border:1px solid var(--outline);border-radius:4px;background:transparent;color:var(--on-surface);font:400 16px/24px var(--font)}.select-field,.menu-select select{-webkit-appearance:none;appearance:none;padding:0 30px 0 10px;background:var(--surface-container-high) var(--select-arrow) no-repeat right 6px center / 20px 20px}[dir=rtl] .select-field,[dir=rtl] .menu-select select{padding:0 10px 0 30px;background-position:left 6px center}.select-field.compact{width:auto;min-height:40px}.text-field:focus,.select-field:focus{outline:none;border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.unit{color:var(--on-surface-variant);white-space:nowrap}.sign-btn{width:44px;height:44px;font:500 20px/1 var(--font)}.field-error{margin-top:-6px!important;color:var(--error)!important;font-size:12px}.loop-only{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px}.check{display:flex;align-items:center;gap:12px;cursor:pointer}.check input{width:18px;height:18px;margin:0;accent-color:var(--primary)}.save-progress{display:flex;flex-direction:column;justify-content:center;gap:6px;flex:1 1 0;min-width:0;margin-inline-end:auto;color:var(--on-surface-variant);font:400 12px/16px var(--font)}.save-progress span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.loop-wave{display:block;width:100%;height:48px;margin-bottom:8px}.loop-shift{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px}.loop-length{min-width:7em;text-align:center;font:500 16px/24px var(--font);font-variant-numeric:tabular-nums}.loop-point{display:flex;align-items:center;gap:4px;margin-bottom:8px}.ab-icon{width:28px;height:28px;margin-inline-end:4px}@media(max-height:560px){.dialog{margin-top:max(8px,var(--safe-top));margin-bottom:auto;max-height:calc(100% - 16px - var(--safe-top) - var(--safe-bottom))}.dialog form{padding:16px 20px 10px}.dialog h2{margin-bottom:8px;font-size:20px;line-height:28px}.dialog p{margin-bottom:8px}.dialog-actions{margin-top:8px}.field{margin-bottom:8px}.text-field,.select-field{min-height:36px}.field>span:first-child{margin-bottom:2px}.loop-wave{height:40px;margin-bottom:4px}.loop-shift,.loop-point{margin-bottom:4px}}@media(max-height:560px)and (min-width:600px){#saveDialog,#loopDialog{width:min(640px,calc(100vw - 32px - var(--safe-left) - var(--safe-right)))}#saveForm,#loopForm{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-auto-flow:row dense;column-gap:16px}#saveForm>*,#loopForm>*{grid-column:1 / -1}#saveForm>.field,#loopForm>.loop-point{grid-column:auto}#saveForm.wav>.field{grid-column:1 / -1}#saveForm.with-loop>.field-pair{grid-column:1}#saveForm.with-loop>.loop-only{grid-column:2;align-self:end;margin-bottom:8px}.loop-wave{height:32px}.loop-shift .icon-btn,.loop-point .icon-btn{width:40px;height:40px}}.time-field{text-align:center;font-variant-numeric:tabular-nums}.snackbar{position:fixed;left:50%;bottom:var(--snackbar-bottom, calc(24px + var(--safe-bottom)));z-index:40;max-width:min(560px,calc(100vw - 32px));padding:14px 16px;border-radius:4px;color:var(--inverse-on-surface);background:var(--inverse-surface);box-shadow:0 1px 3px var(--shadow),0 4px 8px 3px var(--shadow-soft);opacity:0;visibility:hidden;transform:translate(-50%,8px);transition:opacity .2s,transform .2s ease-out,visibility .2s;pointer-events:none}.snackbar.show{opacity:1;visibility:visible;transform:translate(-50%)}.drop-overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:var(--scrim);pointer-events:none}.drop-overlay>div{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 48px;border:2px dashed var(--primary);border-radius:28px;color:var(--primary);background:var(--surface-container-high);font:500 18px/24px var(--font)}.drop-overlay svg{width:48px;height:48px}.noscript{padding:24px;text-align:center}.diag{position:fixed;left:8px;right:8px;top:calc(68px + var(--safe-top));z-index:45;padding:4px 8px;border-radius:6px;background:#000000bf;color:#9f9;font:11px/15px ui-monospace,Menlo,Consolas,monospace;pointer-events:none}.diag:empty{display:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation-duration:.01ms!important}}
