@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=DM+Serif+Display&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--ink: #0f0f0f;--ink-soft: #55554f;--ink-mute: #9a9a92;--ink-faint: #b5b5ad;--paper: #fafaf8;--paper-2: #eef2f8;--card: #ffffff;--input: #ffffff;--line: rgba(0,0,0,.08);--line-strong: rgba(0,0,0,.15);--danger: #c0392b;--radius: 6px;--shadow-lg: 0 16px 64px rgba(0,0,0,.28)}.theme-switch{--toggle-size: 16px;display:inline-flex;position:relative;flex-shrink:0;vertical-align:middle;--container-width: 5.625em;--container-height: 2.5em;--container-radius: 6.25em;--container-light-bg: #3D7EAE;--container-night-bg: #1D1F2C;--circle-container-diameter: 3.375em;--sun-moon-diameter: 2.125em;--sun-bg: #ECCA2F;--moon-bg: #C4C9D1;--spot-color: #959DB1;--circle-container-offset: calc((var(--circle-container-diameter) - var(--container-height)) / 2 * -1);--stars-color: #fff;--clouds-color: #F3FDFF;--back-clouds-color: #AACADF;--transition: .5s cubic-bezier(0, -.02, .4, 1.25);--circle-transition: .3s cubic-bezier(0, -.02, .35, 1.17)}.theme-switch,.theme-switch *,.theme-switch *:before,.theme-switch *:after{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;font-size:var(--toggle-size)}.theme-switch__container{width:var(--container-width);height:var(--container-height);background-color:var(--container-light-bg);border-radius:var(--container-radius);overflow:hidden;cursor:pointer;-webkit-box-shadow:0em -.062em .062em rgba(0,0,0,.25),0em .062em .125em rgba(255,255,255,.94);box-shadow:0 -.062em .062em #00000040,0 .062em .125em #fffffff0;-webkit-transition:var(--transition);-o-transition:var(--transition);transition:var(--transition);position:relative}.theme-switch__container:before{content:"";position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;-webkit-box-shadow:0em .05em .187em rgba(0,0,0,.25) inset,0em .05em .187em rgba(0,0,0,.25) inset;box-shadow:0 .05em .187em #00000040 inset,0 .05em .187em #00000040 inset;border-radius:var(--container-radius)}.theme-switch__checkbox{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.theme-switch__circle-container{width:var(--circle-container-diameter);height:var(--circle-container-diameter);background-color:#ffffff1a;position:absolute;left:var(--circle-container-offset);top:var(--circle-container-offset);border-radius:var(--container-radius);-webkit-box-shadow:inset 0 0 0 3.375em rgba(255,255,255,.1),inset 0 0 0 3.375em rgba(255,255,255,.1),0 0 0 .625em rgba(255,255,255,.1),0 0 0 1.25em rgba(255,255,255,.1);box-shadow:inset 0 0 0 3.375em #ffffff1a,inset 0 0 0 3.375em #ffffff1a,0 0 0 .625em #ffffff1a,0 0 0 1.25em #ffffff1a;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:var(--circle-transition);-o-transition:var(--circle-transition);transition:var(--circle-transition);pointer-events:none}.theme-switch__sun-moon-container{pointer-events:auto;position:relative;z-index:2;width:var(--sun-moon-diameter);height:var(--sun-moon-diameter);margin:auto;border-radius:var(--container-radius);background-color:var(--sun-bg);-webkit-box-shadow:.062em .062em .062em 0em rgba(254,255,239,.61) inset,0em -.062em .062em 0em #a1872a inset;box-shadow:.062em .062em .062em #feffef9c inset,0 -.062em .062em #a1872a inset;-webkit-filter:drop-shadow(.062em .125em .125em rgba(0,0,0,.25)) drop-shadow(0em .062em .125em rgba(0,0,0,.25));filter:drop-shadow(.062em .125em .125em rgba(0,0,0,.25)) drop-shadow(0em .062em .125em rgba(0,0,0,.25));overflow:hidden;-webkit-transition:var(--transition);-o-transition:var(--transition);transition:var(--transition)}.theme-switch__moon{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translate(100%);width:100%;height:100%;background-color:var(--moon-bg);border-radius:inherit;-webkit-box-shadow:.062em .062em .062em 0em rgba(254,255,239,.61) inset,0em -.062em .062em 0em #969696 inset;box-shadow:.062em .062em .062em #feffef9c inset,0 -.062em .062em #969696 inset;-webkit-transition:var(--transition);-o-transition:var(--transition);transition:var(--transition);position:relative}.theme-switch__spot{position:absolute;top:.75em;left:.312em;width:.75em;height:.75em;border-radius:var(--container-radius);background-color:var(--spot-color);-webkit-box-shadow:0em .0312em .062em rgba(0,0,0,.25) inset;box-shadow:0 .0312em .062em #00000040 inset}.theme-switch__spot:nth-of-type(2){width:.375em;height:.375em;top:.937em;left:1.375em}.theme-switch__spot:nth-last-of-type(3){width:.25em;height:.25em;top:.312em;left:.812em}.theme-switch__clouds{width:1.25em;height:1.25em;background-color:var(--clouds-color);border-radius:var(--container-radius);position:absolute;bottom:-.625em;left:.312em;-webkit-box-shadow:.937em .312em var(--clouds-color),-.312em -.312em var(--back-clouds-color),1.437em .375em var(--clouds-color),.5em -.125em var(--back-clouds-color),2.187em 0 var(--clouds-color),1.25em -.062em var(--back-clouds-color),2.937em .312em var(--clouds-color),2em -.312em var(--back-clouds-color),3.625em -.062em var(--clouds-color),2.625em 0em var(--back-clouds-color),4.5em -.312em var(--clouds-color),3.375em -.437em var(--back-clouds-color),4.625em -1.75em 0 .437em var(--clouds-color),4em -.625em var(--back-clouds-color),4.125em -2.125em 0 .437em var(--back-clouds-color);box-shadow:.937em .312em var(--clouds-color),-.312em -.312em var(--back-clouds-color),1.437em .375em var(--clouds-color),.5em -.125em var(--back-clouds-color),2.187em 0 var(--clouds-color),1.25em -.062em var(--back-clouds-color),2.937em .312em var(--clouds-color),2em -.312em var(--back-clouds-color),3.625em -.062em var(--clouds-color),2.625em 0 var(--back-clouds-color),4.5em -.312em var(--clouds-color),3.375em -.437em var(--back-clouds-color),4.625em -1.75em 0 .437em var(--clouds-color),4em -.625em var(--back-clouds-color),4.125em -2.125em 0 .437em var(--back-clouds-color);-webkit-transition:.5s cubic-bezier(0,-.02,.4,1.25);-o-transition:.5s cubic-bezier(0,-.02,.4,1.25);transition:.5s cubic-bezier(0,-.02,.4,1.25)}.theme-switch__stars-container{position:absolute;color:var(--stars-color);top:-100%;left:.312em;width:2.75em;height:auto;-webkit-transition:var(--transition);-o-transition:var(--transition);transition:var(--transition)}.theme-switch__checkbox:checked+.theme-switch__container{background-color:var(--container-night-bg)}.theme-switch__checkbox:checked+.theme-switch__container .theme-switch__circle-container{left:calc(100% - var(--circle-container-offset) - var(--circle-container-diameter))}.theme-switch__checkbox:checked+.theme-switch__container .theme-switch__circle-container:hover{left:calc(100% - var(--circle-container-offset) - var(--circle-container-diameter) - .187em)}.theme-switch__circle-container:hover{left:calc(var(--circle-container-offset) + .187em)}.theme-switch__checkbox:checked+.theme-switch__container .theme-switch__moon{-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}.theme-switch__checkbox:checked+.theme-switch__container .theme-switch__clouds{bottom:-4.062em}.theme-switch__checkbox:checked+.theme-switch__container .theme-switch__stars-container{top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.theme-switch__checkbox:focus-visible+.theme-switch__container{outline:3px solid #568cce;outline-offset:4px}.theme-switch__stars-container svg{display:block;width:100%;height:auto}@media (prefers-reduced-motion: reduce){.theme-switch *,.theme-switch *:before,.theme-switch *:after{transition:none!important}}.dark{--ink: #f0f0f0;--ink-soft: #aaaaa4;--ink-mute: #77776f;--ink-faint: #5a5a54;--paper: #141414;--paper-2: #1e1e1e;--card: #1a1a1a;--input: #262626;--line: rgba(255,255,255,.08);--line-strong: rgba(255,255,255,.15);--danger: #e06c5b;--shadow-lg: 0 16px 64px rgba(0,0,0,.6)}html,body,#root{height:100%}body{font-family:DM Sans,sans-serif;font-size:14px;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}.app{min-height:100vh;display:flex;flex-direction:column;background:var(--paper);color:var(--ink)}.app-header{height:56px;flex-shrink:0;padding:0 32px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.header-left{display:flex;align-items:center;gap:10px}.app-title{font-family:"DM Serif Display",serif;font-size:18px;letter-spacing:-.02em}.header-right{display:flex;align-items:center;gap:10px}.view-switch{display:flex;align-items:center;gap:4px;border:1px solid var(--line-strong);border-radius:7px;padding:3px}.view-switch button{padding:5px 14px;border:none;border-radius:5px;background:none;font-size:13px;color:var(--ink-soft);transition:all .12s}.view-switch button:hover{color:var(--ink)}.view-switch button.active{background:var(--ink);color:var(--paper);font-weight:500}.btn-icon{width:32px;height:32px;border:1px solid var(--line-strong);border-radius:var(--radius);background:none;color:var(--ink-soft);font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .12s}.btn-icon:hover{background:var(--paper-2);color:var(--ink)}.btn-add{border:none;border-radius:var(--radius);background:var(--ink);color:var(--paper);padding:8px 16px;font-size:13px;font-weight:500;transition:opacity .15s}.btn-add:hover{opacity:.85}.cats-bar{flex-shrink:0;padding:10px 32px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.cat-pill{display:flex;align-items:center;gap:7px;padding:5px 13px;border-radius:20px;border:1px solid var(--line);background:none;font-size:12px;color:var(--ink-mute);transition:all .12s}.cat-pill:hover{color:var(--ink)}.cat-pill.active{background:var(--paper-2);border-color:var(--line-strong);color:var(--ink)}.cat-pill:not(.active) .cat-dot{opacity:.3}.cat-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.content{flex-grow:1;padding:24px 40px 48px;display:flex;flex-direction:column;gap:16px}.year-nav{display:flex;align-items:center;gap:16px}.year-title{font-family:"DM Serif Display",serif;font-size:26px;font-weight:400;letter-spacing:-.03em;min-width:72px}.year-sub{font-size:13px;color:var(--ink-mute)}.nav-btn{width:32px;height:32px;border:1px solid var(--line-strong);border-radius:var(--radius);background:none;color:var(--ink-soft);font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .12s}.nav-btn:hover{background:var(--paper-2);color:var(--ink)}.months-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.month-card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;min-height:190px;display:flex;flex-direction:column}.month-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}.month-name{font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute)}.month-count{font-size:10px;color:var(--ink-faint)}.month-events{display:flex;flex-direction:column;gap:2px}.event-row{display:flex;align-items:flex-start;gap:8px;width:100%;border:none;background:none;padding:3px 4px;margin-left:-4px;border-radius:4px;text-align:left;transition:background .12s}.event-row:hover{background:var(--paper-2)}.event-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:5px}.event-date{font-size:11px;color:var(--ink-mute);flex-shrink:0;min-width:48px}.event-title{font-size:11px;line-height:1.35;color:var(--ink)}.event-title.muted{color:var(--ink-mute)}.event-more{font-size:10px;color:var(--ink-faint);border:none;background:none;padding:3px 4px;margin-left:10px;text-align:left;border-radius:4px}.event-more:hover{color:var(--ink);background:var(--paper-2)}.agenda-list{display:flex;flex-direction:column;gap:10px;max-width:920px}.agenda-row{display:flex;align-items:center;gap:20px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 20px;text-align:left;width:100%;transition:border-color .12s}.agenda-row:hover{border-color:var(--line-strong)}.agenda-row.past{opacity:.45}.agenda-date{width:60px;flex-shrink:0;text-align:center;border-right:1px solid var(--line);padding-right:16px;display:flex;flex-direction:column}.agenda-mon{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute)}.agenda-day{font-family:"DM Serif Display",serif;font-size:28px;line-height:1.1;letter-spacing:-.03em}.agenda-sub{font-size:10px;color:var(--ink-faint)}.agenda-body{flex-grow:1;display:flex;flex-direction:column;gap:5px;min-width:0}.agenda-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.agenda-pill{display:flex;align-items:center;gap:6px;padding:3px 9px;border-radius:20px;font-size:10px;font-weight:500}.agenda-range{font-size:11px;color:var(--ink-mute)}.agenda-title{font-size:16px;font-weight:500}.agenda-note{font-size:12px;color:var(--ink-mute)}.empty{font-size:13px;color:var(--ink-mute)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0f0f59;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000;animation:fadeIn .14s ease;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lightbox{width:420px;max-width:100%;background:var(--card);border-radius:14px;box-shadow:var(--shadow-lg);padding:26px 28px;display:flex;flex-direction:column;gap:14px;position:relative;animation:rise .18s cubic-bezier(.34,1.4,.64,1)}.lightbox.wide{width:460px;gap:12px}@keyframes rise{0%{transform:translateY(10px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.lightbox-close{position:absolute;top:18px;right:18px;border:none;background:none;color:var(--ink-faint);font-size:15px;line-height:1;padding:4px}.lightbox-close:hover{color:var(--ink)}.lightbox-title{font-family:"DM Serif Display",serif;font-size:30px;font-weight:400;letter-spacing:-.03em;line-height:1.15;padding-right:28px}.lightbox.wide .lightbox-title{font-size:24px;margin-bottom:2px}.lightbox-line{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--ink)}.lightbox-line svg{color:var(--ink-mute);flex-shrink:0}.lightbox-note{font-size:13px;line-height:1.6;color:var(--ink-soft);border-top:1px solid var(--line);padding-top:14px}.lightbox-actions{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:16px;margin-top:2px}.field{display:flex;flex-direction:column;gap:5px}.field-row{display:flex;gap:12px}.field-row .field{flex:1}.field label{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-mute)}.optional{text-transform:none;letter-spacing:0;font-weight:400;color:var(--ink-faint)}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius);padding:9px 10px;font-family:inherit;font-size:14px;color:var(--ink);background:var(--input);outline:none;transition:border-color .12s}.field input,.field select{height:38px}.field textarea{resize:vertical;line-height:1.5}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink)}.form-error{font-size:12px;color:var(--danger);background:#c0392b14;border-radius:var(--radius);padding:8px 10px}.btn-primary{border:none;border-radius:var(--radius);background:var(--ink);color:var(--paper);padding:9px 20px;font-size:13px;font-weight:500;transition:opacity .15s}.btn-primary:hover:not(:disabled){opacity:.85}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{border:1px solid var(--line-strong);border-radius:var(--radius);background:none;color:var(--ink-soft);padding:9px 16px;font-size:13px;transition:all .12s}.btn-ghost:hover{background:var(--paper-2);color:var(--ink)}.btn-danger{border:1px solid rgba(192,57,43,.3);border-radius:var(--radius);background:none;color:var(--danger);padding:9px 16px;font-size:13px;transition:background .12s}.btn-danger:hover{background:#c0392b14}.btn-danger-solid{border:none;border-radius:var(--radius);background:var(--danger);color:#fff;padding:9px 20px;font-size:13px;font-weight:500;transition:opacity .15s}.btn-danger-solid:hover{opacity:.85}@media (max-width: 1100px){.months-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 800px){.app-header{padding:0 16px;gap:8px}.app-title{display:none}.cats-bar{padding:10px 16px;justify-content:flex-start}.content{padding:20px 16px 40px}.months-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.agenda-row{gap:14px;padding:14px 16px}.cat-pill{font-size:11px;padding:4px 10px}.btn-add{padding:8px 12px}}@media (max-width: 540px){.months-grid{grid-template-columns:1fr}.month-card{min-height:0}.year-sub{display:none}.field-row{flex-direction:column;gap:12px}}
