*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f6f6f0;color:#253b33;font:15px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #64842c;outline-offset:3px}header,main,footer{width:min(1400px,calc(100% - 80px));margin:auto}header{display:flex;align-items:center;gap:36px;min-height:98px;border-bottom:1px solid #dcded4}.brand{display:flex;align-items:center;font-size:24px;font-weight:750;letter-spacing:-1px}.brand>span:not(.brand-icon){font-weight:400}.brand i{width:7px;height:7px;border-radius:50%;background:#8ba94c;margin:0 0 15px 3px}.brand-icon{background:#253f36;color:#fff;width:37px;height:37px;border-radius:12px;font:italic 800 32px/32px Georgia;text-align:center;margin-right:10px;position:relative}.brand-icon span{position:absolute;color:#d7ef81;font-size:24px;top:-10px;right:2px}nav{display:flex;gap:28px;margin-left:auto;font-size:14px;font-weight:600}nav a:hover,footer a:hover{color:#466422;text-decoration:underline}.language select{background:transparent;border:1px solid #cfd4c7;border-radius:8px;padding:8px;max-width:150px}.hero{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:42px 0 38px}.eyebrow{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;color:#52664d}.hero h1{font-size:clamp(33px,3.9vw,58px);line-height:1.06;font-weight:650;letter-spacing:-2px;margin:14px 0}.hero p:not(.eyebrow){font-size:18px;color:#6c7469;margin:14px 0}.accent{color:#829a3e}.hero-mark{flex-shrink:0;display:grid;grid-template-columns:1fr 1fr;gap:5px;transform:rotate(-6deg);margin-right:20px}.hero-mark>span{font-size:37px;line-height:1;padding:18px 12px;border-radius:12px;background:#e0e8c9;letter-spacing:-2px}.hero-mark>span+span{background:#fff;border:1px solid #dce0d2}.hero-mark small{grid-column:span 2;text-align:center;font-size:8px;letter-spacing:2px;margin-top:7px}.workspace{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px;align-items:start}.panel{background:#fff;border:1px solid #e1e5db;border-radius:18px;padding:24px}.panel-top{display:flex;align-items:center;gap:10px;margin-bottom:22px}.panel-top h2{font-size:17px;line-height:1.3;margin:0}.step{font:12px monospace;color:#6a775d;border:1px solid #dfe5d6;padding:5px;border-radius:6px}label{display:block;font-size:12px;font-weight:650;margin-bottom:15px}input,select{display:block;width:100%;background:#fafbf7;border:1px solid #dbe0d4;border-radius:8px;padding:10px 9px;margin-top:7px;min-width:0}input[type=checkbox]{width:17px;margin:0}.check{display:flex;gap:10px;align-items:center}.fields{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.hint{font-size:11px;color:#70796a;line-height:1.5;margin:8px 0 16px}#custom{font-family:monospace;letter-spacing:3px}#cycle-hint{margin-top:-8px}button{border:1px solid #d9dfd1;background:#fff;border-radius:8px;padding:9px 13px;font-size:13px;font-weight:600}button:hover{border-color:#6b8058;background:#eff3e8}.primary{display:flex;justify-content:space-between;width:100%;background:#253f36;color:#fff;padding:13px}.primary:hover{background:#365a4b;color:#fff}.comparison{border-top:1px solid #e1e5db;padding-top:20px;margin-top:14px}.calendar-area{background:#fff;border:1px solid #e1e5db;border-radius:18px;padding:25px 30px;min-width:0}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.period{display:flex;gap:12px;align-items:center}.period h2{margin:0;font-size:21px;font-weight:600;text-transform:capitalize}.period button{padding:7px 12px}.view{display:flex;background:#f3f5ee;border-radius:8px;padding:3px;gap:3px}.view button{background:none;border-color:transparent}.view button[aria-pressed=true]{background:white;box-shadow:0 1px 5px #253f3610}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:26px 0}.stats>div{border:1px solid #e4e8dc;border-radius:10px;padding:14px 18px;background:#fafbf7}.stats>div:first-child{background:#eaf0dc;border-color:#eaf0dc}.stats strong{font-size:30px;letter-spacing:-1px;display:block;line-height:1.2;font-weight:550}.stats span{display:block;font-size:11px;color:#657057;margin-top:5px}.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;margin-bottom:18px}.legend>span{display:flex;align-items:center;gap:6px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.D{background:#e7efce;color:#365126}.N{background:#e8e8f7;color:#515181}.O{background:#f6f7f2;color:#717769}.V{background:#f9ebd6;color:#805c28}.dot.D{background:#a8bf66}.dot.N{background:#9695bd}.dot.O{background:#cdd2c4}.dot.V{background:#d9b274}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekday{text-align:center;color:#8a9182;font-size:11px;padding-bottom:8px}.day{position:relative;min-width:0;border:1px solid transparent;border-radius:8px;min-height:77px;display:flex;flex-direction:column;align-items:flex-start;padding:11px}.day strong{font-size:22px;font-weight:550;line-height:1.1}.day>span{font-size:10px;margin-top:9px;max-width:100%;overflow:hidden;text-overflow:ellipsis}.day.current{border:2px solid #5d7841;padding:10px}.day small{position:absolute;right:8px;top:5px}.day:hover{filter:brightness(.96)}.partner{position:absolute;height:4px;bottom:3px;left:8px;right:8px;border:1px solid #89937b;border-radius:5px}.actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:23px}.actions button{font-size:11px}.patterns{margin:58px 0}.section-heading h2,.faq h2{font-size:29px;font-weight:550;letter-spacing:-.6px;margin:8px 0 22px}.pattern-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.pattern-link{background:#fff;padding:22px;border:1px solid #dfe4d6;border-radius:12px;transition:transform .15s}.pattern-link:hover{transform:translateY(-3px);border-color:#879b6e}.pattern-link strong{font-size:23px;display:block;font-weight:500}.pattern-link span{font-size:11px;color:#7b8273;display:block;margin-top:9px}.faq{max-width:850px;margin:50px 0 70px}details{border-top:1px solid #d9dfd1;padding:18px 0}summary{cursor:pointer;font-weight:600}details p,.prose p{color:#65715c;line-height:1.8}.prose{max-width:800px;min-height:40vh}footer{border-top:1px solid #d9dfd1;display:flex;gap:24px;align-items:center;padding:26px 0 35px;font-size:12px}footer p{margin-right:auto;color:#7b8472}dialog{border:1px solid #d4ddc9;border-radius:18px;padding:30px;max-width:calc(100vw - 30px);color:#253b33}dialog::backdrop{background:#14291f77}.dialog-close{float:right;border:0;font-size:22px}#edit-options{display:flex;gap:7px;margin-bottom:20px}.year-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 14px}.year-grid h3{font-size:14px;text-transform:capitalize;font-weight:600}.year-grid .calendar-grid{gap:3px}.year-grid .day{min-height:26px;padding:4px;align-items:center;border-radius:4px}.year-grid .day strong{font-size:11px}.year-grid .day>span{display:none}.year-grid .weekday{font-size:8px}.year-grid .day.current{padding:3px}.year-grid .partner{left:2px;right:2px;bottom:0;height:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}
@media(min-width:1450px){.day{min-height:90px}}@media(max-width:1100px){header,main,footer{width:calc(100% - 40px)}.workspace{grid-template-columns:270px minmax(0,1fr);gap:16px}.calendar-area{padding:20px}.panel{padding:20px}.pattern-grid{grid-template-columns:repeat(3,1fr)}.hero-mark{display:none}.day{min-height:65px;padding:8px}.day.current{padding:7px}}@media(max-width:780px){header,main,footer{width:calc(100% - 28px)}header{min-height:78px;gap:12px;flex-wrap:wrap;padding:14px 0}header nav{order:3;flex-basis:100%;justify-content:space-between;gap:14px;font-size:12px}.language{margin:0 0 0 auto}.language select{max-width:125px}.hero{padding:28px 0}.hero h1{letter-spacing:-1px;font-size:36px}.hero .eyebrow{font-size:9px}.hero p:not(.eyebrow){font-size:15px}.workspace{grid-template-columns:1fr}.panel{padding:20px}.panel-top{margin-bottom:16px}#settings{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}#settings .fields,#settings .hint,#settings .primary{grid-column:span 2}.comparison{margin-top:0}.calendar-area{padding:18px 12px}.toolbar{gap:12px}.period{width:100%;justify-content:space-between}.period h2{font-size:20px}.view{width:100%;justify-content:center}.stats{gap:6px;margin:20px 0}.stats>div{padding:11px 9px}.stats strong{font-size:26px}.stats span{font-size:10px}.legend{gap:12px}.calendar-grid{gap:4px}.day{min-height:62px;padding:7px 5px}.day.current{padding:6px 4px}.day strong{font-size:19px}.day>span{font-size:8px}.pattern-grid{grid-template-columns:1fr 1fr}.pattern-link{padding:16px}.pattern-link strong{font-size:20px}.patterns{margin:35px 0}.year-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px}.year-grid .calendar-grid{gap:2px}.year-grid .weekday{font-size:7px}footer{flex-wrap:wrap;gap:15px}footer p{flex-basis:50%}footer .brand{font-size:20px}.faq{margin-bottom:35px}.actions button{flex:1 1 44%;padding:11px 8px}#edit-options{flex-wrap:wrap}}
@media print{body{background:#fff;color:#000}header,footer,.hero,.panel,.patterns,.faq,.actions,.hint,.view,.period button,dialog{display:none!important}main{width:100%}.workspace{display:block}.calendar-area{border:0;padding:0}.day{-webkit-print-color-adjust:exact;print-color-adjust:exact}.year-grid{grid-template-columns:repeat(3,1fr)}.month-card{break-inside:avoid}.year-grid .day{min-height:24px}.stats{margin:10px 0}.legend{margin:10px 0}.toolbar{display:block}.period{justify-content:center}#months:not(.year-grid) .day{min-height:95px}@page{size:A4;margin:12mm}}

.panel>details{border:0;padding:0}.panel-top h2{display:inline}.panel-top{cursor:pointer}.panel>details:not([open]) .panel-top{margin-bottom:0}.pattern-explanation{max-width:900px;margin:40px 0}.pattern-explanation p{line-height:1.8;color:#65715c}.cycle-strip{display:flex;gap:6px;flex-wrap:wrap;padding:0;list-style:none}.cycle-strip li{display:flex;flex-direction:column;padding:12px;border-radius:8px;font-size:11px;min-width:62px}.cycle-strip b{font-size:20px}

