@font-face{font-family:AquaMoons;font-display:block;src:url("./media/AquaMoons-TMBUDTAQ.woff2") format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:300 700;font-display:swap;src:url("./media/inter-var-cyrillic-ext-IYF56FF6.woff2") format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:300 700;font-display:swap;src:url("./media/inter-var-cyrillic-JEOLYBOO.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:300 700;font-display:swap;src:url("./media/inter-var-greek-IRE366VL.woff2") format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:300 700;font-display:swap;src:url("./media/inter-var-vietnamese-CE5GGD3W.woff2") format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:300 700;font-display:swap;src:url("./media/inter-var-latin-ext-HA22NDSG.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:300 700;font-display:swap;src:url("./media/inter-var-latin-NRMW37G5.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:400 700;font-display:swap;src:url("./media/outfit-var-latin-ext-5Z2WCAL6.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-weight:400 700;font-display:swap;src:url("./media/outfit-var-latin-5FXBKKJF.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--color-accent: #667eea;--color-bg-primary: #0f172a;--color-bg-secondary: #764ba2;--color-bg-card: rgba(30, 41, 59, .7);--color-bg-edit: #141e2e;--color-bg-focus: rgba(99, 102, 241, .1);--color-border: rgba(255, 255, 255, .2);--color-border-highlight: #3b4f74;--color-box-shadow: rgba(99, 102, 241, .3);--color-text-primary: #f8fafc;--color-text-muted: #94a3b8;--color-primary-dark: #475569;--color-primary-light: #a0aec0;--color-bg-event-dark: rgba(102, 126, 234, .25);--color-bg-event-light: rgba(102, 126, 234, .15);--radius-sm: 4px;--radius-md: 6px;--radius-xl: 12px;--shadow-card: 0 4px 24px rgba(0, 0, 0, .3), 0 1px 4px rgba(0, 0, 0, .2);--shadow-glow: 0 0 30px rgba(59, 130, 246, .08);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-display: "Outfit", var(--font-sans);--font-mono: "Fira Code", "Courier New", monospace;--transition: .2s ease}body{background-color:var(--color-bg-primary);color:var(--color-text-primary);font-family:var(--font-sans);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;overflow-x:hidden}app-root{display:flex;flex-direction:column;align-items:center;min-height:100vh;width:100%;padding:.5rem}body::selection{background:var(--color-bg-secondary);color:#fff}.stars-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background:radial-gradient(ellipse at bottom,#1b2735,#090a0f);overflow:hidden;display:block}.star{position:absolute;background:#fff;border-radius:50%;animation-name:twinkle;animation-iteration-count:infinite;animation-timing-function:ease-in-out}@keyframes twinkle{0%,to{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}.title{font-family:var(--font-display);font-size:2.2rem;font-weight:700;text-align:center;margin:0 1rem .5rem;background:var(--gradient-primary);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.version-badge{display:inline-block;margin-inline-start:.75rem;padding:.1rem .6rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg-edit);color:var(--color-text-muted);font-family:var(--font-mono);font-size:.85rem;font-weight:500;line-height:1.5;vertical-align:middle;white-space:nowrap;-webkit-text-fill-color:currentColor}.subtitle{text-align:center;color:var(--color-text-muted);margin:0 1rem 2rem}.lang-switcher{position:absolute;top:1.5rem;inset-inline-end:1.5rem;display:flex;gap:.5rem;z-index:100}select,input{width:100%;background:var(--color-bg-edit);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid var(--color-border);color:var(--color-text-muted);padding-block:.5rem;padding-inline:1rem 2.5rem;border-radius:var(--radius-md);cursor:pointer;font-size:.9rem;font-weight:500;font-family:inherit;transition:all .3s ease;appearance:none;-webkit-appearance:none;outline:none}select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}[dir=rtl] select{background-position:left .75rem center}select:hover,input:hover{border-color:var(--color-accent);color:var(--color-text-primary)}select:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23667eea' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")}select:focus,input:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-box-shadow)}input:focus{background:var(--color-bg-focus)}select option,select optgroup{background-color:var(--color-bg-primary);color:var(--color-text-primary);padding:10px}.title-icon{height:2rem;width:auto;vertical-align:middle;margin-inline-end:1rem;filter:drop-shadow(0 4px 12px rgba(99,102,241,.3));transition:transform .3s ease;animation:float 3s ease-in-out infinite}.title:hover .title-icon{transform:scale(1.1) rotate(15deg)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.container{width:100%;max-width:1200px;display:grid;grid-template-columns:1fr 2fr;gap:2rem;margin-bottom:2rem}.glass-card{background:var(--color-bg-card);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:1rem 2rem 1.5rem;box-shadow:var(--shadow-card);animation:fadeIn .8s ease-out forwards}.glass-card:hover{border-color:var(--color-border-highlight);box-shadow:var(--shadow-card),var(--shadow-glow)}.controls-section h2,.editor-section h2,.calendar-section h2{font-family:var(--font-display);font-size:1.5rem;color:var(--color-accent);margin-bottom:1rem}.form-group{margin-bottom:1.5rem}label{display:block;font-size:.875rem;margin-bottom:.5rem;color:var(--color-text-muted)}.time-inputs{display:flex;align-items:center;gap:.25rem;direction:ltr}.time-inputs select{width:auto;flex:1;text-align:center;background-position:right .75rem center}.time-separator{color:var(--color-text-muted);font-weight:600;-webkit-user-select:none;user-select:none}.btn{width:100%;background:var(--gradient-primary);color:#fff;border:none;border-radius:var(--radius-md);padding:.5rem 1rem;font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer;transition:transform .2s,opacity .2s;display:flex;justify-content:center;align-items:center;gap:.5rem}.btn:not(:disabled):hover{transform:translateY(-2px);opacity:.9}.btn:disabled{background:#ffffff0d;color:var(--color-text-muted);cursor:default;box-shadow:none;border:1px solid var(--color-border)}.btn:active{transform:translateY(0)}.btn-secondary{background:linear-gradient(135deg,#10b981,#3b82f6);box-shadow:0 4px 15px #10b9814d;margin-top:1rem}.editor-header{display:flex;justify-content:space-between;align-items:center}.search-replace{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.search-inputs{display:flex;gap:1rem}.search-inputs .form-group{flex:1;margin-bottom:0}.search-replace input{width:100%}.search-buttons{display:flex;gap:.5rem}.btn-small{padding:.5rem 1rem;font-size:.85rem;border-radius:var(--radius-md);flex:1}.editor-wrapper{display:flex;background:#000;border-radius:var(--radius-md);border:1px solid var(--color-border);overflow:hidden;height:500px}.line-numbers{direction:ltr;width:50px;background:#111;border-inline-end:1px solid var(--color-border);color:var(--color-text-muted);padding:1rem .5rem;text-align:right;font-family:var(--font-mono);font-size:.9rem;line-height:1.5;white-space:pre;-webkit-user-select:none;user-select:none;overflow:hidden;scrollbar-width:none;flex:none}.line-numbers::-webkit-scrollbar{display:none}.json-editor{direction:ltr;flex:1;height:100%;width:auto;background:transparent;color:#4ade80;font-family:var(--font-mono);font-size:.9rem;line-height:1.5;padding:1rem;border:none;outline:none;resize:none;white-space:pre;overflow:auto;cursor:text}.json-editor:focus{background:transparent;box-shadow:none}.json-editor::placeholder{font-style:italic}.status-bar{margin-top:1rem;font-size:.8rem;color:var(--color-text-muted)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.calendar-section{margin-top:0;padding-bottom:2rem;grid-column:1 / -1}.calendar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));justify-content:center;gap:1.5rem;margin-top:.5rem}.month-card{background:#0f172a80;border-radius:var(--radius-md);padding:1rem;border:1px solid var(--color-border);transition:all .3s ease;max-width:360px;margin:0 auto;width:100%}.month-card:hover{border-color:var(--color-primary-light);transform:translateY(-2px)}.month-title{text-align:center;font-weight:700;margin-bottom:1rem;color:var(--color-primary-light);font-size:1.1rem;letter-spacing:.05em}.days-header{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;font-size:.75rem;font-weight:700;color:var(--color-text-muted);margin-bottom:.5rem;text-transform:uppercase}.days-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;width:100%}.day-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:#ffffff08;transition:background .2s;min-width:0;padding:2px}.day-cell.empty{background:none}.day-cell.has-event{background:var(--color-bg-event-dark);border:1px solid rgba(79,70,229,.3)}.day-number{font-size:.65rem;color:var(--color-text-muted);margin-bottom:0}.day-cell.has-event .day-number{color:var(--color-primary-light)}.moon-symbol{font-family:AquaMoons,serif;font-size:.95rem;line-height:1;color:#fff;text-shadow:0 0 8px rgba(255,255,255,.3)}.phase-name{font-size:.48rem;color:var(--color-text-muted);text-align:center;margin-top:1px;line-height:1.1;font-weight:400}body.light-theme .month-card{background:#fffc;color:var(--color-primary-dark)}body.light-theme .month-title,body.light-theme .days-header,body.light-theme .day-cell .day-number{color:var(--color-primary-dark)}body.light-theme .day-cell.has-event{background:var(--color-bg-event-light);border:1px solid rgba(79,70,229,.3)}body.light-theme .day-cell.has-event .day-number{color:var(--color-primary-dark)}body.light-theme .moon-symbol{color:var(--color-primary-dark);text-shadow:none}body.light-theme .phase-name{color:var(--color-primary-dark)}.app-footer{width:100%;max-width:1100px;margin-top:auto;padding:1.5rem 0;color:var(--color-text-muted);font-size:.85rem;border-top:1px solid var(--color-border);display:flex;justify-content:center;position:relative}.footer-content{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;width:100%;padding:0 1rem;color:var(--color-text-muted)}.footer-title{font-weight:500;font-size:.85rem}.footer-separator{color:var(--color-border);-webkit-user-select:none;user-select:none}.footer-apps{display:inline-flex;align-items:baseline;gap:.4rem}.footer-content a{color:#a78bfa;text-decoration:none;font-size:.85rem;transition:all .2s ease}.footer-content a:hover{color:#764ba2;filter:brightness(1.2)}@media(max-width:1300px){.lang-switcher{position:static;margin:1rem 0 .75rem;justify-content:center;width:100%;display:flex}.lang-select{width:auto}.title{font-size:1.8rem;line-height:1.2}}@media(max-width:850px){.container{grid-template-columns:1fr}}@media(max-width:600px){.footer-content{gap:.75rem}}.scroll-top-btn{position:fixed;inset-inline-end:2rem;bottom:2rem;width:42px;height:42px;border-radius:50%;background:var(--gradient-primary);border:1px solid var(--color-border);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 32px #0000005e;opacity:0;visibility:hidden;transform:translateY(20px);transition:all .3s cubic-bezier(.4,0,.2,1);z-index:1000}.scroll-top-btn.show{opacity:1;visibility:visible;transform:translateY(0)}.scroll-top-btn svg{transition:transform .3s ease}.scroll-top-btn:hover{transform:translateY(-5px) scale(1.1);box-shadow:0 10px 25px #0006}.scroll-top-btn:hover svg{transform:translateY(-2px)}.scroll-top-btn:active{transform:scale(.95)}@media(max-width:600px){.scroll-top-btn{inset-inline-end:1.5rem;bottom:1.5rem}}.json-editor::-webkit-scrollbar{width:10px;height:10px}.json-editor::-webkit-scrollbar-track{background:transparent}.json-editor::-webkit-scrollbar-thumb{background:var(--color-box-shadow);border-radius:10px;border:2px solid transparent;background-clip:content-box}.json-editor::-webkit-scrollbar-thumb:hover{background-color:var(--color-accent)}.json-editor::-webkit-scrollbar-corner{background:transparent}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
