/* Universal Event Manager: shared design system */
.uem{
	--uem-primary:#F97316;
	--uem-primary-d:color-mix(in srgb,var(--uem-primary) 82%,#000);
	--uem-bg:#f6f5f3;
	--uem-surface:#ffffff;
	--uem-surface-2:#faf9f7;
	--uem-soft:color-mix(in srgb,var(--uem-primary) 11%,var(--uem-surface));
	--uem-text:#1f2328;
	--uem-muted:#6b7078;
	--uem-border:#e8e5e0;
	--uem-ok:#15803d;
	--uem-danger:#dc2626;
	--uem-info:#2563eb;
	--uem-r:12px;
	--uem-shadow:0 1px 2px rgba(31,35,40,.05),0 2px 10px rgba(31,35,40,.05);
	font:14px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
	color:var(--uem-text);
	box-sizing:border-box;
}
.uem[data-uem-theme="dark"]{
	--uem-bg:#14151a;--uem-surface:#1c1e25;--uem-surface-2:#22252d;--uem-text:#eceef2;--uem-muted:#9aa1ad;--uem-border:#2d313b;--uem-shadow:none;
}
.uem *,.uem *::before,.uem *::after{box-sizing:inherit}
.uem a{color:var(--uem-primary-d)}
.uem h1,.uem h2,.uem h3{color:var(--uem-text);margin:0;line-height:1.25}
.uem p{margin:0 0 .6em}
.uem .uem-muted,.uem .uem-hint{color:var(--uem-muted)}
.uem .uem-hint{font-size:12.5px;margin:2px 0 6px}
.uem .uem-strong{font-weight:600;color:var(--uem-text);text-decoration:none}
.uem .uem-right{text-align:right}
.uem .uem-spacer{flex:1}
.uem [hidden]{display:none!important}

/* Buttons */
.uem .uem-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border-radius:9px;border:1px solid var(--uem-border);background:var(--uem-surface);color:var(--uem-text);font-family:inherit;font-size:13.5px;font-weight:600;line-height:1.2;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s,color .15s}
.uem .uem-btn:hover{border-color:var(--uem-primary);color:var(--uem-primary-d)}
.uem .uem-btn:focus-visible,.uem .uem-input:focus-visible,.uem summary:focus-visible{outline:2px solid var(--uem-primary);outline-offset:2px}
.uem .uem-btn-primary{background:var(--uem-primary);border-color:var(--uem-primary);color:#fff}
.uem .uem-btn-primary:hover{background:var(--uem-primary-d);border-color:var(--uem-primary-d);color:#fff}
.uem .uem-btn-ghost{background:transparent;border-color:transparent}
.uem .uem-btn-danger{background:var(--uem-danger);border-color:var(--uem-danger);color:#fff}
.uem .uem-btn-danger:hover{background:#b91c1c;border-color:#b91c1c;color:#fff}
.uem .uem-btn-danger-ghost{color:var(--uem-danger)}
.uem .uem-btn-danger-ghost:hover{border-color:var(--uem-danger);color:var(--uem-danger)}
.uem .uem-btn-sm{padding:6px 11px;font-size:12.5px}
.uem .uem-btn-block{width:100%}
.uem .uem-btn[disabled],.uem .uem-btn.is-disabled{opacity:.5;pointer-events:none}
.uem .uem-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border-radius:9px;border:1px solid var(--uem-border);background:var(--uem-surface);color:var(--uem-muted);cursor:pointer;list-style:none}
.uem .uem-icon-btn .dashicons{width:18px;height:18px;font-size:18px}

/* Form controls */
.uem .uem-input,.uem select.uem-input,.uem textarea.uem-input{width:100%;max-width:none;min-height:40px;padding:8px 12px;border:1px solid var(--uem-border);border-radius:9px;background:var(--uem-surface);color:var(--uem-text);font:inherit;box-shadow:none}
.uem .uem-input:focus{border-color:var(--uem-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--uem-primary) 22%,transparent);outline:none}
.uem .uem-field{margin:0 0 16px}
.uem .uem-field>label{display:block;font-weight:600;margin-bottom:4px}
.uem .uem-req{color:var(--uem-danger)}
.uem .uem-error{display:none;color:var(--uem-danger);font-size:12.5px;margin-top:4px}
.uem .uem-field.has-error .uem-error{display:block}
.uem .uem-field.has-error .uem-input{border-color:var(--uem-danger)}
.uem .uem-check{display:flex;align-items:center;gap:8px;margin:6px 0 12px;font-weight:500;cursor:pointer}
.uem input[type=checkbox],.uem input[type=radio]{accent-color:var(--uem-primary)}

/* Badges */
.uem .uem-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--uem-surface-2);color:var(--uem-muted);border:1px solid var(--uem-border);text-transform:capitalize}
.uem .uem-b-upcoming{background:color-mix(in srgb,var(--uem-ok) 13%,var(--uem-surface));color:var(--uem-ok);border-color:transparent}
.uem .uem-b-draft{background:var(--uem-surface-2);color:var(--uem-muted)}
.uem .uem-b-completed{background:color-mix(in srgb,var(--uem-info) 12%,var(--uem-surface));color:var(--uem-info);border-color:transparent}
.uem .uem-b-cancelled,.uem .uem-b-r-cancelled{background:color-mix(in srgb,var(--uem-danger) 11%,var(--uem-surface));color:var(--uem-danger);border-color:transparent}
.uem .uem-b-archived{background:var(--uem-surface-2);color:var(--uem-muted)}
.uem .uem-b-r-confirmed{background:color-mix(in srgb,var(--uem-ok) 13%,var(--uem-surface));color:var(--uem-ok);border-color:transparent}
.uem .uem-b-r-checked_in{background:var(--uem-soft);color:var(--uem-primary-d);border-color:transparent}
.uem .uem-b-r-waitlisted{background:color-mix(in srgb,#d97706 14%,var(--uem-surface));color:#b45309;border-color:transparent}

/* Cards */
.uem .uem-card{background:var(--uem-surface);border:1px solid var(--uem-border);border-radius:var(--uem-r);box-shadow:var(--uem-shadow);padding:20px;margin-bottom:16px}
.uem .uem-empty{text-align:center;padding:36px 16px;color:var(--uem-muted)}
.uem .uem-empty h3{color:var(--uem-text);margin:6px 0 4px;font-size:16px}
.uem .uem-empty-ic{font-size:34px;display:block}
.uem .uem-notice{display:flex;align-items:center;gap:10px;padding:10px 14px;margin:0 0 14px;border-radius:10px;background:var(--uem-soft);border:1px solid color-mix(in srgb,var(--uem-primary) 25%,transparent)}

/* Event card */
.uem .uem-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px}
.uem .uem-ecard{background:var(--uem-surface);border:1px solid var(--uem-border);border-radius:var(--uem-r);display:flex;flex-direction:column;box-shadow:var(--uem-shadow)}
.uem .uem-ecard-cover{position:relative;display:block;border-radius:calc(var(--uem-r) - 1px) calc(var(--uem-r) - 1px) 0 0;aspect-ratio:16/10;background:var(--uem-soft);overflow:hidden}
.uem .uem-ecard-cover img{width:100%;height:100%;object-fit:cover;display:block}
.uem .uem-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:54px}
.uem .uem-datechip{position:absolute;left:12px;top:12px;display:flex;flex-direction:column;align-items:center;min-width:46px;padding:5px 8px;border-radius:10px;background:var(--uem-surface);color:var(--uem-text);box-shadow:var(--uem-shadow);line-height:1.1}
.uem .uem-datechip b{font-size:18px}
.uem .uem-datechip i{font-style:normal;font-size:11px;color:var(--uem-primary-d);font-weight:600}
.uem .uem-ecard-badge{position:absolute;right:12px;top:12px}
.uem .uem-ecard-body{padding:14px 16px 12px;display:flex;flex-direction:column;gap:2px;flex:1}
.uem .uem-ecard-cat{font-size:12.5px;font-weight:600;color:var(--uem-primary-d)}
.uem .uem-ecard h3{font-size:16.5px;margin:2px 0 6px}
.uem .uem-ecard h3 a{color:var(--uem-text);text-decoration:none}
.uem .uem-ecard h3 a:hover{color:var(--uem-primary-d)}
.uem .uem-meta{margin:0;font-size:13px;color:var(--uem-muted)}
.uem .uem-ecard-foot{margin-top:auto;padding-top:12px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px}

