:root{--ink:#243c34;--muted:#596b5b;--green:#1b4c40;--accent:#dff298;--cream:#f8f9f5;--line:#e4e8df;--holiday:#e9c576;--leave:#dcedc9;--weekend:#eeefeb;--white:#fff;--font:'DM Sans',sans-serif;--heading:'Manrope',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font);font-size:1rem;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit}button{color:inherit}button,input,select{outline-offset:4px}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #4f8167;outline-offset:4px}button{transition:background .18s,transform .18s}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}.skip-link{position:fixed;top:-60px;left:20px;background:var(--green);color:white;padding:10px;z-index:100}.skip-link:focus{top:10px}.site-header{border-bottom:1px solid var(--line);background:#fdfefa}.header-inner{height:85px;max-width:1248px;margin:auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between}.brand{font-family:var(--heading);font-size:1.9375rem;font-weight:800;text-decoration:none;display:flex;align-items:center;letter-spacing:-1.5px}.brand-dot{color:#7a9b49}.brand-mark{display:flex;align-items:center;justify-content:center;gap:5px;width:34px;height:34px;background:var(--green);border-radius:11px;margin-right:10px;transform:rotate(-6deg)}.brand-mark i{width:5px;height:18px;background:var(--accent);border-radius:4px}.header-inner nav{display:flex;gap:36px;height:100%;margin-left:50px}.nav-link{border:0;background:none;color:var(--muted);font-size:0.9375rem;position:relative}.nav-link.active{color:var(--green);font-weight:600}.nav-link.active:after{content:'';height:2px;bottom:0;position:absolute;left:0;right:0;background:var(--green)}.help-link{display:flex;align-items:center;gap:8px;border:0;background:none;font-size:0.875rem;color:#606f65}.help-icon{border:1px solid #8e9a90;border-radius:50%;height:17px;width:17px;display:inline-grid;place-items:center;font-size:0.875rem}.page-shell{max-width:1248px;margin:auto;padding:0 32px}.intro{display:flex;justify-content:space-between;align-items:center;padding:48px 0 38px}.eyebrow{font-size:0.8125rem;font-weight:700;letter-spacing:1.5px;display:flex;align-items:center;gap:8px}.tiny-sun{font-size:1.25rem;color:#789352;line-height:1}h1{font-family:var(--heading);font-size:2.6875rem;letter-spacing:-1.8px;line-height:1.22;font-weight:650;margin:15px 0 13px}h1 span{color:#69816a}.intro p{color:var(--muted);font-size:1rem;margin:0}.intro-note{display:flex;align-items:center;gap:2px;transform:rotate(-7deg);font-family:Georgia,serif;font-style:italic;color:var(--muted);font-size:1.1875rem;line-height:1.5;padding-right:40px;padding-top:15px}.intro-note svg{width:90px}.workspace{display:grid;grid-template-columns:310px minmax(0,1fr);gap:28px;align-items:start}.settings-panel form{background:white;border:1px solid var(--line);border-radius:16px;padding:23px}.panel-heading{display:flex;align-items:center;gap:10px;margin-bottom:27px}.section-index{display:grid;place-items:center;background:#f0f4e9;width:25px;height:25px;border-radius:50%;font-size:0.8125rem;font-weight:600}.panel-heading h2{font-size:1.125rem;margin:0;font-family:var(--heading);font-weight:750;letter-spacing:-.4px}.field-label{display:block;font-size:0.875rem;font-weight:650;margin-bottom:10px}.budget-control{display:flex;justify-content:space-between;align-items:center;padding:3px 0 12px}.budget-control button{height:32px;width:32px;border:1px solid var(--line);border-radius:50%;background:white;font-size:1.3125rem;font-weight:400;display:grid;place-items:center;line-height:1}.budget-control button:hover{background:#f0f4e9}.budget-control>div{display:flex;align-items:center;flex-direction:column}.budget-control input{appearance:textfield;-moz-appearance:textfield;border:0;width:100px;color:var(--green);font-family:var(--heading);font-size:2.875rem;font-weight:700;letter-spacing:-2px;line-height:1;text-align:center;background:transparent}.budget-control input::-webkit-inner-spin-button{appearance:none}.budget-control span{color:var(--muted);font-size:0.8125rem;margin-top:1px}.budget-range{appearance:none;width:100%;height:4px;border-radius:10px;background:linear-gradient(to right,var(--green) var(--range,41.67%),#e8ece3 var(--range,41.67%));margin:14px 0 7px;cursor:pointer}.budget-range::-webkit-slider-thumb{appearance:none;background:var(--green);height:13px;width:13px;border-radius:50%;border:3px solid white;box-shadow:0 0 0 1px var(--green)}.budget-range::-moz-range-thumb{background:var(--green);height:8px;width:8px;border-radius:50%;border:3px solid white;box-shadow:0 0 0 1px var(--green)}.range-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:0.8125rem}.field-hint{font-size:0.8125rem;color:var(--muted);margin:16px 0 25px}.field-row{display:grid;grid-template-columns:82px 1fr;gap:10px}select{height:41px;border:1px solid var(--line);border-radius:7px;padding:0 23px 0 10px;width:100%;color:var(--ink);font-size:0.875rem;appearance:none;background:white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%236b7e71' stroke-width='1.3'/%3E%3C/svg%3E") no-repeat right 8px center}.text-button{border:0;background:transparent;padding:0;color:#4f684b;font-size:0.8125rem;display:flex;align-items:center;gap:7px}.holidays-edit{margin-top:14px;width:100%}.holidays-edit span:last-child{margin-left:auto}.date-settings{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:20px;font-size:0.8125rem}.date-settings summary{display:flex;justify-content:space-between;cursor:pointer;list-style:none;padding:14px 0;color:var(--muted)}.date-settings summary::-webkit-details-marker{display:none}.date-settings summary span{font-size:1rem;line-height:10px}.date-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-bottom:14px}.date-fields label{font-size:0.8125rem;color:var(--muted)}.date-fields input{width:100%;min-width:0;font-size:0.8125rem;border:1px solid var(--line);border-radius:5px;padding:7px 3px;margin-top:6px;color:var(--ink)}.strategies{border:0;margin:24px 0 22px;padding:0}.strategies legend{margin-bottom:13px}.strategy{display:flex;align-items:center;gap:11px;padding:11px 9px;margin:7px 0;border:1px solid transparent;border-radius:8px;cursor:pointer;position:relative}.strategy:has(input:checked){background:#f2f6eb;border-color:#dbe5cd}.strategy:hover{background:#f7f8f3}.strategy input{position:absolute;opacity:0;width:1px;height:1px}.strategy:has(input:focus-visible){outline:2px solid var(--green);outline-offset:2px}.strategy-icon{font-size:1.5rem;width:24px;text-align:center;color:#79935d}.strategy strong{font-size:0.875rem;display:block;font-weight:650}.strategy small{display:block;margin-top:4px;font-size:0.8125rem;color:var(--muted);letter-spacing:-.1px}.radio-dot{border:1px solid #d2d9cb;height:13px;width:13px;border-radius:50%;margin-left:auto;flex-shrink:0}.strategy:has(input:checked) .radio-dot{border:4px solid var(--green)}.primary-button{display:flex;justify-content:center;align-items:center;gap:12px;border:0;background:var(--green);color:white;width:100%;padding:15px 10px;border-radius:8px;font-size:0.875rem;font-weight:600;white-space:nowrap}.primary-button:hover{background:#28604d}.primary-button span{font-size:1.125rem}.local-note{font-size:0.8125rem;color:var(--muted);text-align:center;margin:13px 0 0}.local-note span{font-size:0.9375rem;margin-right:3px}.error-message{font-size:0.875rem;color:#a83d2d;line-height:1.5}.sidebar-tip{display:flex;gap:12px;margin-top:18px;padding:19px 18px;border:1px solid #e2e8d6;border-radius:12px;background:#f0f4e7}.tip-star{font-size:1.875rem;color:#7b9158}.sidebar-tip strong{font-size:0.875rem;font-weight:650}.sidebar-tip p{font-size:0.875rem;color:var(--muted);line-height:1.7;margin:6px 0 0}.result-banner{background:var(--green);color:#f4f9ed;border-radius:16px;padding:25px 28px 0;position:relative;overflow:hidden}.banner-top{display:flex;justify-content:space-between;align-items:center}.banner-label{font-size:0.8125rem;letter-spacing:1.7px;display:flex;align-items:center;gap:7px;color:#d3dfd2}.banner-label #result-year{margin-left:-3px}.status-dot{background:#e0f398;width:5px;height:5px;border-radius:50%}.balanced-badge{border:1px solid #527467;padding:6px 9px;border-radius:20px;font-size:0.8125rem;color:#d8e4d2}.banner-equation{display:flex;align-items:center;gap:26px;margin:21px 0 25px}.banner-equation>div{display:flex;flex-direction:column;gap:2px}.banner-equation strong{font-family:var(--heading);font-size:3.8125rem;font-weight:500;letter-spacing:-3px;line-height:1.05}.banner-equation>div:nth-of-type(2) strong{color:var(--accent)}.banner-equation>div span{font-size:0.875rem;color:#c8d7cd}.equation-arrow{font-size:2rem;color:#9cb2a0;margin-top:-17px}.banner-sun{height:94px;width:94px;color:#abc684;margin-left:auto;margin-right:4px;transform:rotate(8deg);opacity:.85}.banner-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #456b5c;padding:17px 0;font-size:0.8125rem;color:#bacebe;gap:8px}.banner-bottom b{font-size:0.9375rem;color:#eef6e2;font-weight:500;margin-right:4px}.count-note{font-size:0.8125rem;color:var(--muted);margin:9px 1px 0}.results-heading{display:flex;align-items:center;justify-content:space-between;margin-top:33px;gap:10px}.subtle{font-size:0.8125rem;color:var(--muted);letter-spacing:1.8px}.results-heading h2{font-family:var(--heading);font-size:1.25rem;letter-spacing:-.7px;font-weight:700;margin:8px 0 0;display:flex;align-items:center;gap:8px}.results-heading h2 span{background:#e9eedf;color:#4d653d;border-radius:50%;font-family:var(--font);font-size:0.8125rem;letter-spacing:0;width:21px;height:21px;display:grid;place-items:center}.export-button{display:flex;align-items:center;gap:7px;background:white;border:1px solid #dce2d5;border-radius:7px;padding:10px 11px;font-size:0.8125rem;font-weight:500}.export-button:hover{background:#eff4e7}.export-button svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.results-toolbar{display:flex;justify-content:space-between;align-items:center;margin-top:21px;padding-bottom:15px;border-bottom:1px solid var(--line);gap:8px}.view-switch{display:flex;gap:3px;background:#ebeee6;padding:3px;border-radius:6px}.view-switch button{background:none;border:0;border-radius:4px;padding:7px 10px;font-size:0.8125rem;color:var(--muted);display:flex;gap:7px;align-items:center}.view-switch button.selected{background:white;box-shadow:0 1px 3px #2446320d;color:var(--green);font-weight:600}.view-switch span{font-size:0.9375rem;line-height:10px}.legend{display:flex;gap:12px;font-size:0.8125rem;color:var(--muted)}.legend span{display:flex;gap:5px;align-items:center;white-space:nowrap}.legend i{height:7px;width:7px;border-radius:2px}.leave-key{background:var(--leave);border:1px solid #c4dcae}.holiday-key{background:var(--holiday)}.weekend-key{background:#dedfd9}.plan-description{font-size:0.8125rem;color:var(--muted);margin:13px 0}.periods{display:grid;gap:12px}.period-card{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:border-color .2s}.period-card:hover{border-color:#b9c9ab}.period-card-top{padding:19px 21px 13px;display:flex;justify-content:space-between;gap:12px;align-items:center}.period-label{font-size:0.8125rem;letter-spacing:1.1px;color:var(--muted);text-transform:uppercase;margin-bottom:7px;display:flex;align-items:center;gap:7px}.period-label .highlight-tag{background:#eff5db;color:#4f684b;font-size:0.8125rem;letter-spacing:.5px;padding:3px 6px;border-radius:3px}.period-title{font-family:var(--heading);font-size:1.125rem;font-weight:650;letter-spacing:-.45px;margin:0}.period-subtitle{color:var(--muted);font-size:0.8125rem;margin-top:6px}.period-metrics{display:flex;gap:14px;align-items:center;text-align:center;flex-shrink:0}.period-metrics strong{display:block;font-family:var(--heading);font-size:1.5625rem;font-weight:600;line-height:1.15;letter-spacing:-1px}.period-metrics small{font-size:0.8125rem;color:var(--muted);display:block;margin-top:4px}.metric-arrow{color:#b6c3a7;font-size:1.1875rem;margin-top:-12px}.rest-metric{background:#f0f5e6;padding:7px 12px;border-radius:8px;min-width:66px}.rest-metric strong{color:#46652d}.day-strip{display:flex;gap:4px;padding:0 21px 16px;overflow-x:auto;scrollbar-width:thin}.day-cell{flex:1;min-width:27px;max-width:47px;text-align:center}.day-name{display:block;font-size:0.8125rem;color:var(--muted);margin-bottom:5px}.day-number{display:grid;place-items:center;height:28px;border-radius:4px;background:var(--weekend);color:var(--muted);font-size:0.8125rem;position:relative}.day-cell.leave .day-number{background:var(--leave);color:#456737;font-weight:600}.day-cell.holiday .day-number{background:#f5e8c7;color:#76551b;font-weight:600}.day-cell.holiday .day-number:after{content:'';position:absolute;bottom:3px;width:3px;height:3px;border-radius:50%;background:#bd943c}.period-details{border-top:1px solid #f0f2ea}.period-details summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:10px 21px;color:var(--muted);font-size:0.8125rem;cursor:pointer;background:#fcfdf9}.period-details summary::-webkit-details-marker{display:none}.period-details summary span:last-child{font-size:0.9375rem}.period-details[open] summary{border-bottom:1px solid #edf1e6}.period-detail-content{padding:15px 21px;font-size:0.875rem;line-height:1.7;color:var(--muted)}.period-detail-content strong{color:var(--ink);display:block;margin-bottom:7px}.leave-date-list{display:flex;flex-wrap:wrap;gap:6px}.leave-date-list span{background:#f1f5e9;border:1px solid #e1e9d7;border-radius:5px;padding:3px 7px;font-size:0.8125rem;color:#5d784d}.period-detail-content p{margin-bottom:0;font-size:0.8125rem}.annual-calendar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.month{background:white;border:1px solid var(--line);border-radius:10px;padding:14px 10px}.month h3{font-size:0.875rem;font-weight:600;text-transform:capitalize;margin:0 0 15px 4px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.month-grid .weekday{font-size:0.8125rem;color:var(--muted);text-align:center;padding-bottom:5px}.calendar-day{display:grid;place-items:center;height:23px;border-radius:4px;font-size:0.8125rem;position:relative;border:0;background:white;padding:0}.calendar-day.weekend{background:#f3f4f0;color:var(--muted)}.calendar-day.holiday{background:#f5e8c7;color:#76551b}.calendar-day.leave{background:var(--leave);color:#3b5e29;font-weight:650}.calendar-day.in-period{box-shadow:inset 0 -2px 0 #9eb48d}.calendar-day.outside{opacity:.38}.calendar-day:hover{outline:1px solid #92a983}.empty-state{border:1px dashed #cbd5c0;background:#f1f5e9;border-radius:12px;text-align:center;padding:40px 25px}.empty-state>span{font-size:2.1875rem;color:#89a56a}.empty-state h3{font-family:var(--heading);font-size:1.1875rem;margin:12px 0 9px;letter-spacing:-.5px}.empty-state p{color:var(--muted);font-size:0.875rem;line-height:1.8;max-width:380px;margin:auto}.remaining-note{margin-top:17px;background:#eef2e6;border-radius:8px;padding:13px 16px;font-size:0.875rem;color:var(--muted);line-height:1.7}.remaining-note strong{color:#566d45}.method-note{display:flex;align-items:flex-start;gap:9px;color:var(--muted);margin-top:23px}.method-note>span{margin-top:2px}.method-note p{font-size:0.8125rem;line-height:1.8;margin:0;max-width:580px}.method-note button{border:0;background:none;color:#4f684b;font-size:inherit;padding:0;text-decoration:underline;text-underline-offset:3px}.dirty-notice{padding:11px 14px;border:1px solid #e8dab6;background:#fff9e9;border-radius:8px;font-size:0.875rem;margin-top:18px;color:#76551b}footer{display:flex;align-items:center;border-top:1px solid var(--line);padding:24px 0;margin-top:55px;gap:20px;color:var(--muted);font-size:0.8125rem}.footer-brand{font-family:var(--heading);font-size:1.125rem;font-weight:800;color:var(--muted);text-decoration:none;letter-spacing:-1px}footer>a:last-child{margin-left:auto;text-decoration:none}footer>a:last-child:hover{text-decoration:underline}dialog{border:1px solid var(--line);border-radius:18px;padding:30px;max-width:550px;width:calc(100% - 32px);max-height:85vh;overflow-y:auto;color:var(--ink);background:#fff;box-shadow:0 20px 100px #183b3826}dialog::backdrop{background:#20372c66;backdrop-filter:blur(4px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.dialog-top .eyebrow{font-size:0.8125rem}.close-dialog{border:0;background:#f0f3ea;border-radius:50%;height:29px;width:29px;font-size:1.25rem;flex-shrink:0}dialog h2{font-family:var(--heading);font-size:1.6875rem;line-height:1.25;letter-spacing:-1px;margin:25px 0}dialog p{font-size:0.875rem;line-height:1.75;color:var(--muted)}.help-step{display:flex;gap:16px;margin:22px 0}.help-step>span{color:#789459;background:#f1f5e8;font-size:0.875rem;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.help-step h3{font-size:0.9375rem;margin:4px 0 8px}.help-step p{margin:0}.dialog-note{background:#f3f6ed;border-radius:9px;padding:15px;font-size:0.875rem;line-height:1.8;color:var(--muted);margin-top:15px}.source-link{display:inline-block;font-size:0.8125rem;color:#4f684b;margin-top:22px;text-underline-offset:3px}.holiday-list{margin:20px 0}.holiday-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer}.holiday-row input{accent-color:var(--green);width:15px;height:15px}.holiday-row span{font-size:0.875rem}.holiday-row small{margin-left:auto;font-size:0.8125rem;color:var(--muted);white-space:nowrap}.holiday-row.weekend-holiday span{color:var(--muted)}.holiday-row em{font-style:normal;font-size:0.8125rem;color:var(--muted);margin-left:5px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);padding:12px 20px;background:var(--green);color:#fff;border-radius:10px;font-size:0.875rem;opacity:0;transition:.25s;pointer-events:none;z-index:20;max-width:90vw;width:max-content;box-shadow:0 5px 30px #1b4c4026}.toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:1500px){.page-shell,.header-inner{max-width:1328px}.workspace{grid-template-columns:330px minmax(0,1fr);gap:34px}.settings-panel form{padding:26px}.intro{padding-top:55px}h1{font-size:2.9375rem}.period-title{font-size:1.0625rem}.period-card-top{padding-top:22px}.day-number{height:31px}.day-cell{max-width:53px}.periods{gap:15px}}
@media(max-width:1100px){.page-shell,.header-inner{padding-left:24px;padding-right:24px}.workspace{grid-template-columns:285px minmax(0,1fr);gap:22px}.settings-panel form{padding:20px}.intro-note{padding-right:10px;font-size:1.0625rem}.banner-sun{height:70px;width:70px}.banner-equation{gap:19px}.banner-equation strong{font-size:3.375rem}.legend{gap:8px;font-size:0.8125rem}.banner-bottom{font-size:0.8125rem}.results-heading h2{font-size:1.125rem}.export-button{padding:9px;font-size:0.8125rem}.annual-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.period-title{font-size:1rem}.banner-bottom b{font-size:0.875rem}.banner-top{gap:8px}.banner-label{font-size:0.8125rem}.balanced-badge{font-size:0.8125rem}.day-strip{padding-left:18px;padding-right:18px}.period-card-top{padding-left:18px;padding-right:18px}.period-metrics{gap:9px}.rest-metric{padding:7px 8px;min-width:60px}}
@media(max-width:850px){.header-inner nav{margin-left:0;gap:22px}.intro-note{display:none}.workspace{grid-template-columns:260px minmax(0,1fr);gap:18px}.settings-panel form{padding:17px}.banner-sun{display:none}.banner-equation{gap:20px}.result-banner{padding:20px 20px 0}.banner-equation strong{font-size:3.3125rem}.banner-bottom{display:grid;grid-template-columns:1fr;gap:7px;padding:13px 0}.banner-bottom b{font-size:0.875rem}.results-toolbar{align-items:flex-start;gap:12px;flex-direction:column}.results-heading{align-items:flex-start}.desktop-only{display:none}.period-card-top{align-items:flex-start;gap:10px}.period-title{font-size:1rem;line-height:1.6}.period-metrics strong{font-size:1.375rem}.period-metrics{gap:6px}.metric-arrow{font-size:1rem}.period-metrics small{font-size:0.8125rem}.rest-metric{min-width:50px}.balanced-badge{max-width:110px;text-align:center}.day-cell{min-width:24px}.help-link span:last-child{display:none}.help-icon{height:24px;width:24px}h1{font-size:2.375rem}}
@media(max-width:680px){.header-inner{height:72px;padding:0 20px}.brand{font-size:1.6875rem}.brand-mark{height:30px;width:30px}.header-inner nav{gap:18px}.nav-link{font-size:0.8125rem}.nav-link#nav-calendar{display:none}.page-shell{padding:0 20px}.intro{padding:32px 0 28px}.eyebrow{font-size:0.8125rem;letter-spacing:1.2px}h1{font-size:2.125rem;letter-spacing:-1.5px;line-height:1.25;margin-top:13px}.intro p{font-size:0.875rem;max-width:270px;line-height:1.7}.workspace{display:block}.settings-panel form{padding:22px}.panel-heading{margin-bottom:21px}.field-row{grid-template-columns:90px 1fr}.field-label{font-size:0.875rem}.budget-control input{font-size:3rem}.budget-control{padding-left:30px;padding-right:30px}.field-hint{text-align:center;margin-top:13px;margin-bottom:22px}.strategies{margin-top:21px;margin-bottom:18px}.strategy strong{font-size:0.875rem}.strategy small{font-size:0.8125rem}.strategy{padding:12px}.primary-button{font-size:0.875rem;padding:16px}.sidebar-tip{display:none}.results{margin-top:25px}.result-banner{padding:23px 22px 0}.banner-top{gap:15px}.banner-label{font-size:0.8125rem}.balanced-badge{font-size:0.8125rem;max-width:unset}.banner-equation{gap:25px;margin:23px 0}.banner-equation strong{font-size:3.875rem}.banner-sun{display:block;height:67px;width:67px;margin-right:0}.banner-bottom{display:flex;flex-wrap:wrap;gap:12px;font-size:0.8125rem;justify-content:flex-start;padding:16px 0}.banner-bottom b{font-size:0.875rem}.count-note{font-size:0.8125rem;margin-top:10px;line-height:1.6}.results-heading{margin-top:31px;align-items:center}.results-heading h2{font-size:1.1875rem}.export-button{padding:10px;font-size:0.8125rem}.results-toolbar{flex-direction:row;align-items:center;flex-wrap:wrap;gap:13px}.legend{font-size:0.8125rem;gap:10px}.view-switch button{font-size:0.875rem;padding:8px 10px}.plan-description{font-size:0.8125rem;line-height:1.6}.period-title{font-size:1rem}.period-label{font-size:0.8125rem}.period-card-top{padding:18px 16px 13px;align-items:center}.period-metrics{gap:8px}.period-metrics strong{font-size:1.5625rem}.rest-metric{padding:7px 9px;min-width:58px}.period-metrics small{font-size:0.8125rem}.period-subtitle{font-size:0.8125rem}.day-strip{padding:0 16px 15px}.day-cell{min-width:25px}.day-number{height:29px}.period-details summary{font-size:0.8125rem;padding:12px 16px}.method-note p{font-size:0.8125rem}.annual-calendar{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.month{padding:12px 7px}.month-grid{gap:2px}.calendar-day{font-size:0.8125rem;height:24px}footer{flex-wrap:wrap;gap:12px;margin-top:37px;padding-top:20px;padding-bottom:25px}footer>a:last-child{margin-left:0;width:100%;font-size:0.8125rem}.dialog-top .eyebrow{font-size:0.8125rem}dialog{padding:23px}dialog h2{font-size:1.5rem}.holiday-row span{font-size:0.875rem}.holiday-row small{font-size:0.8125rem}.holiday-row em{display:none}.date-fields input{font-size:0.875rem;padding:8px 5px}.date-fields label{font-size:0.875rem}}
@media(max-width:380px){h1{font-size:1.8125rem}.page-shell{padding:0 14px}.banner-sun{display:none}.banner-equation{gap:30px}.banner-label{font-size:0.8125rem}.balanced-badge{font-size:0.8125rem}.period-title{font-size:0.9375rem}.period-metrics{gap:5px}.rest-metric{min-width:48px;padding:7px}.period-metrics strong{font-size:1.375rem}.results-heading h2{font-size:1.0625rem}.annual-calendar{grid-template-columns:1fr}.calendar-day{height:29px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Planning advice and the static annual guide share the calculator's visual language. */
.intro>div:first-child{min-width:0}.intro .intro-note{flex-shrink:0}.intro .intro-note svg{width:62px}.intro p{line-height:1.7;max-width:650px}.planning-guide{margin-top:60px;padding-top:38px;border-top:1px solid var(--line);scroll-margin-top:24px}.guide-heading{display:flex;justify-content:space-between;align-items:center;gap:24px}.planning-guide h2,.article-section h2,.article-outro h2{font-family:var(--heading);font-size:1.625rem;font-weight:650;letter-spacing:-.8px;line-height:1.35;margin:14px 0}.guide-heading .eyebrow{color:#526848}.guide-intro,.article-section>p,.article-intro>p,.article-outro>p{color:#596d58;line-height:1.85;font-size:1rem;max-width:840px}.guide-link,.guide-nav{display:inline-flex;align-items:center;gap:12px;font-size:0.9375rem;color:var(--green);font-weight:600;text-decoration:none;white-space:nowrap}.guide-link:hover,.guide-nav:hover{text-decoration:underline;text-underline-offset:4px}.guide-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;margin:28px 0}.guide-steps article{padding:22px;background:white;border:1px solid var(--line);border-radius:12px}.guide-steps h3{font-size:1rem;margin:16px 0 9px;font-family:var(--heading);letter-spacing:-.2px}.guide-steps p{font-size:0.9375rem;line-height:1.85;margin:0;color:#596d58}.bridge-example{display:flex;justify-content:space-between;align-items:center;gap:26px;background:#eff4e5;border-radius:13px;padding:26px 30px;margin:28px 0 40px}.bridge-example h3{font-family:var(--heading);font-size:1.25rem;letter-spacing:-.5px;margin:9px 0}.bridge-example>div>p:last-child{font-size:1rem;color:#596d58;line-height:1.8;max-width:620px;margin-bottom:0}.bridge-total{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.bridge-total>strong{font-family:var(--heading);font-size:2.6875rem;letter-spacing:-2px;white-space:nowrap;font-weight:600}.bridge-total strong span{font-size:1.875rem;color:#6a8257;margin:0 12px}.bridge-total>span{font-size:0.875rem;color:#597048;margin-top:7px}.planning-faq{max-width:880px;margin-top:30px}.planning-faq details{border-bottom:1px solid var(--line);padding:0}.planning-faq summary{padding:19px 28px 19px 0;font-size:1rem;font-weight:600;cursor:pointer;line-height:1.7}.planning-faq details p{font-size:1rem;line-height:1.9;color:#596d58;margin:0 0 20px}.guide-source{font-size:0.875rem;color:var(--muted);line-height:1.8;margin-top:25px}.guide-source a,.article-section>p a{color:var(--green);text-underline-offset:3px}.no-script-note{background:#eff4e5;border:1px solid #dbe5cd;padding:18px;border-radius:10px;line-height:1.8}.article-shell{max-width:1060px}.breadcrumbs{display:flex;gap:12px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:0.875rem;margin:30px 0}.breadcrumbs a{text-underline-offset:3px}.article-intro{padding:22px 0 30px}.article-intro h1{font-size:2.875rem;line-height:1.25;margin-top:15px}.article-intro .updated{font-size:0.875rem;color:var(--muted);margin-top:18px}.article-cta{display:inline-flex;gap:18px;align-items:center;background:var(--green);color:white;border-radius:8px;padding:15px 20px;font-size:0.9375rem;font-weight:600;text-decoration:none;margin-top:18px}.article-cta:hover{background:#28604d}.article-toc{display:flex;flex-wrap:wrap;gap:15px 26px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:42px}.article-toc a{font-size:0.875rem;color:#566d45;text-underline-offset:4px}.article-section{margin:42px 0;scroll-margin-top:25px}.table-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:white;margin:24px 0}.planning-table{border-collapse:collapse;width:100%;text-align:left;font-size:0.9375rem;line-height:1.7}.planning-table caption{text-align:left;padding:15px 19px;font-size:0.875rem;color:var(--muted)}.planning-table thead{background:#edf3e5;color:#456237}.planning-table td,.planning-table th{padding:14px 19px;border-top:1px solid var(--line);vertical-align:top}.planning-table tbody th{font-weight:600}.planning-table td strong{font-size:0.875rem;font-weight:600;color:#476c36;white-space:nowrap}.planning-table tr:nth-child(even){background:#fafcf7}.long-break{display:flex;align-items:center;gap:30px;background:var(--green);color:white;border-radius:16px;padding:35px}.long-break>div:first-child{flex:1;min-width:0}.long-break .eyebrow{color:var(--accent)}.long-break h2{font-size:1.625rem;max-width:580px}.long-break p:not(.eyebrow){color:#dfebdc;font-size:1rem;line-height:1.9}.long-break-total{display:flex;flex-direction:column;align-items:center;min-width:150px}.long-break-total strong{font-family:var(--heading);font-size:5.3125rem;letter-spacing:-4px;font-weight:500;color:var(--accent);line-height:1.3}.long-break-total span{font-size:0.875rem;color:#dfebdc}.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.two-columns h3{margin-top:0}.article-outro{background:#edf3e5;padding:30px;border-radius:14px;margin:50px 0 20px}.article-outro h2{margin-top:0}.article-outro>p{margin-bottom:0}
@media(max-width:1100px){.intro h1{font-size:2.375rem}.intro-note{padding-right:0}.intro-note span{font-size:1.125rem}.guide-heading{align-items:flex-start;flex-direction:column;gap:4px}}
@media(max-width:680px){.intro h1,.article-intro h1{font-size:2rem;letter-spacing:-1.3px}.intro p{max-width:340px}.planning-guide{margin-top:40px;padding-top:28px}.planning-guide h2,.article-section h2,.article-outro h2{font-size:1.4375rem}.guide-steps,.two-columns{grid-template-columns:1fr;gap:12px}.guide-steps article{padding:20px}.guide-steps h3{margin-top:12px}.guide-heading{gap:7px}.guide-link{white-space:normal;line-height:1.7}.bridge-example{flex-direction:column;align-items:flex-start;padding:23px;gap:10px}.bridge-total{align-self:flex-end;margin:0}.planning-faq summary{font-size:0.9375rem}.planning-faq details p{font-size:0.9375rem}.article-intro{padding:14px 0 25px}.article-intro>p,.guide-intro,.article-section>p{font-size:1rem}.article-intro .updated{font-size:0.8125rem}.guide-nav{font-size:0.875rem}.breadcrumbs{font-size:0.8125rem;margin-top:22px;gap:8px}.article-toc{gap:15px 20px;margin-bottom:30px}.article-section{margin:30px 0}.planning-table{font-size:0.875rem;min-width:580px}.holiday-table{min-width:440px}.planning-table th,.planning-table td{padding:12px 14px}.long-break{padding:25px;flex-direction:column;gap:5px;align-items:flex-start}.long-break h2{font-size:1.5rem}.long-break-total{align-self:flex-end;min-width:130px}.long-break-total strong{font-size:4.0625rem}.article-outro{padding:23px}.article-cta{font-size:0.875rem;padding:15px 16px}.article-intro .article-cta{margin-top:12px}.guide-source{font-size:0.875rem}}
@media(max-width:380px){.intro h1,.article-intro h1{font-size:1.75rem}.guide-nav{font-size:0.8125rem}}

/* Readable type at every viewport: preserve hierarchy without shrinking labels. */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body { font-size: 1rem; line-height: 1.55; }
.workspace { grid-template-columns: 340px minmax(0, 1fr); }
.settings-panel, .results { min-width: 0; }
.settings-panel form { padding: 24px; }
.panel-heading h2 { font-size: 1.125rem; line-height: 1.4; }
.field-label, .strategy strong { font-size: .9375rem; }
.field-hint, .range-labels, .budget-control span, .strategy small,
.local-note, .text-button, .date-settings summary, .date-fields label {
  font-size: .875rem;
  line-height: 1.6;
}
.field-row { grid-template-columns: minmax(0, 1fr); gap: 16px; }
select { height: 48px; font-size: 1rem; }
.date-fields { grid-template-columns: minmax(0, 1fr); gap: 12px; }
.date-fields input { padding: 10px; min-height: 46px; font-size: 1rem; }
.strategy { gap: 10px; padding: 13px 10px; align-items: flex-start; }
.strategy > span:nth-of-type(2) { min-width: 0; flex: 1; }
.strategy-icon { flex-shrink: 0; line-height: 1.3; }
.radio-dot { height: 16px; width: 16px; margin-top: 5px; }
.strategy small { letter-spacing: normal; }
.primary-button { min-height: 48px; font-size: 1rem; line-height: 1.5; white-space: normal; }
.primary-button span { flex-shrink: 0; }
.budget-control button { width: 40px; height: 40px; }
.local-note { text-align: left; }
.sidebar-tip p, .sidebar-tip strong { font-size: .9375rem; }
.help-icon { min-width: 24px; height: 24px; font-size: .875rem; }
.help-link, .nav-link { font-size: .9375rem; }
.eyebrow { font-size: .8125rem; letter-spacing: 1px; line-height: 1.6; }
.subtle { font-size: .8125rem; letter-spacing: 1px; }
.section-index { min-width: 28px; height: 28px; font-size: .875rem; }

/* Summary labels stay legible even when the statistics wrap. */
.banner-top { flex-wrap: wrap; gap: 12px; }
.banner-label { font-size: .8125rem; letter-spacing: 1px; flex-wrap: wrap; }
.balanced-badge { max-width: none; font-size: .8125rem; line-height: 1.5; text-align: left; }
.banner-equation > div span { font-size: .9375rem; line-height: 1.5; }
.banner-bottom { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 12px 24px; font-size: .875rem; }
.banner-bottom b { font-size: 1rem; }
.banner-bottom > span { flex: 1 1 160px; }
.count-note, .plan-description { font-size: .875rem; line-height: 1.7; }
.results-heading { flex-wrap: wrap; gap: 16px; }
.results-heading h2 { font-size: 1.375rem; line-height: 1.4; }
.results-heading h2 span { min-width: 28px; height: 28px; font-size: .875rem; }
.export-button { min-height: 44px; font-size: .875rem; padding: 10px 13px; }
.export-button svg { width: 17px; height: 17px; flex-shrink: 0; }
.results-toolbar { flex-direction: row; flex-wrap: wrap; gap: 16px; }
.view-switch { max-width: 100%; flex-wrap: wrap; }
.view-switch button { min-height: 42px; font-size: .9375rem; padding: 8px 12px; }
.legend { font-size: .8125rem; gap: 10px 16px; flex-wrap: wrap; }
.legend i { height: 10px; width: 10px; }

/* Date cards make space for labels instead of compressing their type. */
.period-card-top { flex-wrap: wrap; align-items: center; gap: 16px; }
.period-card-top > div:first-child { flex: 1 1 220px; min-width: 0; }
.period-label { flex-wrap: wrap; font-size: .8125rem; letter-spacing: .7px; }
.period-label .highlight-tag { font-size: .8125rem; letter-spacing: .3px; }
.period-title { font-size: 1.125rem; line-height: 1.5; }
.period-subtitle { font-size: .9375rem; line-height: 1.6; }
.period-metrics { gap: 12px; margin-left: auto; }
.period-metrics > div:first-child { min-width: 76px; }
.period-metrics small { font-size: .875rem; line-height: 1.4; }
.rest-metric { min-width: 124px; padding: 10px 12px; }
.metric-arrow { color: #647c50; }
.day-strip { gap: 6px; padding-bottom: 18px; }
.day-cell { flex: 1 0 38px; min-width: 38px; max-width: 56px; }
.day-name { font-size: .8125rem; line-height: 1.5; }
.day-number { height: 36px; font-size: .9375rem; }
.period-details summary { font-size: .875rem; min-height: 46px; gap: 12px; }
.period-detail-content { font-size: .9375rem; }
.period-detail-content p, .leave-date-list span { font-size: .875rem; }
.leave-date-list span { padding: 5px 9px; }
.remaining-note, .empty-state p, .dirty-notice { font-size: .9375rem; line-height: 1.7; }
.method-note p { font-size: .875rem; }

/* Fewer, larger months replace the dense calendar on narrow screens. */
.annual-calendar { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; }
.month { padding: 18px 14px; }
.month h3 { font-size: 1rem; margin-bottom: 16px; }
.month-grid { gap: 4px; }
.month-grid .weekday { font-size: .8125rem; padding-bottom: 7px; }
.calendar-day { height: 38px; font-size: .9375rem; line-height: 1.4; }
.calendar-day.outside { opacity: 1; color: var(--muted); box-shadow: inset 0 0 0 1px var(--line); }

/* Dialogs, footnotes, and the guide use the same type scale. */
dialog { max-width: 620px; }
dialog p { font-size: 1rem; line-height: 1.75; }
.dialog-top .eyebrow { font-size: .8125rem; }
.help-step h3 { font-size: 1rem; }
.dialog-note, .source-link { font-size: .9375rem; }
.close-dialog { width: 38px; height: 38px; }
.holiday-row { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 12px; }
.holiday-row input { width: 18px; height: 18px; }
.holiday-row span { font-size: .9375rem; }
.holiday-row small, .holiday-row em { font-size: .8125rem; }
.toast { font-size: .9375rem; line-height: 1.6; }
footer { font-size: .875rem; line-height: 1.7; flex-wrap: wrap; }
footer > a:last-child { font-size: .875rem; }
.guide-source, .breadcrumbs, .planning-table caption, .article-intro .updated { font-size: .875rem; }
.guide-steps p, .planning-faq summary, .planning-faq details p,
.guide-intro, .article-section > p, .article-intro > p, .article-outro > p { font-size: 1rem; }
.planning-table, .planning-table td strong { font-size: .9375rem; }
.article-toc a, .guide-link, .guide-nav, .article-cta { font-size: .9375rem; }

@media (max-width: 1100px) {
  .workspace { grid-template-columns: 320px minmax(0, 1fr); gap: 24px; }
  .settings-panel form { padding: 20px; }
  .banner-sun { display: none; }
}
@media (max-width: 960px) {
  .workspace { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .settings-panel form { padding: 24px; }
  .sidebar-tip { display: none; }
  .results { margin-top: 0; }
  .field-row { grid-template-columns: 110px minmax(0, 1fr); }
  .date-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .banner-sun { display: block; }
  .header-inner nav { margin-left: 0; gap: 22px; }
  .intro-note { display: none; }
}
@media (max-width: 680px) {
  .header-inner, .page-shell { padding-left: 18px; padding-right: 18px; }
  .header-inner { gap: 12px; }
  .nav-link, .guide-nav { font-size: .875rem; }
  .settings-panel form { padding: 20px; }
  .field-row { grid-template-columns: minmax(0, 1fr); }
  .date-fields { grid-template-columns: minmax(0, 1fr); }
  .budget-control { padding-left: 10px; padding-right: 10px; }
  .field-hint { text-align: left; }
  .primary-button { font-size: .9375rem; }
  .banner-equation { gap: 20px; }
  .banner-equation strong { font-size: 3.5rem; }
  .banner-sun { display: none; }
  .banner-bottom { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .results-heading h2 { font-size: 1.25rem; }
  .period-card-top { align-items: flex-start; }
  .period-metrics { width: 100%; justify-content: flex-end; }
  .calendar-day { height: 40px; }
  .holiday-row { grid-template-columns: 20px minmax(0, 1fr); gap: 4px 12px; }
  .holiday-row input { grid-row: span 2; }
  .holiday-row small { grid-column: 2; margin-left: 0; }
  .guide-nav { white-space: normal; text-align: right; }
}
