.kvc{--kvc-blue:oklch(0.42 0.12 255);--kvc-ink:#1c1f24;--kvc-muted:#5d6168;--kvc-line:#e3e1da;font-family:'Onest',system-ui,sans-serif;color:var(--kvc-ink);line-height:1.4;font-size:16px}
.kvc.kvc--themefont,.kvc.kvc--themefont .kvc-serif{font-family:inherit}
.kvc *{box-sizing:border-box}
.kvc button{all:unset;box-sizing:border-box;cursor:pointer;font-family:inherit}
.kvc button:focus-visible,.kvc [role="button"]:focus-visible{outline:2px solid var(--kvc-blue);outline-offset:2px}
.kvc-serif{font-family:'Literata',Georgia,serif}
.kvc-app{display:flex;flex-direction:column;gap:24px}

.kvc-hero{background:oklch(0.3 0.07 255);color:#fff;border-radius:14px;padding:clamp(18px,2.5vw,28px);display:flex;flex-wrap:wrap;gap:24px}
.kvc-hero__today{flex:0 1 240px;display:flex;flex-direction:column;gap:6px;justify-content:center}
.kvc-eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:oklch(0.85 0.04 255)}
.kvc-hero__date{font-size:34px;line-height:1.1;font-weight:600}
.kvc-hero__note{font-size:14px;color:oklch(0.88 0.03 255)}
.kvc-hero__up{flex:1 1 520px;display:flex;flex-direction:column;gap:10px;min-width:0}
.kvc-upgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.kvc button.kvc-up{background:oklch(0.36 0.07 255);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;color:#fff}
.kvc button.kvc-up:hover{background:oklch(0.4 0.08 255)}
.kvc-up__meta{display:flex;align-items:center;gap:8px;font-size:13px;color:oklch(0.9 0.03 255)}
.kvc-up__meta b{color:#fff;font-weight:600}
.kvc-up__title{font-size:14px;line-height:1.35;font-weight:500}
.kvc-dot{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block}

.kvc-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.kvc-nav{display:flex;align-items:center;gap:8px}
.kvc button.kvc-btn{height:40px;min-width:40px;padding:0 12px;border-radius:8px;border:1px solid #d9d7d0;background:#fff;color:var(--kvc-ink);font-size:14px;display:inline-flex;align-items:center;justify-content:center}
.kvc button.kvc-btn:hover{background:#efede7}
.kvc button.kvc-btn--arrow{font-size:18px;padding:0}
.kvc .kvc-month{margin:0;min-width:190px;text-align:center;font-size:24px;font-weight:600;line-height:1.2;color:var(--kvc-ink)}
.kvc-seg{display:flex;background:#e9e7e0;border-radius:9px;padding:3px;gap:2px}
.kvc button.kvc-seg__b{height:34px;padding:0 16px;border-radius:7px;font-size:14px;font-weight:500;display:inline-flex;align-items:center;color:var(--kvc-ink)}
.kvc button.kvc-seg__b.is-on{background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.12)}
.kvc-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:-10px}
.kvc button.kvc-chip{height:36px;padding:0 14px;border-radius:18px;border:1px solid #d9d7d0;background:#fff;font-size:14px;display:inline-flex;align-items:center;gap:8px;color:var(--kvc-ink)}
.kvc button.kvc-chip:hover{border-color:#b9b7af}
.kvc button.kvc-chip--all.is-on{background:var(--kvc-ink);color:#fff;border-color:var(--kvc-ink)}
.kvc-chip__n{font-size:12px;opacity:.7}

.kvc-main{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}
.kvc-col{flex:1 1 520px;min-width:0}
.kvc-grid{background:#dedcd5;border:1px solid #dedcd5;border-radius:12px;overflow:hidden;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px}
.kvc-wd{background:#efede7;padding:10px 8px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--kvc-muted)}
.kvc-wd.is-we{color:oklch(0.5 0.14 25)}
.kvc-cell{background:#fff;min-height:112px;padding:6px;display:flex;flex-direction:column;gap:4px;min-width:0;cursor:pointer}
.kvc-cell:hover{background:#faf9f6}
.kvc-cell.is-out{background:#f3f2ee}
.kvc-cell.is-sel{background:oklch(0.97 0.02 255);box-shadow:inset 0 0 0 2px var(--kvc-blue)}
.kvc-cell__top{display:flex;align-items:center;justify-content:space-between;gap:4px}
.kvc-num{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500}
.kvc-cell.is-we .kvc-num{color:oklch(0.5 0.14 25)}
.kvc-cell.is-out .kvc-num{color:#b3b1aa}
.kvc-cell.is-sel .kvc-num{font-weight:700}
.kvc-cell.is-today .kvc-num{background:var(--kvc-blue);color:#fff;font-weight:700}
.kvc-jub{font-size:10px;font-weight:600;padding:2px 5px;border-radius:4px;background:var(--kvc-ink);color:#fff}
.kvc-pill{font-size:12px;line-height:1.3;padding:3px 6px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kvc-strip{height:6px;border-radius:3px}
.kvc-place{font-size:13px;color:var(--kvc-muted);line-height:1.4}
.kvc-tag--cont{background:#efede7;color:var(--kvc-muted)}
.kvc-more{font-size:12px;color:var(--kvc-muted);padding:0 6px}
.kvc-dots{display:none;flex-wrap:wrap;gap:3px;padding:0 4px}
.kvc-dots .kvc-dot{width:7px;height:7px}
.kvc--dots .kvc-pill,.kvc--dots .kvc-more,.kvc--dots .kvc-jub{display:none}
.kvc--dots .kvc-dots{display:flex}
.kvc--dots .kvc-cell{min-height:64px}
.kvc--narrow .kvc-wd{padding:8px 4px;text-align:center}
.kvc--narrow .kvc-cell{padding:4px;align-items:center}
.kvc--narrow .kvc-aside{position:static}

.kvc-list{display:flex;flex-direction:column;gap:10px}
.kvc-group{background:#fff;border:1px solid var(--kvc-line);border-radius:12px;padding:16px;display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;cursor:pointer}
.kvc-group.is-sel{border-color:var(--kvc-blue)}
.kvc-group__day{font-size:32px;font-weight:600;line-height:1;text-align:center}
.kvc-group__wd{font-size:12px;color:var(--kvc-muted);text-align:center;margin-top:2px}
.kvc-group__evs{display:flex;flex-direction:column;gap:12px}
.kvc-ev{display:flex;flex-direction:column;gap:4px}
.kvc-ev__title{font-size:16px;font-weight:600;line-height:1.35}
.kvc-ev__text{font-size:14px;line-height:1.5;color:#4a4e55;text-wrap:pretty}
.kvc-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px}
.kvc-tag{padding:3px 8px;border-radius:4px;font-weight:600;display:inline-flex;align-items:center;gap:6px}
.kvc-tag .kvc-dot{width:7px;height:7px}
.kvc-tag--jub{background:var(--kvc-ink);color:#fff;padding:3px 6px}
.kvc-muted{color:var(--kvc-muted)}
.kvc-empty{background:#fff;border:1px solid var(--kvc-line);border-radius:12px;padding:28px;color:var(--kvc-muted);font-size:15px}

.kvc-aside{flex:1 1 280px;max-width:100%;background:#fff;border:1px solid var(--kvc-line);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:16px;position:sticky;top:16px}
.kvc-aside__date{font-size:26px;font-weight:600;line-height:1.2}
.kvc-aside__none{font-size:14px;line-height:1.5;color:var(--kvc-muted)}
.kvc-art{display:flex;flex-direction:column;gap:8px;padding-top:16px;border-top:1px solid #ecebe5}
.kvc-art__year{display:flex;align-items:baseline;gap:8px}
.kvc-art__y{font-size:22px;font-weight:600}
.kvc .kvc-art__title{margin:0;padding:0;font-size:17px;line-height:1.35;font-weight:600;color:var(--kvc-ink);font-family:inherit;text-transform:none;letter-spacing:0}
.kvc .kvc-art__text{margin:0;font-size:14px;line-height:1.55;color:#4a4e55;text-wrap:pretty}
.kvc a.kvc-link{font-size:14px;font-weight:500;text-decoration:none;color:var(--kvc-blue)}
a.kvb{font-family:'Onest',system-ui,sans-serif;display:flex;align-items:center;gap:20px;flex-wrap:wrap;background:oklch(0.3 0.07 255);color:#fff;border-radius:14px;padding:16px 22px;text-decoration:none;box-sizing:border-box;max-width:100%;transition:background .15s}
a.kvb:hover,a.kvb:focus-visible{background:oklch(0.34 0.08 255);color:#fff}
a.kvb:focus-visible{outline:2px solid oklch(0.8 0.1 255);outline-offset:2px}
.kvb *{box-sizing:border-box}
.kvb .kvc-serif{font-family:'Literata',Georgia,serif}
.kvb.kvc--themefont,.kvb.kvc--themefont .kvc-serif{font-family:inherit}
.kvb-date{flex:none;width:72px;height:72px;border-radius:10px;background:#fff;color:#1c1f24;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.kvb-day{font-size:30px;font-weight:600}
.kvb-mon{font-size:12px;margin-top:4px;color:#5d6168}
.kvb-body{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:6px}
.kvb-title{font-size:20px;font-weight:600;line-height:1.2}
.kvb-ev{font-size:14px;line-height:1.4;color:oklch(0.9 0.03 255);display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.kvb-ev b{color:#fff;font-weight:600}
.kvb-dot{width:8px;height:8px;border-radius:50%;flex:none}
.kvb-evt{min-width:0}
.kvb-extra{color:oklch(0.82 0.04 255)}
.kvb-cta{flex:none;height:42px;padding:0 18px;border-radius:8px;background:#fff;color:oklch(0.3 0.07 255);font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
a.kvb:hover .kvb-cta{background:oklch(0.95 0.02 255)}
@media (max-width:560px){.kvb-cta{width:100%;justify-content:center}}
a.kvb.kvb--side{flex-direction:column;flex-wrap:nowrap;gap:8px;text-align:center;background:#fff;color:#1c1f24;border:1px solid #3a3a3a;border-radius:0;padding:14px 12px}
a.kvb.kvb--side:hover,a.kvb.kvb--side:focus-visible{background:#f6f5f1;color:#1c1f24}
.kvb--side .kvb-date{width:52px;height:54px;border-radius:4px;border:1.5px solid #1c1f24;border-top-width:7px;background:#fff}
.kvb--side .kvb-day{font-size:22px}
.kvb--side .kvb-mon{font-size:10px;margin-top:2px}
.kvb--side .kvb-body{flex:none;width:100%;gap:4px;align-items:center}
.kvb--side .kvb-title{font-family:inherit;font-size:14px;font-weight:700;line-height:1.3}
.kvb--side .kvb-ev{font-size:12px;color:#5d6168;justify-content:center;gap:4px}
.kvb--side .kvb-ev b{color:#1c1f24}
.kvb--side .kvb-extra{color:#5d6168}
.kvb--side .kvb-cta{display:none}
.kvc a.kvc-link:hover{color:oklch(0.32 0.1 255);text-decoration:underline}
