/* calendar.crazyartzone.com - copied from kalendar.crazyartzone.com (same designs .kd-<key>, sizes and print rules), plus the home page parts at the end. */
:root { --ink:#22252e; --muted:#6b7080; --line:#e7e9f0; --bg:#f7f8fc; --card:#fff; --acc:#e0485f; --acc2:#3d6fe0;
	--k-bg:#ffffff; --k-ink:#22252e; --k-head:#22252e; --k-th:#6b7080; --k-hol:#e0485f; --k-holbg:#fdecef; --k-we:#e0485f; --k-line:#eceef3; --k-font:'Quicksand'; --k-tfont:'Quicksand'; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font:16px/1.6 'Quicksand', system-ui, sans-serif; font-weight:500; }
a { color:var(--acc2); text-decoration:none; } a:hover { color:var(--acc); }
h1 { font-size:clamp(1.6rem, 3.4vw, 2.3rem); line-height:1.2; margin:.3em 0 .3em; } h2 { margin:1.4em 0 .5em; }
.top { position:sticky; top:0; z-index:50; background:rgba(255,255,255,.93); backdrop-filter:blur(8px); box-shadow:0 4px 18px rgba(34,37,46,.06); }
.top .in { max-width:1200px; margin:0 auto; padding:8px 14px; display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.logo { font-weight:700; color:var(--ink) !important; margin-right:10px; font-size:17px; } .logo b { color:var(--acc); }
.top nav { display:flex; flex-wrap:wrap; gap:4px; }
.top nav a { padding:6px 12px; border-radius:999px; color:var(--ink); font-weight:600; font-size:14px; }
.top nav a:hover, .top nav a.on { background:var(--acc); color:#fff; }
/* phone: logo + menu on one line, the menu scrolls sideways */
@media (max-width:700px) {
	.top .in { flex-wrap:nowrap; gap:6px; padding:6px 10px; }
	.logo { font-size:15px; margin-right:2px; flex-shrink:0; white-space:nowrap; }
	.top nav { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; mask-image:linear-gradient(90deg, #000 85%, transparent); -webkit-mask-image:linear-gradient(90deg, #000 85%, transparent); }
	.top nav::-webkit-scrollbar { display:none; }
	.top nav a { white-space:nowrap; padding:5px 10px; font-size:13px; }
}
.wrap { max-width:1200px; margin:0 auto; padding:14px; }
.lead { color:var(--muted); max-width:860px; }
.quick { display:flex; gap:8px; flex-wrap:wrap; margin:10px 0; }
.btn { display:inline-flex; align-items:center; gap:6px; font:inherit; font-weight:700; border:0; border-radius:999px; padding:10px 18px; cursor:pointer; background:var(--acc); color:#fff !important; }
.btn.ghost { background:#fff; color:var(--ink) !important; border:2px solid var(--line); }
.count { display:inline-block; background:#fff; border-radius:14px; padding:8px 14px; box-shadow:0 6px 20px rgba(34,37,46,.06); font-weight:600; }
.states { margin:12px 0; display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.states a { background:#fff; border:1px solid var(--line); border-radius:999px; padding:4px 11px; font-size:14px; font-weight:600; }
.ad { margin:14px 0; }
.hint { font-size:13px; color:var(--muted); }
.months a { margin-right:8px; }
footer { text-align:center; color:var(--muted); font-size:13px; padding:28px 14px 60px; }

/* holiday tables */
.tablewrap { overflow-x:auto; background:#fff; border-radius:16px; box-shadow:0 6px 22px rgba(34,37,46,.05); }
table.list { width:100%; border-collapse:collapse; font-size:15px; }
table.list th { text-align:left; background:#f3f4f8; color:var(--muted); font-size:13px; padding:10px 12px; }
table.list td { padding:9px 12px; border-top:1px solid var(--line); vertical-align:top; }
table.list tr.fed td:nth-child(3) { font-weight:700; }
table.list tr.gan td { color:#7a5a00; background:#fffaf0; font-style:italic; }
table.list tr.past td { opacity:.5; }
table.list .all { color:var(--acc); font-weight:700; }
.runs { padding-left:18px; } .runs li { margin:6px 0; } .runs small { color:var(--muted); }

/* options for printable pages */
.opts { display:flex; flex-wrap:wrap; gap:10px 16px; align-items:flex-end; background:#fff; padding:12px 14px; border-radius:16px; box-shadow:0 6px 22px rgba(34,37,46,.05); }
.opts label { display:flex; flex-direction:column; font-size:13px; font-weight:700; gap:4px; }
.opts select { font:inherit; padding:8px 10px; border:2px solid var(--line); border-radius:10px; background:#fff; }
.dpick { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
.dpick .sw { padding:6px 14px; border-radius:999px; border:2px solid var(--line); font-weight:700; font-size:13px; color:var(--ink) !important; background:#fff; }
.dpick .sw.on { border-color:var(--acc2); box-shadow:0 0 0 3px rgba(61,111,224,.18); }
.pager { display:flex; justify-content:space-between; margin:14px 0; font-weight:700; }

/* ===== calendar months ===== */
.yeargrid { display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; align-items:start; }   /* no stretching: every month keeps the same row height */
@media (max-width:980px) { .yeargrid { grid-template-columns:repeat(3, 1fr); } }
@media (max-width:700px) { .yeargrid { grid-template-columns:repeat(2, 1fr); } }
@media (max-width:440px) { .yeargrid { grid-template-columns:1fr; } }
table.mon { width:100%; border-collapse:collapse; background:var(--k-bg); color:var(--k-ink); border-radius:12px; overflow:hidden; font-family:var(--k-font), sans-serif; }
table.mon caption { font-family:var(--k-tfont), sans-serif; font-weight:700; font-size:calc(16px * var(--cap-k, 1)); padding:6px 0 4px; text-align:left; color:var(--k-head); }
table.mon caption a { color:inherit; }
table.mon th { font-size:11px; color:var(--k-th); font-weight:700; padding:3px 0; text-align:center; }
table.mon th.we { color:var(--k-we); }
table.mon td { text-align:center; font-size:13px; height:30px; padding:0; border-top:1px solid var(--k-line); position:relative; }
table.mon caption { height:30px; } table.mon th { height:22px; }
table.mon td b { font-weight:600; }
table.mon td.we { color:var(--k-we); }
table.mon td.hol b { display:inline-block; min-width:1.9em; border-radius:999px; background:var(--k-hol); color:#fff; }
/* school holidays: soft shading behind the day (holiday pill stays on top) */
table.mon td.sch { background:var(--k-sch, #e6f2ff); }
table.mon.big td.sch small.s { color:var(--k-schink, #2f6fb3); font-weight:600; }
.sheet-list.sch b { color:var(--k-schink, #2f6fb3); }
.lg { float:left; display:flex; gap:6px; align-items:center; }
.lg i { display:inline-block; width:11px; height:11px; border-radius:3px; margin-left:8px; }
.lg-hol { background:var(--k-hol); } .lg-sch { background:var(--k-sch, #e6f2ff); box-shadow:inset 0 0 0 1px rgba(0,0,0,.08); }
.twocol { display:grid; grid-template-columns:1fr 1fr; gap:18px; } @media (max-width:800px) { .twocol { grid-template-columns:1fr; } }
/* big month */
table.mon.big { table-layout:fixed; }
table.mon.big caption { display:none; }
table.mon.big th { font-size:13px; padding:8px 0; }
table.mon.big td { height:92px; vertical-align:top; text-align:left; padding:6px 8px; border:1px solid var(--k-line); }
table.mon.big td b { font-size:22px; font-weight:700; }
table.mon.big td.hol { background:var(--k-holbg); }
table.mon.big td.hol b { background:none; color:var(--k-hol); min-width:0; }
table.mon.big td i { position:absolute; right:7px; top:7px; font-size:11px; font-style:normal; color:var(--k-th); }
table.mon.big td small { display:block; font-size:10.5px; line-height:1.25; color:var(--k-hol); font-weight:700; margin-top:3px; }
@media (max-width:640px) { table.mon.big td { height:64px; padding:3px; } table.mon.big td b { font-size:15px; } table.mon.big td small { display:none; } table.mon.big td i { display:none; } }

/* the printable sheet */
.sheet { background:var(--k-bg); color:var(--k-ink); border-radius:18px; padding:22px 24px; margin:16px 0; box-shadow:0 10px 34px rgba(34,37,46,.08); position:relative; overflow:hidden; }
.sheet-head { display:flex; justify-content:space-between; align-items:baseline; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.sheet-title { font-family:var(--k-tfont), sans-serif; font-size:44px; font-weight:700; color:var(--k-head); line-height:1; }
.sheet-sub { color:var(--k-th); font-weight:600; }
.sheet .yeargrid { gap:12px 16px; }
.sheet-list { display:flex; flex-wrap:wrap; gap:4px 16px; margin-top:12px; font-size:12px; }
.sheet-list b { color:var(--k-hol); }
.sheet-foot { text-align:right; font-size:11px; color:var(--k-th); margin-top:8px; }

/* designs */
.kd-pastel  { --k-bg:linear-gradient(140deg, #fff5f8, #f2f6ff 55%, #f1fbf6); --k-ink:#3b3550; --k-head:#d0578a; --k-th:#8a84a3; --k-hol:#d0578a; --k-holbg:#ffe6ef; --k-we:#7a8ee8; --k-line:#ece6f2; --k-tfont:'Fredoka'; }
.kd-bunga   { --k-bg:#fffaf7; --k-ink:#4b3a3f; --k-head:#b94b6d; --k-th:#a08a90; --k-hol:#c2507a; --k-holbg:#fde8ee; --k-we:#c2507a; --k-line:#f3e4e8; --k-tfont:'Playfair Display'; }
.kd-bunga .sheet::before, .kd-bunga .sheet::after { content:"✿"; position:absolute; font-size:120px; color:#f6c9d7; opacity:.55; line-height:1; }
.kd-bunga .sheet::before { top:-62px; right:-18px; }
.kd-bunga .sheet-head, .kd-bunga .yeargrid, .kd-bunga table.mon { position:relative; z-index:1; } .kd-bunga .sheet::after { bottom:-40px; left:6px; transform:rotate(20deg); }
.kd-islamik { --k-bg:linear-gradient(160deg, #f6fbf7, #e8f3ec); --k-ink:#22392d; --k-head:#1d6b47; --k-th:#5d7d6b; --k-hol:#b8892a; --k-holbg:#fbf3dc; --k-we:#1d6b47; --k-line:#d8e8de; --k-tfont:'Amiri'; }
.kd-islamik .sheet { border:3px double #c9a24a; }
.kd-kraf    { --k-bg:#f8f3ec; --k-ink:#3a2e2a; --k-head:#d9577b; --k-th:#7d6d66; --k-hol:#d9577b; --k-holbg:#fbe3ea; --k-we:#6fa58f; --k-line:#ebdfd2; --k-tfont:'Fredoka'; }
.kd-kraf .sheet { background-image:repeating-linear-gradient(0deg, rgba(120,90,60,.04) 0 1px, transparent 1px 4px), repeating-linear-gradient(90deg, rgba(120,90,60,.04) 0 1px, transparent 1px 4px); outline:2px dashed rgba(217,87,123,.35); outline-offset:-10px; }
.kd-moden   { --k-bg:#1d2030; --k-ink:#e9ebf5; --k-head:#ffffff; --k-th:#9aa0bd; --k-hol:#ff6b8b; --k-holbg:#3a2635; --k-we:#7ea2ff; --k-line:#2d3146; }
.kd-pastel .sheet, .kd-islamik .sheet { background:var(--k-bg); }
.sw-minimal { } .sw-pastel { background:linear-gradient(140deg, #fff0f5, #eaf0ff) !important; } .sw-bunga { background:#fff1f5 !important; }
.sw-islamik { background:#e8f3ec !important; } .sw-kraf { background:#f8f3ec !important; } .sw-moden { background:#1d2030 !important; color:#fff !important; }

/* ===== print: just the sheet, A4 landscape ===== */
@media print {
	@page { size:A4 landscape; margin:8mm; }
	body { background:#fff !important; }
	.noprint, .top, footer, .ad, ins, iframe, .adsbygoogle, [class*="google-auto"] { display:none !important; }
	.wrap { padding:0; max-width:none; }
	.sheet { box-shadow:none; border-radius:0; margin:0; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
	.sheet * { -webkit-print-color-adjust:exact; print-color-adjust:exact; }
	.sz-l .sheet { padding:6mm 7mm; min-height:190mm; }
	.sz-l .sheet-year .yeargrid { grid-template-columns:repeat(4, 1fr) !important; gap:6px 12px; }
	.sz-l .sheet-year table.mon caption { font-size:calc(13px * var(--cap-k, 1)); padding:2px 0; }
	.sz-l .sheet-year table.mon th { font-size:9px; padding:1px 0; }
	.sz-l .sheet-year table.mon td { font-size:10px; height:5mm; padding:0; }
	.sz-l .sheet-year table.mon caption { height:6mm; } .sz-l .sheet-year table.mon th { height:4mm; }
	.sz-l .sheet-title { font-size:34px; }
	.sz-l .sheet-month table.mon.big td { height:24mm; }
	.sz-l .sheet-list { font-size:9px; }
	.sz-p .sheet { margin:0 auto; max-width:none; }
	.sz-hp .sheet { margin:0 auto; width:105mm; }
}

/* ===== output buttons, sizes, own photo ===== */
.btn.alt { background:var(--acc2); } .btn.alt2 { background:#6fa58f; }
.btn[disabled] { opacity:.6; }
[hidden] { display:none !important; }
.out { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:6px 0 4px; }
.out .filebtn { cursor:pointer; }
.out .dim { display:inline-flex; gap:6px; align-items:center; font-size:13px; font-weight:700; }
/* one tidy options panel: selects + size in a row, design swatches, then the actions */
.opts .ticks { display:flex; flex-direction:column; gap:3px; justify-content:center; align-self:center; }
.opts label.tick { flex-direction:row; align-items:center; gap:7px; font-weight:600; font-size:14px; cursor:pointer; }
.opts label.tick input { width:17px; height:17px; accent-color:var(--acc2); margin:0; cursor:pointer; }
.opts label.tick.off { opacity:.45; cursor:not-allowed; }
.opts .lbl { display:flex; flex-direction:column; font-size:13px; font-weight:700; gap:4px; }
.opts .dsg { flex-basis:100%; flex-direction:row; flex-wrap:wrap; align-items:center; gap:6px 10px; font-weight:600; }
.opts .dsg b { min-width:9em; }
.seg { display:inline-flex; border:2px solid var(--line); border-radius:10px; overflow:hidden; background:#fff; }
.seg a { padding:7px 12px; font-size:14px; font-weight:700; color:var(--ink) !important; border-left:1px solid var(--line); white-space:nowrap; }
.seg a:first-child { border-left:0; } .seg a.on { background:var(--acc2); color:#fff !important; }
.swatches { display:flex; flex-wrap:wrap; gap:7px; }
.swc { width:28px; height:28px; border-radius:50%; border:2px solid #fff; box-shadow:0 0 0 1px #d5d8e2; background:#fff; transition:transform .12s; }
.swc:hover { transform:scale(1.15); } .swc.on { box-shadow:0 0 0 2px var(--acc2); transform:scale(1.12); }
.swc-pastel { background:linear-gradient(135deg, #ffd6e5, #d9e4ff); } .swc-bunga { background:radial-gradient(circle, #fff 25%, #f6a9c1 27%); }
.swc-islamik { background:linear-gradient(135deg, #1d6b47 55%, #c9a24a 55%); } .swc-kraf { background:linear-gradient(135deg, #f8f3ec 50%, #d9577b 50%); }
.swc-moden { background:#1d2030; } .swc-tadika { background:linear-gradient(135deg, #ffd166, #ff6b6b); }
.swc-rendah { background:linear-gradient(90deg, #fffef8 30%, #f4a6a6 30%, #f4a6a6 40%, #dce8f7 40%); } .swc-menengah { background:#2b4a3c; box-shadow:0 0 0 2px #9a6a3c; }
.swc-kolej { background:linear-gradient(135deg, #1f2f5a 55%, #b08d3c 55%); } .swc-hitech { background:linear-gradient(135deg, #5b4bff, #00c2e0); }
.swc-scifi { background:radial-gradient(circle at 35% 35%, #7df9ff 0 18%, #1d1450 20%); } .swc-swirl { background:linear-gradient(135deg, #ffb3d9, #b9b0ff, #9fe3cf); }
.opts .actions { flex-basis:100%; display:flex; flex-wrap:wrap; gap:8px; align-items:center; border-top:1px solid var(--line); padding-top:10px; }
.opts .actions .btn { padding:8px 16px; font-size:14px; }
.opts .actions .btn.ghost { border-width:1.5px; }
.lnk { font:inherit; font-size:14px; font-weight:700; color:var(--acc2) !important; background:none; border:0; cursor:pointer; padding:4px 6px; margin-left:auto; }
.lnk + .dim, #b-nophoto { margin-left:0; }
.opts .actions .dim { display:inline-flex; flex-direction:row; gap:6px; align-items:center; font-size:13px; }
.share { display:flex; flex-wrap:wrap; gap:6px; align-items:center; justify-content:center; margin:6px 0 14px; font-size:14px; color:var(--muted); }
.share .sh { font:inherit; font-size:13px; font-weight:700; padding:5px 12px; border-radius:999px; border:0; cursor:pointer; color:#fff !important; background:#6b7080; }
.share .sh-wa { background:#25d366; } .share .sh-fb { background:#1877f2; } .share .sh-tg { background:#229ed9; } .share .sh-pin { background:#e60023; }
.sizes { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:0 0 12px; font-size:14px; }
.sizes .sz { padding:6px 14px; border-radius:999px; border:2px solid var(--line); font-weight:700; font-size:13px; color:var(--ink) !important; background:#fff; }
.sizes .sz.on { border-color:var(--acc2); box-shadow:0 0 0 3px rgba(61,111,224,.18); }

/* A4 portrait and phone wallpaper: the sheet keeps its page shape at any screen width (sizes in cqw) */
.sz-p .sheet, .sz-hp .sheet { container-type:inline-size; margin:16px auto; }
/* padding sits on .sheet-in: cqw on the container itself would measure the page, not the sheet */
.sz-p .sheet, .sz-hp .sheet { padding:0; }
/* page shape as a MIN height on .sheet-in (cqw = the sheet width): longer content makes the page taller instead of being cut off */
.sz-p .sheet { max-width:794px; } .sz-p .sheet-in { padding:3.8cqw 4.5cqw; min-height:141.42cqw; }
.sz-hp .sheet { width:min(400px, 100%); border-radius:22px; } .sz-hp .sheet-in { padding:24cqw 5cqw 4cqw; min-height:177.78cqw; }
.sz-hp .sheet-year .sheet-in { padding-top:14cqw; } .sz-hp .sheet-month .sheet-in { padding-top:34cqw; }
.kd-bunga .sheet-in { position:relative; z-index:1; }
.sz-p .sheet-head, .sz-hp .sheet-head { margin-bottom:2.5cqw; gap:1cqw; }
.sz-p .sheet-title { font-size:7.5cqw; } .sz-p .sheet-sub { font-size:1.9cqw; }
.sz-hp .sheet-title { font-size:9cqw; } .sz-hp .sheet-sub { font-size:2.6cqw; }
.sz-hp .sheet .yeargrid { grid-template-columns:repeat(3, 1fr) !important; }
.sz-p .sheet .yeargrid { grid-template-columns:repeat(4, 1fr) !important; }   /* 4 x 3 months: the year + both holiday lists fit one A4 */
.sz-p .sheet .yeargrid { gap:2.6cqw 3cqw; } .sz-hp .sheet .yeargrid { gap:2.4cqw 3.4cqw; }
.sz-p table.mon caption { font-size:calc(2.3cqw * var(--cap-k, 1)); height:3.6cqw; padding:.3cqw 0; }
.sz-p table.mon th { font-size:1.3cqw; height:2.6cqw; padding:0; }
.sz-p table.mon td { font-size:1.75cqw; height:3cqw; }
.sz-hp table.mon caption { font-size:calc(3.4cqw * var(--cap-k, 1)); height:5cqw; padding:.4cqw 0; }
.sz-hp table.mon th { font-size:2cqw; height:3.2cqw; padding:0; }
.sz-hp table.mon td { font-size:2.4cqw; height:3.2cqw; }
.sz-p .sheet-list { font-size:1.4cqw; gap:.4cqw 2cqw; margin-top:2cqw; }
.sz-hp .sheet-list { font-size:2.5cqw; gap:.6cqw 3cqw; margin-top:3cqw; }
.sz-hp .sheet-year .sheet-list { display:none; }   /* a whole year of holidays does not fit on a phone screen */
.sz-p .sheet-foot { font-size:1.4cqw; margin-top:1.4cqw; } .sz-hp .sheet-foot { font-size:2.2cqw; margin-top:2cqw; }
.sz-p .lg i, .sz-hp .lg i { width:1.6cqw; height:1.6cqw; }
/* big month in portrait / wallpaper */
.sz-p table.mon.big th { font-size:1.9cqw; padding:1cqw 0; height:auto; }
.sz-p table.mon.big td { height:15.5cqw; padding:.8cqw 1cqw; }
.sz-p table.mon.big td b { font-size:3.4cqw; }
.sz-p table.mon.big td i { display:block; font-size:1.4cqw; right:1cqw; top:1cqw; }
.sz-p table.mon.big td small { display:block; font-size:1.45cqw; margin-top:.4cqw; }
.sz-hp table.mon.big th { font-size:2.6cqw; padding:1.4cqw 0; height:auto; }
.sz-hp table.mon.big td { height:11cqw; padding:1cqw 1.2cqw; }
.sz-hp table.mon.big td b { font-size:4.4cqw; }
.sz-hp table.mon.big td i { display:block; font-size:1.9cqw; right:1cqw; top:1cqw; }
.sz-hp table.mon.big td small { display:none; }
.sz-hp.kd-bunga .sheet::before { font-size:30cqw; top:-6cqw; }
/* the image / PDF copy: always the full page width with the desktop layout */
.exporting .sheet { margin:0 !important; border-radius:0 !important; box-shadow:none !important; }
.exporting.sz-l .sheet { width:1123px; max-width:none; min-height:794px; }
.exporting.sz-l .sheet-year .yeargrid { grid-template-columns:repeat(4, 1fr) !important; gap:8px 18px; }
.exporting.sz-l .sheet-year table.mon caption { font-size:calc(16px * var(--cap-k, 1)); height:24px; padding:2px 0; }
.exporting.sz-l .sheet-year table.mon th { font-size:11px; height:16px; padding:0; }
.exporting.sz-l .sheet-year table.mon td { font-size:13px; height:21px; }
.exporting.sz-l .sheet-month table.mon.big td { height:86px; }
.exporting.sz-l .sheet-title { font-size:40px; } .exporting.sz-l .sheet-list { font-size:11px; }
.exporting.sz-p .sheet { width:794px; max-width:none; }
.exporting.sz-hp .sheet { width:400px; }

/* own photo as the background: darkened, the months sit on frosted panels */
.sheet.photo { background:linear-gradient(rgba(0,0,0,var(--ov, .25)), rgba(0,0,0,var(--ov, .25))), var(--photo) center / cover no-repeat !important; outline:0 !important; border:0 !important; }
.sheet.photo::before, .sheet.photo::after { display:none !important; }
.sheet.photo .sheet-title, .sheet.photo .sheet-sub, .sheet.photo .sheet-foot, .sheet.photo table.mon caption, .sheet.photo table.mon caption a { color:#fff; text-shadow:0 1px 6px rgba(0,0,0,.5); }
/* date panels: the design's own panel colour, see-through by the "Ketelusan kotak tarikh" slider (--pa = opacity) */
.sheet.photo table.mon, .sheet.photo .sheet-list { background:rgba(var(--k-prgb, 255, 255, 255), var(--pa, .86)); }
.sheet.photo .sheet-list { border-radius:10px; padding:1.2em 1.4em; }
.kd-moden { --k-prgb:29, 32, 48; } .kd-menengah { --k-prgb:43, 74, 60; } .kd-kraf { --k-prgb:248, 243, 236; } .kd-kolej { --k-prgb:251, 248, 241; }

/* school-holiday shade per design */
.kd-pastel { --k-sch:#e6eeff; } .kd-bunga { --k-sch:#f1ecfa; --k-schink:#7a5aa8; } .kd-islamik { --k-sch:#fbf3dc; --k-schink:#8a6a1e; }
.kd-kraf { --k-sch:#e3f0ea; --k-schink:#3f7a63; } .kd-moden { --k-sch:#26304d; --k-schink:#8fb4ff; }

/* the dark design's button needs light text */
.dpick .sw.sw-moden { color:#fff !important; border-color:#1d2030; }

/* ===== school designs: pre-school, primary, secondary, college =====
   Pictures: <img> in .art (includes/art.php), sized in % of the sheet so every page size works; the content sits above it. */
.sheet-in { position:relative; z-index:1; }
.sheet .art { position:absolute; inset:0; pointer-events:none; z-index:0; }
.sheet .art img { position:absolute; height:auto; display:block; }
.sz-hp .art { --art-k:1.7; } .sz-p .art { --art-k:1.15; }
.sheet.photo .art { display:none; }
.kd-tadika .sheet-head, .kd-rendah .sheet-head, .kd-menengah .sheet-head, .kd-kolej .sheet-head, .kd-hitech .sheet-head, .kd-scifi .sheet-head { padding-right:13%; }
.kd-tadika .sheet-foot, .kd-rendah .sheet-foot, .kd-menengah .sheet-foot, .kd-kolej .sheet-foot,
.kd-tadika .sheet-list, .kd-rendah .sheet-list, .kd-menengah .sheet-list, .kd-kolej .sheet-list,
.kd-hitech .sheet-foot, .kd-hitech .sheet-list, .kd-scifi .sheet-foot, .kd-scifi .sheet-list { margin-right:17%; }

/* 🧸 Tadika Ceria: bright, round, cartoons (sun, star, rainbow, teddy bear, balloon) */
.kd-tadika { --k-bg:#fffdf3; --k-ink:#3d3a4d; --k-head:#ff6b6b; --k-th:#8a86a0; --k-hol:#ff6b6b; --k-holbg:#ffe3e3; --k-we:#2fa8d8; --k-line:#f3ecd9; --k-tfont:'Fredoka'; --k-font:'Fredoka'; --k-sch:#fff0bf; --k-schink:#c98a00; }
.kd-tadika .sheet { border:4px solid #ffd6e0; }
.kd-tadika .sheet-foot .lg { margin-left:4%; }
.kd-tadika table.mon { border-radius:14px; }
.kd-tadika .yeargrid table.mon:nth-child(6n+1) caption { color:#ff6b6b; } .kd-tadika .yeargrid table.mon:nth-child(6n+2) caption { color:#f4a261; }
.kd-tadika .yeargrid table.mon:nth-child(6n+3) caption { color:#2bb673; } .kd-tadika .yeargrid table.mon:nth-child(6n+4) caption { color:#2fa8d8; }
.kd-tadika .yeargrid table.mon:nth-child(6n+5) caption { color:#9b7bff; } .kd-tadika .yeargrid table.mon:nth-child(6n) caption { color:#ff7bb0; }

/* ✏️ Pensel Warna (primary school): exercise-book page, coloured pencils, an apple for the teacher */
.kd-rendah { --k-bg:transparent; --k-ink:#33384a; --k-head:#e2574c; --k-th:#7c8296; --k-hol:#e2574c; --k-holbg:#fde4e1; --k-we:#2f7fd1; --k-line:#e3ebf6; --k-tfont:'Patrick Hand'; --k-sch:#e1f3e6; --k-schink:#2f8a55; }
.kd-rendah .sheet { background-color:#fffef8; background-image:linear-gradient(90deg, transparent 3.2%, #f4a6a6 3.2%, #f4a6a6 3.45%, transparent 3.45%), linear-gradient(180deg, transparent 27px, #dce8f7 27px); background-size:100% 100%, 100% 28px; background-repeat:no-repeat, repeat; }   /* tiled lines: html2canvas does not draw repeating gradients */
.kd-rendah table.mon { background:rgba(255,255,255,.75); }
.kd-rendah .sheet-title { letter-spacing:.02em; }
.kd-rendah .yeargrid table.mon:nth-child(4n+1) caption { color:#e2574c; } .kd-rendah .yeargrid table.mon:nth-child(4n+2) caption { color:#2f7fd1; }
.kd-rendah .yeargrid table.mon:nth-child(4n+3) caption { color:#2f8a55; } .kd-rendah .yeargrid table.mon:nth-child(4n) caption { color:#d98a00; }

/* 🧪 Papan Kapur (secondary school): chalkboard in a wooden frame, chalk drawings of an atom and a formula */
.kd-menengah { --k-bg:transparent; --k-ink:#eef3ea; --k-head:#ffffff; --k-th:#b9cdbf; --k-hol:#ffd166; --k-holbg:rgba(255,209,102,.16); --k-we:#9bd3ff; --k-line:rgba(255,255,255,.14); --k-tfont:'Patrick Hand'; --k-sch:rgba(155,211,255,.2); --k-schink:#9bd3ff; }
.kd-menengah .sheet { background:radial-gradient(ellipse at 30% 20%, #3a6150, #2b4a3c 60%, #243f33); border:10px solid #9a6a3c; }
.kd-menengah table.mon td.hol b { color:#2b4a3c; }
.kd-menengah .sheet-sub, .kd-menengah .sheet-foot { color:#cfe0d4; }

/* 🎓 Kampus Klasik (college / university): cream paper, navy and gold, mortarboard and laurel */
.kd-kolej { --k-bg:#fbf8f1; --k-ink:#22263a; --k-head:#1f2f5a; --k-th:#6d7591; --k-hol:#b08d3c; --k-holbg:#f5ecd6; --k-we:#1f2f5a; --k-line:#e6dfcd; --k-tfont:'Cinzel'; --k-sch:#e7ecf6; --k-schink:#1f2f5a; }
.kd-kolej .sheet { border:6px double #1f2f5a; }
.kd-kolej .sheet-title { letter-spacing:.04em; }
.kd-kolej table.mon caption { border-bottom:1px solid #d9c9a0; }

/* wallpaper: pictures a little bigger (the top of a phone screen is free) */
.sz-hp.kd-rendah .sheet { background-image:linear-gradient(90deg, transparent 6%, #f4a6a6 6%, #f4a6a6 6.5%, transparent 6.5%), linear-gradient(180deg, transparent 19px, #dce8f7 19px); background-size:100% 100%, 100% 20px; background-repeat:no-repeat, repeat; }

.sw-tadika { background:linear-gradient(135deg, #fff3b0, #ffd6e0) !important; } .sw-rendah { background:repeating-linear-gradient(180deg, #fffef8 0 7px, #dce8f7 7px 8px) !important; }
/* 🎧 Kampus Hi-Tech: clean grid paper, violet and cyan, Space Grotesk; phone, tablet + pen, headphones */
.kd-hitech { --k-bg:rgba(255,255,255,.88); --k-ink:#1c2133; --k-head:#5b4bff; --k-th:#7a8199; --k-hol:#ff4d8d; --k-holbg:#ffe4ef; --k-we:#00a6c7; --k-line:#e3e7f0; --k-tfont:'Space Grotesk'; --k-sch:#dff6fa; --k-schink:#00809a; }
.kd-hitech .sheet { background-color:#f5f7fb; background-image:linear-gradient(180deg, transparent 23px, #e6eaf3 23px), linear-gradient(90deg, transparent 23px, #e6eaf3 23px); background-size:24px 24px, 24px 24px; }
.kd-hitech .sheet-title { letter-spacing:-.02em; }
.kd-hitech table.mon { border-radius:10px; box-shadow:0 0 0 1px #e3e7f0; }

/* 🚀 Galaksi Sci-Fi: deep space, neon cyan and magenta, Orbitron; stars, ringed planet, UFO, rocket */
.kd-scifi { --k-bg:rgba(20,22,60,.55); --k-ink:#e6e9ff; --k-head:#7df9ff; --k-th:#9aa3d9; --k-hol:#ff4fd8; --k-holbg:rgba(255,79,216,.2); --k-we:#7df9ff; --k-line:rgba(125,249,255,.14); --k-tfont:'Orbitron'; --k-sch:rgba(125,249,255,.14); --k-schink:#7df9ff; --k-prgb:20, 22, 60; }
.kd-scifi .sheet { background:linear-gradient(160deg, #0b0d2b, #1d1450 55%, #3a1659); }
.kd-scifi .sheet-title { text-shadow:0 0 14px rgba(125,249,255,.7); }
.kd-scifi .sheet-sub, .kd-scifi .sheet-foot { color:#b9c1f0; }
.kd-scifi table.mon caption { font-weight:600; letter-spacing:.02em; }

/* 🌀 Pusaran Warna: soft pastel swirls, Pacifico titles */
.kd-swirl { --k-bg:rgba(255,250,253,.78); --k-ink:#4a3f5c; --k-head:#c45bb0; --k-th:#9a8fb0; --k-hol:#ff6fae; --k-holbg:#ffe3f0; --k-we:#8a7bff; --k-line:#f1e6f3; --k-tfont:'Pacifico'; --k-sch:#eceaff; --k-schink:#6a5cff; }
.kd-swirl .sheet { background:linear-gradient(135deg, #fff6fb, #f6f3ff 50%, #f0fbf7); }
.kd-swirl table.mon caption { font-weight:400; }
.kd-swirl .sheet-title { font-weight:400; }

.sw-hitech { background:#f5f7fb !important; color:#5b4bff !important; } .dpick .sw.sw-scifi { background:linear-gradient(135deg, #0b0d2b, #3a1659) !important; color:#7df9ff !important; border-color:#1d1450; }
.sw-swirl { background:linear-gradient(135deg, #ffe3f0, #eceaff, #dff6ee) !important; }
.dpick .sw.sw-menengah { background:#2b4a3c !important; color:#fff !important; border-color:#9a6a3c; } .dpick .sw.sw-kolej { background:#fbf8f1 !important; color:#1f2f5a !important; border-color:#1f2f5a; }

/* A4 portrait without the holiday lists: room for the classic 3 x 4 months, bigger */
.sz-p .sheet-year.nolist .yeargrid { grid-template-columns:repeat(3, 1fr) !important; gap:3cqw 4cqw; }
.sz-p .sheet-year.nolist table.mon caption { font-size:calc(2.7cqw * var(--cap-k, 1)); height:4.6cqw; }
.sz-p .sheet-year.nolist table.mon th { font-size:1.6cqw; height:3cqw; }
.sz-p .sheet-year.nolist table.mon td { font-size:2.1cqw; height:3.4cqw; }

/* wide title fonts: smaller month names so 'September 2026' fits; wallpaper year page: no bottom pictures (the months fill it) */
.kd-scifi, .kd-kolej { --cap-k:.74; } .kd-swirl, .kd-hitech { --cap-k:.85; }
.sz-hp .sheet-year .art img.b { display:none; }

/* ===== calendar.crazyartzone.com: home page ===== */
.yearjump { display:flex; flex-wrap:wrap; gap:10px; align-items:center; background:#fff; padding:12px 14px; border-radius:16px; box-shadow:0 6px 22px rgba(34,37,46,.05); margin:10px 0; }
.yearjump label { font-weight:700; font-size:14px; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.yearjump input { font:inherit; width:7em; padding:8px 10px; border:2px solid var(--line); border-radius:10px; }
.yearlist { display:grid; grid-template-columns:repeat(auto-fill, minmax(78px, 1fr)); gap:8px; margin:12px 0 20px; }
.yearlist a { text-align:center; padding:8px 0; background:#fff; border:1px solid var(--line); border-radius:12px; font-weight:700; color:var(--ink) !important; }
.yearlist a:hover, .yearlist a.on { background:var(--acc); color:#fff !important; border-color:var(--acc); }
.howto li { margin:6px 0; }
.months a.on { font-weight:700; text-decoration:underline; }
.facts { background:#fff; border-radius:16px; padding:4px 18px 10px; box-shadow:0 6px 22px rgba(34,37,46,.05); margin:16px 0; }

/* A4 landscape without holiday lists: the months grow to fill the page (PDF / image / print) instead of leaving the bottom empty.
   --wk = weeks in that month (set on the table) */
.exporting.sz-l .sheet-year.nolist table.mon td { height:30px; }
.exporting.sz-l .sheet-month.nolist table.mon.big td { height:calc(628px / var(--wk, 6)); }
@media print {
	.sz-l .sheet-year.nolist table.mon td { height:7mm; }
	.sz-l .sheet-month.nolist table.mon.big td { height:calc(150mm / var(--wk, 6)); }
}