/* Shared calendar, scoped and self-contained in all three plugin surfaces. */
:is(.lfal-public,.lfal-portal,.lfal-admin) [data-lfal-calendar]{box-sizing:border-box;width:100%;max-width:440px;min-width:0;margin:16px 0;padding:16px;border:1px solid #d9e3dc;border-radius:6px;background:#fff;color:#23332c;font:16px/1.4 'Fira Sans',Arial,sans-serif}
:is(.lfal-public,.lfal-portal,.lfal-admin) .lfal-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px}
:is(.lfal-public,.lfal-portal,.lfal-admin) .lfal-month{font:600 16px/1.4 'Fira Sans',Arial,sans-serif;text-align:center;flex:1}
:is(.lfal-public,.lfal-portal,.lfal-admin) .lfal-calendar-days{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:6px!important;text-align:center;min-width:0}
:is(.lfal-public,.lfal-portal,.lfal-admin) .lfal-calendar-days>span{display:flex;justify-content:center;align-items:center;min-width:0;min-height:26px;margin:0;padding:0;font:500 12px/1.3 'Fira Sans',Arial,sans-serif}
:is(.lfal-public,.lfal-portal,.lfal-admin) .lfal-calendar-days>button{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:40px;height:40px;margin:0;padding:0;border:1px solid #d9e3dc;border-radius:5px;background:#f5f8f6;color:#23332c;font:500 15px/1 'Fira Sans',Arial,sans-serif;box-shadow:none;cursor:pointer}
:is(.lfal-public,.lfal-portal,.lfal-admin) .lfal-calendar-days>button:disabled{background:#f5f6f5;color:#87938b;border-color:#e8ece9;opacity:1;cursor:default}
:is(.lfal-public,.lfal-portal,.lfal-admin) .lfal-calendar-days>button.selected{background:#187d3e;color:#fff;border-color:#187d3e}
:is(.lfal-public,.lfal-portal,.lfal-admin) .lfal-calendar-head>button{display:flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;height:40px;min-height:40px;margin:0;padding:0;border:1px solid #d9e3dc;border-radius:5px;background:white;color:#176a34;font:600 24px/1 Arial,sans-serif;box-shadow:none}
:is(.lfal-public,.lfal-portal,.lfal-admin) .lfal-selected{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0 0;padding:0;font:14px/1.5 'Fira Sans',Arial,sans-serif;color:#52665a}
:is(.lfal-public,.lfal-portal,.lfal-admin) .lfal-selected>button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;width:auto;margin:0;padding:7px 10px;border:1px solid #b9d8c3;border-radius:5px;background:#edf8f0;color:#176a34;font:500 13px/1.4 'Fira Sans',Arial,sans-serif;box-shadow:none}
.lfal-admin [data-lfal-calendar],.lfal-admin .lfal-month,.lfal-admin .lfal-calendar-days>span,.lfal-admin .lfal-calendar-days>button,.lfal-admin .lfal-selected,.lfal-admin .lfal-selected>button{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
.lfal-admin .lfal-calendar-days>button.selected{background:#2271b1;border-color:#2271b1;color:white}
.lfal-admin .lfal-selected>button{background:#edf5fc;border-color:#c2d8eb;color:#135e96}
@media(max-width:480px){:is(.lfal-public,.lfal-portal,.lfal-admin) [data-lfal-calendar]{padding:10px}:is(.lfal-public,.lfal-portal,.lfal-admin) .lfal-calendar-days{gap:4px!important}:is(.lfal-public,.lfal-portal,.lfal-admin) .lfal-calendar-days>button{min-height:36px;height:36px;font-size:14px}:is(.lfal-public,.lfal-portal,.lfal-admin) .lfal-calendar-days>span{font-size:11px}}
