.app{display:grid;grid-template-columns:360px minmax(0,1fr);height:100vh;height:100dvh;overflow:hidden}.sidebar-box{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;background:var(--surface);border-right:1px solid var(--border)}.preview{min-width:0;min-height:0;overflow-y:auto;padding:40px 32px 56px}.preview-pages{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:36px 32px}.calendar-page{width:min(100%,calc((100dvh - 40px - 56px - 32px) * var(--page-aspect, .707)))}.calendar-page figcaption{display:flex;justify-content:center;gap:8px;margin-top:10px;font-size:.8125rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.calendar-page figcaption strong{font-weight:600;color:var(--text)}@media(max-width:1100px){.app{grid-template-columns:320px minmax(0,1fr)}.preview{padding-inline:24px}}@media(max-width:719px),(max-height:499px){.app{display:block;height:auto;overflow:visible;background:var(--surface)}.sidebar-box{display:contents;overflow:visible}.preview{overflow:visible;padding:24px 16px 40px;background:var(--bg);border-top:1px solid var(--border)}.calendar-page{width:min(100%,560px)}}@media print{.sidebar-box,.about{display:none!important}.app,.preview{display:block;height:auto;overflow:visible;padding:0;border:none;background:#fff}.preview-pages{display:block}.calendar-page{width:100%;margin:0;break-after:page}.calendar-page:last-child{break-after:auto}.calendar-page figcaption{display:none}.calendar-svg{box-shadow:none;border-radius:0}}.calendar-svg{display:block;width:100%;height:auto;background:#fff;border-radius:2px;box-shadow:var(--shadow-page)}.sidebar{display:flex;flex-direction:column;min-height:100%}.sidebar-header{padding:20px 24px 0}.sidebar-header .brand{display:flex;align-items:center;gap:10px}.sidebar-header .brand-logo{width:28px;height:28px;flex-shrink:0}.sidebar-header h1{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:1.125rem;font-weight:650;letter-spacing:-.01em;line-height:1.2}.sidebar-header .about-btn{display:inline-flex;align-items:center;flex-shrink:0;gap:5px;height:32px;padding:0 11px 0 8px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);color:var(--text);font-size:.8125rem;font-weight:550;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}.sidebar-header .about-btn svg{width:17px;height:17px;fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round}.sidebar-header .about-btn:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.sidebar-header .about-btn:focus-visible{outline:none;box-shadow:var(--focus)}.summary{display:flex;flex-direction:column;gap:2px;margin:16px 24px 0;padding:12px 16px;border-radius:var(--radius);background:var(--accent-soft)}.summary .summary-range{font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums}.summary .summary-meta{font-size:.8125rem;color:var(--text-muted)}.sidebar-actions{padding:12px 24px 16px;border-bottom:1px solid var(--border);background:var(--surface)}.sidebar-actions .actions-row{display:grid;grid-template-columns:1fr auto;gap:10px}.sidebar-actions .error{margin-top:10px;font-size:.8125rem;color:var(--danger)}.sidebar-body{flex:1;padding:20px 24px 24px;display:flex;flex-direction:column;gap:28px}.panel{display:flex;flex-direction:column;gap:14px}.panel h2{font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);padding-bottom:8px;border-bottom:1px solid var(--border)}.sidebar-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px 8px 14px;border-top:1px solid var(--border);font-size:.8125rem;color:var(--text-muted)}.footer-end{display:flex;align-items:center;gap:8px}.theme-toggle{display:flex;gap:2px;padding:2px;border-radius:999px;background:var(--surface-muted)}.theme-toggle .icon-btn{width:28px;height:28px}.theme-toggle .icon-btn svg{width:16px;height:16px}.theme-toggle [aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #00000014,0 0 0 1px var(--border)}.field{display:flex;flex-direction:column;gap:6px;min-width:0;border:none}.field>label,.field>legend{font-size:.8125rem;font-weight:500;padding:0}.field>legend{margin-bottom:6px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}input[type=date],.text-input,.stepper,.segmented,.select select{height:40px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);transition:border-color .15s,box-shadow .15s}input[type=date],.text-input,.select select{width:100%;padding:0 12px;outline:none}:is(input[type=date],.text-input,.select select):hover{border-color:var(--text-muted)}:is(input[type=date],.text-input,.select select):focus-visible{border-color:var(--accent);box-shadow:var(--focus)}.select{position:relative}.select select{appearance:none;padding-right:32px;cursor:pointer}.select:after{content:"";position:absolute;right:14px;top:50%;width:7px;height:7px;border-right:1.5px solid var(--text-muted);border-bottom:1.5px solid var(--text-muted);transform:translateY(-70%) rotate(45deg);pointer-events:none}.text-input::placeholder{color:var(--text-muted);opacity:.7}.more{display:block}.more summary{display:flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer;border-bottom:1px solid var(--border)}.more summary::-webkit-details-marker{display:none}.more summary h2{border-bottom:none}.more summary:hover h2,.more summary:hover .chevron{color:var(--text)}.more summary:focus-visible{outline:none;box-shadow:var(--focus);border-radius:4px}.more .chevron{width:16px;height:16px;margin-bottom:8px;fill:none;stroke:var(--text-muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}.more[open] .chevron{transform:rotate(180deg)}.more .more-content{display:flex;flex-direction:column;gap:14px;padding-top:14px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{height:28px;padding:0 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-muted);font-size:.75rem;font-weight:500;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}.chip:hover{color:var(--text);border-color:var(--border-strong)}.chip.active{background:var(--accent-soft);border-color:transparent;color:var(--accent)}.chip:focus-visible{outline:none;box-shadow:var(--focus)}.stepper{display:flex;align-items:stretch;overflow:hidden}.stepper:focus-within{border-color:var(--accent);box-shadow:var(--focus)}.stepper-btn{width:36px;flex-shrink:0;border:none;background:var(--surface-muted);color:var(--text-muted);font-size:1.125rem;line-height:1;cursor:pointer;transition:background-color .15s,color .15s}.stepper-btn:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.stepper-btn:disabled{opacity:.4;cursor:not-allowed}.stepper-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.stepper-input{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:4px;border-inline:1px solid var(--border)}.stepper-input input{width:100%;min-width:0;height:100%;border:none;outline:none;background:transparent;text-align:center;font-variant-numeric:tabular-nums;appearance:textfield;-moz-appearance:textfield}.stepper-input input::-webkit-inner-spin-button,.stepper-input input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper-input:has(.unit) input{width:3.5ch;text-align:right}.stepper-input .unit{font-size:.8125rem;color:var(--text-muted)}.segmented{display:grid;grid-auto-columns:1fr;grid-auto-flow:column;gap:3px;padding:3px;background:var(--surface-muted)}.segmented label{position:relative;display:flex;align-items:center;justify-content:center;border-radius:5px;font-size:.875rem;font-weight:500;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s,color .15s}.segmented label:hover{color:var(--text)}.segmented label.active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #00000014,0 0 0 1px var(--border)}.segmented label:has(input:focus-visible){box-shadow:var(--focus)}.segmented input{position:absolute;opacity:0;pointer-events:none}.toggles{display:flex;flex-direction:column;gap:12px;margin-top:4px}.toggle{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.875rem;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle .toggle-text{display:flex;flex-direction:column}.toggle .toggle-text small{font-size:.75rem;color:var(--text-muted)}.toggle input{position:absolute;opacity:0;pointer-events:none}.toggle .toggle-track{position:relative;flex-shrink:0;width:38px;height:22px;border-radius:999px;background:var(--border-strong);transition:background-color .2s}.toggle .toggle-track:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .2s}.toggle input:checked+.toggle-track{background:var(--accent)}.toggle input:checked+.toggle-track:after{transform:translate(16px)}.toggle input:focus-visible+.toggle-track{box-shadow:var(--focus)}@media(max-width:1100px){.sidebar-header,.sidebar-actions,.sidebar-body{padding-inline:20px}.summary{margin-inline:20px}.sidebar-header .brand{gap:8px}.sidebar-header h1{font-size:1rem}.sidebar-header .about-btn{padding-inline:11px}.sidebar-header .about-btn svg{display:none}}@media(max-width:719px),(max-height:499px){.sidebar{display:contents}.sidebar-header{padding:16px 16px 0}.summary{margin:12px 16px 0}.sidebar-actions{position:sticky;top:0;z-index:10;padding:12px 16px}.sidebar-body{padding:20px 16px 24px}.sidebar-footer{padding-inline:6px}}@media(max-width:360px){.field-row{grid-template-columns:1fr}}.about{width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 48px);margin:auto;padding:0;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--text);box-shadow:0 24px 64px #00000040}.about::backdrop{background:#14120e73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.about[open]{animation:about-in .18s ease-out}@keyframes about-in{0%{opacity:0;transform:translateY(8px) scale(.98)}}.about-content{padding:24px 28px 20px;font-size:.9375rem}.about-content h3{margin:20px 0 8px;font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.about-content p,.about-content li{color:var(--text)}.about-content .lead{color:var(--text-muted)}.about-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.about-header h2{font-size:1.25rem;font-weight:650;letter-spacing:-.01em}.about-header .icon-btn{margin:-4px -8px 0 0}.steps{counter-reset:step;list-style:none;display:flex;flex-direction:column;gap:10px}.steps li{counter-increment:step;position:relative;padding-left:34px}.steps li:before{content:counter(step);position:absolute;left:0;top:1px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:.75rem;font-weight:600}.tips,.ideas{padding-left:20px;display:flex;flex-direction:column;gap:4px}:is(.tips,.ideas) li::marker{color:var(--text-muted)}.about-footer{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:24px;padding-top:16px;border-top:1px solid var(--border)}.about-footer .btn-secondary{height:38px;font-size:.875rem}.about-footer .version{flex-basis:100%;margin-top:8px;font-size:.8125rem;color:var(--text-muted)}@media(max-width:480px){.about-content{padding:20px 18px 16px}}:root{--bg: light-dark(#f4f3ef, #151515);--surface: light-dark(#ffffff, #1e1e1e);--surface-muted: light-dark(#f7f6f3, #262626);--border: light-dark(#e3e1db, #333331);--border-strong: light-dark(#cfccc4, #45443f);--text: light-dark(#1d1c1a, #ecebe7);--text-muted: light-dark(#6b6860, #a3a097);--accent: light-dark(#2f5bd3, #7c9cf0);--accent-hover: light-dark(#2449b3, #97b1f5);--accent-soft: light-dark(#e8eefc, #25304a);--on-accent: light-dark(#ffffff, #0f1320);--danger: light-dark(#b42318, #f0857a);--shadow-page: 0 1px 2px light-dark(rgba(28, 25, 20, .06), rgba(0, 0, 0, .4)), 0 8px 24px light-dark(rgba(28, 25, 20, .08), rgba(0, 0, 0, .45));--focus: 0 0 0 3px light-dark(rgba(47, 91, 211, .3), rgba(124, 156, 240, .4));--radius: 10px;--radius-sm: 7px;color-scheme:light dark;font-family:Work Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-optical-sizing:auto;font-style:normal;line-height:1.5;font-weight:400;color:var(--text);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body{background:var(--bg);overflow-x:clip}.hint{font-size:.75rem;line-height:1.4;color:var(--text-muted)}button,input,select{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 18px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:.9375rem;font-weight:550;white-space:nowrap;text-decoration:none!important;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}.btn:focus-visible{outline:none;box-shadow:var(--focus)}.btn:disabled{opacity:.6;cursor:progress}.btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--surface-muted)}.btn-ghost{height:36px;padding:0 10px;background:transparent;color:var(--text-muted);font-size:.8125rem;font-weight:500}.btn-ghost:hover{color:var(--text);background:var(--surface-muted)}.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;flex-shrink:0;border:none;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer;transition:background-color .15s,color .15s}.icon-btn:hover{background:var(--surface-muted);color:var(--text)}.icon-btn:focus-visible{outline:none;box-shadow:var(--focus)}.icon-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icon-btn svg.gh{fill:currentColor;stroke:none}.icon-btn-sm{width:30px;height:30px}.icon-btn-sm svg{width:17px;height:17px}.spinner{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}
