:root {
  --ink:#2b3238;
  --muted:#6b7580;
  --ring:#e8edf3;
  --paper:#fff;
  --orange:#ff7a00;
  --orange-2:#ffa45a;
}
.cnc-root { margin:24px auto; padding:0 16px; font-family:Inter, system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif; color:var(--ink); }
.cnc-split { display:grid; grid-template-columns:20% 1fr; gap:28px; }
@media (max-width:960px){ .cnc-split{ grid-template-columns:1fr; } }
.cnc-nav { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; background:#fff; border:1px solid var(--ring); border-radius:14px; padding:8px 12px; gap:10px; flex-wrap:wrap; }
.cnc-title { font-size:22px; font-weight:800; letter-spacing:0.4px; }
.cnc-btn { border:1px solid var(--ring); background:#fff; border-radius:10px; padding:8px 10px; display:inline-flex; align-items:center; gap:8px; cursor:pointer; }
.cnc-btn svg { width:16px; height:16px; fill:currentColor; }
@media (max-width:560px){ .cnc-title{ font-size:18px; } .cnc-btn{ height:36px; } }
.cnc-left { display:flex; flex-direction:column; gap:12px; }
.cnc-cal { position:relative; background:#fff; border:1px solid var(--ring); border-radius:14px; overflow:hidden; align-self:start; width:100%; }
.cnc-cal-head { display:flex; align-items:center; justify-content:space-between; padding:12px 14px; border-bottom:1px solid var(--ring); }
.cnc-weekday { display:grid; grid-template-columns:repeat(7, 1fr); background:#fff; }
.cnc-weekday div { padding:8px 8px; font-size:11px; color:#8b95a1; border-right:1px solid var(--ring); }
.cnc-weekday div:last-child { border-right:0; }
.cnc-grid { display:grid; grid-template-columns:repeat(7, 1fr); border-top:1px solid var(--ring); }
.cnc-cell { position:relative; aspect-ratio:1/1; border-right:1px solid var(--ring); border-bottom:1px solid var(--ring); padding:6px 6px; background:#fff; display:flex; align-items:flex-start; justify-content:flex-start; cursor:pointer; }
.cnc-date { font-weight:600; color:#3a4249; font-size:13px; }
.cnc-out { color:#c7cdd4; }
.cnc-dot { position:absolute; left:50%; bottom:4px; transform:translateX(-50%); width:6px; height:6px; border-radius:50%; background:var(--orange); }
.cnc-selected { background:linear-gradient(0deg, rgba(255,122,0,.08), rgba(255,122,0,.08)); }
@media (max-width:480px){ .cnc-date{ font-size:12px; } }
.cnc-cats { overflow:hidden; }
.cnc-cat-dropdown { display:block; width:100%; padding:12px 14px; border:1px solid var(--ring); border-radius:10px; background:#fff; font-size:15px; font-family:inherit; color:var(--ink); cursor:pointer; transition:border-color .15s ease, box-shadow .15s ease; }
.cnc-cat-dropdown:hover { border-color:var(--orange-2); }
.cnc-cat-dropdown:focus { outline:none; border-color:var(--orange); box-shadow:0 0 0 3px rgba(255,122,0,.1); }
.cnc-submit-wrap, .cnc-reg-wrap { display:block; width:100%; }
.cnc-submit-btn, .cnc-reg-btn { display:flex; align-items:center; justify-content:center; gap:8px; padding:12px 20px; border:none; border-radius:10px; background:#f3f5f7; color:#2b3238; text-decoration:none; cursor:pointer; transition:transform .15s ease; width:100%; }
.cnc-submit-btn:hover, .cnc-reg-btn:hover { transform:translateY(-2px); }
.cnc-submit-btn svg, .cnc-reg-btn svg { width:18px; height:18px; fill:currentColor; }
.cnc-day-head { display:flex; align-items:center; justify-content:space-between; padding:12px 14px; background:#fff; border:1px solid var(--ring); border-radius:14px; margin-bottom:12px; gap:8px; flex-wrap:wrap; }
.cnc-day-head .label { font-size:12px; letter-spacing:.18em; color:#8b95a1; text-transform:uppercase; }
.cnc-day-head .chip { border:1px solid var(--ring); border-radius:10px; padding:8px 12px; }
.cnc-day-head .count { font-weight:600; }
.cnc-list { display:flex; flex-direction:column; }
.cnc-list.cnc-cols-2 { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; }
.cnc-list.cnc-cols-3 { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px; }
@media (max-width:1024px){ .cnc-list.cnc-cols-3{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:700px){ .cnc-list.cnc-cols-2, .cnc-list.cnc-cols-3{ grid-template-columns:1fr; } }
.cnc-item { display:grid; grid-template-columns:120px 1fr; gap:14px; padding:16px 14px; border:1px solid var(--ring); border-radius:12px; background:#fff; cursor:pointer; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; margin-bottom:15px; overflow-wrap:break-word; word-break:break-word; }
.cnc-item:not(:has(.cnc-thumb)) { grid-template-columns:1fr; }
.cnc-list.cnc-cols-2 .cnc-item, .cnc-list.cnc-cols-3 .cnc-item { grid-template-columns:1fr; grid-template-rows:auto 1fr; margin-bottom:0; }
.cnc-list.cnc-cols-2 .cnc-item:not(:has(.cnc-thumb)), .cnc-list.cnc-cols-3 .cnc-item:not(:has(.cnc-thumb)) { grid-template-rows:1fr; }
.cnc-item:hover { transform:translateY(-2px); box-shadow:0 6px 16px rgba(0,0,0,.08); }
.cnc-item:focus-visible { outline-offset:2px; transform:translateY(-2px); box-shadow:0 6px 16px rgba(0,0,0,.1); }
.cnc-thumb { position:relative; width:100%; aspect-ratio:16/9; border-radius:10px; overflow:hidden; background:#f3f5f7; }
.cnc-list.cnc-cols-2 .cnc-thumb, .cnc-list.cnc-cols-3 .cnc-thumb { aspect-ratio:5/3; }
.cnc-thumb img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; border:0; transition:transform .25s ease; }
.cnc-list[data-image-fit=cover] .cnc-thumb img { object-fit:cover; }
.cnc-item:hover .cnc-thumb img, .cnc-item:focus-visible .cnc-thumb img { transform:scale(1.03); }
.cnc-title-ev { font-size:16px; font-weight:800; margin-bottom:8px; }
.cnc-date-row, .cnc-time-row { font-size:13px; color:#2a9ee0; display:flex; align-items:center; gap:6px; margin-bottom:4px; }
.cnc-date-row svg, .cnc-time-row svg { width:14px; height:14px; fill:currentColor; flex-shrink:0; }
.cnc-loc { font-size:13px; color:#6b7580; display:flex; align-items:center; gap:6px; margin-top:6px; }
.cnc-loc svg { width:14px; height:14px; fill:currentColor; }
.cn-empty { width:100%; height:200px; display:flex; align-items:center; justify-content:center; text-align:center; font-size:16px; color:#666; background:#f9f9f9; border:1px solid #e0e0e0; border-radius:12px; }
.cnc-list.cnc-cols-2 .cn-empty, .cnc-list.cnc-cols-3 .cn-empty { grid-column:1/-1; }
.cn-no-events-card { grid-column:1/-1; width:100%; padding:48px 32px; background:#fff; border:2px dashed var(--ring); border-radius:16px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:16px; }
.cn-no-events-icon { color:var(--muted); opacity:.5; }
.cn-no-events-card h3 { font-size:20px; font-weight:700; color:var(--ink); margin:0; }
.cn-no-events-card p { font-size:16px; color:var(--muted); margin:0; max-width:500px; }
.cn-jump-btn { margin-top:8px; padding:12px 24px; background:var(--orange); color:#fff; border:none; border-radius:10px; font-size:15px; font-weight:600; cursor:pointer; transition:transform .2s ease, background .2s ease; }
.cn-jump-btn:hover { background:var(--orange-2); transform:translateY(-2px); }
.cn-searching { background:#fff; border:1px solid var(--ring); color:var(--muted); }
.cn-modal { position:fixed; inset:0; display:none; align-items:center; justify-content:center; background:rgba(17,20,24,.55); z-index:9999; padding:15px; }
.cn-modal.is-open { display:flex; }
.cn-modal__box { background:#fff; border-radius:14px; max-width:1200px; width:100%; max-height:90vh; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.25); }
.cn-modal__head { display:flex; justify-content:space-between; align-items:center; padding:14px 16px; border-bottom:1px solid var(--ring); }
.cn-modal__title { font-size:18px; font-weight:700; }
.cn-modal__close { border:0; background:#fff; border-left:1px solid var(--ring); padding:10px 14px; cursor:pointer; }
.cn-modal__body { padding:16px; overflow-y:auto; overflow-x:hidden; }
.cn-modal__iframeWrap { width:100%; height:75vh; overflow:hidden; border-radius:10px; background:#fff; }
.cn-modal__iframe { display:block; width:100%; height:100%; border:0; }
@media (max-width:560px){ .cn-modal__box{ max-width:100%; border-radius:10px; } .cn-modal__iframeWrap{ height:70vh; } }
@media (max-width:767px){
  .cnc-item{ grid-template-columns:1fr; grid-template-rows:auto 1fr; }
  .cnc-item:not(:has(.cnc-thumb)){ grid-template-rows:1fr; }
  #prev-label, #next-label{ display:none; }
  .cnc-root[data-mobile-calendar=no] .cnc-cal{ display:none; }
  .cn-no-events-card{ padding:32px 24px; }
  .cn-no-events-card h3{ font-size:18px; }
  .cn-no-events-card p{ font-size:14px; }
}
.notranslate { -webkit-user-select:text; -moz-user-select:text; user-select:text; }
