.month-view{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius);padding:var(--gap-md);overflow:hidden}.month-agenda{display:none}.month-grid-header{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:var(--gap-sm)}.day-header{text-align:center;font-size:.8rem;font-weight:600;color:var(--text-secondary);padding:var(--gap-sm) 0;text-transform:uppercase;letter-spacing:.05em}.day-header.weekend{color:var(--primary)}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.day-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:64px;padding:var(--gap-xs);background:transparent;border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all var(--transition-fast);position:relative}.day-cell:hover{background:var(--bg-highest)}.day-cell.dim{opacity:.35}.day-cell.today{background:var(--primary-subtle);border-color:var(--primary)}.day-cell.selected{background:var(--primary);border-color:var(--primary);box-shadow:0 0 20px var(--primary-glow)}.day-cell.selected .solar-day{color:#fff}.day-cell.selected .lunar-day{color:#fffc}.day-cell.weekend .solar-day,.day-cell.public-holiday .solar-day{color:var(--primary)}.day-cell.selected.weekend .solar-day,.day-cell.selected.public-holiday .solar-day{color:#fff}.day-cell.holiday:after{content:"";position:absolute;bottom:4px;width:5px;height:5px;border-radius:50%;background:var(--gold)}.day-cell.leap-month .lunar-day{color:var(--gold);font-weight:600}.day-cell.lunar-highlight .lunar-day{color:var(--primary);font-weight:600}.day-cell.selected.lunar-highlight .lunar-day{color:#fffc}.solar-day{font-size:1.3rem;font-weight:600;color:var(--text-primary);line-height:1.2}.lunar-day{font-size:.7rem;color:var(--gold-dim);line-height:1.2;margin-top:1px}@media(max-width:768px){.day-cell{min-height:52px;min-width:44px;padding:2px}.solar-day{font-size:1.15rem}.lunar-day{font-size:.6rem}}@media(max-width:480px){.month-view{padding:var(--gap-sm)}.day-cell{min-height:44px;min-width:0;padding:1px;border-width:1px;border-radius:8px}.month-grid{gap:1px}.solar-day{font-size:1.05rem}.lunar-day{font-size:.52rem}.day-header{font-size:.65rem;padding:var(--gap-xs) 0}}@media(max-width:379px){.month-grid-wrapper{display:none}.month-agenda{display:flex;flex-direction:column;gap:2px}.month-view{padding:var(--gap-sm)}.agenda-row{display:flex;align-items:center;gap:var(--gap-sm);min-height:44px;padding:var(--gap-sm) var(--gap-md);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;width:100%;text-align:left;color:var(--text-primary);font-family:var(--font-body);transition:background var(--transition-fast);position:relative}.agenda-row:hover{background:var(--bg-highest)}.agenda-row.today{background:var(--primary-subtle);border-left:3px solid var(--primary)}.agenda-row.selected{background:var(--primary)}.agenda-row.selected .agenda-day,.agenda-row.selected .agenda-weekday,.agenda-row.selected .agenda-lunar{color:#fff}.agenda-day{font-size:1.4rem;font-weight:700;min-width:32px;color:var(--text-primary)}.agenda-row.weekend .agenda-day,.agenda-row.public-holiday .agenda-day{color:var(--primary)}.agenda-row.selected.weekend .agenda-day,.agenda-row.selected.public-holiday .agenda-day{color:#fff}.agenda-weekday{font-size:.8rem;color:var(--text-secondary);min-width:24px}.agenda-lunar{font-size:.8rem;color:var(--gold-dim);margin-left:auto}.agenda-row.lunar-highlight .agenda-lunar{color:var(--primary);font-weight:600}.agenda-row.selected.lunar-highlight .agenda-lunar{color:#fff}.agenda-holiday-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);flex-shrink:0}}.year-view{padding:var(--gap-sm)}.year-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap-md)}.mini-month{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius);padding:var(--gap-sm) var(--gap-md);cursor:pointer;transition:all var(--transition-normal)}.mini-month:hover{border-color:var(--primary);box-shadow:0 0 16px var(--primary-glow);transform:translateY(-2px)}.mini-month-title{font-family:var(--font-headline);font-size:.9rem;font-weight:700;color:var(--gold);text-align:center;margin-bottom:var(--gap-xs)}.mini-grid-header{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.mini-header{text-align:center;font-size:.55rem;color:var(--text-dim);font-weight:600}.mini-header.weekend{color:var(--primary)}.mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.mini-cell{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1px 0;border-radius:4px;min-height:22px}.mini-cell.empty{visibility:hidden}.mini-solar{font-size:.78rem;color:var(--text-secondary);line-height:1.1}.mini-lunar{font-size:.42rem;color:var(--gold-dim);line-height:1}.mini-cell.weekend .mini-solar,.mini-cell.public-holiday .mini-solar{color:var(--primary)}.mini-cell.lunar-highlight .mini-lunar{color:var(--primary);font-weight:700}.mini-cell.today{background:var(--primary)}.mini-cell.today .mini-solar{color:#fff;font-weight:700}.mini-cell.today .mini-lunar{color:#ffffffb3}.mini-cell.leap .mini-solar{color:var(--gold);font-weight:600}@media(max-width:768px){.year-grid{grid-template-columns:repeat(3,1fr);gap:var(--gap-sm)}}@media(max-width:480px){.year-grid{grid-template-columns:repeat(2,1fr)}}.date-detail{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius);padding:var(--gap-lg);display:flex;flex-direction:column;gap:var(--gap-md)}.detail-header{text-align:center;padding-bottom:var(--gap-md);border-bottom:1px solid var(--glass-border)}.solar-date-large{font-family:var(--font-headline);font-size:3.5rem;font-weight:700;color:var(--text-primary);line-height:1}.solar-meta{display:flex;justify-content:center;gap:var(--gap-sm);margin-top:var(--gap-xs)}.weekday{color:var(--text-secondary);font-size:.9rem}.solar-full{color:var(--text-dim);font-size:.9rem}.lunar-date-gold{margin-top:var(--gap-sm);color:var(--gold);font-family:var(--font-headline);font-size:.95rem;font-weight:600}.header-holidays{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 8px;margin-top:var(--gap-sm)}.header-holiday-name{display:inline-flex;align-items:center;gap:5px;font-size:.7rem;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.06em}.header-holiday-name:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold);flex-shrink:0}.detail-section{display:flex;flex-direction:column;gap:var(--gap-sm)}.section-title{font-family:var(--font-headline);font-size:.8rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.hoang-dao-badge{display:inline-block;padding:6px 14px;border-radius:var(--radius-pill);font-size:.85rem;font-weight:600;text-align:center}.hoang-dao-badge.good{background:var(--success-subtle);color:var(--success);border:1px solid rgba(76,175,80,.3)}.hoang-dao-badge.bad{background:var(--danger-subtle);color:var(--danger);border:1px solid rgba(231,76,60,.3)}.badge-suffix{font-weight:400;opacity:.8}.can-chi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap-sm)}.can-chi-item{display:flex;flex-direction:column;align-items:center;background:var(--bg-highest);border-radius:var(--radius-sm);padding:var(--gap-sm)}.cc-label{font-size:.7rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.cc-value{font-size:.85rem;font-weight:600;color:var(--gold);margin-top:2px}.warning-badges{display:flex;flex-wrap:wrap;gap:var(--gap-xs)}.warning-badge{display:inline-block;padding:4px 12px;border-radius:var(--radius-pill);font-size:.78rem;font-weight:600;background:var(--warning-bg);color:var(--primary);border:1px solid rgba(218,41,28,.3)}.gio-compact{display:flex;flex-wrap:wrap;gap:4px 6px}.gio-item{font-size:.75rem;line-height:1.4;white-space:nowrap}.gio-item.auspicious{color:var(--gold);font-weight:600}.gio-item.inauspicious{color:var(--text-dim);font-weight:400}.gio-item-time{font-size:.6rem;opacity:.7}.activity-tags{display:flex;flex-wrap:wrap;gap:var(--gap-xs)}.activity-tag{display:inline-block;padding:4px 12px;border-radius:var(--radius-pill);font-size:.78rem;font-weight:500}.activity-tag.nen{background:var(--success-subtle);color:var(--success);border:1px solid rgba(76,175,80,.2)}.activity-tag.khong-nen{background:var(--danger-subtle);color:var(--danger);border:1px solid rgba(231,76,60,.2);opacity:.7}.solar-term-badge{display:inline-block;padding:4px 14px;border-radius:var(--radius-pill);background:#e9c3491a;color:var(--gold);font-size:.85rem;font-weight:600;border:1px solid rgba(233,195,73,.2)}@media(max-width:768px){.date-detail{padding:var(--gap-md)}.solar-date-large{font-size:2.5rem}}@media(max-width:480px){.date-detail{padding:var(--gap-sm);gap:var(--gap-sm)}.solar-date-large{font-size:2rem}.lunar-date-gold{font-size:.82rem}.can-chi-grid{gap:var(--gap-xs)}.can-chi-item{padding:var(--gap-xs)}.cc-value{font-size:.78rem}.section-title{font-size:.72rem}.activity-tag{font-size:.7rem;padding:3px 8px}}.navigation{display:flex;align-items:center;justify-content:space-between;padding:var(--gap-md) var(--gap-lg)}.nav-controls{display:flex;align-items:center;gap:var(--gap-md)}.nav-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--bg-elevated);border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:1.25rem;transition:all var(--transition-fast)}.nav-btn:hover{background:var(--bg-highest);border-color:var(--primary)}.nav-label{font-family:var(--font-headline);font-size:1.3rem;font-weight:700;min-width:180px;text-align:center}.year-clickable{cursor:pointer;border-bottom:1px dashed var(--text-dim);transition:color var(--transition-fast)}.year-clickable:hover{color:var(--gold);border-bottom-color:var(--gold)}.year-input{font-family:var(--font-headline);font-size:inherit;font-weight:700;color:var(--gold);background:var(--bg-highest);border:1px solid var(--gold);border-radius:4px;text-align:center;width:4.5em;padding:2px 4px;outline:none;-moz-appearance:textfield}.year-input::-webkit-outer-spin-button,.year-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.today-btn{background:var(--primary-subtle);border:1px solid var(--primary);color:var(--primary);font-weight:600;font-size:.85rem;padding:8px 20px;border-radius:var(--radius-pill);transition:all var(--transition-fast)}.today-btn:hover{background:var(--primary);color:var(--text-primary)}@media(max-width:768px){.navigation{padding:var(--gap-sm) var(--gap-md)}.nav-label{font-size:1.1rem;min-width:140px}}@media(max-width:480px){.navigation{padding:var(--gap-xs) var(--gap-sm);gap:var(--gap-xs)}.nav-controls{gap:var(--gap-xs)}.nav-btn{width:32px;height:32px;font-size:1rem}.nav-label{font-size:.95rem;min-width:110px}.today-btn{font-size:.75rem;padding:6px 12px}}.quote-panel{margin-top:var(--gap-md);padding:var(--gap-md) var(--gap-lg);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius);text-align:center}.quote-text{font-family:var(--font-headline);font-size:.9rem;font-style:italic;color:var(--text-secondary);line-height:1.6;margin:0 0 var(--gap-sm)}.quote-author{font-size:.75rem;color:var(--text-dim);font-weight:500}@media(max-width:768px){.quote-panel{padding:var(--gap-sm) var(--gap-md)}.quote-text{font-size:.82rem}}@media(max-width:480px){.quote-panel{padding:var(--gap-sm);margin-top:var(--gap-sm)}.quote-text{font-size:.78rem}}.app{min-height:100vh;background:var(--bg-base);color:var(--text-primary);font-family:var(--font-body)}.app-header{display:flex;align-items:center;justify-content:space-between;padding:var(--gap-md) var(--gap-lg);background:var(--bg-elevated);border-bottom:1px solid var(--glass-border)}[data-theme=light] .app-header{background:#09c;color:#fff;border-bottom-color:#fff3;box-shadow:0 10px 24px #09c3}.app-brand{display:inline-flex;flex-direction:column;align-items:flex-start;gap:3px;color:inherit;text-decoration:none}.brand-logo{width:132px;height:auto;display:block}.app-title{font-family:var(--font-headline);font-size:1rem;font-weight:700;color:var(--text-secondary);letter-spacing:.08em;text-transform:uppercase;margin:0}[data-theme=light] .app-title{color:#fff}.header-actions{display:flex;align-items:center;gap:var(--gap-sm)}.theme-toggle{display:flex;align-items:center;justify-content:center;width:34px;height:34px;background:var(--bg-highest);border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}[data-theme=light] .theme-toggle{background:#ffffff24;border-color:#ffffff47;color:#fff}.theme-toggle:hover{color:var(--gold);border-color:var(--gold)}[data-theme=light] .theme-toggle:hover{background:#ffffff38}.view-toggle{display:flex;gap:var(--gap-xs);background:var(--bg-highest);padding:3px;border-radius:var(--radius-sm)}[data-theme=light] .view-toggle{background:#ffffff24}.toggle-btn{background:none;border:none;color:var(--text-secondary);font-family:var(--font-body);font-size:.85rem;font-weight:600;padding:6px 16px;border-radius:6px;cursor:pointer;transition:all var(--transition-fast)}[data-theme=light] .toggle-btn{color:#ffffffd1}.toggle-btn.active{background:var(--primary);color:#fff}[data-theme=light] .toggle-btn.active{background:#fff;color:#007da8}.toggle-btn:hover:not(.active){color:var(--text-primary)}[data-theme=light] .toggle-btn:hover:not(.active){color:#fff}.app-content{display:flex;gap:var(--gap-lg);padding:var(--gap-lg);max-width:1400px;margin:0 auto}.calendar-area{flex:7;min-width:0}.detail-area{flex:3;min-width:280px;max-width:400px}@media(max-width:768px){.app-header{padding:var(--gap-sm) var(--gap-md)}.brand-logo{width:118px}.app-title{font-size:.88rem}.app-content{flex-direction:column;padding:var(--gap-md);gap:var(--gap-md)}.detail-area{max-width:none;min-width:0}}@media(max-width:480px){.app-header{padding:var(--gap-xs) var(--gap-sm);gap:var(--gap-xs)}.app-brand{gap:2px}.brand-logo{width:102px}.app-title{font-size:.72rem;letter-spacing:.06em}.toggle-btn{font-size:.75rem;padding:5px 10px}.theme-toggle{width:28px;height:28px}.theme-toggle svg{width:14px;height:14px}.header-actions{gap:var(--gap-xs)}.app-content{padding:var(--gap-sm);gap:var(--gap-sm)}}@media(max-width:379px){.app-content{padding:var(--gap-xs);gap:var(--gap-sm)}.app-header{padding:var(--gap-xs) var(--gap-sm)}}:root{--bg-base: #0E0E10;--bg-elevated: #131315;--bg-highest: #201F21;--primary: #DA291C;--primary-glow: rgba(218, 41, 28, .3);--primary-subtle: rgba(218, 41, 28, .15);--gold: #E9C349;--gold-dim: rgba(233, 195, 73, .4);--silver: #C6C6C6;--silver-dim: rgba(198, 198, 198, .5);--text-primary: #F0F0F0;--text-secondary: #A0A0A0;--text-dim: #666666;--success: #0099cc;--success-subtle: rgba(0, 153, 204, .15);--danger: #E74C3C;--danger-subtle: rgba(231, 76, 60, .15);--warning-bg: rgba(218, 41, 28, .12);--font-headline: "Noto Serif", serif;--font-body: "Manrope", sans-serif;--radius: 16px;--radius-sm: 8px;--radius-pill: 999px;--glass-bg: rgba(19, 19, 21, .7);--glass-blur: 24px;--glass-border: rgba(255, 255, 255, .06);--gap-xs: 4px;--gap-sm: 8px;--gap-md: 16px;--gap-lg: 24px;--gap-xl: 32px;--transition-fast: .15s ease;--transition-normal: .25s ease}[data-theme=light]{--bg-base: #F5F2EE;--bg-elevated: #FFFFFF;--bg-highest: #EDE8E3;--primary: #C41E12;--primary-glow: rgba(196, 30, 18, .2);--primary-subtle: rgba(196, 30, 18, .08);--gold: #B8941A;--gold-dim: rgba(184, 148, 26, .5);--silver: #6B6B6B;--silver-dim: rgba(107, 107, 107, .4);--text-primary: #1A1A1A;--text-secondary: #555555;--text-dim: #999999;--success: #007da8;--success-subtle: rgba(0, 153, 204, .1);--danger: #C62828;--danger-subtle: rgba(198, 40, 40, .1);--warning-bg: rgba(196, 30, 18, .06);--glass-bg: rgba(255, 255, 255, .75);--glass-blur: 20px;--glass-border: rgba(0, 0, 0, .08)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--bg-base);color:var(--text-primary);font-family:var(--font-body);line-height:1.5}button{font-family:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
