@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Instrument+Sans:wght@400;500;600;700&display=swap";:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:oklch(97% .008 250);--bg-wash:oklch(94.5% .012 250);--surface:oklch(99% .004 250);--surface-2:oklch(96% .01 250);--weekend-surface:oklch(97.2% .01 250);--ink:oklch(18% .01 255);--ink-soft:oklch(38% .024 255);--muted:oklch(52% .02 255);--alt:oklch(46% .02 255);--line:oklch(88% .012 250);--line-strong:oklch(78% .018 250);--accent:oklch(18% .01 255);--accent-soft:oklch(92% .008 250);--accent-ink:oklch(99% .004 250);--focus:oklch(55% .14 250);--shadow:none;--brand-pink:#ff1493;--holiday-france:oklch(62% .16 250);--holiday-france-soft:oklch(94% .04 250);--holiday-netherlands:oklch(64% .24 52);--holiday-netherlands-soft:oklch(93% .09 52);--holiday-uk:oklch(48% .07 58);--holiday-uk-soft:oklch(94% .03 58);--holiday-canada:oklch(55% .2 25);--holiday-canada-soft:oklch(94% .04 25);--holiday-india:oklch(58% .16 145);--holiday-india-soft:oklch(94% .04 145);--holiday-split-line:oklch(100% 0 0/.9)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:oklch(16% .018 255);--bg-wash:oklch(13% .02 255);--surface:oklch(20% .02 255);--surface-2:oklch(24% .022 255);--weekend-surface:oklch(17.5% .02 255);--ink:oklch(94% .01 250);--ink-soft:oklch(82% .014 250);--muted:oklch(68% .016 250);--alt:oklch(74% .02 250);--line:oklch(30% .02 255);--line-strong:oklch(40% .024 255);--accent:oklch(94% .01 250);--accent-soft:oklch(28% .02 255);--accent-ink:oklch(16% .018 255);--focus:oklch(70% .12 250);--shadow:none;--brand-pink:#ff1493;--holiday-france:oklch(70% .12 250);--holiday-france-soft:oklch(28% .04 250);--holiday-netherlands:oklch(70% .2 52);--holiday-netherlands-soft:oklch(30% .09 52);--holiday-uk:oklch(62% .08 58);--holiday-uk-soft:oklch(28% .04 58);--holiday-canada:oklch(68% .14 25);--holiday-canada-soft:oklch(28% .05 25);--holiday-india:oklch(70% .12 145);--holiday-india-soft:oklch(28% .04 145);--holiday-split-line:oklch(38% .022 255)}:root{--font-sans:"Instrument Sans", ui-sans-serif, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-drawer:cubic-bezier(.32, .72, 0, 1);--duration-drawer:.28s;--text:var(--ink-soft);--text-strong:var(--ink);--text-muted:var(--muted);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--canvas-padding:clamp(var(--space-4), 2vw, var(--space-6));--toolbar-height:2.375rem}.switch-root{--switch-inset:2px;--switch-border:1px;--switch-thumb-size:14px;--switch-travel:calc(36px - var(--switch-border) * 2 - var(--switch-thumb-size) - var(--switch-inset) * 2);box-sizing:border-box;border:1px solid var(--line-strong);background:var(--line-strong);cursor:pointer;width:36px;height:20px;transition:background-color .18s var(--ease-out), border-color .18s var(--ease-out);flex-shrink:0;padding:0;position:relative}.switch-root.is-on{background:var(--accent);border-color:var(--accent)}.switch-root:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.switch-thumb{width:var(--switch-thumb-size);height:var(--switch-thumb-size);background:var(--surface);transition:transform .2s var(--ease-out), background-color .2s var(--ease-out);position:absolute}.switch-root:not(.switch-root-vertical) .switch-thumb{top:calc(50% - var(--switch-thumb-size) / 2);left:var(--switch-inset);transform:translate(0)}.switch-root:not(.switch-root-vertical).is-on .switch-thumb{transform:translateX(var(--switch-travel));background:var(--accent-ink)}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font-sans);color:var(--text);background:var(--bg);transition:background-color .18s var(--ease-out), color .18s var(--ease-out);margin:0;font-size:15px;line-height:1.45}button,input,select{font:inherit}button{cursor:pointer}.app{width:100%;min-height:100%;padding:0 var(--canvas-padding) var(--canvas-padding);box-sizing:border-box}.topbar{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-4);padding:var(--canvas-padding) 0;border-bottom:1px solid var(--line);background:var(--bg);flex-wrap:wrap;margin-bottom:0;display:flex}.brand{flex:auto;align-items:center;min-width:0;display:flex}.topbar-actions{align-items:center;gap:var(--space-2);display:flex}.brand-mark{letter-spacing:-.035em;color:var(--text-strong);margin:0;font-size:1.75rem;font-weight:700;line-height:1}.toolbar-btn{height:var(--toolbar-height);min-height:var(--toolbar-height);padding:0 var(--space-4);color:inherit;transition:background-color .14s var(--ease-out), border-color .14s var(--ease-out), color .14s var(--ease-out), transform .12s var(--ease-out);background:0 0;border:1px solid #0000;border-radius:0;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.toolbar-btn:active:not(:disabled){transform:scale(.97)}.theme-toggle{width:var(--toolbar-height);min-width:var(--toolbar-height);height:var(--toolbar-height);border-color:var(--line-strong);background:var(--surface);color:var(--text-strong);flex-shrink:0;padding:0}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.theme-toggle svg{flex-shrink:0;display:block}.shell{padding-top:var(--space-6);gap:var(--space-5);flex-direction:column;width:100%;max-width:none;display:flex}.controls-panel,.holiday-panel{background:var(--surface);border:1px solid var(--line)}.controls-panel{padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.controls-panel-footer{padding-top:var(--space-4);border-top:1px solid var(--line);justify-content:flex-start;display:flex}.days-off-toggle{align-items:flex-start;gap:var(--space-2);flex-direction:column;max-width:28rem;display:flex}.toggle-field{align-items:center;gap:.65rem;display:inline-flex}.toggle-label{color:var(--text-strong);cursor:pointer;font-size:.875rem;font-weight:500}.days-off-toggle-hint{color:var(--text-muted);margin:0;padding-left:calc(36px + .65rem);font-size:.8125rem;line-height:1.4}.country-fields{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));align-items:start;display:grid}.country-field{padding-top:var(--space-1);position:relative}.country-field-remove{border:1px solid var(--line);background:var(--surface);width:1.75rem;height:1.75rem;color:var(--text-muted);cursor:pointer;transition:border-color .14s var(--ease-out), color .14s var(--ease-out), background-color .14s var(--ease-out);justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:0;right:0}.country-field-remove:hover{border-color:var(--line-strong);color:var(--text-strong)}.country-field label,.select-field label{margin-bottom:var(--space-2);color:var(--text-muted);font-size:.875rem;font-weight:600;display:block}.add-country-btn{justify-content:center;align-items:center;gap:var(--space-2);width:fit-content;height:var(--toolbar-height);padding:0 var(--space-4);border:1px dashed var(--line-strong);color:var(--text-strong);cursor:pointer;transition:border-color .14s var(--ease-out), color .14s var(--ease-out), background-color .14s var(--ease-out);background:0 0;align-self:end;font-size:.875rem;font-weight:600;display:inline-flex}.add-country-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.select-wrap{position:relative}.select-wrap select{width:100%;height:var(--toolbar-height);padding:0 var(--space-4);padding-left:calc(var(--space-4) + .75rem);border:1px solid var(--line-strong);background:var(--surface);color:var(--text-strong);appearance:none;cursor:pointer;transition:border-color .14s var(--ease-out), background-color .14s var(--ease-out)}.select-wrap select:hover{border-color:var(--accent)}.select-wrap select:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.select-dot{left:var(--space-3);pointer-events:none;width:.5rem;height:.5rem;position:absolute;top:50%;transform:translateY(-50%)}.select-field.is-france .select-dot,.country-field.is-france .select-dot{background:var(--holiday-france)}.select-field.is-netherlands .select-dot,.country-field.is-netherlands .select-dot{background:var(--holiday-netherlands)}.select-field.is-uk .select-dot,.country-field.is-uk .select-dot{background:var(--holiday-uk)}.select-field.is-canada .select-dot,.country-field.is-canada .select-dot{background:var(--holiday-canada)}.select-field.is-india .select-dot,.country-field.is-india .select-dot{background:var(--holiday-india)}.calendar-section{gap:var(--space-4);flex-direction:column;display:flex}.calendar-section-head{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.column-view-row{flex-shrink:0;align-items:center;gap:.65rem;display:flex}.column-view-label{color:var(--text-strong);font-size:.875rem;font-weight:500}.column-view-select{position:relative}.column-view-trigger{border:1px solid var(--line);background:var(--surface);min-width:3.5rem;color:var(--text-strong);cursor:pointer;transition:background-color .14s var(--ease-out), border-color .14s var(--ease-out), color .14s var(--ease-out);justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .55rem .35rem .65rem;font-size:.875rem;font-weight:500;display:inline-flex}.column-view-trigger:hover{border-color:var(--line-strong)}.column-view-trigger:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.column-view-value{text-align:left;min-width:.75rem}.column-view-trigger svg{color:var(--text-muted);flex-shrink:0}.column-view-menu{z-index:20;border:1px solid var(--line);background:var(--surface);min-width:100%;box-shadow:0 8px 24px color-mix(in oklch, var(--ink) 12%, transparent);margin:0;padding:.2rem;list-style:none;position:absolute;top:calc(100% + .25rem);right:0}.column-view-menu button{width:100%;color:var(--text-strong);text-align:left;cursor:pointer;background:0 0;border:0;padding:.35rem .65rem;font-size:.875rem;font-weight:500;display:block}.column-view-menu button:hover,.column-view-menu button.is-selected{background:var(--accent-soft)}.column-view-menu button:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.months-row{grid-template-columns:repeat(var(--month-cols,2), minmax(0, 1fr));gap:var(--space-4);width:100%;display:grid}.month-panel{background:var(--surface);border:1px solid var(--line);padding:var(--space-4)}.month-head{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);grid-template-columns:1fr auto 1fr;display:grid}.month-head-start{align-items:center;gap:var(--space-2);justify-self:start;display:flex}.month-head-end{justify-content:flex-end;justify-self:end;display:flex}.today-btn{height:var(--toolbar-height);padding:0 var(--space-3);border:1px solid var(--line-strong);background:var(--surface);color:var(--text-strong);white-space:nowrap;transition:border-color .14s var(--ease-out), color .14s var(--ease-out), background-color .14s var(--ease-out), transform .12s var(--ease-out);font-size:.8125rem;font-weight:600}.today-btn:hover{border-color:var(--accent);color:var(--accent)}.today-btn:active{transform:scale(.97)}.today-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.month-nav{flex-shrink:0}.month-title{letter-spacing:-.02em;text-align:center;color:var(--text-strong);margin:0;font-size:1.125rem;font-weight:700}.calendar-grid{border:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.day-header,.day-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:3.25rem}.day-header:nth-child(7n),.day-cell:nth-child(7n){border-right:none}.day-header{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);background:var(--surface);justify-content:center;align-items:center;font-size:.6875rem;font-weight:600;display:flex}.day-cell{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-1);background:var(--surface);font:inherit;color:inherit;cursor:pointer;transition:background-color .14s var(--ease-out), outline-color .14s var(--ease-out);border:none;flex-direction:column;margin:0;display:flex;position:relative}.day-cell:hover:not(.is-empty){background:var(--surface-2)}.day-cell.is-today{box-shadow:inset 0 0 0 2px var(--brand-pink)}.day-cell.is-today .day-number{font-weight:600}.day-cell.is-selected{outline:2px solid var(--accent);outline-offset:-2px;z-index:1}.day-cell:focus-visible{outline:2px solid var(--focus);outline-offset:-2px;z-index:1}.day-cell.is-empty{background:var(--bg-wash);cursor:default}.day-cell.is-weekend:not(.is-holiday){background:var(--weekend-surface)}.day-cell.is-weekend:hover:not(.is-empty):not(.is-holiday){background:var(--surface-2)}.day-cell.is-holiday,.day-cell.is-france-bridge{font-weight:600}.day-cell.is-france-bridge:after{content:"";border:1.5px dashed var(--holiday-france);pointer-events:none;position:absolute;inset:4px}.day-cell.is-france-bridge.is-today:after,.day-cell.is-france-bridge.is-selected:after{inset:6px}.day-number{font-family:var(--font-mono);color:var(--text-strong);font-size:.8125rem;line-height:1}.holiday-dots{gap:3px;min-height:.5rem;display:flex}.holiday-dot{width:.375rem;height:.375rem}.holiday-dot.is-france{background:var(--holiday-france)}.holiday-dot.is-netherlands{background:var(--holiday-netherlands)}.holiday-dot.is-uk{background:var(--holiday-uk)}.holiday-dot.is-canada{background:var(--holiday-canada)}.holiday-dot.is-india{background:var(--holiday-india)}.nav-btn{width:var(--toolbar-height);height:var(--toolbar-height);border:1px solid var(--line-strong);background:var(--surface);color:var(--text-strong);transition:border-color .14s var(--ease-out), color .14s var(--ease-out), transform .12s var(--ease-out);justify-content:center;align-items:center;padding:0;display:inline-flex}.nav-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.nav-btn:disabled{opacity:.35;cursor:not-allowed}.nav-btn:active:not(:disabled){transform:scale(.97)}.day-detail-root{z-index:200;pointer-events:none;position:fixed;inset:0}.day-detail-root:has(.day-detail-panel[data-state=open]){pointer-events:auto}.day-detail-backdrop{background:color-mix(in oklch, var(--ink) 40%, transparent);cursor:pointer;opacity:0;transition:opacity var(--duration-drawer) var(--ease-out);border:none;padding:0;position:absolute;inset:0}.day-detail-backdrop[data-state=open]{opacity:1}.day-detail-panel{z-index:1;padding:var(--space-5);background:var(--surface);border:1px solid var(--line);box-shadow:0 -12px 40px color-mix(in oklch, var(--ink) 12%, transparent);transition:transform var(--duration-drawer) var(--ease-drawer);position:relative;overflow:auto;transform:translateY(100%)}.day-detail-panel[data-state=open]{transform:translateY(0)}.day-detail-header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);display:flex}.day-detail-close{width:var(--toolbar-height);height:var(--toolbar-height);border:1px solid var(--line-strong);background:var(--surface);color:var(--text-strong);cursor:pointer;transition:border-color .14s var(--ease-out), color .14s var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.day-detail-close:hover{border-color:var(--accent);color:var(--accent)}.day-detail-close:active{transform:scale(.97)}.day-detail-date{letter-spacing:-.02em;min-width:0;color:var(--text-strong);margin:0;font-size:1.0625rem;font-weight:700;line-height:1.25}.day-detail-holidays{gap:var(--space-5);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.day-detail-holidays li{gap:var(--space-2);flex-direction:column;display:flex}.day-detail-holidays li+li{padding-top:var(--space-5);border-top:1px solid var(--line)}.day-detail-name{color:var(--text-strong);margin:0;font-size:1rem;font-weight:600;line-height:1.3}.day-detail-country-row{justify-content:flex-start;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);display:flex}.day-detail-dot{flex-shrink:0;width:.5rem;height:.5rem}.day-detail-dot.is-france{background:var(--holiday-france)}.day-detail-dot.is-netherlands{background:var(--holiday-netherlands)}.day-detail-dot.is-uk{background:var(--holiday-uk)}.day-detail-dot.is-canada{background:var(--holiday-canada)}.day-detail-dot.is-india{background:var(--holiday-india)}.day-detail-country{color:var(--text-muted);letter-spacing:.01em;font-size:.8125rem;font-weight:500}.day-detail-description{color:var(--text-muted);margin:0;font-size:.875rem;line-height:1.55}.day-detail-description.is-loading{color:color-mix(in oklch, var(--text-muted) 70%, transparent)}.day-detail-read-more-wrap{margin:var(--space-2) 0 0}.day-detail-read-more{color:var(--text-strong);text-underline-offset:.15em;transition:color .14s var(--ease-out);align-items:center;gap:.35rem;font-size:.875rem;font-weight:600;text-decoration:underline;display:inline-flex}.day-detail-read-more:hover{color:var(--accent)}.day-detail-empty{color:var(--text-muted);margin:0;font-size:.875rem}@media (width>=769px){.day-detail-root{display:block}.day-detail-backdrop{background:color-mix(in oklch, var(--ink) 18%, transparent)}.day-detail-panel{width:min(22rem,34vw);max-height:none;box-shadow:-8px 0 32px color-mix(in oklch, var(--ink) 10%, transparent);border-top:none;border-bottom:none;border-right:none;border-radius:0;position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.day-detail-panel[data-state=open]{transform:translate(0)}}@media (width<=768px){.day-detail-root{justify-content:center;align-items:flex-end;display:flex}.day-detail-panel{border-bottom:none;border-radius:0;width:min(100%,36rem);max-height:min(72vh,32rem)}}@media (prefers-reduced-motion:reduce){.day-detail-backdrop,.day-detail-panel{transition:opacity .18s var(--ease-out)}.day-detail-panel{opacity:0;transform:none}.day-detail-panel[data-state=open]{opacity:1}}.holiday-panel{padding:var(--space-5)}.section-title{margin:0 0 var(--space-4);letter-spacing:-.02em;color:var(--text-strong);font-size:1.125rem;font-weight:700}.holiday-columns{grid-template-columns:repeat(var(--holiday-cols,2), minmax(0, 1fr));gap:var(--space-6);display:grid}.holiday-column-title{margin:0 0 var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--line);color:var(--text-strong);font-size:.9375rem;font-weight:600}.holiday-status{margin:0 0 var(--space-3);color:var(--text-muted);font-size:.875rem}.holiday-status.is-error{color:var(--danger,oklch(52% .18 20))}.holiday-items{margin:0;padding:0;list-style:none}.holiday-item{gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--line);grid-template-columns:6.5rem 1fr;font-size:.875rem;display:grid}.holiday-item:last-child{border-bottom:none}.holiday-date{font-family:var(--font-mono);color:var(--text-muted);font-weight:500}.holiday-name{color:var(--text)}@media (width<=768px){.brand-mark{font-size:1.35rem}.country-fields{grid-template-columns:1fr}.add-country-btn{align-self:start}.holiday-columns,.months-row{grid-template-columns:1fr}.day-header,.day-cell{min-height:2.75rem}}
