:root{--ink:#26343b;--pink:#fae3e3;--cream:#fffaf4;--mint:#d9ede6;--accent:#b74d69}*{box-sizing:border-box}body{margin:0;background:var(--cream);font:16px/1.55 system-ui,-apple-system,sans-serif;color:var(--ink)}header{padding:20px max(24px,calc((100vw - 1120px)/2));display:flex;justify-content:space-between;align-items:center;gap:18px;background:white;border-bottom:1px solid #f0e6e1;flex-wrap:wrap}.logo{font-size:23px;font-weight:800;color:var(--accent);text-decoration:none}nav{display:flex;gap:20px;flex-wrap:wrap}nav a{color:var(--ink);text-decoration:none;font-size:14px}nav a:hover{color:var(--accent)}main{max-width:1120px;margin:auto;padding:28px 24px 80px}.hero{border-radius:28px;padding:80px 8%;background:linear-gradient(120deg,#fbe0e4,#fff0d9 60%,#e0f2e9);margin:24px 0 64px}.eyebrow{letter-spacing:2px;font-size:12px;font-weight:800;color:var(--accent)}h1{font-size:clamp(38px,6vw,66px);line-height:1.08;max-width:720px;margin:18px 0}h2{font-size:30px}h3{font-size:22px}.hero p{max-width:580px;font-size:18px}.button,button{border:0;border-radius:12px;background:var(--accent);color:white;padding:12px 18px;font:inherit;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}.button:hover,button:hover{filter:brightness(.94)}button.secondary{background:#e8e8e8;color:#26343b}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{background:white;border:1px solid #eee0dc;border-radius:20px;padding:20px;text-decoration:none;color:inherit;box-shadow:0 5px 22px #3720150a}.card:hover{transform:translateY(-3px)}.card span{color:var(--accent);font-weight:700}.art{height:150px;background:linear-gradient(135deg,#fbe5ec,#e1f1eb);border-radius:15px;display:grid;place-items:center;font-size:66px}.note{margin-top:60px;background:var(--mint);border-radius:22px;padding:28px 36px}footer{text-align:center;padding:26px;color:#68747a;border-top:1px solid #e8dfd8}.workspace{display:grid;grid-template-columns:310px minmax(0,1fr);gap:22px;align-items:start}.panel,.preview{background:white;border:1px solid #eee1dc;border-radius:18px;padding:22px}.panel label{display:block;font-size:14px;font-weight:700;margin:15px 0 5px}.panel input,.panel select,.panel textarea{width:100%;border:1px solid #d8d8d8;border-radius:9px;padding:10px;font:inherit}.panel input[type=checkbox]{width:auto}.panel input[type=range]{padding:0}.panel button{margin-top:12px;margin-right:6px}.preview{min-height:400px;overflow:auto}.preview canvas{max-width:100%;height:auto}.help{font-size:13px;color:#69747a}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid #ddd;border-top:1px solid #ddd}.day{min-height:83px;padding:7px;border-right:1px solid #ddd;border-bottom:1px solid #ddd;overflow-wrap:anywhere;font-size:13px}.day b{display:block}.day small{display:block;color:#9b3655;white-space:pre-wrap}.weekday{text-align:center;background:#fce9ed;min-height:35px;font-weight:700}.calendar-title{text-align:center;margin:12px 0 20px}.empty{background:#faf8f6}.year-view{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.mini .day{min-height:30px;font-size:10px;padding:3px}.mini .weekday{min-height:25px}.mini h3{text-align:center;margin:5px}.status{font-size:13px;color:#576b62;margin-top:12px}.svg-preview svg{max-width:100%;height:auto;background:white} @media(max-width:780px){.cards,.workspace,.year-view{grid-template-columns:1fr}.hero{padding:50px 8%}nav{gap:12px}.day{min-height:62px;font-size:11px}}@media print{header,footer,.panel,.page-intro,.no-print{display:none!important}main{padding:0;max-width:none}.workspace{display:block}.preview{border:0;padding:0;overflow:visible}.day{min-height:100px}.year-view{grid-template-columns:repeat(3,1fr)}.year-view .day{min-height:28px}body{background:white}}

/* Calendar personalisation and printable orientation */
body[data-theme="blush"]{--cal-bg:#fff5f7;--cal-soft:#fbe0e9}body[data-theme="garden"]{--cal-bg:#f5faf2;--cal-soft:#deecd9}body[data-theme="ocean"]{--cal-bg:#f0f8fb;--cal-soft:#d9edf5}body[data-theme="sunshine"]{--cal-bg:#fffbec;--cal-soft:#fff0bd}body[data-theme="minimal"]{--cal-bg:#fff;--cal-soft:#f0f0f0}
#output{background:var(--cal-bg,#fff5f7);color:#263b3a;--cal-accent:#bd6585;position:relative}
#output .weekday{background:var(--cal-soft,#fbe0e9);color:var(--cal-accent)}
#output .calendar-title,#output h2{color:var(--cal-accent)}
#output .day{background:#ffffffc9;border-color:#dedbd8}#output .empty{background:#f8f8f8aa}
#output .calendar-notes{text-align:center;font-style:italic;color:var(--cal-accent);margin:20px 0 6px}
.calendar-art{height:45px;text-align:center;font-size:29px;letter-spacing:14px;color:var(--cal-accent)}
body[data-decoration="flowers"] .calendar-art:before{content:'✿ ❀ ✿ ❀ ✿'}
body[data-decoration="stars"] .calendar-art:before{content:'✦ ✧ ★ ✧ ✦'}
body[data-decoration="leaves"] .calendar-art:before{content:'❧ ❦ ❧ ❦ ❧'}
body[data-decoration="none"] .calendar-art{height:0}
body[data-orientation="landscape"] #output{min-width:780px}
body[data-orientation="portrait"] #output{min-width:0}
@media print{
 html,body{margin:0!important;padding:0!important;background:white!important}
 #output{box-sizing:border-box;width:100%!important;min-width:0!important;min-height:0!important;overflow:visible!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
 #output .day{min-height:0;height:21mm;break-inside:avoid}
 body[data-orientation="landscape"] #output .day{height:17mm}
 #output .year-view .day{height:auto;min-height:5mm}
 #output .year-view{gap:7mm}
 #output .mini{break-inside:avoid}
}

/* User-uploaded calendar artwork and typography */
.control-heading{font-size:17px;margin:24px 0 8px;border-top:1px solid #eee;padding-top:16px}
#output{isolation:isolate;font-family:var(--user-font,Arial,sans-serif);color:var(--user-font-colour,#263b3a);font-weight:var(--user-font-weight,400);font-style:var(--user-font-style,normal)}
#output .calendar-title,#output h2{font-size:var(--user-title-size,23pt)}
#output .day{font-size:var(--user-day-size,10pt)}
#output .mini .day{font-size:clamp(6px, .65vw, 10px)}
#output .uploaded-art{position:absolute;pointer-events:none;z-index:-1;opacity:var(--user-image-opacity,.5);background-position:center;background-repeat:no-repeat;background-size:var(--user-image-fit,contain)}
#output[data-image-mode=background] .uploaded-art,#output[data-image-mode=watermark] .uploaded-art{inset:0;background-size:var(--user-image-fit,cover)}
#output[data-image-mode=watermark] .uploaded-art{opacity:calc(var(--user-image-opacity,.5) * .25)}
#output[data-image-mode=banner] .uploaded-art{position:relative;z-index:0;height:125px;width:100%;margin-bottom:12px;background-size:var(--user-image-fit,contain)}
#output[data-image-mode=corner] .uploaded-art{top:8px;right:8px;width:120px;height:120px;background-size:contain}
#output[data-image-mode=background] .day,#output[data-image-mode=watermark] .day{background:#ffffffa8}
@media print{#output .uploaded-art{-webkit-print-color-adjust:exact;print-color-adjust:exact}#output[data-image-mode=banner] .uploaded-art{height:28mm}#output[data-image-mode=corner] .uploaded-art{width:24mm;height:24mm}}
