*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,sans-serif;line-height:1.5}body{margin:0;padding:0;min-height:100vh;overflow-x:hidden;background-color:#f5f5f5;color:#333}button{font-family:inherit;cursor:pointer;border:none;background:none}input,select,textarea{font-family:inherit}:root{--color-primary: #3b82f6;--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #ef4444;--color-text: #1f2937;--color-text-secondary: #6b7280;--color-background: #f5f5f5;--color-surface: #ffffff;--color-border: #e5e7eb;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: 1rem;--radius-xl: 1.25rem;--radius-full: 9999px;--color-text-primary: #1f2937;--border-radius: 12px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-card: 0 2px 8px rgba(0, 0, 0, .08);--shadow-card-hover: 0 4px 12px rgba(0, 0, 0, .12);--shadow-dropdown: 0 8px 24px rgba(0, 0, 0, .15);--transition-fast: .15s ease;--transition-normal: .3s ease;--transition-slow: .5s ease;--z-modal: 1000;--z-overlay: 900;--z-header: 100}@keyframes pwa-badge-pulse{0%,to{opacity:1;box-shadow:0 2px 8px #00000014}50%{opacity:.6;box-shadow:0 4px 12px #3b82f64d}}@keyframes blink-slow{0%,to{opacity:1}50%{opacity:.6}}@keyframes blink-fast{0%,to{opacity:1}50%{opacity:.3}}@keyframes blink-slow-safe{0%,to{opacity:1}50%{opacity:.8}}@keyframes blink-fast-safe{0%,to{opacity:1}50%{opacity:.7}}.blink-slow{animation:blink-slow 1.5s infinite}.blink-fast{animation:blink-fast .5s infinite}.safe-mode .blink-slow{animation:blink-slow-safe 2s infinite}.safe-mode .blink-fast{animation:blink-fast-safe 1s infinite}.container{width:100%;max-width:480px;margin:0 auto;padding:0 var(--spacing-md)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:1rem;font-weight:500;transition:all var(--transition-fast);white-space:nowrap;user-select:none}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover{background-color:#2563eb}.btn-secondary{background-color:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background-color:#f9fafb}.btn-danger{background-color:var(--color-danger);color:#fff}.btn-danger:hover{background-color:#dc2626}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:.875rem}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:1.125rem}.card{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm)}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay);padding:var(--spacing-md)}.modal{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);max-width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);z-index:var(--z-modal)}.app-header{background-color:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--spacing-md);position:sticky;top:0;z-index:var(--z-header)}.timer-display{display:flex;align-items:center;justify-content:center;min-height:60vh;font-size:clamp(4rem,20vmin,12rem);font-weight:700;font-variant-numeric:tabular-nums;transition:background-color var(--transition-normal),opacity var(--transition-fast)}h1{font-size:1.875rem;font-weight:700;line-height:1.2}h2{font-size:1.5rem;font-weight:600;line-height:1.3}h3{font-size:1.25rem;font-weight:600;line-height:1.4}p{line-height:1.6}@media (hover: none){.btn:active{transform:scale(.98)}}.long-press-active{transform:scale(.95);opacity:.8}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.audio-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.audio-item{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-fast)}.audio-item:hover{box-shadow:var(--shadow-md)}.audio-info{flex:1;min-width:0}.audio-name{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audio-meta{font-size:.85rem;color:var(--color-text-secondary)}.audio-actions{display:flex;gap:var(--spacing-sm);flex-shrink:0}.timer-list{display:flex;flex-direction:column;gap:var(--spacing-lg)}.scene-selector{display:flex;gap:var(--spacing-md);align-items:center}.scene-select{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);font-size:1rem}.timer-cards{display:flex;flex-direction:column;gap:var(--spacing-md)}.timer-card{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.timer-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md);gap:var(--spacing-md)}.timer-card-header h3{font-size:1.25rem;font-weight:600;margin:0;flex:1}.scene-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-primary);color:#fff;border-radius:var(--radius-full);font-size:.75rem;white-space:nowrap}.timer-card-body{margin-bottom:var(--spacing-lg)}.timer-time{font-size:2rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-primary);margin-bottom:var(--spacing-sm)}.timer-indicators{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.indicator{font-size:1rem}.timer-card-actions{display:flex;gap:var(--spacing-sm)}.timer-card-actions>*{flex:1;text-align:center;text-decoration:none}.empty-state{text-align:center;padding:var(--spacing-2xl)}.empty-state p{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg)}.preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--spacing-md)}.preset-card{background-color:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md);cursor:pointer;transition:all var(--transition-fast);text-align:left;display:flex;flex-direction:column;gap:var(--spacing-sm)}.preset-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.preset-card.selected{border-color:var(--color-primary);background-color:#eff6ff;box-shadow:var(--shadow-md)}.preset-card-header h4{font-size:1rem;font-weight:600;margin:0;color:var(--color-text)}.preset-card-description{font-size:.875rem;color:var(--color-text-secondary);line-height:1.4;margin:0;flex:1}.preset-card-time{font-size:1.5rem;font-weight:700;color:var(--color-primary);margin-top:var(--spacing-xs)}.timer-execution{display:flex;flex-direction:column;min-height:100vh}.timer-execution-header{padding:var(--spacing-md);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.timer-execution-main{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--spacing-xl);transition:background-color var(--transition-normal)}.timer-display-large{font-size:clamp(4rem,20vmin,12rem);font-weight:700;font-variant-numeric:tabular-nums;line-height:1;margin-bottom:var(--spacing-lg)}.timer-info{text-align:center;margin-bottom:var(--spacing-xl);color:var(--color-text-secondary)}.timer-controls{display:flex;gap:var(--spacing-md);justify-content:center;flex-wrap:wrap}.timer-controls .btn{min-width:120px}.settings-form{display:flex;flex-direction:column;gap:var(--spacing-xl)}.form-section{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);border:1px solid var(--color-border)}.form-section h3{margin-bottom:var(--spacing-md);font-size:1.125rem;font-weight:600}.form-group{margin-bottom:var(--spacing-md)}.form-group:last-child{margin-bottom:0}.form-label{display:block;margin-bottom:var(--spacing-xs);font-weight:500;color:var(--color-text)}.form-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:1rem}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.color-picker{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.color-option{width:48px;height:48px;border-radius:var(--radius-md);border:2px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:var(--color-text);box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-text)}.radio-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.radio-option{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.radio-option:hover{background-color:#f9fafb}.radio-option input[type=radio]{margin:0}.time-input-group{display:flex;gap:var(--spacing-sm);align-items:center}.time-input-group input{flex:1;max-width:80px}.time-increment-buttons{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-top:var(--spacing-sm)}.time-increment-buttons button{padding:var(--spacing-xs) var(--spacing-sm);font-size:.875rem}.event-cards{display:flex;flex-direction:column;gap:var(--spacing-md)}.event-card{background-color:#f9fafb;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md)}.event-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.event-card-header h4{font-size:1rem;font-weight:600;margin:0}.event-card-body{display:flex;flex-direction:column;gap:var(--spacing-sm)}.event-row{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.event-row-label{min-width:60px;font-size:.875rem;color:var(--color-text-secondary)}.mode-tabs{display:flex;gap:var(--spacing-xs);background-color:#f3f4f6;padding:var(--spacing-xs);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.mode-tab{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;border-radius:var(--radius-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast);color:var(--color-text-secondary)}.mode-tab:hover{background-color:#ffffff80}.mode-tab.active{background-color:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-sm)}.checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer}.checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer}html,body{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
