:root{--bg-color: #0f172a;--card-bg: rgba(30, 41, 59, .7);--text-primary: #f1f5f9;--text-secondary: #94a3b8;--accent: #5eead4;--accent-hover: #2dd4bf;--accent-light: #99f6e4;--holiday-tag: #6ee7b7;--glass-border: rgba(255, 255, 255, .1);--glass-bg: rgba(255, 255, 255, .05);--today-bg: rgba(94, 234, 212, .15);--font-main: "Inter", system-ui, -apple-system, sans-serif;--header-bg: rgba(15, 23, 42, .8);--layout-gap: 2rem}body.light-mode{--bg-color: #f8fafc;--card-bg: rgba(255, 255, 255, .8);--text-primary: #1e293b;--text-secondary: #64748b;--accent: #14b8a6;--accent-hover: #0d9488;--accent-light: #5eead4;--holiday-tag: #10b981;--glass-border: rgba(0, 0, 0, .05);--today-bg: rgba(20, 184, 166, .1);--header-bg: rgba(248, 250, 252, .8)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-main);background-color:var(--bg-color);color:var(--text-primary);min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}#app{max-width:1400px;margin:0 auto;padding:2rem;width:100%;flex:1;display:flex;flex-direction:column}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.logo{display:flex;align-items:center;gap:.75rem}.logo .icon{font-size:2rem}.logo h1{font-size:1.5rem;font-weight:800;letter-spacing:-.025em}.logo span{color:var(--accent)}.controls{display:flex;align-items:center;gap:1.5rem;background:var(--card-bg);padding:.5rem 1rem;border-radius:1rem;border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.controls h2{font-size:1.25rem;min-width:180px;text-align:center}.controls button{background:transparent;border:none;color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:.25rem;border-radius:.5rem;transition:all .2s}.controls button:hover{background:#ffffff1a;color:var(--accent)}.today-btn{background:var(--accent)!important;color:var(--bg-color)!important;font-weight:600;padding:.4rem 1rem!important;margin-left:.5rem}.today-btn:hover{background:var(--accent-hover)!important;transform:translateY(-2px);box-shadow:0 4px 12px #5eead466}.view-toggle{display:flex;gap:.25rem;background:#ffffff0d;padding:.25rem;border-radius:.75rem;border:1px solid var(--glass-border)}.view-btn{padding:.5rem!important;border-radius:.5rem!important;opacity:.6}.view-btn.active{background:#ffffff1a!important;opacity:1;color:var(--accent)!important}.calendar-layout-container{display:flex;gap:2rem;width:100%;transition:all .4s cubic-bezier(.4,0,.2,1)}.calendar-layout-container.with-sidebar{gap:1.5rem}.calendar-main{flex:1;min-width:0}.sidebar-ads{width:300px;display:flex;flex-direction:column;gap:1.5rem}.ad-unit{background:var(--card-bg);border:1px dashed var(--glass-border);display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:.75rem;position:relative;min-height:100px}.ad-label{font-size:.6rem;text-transform:uppercase;color:var(--text-secondary);position:absolute;top:.5rem;left:.5rem}.ad-top{width:100%;height:90px;margin-bottom:2rem}.ad-sidebar{width:100%;height:600px}.site-footer{margin-top:4rem;padding:2rem 0;text-align:center;color:var(--text-secondary);font-size:.875rem;border-top:1px solid var(--glass-border)}.calendar-container{background:var(--card-bg);border-radius:1.5rem;border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:1.5rem;box-shadow:0 25px 50px -12px #00000080;flex:1;display:flex;flex-direction:column;width:100%;max-width:100%;overflow:hidden}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:1rem}.weekdays div{text-align:center;color:var(--text-secondary);font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.75rem;flex:1}.day{aspect-ratio:1 / 1;background:#ffffff08;border-radius:.75rem;padding:.75rem;display:flex;flex-direction:column;transition:all .2s cubic-bezier(.4,0,.2,1);cursor:pointer;border:1px solid transparent;position:relative;min-width:0;overflow:hidden}body.light-mode .day{background:#00000005}.day:hover{background:#ffffff14;transform:translateY(-2px);border-color:var(--accent)}.day.empty{background:transparent;cursor:default}.day.empty:hover{transform:none;border-color:transparent}.day.today{background:var(--today-bg);border-color:var(--accent)}.day.active-selection{border-color:var(--accent);background:#5eead41a;box-shadow:0 0 15px #5eead44d}.day-number{font-size:1.125rem;font-weight:700;transition:color .2s}.day.today .day-number{color:var(--accent)}.holiday-count{position:absolute;top:.5rem;right:.5rem;font-size:.65rem;font-weight:700;color:var(--text-secondary);background:#ffffff1a;padding:1px 4px;border-radius:4px;pointer-events:none}.filters-bar{display:flex;align-items:center;gap:1.5rem;margin-bottom:2.5rem;background:var(--card-bg);padding:1rem 1.5rem;border-radius:1rem;border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.filter-label{font-size:.875rem;font-weight:600;color:var(--text-secondary)}.filter-tags{display:flex;gap:.75rem;overflow-x:auto;scroll-behavior:smooth;-ms-overflow-style:none;scrollbar-width:none;padding-bottom:4px}.filter-tags::-webkit-scrollbar{display:none}.filter-tag{background:#ffffff0d;border:1px solid var(--glass-border);color:var(--text-secondary);padding:.35rem 1rem;border-radius:2rem;font-size:.8125rem;cursor:pointer;white-space:nowrap;transition:all .2s}.filter-tag:hover{background:#ffffff1a;color:var(--text-primary)}.filter-tag.active{background:var(--accent);color:var(--bg-color);border-color:var(--accent);font-weight:600}.theme-toggle button{background:#ffffff0d;border:1px solid var(--glass-border);color:var(--text-primary);padding:.5rem;border-radius:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.theme-toggle button:hover{background:#ffffff1a}.hidden{display:none!important}.holiday-indicator{margin-top:auto;display:flex;flex-wrap:wrap;gap:4px}.dot{width:6px;height:6px;border-radius:50%;background-color:var(--holiday-tag)}.list-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;width:100%;padding-top:1rem}.holiday-card{background:var(--card-bg);border:1px solid var(--glass-border);border-radius:1.25rem;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;min-height:280px;text-align:left;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;animation:cardFadeIn .5s ease-out forwards;opacity:0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.holiday-card:hover{transform:translateY(-5px) scale(1.02);border-color:var(--accent);box-shadow:0 15px 30px -10px #0006;background:#ffffff0d}.card-date{font-size:.75rem;font-weight:700;text-transform:uppercase;color:var(--accent);letter-spacing:.05em}.card-icon{font-size:2.5rem;margin:.5rem 0}.card-info{display:flex;flex-direction:column;gap:.5rem;flex-grow:1}.card-category{font-size:.7rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;background:#ffffff0d;padding:4px 10px;border-radius:2rem;width:fit-content;margin-bottom:.25rem}.card-title{font-size:1.25rem;font-weight:700;line-height:1.3;margin-bottom:.5rem}.card-hashtags{font-size:.8rem;color:var(--accent);font-family:Courier New,Courier,monospace;margin-top:auto;opacity:.8}.modal-category{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;color:var(--accent);margin-bottom:1rem;text-transform:uppercase}.modal-icon{font-size:1.5rem}.holiday-drawer{position:fixed;top:0;right:-450px;width:420px;height:100vh;background:var(--bg-color);z-index:1000;transition:all .4s cubic-bezier(.4,0,.2,1);padding:2.5rem;box-shadow:-10px 0 30px #00000080;display:flex;flex-direction:column;border-left:1px solid var(--glass-border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);overflow-y:auto;overflow-x:hidden}.holiday-drawer::-webkit-scrollbar{width:6px}.holiday-drawer::-webkit-scrollbar-track{background:transparent}.holiday-drawer::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:10px}.holiday-drawer::-webkit-scrollbar-thumb:hover{background:var(--accent)}.holiday-drawer.open{right:0}.holiday-drawer.sidebar-mode{position:sticky;top:1.5rem;right:0;height:calc(100vh - 3rem);width:380px;box-shadow:none;border:1px solid var(--glass-border);border-radius:1.5rem;background:var(--card-bg);margin-top:0;padding:2rem}.holiday-drawer.sidebar-mode .close-btn{display:none}.close-btn{position:absolute;top:1rem;left:1rem;background:transparent;border:none;color:var(--text-secondary);font-size:2rem;cursor:pointer;line-height:1}.drawer-date{font-size:1.5rem;font-weight:700;margin-bottom:2rem;color:var(--accent)}.holiday-list{display:flex;flex-direction:column;gap:1.5rem}.holiday-item{background:#ffffff0d;padding:1.25rem;border-radius:1rem;border:1px solid var(--glass-border);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);animation:cardFadeIn .5s ease-out forwards;opacity:0}.holiday-item:hover{background:#ffffff1a;transform:scale(1.02);border-color:var(--accent);box-shadow:0 10px 20px -5px #0000004d}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.calendar-grid{transition:opacity .3s ease}.calendar-grid.fade-out{opacity:0}.list-view{display:flex;flex-direction:column;gap:1rem}.list-day-group{margin-bottom:1.5rem}.list-date-header{font-size:.9rem;font-weight:700;color:var(--accent);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--glass-border)}.list-holiday-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--card-bg);border:1px solid var(--glass-border);border-radius:.75rem;margin-bottom:.5rem;transition:transform .2s;cursor:pointer}.list-holiday-item:hover{transform:translate(5px);border-color:var(--accent)}.list-holiday-info{display:flex;flex-direction:column;gap:.25rem}.list-holiday-name{font-weight:600}.list-holiday-meta{display:flex;gap:.5rem}.list-view.hidden{display:none}.tag{font-size:.75rem;padding:.25rem .6rem;border-radius:2rem;background:#5eead41a;color:var(--accent)}.hashtag{font-size:.875rem;color:var(--holiday-tag);font-family:monospace}.overlay{position:fixed;top:0;left:0;width:100%;height:100vh;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:999;opacity:0;pointer-events:none;transition:opacity .3s ease}.overlay.visible{opacity:1;pointer-events:auto}@media(max-width:1100px){.calendar-layout-container{flex-direction:column}.sidebar-ads{width:100%;flex-direction:row}.ad-sidebar{height:250px;flex:1}}.modal{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;z-index:2000;opacity:0;pointer-events:none;transition:opacity .3s ease}.modal.visible{opacity:1;pointer-events:auto}.modal-content{background:var(--bg-color);padding:2.5rem;border-radius:1.5rem;border:1px solid var(--glass-border);max-width:600px;width:90%;box-shadow:0 30px 60px #000c;position:relative;transform:scale(.9);transition:transform .3s cubic-bezier(.34,1.56,.64,1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.modal.visible .modal-content{transform:scale(1)}.close-modal-btn{position:absolute;top:1.25rem;right:1.25rem;background:transparent;border:none;color:var(--text-secondary);font-size:2rem;cursor:pointer;line-height:1}.modal-category{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-weight:700;margin-bottom:.5rem}.modal-title{font-size:2rem;font-weight:800;margin-bottom:1.5rem;line-height:1.2}.modal-summary,.modal-idea{margin-bottom:2rem}.modal-summary h3,.modal-idea h3{font-size:.875rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem}.modal-summary p,.modal-idea p{font-size:1.125rem;line-height:1.6}.modal-footer{padding-top:1.5rem;border-top:1px solid var(--glass-border)}.modal-idea{background:#5eead40d;padding:1.5rem;border-radius:1rem;border:1px solid var(--today-bg)}.drawer-section-title{margin-top:1.5rem;margin-bottom:.75rem;font-size:.9rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600;border-bottom:1px solid var(--border-color);padding-bottom:.5rem}.share-btn{display:flex;align-items:center;gap:.5rem;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-color);padding:.5rem 1rem;border-radius:.75rem;cursor:pointer;font-weight:500;transition:all .2s ease}.share-btn:hover{background:var(--today-bg);transform:translateY(-1px)}.share-options-btn{width:100%;padding:.75rem;background:var(--accent);color:#fff;border:none;border-radius:.75rem;font-weight:600;cursor:pointer;margin-top:1rem;transition:opacity .2s}.share-options-btn:hover{opacity:.9}.toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);background:var(--text-color);color:var(--bg-color);padding:.75rem 1.5rem;border-radius:2rem;font-size:.9rem;font-weight:500;box-shadow:0 4px 12px #0003;z-index:3000;transition:transform .3s ease,opacity .3s ease;pointer-events:none}.toast.hidden{opacity:0;transform:translate(-50%,20px)}.toast.visible{opacity:1;transform:translate(-50%)}@media(max-width:768px){#app{padding:1rem}header{flex-direction:column;gap:1.25rem;align-items:center;text-align:center}.logo{margin-right:0}.controls{width:100%;justify-content:center;gap:.5rem;flex-wrap:wrap;padding:.75rem}#currentMonthYear{font-size:1.125rem;min-width:130px}.filters-bar{padding:.75rem 1rem;flex-direction:column;align-items:flex-start;gap:.75rem}.filter-tags{width:100%}.calendar-container{padding:1rem;border-radius:1rem}.calendar-grid{gap:.5rem}.day{padding:.5rem;border-radius:.5rem}.day-number{font-size:.9rem}.holiday-preview{display:none}.dot{width:4px;height:4px}.holiday-drawer{width:100%;right:-100%;padding:1.5rem}.drawer-date{font-size:1.25rem;margin-top:1.5rem}}@media(max-width:480px){.controls{gap:.25rem}#currentMonthYear{font-size:1rem;min-width:110px}.today-btn{padding:.4rem .6rem!important;font-size:.75rem}}
