.kal{display:grid;grid-template-columns:repeat(var(--kal-stolbcov,5),minmax(0,1fr));gap:8px}.kal-kletka{appearance:none;-webkit-appearance:none;box-sizing:border-box;min-width:0;min-height:68px;margin:0;padding:12px 4px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-m);font:inherit;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}.kal-den{font-size:11px;line-height:1.2;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.kal-chislo{font-size:20px;font-weight:600;line-height:1;padding-bottom:3px;border-bottom:3px solid transparent}.kal-metka{font-size:10px;font-weight:600;line-height:1.2;min-height:12px;color:var(--accent-ink);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:clip}.kal-kletka[data-sostoyanie=svoboden]:hover{border-color:var(--line2);transform:translateY(-2px)}.kal-kletka:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.kal-kletka[data-sostoyanie=nedostupen]{background:color-mix(in srgb,var(--muted) 10%,transparent);border-color:transparent;color:var(--muted);cursor:default}.kal-kletka[data-sostoyanie=zanyat]{cursor:default}.kal-kletka[data-sostoyanie=zanyat] .kal-chislo{color:var(--accent-ink);border-bottom-color:var(--accent)}.kal-kletka[data-sostoyanie=vybran]{border-color:var(--accent);background:var(--soft)}.kal-kletka[data-sostoyanie=vybran] .kal-chislo{color:var(--accent)}@media (max-width:640px){.kal{gap:6px}.kal-kletka{padding:10px 2px 6px;min-height:64px}.kal-chislo{font-size:18px}}@media (prefers-reduced-motion:reduce){.kal-kletka{transition:none}.kal-kletka[data-sostoyanie=svoboden]:hover{transform:none}}.okno-zapisi{max-width:660px}.zapis-forma{gap:20px}.zapis-kalendar{display:flex;flex-direction:column;gap:10px;min-width:0}.zapis-ryad{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.okno-zapisi--stat{max-height:none;box-shadow:none}@media (max-width:640px){.zapis-forma{gap:16px}.zapis-ryad{grid-template-columns:minmax(0,1fr);gap:16px}}