.countdown{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:64px;flex-shrink:0}.countdown-number{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-primary);line-height:1}.countdown-unit{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:2px}.countdown-today{background:linear-gradient(135deg,#fd79a8,#e84393);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);color:#fff}.countdown-icon{font-size:var(--font-size-xl);line-height:1}.countdown-today .countdown-label{font-size:var(--font-size-sm);font-weight:600;color:#fff;margin-top:2px}.anniversary-list{max-width:var(--max-width);margin:0 auto}.filter-bar{display:flex;gap:var(--space-sm);margin-bottom:var(--space-xl);overflow-x:auto;padding-bottom:var(--space-xs)}.filter-tag{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:500;white-space:nowrap;background:var(--color-surface);color:var(--color-text-secondary);transition:all var(--transition-fast)}.filter-tag.active{background:var(--color-primary);color:#fff}.filter-tag:hover:not(.active){background:var(--color-primary-bg);color:var(--color-primary)}.card-list{display:flex;flex-direction:column;gap:var(--space-md)}.anniversary-card{padding:var(--space-lg)}.anniversary-card.today-highlight{border-left:4px solid var(--color-accent);background:linear-gradient(135deg,#fff5f7,#fff)}.card-main{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}.card-info{flex:1;min-width:0}.card-name{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text);margin-bottom:var(--space-xs)}.card-dates{display:flex;gap:var(--space-sm);align-items:center;margin-bottom:var(--space-sm);flex-wrap:wrap}.date-gregorian{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.date-lunar{font-size:var(--font-size-sm);color:var(--color-primary)}.card-actions{display:flex;gap:var(--space-sm);justify-content:flex-end;margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-border-light)}.action-btn{font-size:var(--font-size-sm);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.edit-btn{color:var(--color-primary)}.edit-btn:hover{background:var(--color-primary-bg)}.delete-btn{color:var(--color-error)}.delete-btn:hover{background:#ffeaea}.empty-state{text-align:center;padding:var(--space-3xl) var(--space-lg)}.empty-icon{font-size:3rem;margin-bottom:var(--space-md)}.empty-text{color:var(--color-text-muted);font-size:var(--font-size-sm)}.anniversary-form{max-width:var(--max-width);margin:0 auto}.form-title{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--space-lg);color:var(--color-text)}.form-field{margin-bottom:var(--space-lg)}.form-field label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);margin-bottom:var(--space-xs)}.field-error{display:block;font-size:var(--font-size-xs);color:var(--color-error);margin-top:var(--space-xs)}.calendar-toggle{display:flex;gap:var(--space-sm)}.toggle-btn{flex:1;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-weight:500;background:var(--color-bg);color:var(--color-text-secondary);transition:all var(--transition-fast)}.toggle-btn.active{background:var(--color-primary);color:#fff}.checkbox-field label{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer}.checkbox-field input[type=checkbox]{width:auto}.form-actions{display:flex;gap:var(--space-md);justify-content:flex-end;margin-top:var(--space-xl)}.category-manager{max-width:var(--max-width);margin:0 auto}.section-title{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--space-lg)}.category-list{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg)}.category-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);background:var(--color-bg)}.category-tag{display:flex;align-items:center;gap:var(--space-sm);font-weight:500}.default-badge{font-size:var(--font-size-xs);padding:1px 6px;border-radius:var(--radius-full);background:var(--color-primary-bg);color:var(--color-primary)}.confirm-actions{display:flex;align-items:center;gap:var(--space-sm)}.confirm-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.add-category{display:flex;gap:var(--space-sm)}.add-category input{flex:1}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn var(--transition-fast)}.dialog{max-width:400px;width:90%;text-align:center;animation:slideUp var(--transition-base)}.dialog-message{font-size:var(--font-size-base);color:var(--color-text);margin-bottom:var(--space-xl);line-height:1.6}.dialog-actions{display:flex;gap:var(--space-md);justify-content:center}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.error-toast{position:fixed;bottom:var(--space-xl);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--color-text);color:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-xl);z-index:200;animation:toastIn var(--transition-base);max-width:90vw}.toast-message{font-size:var(--font-size-sm)}.toast-actions{display:flex;gap:var(--space-sm);flex-shrink:0}.toast-btn{font-size:var(--font-size-sm);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-weight:500;color:#fff;transition:opacity var(--transition-fast)}.toast-btn:hover{opacity:.8}.retry-btn{background:var(--color-primary)}.dismiss-btn{opacity:.6}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(16px)}to{opacity:1;transform:translate(-50%) translateY(0)}}:root{--color-bg: #f5f5f7;--color-surface: #ffffff;--color-primary: #6c5ce7;--color-primary-light: #a29bfe;--color-primary-bg: #f0eeff;--color-accent: #fd79a8;--color-success: #00b894;--color-warning: #fdcb6e;--color-error: #d63031;--color-text: #2d3436;--color-text-secondary: #636e72;--color-text-muted: #b2bec3;--color-border: #e0e0e0;--color-border-light: #f0f0f0;--color-overlay: rgba(0, 0, 0, .3);--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--font-size-3xl: 3rem;--line-height: 1.6;--letter-spacing: .02em;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .08);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .1);--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .35s ease;--max-width: 640px}*,*: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-family);font-size:var(--font-size-base);line-height:var(--line-height);letter-spacing:var(--letter-spacing);color:var(--color-text);background-color:var(--color-bg);min-height:100vh}a{color:var(--color-primary);text-decoration:none}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;outline:none}input,select,textarea{font-family:inherit;font-size:inherit;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);background:var(--color-surface);color:var(--color-text);transition:border-color var(--transition-fast);outline:none;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--color-primary-light);box-shadow:0 0 0 3px var(--color-primary-bg)}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-lg);transition:box-shadow var(--transition-base)}.card:hover{box-shadow:var(--shadow-lg)}.btn-primary{background:var(--color-primary);color:#fff;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);font-weight:500;transition:background var(--transition-fast),transform var(--transition-fast)}.btn-primary:hover{background:var(--color-primary-light)}.btn-primary:active{transform:scale(.97)}.btn-secondary{background:var(--color-bg);color:var(--color-text-secondary);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);font-weight:500;transition:background var(--transition-fast)}.btn-secondary:hover{background:var(--color-border-light)}.btn-danger{background:var(--color-error);color:#fff;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);font-weight:500;transition:background var(--transition-fast)}.btn-danger:hover{background:#e74c3c}.tag{display:inline-block;padding:2px var(--space-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:500;background:var(--color-primary-bg);color:var(--color-primary)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.app{min-height:100vh;padding-bottom:var(--space-3xl)}.app-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--color-text-muted)}.app-header{display:flex;align-items:center;justify-content:space-between;max-width:var(--max-width);margin:0 auto;padding:var(--space-xl) var(--space-md)}.app-title{font-size:var(--font-size-xl);font-weight:700;color:var(--color-text)}.header-nav{display:flex;gap:var(--space-xs)}.nav-btn{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);transition:all var(--transition-fast)}.nav-btn.active{background:var(--color-primary-bg);color:var(--color-primary)}.nav-btn:hover:not(.active){background:var(--color-bg)}.app-main{padding:0 var(--space-md)}.fab{position:fixed;bottom:var(--space-xl);right:var(--space-xl);width:56px;height:56px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:var(--font-size-2xl);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);transition:transform var(--transition-fast),box-shadow var(--transition-fast);z-index:50}.fab:hover{transform:scale(1.08);box-shadow:var(--shadow-xl)}.fab:active{transform:scale(.95)}@media(max-width:480px){.app-header{padding:var(--space-md)}.fab{bottom:var(--space-md);right:var(--space-md)}}