/* Menu */
.uem .uem-menu{position:relative}
.uem .uem-menu summary::-webkit-details-marker{display:none}
.uem .uem-menu-list{position:absolute;right:0;bottom:calc(100% + 6px);z-index:30;min-width:190px;background:var(--uem-surface);border:1px solid var(--uem-border);border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.18);padding:6px;display:flex;flex-direction:column}
.uem .uem-table .uem-menu-list{bottom:auto;top:calc(100% + 6px)}
.uem .uem-menu-list a,.uem .uem-menu-list button{display:block;text-align:left;padding:8px 10px;border:0;border-radius:7px;background:none;color:var(--uem-text);font:inherit;font-size:13px;cursor:pointer;text-decoration:none}
.uem .uem-menu-list a:hover,.uem .uem-menu-list button:hover{background:var(--uem-soft)}
.uem .uem-menu-list .is-danger{color:var(--uem-danger)}

/* Filters / pager */
.uem .uem-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 18px}
.uem .uem-filters .uem-input{width:auto;min-width:150px;flex:1 1 150px}
.uem .uem-pager{margin:22px 0;display:flex;justify-content:center}
.uem .uem-pager .page-numbers{display:inline-block;min-width:34px;padding:6px 10px;margin:0 2px;text-align:center;border-radius:8px;border:1px solid var(--uem-border);background:var(--uem-surface);color:var(--uem-text);text-decoration:none}
.uem .uem-pager .page-numbers.current{background:var(--uem-primary);border-color:var(--uem-primary);color:#fff}

/* Modal + toast */
.uem .uem-modal{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:16px}
.uem .uem-modal-bg{position:absolute;inset:0;background:rgba(15,17,21,.55)}
.uem .uem-dialog{position:relative;width:min(520px,100%);max-height:90vh;overflow:auto;background:var(--uem-surface);border-radius:14px;padding:22px;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.uem .uem-dialog h3{font-size:18px;margin-bottom:12px}
.uem .uem-dialog-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.uem .uem-toast{position:fixed;right:22px;bottom:22px;z-index:100001;max-width:340px;padding:12px 16px;border-radius:10px;background:#1f2328;color:#fff;box-shadow:0 8px 28px rgba(0,0,0,.3);transform:translateY(12px);opacity:0;transition:.25s}
.uem .uem-toast.is-in{transform:none;opacity:1}
.uem .uem-toast.is-err{background:var(--uem-danger)}

/* Calendar */
.uem .uem-cal-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.uem .uem-cal-title{font-size:18px;font-weight:700;margin:0 6px;min-width:170px}
.uem .uem-cal-bar .uem-input{width:auto;min-width:130px}
.uem .uem-seg{display:inline-flex;border:1px solid var(--uem-border);border-radius:9px;overflow:hidden}
.uem .uem-seg button{border:0;background:var(--uem-surface);color:var(--uem-text);padding:8px 13px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.uem .uem-seg button.is-on{background:var(--uem-primary);color:#fff}
.uem .uem-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--uem-border);border-left:1px solid var(--uem-border)}
.uem .uem-wd{padding:8px;font-size:12.5px;font-weight:600;color:var(--uem-muted);border-right:1px solid var(--uem-border);border-bottom:1px solid var(--uem-border);background:var(--uem-surface-2)}
.uem .uem-day{min-height:104px;padding:4px;border-right:1px solid var(--uem-border);border-bottom:1px solid var(--uem-border);background:var(--uem-surface);overflow:hidden}
.uem .uem-day.is-other{background:var(--uem-surface-2);color:var(--uem-muted)}
.uem .uem-day.is-over{background:var(--uem-soft);outline:2px dashed var(--uem-primary);outline-offset:-2px}
.uem .uem-dnum{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:12.5px;font-weight:600}
.uem .is-today .uem-dnum{background:var(--uem-primary);color:#fff}
.uem .uem-ev{display:block;width:100%;margin:2px 0;padding:2px 6px;border:0;border-left:3px solid var(--uem-primary);border-radius:5px;background:var(--uem-soft);color:var(--uem-text);font:inherit;font-size:12px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.uem .uem-ev.is-draft{border-left-style:dashed;border-left-color:var(--uem-muted);background:var(--uem-surface-2)}
.uem .uem-ev.is-cancelled,.uem .uem-ev.is-occ-cancelled{border-left-color:var(--uem-danger);background:color-mix(in srgb,var(--uem-danger) 9%,var(--uem-surface));text-decoration:line-through;opacity:.75}
.uem .uem-ev.is-completed{border-left-color:var(--uem-info);background:color-mix(in srgb,var(--uem-info) 9%,var(--uem-surface))}
.uem .uem-ev[draggable=true]{cursor:grab}
.uem .uem-more{border:0;background:none;color:var(--uem-primary-d);font:inherit;font-size:12px;font-weight:600;cursor:pointer;padding:2px 6px}
.uem .uem-tg{display:grid;border:1px solid var(--uem-border);border-radius:10px;overflow:auto;background:var(--uem-surface)}
.uem .uem-tg-head,.uem .uem-tg-allday{display:grid;border-bottom:1px solid var(--uem-border);background:var(--uem-surface-2)}
.uem .uem-tg-h{padding:8px;text-align:center;font-size:12.5px;font-weight:600;border-left:1px solid var(--uem-border)}
.uem .uem-tg-h.is-today{color:var(--uem-primary-d)}
.uem .uem-tg-body{display:grid;position:relative}
.uem .uem-tg-hours div{height:48px;padding:0 6px;font-size:11px;color:var(--uem-muted);text-align:right;border-bottom:1px solid var(--uem-border)}
.uem .uem-tg-col{position:relative;border-left:1px solid var(--uem-border);background-image:linear-gradient(var(--uem-border) 1px,transparent 1px);background-size:100% 48px}
.uem .uem-tg-col .uem-ev{position:absolute;margin:0;white-space:normal;line-height:1.25}
.uem .uem-agenda-day{padding:10px 0;border-bottom:1px solid var(--uem-border)}
.uem .uem-agenda-day h4{margin:0 0 6px;font-size:14px}
.uem .uem-agenda-item{display:flex;gap:12px;align-items:center;width:100%;padding:8px 10px;margin:2px 0;border:0;border-radius:8px;background:var(--uem-surface-2);color:var(--uem-text);font:inherit;text-align:left;cursor:pointer}
.uem .uem-agenda-item:hover{background:var(--uem-soft)}
.uem .uem-agenda-item time{min-width:92px;color:var(--uem-muted);font-size:12.5px}

@media (max-width:640px){
	.uem .uem-day{min-height:70px}
	.uem .uem-ev{font-size:11px;padding:1px 4px}
	.uem .uem-cal-title{min-width:0;width:100%;order:-1}
}
@media (prefers-reduced-motion:reduce){.uem *{transition:none!important}}
