:root{
  --bn-blue:#0b1b3a;
  --bn-blue2:#102a5c;
  --bn-accent:#2563eb;
  --bn-green:#16a34a;
  --bn-orange:#f59e0b;
  --bn-bg:#0b1220;
}

.bncalp-wrap{max-width:1040px;margin:14px auto;padding:14px;border:1px solid rgba(37,99,235,.28);
  border-radius:16px;background:linear-gradient(180deg, rgba(11,27,58,.96), rgba(2,6,23,.98)); color:#e5e7eb; box-shadow:0 12px 28px rgba(0,0,0,.25)}
.bncalp-head{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.bncalp-title{font-weight:900;font-size:18px;letter-spacing:.2px}
.bncalp-sub{color:rgba(226,232,240,.7);font-weight:700;font-size:12px;margin-top:4px}
.bncalp-nav{display:flex;align-items:center;gap:10px}
.bncalp-btn{width:40px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(180deg, rgba(37,99,235,.22), rgba(37,99,235,.10)); color:#fff;font-size:20px;cursor:pointer}
.bncalp-btn:hover{transform:translateY(-1px)}
.bncalp-ym{font-weight:900;color:#fff;min-width:190px;text-align:center;background:rgba(255,255,255,.06);padding:8px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.10)}

.bncalp-filters{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.bncalp-cat,.bncalp-search{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:#fff;border-radius:12px;padding:10px 12px;outline:none}
.bncalp-search{flex:1;min-width:220px}
.bncalp-apply{padding:10px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg, rgba(22,163,74,.35), rgba(22,163,74,.20));color:#fff;font-weight:900;cursor:pointer}
.bncalp-apply:hover{opacity:.95}

.bncalp-grid{margin-top:12px}
.bncalp-dow{display:inline-flex;width:calc(100%/7);padding:10px 0;justify-content:center;font-weight:900;
  color:rgba(226,232,240,.75);font-size:12px;text-transform:uppercase;letter-spacing:.8px}
.bncalp-cells{display:flex;flex-wrap:wrap;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.10)}
.bncalp-cell{width:calc(100%/7);min-height:92px;border:1px solid rgba(255,255,255,.06);
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));text-align:left;padding:10px;position:relative;cursor:pointer;color:#fff}
.bncalp-cell:hover{background:linear-gradient(180deg, rgba(37,99,235,.22), rgba(255,255,255,.03))}
.bncalp-cell:focus{outline:2px solid rgba(37,99,235,.9);outline-offset:-2px}
.bncalp-empty{background:rgba(255,255,255,.03);cursor:default}
.bncalp-day{font-weight:900}
.bncalp-has .bncalp-day{color:#fff}
.bncalp-badge{position:absolute;right:10px;top:10px;min-width:22px;height:22px;padding:0 7px;border-radius:999px;
  background:rgba(245,158,11,.95);color:#111827;font-weight:900;display:inline-flex;align-items:center;justify-content:center;font-size:12px}
.bncalp-today{box-shadow:inset 0 0 0 2px rgba(22,163,74,.95);}
.bncalp-loading{opacity:.8;pointer-events:none}

@media (max-width:820px){
  .bncalp-cell{min-height:78px;padding:8px}
}
@media (max-width:520px){
  .bncalp-dow{font-size:11px}
  .bncalp-ym{min-width:160px}
}

/* Modal */
.bncalp-modal{position:fixed;inset:0;background:rgba(2,6,23,.68);display:none;align-items:center;justify-content:center;padding:16px;z-index:99999}
.bncalp-modal.is-open{display:flex}
.bncalp-modal-card{width:min(760px,100%);max-height:84vh;overflow:auto;background:linear-gradient(180deg, #0b1b3a, #0b1220);
  border:1px solid rgba(255,255,255,.10);border-radius:18px;padding:14px 14px 8px;position:relative;color:#e5e7eb}
.bncalp-close{position:absolute;right:10px;top:10px;width:40px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);color:#fff;font-size:22px;cursor:pointer}
.bncalp-modal-title{font-weight:1000;color:#fff;font-size:16px;margin:8px 0 10px}
.bncalp-ev{border-top:1px solid rgba(255,255,255,.10);padding:12px 0}
.bncalp-ev-img{width:100%;max-height:260px;object-fit:cover;border-radius:14px;border:1px solid rgba(255,255,255,.12);margin-bottom:10px}
.bncalp-ev-title{font-weight:1000;font-size:15px}
.bncalp-ev-meta{color:rgba(226,232,240,.78);font-size:13px;margin:6px 0}
.bncalp-ev-tags{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 10px}
.bncalp-tag{display:inline-flex;padding:6px 10px;border-radius:999px;background:rgba(37,99,235,.22);border:1px solid rgba(37,99,235,.35);
  color:#e5e7eb;font-weight:900;font-size:12px}
.bncalp-ev-content{color:#e5e7eb}
.bncalp-ev-link a{display:inline-flex;margin-top:10px;padding:10px 12px;border-radius:12px;background:rgba(22,163,74,.25);
  border:1px solid rgba(22,163,74,.45);color:#fff;text-decoration:none;font-weight:1000}
.bncalp-ev-link a:hover{opacity:.95}

/* List / Upcoming */
.bncalp-list-wrap{max-width:980px;margin:14px auto;border-radius:16px;border:1px solid rgba(37,99,235,.28);
  background:linear-gradient(180deg, rgba(11,27,58,.96), rgba(2,6,23,.98)); color:#e5e7eb; padding:12px; box-shadow:0 12px 28px rgba(0,0,0,.25)}
.bncalp-list-head{font-weight:1000;font-size:16px;margin:2px 0 10px}
.bncalp-empty{color:rgba(226,232,240,.75);padding:14px;border:1px dashed rgba(255,255,255,.18);border-radius:14px}
.bncalp-item{display:flex;gap:12px;padding:12px;border-top:1px solid rgba(255,255,255,.10)}
.bncalp-item:first-of-type{border-top:0}
.bncalp-today-row{box-shadow:inset 0 0 0 2px rgba(22,163,74,.85);border-radius:14px;margin-top:8px}
.bncalp-thumb{width:98px;height:74px;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.12);flex:0 0 auto}
.bncalp-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.bncalp-thumb-empty{display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.06);font-weight:1000}
.bncalp-item-body{flex:1}
.bncalp-item-title{font-weight:1000}
.bncalp-item-meta{color:rgba(226,232,240,.78);font-size:13px;margin-top:6px}
.bncalp-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.bncalp-link a{display:inline-flex;margin-top:10px;color:#fff;text-decoration:none;font-weight:1000;
  padding:9px 11px;border-radius:12px;border:1px solid rgba(37,99,235,.45);background:rgba(37,99,235,.22)}
.bncalp-link a:hover{opacity:.95}

/* Search box shortcode */
.bncalp-searchbox{max-width:520px;margin:10px auto;display:flex;gap:10px}
.bncalp-searchbox input{flex:1;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(11,27,58,.85);color:#fff}
.bncalp-searchbox button{padding:10px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.14);
  background:rgba(245,158,11,.92);color:#111827;font-weight:1000;cursor:pointer}

/* Widget */
.bncalp-widget .bncalp-wrow{display:flex;gap:10px;align-items:center;margin:10px 0}
.bncalp-wimg{width:44px;height:44px;border-radius:12px;object-fit:cover;border:1px solid rgba(255,255,255,.14);overflow:hidden;display:flex;align-items:center;justify-content:center}
.bncalp-wimg-empty{background:rgba(37,99,235,.18);font-weight:1000;color:#e5e7eb}
.bncalp-wtitle{font-weight:900}
.bncalp-wdate{color:rgba(226,232,240,.78);font-size:12px;margin-top:2px}
.bncalp-widget-empty{color:rgba(226,232,240,.78)}
