.header{position:sticky;top:0;z-index:100;background:#0a0a0ad9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle)}.header-content{max-width:640px;margin:0 auto;padding:12px 16px;display:flex;align-items:center;justify-content:space-between}@media (min-width: 768px){.header-content{padding:16px 24px}}.header-brand{display:flex;align-items:center;gap:10px;background:none;border:none;padding:4px 8px;margin:-4px -8px;border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease;color:inherit;text-decoration:none}.header-brand:hover{background:var(--bg-hover)}.header-brand:active{opacity:.8}.header-logo{font-size:20px;color:var(--accent)}.header-title{font-family:var(--font-serif);font-size:1.25rem;font-weight:400;letter-spacing:-.01em;margin:0;pointer-events:none}.header-nav{display:flex;gap:4px}.header-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;color:var(--text-secondary);border-radius:var(--radius-md);transition:all .15s ease}.header-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.header-btn.active{background:var(--bg-hover);color:var(--accent)}.header-btn svg{flex-shrink:0}.header-btn-label{font-size:.875rem;font-weight:500}@media (max-width: 400px){.header-btn-label{display:none}.header-btn{padding:8px}}.event-input{padding:24px 0 8px}@media (min-width: 768px){.event-input{padding:32px 0 12px}}.event-input-container{display:flex;align-items:center;gap:8px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:4px;transition:all .2s ease}.event-input-container:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.event-input-field{flex:1;background:none;border:none;color:var(--text-primary);font-size:1rem;padding:10px 12px;outline:none}.event-input-field:focus-visible{outline:none}.event-input-field::placeholder{color:var(--text-tertiary)}.event-input-clear{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);color:var(--text-tertiary);transition:all .15s ease;flex-shrink:0}.event-input-clear:hover{background:var(--bg-hover);color:var(--text-secondary)}.event-input-submit{display:flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 14px;background:var(--accent);color:var(--bg-primary);border-radius:var(--radius-md);font-weight:600;font-size:.875rem;transition:all .15s ease;flex-shrink:0}.event-input-submit:hover:not(:disabled){background:var(--accent-hover)}.event-input-submit:disabled{opacity:.4;cursor:not-allowed}.event-input-hint{padding:10px 4px 0;font-size:.75rem;color:var(--text-tertiary);text-align:center}.event-input-hint kbd{display:inline-block;padding:2px 6px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;font-family:inherit;font-size:.7rem}@media (max-width: 480px){.event-input-hint{display:none}}.search-input{padding:24px 0 8px}@media (min-width: 768px){.search-input{padding:32px 0 12px}}.search-input-container{display:flex;align-items:center;gap:8px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:4px 4px 4px 12px;transition:all .2s ease}.search-input-container:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.search-input-icon{flex-shrink:0;color:var(--text-tertiary)}.search-input-container:focus-within .search-input-icon{color:var(--accent)}.search-input-field{flex:1;background:none;border:none;color:var(--text-primary);font-size:1rem;padding:10px 0;outline:none}.search-input-field:focus-visible{outline:none}.search-input-field::placeholder{color:var(--text-tertiary)}.search-input-clear{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);color:var(--text-tertiary);transition:all .15s ease;flex-shrink:0}.search-input-clear:hover{background:var(--bg-hover);color:var(--text-secondary)}.search-input-hint{padding:10px 4px 0;font-size:.75rem;color:var(--text-tertiary);text-align:center}.search-input-hint kbd{display:inline-block;padding:2px 6px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;font-family:inherit;font-size:.7rem}@media (max-width: 480px){.search-input-hint{display:none}}.event-card{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.event-card:hover{background:var(--bg-tertiary);border-color:var(--border)}.event-card:active{transform:scale(.995)}.event-card-content{flex:1;min-width:0}.event-card-body{color:var(--text-primary);font-size:.9375rem;line-height:1.5;word-break:break-word}.event-card-body mark{background:var(--accent-dim);color:var(--accent);padding:1px 3px;border-radius:3px}.event-card-time{flex-shrink:0;font-size:.75rem;color:var(--text-tertiary);font-variant-numeric:tabular-nums;padding-top:2px}.timeline{padding-top:16px}.timeline-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center}.timeline-empty-icon{font-size:48px;color:var(--accent);margin-bottom:20px;opacity:.6}.timeline-empty-text{font-family:var(--font-serif);font-size:1.25rem;font-style:italic;color:var(--text-secondary);margin-bottom:8px}.timeline-empty-hint{font-size:.875rem;color:var(--text-tertiary)}.timeline-group{margin-bottom:24px;animation:slideUp .3s ease backwards}.timeline-group-header{display:flex;align-items:center;gap:10px;padding:8px 4px 12px;position:sticky;top:56px;background:var(--bg-primary);z-index:10}@media (min-width: 768px){.timeline-group-header{top:64px}}.timeline-group-date{font-family:var(--font-serif);font-size:1.125rem;font-weight:400;color:var(--text-primary);letter-spacing:-.01em}.timeline-group-count{font-size:.75rem;color:var(--text-tertiary);background:var(--bg-tertiary);padding:2px 8px;border-radius:10px}.timeline-group-events{display:flex;flex-direction:column;gap:8px}.timeline-load-more{padding:20px;display:flex;justify-content:center}.timeline-loading{padding:20px}.timeline-loading .loading-spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.search-results{padding-top:16px}.search-results-loading{display:flex;justify-content:center;padding:60px}.search-results-empty{display:flex;flex-direction:column;align-items:center;padding:60px 20px;text-align:center;color:var(--text-tertiary)}.search-results-empty svg{margin-bottom:16px;opacity:.4}.search-results-empty p{font-size:1rem;color:var(--text-secondary);margin-bottom:8px}.search-results-empty span{font-size:.875rem}.search-results-header{padding:8px 4px 16px}.search-results-count{font-size:.875rem;color:var(--text-tertiary)}.search-results-group{margin-bottom:24px}.search-results-group-header{padding:0 4px 12px}.search-results-group-date{font-family:var(--font-serif);font-size:1rem;font-weight:400;color:var(--text-secondary)}.search-results-group-events{display:flex;flex-direction:column;gap:8px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;z-index:1000;animation:fadeIn .2s ease;padding-top:env(safe-area-inset-top,0);overflow-y:auto}@media (min-width: 640px){.modal-overlay{align-items:center;padding:20px}}.modal{background:var(--bg-secondary);border:1px solid var(--border);width:100%;max-width:500px;max-height:calc(100vh - env(safe-area-inset-top,0) - env(safe-area-inset-bottom,0));overflow-y:auto;animation:scaleIn .2s ease;border-radius:var(--radius-xl) var(--radius-xl) 0 0;margin-top:max(env(safe-area-inset-top,0),8px);margin-bottom:max(env(safe-area-inset-bottom,0),8px);display:flex;flex-direction:column}@media (min-width: 640px){.modal{border-radius:var(--radius-xl);max-height:90vh;margin-top:0;margin-bottom:0}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 12px;gap:12px;flex-shrink:0;border-bottom:1px solid var(--border-subtle)}.modal-header-left{display:flex;align-items:center;gap:6px;flex-shrink:0}.modal-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.modal-title{font-family:var(--font-serif);font-size:1.25rem;font-weight:400;flex:1;text-align:center}.modal-header-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:1;justify-content:flex-end}.modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:var(--text-tertiary);transition:all .15s ease;flex-shrink:0;margin-left:4px}.modal-close:hover{background:var(--bg-hover);color:var(--text-secondary)}@media (min-width: 640px){.modal-header{padding:20px 20px 0;border-bottom:none}.modal-header-left{display:none}.modal-title{text-align:left}.modal-header-actions{display:none}}.modal-body{padding:20px 16px;flex:1;display:flex;flex-direction:column;overflow-y:auto;min-height:0}@media (min-width: 640px){.modal-body{padding:24px 20px}}.edit-field{margin-bottom:16px;display:flex;flex-direction:column}.edit-field:first-of-type{flex:1;min-height:0;display:flex;flex-direction:column}.edit-field:last-of-type{margin-bottom:12px}.edit-label{display:block;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin-bottom:6px}.edit-textarea{width:100%;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:1rem;line-height:1.5;padding:12px;resize:none;flex:1;min-height:120px;font-family:inherit}@media (min-width: 640px){.edit-textarea{resize:vertical;min-height:80px}}.edit-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.edit-field-when{margin-bottom:12px;flex-shrink:0}.edit-datetime{width:100%;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem;padding:8px 10px;height:36px}.edit-datetime:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.edit-datetime::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.5;cursor:pointer;width:18px;height:18px}@media (min-width: 640px){.edit-datetime{font-size:1rem;padding:12px;height:auto}}.edit-meta{display:flex;flex-direction:column;gap:4px;font-size:.7rem;color:var(--text-tertiary);flex-shrink:0;margin-top:auto;padding-top:12px}@media (min-width: 640px){.edit-meta{font-size:.75rem}}.modal-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-top:1px solid var(--border-subtle);flex-shrink:0}@media (max-width: 639px){.modal-footer{display:none}}.modal-footer-left,.modal-footer-right{display:flex;gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;font-size:.875rem;font-weight:500;border-radius:var(--radius-md);transition:all .15s ease;border:none;cursor:pointer;background:transparent}.btn-compact{padding:6px 10px;font-size:.75rem;border-radius:var(--radius-sm);white-space:nowrap}.btn-icon{padding:8px;width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.btn-primary{background:var(--accent);color:var(--bg-primary)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-danger{color:var(--danger)}.btn-danger:hover{background:var(--danger-dim);color:var(--danger)}.btn-save-header{padding:8px 18px;font-size:.875rem;font-weight:600;background:var(--accent);color:var(--bg-primary);border-radius:var(--radius-md);border:none;cursor:pointer;transition:all .15s ease;box-shadow:0 2px 8px #e7c87f4d,0 1px 3px #0000004d}.btn-save-header:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 4px 12px #e7c87f66,0 2px 4px #0006;transform:translateY(-1px)}.btn-save-header:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 4px #e7c87f4d,0 1px 2px #0000004d}.btn-save-header:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.confirm-overlay{z-index:1001}.confirm-modal{max-width:320px;padding:0}.confirm-content{padding:24px}.confirm-title{font-family:var(--font-serif);font-size:1.25rem;font-weight:400;margin-bottom:12px;color:var(--text-primary)}.confirm-message{font-size:.875rem;color:var(--text-secondary);margin-bottom:24px;line-height:1.5}.confirm-actions{display:flex;gap:12px;justify-content:flex-end}.archive-modal{max-height:80vh}.archive-body{min-height:200px}.archive-loading{display:flex;justify-content:center;padding:60px}.archive-empty{display:flex;flex-direction:column;align-items:center;padding:60px 20px;text-align:center;color:var(--text-tertiary)}.archive-empty svg{margin-bottom:16px;opacity:.4}.archive-empty p{font-size:1rem;color:var(--text-secondary)}.archive-list{display:flex;flex-direction:column;gap:8px}.archive-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px;background:var(--bg-tertiary);border-radius:var(--radius-md)}.archive-item-content{flex:1;min-width:0}.archive-item-body{font-size:.9375rem;color:var(--text-primary);margin-bottom:4px;word-break:break-word}.archive-item-date{font-size:.75rem;color:var(--text-tertiary)}.archive-item-actions{display:flex;gap:4px;flex-shrink:0}.btn-sm{padding:6px 10px;font-size:.75rem}.export-import-body{padding-bottom:32px}.export-import-message{padding:12px 16px;border-radius:var(--radius-md);font-size:.875rem;margin-bottom:20px}.export-import-message.success{background:#22c55e26;color:#22c55e}.export-import-message.error{background:var(--danger-dim);color:var(--danger)}.export-import-section{padding:4px 0}.export-import-heading{font-size:1rem;font-weight:500;margin-bottom:8px}.export-import-desc{font-size:.875rem;color:var(--text-secondary);margin-bottom:16px;line-height:1.5}.export-import-btn{width:100%}.export-import-file{display:none}.export-import-divider{height:1px;background:var(--border-subtle);margin:24px 0}label.btn.disabled{opacity:.5;pointer-events:none}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg-primary)}.main{flex:1;max-width:640px;width:100%;margin:0 auto;padding:0 16px 80px}@media (min-width: 768px){.main{padding:0 24px 120px}}.loading{display:flex;justify-content:center;padding:60px 0}.loading-spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}:root{--bg-primary: #0a0a0a;--bg-secondary: #141414;--bg-tertiary: #1c1c1c;--bg-hover: #242424;--text-primary: #f5f5f4;--text-secondary: #a3a3a3;--text-tertiary: #737373;--accent: #e7c87f;--accent-dim: rgba(231, 200, 127, .15);--accent-hover: #f0d590;--border: #2a2a2a;--border-subtle: #1f1f1f;--danger: #ef4444;--danger-dim: rgba(239, 68, 68, .15);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--font-serif: "Instrument Serif", Georgia, serif;--font-sans: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;--shadow-subtle: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .6)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;min-height:100dvh}input,textarea,button{font-family:inherit;font-size:inherit}button{cursor:pointer;border:none;background:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent);color:var(--bg-primary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.fade-in{animation:fadeIn .3s ease}.slide-up{animation:slideUp .3s ease}
