:root{--ink:#26392f;--muted:#626f65;--pine:#42634d;--red:#a84e3e;--cream:#f4f0e7;--line:#d6dacf;--paper:#fffefa;--pale:#eef2e9;--serif:Georgia,'Times New Roman',serif;--sans:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--pine);text-underline-offset:3px}button,select{min-height:38px}button{border:1px solid #adb9aa;border-radius:6px;background:#fffefa;padding:8px 12px;cursor:pointer;font-weight:650;font-size:13px}button:hover{background:#e8eee2}button.primary{background:var(--pine);border-color:var(--pine);color:white}button.primary:hover{background:#324e3c}button.quiet{border-color:transparent;background:transparent;text-decoration:underline;text-underline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #bd7151;outline-offset:3px}input[type=checkbox]{accent-color:var(--pine);width:17px;height:17px;vertical-align:middle;flex:none;cursor:pointer}.skip-link{position:absolute;top:-100px;left:16px;background:white;padding:12px;z-index:10}.skip-link:focus{top:12px}.app-header{max-width:1180px;margin:auto;padding:26px 24px 18px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-size:12px;font-weight:800;letter-spacing:.13em}.app-header p{color:var(--muted);margin:4px 0 0}.app-header nav{display:flex;gap:17px;flex-wrap:wrap;font-size:13px}.toolbar{background:#fffdf6;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px max(20px,calc((100vw - 1132px)/2));display:flex;gap:10px 22px;flex-wrap:wrap;align-items:center}.tool-group{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tool-group>label{font-size:12px;color:var(--muted);font-weight:650}.toolbar select{font-size:13px;background:white;border:1px solid #aeb9a8;border-radius:5px;padding:5px 24px 5px 8px;max-width:200px}.save-row{flex-basis:100%;display:flex;gap:20px;align-items:center;font-size:12px;color:var(--muted)}.save-row label{display:flex;align-items:center;gap:7px;white-space:nowrap}.save-row p{margin:0}.action-status{max-width:960px;margin:0 auto;padding:0 24px;color:var(--pine);min-height:0}.action-status:not(:empty){padding-top:12px;padding-bottom:12px}.noscript{margin:18px auto;max-width:800px;padding:16px;background:#fff6d8}main{padding:26px 16px 40px}.page{position:relative;width:210mm;min-height:279mm;max-width:100%;padding:15mm 15mm 19mm;margin:0 auto 28px;background:var(--paper);border:1px solid #e4e1d6;border-radius:3px;box-shadow:0 3px 15px #26392f0a;scroll-margin-top:18px}.page-head,.page-body,.page-foot{max-width:180mm;margin-left:auto;margin-right:auto}.page-head{margin-bottom:6mm}.eyebrow{font-size:9px;font-weight:750;letter-spacing:.14em;color:var(--red);margin:0 0 3mm}.page h2{font-family:var(--serif);font-size:33px;font-weight:normal;line-height:1.1;letter-spacing:-.035em;margin:0 0 3mm}.subhead{color:var(--muted);font-size:13px;margin:0}.page p{margin:0 0 3.5mm}.page h3{font-family:var(--serif);font-weight:normal;font-size:20px;line-height:1.2;letter-spacing:-.015em;margin:6mm 0 3mm}.page .small{font-size:10.5px;line-height:1.45;color:var(--muted)}.page-foot{position:absolute;left:15mm;right:15mm;bottom:8mm;display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:2.5mm;font-size:9px;color:var(--muted)}.two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5mm}.field{display:flex;flex-direction:column;gap:1.5mm;margin:0 0 4.5mm;min-width:0}.field>span:not(.print-value){font-size:11px;font-weight:650;line-height:1.3}.field input,.field textarea,.field select{width:100%;border:1px solid #c9d1c4;border-radius:3px;background:#fcfdf9;padding:7px 8px;min-height:34px;line-height:1.4}.field textarea{resize:vertical;min-height:18mm;max-height:60mm}.field input::placeholder,.field textarea::placeholder{font-size:11px;color:#7c877c}.field input[type=date],.field input[type=time]{padding:5px 8px}.task-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:0 4mm}.note{padding:4mm 5mm;background:var(--pale);border-left:3px solid #7c946d;margin:4mm 0 5mm;border-radius:0 4px 4px 0}.note strong{font-size:12px}.note p{font-size:12px;margin:1.5mm 0 0;line-height:1.5}.print-note{padding-top:1mm}.print-note p{font-size:11px}.simple-list{padding-left:5mm;margin:0}.simple-list li{margin-bottom:2mm;font-size:12px}.contents{font-size:12px;margin:0}.contents>div{display:flex;justify-content:space-between;padding:2mm 0;border-bottom:1px solid var(--line)}.contents dd{margin:0;white-space:nowrap}.cover h2{font-size:50px;color:var(--pine);line-height:.99}.cover .page-head{margin-bottom:4mm}.cover-art{width:100%;height:30mm;margin:1mm 0 5mm}.cover-art svg{width:100%;height:100%}.page .cover-line{font-family:var(--serif);font-size:21px;line-height:1.4;color:var(--red);margin-bottom:4mm}.cover .two-col h3{margin-top:3mm}.planner-table{width:100%;border-collapse:collapse;table-layout:fixed;margin:4mm 0 4mm;font-size:11px}.planner-table th,.planner-table td{border-bottom:1px solid var(--line);padding:2.5mm 2mm;vertical-align:top;text-align:left;overflow-wrap:anywhere}.planner-table thead th{background:#f0f2e9;color:var(--pine);font-size:9px;text-transform:uppercase;letter-spacing:.055em;padding:3mm 2mm;font-weight:750;vertical-align:bottom}.planner-table tbody th{font-weight:550}.planner-table td input:not([type=checkbox]),.planner-table td textarea{width:100%;padding:2px 1px;border:0;border-bottom:1px dotted #b9c5b5;border-radius:0;background:transparent;min-height:25px;min-width:0;font-size:11px}.planner-table td input[type=number]{appearance:textfield;-moz-appearance:textfield}.planner-table input::-webkit-inner-spin-button,.planner-table input::-webkit-outer-spin-button{appearance:none;margin:0}.planner-table input[type=checkbox]{display:block;margin:5px auto 0;width:14px;height:14px}.planner-table tfoot th,.planner-table tfoot td{padding-top:3mm;padding-bottom:3mm;border-top:2px solid #b4c1ab;border-bottom:0;font-weight:750}.planner-table output{display:block;min-height:24px;padding-top:3px;font-size:11px;white-space:nowrap}.budget-table th:first-child{width:36%}.budget-table td{width:21.33%}.result-grid{margin-top:5mm}.result-grid>div{background:#f3f5ee;border-radius:3px;padding:4mm}.result-grid span{display:block;font-size:11px}.result-grid output{display:block;font-family:var(--serif);font-size:23px;margin-top:1mm}.negative{color:#984234;font-weight:750}.inline-action{display:flex;align-items:center;gap:10px;margin:3mm 0}.inline-action button{font-size:11px}.inline-action span{font-size:10px;color:var(--muted)}.gift-table td{height:11mm;vertical-align:middle}.supply-table th:nth-child(1){width:31%}.supply-table th:nth-child(2){width:9%}.supply-table th:nth-child(3){width:13%}.supply-table th:nth-child(4){width:16%}.supply-table th:nth-child(5){width:31%}.supply-table td{height:10mm}.result-line{display:flex;align-items:center;justify-content:space-between;background:#f3f5ee;padding:3mm 4mm;font-size:12px;margin:4mm 0}.result-line output{font-size:18px;font-family:var(--serif)}.host-table th:nth-child(1){width:16%}.host-table th:nth-child(2){width:49%}.host-table th:nth-child(3){width:27%}.host-table th:nth-child(4){width:8%}.host-day-table th:nth-child(1){width:18%}.host-day-table th:nth-child(2){width:47%}.host-day-table th:nth-child(3){width:27%}.host-day-table th:nth-child(4){width:8%}.host-table td input,.host-day-table td input{font-size:10px}.host-table td,.host-day-table td{height:9mm}.menu-table th:nth-child(1){width:30%}.menu-table th:nth-child(2){width:30%}.menu-table th:nth-child(3){width:40%}.menu-table td{height:13mm}.craft-facts{display:grid;grid-template-columns:1fr 1.2fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:3mm 0;gap:5mm;margin-bottom:2mm}.craft-facts span{display:block;text-transform:uppercase;font-size:9px;letter-spacing:.08em;color:var(--muted);margin-bottom:1mm}.craft-facts strong{font-size:12px;font-weight:600}.craft-intro{font-size:12px}.craft-intro h3{margin-top:4mm}.craft-intro ul{padding-left:5mm;margin:0 0 4mm}.craft-intro li{margin-bottom:1.5mm}.craft-steps{list-style:none;counter-reset:step;margin:3mm 0 5mm;padding:0}.craft-steps li{position:relative;counter-increment:step;padding-left:9mm;margin-bottom:4mm;font-size:12px;line-height:1.5}.craft-steps li:before{content:counter(step);position:absolute;left:0;top:.2mm;font-family:var(--serif);font-size:18px;color:var(--red)}.craft-steps strong{font-weight:750}.reuse{font-size:12px}.pattern-caption{font-size:12px;margin-bottom:4mm}.pattern-caption .small{margin-bottom:1mm}.pattern-image{display:block;width:180mm;max-width:100%;height:auto;margin:0 auto 3mm}.pattern-bottom{margin-top:3mm!important}.tags-grid{display:grid;grid-template-columns:repeat(3,56mm);gap:4mm 5mm;margin:5mm 0}.gift-tag{position:relative;width:56mm;height:38mm;padding:5mm 6mm 4mm 4mm;overflow:hidden;background:white}.tag-frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.tag-frame path,.tag-frame circle{fill:none;stroke:#788572;stroke-width:.3}.tag-phrase{font-family:var(--serif);font-size:12px;line-height:1.15;height:10mm;margin:0 0 2mm!important;max-width:40mm}.gift-tag label{display:flex;gap:2mm;align-items:baseline;font-size:9px;margin-bottom:1.3mm;position:relative;max-width:42mm}.gift-tag input{width:100%;min-width:0;border:0;border-bottom:1px solid #b7c2b0;padding:0;background:transparent;font-size:10px;line-height:1.1;height:4.5mm}.tag-note{margin-top:4mm!important}.license-list{font-size:11px;line-height:1.5;padding-left:5mm}.license-list li{margin-bottom:2mm}.page[data-group=license] p{font-size:11px}.page[data-group=license] h3{margin-top:4mm}.sample-details{font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:3mm;margin-top:6mm!important}.sample-steps{font-size:11px;line-height:1.4;margin:0 0 4mm;padding-left:5mm}.sample-steps li{margin-bottom:1.5mm}.sample-tree{margin-bottom:2mm}.sample-license{font-size:10px;line-height:1.5;margin-top:4mm;border-top:1px solid var(--line);padding-top:1mm}.sample-license h3{font-size:15px;margin-top:3mm}.sample-gift-table td{height:10mm}.intro{font-family:var(--serif);font-size:17px;line-height:1.4}.app-footer{text-align:center;font-size:12px;color:var(--muted);max-width:900px;padding:0 20px 30px;margin:auto}.app-footer p{margin:5px 0}.check{display:flex;align-items:flex-start;gap:8px;font-size:12px;margin-bottom:8px}.print-value{display:none}[aria-invalid=true]{border-color:#a34435!important;background:#fff3ef!important}
@media(max-width:820px){.app-header{align-items:flex-start;flex-direction:column}.toolbar{padding:12px 16px}.save-row{align-items:flex-start;flex-direction:column;gap:5px}.page{min-height:0;padding:28px 24px 55px}.page-foot{left:24px;right:24px;bottom:20px}.page h2{font-size:30px}.cover h2{font-size:43px}.page-body{overflow-x:auto}.tags-grid{grid-template-columns:repeat(2,56mm);justify-content:center}.pattern-image{max-width:100%;height:auto}.planner-table{font-size:10px}.planner-table th,.planner-table td{padding:2mm 1mm}.gift-table thead th{font-size:8px}.gift-table{min-width:580px}.host-table,.host-day-table,.supply-table{min-width:560px}.task-grid{grid-template-columns:1fr}.cover-art{height:25mm}}
@media(max-width:520px){body{font-size:13px}.two-col{grid-template-columns:1fr;gap:1mm}.craft-facts{grid-template-columns:1fr;gap:3mm}.page{padding-left:18px;padding-right:18px}.page-foot{left:18px;right:18px}.tags-grid{grid-template-columns:56mm}.tool-group{gap:6px}.toolbar select{max-width:165px}.cover h2{font-size:39px}.page .cover-line{font-size:19px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{
 @page{size:Letter;margin:12mm}
 html,body{margin:0!important;padding:0!important;background:#fff!important;font-size:11px;line-height:1.45;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .screen-only,.skip-link,.noscript{display:none!important}
 main{padding:0!important;margin:0!important}
 .page{width:auto!important;max-width:none!important;min-height:249mm;padding:0 0 11mm!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:white;break-inside:avoid;page-break-inside:avoid;break-after:page;page-break-after:always}
 .page:last-child{break-after:auto;page-break-after:auto}
 .page-head,.page-body{width:180mm;max-width:180mm!important;margin-left:auto;margin-right:auto;overflow:visible!important}
 .page-foot{left:0;right:0;bottom:1mm;width:180mm;max-width:180mm;padding-top:2mm;font-size:8px}
 .page h2{font-size:28px}.cover h2{font-size:44px}.eyebrow{font-size:8px}.subhead{font-size:11px}.page-head{margin-bottom:5mm}.page h3{font-size:17px;margin-top:4mm}.page p{margin-bottom:3mm}.page .small{font-size:9px}.two-col{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5mm}.task-grid{grid-template-columns:1.6fr 1fr 1fr;gap:0 4mm}.field{margin-bottom:3.5mm;gap:1mm}.field>span:not(.print-value){font-size:10px}.field input,.field select,.field textarea{font-size:10px;background:white;min-height:7mm;padding:1mm;border:0;border-bottom:1px solid #bec7b9;border-radius:0}.field textarea{min-height:16mm;max-height:none;resize:none}.print-value{display:block;min-height:7mm;padding:1mm 0;border-bottom:1px solid #bec7b9;white-space:pre-wrap;overflow-wrap:anywhere;font-size:10px;line-height:1.45}.has-print-value{display:none!important}.field textarea+.print-value{min-height:17mm}.note{padding:3mm 4mm;margin:3mm 0 4mm;background:#f1f3eb;break-inside:avoid}.note strong,.note p{font-size:10px}.cover-art{height:28mm;margin-bottom:4mm}.page .cover-line{font-size:19px}.simple-list li,.contents{font-size:10px}.print-note p{font-size:10px}.planner-table{font-size:10px;margin:3mm 0;min-width:0!important}.planner-table thead th{font-size:8px;padding:2mm 1.5mm}.planner-table th,.planner-table td{padding:2mm 1.5mm}.planner-table tr{break-inside:avoid}.planner-table td .print-value{font-size:9px;min-height:6mm;padding:0;border:0}.planner-table td input:not([type=checkbox]){font-size:9px;min-height:6mm;padding:0}.planner-table output{font-size:10px;min-height:5mm;padding:0}.planner-table input[type=checkbox]{width:3.5mm;height:3.5mm;margin:1mm auto 0;appearance:auto}.gift-table td{height:10mm}.budget-table th:first-child{width:36%}.result-grid>div{padding:3mm}.result-grid span{font-size:10px}.result-grid output{font-size:20px}.result-line{font-size:10px;padding:2mm 3mm}.result-line output{font-size:17px}.supply-table td{height:9mm}.host-table td,.host-day-table td{height:8mm}.host-table .print-value,.host-day-table .print-value{font-size:8.5px!important}.menu-table td{height:11mm}.craft-facts{grid-template-columns:1fr 1.2fr;padding:2.5mm 0}.craft-facts span{font-size:8px}.craft-facts strong{font-size:10px}.craft-intro{font-size:10px}.craft-steps{margin:2mm 0 4mm}.craft-steps li{font-size:10.5px;line-height:1.5;margin-bottom:3.5mm;padding-left:8mm}.craft-steps li:before{font-size:16px}.reuse{font-size:10px}.pattern-caption{font-size:10px;margin-bottom:3mm}.pattern-image{width:180mm!important;max-width:180mm!important;height:auto!important;margin-bottom:1mm}.pattern-bottom{font-size:8px!important;margin-top:2mm!important}.tags-grid{grid-template-columns:repeat(3,56mm);gap:4mm 5mm;justify-content:start;margin:4mm 0}.gift-tag{width:56mm;height:38mm;padding:5mm 6mm 4mm 4mm;break-inside:avoid}.gift-tag label{font-size:8px;margin-bottom:1.3mm}.gift-tag .print-value{min-height:4.5mm;padding:0;border-bottom:1px solid #b7c2b0;font-size:9px;width:100%;line-height:1.2;white-space:nowrap;overflow:hidden}.gift-tag .tag-phrase{font-size:11px!important;height:10mm}.license-list{font-size:10px}.page[data-group=license] p{font-size:10px}.page[data-group=license] .field textarea+.print-value{min-height:15mm}.sample-steps{font-size:9px;margin-bottom:3mm}.sample-tree{width:180mm!important}.sample-license{font-size:9px}.sample-license h3{font-size:14px}.sample-details{font-size:10px}.intro{font-size:15px}.negative{color:#26392f}.page[data-group=license] .small{font-size:8px}
 body[data-print-group=planner] .page:not([data-group~=planner]),body[data-print-group=crafts] .page:not([data-group~=crafts]),body[data-print-group=patterns] .page:not([data-group~=patterns]),body[data-print-group=tags] .page:not([data-group~=tags]){display:none!important}
}
/* Print type stays readable at actual paper size, not only when zoomed on screen. */
@media print{
 body{font-size:13px}.page p{font-size:12px}.page .small{font-size:10px}.page h3{font-size:19px}.subhead{font-size:12px!important}.field>span:not(.print-value){font-size:11px}.print-value{font-size:12px}.note strong,.note p{font-size:11.5px}.simple-list li,.contents{font-size:12px}.print-note p{font-size:11.5px}.planner-table{font-size:11px}.planner-table thead th{font-size:9px}.planner-table td .print-value{font-size:11px}.planner-table output{font-size:11px}.host-table .print-value,.host-day-table .print-value{font-size:10px!important}.craft-facts strong{font-size:12px}.craft-facts span{font-size:9px}.craft-intro{font-size:12px}.craft-steps li{font-size:13px;line-height:1.45;margin-bottom:3.5mm}.craft-steps li:before{font-size:18px}.reuse{font-size:12px}.pattern-caption p{font-size:11px}.pattern-caption .small{font-size:10px}.pattern-bottom{font-size:8.5px!important}.license-list{font-size:11.5px}.page[data-group=license] p{font-size:11.5px}.page[data-group=license] .field textarea+.print-value{min-height:13mm}.sample-steps{font-size:11.5px}.sample-details{font-size:10.5px!important}.sample-license p{font-size:10.5px}.intro{font-size:15px!important}body[data-edition=sample] .field textarea+.print-value{min-height:14mm}.tag-note{font-size:10px!important}
}
@media print{.page{padding-bottom:7mm!important}}
