.kg-cal{--cal-heading: var(--black);--cal-accent: var(--crimson);--cal-accent-dark: var(--crimson-dark);--cal-sunday: var(--gold-deep);--cal-blaze: #d97b1e;padding:20px 0 40px}.kg-cal .legend{display:flex;gap:10px 18px;justify-content:center;flex-wrap:wrap;margin:6px auto 8px;max-width:860px}.kg-cal .legend .item{display:inline-flex;align-items:center;gap:8px;font-family:var(--head);font-weight:600;text-transform:uppercase;letter-spacing:.6px;font-size:12.5px;color:var(--ink)}.kg-cal .legend .sw{width:14px;height:14px;border-radius:4px;flex:none}.kg-cal .legend .sw-sunday{width:14px;height:14px;border-radius:4px;flex:none;background:#fff;box-shadow:inset 0 0 0 2px var(--cal-sunday)}.kg-cal .legend .sw-vest{width:15px;height:15px;color:var(--cal-blaze);display:inline-flex;flex:none}.kg-cal .region-bar{display:flex;align-items:center;justify-content:center;gap:18px;margin:4px auto 20px;flex-wrap:wrap;max-width:860px;background:var(--cream-2);border:1px solid var(--line);border-radius:16px;padding:16px 22px;box-shadow:var(--shadow)}.kg-cal .seg{display:inline-flex;flex-wrap:wrap;justify-content:center;gap:2px;max-width:100%;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:4px;flex:none}.kg-cal .seg button{border:none;background:none;cursor:pointer;font-family:var(--head);font-weight:600;text-transform:uppercase;letter-spacing:.6px;font-size:13px;color:var(--ink);padding:8px 18px;border-radius:999px;transition:.16s}@media(max-width:600px){.kg-cal .seg{width:100%;border-radius:16px}.kg-cal .seg button{padding:7px 12px;font-size:11.5px;letter-spacing:.4px;flex:1 1 auto}}.kg-cal .seg button.active{background:var(--cal-accent);color:#fff}.kg-cal .region-desc{flex:1 1 100%;max-width:none;font-size:13px;line-height:1.5;color:var(--muted);text-align:center;margin-top:2px}.kg-cal .cal-map{height:74px;width:auto;flex:none;overflow:visible}.kg-cal .cal-map .cal-map-bg{fill:#efe7d6;stroke:#8b5a2b47;stroke-width:.5;stroke-linejoin:round;pointer-events:none}.kg-cal .cal-map path{fill:#ded4bd;stroke:var(--tan);stroke-width:2.4;stroke-linejoin:round;cursor:pointer;transition:fill .16s}.kg-cal .cal-map path:hover{fill:#cfc4a8}.kg-cal .cal-map path.on{fill:var(--cal-accent)}.kg-cal .cal-map path.on:hover{fill:var(--cal-accent-dark)}.kg-cal .cal-map.fine path{stroke:#fff;stroke-width:.5}.kg-cal .cal-map.fine path:hover{fill:#cfc4a8}.kg-cal .cal{max-width:860px;margin:18px auto 0}.kg-cal .cal-nav{display:flex;align-items:center;gap:16px;margin-bottom:16px}.kg-cal .cal-nav h2{flex:1;text-align:center;font-family:var(--head);text-transform:uppercase;letter-spacing:.5px;font-size:clamp(24px,4vw,32px);color:var(--cal-heading);margin:0}.kg-cal .navbtn{width:48px;height:48px;flex:none;border-radius:50%;border:1px solid var(--line);background:var(--card);cursor:pointer;display:grid;place-items:center;color:var(--cal-accent);transition:.16s}.kg-cal .navbtn:hover:not([disabled]){border-color:var(--cal-accent);background:#fff;transform:translateY(-1px)}.kg-cal .navbtn[disabled]{opacity:.3;cursor:default}.kg-cal .navbtn svg{width:20px;height:20px}.kg-cal .month{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:18px}.kg-cal .dow{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}.kg-cal .dow span{text-align:center;font-family:var(--head);text-transform:uppercase;letter-spacing:.5px;font-size:12px;color:var(--muted)}.kg-cal .grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.kg-cal .day{min-height:96px;border:1px solid var(--line);border-radius:10px;padding:7px;display:flex;flex-direction:column;gap:4px;background:#fff;position:relative;overflow:visible}.kg-cal .day.empty{border:none;background:transparent}.kg-cal .day .top{display:flex;align-items:center;justify-content:space-between}.kg-cal .day .dnum{font-weight:700;font-size:15px;color:var(--cal-heading)}.kg-cal .day .moon{font-size:16px;line-height:1}.kg-cal .day .sun{font-size:10.5px;color:var(--muted);line-height:1.3;margin-top:auto}.kg-cal .day .sun b{font-weight:700;color:#8a8275}.kg-cal .day .bars{display:flex;flex-wrap:wrap;gap:3px;margin-top:2px}.kg-cal .day .bar{height:7px;flex:1 1 auto;min-width:10px;border-radius:3px}.kg-cal .day.weekend .dnum{color:var(--cal-accent)}.kg-cal .day.sun-open{box-shadow:inset 0 0 0 2px var(--cal-sunday);cursor:help}.kg-cal .day .vest{position:absolute;bottom:-7px;right:-7px;width:19px;height:19px;box-sizing:border-box;padding:2px;border-radius:50%;background:#fff;color:var(--cal-blaze);z-index:3;box-shadow:0 1px 4px #17150f4d}.kg-cal .day .vest svg{width:100%;height:100%;display:block}@media(max-width:560px){.kg-cal .month{padding:12px}.kg-cal .grid,.kg-cal .dow{gap:4px}.kg-cal .day{min-width:0;min-height:84px;padding:5px 4px;border-radius:8px}.kg-cal .day .dnum,.kg-cal .day .moon{font-size:13px}.kg-cal .day .sun{font-size:9px}.kg-cal .day .bar{min-width:6px}}.kg-cal .cal-note{max-width:760px;margin:24px auto 0;text-align:center;color:var(--muted);font-size:13.5px;line-height:1.6}.kg-cal .cal-note.small{max-width:880px;font-size:12px}.kg-cal .cal-note b{color:var(--cal-accent)}.kg-cal .cal-note .hl{color:var(--cal-accent-dark);font-weight:700}.kg-cal .cal-note a{color:var(--cal-accent-dark);font-weight:600}.kg-cal .cal-note .lastsync{display:inline-block;margin-top:4px;color:var(--muted)}.kg-cal .cal-note .lastsync b{color:var(--cal-accent)}.kncal-tip{position:fixed;z-index:120;max-width:340px;background:var(--black);color:#eee7d8;border-radius:12px;padding:14px 16px;box-shadow:0 18px 40px -12px #0000008c;font-size:12.5px;line-height:1.45;pointer-events:none;opacity:0;transition:opacity .12s}.kncal-tip.show{opacity:1}.kncal-tip h4{font-family:var(--head);text-transform:uppercase;letter-spacing:.5px;font-size:13px;color:#fff;margin:0 0 9px}.kncal-tip .row{margin-bottom:8px}.kncal-tip .lab{display:block;font-weight:700;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:1px}.kncal-tip .none .lab{color:#e89086}.kncal-tip .priv .lab{color:#f0b682}.kncal-tip .pub .lab{color:#c9d98f}.kncal-tip .hours{margin-top:2px;font-size:11px;color:#b8b0a0;border-top:1px solid rgba(255,255,255,.14);padding-top:8px}.kncal-tip .hours b{color:var(--gold)}@media(max-width:560px){.kncal-tip{width:calc(100vw - 24px);max-width:none;box-sizing:border-box}.kncal-tip .row,.kncal-tip .hours{width:100%}}
