:root{--md-sys-color-primary: #9c4146;--md-sys-color-on-primary: #fff;--md-sys-color-primary-container: #ffd9dd;--md-sys-color-on-primary-container: #40000a;--md-sys-color-error: #ba1a1a;--md-sys-color-secondary: #4e616d;--md-sys-color-secondary-container: #d1e5f4;--md-sys-color-on-secondary-container: #0a1e28;--md-sys-color-background: #fffbff;--md-sys-color-on-background: #201a1b;--md-sys-color-surface: #fffbff;--md-sys-color-surface-container: #f3eaef;--md-sys-color-surface-variant: #f4dddf;--md-sys-color-on-surface: #201a1b;--md-sys-color-on-surface-variant: #524345;--md-sys-color-outline: #857375;--md-sys-color-outline-variant: #d7c1c4;--glow-color-rgb: 156, 65, 70;--glow-shadow-subtle: 0 4px 12px rgb(var(--glow-color-rgb) / 15%), 0 2px 6px rgb(var(--glow-color-rgb) / 8%);--enable-blur: 1;--enable-complex-shadows: 1;--md-sys-motion-easing-emphasized: cubic-bezier(.2, 0, 0, 1);--md-sys-motion-easing-standard: cubic-bezier(.4, 0, .2, 1);--md-sys-motion-duration-medium: .4s;--md-sys-motion-duration-short: .2s;--md-sys-shape-corner-small: 8px;--md-sys-shape-corner-medium: 16px;--md-sys-shape-corner-large: 24px;--md-sys-shape-corner-extra-large: 28px;--md-sys-shape-corner-full: 9999px;--shadow-sm: 0 1px 3px rgb(0 0 0 / 12%), 0 1px 2px rgb(0 0 0 / 6%);--shadow-md: 0 4px 8px 3px rgb(0 0 0 / 15%);--shadow-lg: 0 8px 24px rgb(0 0 0 / 12%);--gradient-cute-primary: linear-gradient(135deg, #ffd9dd 0%, #ffb3b8 50%, #ff9aa2 100%);--gradient-cute-secondary: linear-gradient(135deg, #d1e5f4 0%, #b5c9d8 100%);--gradient-surface-glow: radial-gradient( ellipse at 50% 0%, rgb(255 217 221 / 30%) 0%, transparent 60% );--glow-cute: 0 0 20px rgb(255 179 184 / 40%);--glow-fab-hover: 0 8px 32px rgb(156 65 70 / 35%), 0 0 0 4px rgb(255 217 221 / 50%);--md-sys-motion-easing-bouncy: cubic-bezier(.34, 1.56, .64, 1);--md-sys-motion-easing-overshoot: cubic-bezier(.175, .885, .32, 1.275);--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px);--safe-area-right: env(safe-area-inset-right, 0px);--touch-target-min: 44px;--touch-target-comfortable: 48px}[data-theme=dark]{--md-sys-color-primary: #ffb3b8;--md-sys-color-on-primary: #5f1219;--md-sys-color-primary-container: #7e2a30;--md-sys-color-on-primary-container: #ffd9dd;--md-sys-color-secondary: #b5c9d8;--md-sys-color-secondary-container: #374955;--md-sys-color-on-secondary-container: #d1e5f4;--md-sys-color-background: #201a1b;--md-sys-color-on-background: #ece0e1;--md-sys-color-surface: #201a1b;--md-sys-color-surface-container: #2d2627;--md-sys-color-surface-variant: #524345;--md-sys-color-on-surface: #ece0e1;--md-sys-color-on-surface-variant: #d7c1c4;--md-sys-color-outline: #a08c8e;--md-sys-color-outline-variant: #524345;--md-sys-color-error: #ffb4ab;--gradient-cute-primary: linear-gradient(135deg, #7e2a30 0%, #9c4146 50%, #ffb3b8 100%);--gradient-cute-secondary: linear-gradient(135deg, #374955 0%, #4e616d 100%);--gradient-surface-glow: radial-gradient( ellipse at 50% 0%, rgb(255 179 184 / 15%) 0%, transparent 60% );--glow-cute: 0 0 20px rgb(255 179 184 / 25%);--glow-fab-hover: 0 8px 32px rgb(255 179 184 / 25%), 0 0 0 4px rgb(126 42 48 / 50%);--glow-color-rgb: 255, 179, 184;--glow-shadow-subtle: 0 4px 12px rgb(var(--glow-color-rgb) / 15%), 0 2px 6px rgb(var(--glow-color-rgb) / 8%)}[data-performance=low]{--enable-blur: 0;--enable-complex-shadows: 0}*{box-sizing:border-box;padding:0;margin:0;-webkit-tap-highlight-color:transparent}html{scroll-behavior:smooth;overscroll-behavior:none}body{position:relative;min-height:100vh;min-height:100dvh;overflow:hidden;font-family:Varela Round,"M PLUS Rounded 1c",-apple-system,sans-serif;color:var(--md-sys-color-on-background);background-color:var(--md-sys-color-background);transition:background-color var(--md-sys-motion-duration-medium),color var(--md-sys-motion-duration-medium)}.app-container{display:flex;width:100vw;height:100vh;height:100dvh;overflow:auto hidden;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.app-container::-webkit-scrollbar{display:none}.page-section{position:relative;flex:0 0 100vw;width:100vw;height:100%;content-visibility:auto;overflow:hidden auto;scroll-snap-align:start}#page-timer{overflow-y:hidden}.page-indicators{position:fixed;bottom:calc(24px + var(--safe-area-bottom));left:50%;z-index:50;display:flex;gap:16px;padding:8px 16px;background:var(--md-sys-color-surface-container);border-radius:var(--md-sys-shape-corner-full);box-shadow:var(--shadow-sm);transform:translate(-50%);transition:opacity .3s}.indicator-dot{width:10px;height:10px;padding:0;cursor:pointer;background:var(--md-sys-color-outline-variant);border:none;border-radius:50%;transition:all .3s var(--md-sys-motion-easing-standard)}.indicator-dot.active{background:var(--md-sys-color-primary);transform:scale(1.3)}.config-container{max-width:600px;padding:calc(40px + var(--safe-area-top)) 24px calc(100px + var(--safe-area-bottom));margin:0 auto}.config-menu{display:flex;flex-direction:column;gap:16px;margin-top:24px}.config-btn{display:flex;gap:16px;align-items:center;padding:16px 24px;font-size:1rem;font-weight:600;color:var(--md-sys-color-on-surface);cursor:pointer;background:var(--md-sys-color-surface-container);border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-large);transition:all .2s;-webkit-tap-highlight-color:transparent}.config-btn .material-symbols-rounded{font-size:24px;color:var(--md-sys-color-primary)}.config-btn:hover{background:var(--md-sys-color-surface-variant);border-color:var(--md-sys-color-primary-container);transform:translateY(-2px)}.config-btn:active{transform:scale(.98)}@media(hover:none){.config-btn:hover{background:var(--md-sys-color-surface-container);border-color:var(--md-sys-color-outline-variant);transform:none}.config-btn:active{background:var(--md-sys-color-surface-variant);transform:scale(.98)}}.data-container{max-width:600px;padding:calc(40px + var(--safe-area-top)) 24px calc(100px + var(--safe-area-bottom));margin:0 auto}.data-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.data-header .section-title{margin:0}.history-container{width:100%}.section-title{display:flex;gap:8px;align-items:center;font-size:1.1rem;font-weight:700;color:var(--md-sys-color-primary);letter-spacing:1px}.section-title:before{font-size:1.2rem;content:"🌸"}.tool-btn{position:relative;display:flex;gap:6px;align-items:center;justify-content:center;min-width:var(--touch-target-min);height:var(--touch-target-comfortable);padding:10px 20px;overflow:hidden;font-size:.85rem;font-weight:600;color:var(--md-sys-color-primary);touch-action:manipulation;cursor:pointer;background:transparent;border:1px solid var(--md-sys-color-outline);border-radius:var(--md-sys-shape-corner-full);transition:all .2s;-webkit-touch-callout:none}.tool-btn:hover{background:var(--md-sys-color-surface-container)}.tool-btn:active{background:var(--md-sys-color-primary-container);border-color:transparent;transform:scale(.95)}@media(hover:none){.tool-btn:hover{background:transparent}.tool-btn:active{background:var(--md-sys-color-primary-container)}}#sakura-container{position:absolute;top:0;left:0;z-index:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.sakura{position:absolute;width:12px;height:12px;background:radial-gradient(ellipse at center,var(--md-sys-color-primary-container) 0%,transparent 70%);border-radius:50% 0 50% 50%;opacity:.6;transform-origin:center;animation:sakura-fall linear infinite;will-change:transform,opacity}@keyframes sakura-fall{0%{opacity:0;transform:translateY(-10vh) rotate(0) translate(0)}10%{opacity:.6}90%{opacity:.6}to{opacity:0;transform:translateY(110vh) rotate(720deg) translate(100px)}}.timer-container{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding-top:var(--safe-area-top);padding-bottom:calc(80px + var(--safe-area-bottom))}.kaomoji{position:relative;max-width:90%;padding:12px 24px;margin-bottom:24px;font-family:"M PLUS Rounded 1c",Microsoft YaHei,sans-serif;font-size:1.4rem;line-height:1.5;color:var(--md-sys-color-on-surface-variant);text-align:center;-webkit-user-select:none;user-select:none;background:var(--md-sys-color-surface-container);border:2px solid var(--md-sys-color-surface-variant);border-radius:var(--md-sys-shape-corner-full);box-shadow:var(--shadow-sm),inset 0 1px #ffffff7f;transition:all var(--md-sys-motion-duration-short) var(--md-sys-motion-easing-standard)}.kaomoji:after{position:absolute;bottom:-8px;left:50%;z-index:-1;width:16px;height:16px;content:"";background:var(--md-sys-color-surface-container);border-right:2px solid var(--md-sys-color-surface-variant);border-bottom:2px solid var(--md-sys-color-surface-variant);border-radius:0 0 4px;transform:translate(-50%) rotate(45deg)}.kaomoji:hover{border-color:var(--md-sys-color-primary-container);transform:translateY(-2px) scale(1.02)}.time-display{margin-bottom:48px;font-family:Varela Round,monospace;font-size:clamp(3rem,12vw,5rem);font-variant-numeric:tabular-nums;color:var(--md-sys-color-primary);letter-spacing:-2px;-webkit-user-select:none;user-select:none;transition:transform var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-emphasized);will-change:transform,opacity}.timer-running .time-display{animation:pulse-text 2s ease-in-out infinite}@keyframes pulse-text{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(.98)}}.fab{position:relative;display:flex;align-items:center;justify-content:center;width:96px;height:96px;overflow:hidden;color:var(--md-sys-color-on-primary-container);touch-action:manipulation;cursor:pointer;background-color:var(--md-sys-color-primary-container);border:none;border-radius:var(--md-sys-shape-corner-extra-large);box-shadow:var(--shadow-md);transition:all var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-emphasized);will-change:transform;-webkit-touch-callout:none}.fab .material-symbols-rounded{font-size:40px;transition:transform var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-emphasized)}.fab:hover{background-color:#ffced2;box-shadow:0 6px 12px 4px #00000026;transform:scale(1.05)}.fab:active{box-shadow:0 2px 4px #0003;transform:scale(.92)}@media(hover:none){.fab:hover{background-color:var(--md-sys-color-primary-container);box-shadow:var(--shadow-md);transform:none}.fab:active{background-color:#ffced2;transform:scale(.95)}}[data-theme=dark] .fab:hover{background-color:#9e3a40}.fab.running{color:var(--md-sys-color-on-secondary-container);background-color:var(--md-sys-color-secondary-container);border-radius:32px;animation:fab-pulse 2s ease-in-out infinite}.fab.running .material-symbols-rounded{transform:rotate(90deg) scale(.9)}@keyframes fab-pulse{0%,to{box-shadow:0 4px 8px 3px #00000026}50%{box-shadow:0 4px 20px 6px #9c41464d}}.history-card{position:relative;display:flex;align-items:center;justify-content:space-between;padding:18px 22px;margin-bottom:12px;overflow:hidden;color:var(--md-sys-color-on-surface-variant);cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--md-sys-color-surface-container);border:1px solid transparent;border-radius:var(--md-sys-shape-corner-large);opacity:0;transform:translateY(20px) translateZ(0);transition:transform .3s var(--md-sys-motion-easing-bouncy),box-shadow .3s,border-color .3s;animation:enter-slide-up var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-emphasized) forwards;-webkit-touch-callout:none}.history-card:hover{border-color:var(--md-sys-color-primary-container);box-shadow:var(--shadow-md),var(--glow-cute);transform:translateY(-4px) scale(1.01)}@media(hover:none){.history-card:hover{border-color:transparent;box-shadow:none;transform:none}.history-card:active{background:var(--md-sys-color-surface-variant);transform:scale(.98)}}@keyframes enter-slide-up{to{opacity:1;transform:translateY(0)}}.history-card:after{position:absolute;inset:0;pointer-events:none;content:"";background:var(--md-sys-color-on-surface-variant);opacity:0;transition:opacity .2s}.history-card:active:after{opacity:.08}.card-left{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.card-time{font-size:.75rem;opacity:.8}.card-duration{margin:2px 0;font-size:1.25rem;font-weight:700;color:var(--md-sys-color-on-surface)}.card-comment{max-width:200px;overflow:hidden;text-overflow:ellipsis;font-size:.85rem;color:var(--md-sys-color-primary);white-space:nowrap}.card-right{display:flex;flex-shrink:0;flex-direction:column;gap:6px;align-items:flex-end;margin-left:12px}.star-display{font-size:1rem;color:#f9ab00;letter-spacing:1px;text-shadow:0 1px 2px rgb(249 171 0 / 30%)}.tags-display{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end;max-width:120px}.tag-mini{padding:4px 10px;font-size:.65rem;font-weight:600;color:var(--md-sys-color-on-surface-variant);background:linear-gradient(135deg,var(--md-sys-color-surface-variant),var(--md-sys-color-surface-container));border-radius:var(--md-sys-shape-corner-full);transition:transform .2s}.history-card:hover .tag-mini{transform:scale(1.05)}.empty-state{padding:40px 20px;margin-top:60px;color:var(--md-sys-color-outline);text-align:center;transition:opacity var(--md-sys-motion-duration-medium) ease-out,transform var(--md-sys-motion-duration-medium) ease-out}.empty-state .emoji{display:block;margin-bottom:16px;font-size:3rem}.modal-overlay{position:fixed;inset:0;z-index:1000;display:flex;visibility:hidden;align-items:center;justify-content:center;padding:var(--safe-area-top) var(--safe-area-right) var(--safe-area-bottom) var(--safe-area-left);overscroll-behavior:contain;pointer-events:none;background-color:#0006;opacity:0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:opacity var(--md-sys-motion-duration-medium) ease,visibility var(--md-sys-motion-duration-medium) ease}@supports (backdrop-filter: blur(8px)){.modal-overlay{background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}.modal-overlay.active{visibility:visible;pointer-events:auto;opacity:1}.modal-overlay.closing{pointer-events:none;opacity:0}.modal{width:90%;max-width:400px;max-height:calc(85vh - var(--safe-area-top) - var(--safe-area-bottom));max-height:calc(85dvh - var(--safe-area-top) - var(--safe-area-bottom));padding:28px;overflow-y:auto;overscroll-behavior:contain;-webkit-user-select:text;user-select:text;background:var(--md-sys-color-surface-container);border-radius:28px;box-shadow:var(--shadow-lg);opacity:0;transform:scale(.9) translateY(20px);transition:transform var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-emphasized),opacity var(--md-sys-motion-duration-short) linear;-webkit-overflow-scrolling:touch}.modal-overlay.active .modal{opacity:1;transform:scale(1) translateY(0)}.modal-overlay.closing .modal{opacity:0;transform:scale(.9) translateY(20px)}.modal-title{margin-bottom:16px;font-family:"M PLUS Rounded 1c",sans-serif;font-size:1.4rem;font-weight:700;color:var(--md-sys-color-on-surface);text-align:center}.result-time{margin:16px 0;font-size:2.8rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--md-sys-color-primary);text-align:center}.rating-container{display:flex;gap:4px;justify-content:center;margin:16px 0}.star-input{display:flex;align-items:center;justify-content:center;width:var(--touch-target-min);height:var(--touch-target-min);font-size:28px;color:var(--md-sys-color-outline-variant);touch-action:manipulation;cursor:pointer;border-radius:50%;transition:color .2s,transform .2s,background-color .2s}.star-input:hover{background-color:rgb(var(--glow-color-rgb) / 8%);transform:scale(1.1)}.star-input:active{background-color:rgb(var(--glow-color-rgb) / 15%);transform:scale(.95)}.star-input.active{color:#f9ab00;animation:star-pop .3s cubic-bezier(.175,.885,.32,1.275)}@keyframes star-pop{50%{transform:scale(1.3)}}.tags-section-title{margin:20px 0 10px;font-size:.8rem;color:var(--md-sys-color-outline);text-align:center}.tags-container{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:8px 0 16px}.tag-btn{position:relative;display:flex;align-items:center;justify-content:center;min-height:var(--touch-target-min);padding:8px 16px;overflow:hidden;font-size:.8rem;font-weight:500;color:var(--md-sys-color-on-surface-variant);touch-action:manipulation;cursor:pointer;background:transparent;border:1px solid var(--md-sys-color-outline);border-radius:var(--md-sys-shape-corner-large);transition:all .2s;-webkit-touch-callout:none}.tag-btn:hover{background:var(--md-sys-color-surface-variant)}.tag-btn:active{transform:scale(.95)}.tag-btn.active{color:var(--md-sys-color-on-secondary-container);background:var(--md-sys-color-secondary-container);border-color:transparent}.tag-btn.active:before{margin-right:4px;font-family:Material Symbols Rounded;font-size:16px;content:"check"}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.modal-actions.column{flex-direction:column}.modal-actions .btn{flex:1;justify-content:center}.btn{position:relative;display:flex;align-items:center;justify-content:center;min-height:var(--touch-target-comfortable);padding:0 28px;overflow:hidden;font-size:.95rem;font-weight:600;touch-action:manipulation;cursor:pointer;border:none;border-radius:22px;transition:all .2s;-webkit-touch-callout:none}.btn-ghost{color:var(--md-sys-color-primary);background:transparent}.btn-ghost:hover{background:#9c414614}.btn-ghost:active{background:#9c414626;transform:scale(.97)}.btn-primary{color:var(--md-sys-color-on-primary);background:var(--md-sys-color-primary)}.btn-primary:hover{box-shadow:var(--shadow-sm);filter:brightness(1.1)}.btn-primary:active{filter:brightness(.95);transform:scale(.97)}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:24px}.stat-item{padding:16px 12px;text-align:center;background:var(--md-sys-color-surface-variant);border-radius:var(--md-sys-shape-corner-medium);transition:transform .2s}.stat-item:hover{transform:scale(1.02)}.stat-icon{margin-bottom:4px;font-size:1.5rem}.stat-label{margin-bottom:4px;font-size:.7rem;color:var(--md-sys-color-on-surface-variant);text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:1.3rem;font-weight:700;color:var(--md-sys-color-primary)}.chart-section{margin-top:20px}.chart-title{margin-bottom:16px;font-size:.85rem;color:var(--md-sys-color-on-surface-variant);text-align:center}.simple-bar-chart{display:flex;gap:4px;align-items:flex-end;justify-content:space-around;height:120px;padding:16px 8px 8px;background:var(--md-sys-color-surface-variant);border-radius:var(--md-sys-shape-corner-medium)}.chart-bar-col{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}.chart-bar{position:relative;width:70%;min-height:4px;background:var(--md-sys-color-secondary-container);border-radius:6px 6px 2px 2px;transition:height .5s var(--md-sys-motion-easing-emphasized)}.chart-bar.has-data{background:linear-gradient(to top,var(--md-sys-color-primary),var(--md-sys-color-primary-container))}.chart-bar-value{position:absolute;top:-18px;left:50%;font-size:.65rem;color:var(--md-sys-color-outline);transform:translate(-50%)}.chart-label{margin-top:6px;font-size:.65rem;font-weight:500;color:var(--md-sys-color-outline)}.toast{position:fixed;bottom:calc(100px + var(--safe-area-bottom));left:50%;z-index:2000;max-width:85%;padding:14px 28px;font-size:.9rem;font-weight:500;color:var(--md-sys-color-surface);text-align:center;pointer-events:none;background:var(--md-sys-color-on-surface);border-radius:var(--md-sys-shape-corner-extra-large);box-shadow:var(--shadow-lg);opacity:0;transform:translate(-50%) translateY(100px);transition:opacity var(--md-sys-motion-duration-short),transform var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-emphasized);will-change:transform,opacity}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.ripple{position:absolute;pointer-events:none;background:currentcolor;border-radius:50%;opacity:.2;transform:scale(0);animation:ripple-animation .6s linear}@keyframes ripple-animation{to{opacity:0;transform:scale(4)}}button .ripple{background:var(--md-sys-color-on-primary)}.history-card .ripple{background:var(--md-sys-color-on-surface)}@keyframes slide-down{0%{opacity:0;transform:translateY(-20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes subtle-glow{0%{box-shadow:var(--shadow-sm)}50%{box-shadow:var(--glow-shadow-subtle)}to{box-shadow:var(--shadow-sm)}}.history-card.new-card{border-color:var(--md-sys-color-primary);animation:slide-down var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-bouncy) forwards,new-card-glow 2s ease-out}@keyframes new-card-glow{0%{box-shadow:0 0 0 4px var(--md-sys-color-primary-container),var(--shadow-md)}to{box-shadow:0 0 0 0 transparent,var(--shadow-sm)}}.history-card:not(.new-card){opacity:0;transform:translateY(20px) translateZ(0);animation:enter-slide-up var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-emphasized) forwards}.empty-state.fade-out{pointer-events:none;opacity:0;transform:translateY(-20px)}.history-card .tag-mini{max-width:60px;padding:3px 8px;overflow:hidden;text-overflow:ellipsis;font-size:.65rem;font-weight:600;color:var(--md-sys-color-on-surface-variant);white-space:nowrap;background:var(--md-sys-color-surface-variant);border-radius:var(--md-sys-shape-corner-small)}.history-card.new-card:before{position:absolute;top:50%;left:8px;width:4px;height:12px;content:"";background:var(--md-sys-color-primary);border-radius:2px;opacity:0;transform:translateY(-50%);animation:fade-in .3s ease-out .2s forwards}@keyframes fade-in{to{opacity:1}}.history-card:not(.new-card):before{display:none}*:focus-visible{outline:3px solid var(--md-sys-color-primary);outline-offset:3px;box-shadow:0 0 0 6px rgb(var(--glow-color-rgb) / 20%)}button:focus-visible,.btn:focus-visible{outline:3px solid var(--md-sys-color-primary);outline-offset:3px;box-shadow:0 0 0 6px rgb(var(--glow-color-rgb) / 25%),var(--shadow-md)}.fab:focus-visible{outline:3px solid var(--md-sys-color-primary);outline-offset:4px;box-shadow:0 0 0 8px rgb(var(--glow-color-rgb) / 20%),var(--shadow-md);transform:scale(1.02)}.history-card:focus-visible{outline:3px solid var(--md-sys-color-primary);outline-offset:2px;box-shadow:0 0 0 6px rgb(var(--glow-color-rgb) / 20%),var(--shadow-md);transform:translateY(-2px)}.tag-btn:focus-visible{outline:2px solid var(--md-sys-color-primary);outline-offset:2px;box-shadow:0 0 0 4px rgb(var(--glow-color-rgb) / 15%)}.tool-btn:focus-visible,.config-btn:focus-visible{outline:2px solid var(--md-sys-color-primary);outline-offset:2px;background:var(--md-sys-color-surface-container);box-shadow:0 0 0 4px rgb(var(--glow-color-rgb) / 15%)}.star-input:focus-visible{outline:2px solid var(--md-sys-color-primary);outline-offset:3px;border-radius:6px;transform:scale(1.15)}.modal .btn:focus-visible{outline-offset:4px;box-shadow:0 0 0 6px rgb(var(--glow-color-rgb) / 30%),var(--shadow-sm)}@media(prefers-contrast:more){*:focus-visible{outline:currentcolor solid 4px}.history-card:focus-visible,.fab:focus-visible{outline-offset:4px}}@media(forced-colors:active){*:focus-visible{outline:3px solid CanvasText;outline-offset:3px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}*:focus-visible{transition:none}}[data-performance=low] .modal-overlay{background:#000000b3;-webkit-backdrop-filter:none;backdrop-filter:none}[data-performance=low] #sakura-container{display:none}[data-performance=low] *{transition-duration:.05s!important}[data-performance=low] .history-card,[data-performance=low] .history-card.new-card{opacity:1;transform:none;animation:none!important}[data-performance=low] .fab,[data-performance=low] .modal,[data-performance=low] .history-card,[data-performance=low] .kaomoji{box-shadow:0 1px 3px #0003}[data-performance=low] .fab:hover,[data-performance=low] .history-card:hover{box-shadow:0 2px 6px #00000040;transform:none}[data-performance=low] .timer-running .time-display,[data-performance=low] .fab.running{animation:none}[data-performance=low] .ripple{animation-duration:.3s}@media(max-width:768px){.time-display{font-size:clamp(2.5rem,10vw,4rem)}.fab{width:88px;height:88px}.fab .material-symbols-rounded{font-size:36px}}@media(max-width:480px){.timer-container{padding-top:calc(var(--safe-area-top) + 8px)}.kaomoji{padding:10px 18px;margin-bottom:20px;font-size:1.15rem}.time-display{margin-bottom:32px;font-size:clamp(2.2rem,14vw,3.5rem);letter-spacing:-1px}.fab{width:80px;height:80px}.fab .material-symbols-rounded{font-size:32px}.section-title{margin:20px 0 12px;font-size:.85rem}@keyframes slide-down-mobile{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.history-card{padding:14px 16px;margin-bottom:10px}.history-card.new-card{animation:slide-down-mobile var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-emphasized) forwards,subtle-glow 1s ease-out}.card-duration{font-size:1.1rem}.card-comment{max-width:150px;font-size:.8rem}.card-right{margin-left:8px}.history-card .tag-mini{max-width:50px;padding:2px 6px;font-size:.6rem}.history-card.new-card:before{left:6px;width:3px;height:10px}.modal-overlay{align-items:flex-end;padding-bottom:var(--safe-area-bottom)}.modal{width:100%;max-width:none;max-height:calc(90vh - var(--safe-area-bottom));max-height:calc(90dvh - var(--safe-area-bottom));padding:24px 20px calc(24px + var(--safe-area-bottom));border-radius:24px 24px 0 0;transform:translateY(100%)}.modal-overlay.active .modal{transform:translateY(0)}.modal-overlay.closing .modal{transform:translateY(100%)}.modal-title{font-size:1.2rem}.result-time{font-size:2.2rem}.modal-actions{flex-direction:column;gap:10px}.modal-actions .btn{width:100%}.modal-confirm .modal-actions{flex-direction:row!important;gap:12px}.modal-confirm .modal-actions .btn{flex:1;width:auto;padding:0 8px;font-size:.9rem}.tag-btn{min-height:40px;padding:6px 12px;font-size:.75rem}.tags-container{gap:6px}.star-input{width:40px;height:40px;font-size:24px}.stats-grid{gap:8px}.stat-item{padding:12px 8px}.stat-icon{font-size:1.25rem}.stat-value{font-size:1.1rem}.simple-bar-chart{height:100px}.toast{bottom:calc(90px + var(--safe-area-bottom));padding:12px 20px;font-size:.85rem}}@media(max-width:360px){.kaomoji{padding:8px 14px;font-size:1rem}.time-display{font-size:2rem}.fab{width:72px;height:72px}.fab .material-symbols-rounded{font-size:28px}.history-card{padding:12px 14px}.card-duration{font-size:1rem}.card-comment{max-width:120px;font-size:.75rem}.star-display{font-size:.85rem}.modal{padding:20px 16px calc(20px + var(--safe-area-bottom))}.result-time{font-size:1.8rem}.tag-btn{padding:5px 10px;font-size:.7rem}}@media(max-width:896px)and (orientation:landscape){.timer-container{padding-top:calc(var(--safe-area-top) + 4px)}.kaomoji{margin-bottom:12px;font-size:1rem}.time-display{margin-bottom:20px;font-size:2.5rem}.fab{width:64px;height:64px}.fab .material-symbols-rounded{font-size:28px}.modal-overlay{align-items:center}.modal{width:85%;max-width:480px;max-height:calc(85vh - var(--safe-area-top) - var(--safe-area-bottom));border-radius:20px;transform:scale(.9)}.modal-overlay.active .modal{transform:scale(1)}}#file-input{display:none}.modal-confirm{position:relative;display:flex;flex-direction:column;align-items:center;width:90%;max-width:340px;padding:32px 24px 24px;overflow:visible;text-align:center;opacity:0;transform:scale(.8) translateY(20px)}.modal-overlay.active .modal-confirm{animation:modal-spring-enter .5s cubic-bezier(.34,1.56,.64,1) forwards}.modal-overlay.closing .modal-confirm{animation:modal-zoom-out .2s cubic-bezier(.4,0,.2,1) forwards}.confirm-icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center;width:72px;height:72px;margin-bottom:20px;color:var(--md-sys-color-primary);background:var(--md-sys-color-surface-container);border-radius:50%;box-shadow:0 8px 16px rgb(var(--glow-color-rgb) / 10%),inset 0 0 0 2px var(--md-sys-color-surface)}.confirm-icon-wrapper:after{position:absolute;inset:-4px;z-index:-1;content:"";background:radial-gradient(circle,var(--md-sys-color-primary-container) 0%,transparent 70%);border-radius:50%;opacity:.6;animation:pulse-glow 3s infinite ease-in-out}.confirm-icon-wrapper .material-symbols-rounded{font-size:36px;animation:icon-wobble 1s ease-in-out .2s}.modal-confirm p{margin:12px 0 28px;font-size:.95rem;line-height:1.6;color:var(--md-sys-color-on-surface-variant)}@keyframes modal-spring-enter{0%{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes modal-zoom-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes icon-wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}@keyframes pulse-glow{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.3;transform:scale(1.2)}}[data-performance=low] .modal-overlay.active .modal-confirm{opacity:1;transform:none;animation:none}.import-dialog-modal .modal{max-width:500px}.import-info{padding:16px;margin:20px 0;background:var(--md-sys-color-surface-variant);border-radius:var(--md-sys-shape-corner-medium)}.import-options{display:flex;flex-direction:column;gap:12px;margin:24px 0}.import-options .btn{display:flex;gap:12px;align-items:center;padding:16px;text-align:left;background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant)}.import-options .btn:hover{background:var(--md-sys-color-surface-variant);border-color:var(--md-sys-color-primary)}.analysis-summary{padding:16px;margin:16px 0;background:var(--md-sys-color-surface-variant);border-radius:var(--md-sys-shape-corner-medium)}.analysis-details{margin:24px 0}.confirm-modal .modal-confirm{max-width:340px;padding:32px 24px;text-align:center}.confirm-modal .confirm-icon-wrapper{margin-bottom:20px;font-size:48px;color:var(--md-sys-color-primary)}.confirm-modal .modal-confirm.is-danger .confirm-icon-wrapper{color:var(--md-sys-color-error)}.modal input,.modal textarea{width:100%;min-height:var(--touch-target-comfortable);padding:12px 16px;margin-bottom:16px;font-family:inherit;font-size:.95rem;color:var(--md-sys-color-on-surface);appearance:none;background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-medium);transition:border-color .2s}.modal input:focus,.modal textarea:focus{outline:none;border-color:var(--md-sys-color-primary)}.modal input[type=number]{appearance:textfield}.modal input[type=number]::-webkit-inner-spin-button,.modal input[type=number]::-webkit-outer-spin-button{margin:0;appearance:none}.rhythm-panel{position:absolute;right:16px;bottom:calc(80px + var(--safe-area-bottom));z-index:20;display:flex;flex-direction:column-reverse;gap:8px;align-items:flex-end}.rhythm-toggle{position:relative;display:flex;align-items:center;justify-content:center;width:48px;height:48px;color:var(--md-sys-color-on-primary-container);touch-action:manipulation;cursor:pointer;background:var(--md-sys-color-primary-container);border:none;border-radius:50%;box-shadow:var(--shadow-md);transition:all var(--md-sys-motion-duration-short) var(--md-sys-motion-easing-standard);-webkit-touch-callout:none}.rhythm-toggle .material-symbols-rounded{font-size:22px;transition:transform var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-emphasized)}.rhythm-toggle:hover{box-shadow:var(--glow-fab-hover);transform:scale(1.08)}.rhythm-toggle:active{transform:scale(.92)}@media(hover:none){.rhythm-toggle:hover{box-shadow:var(--shadow-md);transform:none}.rhythm-toggle:active{transform:scale(.92)}}.rhythm-panel.expanded .rhythm-toggle .material-symbols-rounded{transform:rotate(360deg)}.rhythm-controls{display:flex;visibility:hidden;flex-direction:column;gap:12px;width:300px;max-height:0;padding:0;overflow:hidden;overscroll-behavior:contain;background:var(--md-sys-color-surface-container);border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-extra-large);box-shadow:var(--shadow-lg);opacity:0;transform:translateY(12px) scale(.95);transform-origin:bottom right;transition:max-height var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-emphasized),opacity var(--md-sys-motion-duration-short) var(--md-sys-motion-easing-standard),transform var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-emphasized),padding var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-emphasized),visibility var(--md-sys-motion-duration-medium);-webkit-overflow-scrolling:touch}.rhythm-panel.expanded .rhythm-controls{visibility:visible;max-height:calc(100vh - 160px - var(--safe-area-bottom));padding:20px;overflow-y:auto;opacity:1;transform:translateY(0) scale(1)}.rhythm-controls::-webkit-scrollbar{width:4px}.rhythm-controls::-webkit-scrollbar-track{background:transparent}.rhythm-controls::-webkit-scrollbar-thumb{background:var(--md-sys-color-outline-variant);border-radius:2px}.control-section{padding:16px;background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-large);transition:border-color .2s}.control-section:hover{border-color:var(--md-sys-color-primary-container)}.control-header{display:flex;gap:8px;align-items:center;margin-bottom:14px;font-size:.9rem;font-weight:600;color:var(--md-sys-color-on-surface)}.control-header .material-symbols-rounded{font-size:20px;color:var(--md-sys-color-primary)}.control-header .toggle-switch{margin-left:auto}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;cursor:pointer}.toggle-switch input{width:0;height:0;opacity:0}.toggle-switch .slider{position:absolute;inset:0;cursor:pointer;background-color:var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-full);transition:all .3s var(--md-sys-motion-easing-standard)}.toggle-switch .slider:before{position:absolute;bottom:3px;left:3px;width:18px;height:18px;content:"";background-color:var(--md-sys-color-surface);border-radius:50%;box-shadow:0 1px 3px #0003;transition:all .3s var(--md-sys-motion-easing-emphasized)}.toggle-switch input:checked+.slider{background-color:var(--md-sys-color-primary)}.toggle-switch input:checked+.slider:before{background-color:var(--md-sys-color-on-primary);transform:translate(20px)}.toggle-switch input:focus-visible+.slider{outline:3px solid var(--md-sys-color-primary);outline-offset:3px;box-shadow:0 0 0 6px rgb(var(--glow-color-rgb) / 20%)}.bpm-control{display:flex;gap:8px;align-items:center;justify-content:center;margin-bottom:12px}.bpm-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--md-sys-color-primary);touch-action:manipulation;cursor:pointer;background:var(--md-sys-color-surface-variant);border:1px solid var(--md-sys-color-outline-variant);border-radius:50%;transition:all .2s var(--md-sys-motion-easing-standard);-webkit-touch-callout:none}.bpm-btn .material-symbols-rounded{font-size:18px}.bpm-btn:hover{background:var(--md-sys-color-primary-container);border-color:var(--md-sys-color-primary-container);transform:scale(1.1)}.bpm-btn:active{transform:scale(.9)}@media(hover:none){.bpm-btn:hover{background:var(--md-sys-color-surface-variant);border-color:var(--md-sys-color-outline-variant);transform:none}.bpm-btn:active{background:var(--md-sys-color-primary-container);transform:scale(.9)}}.bpm-display{display:flex;flex-direction:column;gap:2px;align-items:center;min-width:80px}.bpm-display input[type=number]{width:72px;padding:6px 4px;margin-bottom:0;font-family:Varela Round,monospace;font-size:1.6rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--md-sys-color-primary);text-align:center;appearance:none;appearance:textfield;background:transparent;border:none;border-bottom:2px solid var(--md-sys-color-outline-variant);border-radius:0;transition:border-color .2s}.bpm-display input[type=number]:focus{outline:none;border-bottom-color:var(--md-sys-color-primary)}.bpm-display input[type=number]::-webkit-inner-spin-button,.bpm-display input[type=number]::-webkit-outer-spin-button{margin:0;appearance:none}.bpm-label{font-size:.65rem;font-weight:600;color:var(--md-sys-color-outline);text-transform:uppercase;letter-spacing:1px}.bpm-presets{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:12px}.preset-btn{padding:5px 12px;font-size:.75rem;font-weight:600;color:var(--md-sys-color-on-surface-variant);touch-action:manipulation;cursor:pointer;background:transparent;border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-full);transition:all .2s var(--md-sys-motion-easing-standard);-webkit-touch-callout:none}.preset-btn:hover{background:var(--md-sys-color-surface-variant);border-color:var(--md-sys-color-primary-container)}.preset-btn:active{transform:scale(.93)}.preset-btn.active{color:var(--md-sys-color-on-primary-container);background:var(--md-sys-color-primary-container);border-color:transparent;box-shadow:0 2px 6px rgb(var(--glow-color-rgb) / 20%)}.sound-select{display:flex;gap:8px;align-items:center;margin-bottom:12px;font-size:.8rem;color:var(--md-sys-color-on-surface-variant)}.sound-select label{font-weight:600;white-space:nowrap}.sound-select select{flex:1;min-height:var(--touch-target-min);padding:6px 32px 6px 10px;font-family:inherit;font-size:.8rem;color:var(--md-sys-color-on-surface);appearance:none;cursor:pointer;background:var(--md-sys-color-surface-variant);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23857375'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:18px;border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-small);transition:border-color .2s}.sound-select select:focus{outline:none;border-color:var(--md-sys-color-primary)}.beat-visualizer{display:flex;gap:10px;align-items:center;justify-content:center;padding:10px 0 4px}.beat-dot{width:14px;height:14px;background:var(--md-sys-color-outline-variant);border-radius:50%;box-shadow:inset 0 1px 2px #0000001a;transition:all .15s var(--md-sys-motion-easing-standard)}.beat-dot.active{background:var(--md-sys-color-primary);box-shadow:0 0 12px rgb(var(--glow-color-rgb) / 50%),0 0 4px rgb(var(--glow-color-rgb) / 30%);transform:scale(1.4)}.beat-dot:first-child.active{background:var(--md-sys-color-primary);box-shadow:0 0 18px rgb(var(--glow-color-rgb) / 60%),0 0 6px rgb(var(--glow-color-rgb) / 40%);transform:scale(1.6)}.music-upload{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.upload-btn{display:flex;gap:6px;align-items:center;min-height:var(--touch-target-min);padding:8px 14px;font-size:.8rem;font-weight:600;color:var(--md-sys-color-primary);touch-action:manipulation;cursor:pointer;background:transparent;border:1px dashed var(--md-sys-color-outline);border-radius:var(--md-sys-shape-corner-medium);transition:all .2s;-webkit-touch-callout:none}.upload-btn .material-symbols-rounded{font-size:18px}.upload-btn:hover{background:var(--md-sys-color-primary-container);border-color:var(--md-sys-color-primary);border-style:solid}.upload-btn:active{transform:scale(.95)}.file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:.75rem;color:var(--md-sys-color-outline);white-space:nowrap}.music-controls{display:flex;gap:10px;align-items:center;margin-bottom:12px}.music-btn{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:36px;height:36px;color:var(--md-sys-color-on-primary-container);touch-action:manipulation;cursor:pointer;background:var(--md-sys-color-primary-container);border:none;border-radius:50%;transition:all .2s var(--md-sys-motion-easing-standard);-webkit-touch-callout:none}.music-btn .material-symbols-rounded{font-size:20px}.music-btn:hover:not(:disabled){box-shadow:var(--glow-cute);transform:scale(1.1)}.music-btn:active:not(:disabled){transform:scale(.9)}.music-btn:disabled{cursor:not-allowed;opacity:.4}.progress-bar{position:relative;flex:1;height:6px;overflow:hidden;touch-action:manipulation;cursor:pointer;background:var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-full);transition:height .2s}.progress-bar:hover{height:8px}.progress-fill{height:100%;background:linear-gradient(90deg,var(--md-sys-color-primary),var(--md-sys-color-primary-container));border-radius:var(--md-sys-shape-corner-full);transition:width .1s linear}.music-time{flex-shrink:0;min-width:36px;font-family:Varela Round,monospace;font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--md-sys-color-outline);text-align:right}.volume-control{display:flex;gap:8px;align-items:center;margin-bottom:10px}.volume-control .material-symbols-rounded{font-size:18px;color:var(--md-sys-color-outline)}.volume-control input[type=range]{flex:1;height:4px;appearance:none;cursor:pointer;outline:none;background:var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-full);transition:background .2s}.volume-control input[type=range]::-webkit-slider-thumb{width:18px;height:18px;appearance:none;cursor:pointer;background:var(--md-sys-color-primary);border:2px solid var(--md-sys-color-surface);border-radius:50%;box-shadow:0 1px 4px #0003;transition:all .2s}.volume-control input[type=range]::-webkit-slider-thumb:hover{box-shadow:0 0 8px rgb(var(--glow-color-rgb) / 40%),0 1px 4px #0003;transform:scale(1.2)}.volume-control input[type=range]::-webkit-slider-thumb:active{transform:scale(1.1)}.volume-control input[type=range]::-moz-range-thumb{width:18px;height:18px;appearance:none;cursor:pointer;background:var(--md-sys-color-primary);border:2px solid var(--md-sys-color-surface);border-radius:50%;box-shadow:0 1px 4px #0003}.volume-control input[type=range]:focus-visible{box-shadow:0 0 0 4px rgb(var(--glow-color-rgb) / 20%)}#volume-value{min-width:36px;font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--md-sys-color-outline);text-align:right}.loop-control{display:flex;align-items:center}.loop-control label{display:flex;gap:8px;align-items:center;font-size:.8rem;color:var(--md-sys-color-on-surface-variant);cursor:pointer;-webkit-user-select:none;user-select:none}.loop-control input[type=checkbox]{position:relative;width:18px;height:18px;appearance:none;touch-action:manipulation;cursor:pointer;background:var(--md-sys-color-surface-variant);border:2px solid var(--md-sys-color-outline);border-radius:4px;transition:all .2s}.loop-control input[type=checkbox]:checked{background:var(--md-sys-color-primary);border-color:var(--md-sys-color-primary)}.loop-control input[type=checkbox]:checked:after{position:absolute;top:1px;left:4px;width:5px;height:9px;content:"";border-right:2px solid var(--md-sys-color-on-primary);border-bottom:2px solid var(--md-sys-color-on-primary);transform:rotate(45deg)}.loop-control input[type=checkbox]:focus-visible{outline:2px solid var(--md-sys-color-primary);outline-offset:2px;box-shadow:0 0 0 4px rgb(var(--glow-color-rgb) / 15%)}[data-performance=low] .rhythm-controls{-webkit-backdrop-filter:none;backdrop-filter:none}[data-performance=low] .rhythm-panel.expanded .rhythm-controls{transform:none;transition:none}[data-performance=low] .rhythm-toggle:hover{box-shadow:var(--shadow-md);transform:none}[data-performance=low] .beat-dot.active{box-shadow:none;transform:scale(1.2)}[data-performance=low] .bpm-btn:hover,[data-performance=low] .preset-btn:active,[data-performance=low] .music-btn:hover:not(:disabled),[data-performance=low] .upload-btn:active{transform:none}@media(max-width:480px){.rhythm-panel{right:12px}.rhythm-toggle{width:44px;height:44px}.rhythm-toggle .material-symbols-rounded{font-size:20px}.rhythm-controls{width:calc(100vw - 32px);max-width:320px;transform-origin:bottom center}.rhythm-panel.expanded .rhythm-controls{max-height:calc(100vh - 160px - var(--safe-area-bottom));padding:16px}.control-section{padding:12px}.control-header{font-size:.85rem}.bpm-display input[type=number]{width:60px;font-size:1.3rem}.preset-btn{padding:4px 10px;font-size:.7rem}.beat-dot{width:12px;height:12px}.upload-btn{padding:6px 12px;font-size:.75rem}.file-name{font-size:.7rem}.volume-control input[type=range]::-webkit-slider-thumb{width:16px;height:16px}}@media(max-width:360px){.rhythm-controls{max-width:280px}.bpm-btn{width:32px;height:32px}.bpm-display{min-width:60px}.bpm-display input[type=number]{width:50px;font-size:1.1rem}.beat-visualizer{gap:8px}.beat-dot{width:10px;height:10px}}@media(max-width:896px)and (orientation:landscape){.rhythm-panel.expanded .rhythm-controls{max-height:calc(100vh - 140px - var(--safe-area-bottom))}}@media(prefers-reduced-motion:reduce){.beat-dot.active{outline:2px solid var(--md-sys-color-primary);outline-offset:2px;box-shadow:none;transform:none;transition:none}.rhythm-controls,.rhythm-toggle .material-symbols-rounded{transition:none}}.swipe-indicator{position:absolute;top:8px;left:50%;width:36px;height:4px;background:var(--md-sys-color-outline-variant);border-radius:2px;transform:translate(-50%)}button,[role=button]{touch-action:manipulation}.keyboard-open .page-indicators,.keyboard-open .rhythm-panel{display:none}.tag-manager-container{display:flex;flex-direction:column;max-height:60vh;padding-right:4px;overflow-y:auto}.tag-manager-container::-webkit-scrollbar{width:4px}.tag-manager-container::-webkit-scrollbar-thumb{background:var(--md-sys-color-outline-variant);border-radius:2px}.tag-category-group{margin-bottom:16px}.tag-category-title{padding-bottom:4px;margin-bottom:8px;font-size:.85rem;font-weight:600;color:var(--md-sys-color-primary);border-bottom:1px solid var(--md-sys-color-outline-variant)}.tag-items{display:flex;flex-direction:column;gap:8px}.tag-edit-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-medium)}.tag-edit-item .tag-name{font-size:.9rem;font-weight:500;color:var(--md-sys-color-on-surface)}.tag-actions{display:flex;gap:4px}.icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--md-sys-color-outline);cursor:pointer;background:transparent;border:none;border-radius:50%;transition:all .2s}.icon-btn:hover{color:var(--md-sys-color-primary);background:var(--md-sys-color-surface-variant)}.icon-btn.delete-tag-btn:hover{color:var(--md-sys-color-error);background:#ffdad6}[data-theme=dark] .icon-btn.delete-tag-btn:hover{background:#93000a}.tag-form .form-group{margin-bottom:16px}.tag-form label{display:block;margin-bottom:8px;font-size:.85rem;color:var(--md-sys-color-on-surface-variant)}.tag-form select{width:100%;min-height:var(--touch-target-comfortable);padding:12px 16px;font-family:inherit;font-size:.95rem;color:var(--md-sys-color-on-surface);appearance:none;background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-medium)}.tag-form select:focus{outline:none;border-color:var(--md-sys-color-primary)}
