:root{--color-primary: #4a6fa5;--color-primary-light: #6d8dc6;--color-primary-dark: #324e79;--color-accent: #e63946;--color-accent-light: #f27d86;--color-accent-dark: #c8232f;--color-text: #333333;--color-text-light: #666666;--color-background: #ffffff;--color-card: #f8f9fa;--color-border: #e0e0e0;--color-success: #2e7d32;--color-warning: #ed6c02;--color-error: #d32f2f;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--font-family: "Noto Sans KR", sans-serif;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-xxl: 2rem;--border-radius-sm: 4px;--border-radius-md: 8px;--border-radius-lg: 16px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--transition-speed: .3s}.dark-theme{--color-primary: #5d82b3;--color-primary-light: #7ea0cb;--color-primary-dark: #3c5d8a;--color-accent: #f27d86;--color-text: #e0e0e0;--color-text-light: #a0a0a0;--color-background: #121212;--color-card: #1e1e1e;--color-border: #333333}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px}body{font-family:var(--font-family);line-height:1.5;color:var(--color-text);background-color:var(--color-background);transition:background-color var(--transition-speed),color var(--transition-speed)}.container{width:100%;max-width:600px;margin:0 auto;padding:0 var(--space-md)}h1,h2,h3{line-height:1.2;font-weight:700;margin-bottom:var(--space-md)}h1{font-size:var(--font-size-xxl);text-align:center}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg);margin-bottom:var(--space-sm)}p{margin-bottom:var(--space-md)}small{font-size:var(--font-size-sm);color:var(--color-text-light)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-speed)}a:hover,a:focus{color:var(--color-primary-light);text-decoration:underline}header{padding:var(--space-lg) 0}header .container{display:flex;justify-content:space-between;align-items:center}#theme-toggle{background:none;border:none;font-size:var(--font-size-lg);cursor:pointer;padding:var(--space-sm);border-radius:var(--border-radius-md);display:flex;align-items:center;justify-content:center;position:relative;width:40px;height:40px;overflow:hidden}#theme-toggle .moon,#theme-toggle .sun{position:absolute;transition:transform var(--transition-speed)}#theme-toggle .moon{transform:translateY(0)}#theme-toggle .sun{transform:translateY(40px)}.dark-theme #theme-toggle .moon{transform:translateY(-40px)}.dark-theme #theme-toggle .sun{transform:translateY(0)}.card{background-color:var(--color-card);border-radius:var(--border-radius-lg);padding:var(--space-lg);margin-bottom:var(--space-xl);box-shadow:var(--shadow-md);transition:background-color var(--transition-speed),box-shadow var(--transition-speed)}.card:hover{box-shadow:var(--shadow-lg)}.today-date-container{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.date-box{flex:1;padding:var(--space-md);border-radius:var(--border-radius-md);text-align:center}.date-box.solar{background-color:#4a6fa51a;border:1px solid rgba(74,111,165,.2)}.date-box.lunar{background-color:#e639461a;border:1px solid rgba(230,57,70,.2)}.date-separator{font-size:var(--font-size-xl);margin:0 var(--space-md);color:var(--color-text-light)}.special-date{padding:var(--space-md);margin-top:var(--space-md);background-color:#e639461a;border-radius:var(--border-radius-md);text-align:center;font-weight:500;color:var(--color-accent-dark);display:none}.special-date.visible{display:block}.tabs{display:flex;margin-bottom:var(--space-lg);border-bottom:1px solid var(--color-border)}.tab-button{flex:1;background:none;border:none;padding:var(--space-md);font-size:var(--font-size-md);font-weight:500;color:var(--color-text-light);cursor:pointer;transition:color var(--transition-speed);position:relative}.tab-button:after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:2px;background-color:var(--color-primary);transform:scaleX(0);transition:transform var(--transition-speed)}.tab-button.active{color:var(--color-primary)}.tab-button.active:after{transform:scaleX(1)}.tab-content{display:none}.tab-content.active{display:block}.form-group{margin-bottom:var(--space-lg)}label{display:block;margin-bottom:var(--space-sm);font-weight:500}input,select{width:100%;padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--border-radius-md);font-family:var(--font-family);font-size:var(--font-size-md);background-color:var(--color-background);color:var(--color-text);transition:border-color var(--transition-speed),background-color var(--transition-speed)}input:focus,select:focus{outline:none;border-color:var(--color-primary)}.checkbox-group{display:flex;align-items:center;margin-top:var(--space-sm)}.checkbox-group input{width:auto;margin-right:var(--space-sm)}.checkbox-group label{margin-bottom:0}.btn-convert{display:block;width:100%;padding:var(--space-md);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--border-radius-md);font-family:var(--font-family);font-size:var(--font-size-md);font-weight:500;cursor:pointer;transition:background-color var(--transition-speed)}.btn-convert:hover,.btn-convert:focus{background-color:var(--color-primary-dark)}.result-container{margin-top:var(--space-xl);padding:var(--space-lg);background-color:#4a6fa51a;border-radius:var(--border-radius-md)}.result-text{font-size:var(--font-size-lg);font-weight:500;margin-bottom:var(--space-md)}.btn-copy{padding:var(--space-sm) var(--space-md);background-color:transparent;border:1px solid var(--color-border);border-radius:var(--border-radius-md);font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer;transition:background-color var(--transition-speed),border-color var(--transition-speed)}.btn-copy:not(:disabled):hover,.btn-copy:not(:disabled):focus{background-color:#4a6fa51a;border-color:var(--color-primary)}.btn-copy:disabled{cursor:not-allowed;opacity:.5}.holidays-container{padding:var(--space-sm) 0}.holidays-list{list-style-type:none}.holidays-list li{padding:var(--space-md);margin-bottom:var(--space-sm);border-radius:var(--border-radius-md);background-color:#4a6fa51a;transition:background-color var(--transition-speed)}.holidays-list li:hover{background-color:#4a6fa533}.holiday-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);margin-bottom:var(--space-sm);border-radius:var(--border-radius-md);background-color:#4a6fa51a;transition:background-color var(--transition-speed)}.holiday-item:hover{background-color:#4a6fa533}.holiday-item.current-year{background-color:#e639461a}.holiday-name{font-weight:500}.holiday-date{font-size:var(--font-size-sm);color:var(--color-text-light)}.noscript-notice{margin:var(--space-xl) auto;padding:var(--space-lg);background-color:var(--color-warning);color:#fff;border-radius:var(--border-radius-lg);text-align:center}.static-dates{margin-top:var(--space-lg);background-color:var(--color-card);color:var(--color-text);padding:var(--space-lg);border-radius:var(--border-radius-md)}.static-dates h3{margin-bottom:var(--space-md)}.static-dates ul{list-style-type:none}.static-dates li{padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border)}footer{text-align:center;padding:var(--space-xl) 0;color:var(--color-text-light);font-size:var(--font-size-sm);border-top:1px solid var(--color-border);margin-top:var(--space-xl)}@media (max-width: 480px){.today-date-container{flex-direction:column}.date-box{margin-bottom:var(--space-md);width:100%}.date-separator{transform:rotate(90deg);margin:var(--space-sm) 0}}@media (min-width: 768px){.container{max-width:700px}.card{padding:var(--space-xl)}}@media (min-width: 992px){.container{max-width:900px}}.fade-in{animation:fadeIn .5s ease forwards}.slide-up{animation:slideUp .5s ease forwards}.slide-down{animation:slideDown .5s ease forwards}.slide-in-right{animation:slideInRight .5s ease forwards}.slide-in-left{animation:slideInLeft .5s ease forwards}.pop{animation:pop .3s ease forwards}.pulse{animation:pulse 2s infinite}.stagger-item{opacity:0;transform:translateY(20px);animation:slideUp .5s ease forwards}.stagger-item:nth-child(1){animation-delay:.1s}.stagger-item:nth-child(2){animation-delay:.2s}.stagger-item:nth-child(3){animation-delay:.3s}.stagger-item:nth-child(4){animation-delay:.4s}.stagger-item:nth-child(5){animation-delay:.5s}.stagger-item:nth-child(6){animation-delay:.6s}.stagger-item:nth-child(7){animation-delay:.7s}.stagger-item:nth-child(8){animation-delay:.8s}.stagger-item:nth-child(9){animation-delay:.9s}.stagger-item:nth-child(10){animation-delay:1s}.copy-success{animation:copySuccess 1.5s ease forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes pop{0%{transform:scale(.95)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes copySuccess{0%{background-color:transparent}30%{background-color:var(--color-success);color:#fff}70%{background-color:var(--color-success);color:#fff}to{background-color:transparent}}.tab-content.active{animation:fadeTab .3s ease-in-out}@keyframes fadeTab{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.special-date.visible{animation:slideDown .5s ease-in-out}.holiday-item.highlight{animation:highlight 1.5s ease-in-out infinite}@keyframes highlight{0%{background-color:#e639461a}50%{background-color:#e639464d}to{background-color:#e639461a}}.shake{animation:shake .5s cubic-bezier(.36,.07,.19,.97) both}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-3px,0,0)}40%,60%{transform:translate3d(3px,0,0)}}.loading-spinner{display:inline-block;width:20px;height:20px;border:2px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:var(--color-primary);animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}
