: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 #0000001f, 0 1px 2px #0000000f;--shadow-md:0 4px 8px 3px #00000026;--shadow-lg:0 8px 24px #0000001f;--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%, #ffd9dd4d 0%, transparent 60%);--glow-cute:0 0 20px #ffb3b866;--glow-fab-hover:0 8px 32px #9c414659, 0 0 0 4px #ffd9dd80;--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%, #ffb3b826 0%, transparent 60%);--glow-cute:0 0 20px #ffb3b840;--glow-fab-hover:0 8px 32px #ffb3b840, 0 0 0 4px #7e2a3080;--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;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html{scroll-behavior:smooth;overscroll-behavior:none}body{min-height:100dvh;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);font-family:Varela Round,"M PLUS Rounded 1c",-apple-system,sans-serif;position:relative;overflow:hidden}.app-container{scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;width:100vw;height:100dvh;display:flex;overflow:auto hidden}.app-container::-webkit-scrollbar{display:none}.page-section{content-visibility:auto;scroll-snap-align:start;flex:0 0 100vw;width:100vw;height:100%;position:relative;overflow:hidden auto}#page-timer{overflow-y:hidden}.page-indicators{bottom:calc(24px + var(--safe-area-bottom));z-index:50;background:var(--md-sys-color-surface-container);border-radius:var(--md-sys-shape-corner-full);box-shadow:var(--shadow-sm);gap:16px;padding:8px 16px;transition:opacity .3s;display:flex;position:fixed;left:50%;transform:translate(-50%)}.indicator-dot{cursor:pointer;background:var(--md-sys-color-outline-variant);width:10px;height:10px;transition:all .3s var(--md-sys-motion-easing-standard);border:none;border-radius:50%;padding:0}.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{flex-direction:column;gap:16px;margin-top:24px;display:flex}.config-btn{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);-webkit-tap-highlight-color:transparent;align-items:center;gap:16px;padding:16px 24px;font-size:1rem;font-weight:600;transition:all .2s;display:flex}.config-btn .material-symbols-rounded{color:var(--md-sys-color-primary);font-size:24px}.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{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.data-header .section-title{margin:0}.history-container{width:100%}.section-title{color:var(--md-sys-color-primary);letter-spacing:1px;align-items:center;gap:8px;font-size:1.1rem;font-weight:700;display:flex}.section-title:before{content:"🌸";font-size:1.2rem}.tool-btn{min-width:var(--touch-target-min);height:var(--touch-target-comfortable);color:var(--md-sys-color-primary);touch-action:manipulation;cursor:pointer;border:1px solid var(--md-sys-color-outline);border-radius:var(--md-sys-shape-corner-full);-webkit-touch-callout:none;background:0 0;justify-content:center;align-items:center;gap:6px;padding:10px 20px;font-size:.85rem;font-weight:600;transition:all .2s;display:flex;position:relative;overflow:hidden}.tool-btn:hover{background:var(--md-sys-color-surface-container)}.tool-btn:active{background:var(--md-sys-color-primary-container);border-color:#0000;transform:scale(.95)}@media (hover:none){.tool-btn:hover{background:0 0}.tool-btn:active{background:var(--md-sys-color-primary-container)}}#sakura-container{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.sakura{background:radial-gradient(ellipse at center, var(--md-sys-color-primary-container) 0%, transparent 70%);opacity:.6;transform-origin:50%;will-change:transform, opacity;border-radius:50% 0 50% 50%;width:12px;height:12px;animation:linear infinite sakura-fall;position:absolute}@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{z-index:1;width:100%;height:100%;padding-top:var(--safe-area-top);padding-bottom:calc(80px + var(--safe-area-bottom));flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.kaomoji{max-width:90%;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 0 #ffffff80;transition:all var(--md-sys-motion-duration-short) var(--md-sys-motion-easing-standard);margin-bottom:24px;padding:12px 24px;font-family:"M PLUS Rounded 1c",Microsoft YaHei,sans-serif;font-size:1.4rem;line-height:1.5;position:relative}.kaomoji:after{z-index:-1;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;width:16px;height:16px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)rotate(45deg)}.kaomoji:hover{border-color:var(--md-sys-color-primary-container);transform:translateY(-2px)scale(1.02)}.time-display{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;margin-bottom:48px;font-family:Varela Round,monospace;font-size:clamp(3rem,12vw,5rem)}.timer-running .time-display{animation:2s ease-in-out infinite pulse-text}@keyframes pulse-text{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(.98)}}.fab{width:96px;height:96px;color:var(--md-sys-color-on-primary-container);touch-action:manipulation;cursor:pointer;background-color:var(--md-sys-color-primary-container);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;border:none;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.fab .material-symbols-rounded{transition:transform var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-emphasized);font-size:40px}.fab:hover{background-color:#ffced2;transform:scale(1.05);box-shadow:0 6px 12px 4px #00000026}.fab:active{transform:scale(.92);box-shadow:0 2px 4px #0003}@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:2s ease-in-out infinite fab-pulse}.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{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-radius:var(--md-sys-shape-corner-large);opacity: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;border:1px solid #0000;justify-content:space-between;align-items:center;margin-bottom:12px;padding:18px 22px;display:flex;position:relative;overflow:hidden;transform:translateY(20px)translateZ(0)}.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{box-shadow:none;border-color:#0000;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{pointer-events:none;content:"";background:var(--md-sys-color-on-surface-variant);opacity:0;transition:opacity .2s;position:absolute;inset:0}.history-card:active:after{opacity:.08}.card-left{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.card-time{opacity:.8;font-size:.75rem}.card-duration{color:var(--md-sys-color-on-surface);margin:2px 0;font-size:1.25rem;font-weight:700}.card-comment{text-overflow:ellipsis;max-width:200px;color:var(--md-sys-color-primary);white-space:nowrap;font-size:.85rem;overflow:hidden}.card-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:6px;margin-left:12px;display:flex}.star-display{color:#f9ab00;letter-spacing:1px;text-shadow:0 1px 2px #f9ab004d;font-size:1rem}.tags-display{flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:120px;display:flex}.tag-mini{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);padding:4px 10px;font-size:.65rem;font-weight:600;transition:transform .2s}.history-card:hover .tag-mini{transform:scale(1.05)}.empty-state{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;margin-top:60px;padding:40px 20px}.empty-state .emoji{margin-bottom:16px;font-size:3rem;display:block}.modal-overlay{z-index:1000;visibility:hidden;padding:var(--safe-area-top) var(--safe-area-right) var(--safe-area-bottom) var(--safe-area-left);overscroll-behavior:contain;pointer-events:none;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;background-color:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@supports ((-webkit-backdrop-filter:blur(8px)) or (backdrop-filter:blur(8px))){.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0006}}.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));overscroll-behavior:contain;-webkit-user-select:text;user-select:text;background:var(--md-sys-color-surface-container);box-shadow:var(--shadow-lg);opacity:0;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;border-radius:28px;padding:28px;overflow-y:auto;transform:scale(.9)translateY(20px)}.modal-overlay.active .modal{opacity:1;transform:scale(1)translateY(0)}.modal-overlay.closing .modal{opacity:0;transform:scale(.9)translateY(20px)}.modal-title{color:var(--md-sys-color-on-surface);text-align:center;margin-bottom:16px;font-family:"M PLUS Rounded 1c",sans-serif;font-size:1.4rem;font-weight:700}.result-time{font-variant-numeric:tabular-nums;color:var(--md-sys-color-primary);text-align:center;margin:16px 0;font-size:2.8rem;font-weight:700}.rating-container{justify-content:center;gap:4px;margin:16px 0;display:flex}.star-input{width:var(--touch-target-min);height:var(--touch-target-min);color:var(--md-sys-color-outline-variant);touch-action:manipulation;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:28px;transition:color .2s,transform .2s,background-color .2s;display:flex}.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:.3s cubic-bezier(.175,.885,.32,1.275) star-pop}@keyframes star-pop{50%{transform:scale(1.3)}}.tags-section-title{color:var(--md-sys-color-outline);text-align:center;margin:20px 0 10px;font-size:.8rem}.tags-container{flex-wrap:wrap;justify-content:center;gap:8px;margin:8px 0 16px;display:flex}.tag-btn{min-height:var(--touch-target-min);color:var(--md-sys-color-on-surface-variant);touch-action:manipulation;cursor:pointer;border:1px solid var(--md-sys-color-outline);border-radius:var(--md-sys-shape-corner-large);-webkit-touch-callout:none;background:0 0;justify-content:center;align-items:center;padding:8px 16px;font-size:.8rem;font-weight:500;transition:all .2s;display:flex;position:relative;overflow:hidden}.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:#0000}.tag-btn.active:before{content:"check";margin-right:4px;font-family:Material Symbols Rounded;font-size:16px}.modal-actions{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.modal-actions.column{flex-direction:column}.modal-actions .btn{flex:1;justify-content:center}.btn{min-height:var(--touch-target-comfortable);touch-action:manipulation;cursor:pointer;-webkit-touch-callout:none;border:none;border-radius:22px;justify-content:center;align-items:center;padding:0 28px;font-size:.95rem;font-weight:600;transition:all .2s;display:flex;position:relative;overflow:hidden}.btn-ghost{color:var(--md-sys-color-primary);background:0 0}.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{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:24px;display:grid}.stat-item{text-align:center;background:var(--md-sys-color-surface-variant);border-radius:var(--md-sys-shape-corner-medium);padding:16px 12px;transition:transform .2s}.stat-item:hover{transform:scale(1.02)}.stat-icon{margin-bottom:4px;font-size:1.5rem}.stat-label{color:var(--md-sys-color-on-surface-variant);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:.7rem}.stat-value{color:var(--md-sys-color-primary);font-size:1.3rem;font-weight:700}.chart-section{margin-top:20px}.chart-title{color:var(--md-sys-color-on-surface-variant);text-align:center;margin-bottom:16px;font-size:.85rem}.simple-bar-chart{background:var(--md-sys-color-surface-variant);border-radius:var(--md-sys-shape-corner-medium);justify-content:space-around;align-items:flex-end;gap:4px;height:120px;padding:16px 8px 8px;display:flex}.chart-bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex}.chart-bar{background:var(--md-sys-color-secondary-container);width:70%;min-height:4px;transition:height .5s var(--md-sys-motion-easing-emphasized);border-radius:6px 6px 2px 2px;position:relative}.chart-bar.has-data{background:linear-gradient(to top, var(--md-sys-color-primary), var(--md-sys-color-primary-container))}.chart-bar-value{color:var(--md-sys-color-outline);font-size:.65rem;position:absolute;top:-18px;left:50%;transform:translate(-50%)}.chart-label{color:var(--md-sys-color-outline);margin-top:6px;font-size:.65rem;font-weight:500}.toast{bottom:calc(100px + var(--safe-area-bottom));z-index:2000;max-width:85%;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;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;padding:14px 28px;font-size:.9rem;font-weight:500;position:fixed;left:50%;transform:translate(-50%)translateY(100px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.ripple{pointer-events:none;opacity:.2;background:currentColor;border-radius:50%;animation:.6s linear ripple-animation;position:absolute;transform:scale(0)}@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;animation:enter-slide-up var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-emphasized) forwards;transform:translateY(20px)translateZ(0)}.empty-state.fade-out{pointer-events:none;opacity:0;transform:translateY(-20px)}.history-card .tag-mini{text-overflow:ellipsis;max-width:60px;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);padding:3px 8px;font-size:.65rem;font-weight:600;overflow:hidden}.history-card.new-card:before{content:"";background:var(--md-sys-color-primary);opacity:0;border-radius:2px;width:4px;height:12px;animation:.3s ease-out .2s forwards fade-in;position:absolute;top:50%;left:8px;transform:translateY(-50%)}@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:4px solid}.history-card:focus-visible,.fab:focus-visible{outline-offset:4px}}@media (forced-colors:active){:focus-visible{outline-offset:3px;outline:3px solid canvastext}}@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{-webkit-backdrop-filter:none;backdrop-filter:none;background:#000000b3}[data-performance=low] #sakura-container{display:none}[data-performance=low] *{transition-duration:50ms!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{transform:none;box-shadow:0 2px 6px #00000040}[data-performance=low] .timer-running .time-display,[data-performance=low] .fab.running{animation:none}[data-performance=low] .ripple{animation-duration:.3s}@media (width<=768px){.time-display{font-size:clamp(2.5rem,10vw,4rem)}.fab{width:88px;height:88px}.fab .material-symbols-rounded{font-size:36px}}@media (width<=480px){.timer-container{padding-top:calc(var(--safe-area-top) + 8px)}.kaomoji{margin-bottom:20px;padding:10px 18px;font-size:1.15rem}.time-display{letter-spacing:-1px;margin-bottom:32px;font-size:clamp(2.2rem,14vw,3.5rem)}.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{margin-bottom:10px;padding:14px 16px}.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{width:3px;height:10px;left:6px}.modal-overlay{padding-bottom:var(--safe-area-bottom);align-items:flex-end}.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{gap:12px;flex-direction:row!important}.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 (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 (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{text-align:center;opacity:0;flex-direction:column;align-items:center;width:90%;max-width:340px;padding:32px 24px 24px;display:flex;position:relative;overflow:visible;transform:scale(.8)translateY(20px)}.modal-overlay.active .modal-confirm{animation:.5s cubic-bezier(.34,1.56,.64,1) forwards modal-spring-enter}.modal-overlay.closing .modal-confirm{animation:.2s cubic-bezier(.4,0,.2,1) forwards modal-zoom-out}.confirm-icon-wrapper{width:72px;height:72px;color:var(--md-sys-color-primary);background:var(--md-sys-color-surface-container);box-shadow:0 8px 16px rgb(var(--glow-color-rgb) / 10%), inset 0 0 0 2px var(--md-sys-color-surface);border-radius:50%;justify-content:center;align-items:center;margin-bottom:20px;display:flex;position:relative}.confirm-icon-wrapper:after{z-index:-1;content:"";background:radial-gradient(circle, var(--md-sys-color-primary-container) 0%, transparent 70%);opacity:.6;border-radius:50%;animation:3s ease-in-out infinite pulse-glow;position:absolute;inset:-4px}.confirm-icon-wrapper .material-symbols-rounded{font-size:36px;animation:1s ease-in-out .2s icon-wobble}.modal-confirm p{color:var(--md-sys-color-on-surface-variant);margin:12px 0 28px;font-size:.95rem;line-height:1.6}@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;animation:none;transform:none}.import-dialog-modal .modal{max-width:500px}.import-info{background:var(--md-sys-color-surface-variant);border-radius:var(--md-sys-shape-corner-medium);margin:20px 0;padding:16px}.import-options{flex-direction:column;gap:12px;margin:24px 0;display:flex}.import-options .btn{text-align:left;background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);align-items:center;gap:12px;padding:16px;display:flex}.import-options .btn:hover{background:var(--md-sys-color-surface-variant);border-color:var(--md-sys-color-primary)}.analysis-summary{background:var(--md-sys-color-surface-variant);border-radius:var(--md-sys-shape-corner-medium);margin:16px 0;padding:16px}.analysis-details{margin:24px 0}.confirm-modal .modal-confirm{text-align:center;max-width:340px;padding:32px 24px}.confirm-modal .confirm-icon-wrapper{color:var(--md-sys-color-primary);margin-bottom:20px;font-size:48px}.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);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);margin-bottom:16px;padding:12px 16px;font-family:inherit;font-size:.95rem;transition:border-color .2s}.modal input:focus,.modal textarea:focus{border-color:var(--md-sys-color-primary);outline:none}.modal input[type=number]{appearance:textfield}.modal input[type=number]::-webkit-inner-spin-button{appearance:none;margin:0}.modal input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.rhythm-panel{right:16px;bottom:calc(80px + var(--safe-area-bottom));z-index:20;flex-direction:column-reverse;align-items:flex-end;gap:8px;display:flex;position:absolute}.rhythm-toggle{width:48px;height:48px;color:var(--md-sys-color-on-primary-container);touch-action:manipulation;cursor:pointer;background:var(--md-sys-color-primary-container);box-shadow:var(--shadow-md);transition:all var(--md-sys-motion-duration-short) var(--md-sys-motion-easing-standard);-webkit-touch-callout:none;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.rhythm-toggle .material-symbols-rounded{transition:transform var(--md-sys-motion-duration-medium) var(--md-sys-motion-easing-emphasized);font-size:22px}.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{visibility: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);width:300px;max-height:0;box-shadow:var(--shadow-lg);opacity:0;transform-origin:100% 100%;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;flex-direction:column;gap:12px;padding:0;display:flex;overflow:hidden;transform:translateY(12px)scale(.95)}.rhythm-panel.expanded .rhythm-controls{visibility:visible;max-height:calc(100vh - 160px - var(--safe-area-bottom));opacity:1;padding:20px;overflow-y:auto;transform:translateY(0)scale(1)}.rhythm-controls::-webkit-scrollbar{width:4px}.rhythm-controls::-webkit-scrollbar-track{background:0 0}.rhythm-controls::-webkit-scrollbar-thumb{background:var(--md-sys-color-outline-variant);border-radius:2px}.control-section{background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-large);padding:16px;transition:border-color .2s}.control-section:hover{border-color:var(--md-sys-color-primary-container)}.control-header{color:var(--md-sys-color-on-surface);align-items:center;gap:8px;margin-bottom:14px;font-size:.9rem;font-weight:600;display:flex}.control-header .material-symbols-rounded{color:var(--md-sys-color-primary);font-size:20px}.control-header .toggle-switch{margin-left:auto}.toggle-switch{cursor:pointer;width:44px;height:24px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-switch .slider{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);position:absolute;inset:0}.toggle-switch .slider:before{content:"";background-color:var(--md-sys-color-surface);width:18px;height:18px;transition:all .3s var(--md-sys-motion-easing-emphasized);border-radius:50%;position:absolute;bottom:3px;left:3px;box-shadow:0 1px 3px #0003}.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{justify-content:center;align-items:center;gap:8px;margin-bottom:12px;display:flex}.bpm-btn{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);transition:all .2s var(--md-sys-motion-easing-standard);-webkit-touch-callout:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.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{flex-direction:column;align-items:center;gap:2px;min-width:80px;display:flex}.bpm-display input[type=number]{font-variant-numeric:tabular-nums;width:72px;color:var(--md-sys-color-primary);text-align:center;appearance:textfield;border:none;border-bottom:2px solid var(--md-sys-color-outline-variant);background:0 0;border-radius:0;margin-bottom:0;padding:6px 4px;font-family:Varela Round,monospace;font-size:1.6rem;font-weight:700;transition:border-color .2s}.bpm-display input[type=number]:focus{border-bottom-color:var(--md-sys-color-primary);outline:none}.bpm-display input[type=number]::-webkit-inner-spin-button{appearance:none;margin:0}.bpm-display input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.bpm-label{color:var(--md-sys-color-outline);text-transform:uppercase;letter-spacing:1px;font-size:.65rem;font-weight:600}.bpm-presets{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:12px;display:flex}.preset-btn{color:var(--md-sys-color-on-surface-variant);touch-action:manipulation;cursor:pointer;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;background:0 0;padding:5px 12px;font-size:.75rem;font-weight:600}.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);box-shadow:0 2px 6px rgb(var(--glow-color-rgb) / 20%);border-color:#0000}.sound-select{color:var(--md-sys-color-on-surface-variant);align-items:center;gap:8px;margin-bottom:12px;font-size:.8rem;display:flex}.sound-select label{white-space:nowrap;font-weight:600}.sound-select select{min-height:var(--touch-target-min);color:var(--md-sys-color-on-surface);appearance:none;cursor:pointer;background:var(--md-sys-color-surface-variant);border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-small);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-position:right 8px center;background-repeat:no-repeat;background-size:18px;flex:1;padding:6px 32px 6px 10px;font-family:inherit;font-size:.8rem;transition:border-color .2s}.sound-select select:focus{border-color:var(--md-sys-color-primary);outline:none}.beat-visualizer{justify-content:center;align-items:center;gap:10px;padding:10px 0 4px;display:flex}.beat-dot{background:var(--md-sys-color-outline-variant);width:14px;height:14px;transition:all .15s var(--md-sys-motion-easing-standard);border-radius:50%;box-shadow:inset 0 1px 2px #0000001a}.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{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.upload-btn{min-height:var(--touch-target-min);color:var(--md-sys-color-primary);touch-action:manipulation;cursor:pointer;border:1px dashed var(--md-sys-color-outline);border-radius:var(--md-sys-shape-corner-medium);-webkit-touch-callout:none;background:0 0;align-items:center;gap:6px;padding:8px 14px;font-size:.8rem;font-weight:600;transition:all .2s;display:flex}.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{text-overflow:ellipsis;min-width:0;color:var(--md-sys-color-outline);white-space:nowrap;flex:1;font-size:.75rem;overflow:hidden}.music-controls{align-items:center;gap:10px;margin-bottom:12px;display:flex}.music-btn{width:36px;height:36px;color:var(--md-sys-color-on-primary-container);touch-action:manipulation;cursor:pointer;background:var(--md-sys-color-primary-container);transition:all .2s var(--md-sys-motion-easing-standard);-webkit-touch-callout:none;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.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{touch-action:manipulation;cursor:pointer;background:var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-full);flex:1;height:6px;transition:height .2s;position:relative;overflow:hidden}.progress-bar:hover{height:8px}.progress-fill{background:linear-gradient(90deg, var(--md-sys-color-primary), var(--md-sys-color-primary-container));border-radius:var(--md-sys-shape-corner-full);height:100%;transition:width .1s linear}.music-time{font-variant-numeric:tabular-nums;min-width:36px;color:var(--md-sys-color-outline);text-align:right;flex-shrink:0;font-family:Varela Round,monospace;font-size:.75rem}.volume-control{align-items:center;gap:8px;margin-bottom:10px;display:flex}.volume-control .material-symbols-rounded{color:var(--md-sys-color-outline);font-size:18px}.volume-control input[type=range]{appearance:none;cursor:pointer;background:var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-full);outline:none;flex:1;height:4px;transition:background .2s}.volume-control input[type=range]::-webkit-slider-thumb{appearance:none;cursor:pointer;background:var(--md-sys-color-primary);border:2px solid var(--md-sys-color-surface);border-radius:50%;width:18px;height:18px;transition:all .2s;box-shadow:0 1px 4px #0003}.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{appearance:none;cursor:pointer;background:var(--md-sys-color-primary);border:2px solid var(--md-sys-color-surface);border-radius:50%;width:18px;height:18px;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{font-variant-numeric:tabular-nums;min-width:36px;color:var(--md-sys-color-outline);text-align:right;font-size:.75rem}.loop-control{align-items:center;display:flex}.loop-control label{color:var(--md-sys-color-on-surface-variant);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:.8rem;display:flex}.loop-control input[type=checkbox]{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;width:18px;height:18px;transition:all .2s;position:relative}.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{content:"";border-right:2px solid var(--md-sys-color-on-primary);border-bottom:2px solid var(--md-sys-color-on-primary);width:5px;height:9px;position:absolute;top:1px;left:4px;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{transition:none;transform: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 (width<=480px){.rhythm-panel{right:12px}.rhythm-toggle{width:44px;height:44px}.rhythm-toggle .material-symbols-rounded{font-size:20px}.rhythm-controls{transform-origin:bottom;width:calc(100vw - 32px);max-width:320px}.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 (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 (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;transition:none;transform:none}.rhythm-controls,.rhythm-toggle .material-symbols-rounded{transition:none}}.swipe-indicator{background:var(--md-sys-color-outline-variant);border-radius:2px;width:36px;height:4px;position:absolute;top:8px;left:50%;transform:translate(-50%)}button,[role=button]{touch-action:manipulation}.keyboard-open .page-indicators,.keyboard-open .rhythm-panel{display:none}.tag-manager-container{flex-direction:column;max-height:60vh;padding-right:4px;display:flex;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{color:var(--md-sys-color-primary);border-bottom:1px solid var(--md-sys-color-outline-variant);margin-bottom:8px;padding-bottom:4px;font-size:.85rem;font-weight:600}.tag-items{flex-direction:column;gap:8px;display:flex}.tag-edit-item{background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-medium);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.tag-edit-item .tag-name{color:var(--md-sys-color-on-surface);font-size:.9rem;font-weight:500}.tag-actions{gap:4px;display:flex}.icon-btn{width:32px;height:32px;color:var(--md-sys-color-outline);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.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{color:var(--md-sys-color-on-surface-variant);margin-bottom:8px;font-size:.85rem;display:block}.tag-form select{width:100%;min-height:var(--touch-target-comfortable);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);padding:12px 16px;font-family:inherit;font-size:.95rem}.tag-form select:focus{border-color:var(--md-sys-color-primary);outline:none}
