:root{--ink:#182b39;--paper:#f5f2e9;--orange:#c54322;--line:#d7d5ca;--mint:#c9e1d6}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.6}a{color:inherit}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.4;cursor:default}:focus-visible{outline:3px solid var(--orange);outline-offset:4px}.skip{position:absolute;top:-70px;left:20px;background:white;padding:10px;z-index:3}.skip:focus{top:10px}header,main,footer{max-width:1240px;margin:auto;padding:0 40px}header{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:100px;border-bottom:1px solid var(--line)}.brand{font-size:14px;letter-spacing:.13em;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;gap:10px}.brandmark{background:var(--ink);color:var(--paper);padding:0 10px;font-size:25px}nav{display:flex;gap:24px;font-size:13px}nav a{text-underline-offset:5px}.intro{display:grid;grid-template-columns:1.45fr 1fr;gap:80px;align-items:center;padding:64px 0}.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:700;margin:0 0 20px}h1{font-size:clamp(40px,5.5vw,72px);line-height:1.08;letter-spacing:-.055em;margin:0 0 24px;font-weight:600}h1 em{font-family:Georgia,serif;font-weight:400;color:var(--orange)}.lead{font-size:17px;max-width:540px;color:#495b63}.ticket{background:var(--mint);padding:30px 38px;border-radius:3px;transform:rotate(3deg);box-shadow:8px 10px 0 #182b390a;border-bottom:2px dashed #52776b}.ticket>span{font-size:11px;letter-spacing:.2em}.ticketline{display:flex;align-items:center;gap:18px;margin-top:30px}.ticketline b{border:2px solid var(--ink);border-radius:50%;width:52px;height:52px;text-align:center;font-size:29px;font-family:Georgia,serif}.ticketline i{flex:1;border-top:2px dashed var(--ink)}.ticket p{font-family:Georgia,serif;font-size:22px;margin-bottom:8px}.ticket small{font-size:11px}.workbench{display:grid;grid-template-columns:1fr 1.28fr;border:1px solid var(--line);background:#fffefa}.controls{padding:35px}.controls h2{font-size:27px;letter-spacing:-.04em;margin:0 0 20px}label{display:block;font-size:13px;font-weight:700}input[type=date]{display:block;width:100%;padding:13px 15px;background:white;border:1px solid #9ea9ad;border-radius:2px;margin-top:7px;font-size:19px;color:var(--ink);min-height:50px}.swapline{display:flex;align-items:center;gap:12px;margin:8px 0}.swapline span{flex:1;border-top:1px solid var(--line)}.swapline button{border:0;background:none;font-size:12px;color:var(--ink)}fieldset{border:0;margin:24px 0;padding:0}legend{font-size:12px;font-weight:700;margin-bottom:12px}.radio{display:flex;gap:10px;align-items:start;font-weight:400;margin:12px 0;cursor:pointer}.radio input{accent-color:var(--orange);margin-top:5px}.radio strong,.radio small{display:block}.radio small{font-size:12px;color:#57666c}.primary{display:flex;justify-content:space-between;width:100%;border:0;background:var(--orange);color:white;padding:14px 18px;font-weight:700}.presets-title{font-size:12px;margin:23px 0 8px}.presets{display:flex;flex-wrap:wrap;gap:7px}.presets button{border:1px solid var(--line);padding:5px 9px;background:transparent;font-size:11px}.local{font-size:11px;color:#57666c;margin:20px 0 0}.resultpanel{background:var(--ink);color:var(--paper);padding:35px 40px;display:flex;flex-direction:column}.range{font-size:14px;font-variant-numeric:tabular-nums}.bigresult{display:flex;align-items:baseline;gap:20px;flex-wrap:wrap}.bigresult strong{font-size:clamp(64px,8vw,118px);letter-spacing:-.07em;font-weight:400;line-height:1.2}.bigresult span{font-family:Georgia,serif;font-size:23px;font-style:italic}.weeks{font-size:14px;color:#c9d5d8;border-bottom:1px solid #ffffff30;padding-bottom:25px;margin-top:8px}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}.metrics strong{display:block;font-size:30px;font-weight:400}.metrics span{font-size:12px;color:#c9d5d8}.fine{font-size:11px;color:#586a73}.resultpanel .fine{color:#c9d5d8;margin:15px 0 25px}.explanation{padding-left:15px;border-left:2px solid var(--mint);font-size:13px}.actions{display:flex;gap:20px;margin-top:auto;padding-top:25px;flex-wrap:wrap}.actions button{color:var(--paper);background:none;border:0;border-bottom:1px solid #a6b6bf;padding:5px 0;font-size:12px}#error{background:#ffe0cc;color:#611a10;padding:14px}#notice{font-size:12px;margin:5px 0}.calendar-section{padding:55px 0}.sectionhead{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:25px}h2{font-size:32px;line-height:1.2;letter-spacing:-.04em;margin:0 0 10px}.calendar-nav{display:flex;gap:16px;align-items:center;font-size:13px;min-width:260px;justify-content:space-between}.calendar-nav button{border:1px solid var(--line);background:transparent;width:40px;height:40px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.dayhead{background:var(--paper);font-size:11px;font-weight:bold;text-align:center;padding:10px}.day{background:#fffefa;padding:12px;min-height:65px;position:relative;font-variant-numeric:tabular-nums}.day.weekend{background-image:repeating-linear-gradient(135deg,transparent,transparent 7px,#182b3907 7px,#182b3907 8px)}.day.selected{background-color:var(--mint)}.day.boundary{box-shadow:inset 0 0 0 2px var(--orange)}.day small{display:block;font-size:10px;color:#514536}.day.empty{background:var(--paper)}.legend{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:11px}.legend-dot,.legend-ring{width:12px;height:12px;display:inline-block;background:var(--mint)}.legend-ring{background:transparent;border:2px solid var(--orange);margin-left:10px}.knowledge{border-top:1px solid var(--line);padding:50px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.knowledge p{font-size:13px}.knowledge h2{font-size:30px}.knowledge h3{font-size:17px;line-height:1.3}.number{color:var(--orange);font-family:Georgia,serif;font-size:26px}.note{background:#e9e5d9;padding:24px 30px;margin-bottom:60px;display:flex;gap:35px;align-items:start}.note strong{min-width:180px;font-size:13px}.note p{font-size:12px;margin:0}footer{border-top:1px solid var(--line);padding-top:30px;padding-bottom:35px;display:flex;gap:25px;align-items:center;justify-content:space-between}footer p{font-size:11px}.legal{max-width:800px;margin:60px auto;min-height:65vh}.legal h1{font-size:42px}.legal h2{font-size:24px;margin-top:35px}[hidden]{display:none!important}@media(max-width:850px){header,main,footer{padding-left:22px;padding-right:22px}.intro{gap:35px}.ticket{padding:20px}.workbench{grid-template-columns:1fr 1.1fr}.controls,.resultpanel{padding:25px}.knowledge{grid-template-columns:1fr 1fr}footer{flex-wrap:wrap}}@media(max-width:600px){header{min-height:82px;flex-wrap:wrap;padding-top:18px;padding-bottom:18px;gap:15px}header nav{gap:20px;font-size:11px}.intro{grid-template-columns:1fr;padding:35px 0;gap:25px}.ticket{max-width:300px;transform:rotate(1deg)}.ticketline{margin-top:12px}.ticketline b{width:36px;height:36px;font-size:20px}.ticket p{font-size:18px}.workbench{grid-template-columns:1fr}.resultpanel{min-height:480px}.sectionhead{display:block}.calendar-nav{margin-top:20px;max-width:330px}.day{padding:6px;min-height:56px;font-size:13px}.day small{font-size:9px}.knowledge{grid-template-columns:1fr;gap:15px}.note{display:block}.note p{margin-top:10px}.actions{gap:18px}.bigresult strong{font-size:84px}}@media print{body{background:white;color:black;font-size:11pt}header nav,.controls,.actions,.calendar-nav button,.ticket,.presets,footer nav,.knowledge,.note,.skip{display:none!important}header,main,footer{padding:0;max-width:none}header{min-height:35px}.intro{display:block;padding:20px 0}.intro h1{font-size:30px}.lead{font-size:12px}.workbench{display:block;border:0}.resultpanel{background:white;color:black;padding:15px 0;min-height:0}.resultpanel .fine,.metrics span,.weeks{color:#333}.bigresult strong{font-size:60px}.calendar-section{padding:20px 0;break-inside:avoid}.day{min-height:42px}.resultpanel .eyebrow{display:none}.calendar,.selected{-webkit-print-color-adjust:exact;print-color-adjust:exact}footer{margin-top:20px}.legal{margin:20px 0}}
