.app-wrapper{z-index:1;flex-direction:column;width:100%;max-width:900px;height:100%;min-height:0;max-height:850px;display:flex;position:relative}.theme-toggle{border:2px solid var(--border);background:var(--bg-card);width:48px;height:48px;color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-sm);transition:all var(--transition);z-index:1600;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;top:20px;right:20px;overflow:hidden}.logo-badge{border:1px solid var(--border);width:48px;height:48px;box-shadow:var(--shadow-sm);z-index:1600;transition:all var(--transition);background:beige;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;top:20px;left:20px}.logo-badge img{object-fit:contain;filter:invert();width:22px;height:22px;display:block}[data-theme=dark] .logo-badge{background:var(--bg-elevated);border-color:var(--border)}[data-theme=dark] .logo-badge img{filter:none}.theme-toggle:hover{box-shadow:var(--shadow-md);border-color:var(--accent);transform:scale(1.08)}.theme-icon{width:22px;height:22px;transition:all .5s cubic-bezier(.4,0,.2,1);position:absolute}.theme-icon.sun{opacity:0;transform:rotate(180deg)scale(0)}.theme-icon.sun.active{opacity:1;transform:rotate(0)scale(1)}.theme-icon.moon{opacity:0;transform:rotate(180deg)scale(0)}.theme-icon.moon.active{opacity:1;transform:rotate(0)scale(1)}.calendar-shadow-layer{border-radius:var(--radius-xl);perspective:1200px;min-height:0;transform-style:preserve-3d;transition:box-shadow var(--transition);flex-direction:column;flex:1;display:flex;position:relative;box-shadow:0 10px 30px #00000026,0 40px 80px #0000004d,0 0 0 1px #0000000d}[data-theme=dark] .calendar-shadow-layer{box-shadow:0 20px 40px #00000080,0 50px 100px #000000b3,0 0 0 1px #0000004d}.stack-layer{background:var(--bg-card);border-radius:var(--radius-xl);z-index:-1;border:1px solid var(--border);transition:transform .4s,opacity .4s;position:absolute;inset:0;box-shadow:inset 0 1px #fff9,0 2px 10px #00000014}.calendar-container{background:var(--bg-card);border-radius:var(--radius-xl);transition:background var(--transition);z-index:1;flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:visible}.calendar-inner-clip{border-radius:inherit;transition:background var(--transition);backface-visibility:hidden;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden;transform:translateZ(0)}.hero-section{border-bottom:2px solid var(--border-color);height:38vh;transition:border var(--transition);flex-shrink:0;position:relative;overflow:hidden}.static-layer,.anim-layer{flex-direction:column;flex:1;min-height:0;display:flex}.static-layer{z-index:1;position:relative}.calendar-container:before{content:"";background:var(--paper-texture);opacity:.5;pointer-events:none;z-index:1;border-radius:var(--radius-xl);position:absolute;inset:0}.anim-layer{z-index:70;pointer-events:none;transform-style:preserve-3d;transform-origin:top;perspective:1200px;transform-box:fill-box;backface-visibility:hidden;position:fixed;overflow:visible}.anim-layer-surface{border-radius:inherit;background:var(--bg-card);backface-visibility:hidden;flex-direction:column;min-height:0;display:flex;position:absolute;inset:0;overflow:hidden;transform:translateZ(0);box-shadow:0 8px 40px #00000059}.calendar-container:after{content:"";pointer-events:none;z-index:2;border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:linear-gradient(#00000038 0%,#0000001a 38%,#00000008 62%,#0000 100%);height:64px;position:absolute;top:0;left:0;right:0}.spiral-container{z-index:90;pointer-events:none;justify-content:space-evenly;width:100%;height:32px;padding:0;display:flex;position:absolute;top:0;left:0}.flip-active .spiral-container{opacity:0}.spiral-overlay{z-index:86;pointer-events:none;height:0;position:fixed}.spiral-overlay .spiral-container{opacity:1;z-index:1;width:100%;top:0;left:0}.spiral-ring{transform-origin:top;background:0 0;border:1.75px solid #1a1d22;border-bottom:none;border-radius:999px 999px 0 0;width:8px;height:20px;margin-top:-5px;position:relative;box-shadow:-1px 2px 3px #00000047}.spiral-ring:before{content:"";opacity:.8;background:linear-gradient(#fff6 0%,#ffffff14 65%,#0000 100%);border-radius:999px;width:2px;height:calc(100% - 3px);position:absolute;top:1px;left:1px}.hero-section{z-index:2;flex-direction:column;flex:0 0 16%;min-height:140px;display:flex;position:relative;overflow:hidden}.hero-image-wrapper{background:var(--bg-secondary);flex:1;width:100%;position:relative;overflow:hidden}.hero-image{object-fit:cover;backface-visibility:hidden;width:100%;height:100%;display:block;transform:translateZ(0)}.hero-shimmer{pointer-events:none;opacity:0;background:linear-gradient(120deg,#0000 30%,#ffffff4d 50%,#0000 70%);position:absolute;inset:0}.hero-overlay{pointer-events:none;background:linear-gradient(#0000 0%,#0003 60%,#0000008c 100%);height:65%;position:absolute;bottom:0;left:0;right:0}.hero-text{text-align:right;color:#fff;z-index:5;position:absolute;bottom:28px;right:32px}.hero-year{letter-spacing:5px;opacity:.8;text-shadow:0 2px 10px #0000004d;font-family:Inter,sans-serif;font-size:1.1rem;font-weight:700;display:block}.hero-month{letter-spacing:4px;text-shadow:0 3px 20px #00000059;font-family:Playfair Display,serif;font-size:3rem;font-weight:900;line-height:1;display:block}.calendar-side{flex-direction:column;display:flex}.month-nav{grid-template-columns:repeat(7,minmax(0,1fr));align-items:center;column-gap:4px;width:100%;padding:12px 20px 10px;display:grid}.nav-btn{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-secondary) 92%, white 8%);width:40px;height:40px;color:var(--text-primary);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;transition:transform .18s,background .24s,border-color .24s,box-shadow .24s,color .24s;display:flex;position:relative;overflow:hidden;transform:translateY(0)scale(1);box-shadow:0 6px 16px #0000000d,inset 0 1px #ffffff80}.nav-btn:before{content:"";opacity:.8;pointer-events:none;background:linear-gradient(#ffffff42 0%,#ffffff0f 44%,#fff0 100%),radial-gradient(circle at 0 0,#ffffff29,#0000 64%);position:absolute;inset:0}.nav-btn:hover{background:color-mix(in srgb, var(--bg-secondary) 84%, var(--accent) 16%);color:var(--accent-dark);border-color:color-mix(in srgb, var(--border) 55%, var(--accent) 45%);transform:translateY(-1px);box-shadow:0 9px 20px #2e86ab1f,inset 0 1px #fff6}[data-theme=dark] .nav-btn{background:color-mix(in srgb, var(--bg-secondary) 95%, #0f121a 5%);border-color:color-mix(in srgb, var(--border) 88%, #4b5265 12%);box-shadow:0 3px 10px #00000038}[data-theme=dark] .nav-btn:before{opacity:.35;background:linear-gradient(#ffffff21 0%,#ffffff05 46%,#fff0 100%),radial-gradient(circle at 0 0,#ffffff14,#0000 66%)}[data-theme=dark] .nav-btn:hover{background:color-mix(in srgb, var(--bg-secondary) 86%, var(--accent) 14%);color:color-mix(in srgb, var(--text-primary) 88%, var(--accent) 12%);border-color:color-mix(in srgb, var(--border) 70%, var(--accent) 30%);box-shadow:0 5px 14px #00000047}.nav-btn:active{transform:translateY(0)scale(.98)}.nav-btn svg{z-index:1;width:16px;height:16px;position:relative}.nav-btn-disabled,.nav-btn:disabled{opacity:.32;pointer-events:none;cursor:default;box-shadow:none}.nav-title{flex-direction:column;grid-column:3/6;justify-self:center;align-items:center;gap:2px;padding:0 18px;display:flex}.nav-btn-prev{grid-column:1;justify-self:start;margin-left:30px}.nav-btn-next{grid-column:7;justify-self:end;margin-right:30px}.nav-month-name{color:var(--text-primary);text-shadow:0 6px 22px #00000014;font-family:Playfair Display,serif;font-size:1.4rem;font-weight:700}.nav-year{color:var(--text-muted);letter-spacing:3px;font-size:.72rem;font-weight:600}.content-area{--notes-panel-width:310px;grid-template-columns:1fr var(--notes-panel-width);z-index:8;flex:1;min-height:0;display:grid;position:relative}.calendar-section{flex-direction:column;flex:1;min-height:0;padding:12px 40px;display:flex;position:relative}.calendar-grid{flex:1;grid-template-rows:auto repeat(6,1fr);grid-template-columns:repeat(7,1fr);gap:4px;min-height:0;display:grid}.weekday-header{text-align:center;color:var(--text-tertiary);letter-spacing:.1em;padding-bottom:8px;font-size:.75rem;font-weight:700}.day-cell{border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;justify-content:center;align-items:center;min-height:0;font-size:.95rem;font-weight:600;transition:all .2s;display:flex;position:relative}.day-number{z-index:1;align-items:flex-start;gap:4px;line-height:1;display:inline-flex;position:relative}.day-number-label{line-height:1}.event-dots-container{justify-content:center;gap:3px;width:100%;display:flex;position:absolute;bottom:6px}.event-dot{border-radius:50%;width:5px;height:5px;box-shadow:0 0 2px #0000001a}.day-cell:hover:not(.empty):not(.other-month){background:var(--range-bg);z-index:5;transform:scale(1.12);box-shadow:0 2px 8px #00000014}.day-cell.other-month{color:var(--text-muted);opacity:.3;cursor:default;pointer-events:none}.day-cell.saturday{color:var(--saturday-color)}.day-cell.sunday{color:var(--sunday-color)}.day-cell.today{font-weight:800}.day-cell.today:after{content:"";border-radius:var(--radius-sm);border:2.5px solid var(--today-ring);pointer-events:none;opacity:.7;animation:3s ease-in-out infinite todayPulse;position:absolute;inset:2px}@keyframes todayPulse{0%,to{opacity:.5}50%{opacity:1}}.day-cell.range-start{border-radius:var(--radius-sm) 0 0 var(--radius-sm);z-index:2;font-weight:700;box-shadow:0 2px 10px #2e86ab59;background:var(--accent)!important;color:#fff!important}.day-cell.range-end{border-radius:0 var(--radius-sm) var(--radius-sm) 0;z-index:2;font-weight:700;box-shadow:0 2px 10px #2e86ab59;background:var(--accent)!important;color:#fff!important}.day-cell.range-start.range-end{border-radius:var(--radius-sm)}.day-cell.in-range{background:var(--range-bg);color:var(--accent-dark);border-radius:0}.day-cell.in-range:hover{background:var(--accent-light)!important}.day-cell.holiday .day-number:after{content:"";background:var(--holiday-color);width:6px;height:6px;box-shadow:0 0 0 2px var(--bg-card), 0 0 8px #9b7fd473;border-radius:50%;position:absolute;top:-6px;right:-8px}.day-cell.has-note .day-number:before{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;top:-6px;left:-8px}.calendar-selection-hint{writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);opacity:.7;pointer-events:none;justify-content:center;align-items:center;font-size:.58rem;display:flex;position:absolute;top:112px;bottom:82px;left:-54px;transform:rotate(180deg)}@media (width<=980px){.calendar-selection-hint{left:-42px}}.notes-panel{--notes-label-text-max-width:11ch;border-left:1px solid var(--border-light);background:var(--bg-secondary);transition:background var(--transition);scrollbar-gutter:stable;z-index:12;flex-direction:column;min-height:0;display:flex;position:relative;overflow:hidden}.notes-panel-header{z-index:20;padding:12px 24px;position:relative}.notes-section-header{background:var(--bg-secondary);flex-shrink:0;overflow:visible}.notes-title{letter-spacing:.3px;color:var(--text-primary);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 8px;font-size:1rem;font-weight:600;display:grid}.notes-title svg{color:var(--accent);flex-shrink:0;grid-area:1/1;display:block}.notes-title-main{white-space:nowrap;grid-area:1/2;min-width:0;line-height:1.1;display:block}.notes-title-subtitle{letter-spacing:0;text-transform:uppercase;color:var(--text-muted);text-align:left;grid-area:2/1/auto/-1;margin-top:2px;margin-left:0;font-size:.6rem;font-weight:500;line-height:1.1}.notes-editor-header-row{z-index:24;justify-content:space-between;align-items:center;gap:10px;display:flex;position:relative}.notes-editor-header-row .notes-title{flex:1;row-gap:2px;min-width:0}.notes-editor-header-row .notes-title-main{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:0 0}.custom-scrollbar::-webkit-scrollbar-thumb{background-color:var(--text-muted);opacity:.5;border-radius:10px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--accent)}.custom-scrollbar{scrollbar-width:thin;scrollbar-color:var(--text-muted) transparent}.notes-ruled-container{border-radius:var(--radius-md);flex-direction:column;flex:1;height:100%;min-height:0;margin:0;display:flex;position:relative;overflow:hidden}.ruled-textarea{resize:none;width:100%;height:100%;min-height:0;color:var(--text-secondary);background-color:#0000;background-image:linear-gradient(90deg,#0000 0 18px,#e26e8a33 18px 19px,#0000 19px),repeating-linear-gradient(#0000 0 27px,#7388ae2e 27px 29px);background-position:0 0,0 4px;background-repeat:repeat;background-size:100% 100%,100% 29px;background-attachment:local,local;background-origin:padding-box;background-clip:border-box;border:none;outline:none;flex:1;padding:4px 12px 0 28px;font-family:inherit;font-size:.85rem;line-height:29px}.notes-events-shell{will-change:height;flex:none;min-height:0;overflow:hidden}.notes-events-section{border-bottom:1px solid var(--border-light);background:var(--bg-secondary);flex-direction:column;min-height:0;display:flex}.notes-events-body{scrollbar-gutter:stable;flex-direction:column;gap:8px;min-height:0;max-height:220px;padding:0 20px 14px;display:flex;overflow:hidden auto}.notes-events-empty{border:1px dashed var(--border-light);border-radius:var(--radius-md);min-height:72px;color:var(--text-muted);text-align:center;justify-content:center;align-items:center;padding:14px 12px;font-size:.82rem;display:flex}.notes-editor-section{flex-direction:column;flex:1;min-height:0;display:flex}.notes-editor-body{flex-direction:column;flex:1;gap:14px;min-height:0;padding:0 20px 20px;display:flex}.notes-labels-area{flex-direction:column;flex-shrink:0;gap:10px;display:flex}.notes-labels-list{flex-wrap:wrap;gap:8px;min-height:0;display:flex}.notes-label-chip{background:color-mix(in srgb, var(--bg-secondary) 90%, var(--accent) 10%);border:1px solid var(--border-light);color:var(--text-primary);border-radius:999px;align-items:center;gap:8px;padding:6px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.notes-label-icon{flex-shrink:0;width:13px;height:13px}.notes-label-name{min-width:0;max-width:var(--notes-label-text-max-width);text-overflow:ellipsis;white-space:nowrap;line-height:1;overflow:hidden}.notes-label-remove{width:18px;height:18px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:background .2s,color .2s;display:inline-flex}.notes-label-remove:hover{color:var(--text-primary);background:#0000000f}.notes-label-remove svg{width:10px;height:10px}.notes-labels-controls{grid-template-columns:minmax(0,1fr) 36px;align-items:center;gap:10px;display:grid}.notes-header-label-controls{flex:none;grid-template-columns:minmax(0,1fr) 34px;gap:8px;width:156px;display:grid}.notes-header-label-controls .notes-label-input{text-align:left;height:36px;padding:8px 30px 8px 10px;font-size:.76rem}.notes-header-label-controls .notes-label-color-trigger{width:16px;height:16px;right:8px}.notes-header-label-controls .notes-label-color-preview{width:13px;height:13px}.notes-header-label-controls .notes-label-palette-list{transform-origin:top;gap:5px;padding:6px;top:calc(100% + 6px);bottom:auto;right:0}.notes-header-label-controls .notes-label-swatch{width:15px;height:15px}.notes-header-label-controls .notes-label-add-btn{border-radius:10px;width:34px;height:36px}.notes-header-label-controls .notes-label-add-btn svg{width:12px;height:12px}.notes-label-input-wrap{z-index:30;min-width:0;position:relative}.notes-label-input-wrap.open{z-index:1250}.notes-label-input{border:1px solid var(--border);background:var(--bg-card);width:100%;min-width:0;color:var(--text-primary);border-radius:10px;outline:none;padding:9px 38px 9px 12px;transition:border-color .2s,box-shadow .2s}.notes-label-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2e86ab14}.notes-label-color-trigger{cursor:pointer;z-index:2;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;padding:0;transition:transform .16s;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.notes-label-color-trigger:hover{transform:translateY(-50%)scale(1.08)}.notes-label-color-preview{border:1px solid #0000001f;border-radius:50%;width:16px;height:16px}.notes-label-palette-list{transform-origin:top;border:1px solid var(--border-light);background:color-mix(in srgb, var(--bg-card) 94%, white 6%);z-index:1260;border-radius:10px;flex-direction:column;gap:6px;padding:8px;display:none;position:absolute;top:calc(100% + 8px);bottom:auto;right:1px;box-shadow:0 12px 24px #0000001f}.notes-label-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:16px;height:16px;padding:0;transition:transform .16s,border-color .16s;box-shadow:0 0 0 1px #0000000d}.notes-label-swatch:hover{transform:scale(1.08)}.notes-label-swatch.active{border-color:color-mix(in srgb, var(--text-primary) 78%, white 22%)}.notes-label-add-btn{border:1px solid color-mix(in srgb, var(--accent) 45%, var(--border) 55%);background:color-mix(in srgb, var(--bg-secondary) 78%, var(--accent) 22%);color:#fff;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-weight:600;transition:transform .18s,box-shadow .18s,opacity .18s;display:inline-flex}.notes-label-add-btn.is-ready{background:color-mix(in srgb, var(--accent) 82%, white 18%);border-color:color-mix(in srgb, var(--accent) 85%, white 15%);color:#fff;box-shadow:0 8px 20px #2e86ab4d}.notes-label-add-btn svg{width:15px;height:15px}.notes-label-add-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px #2e86ab2e}.notes-label-add-btn:disabled{opacity:.32;background:color-mix(in srgb, var(--bg-secondary) 92%, #8ea7b5 8%);border-color:var(--border);color:color-mix(in srgb, var(--text-muted) 80%, white 20%);cursor:not-allowed;box-shadow:none;transform:none}.app-footer-credit{left:50%;bottom:calc(10px + var(--app-floating-ui-bottom,env(safe-area-inset-bottom)));letter-spacing:.05em;color:color-mix(in srgb, var(--text-primary) 76%, #5f5f68 24%);border:1px solid #d6cec1;border:1px solid color-mix(in srgb, var(--border) 65%, white 35%);z-index:1200;pointer-events:none;background:linear-gradient(#ffffffb8,#fff6);border-radius:999px;align-items:center;gap:8px;padding:5px 12px;font-size:.7rem;font-weight:600;display:inline-flex;position:fixed;transform:translate(-50%);box-shadow:0 5px 16px #0000001a}.credit-text{color:inherit;text-shadow:0 1px #ffffff73}.credit-heart{color:#0000;background-blend-mode:multiply;background:linear-gradient(#9f1717 0%,#7d1010 68%,#630a0a 100%),url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.3' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='64' height='64' filter='url(%23n)' opacity='0.3'/%3E%3C/svg%3E");-webkit-text-fill-color:transparent;text-shadow:0 1px 4px #630a0a47;-webkit-background-clip:text;background-clip:text;font-size:.78rem}[data-theme=dark] .app-footer-credit{border-color:color-mix(in srgb, var(--border) 82%, #55606f 18%);color:color-mix(in srgb, var(--text-primary) 86%, #bfc7d6 14%);background:linear-gradient(#ffffff1a,#ffffff0a)}[data-theme=light] .app-footer-credit{color:#34313a;background:linear-gradient(#fffc,#ffffff75);border-color:#d2c9bb}.notes-empty{height:100%;color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:30px;font-size:.82rem;line-height:1.5;display:flex}.notes-empty svg{opacity:.25}.note-item{background:var(--note-bg);border:1px solid var(--note-border);border-radius:var(--radius-md);transition:all var(--transition);padding:12px 14px;position:relative;overflow:hidden}.note-item:hover{box-shadow:var(--shadow-sm);border-color:var(--accent)}.note-date{color:var(--accent);letter-spacing:.5px;align-items:center;gap:4px;margin-bottom:5px;font-size:.65rem;font-weight:700;display:flex}.note-content{color:var(--text-secondary);word-break:break-word;font-family:Caveat,cursive;font-size:1.05rem;font-weight:500;line-height:1.4}.note-delete{width:22px;height:22px;color:var(--text-muted);cursor:pointer;opacity:0;transition:all var(--transition);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:.7rem;display:flex;position:absolute;top:8px;right:8px}.note-item:hover .note-delete{opacity:1}.note-delete:hover{background:var(--holiday-color);color:#fff}.notes-input-area{border-top:1px solid var(--border-light);padding:12px 16px 16px}.note-input{border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--bg-input);width:100%;color:var(--text-primary);resize:none;transition:all var(--transition);outline:none;padding:10px 14px;font-family:Caveat,cursive;font-size:1.05rem}.note-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2e86ab1a}[data-theme=dark] .note-input:focus{box-shadow:0 0 0 3px #4ecdc41a}.note-input::placeholder{color:var(--text-muted)}.add-note-btn{background:var(--accent);color:#fff;cursor:pointer;transition:all var(--transition);border:none;border-radius:20px;justify-content:center;align-items:center;gap:6px;width:100%;margin-top:8px;padding:9px 18px;font-size:.78rem;font-weight:600;display:inline-flex}.add-note-btn:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 15px #2e86ab4d}.add-note-btn:active{transform:translateY(0)}.holiday-tooltip{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);pointer-events:none;opacity:0;z-index:1000;white-space:nowrap;padding:6px 14px;font-size:.75rem;font-weight:500;transition:opacity .2s,transform .2s;position:fixed}.holiday-tooltip.visible{opacity:1}@media (width<=900px){.content-area{--notes-panel-width:260px;grid-template-columns:1fr var(--notes-panel-width)}.hero-image-wrapper{height:320px}}@media (width<=720px){body{padding:calc(16px + env(safe-area-inset-top)) calc(10px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(10px + env(safe-area-inset-left))}.app-wrapper{height:90%}.theme-toggle{width:42px;height:42px;top:12px;right:12px}.logo-badge{width:42px;height:42px;top:12px;left:12px}.logo-badge img{width:20px;height:20px}.calendar-container{border-radius:var(--radius-lg)}.calendar-shadow-layer{--mobile-calendar-top-gap:0px;--mobile-calendar-bottom-gap:1px;margin-top:var(--mobile-calendar-top-gap);margin-bottom:var(--mobile-calendar-bottom-gap);min-height:0;height:calc(100% - var(--mobile-calendar-top-gap) - var(--mobile-calendar-bottom-gap));max-height:calc(100% - var(--mobile-calendar-top-gap) - var(--mobile-calendar-bottom-gap));flex:auto}@supports ((-moz-appearance:none)){.calendar-shadow-layer{--mobile-calendar-top-gap:50px;--mobile-calendar-bottom-gap:22px}}.hero-image-wrapper{height:207px}.hero-text{bottom:20px;right:20px}.hero-month{letter-spacing:2px;font-size:2.2rem}.hero-year{letter-spacing:3px;font-size:.9rem}.spiral-binding{gap:10px;height:28px;padding:0 20px}.spiral-ring{width:7px;height:18px}.content-area{flex:1;grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr;align-content:stretch;min-height:0}.calendar-panel{padding:12px 14px 14px}.calendar-section{min-height:0;padding:4px 18px 6px}.calendar-side{align-self:start;min-height:0}.calendar-grid{flex:none;grid-template-rows:auto repeat(6,minmax(25px,auto));align-content:start;gap:2px;min-height:0}.weekday-header{letter-spacing:.08em;padding-bottom:4px;font-size:.62rem}.month-nav{min-height:0;padding:0;display:block}.nav-title{display:none}.nav-btn{bottom:max(18px, calc(12px + var(--app-floating-ui-bottom,env(safe-area-inset-bottom))));z-index:1300;background:color-mix(in srgb, var(--bg-card) 92%, var(--accent) 8%);border-color:color-mix(in srgb, var(--border) 70%, var(--accent) 30%);border-radius:12px;width:40px;height:40px;position:fixed;box-shadow:0 8px 16px #0000002e}.nav-btn-prev{margin-left:0;left:10px}.nav-btn-next{margin-right:0;right:10px}.notes-events-body{scrollbar-gutter:stable both-edges;gap:4px;max-height:44px;margin:0 12px 4px;padding:0 0 4px}.notes-panel{border-left:none;border-top:1px solid var(--border-light);background:var(--bg-card);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1 1 0;height:auto;min-height:56px;max-height:none;overflow:hidden auto}.notes-events-shell,.notes-events-body,.notes-ruled-container,.ruled-textarea{overflow-y:visible}.notes-panel-header{padding:6px 12px}.notes-section-header{background:var(--bg-card)}.notes-title{gap:6px;font-size:.88rem}.notes-editor-header-row{align-items:center;gap:8px}.notes-editor-header-row .notes-title{flex:1;row-gap:2px;min-width:0}.notes-title-subtitle{letter-spacing:.1em;text-align:left;margin-top:1px;margin-left:0;font-size:.56rem}.notes-editor-header-row .notes-title-main{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.notes-header-label-controls{flex:none;grid-template-columns:minmax(0,1fr) 28px;gap:6px;width:168px;display:grid}.notes-header-label-controls .notes-label-input{text-align:left;height:30px;padding:6px 28px 6px 8px;font-size:.7rem}.notes-header-label-controls .notes-label-color-trigger{width:14px;height:14px;right:7px}.notes-header-label-controls .notes-label-color-preview{width:12px;height:12px}.notes-header-label-controls .notes-label-palette-list{gap:5px;padding:6px;top:calc(100% + 6px);bottom:auto;right:0}.notes-header-label-controls .notes-label-swatch{width:14px;height:14px}.notes-header-label-controls .notes-label-add-btn{border-radius:8px;width:28px;height:30px}.notes-header-label-controls .notes-label-add-btn svg{width:11px;height:11px}.notes-editor-body{padding:0 12px calc(6px + var(--app-floating-ui-bottom,env(safe-area-inset-bottom)));overscroll-behavior:contain;-webkit-overflow-scrolling:touch;gap:6px;overflow:hidden auto}.ruled-textarea{scrollbar-gutter:stable both-edges;background-image:linear-gradient(90deg,#0000 0 15px,#e26e8a42 15px 16px,#0000 16px),repeating-linear-gradient(#0000 0 24px,#7388ae42 24px 26px);background-position:0 0,0 4px;background-size:100% 100%,100% 26px;padding:4px 10px 0 24px;font-size:.8rem;line-height:26px}.note-event-item{gap:5px;padding:3px 6px;font-size:.74rem}.notes-label-chip{gap:5px;padding:4px 7px;font-size:.66rem}.notes-labels-list{justify-content:center}.notes-label-icon{width:11px;height:11px}.notes-label-remove{width:16px;height:16px}.notes-label-remove svg{width:9px;height:9px}.notes-inline-label-controls{grid-template-columns:minmax(0,1fr) 32px;gap:7px;width:min(210px,100%);margin:0 auto}.notes-inline-label-controls .notes-label-input{text-align:center;padding:7px 32px 7px 10px;font-size:.76rem}.notes-inline-label-controls .notes-label-add-btn{width:32px;height:32px}.notes-inline-label-controls .notes-label-add-btn svg{width:12px;height:12px}.notes-list{max-height:200px}.day-cell{min-height:25px;font-size:.72rem}.event-dots-container{gap:2px;bottom:1.5px}.event-dot{width:3px;height:3px}.day-cell.holiday .day-number:after{width:3px;height:3px;box-shadow:0 0 0 1px var(--bg-card), 0 0 4px #9b7fd459;top:-4px;right:-6px}.selection-bar{padding:6px 10px}.selection-text{font-size:.72rem}}@media (width<=400px){body{padding:calc(8px + env(safe-area-inset-top)) calc(6px + env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) calc(6px + env(safe-area-inset-left))}.app-wrapper{height:95%}.hero-image-wrapper{height:154px}.hero-month{font-size:1.6rem}.calendar-shadow-layer{--mobile-calendar-top-gap:0px;--mobile-calendar-bottom-gap:1px;margin-top:var(--mobile-calendar-top-gap);margin-bottom:var(--mobile-calendar-bottom-gap);height:calc(100% - var(--mobile-calendar-top-gap) - var(--mobile-calendar-bottom-gap));max-height:calc(100% - var(--mobile-calendar-top-gap) - var(--mobile-calendar-bottom-gap));flex:auto}@supports ((-moz-appearance:none)){.calendar-shadow-layer{--mobile-calendar-top-gap:32px;--mobile-calendar-bottom-gap:18px}}.nav-btn{bottom:max(16px, calc(10px + var(--app-floating-ui-bottom,env(safe-area-inset-bottom))))}.calendar-panel{padding:10px 12px 14px}.calendar-grid{grid-template-rows:auto repeat(6,minmax(22px,auto));gap:1px}.day-cell{border-radius:4px;min-height:22px;font-size:.68rem}.day-header{letter-spacing:.5px;font-size:.58rem}.content-area{grid-template-rows:auto minmax(0,1fr)}.notes-panel{min-height:52px}.notes-title-subtitle{text-align:left;margin-left:0;font-size:.52rem}}@media print{body{background:#fff;padding:0}.theme-toggle,.logo-badge,.clear-btn,.notes-input-area,.nav-btn{display:none}.calendar-container{box-shadow:none;border:1px solid #ccc}}.top-controls{z-index:1500;align-items:center;gap:12px;display:flex;position:absolute;top:1rem;right:1.5rem}.hero-controls{z-index:6;align-items:center;gap:12px;display:flex;position:absolute;bottom:.8rem;left:1.5rem}.add-event-btn{-webkit-backdrop-filter:blur(8px);color:#fff;cursor:pointer;background:#fff3;border:1px solid #fff6;border-radius:20px;align-items:center;gap:6px;padding:6px 14px;font-size:.75rem;font-weight:600;transition:all .3s;display:flex;box-shadow:0 4px 15px #0000001a}.add-event-btn:hover{background:#fff6;transform:translateY(-2px)}.add-event-btn svg{width:14px;height:14px}[data-theme=dark] .add-event-btn{color:#ffffffe6;background:#0006;border:1px solid #ffffff1a}[data-theme=dark] .add-event-btn:hover{background:#0009}.notes-panel-header{padding:12px 20px}.note-event-title{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.notes-events-container{scrollbar-gutter:stable;flex-direction:column;gap:8px;margin-bottom:8px;padding:0 20px 14px;display:flex}.note-event-item{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-size:.8rem;display:flex}.note-event-time{color:var(--accent);white-space:nowrap;font-weight:700}.note-event-title{white-space:nowrap;text-overflow:ellipsis;color:var(--text-primary);flex:1;overflow:hidden}.note-event-actions{flex-shrink:0;gap:4px;display:flex}.note-event-readonly-icon{color:var(--text-muted);padding:0 4px}.note-event-edit,.note-event-delete{cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:background .2s;display:flex}.note-event-edit{color:var(--accent)}.note-event-edit:hover{background:#2e86ab1a}.note-event-delete{color:#ff5e5e}.note-event-delete:hover{background:#ff5e5e1a}.note-event-edit svg,.note-event-delete svg{width:14px;height:14px}.note-event-extra{color:var(--accent);text-align:right;cursor:pointer;margin-right:4px;font-size:.75rem;font-style:italic}.note-event-extra:hover{text-decoration:underline}.event-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.event-modal{background:var(--bg-card);border-radius:var(--radius-xl);border:1px solid var(--border);width:90%;max-width:400px;overflow:hidden;box-shadow:0 10px 40px #0003}.event-modal-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.event-modal-header h3{font-family:var(--font-heading);color:var(--text-primary);margin:0;font-size:1.2rem}.close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;padding:4px;transition:all .2s;display:flex}.close-btn:hover{background:var(--bg-hover);color:var(--accent)}.event-modal-body{flex-direction:column;gap:16px;padding:20px;display:flex}.event-modal-date{color:var(--accent);text-transform:uppercase;letter-spacing:1px;margin:0;font-size:.85rem;font-weight:600}.input-group{flex-direction:column;gap:6px;display:flex}.input-group label{color:var(--text-secondary);font-size:.8rem;font-weight:600}.input-group input{border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-body);border-radius:8px;outline:none;padding:10px 14px;font-size:.95rem;transition:border-color .2s}.input-group input:focus{border-color:var(--accent)}.event-modal-footer{border-top:1px solid var(--border-light);background:var(--bg-secondary);justify-content:flex-end;gap:12px;padding:16px 20px;display:flex}.btn-cancel,.btn-save{cursor:pointer;border:none;border-radius:8px;padding:10px 18px;font-size:.9rem;font-weight:600;transition:all .2s}.btn-cancel{color:var(--text-secondary);background:0 0}.btn-cancel:hover{color:var(--text-primary);background:var(--bg-hover)}.btn-save{background:var(--accent);color:#fff}.btn-save:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn-save:disabled{opacity:.5;cursor:not-allowed;transform:none}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#e8e2d8;--bg-secondary:#faf8f5;--bg-card:#fff;--bg-elevated:#f4efe6;--bg-hover:#1a1a2e14;--bg-input:#f5f3ef;--text-primary:#1a1a2e;--text-secondary:#4a4a5a;--text-muted:#8a8a9a;--text-tertiary:#6f6f82;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading:"Playfair Display", serif;--accent:#2e86ab;--accent-light:#d4eef8;--accent-dark:#1b6d8e;--accent-hover:#247091;--range-bg:#e8f4f8;--border-color:#ddd8ce;--border:#ddd8ce;--border-light:#eae6de;--shadow-sm:0 2px 8px #0000000f;--shadow-md:0 8px 30px #00000014;--shadow-lg:0 20px 60px #0000001f;--shadow-xl:0 25px 70px #0000002e, 0 8px 20px #00000014;--radius-sm:6px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--holiday-color:#9b7fd4;--saturday-color:#2e86ab;--sunday-color:#e74c3c;--today-ring:#2e86ab;--note-bg:#fefefe;--note-border:#e8e4dc;--transition:.3s cubic-bezier(.4, 0, .2, 1);--spiral-color:#b8b4ac;--spiral-shadow:#00000026;--paper-texture:repeating-linear-gradient(0deg, transparent, transparent 28px, #00000004 28px, #00000004 29px);--theme-sync-duration:.22s;--theme-sync-ease:cubic-bezier(.22, 1, .36, 1);--app-visual-height:100vh;--app-viewport-offset-bottom:0px;--app-floating-ui-bottom:calc(env(safe-area-inset-bottom) + var(--app-viewport-offset-bottom))}[data-theme=dark]{--bg-primary:#0d0d18;--bg-secondary:#161628;--bg-card:#1a1a30;--bg-elevated:#23233a;--bg-hover:#e8e6f014;--bg-input:#222240;--text-primary:#e8e6f0;--text-secondary:#b0aec0;--text-muted:#6a6880;--text-tertiary:#8d8ba0;--accent:#4ecdc4;--accent-light:#1a3a38;--accent-dark:#3ab5ad;--accent-hover:#45b8b0;--range-bg:#1a2e2d;--border-color:#2a2a42;--border:#2a2a42;--border-light:#1e1e36;--shadow-sm:0 2px 8px #00000040;--shadow-md:0 8px 30px #00000059;--shadow-lg:0 20px 60px #00000073;--shadow-xl:0 25px 70px #0000008c, 0 8px 20px #0000004d;--holiday-color:#b59af0;--saturday-color:#4ecdc4;--sunday-color:#ff6b6b;--today-ring:#4ecdc4;--note-bg:#1e1e36;--note-border:#2a2a44;--spiral-color:#505068;--spiral-shadow:#0006}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100%;font-size:16px}body{font-family:var(--font-body);background-color:var(--bg-primary);color:var(--text-primary);height:100dvh;min-height:100vh;height:var(--app-visual-height);padding:calc(40px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) calc(40px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left));transition:background var(--transition), color var(--transition);justify-content:center;align-items:center;display:flex;overflow:hidden}body:before{content:"";opacity:.15;pointer-events:none;z-index:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E"),radial-gradient(#0000 0%,#00000026 100%);position:fixed;inset:0}[data-theme=dark] body:before{opacity:.08;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E"),radial-gradient(#0000 0%,#0006 100%)}#root{justify-content:center;width:100%;height:100%;display:flex}html.theme-syncing *,html.theme-syncing :before,html.theme-syncing :after{transition-property:background,background-color,color,border-color,outline-color,box-shadow,text-shadow,fill,stroke!important;transition-duration:var(--theme-sync-duration)!important;transition-timing-function:var(--theme-sync-ease)!important;transition-delay:0s!important}
