/* V15 additions: action artwork, epic login, events, updates */
.action-card { isolation:isolate; }
.action-card > * { position:relative; z-index:2; }
.action-card::before {
  content:'';
  position:absolute;
  inset:0;
  background-image: linear-gradient(90deg, rgba(6,8,12,.93) 0%, rgba(6,8,12,.88) 38%, rgba(6,8,12,.58) 72%, rgba(6,8,12,.28) 100%), var(--card-art, none);
  background-size: auto, cover;
  background-position:center;
  opacity: .96;
  transition: transform .6s ease, opacity .25s ease;
  z-index:0;
}
.action-card:hover::before { transform: scale(1.04); opacity: 1; }
.action-card .action-number,
.action-card .action-icon,
.action-card strong,
.action-card small,
.action-card > b { text-shadow: 0 4px 18px rgba(0,0,0,.75); }
.action-card strong { font-size: 11px; letter-spacing:.03em; }
.action-card small { color:#bdc3cf; max-width: 19ch; }
.action-card .action-icon {
  width:38px; height:38px; border-radius:10px; display:grid; place-items:center;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.08); backdrop-filter: blur(8px);
}

.login-dialog {
  width:min(520px, calc(100% - 28px));
  overflow:hidden;
  padding:0 0 28px;
}
.login-dialog > img,
.login-dialog > .section-kicker,
.login-dialog > h2,
.login-dialog > p,
.login-dialog form,
.login-dialog .dialog-links { margin-left: 28px; margin-right: 28px; }
.login-dialog-art {
  position:relative; height:220px; margin:0 0 14px;
  border-bottom:1px solid rgba(255,255,255,.08);
  overflow:hidden;
}
.login-dialog-art::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(8,10,16,.12), rgba(8,10,16,.18) 34%, rgba(8,10,16,.88));
}
.login-dialog-art img { width:100%; height:100%; object-fit:cover; display:block; filter:saturate(1.06) contrast(1.05); }
.login-dialog .section-kicker { display:inline-flex; margin-top:4px; }
.login-dialog h2 { font-size:32px; }
.login-dialog form .button { margin-top:8px; }
.dialog-links { flex-wrap:wrap; gap:10px 16px; }
.dialog-links a { color:#d9b06d; }

.panamera-page {
  width:min(1180px, calc(100% - 34px)); margin:28px auto 46px; padding:28px;
  border:1px solid rgba(255,255,255,.08); border-radius:18px;
  background:linear-gradient(145deg, rgba(14,18,27,.92), rgba(7,10,16,.9));
  box-shadow: 0 24px 70px rgba(0,0,0,.35);
}
.panamera-page-header { display:grid; grid-template-columns:1.15fr .85fr; gap:26px; align-items:stretch; margin-bottom:30px; }
.panamera-page-copy h1 { margin:8px 0 12px; font:500 clamp(28px,4.2vw,52px)/1.05 var(--serif); color:#f4ede3; }
.panamera-page-copy p { margin:0; color:#aab2bf; font-size:13px; line-height:1.7; max-width:62ch; }
.panamera-kicker {
  display:inline-flex; align-items:center; gap:10px; padding:8px 14px; border-radius:999px;
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); color:#d49b54;
  letter-spacing:.16em; font-size:10px; font-weight:800;
}
.panamera-page-hero {
  position:relative; min-height:250px; overflow:hidden; border-radius:16px; border:1px solid rgba(255,255,255,.08);
  background:#10131a;
}
.panamera-page-hero img { width:100%; height:100%; object-fit:cover; display:block; }
.panamera-page-hero::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(7,10,16,.1), rgba(7,10,16,.25) 40%, rgba(7,10,16,.92));
}
.panamera-page-hero-caption { position:absolute; left:18px; right:18px; bottom:18px; z-index:2; display:flex; justify-content:space-between; align-items:end; gap:10px; }
.panamera-page-hero-caption strong { font:500 18px/1.15 var(--serif); color:#fff; }
.panamera-page-hero-caption small { display:block; margin-top:6px; color:#b6bfcb; font-size:10px; }
.panamera-page-hero-caption span { padding:7px 11px; border-radius:999px; background:rgba(12,15,22,.65); border:1px solid rgba(255,255,255,.08); color:#ead1a0; font-size:9px; letter-spacing:.15em; }

.events-calendar-shell {
  display:grid; grid-template-columns: 1fr 320px; gap:24px; align-items:start;
}
.events-calendar {
  border:1px solid rgba(255,255,255,.08); border-radius:16px; overflow:hidden;
  background:linear-gradient(180deg, rgba(15,19,29,.94), rgba(8,11,17,.92));
}
.events-calendar-top {
  padding:16px 18px; display:flex; justify-content:space-between; align-items:center;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.events-calendar-top h2 { margin:0; font:500 22px/1.1 var(--serif); color:#f5ecde; }
.events-calendar-top p { margin:4px 0 0; color:#9ea5b1; font-size:10px; }
.events-calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); }
.events-calendar-head,
.events-day { min-height:118px; border-right:1px solid rgba(255,255,255,.05); border-bottom:1px solid rgba(255,255,255,.05); padding:10px; }
.events-calendar-head { min-height:auto; color:#d9b06d; font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; background:rgba(255,255,255,.02); }
.events-day:nth-child(7n), .events-calendar-head:nth-child(7n) { border-right:0; }
.events-day.is-empty { background:rgba(255,255,255,.015); }
.events-day-number { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; color:#fff; font-weight:700; font-size:12px; }
.events-day-pill { display:inline-flex; align-items:center; padding:5px 7px; border-radius:999px; font-size:8px; letter-spacing:.08em; font-weight:700; color:#ebd5ab; background:rgba(212,155,84,.1); border:1px solid rgba(212,155,84,.22); }
.events-day-list { display:grid; gap:6px; }
.events-day-item { display:block; padding:7px 8px; border-radius:10px; background:rgba(28,34,47,.85); border:1px solid rgba(255,255,255,.06); color:#d7dde7; font-size:9px; line-height:1.4; }
.events-day-item strong { display:block; color:#fff; font-size:10px; margin-bottom:2px; }
.events-side-panel { display:grid; gap:16px; }
.events-side-box {
  padding:18px; border:1px solid rgba(255,255,255,.08); border-radius:16px;
  background:linear-gradient(145deg, rgba(14,18,27,.92), rgba(8,11,17,.9));
}
.events-side-box h3 { margin:0 0 10px; font:500 22px/1.1 var(--serif); color:#f1ebdf; }
.events-side-box p { margin:0; color:#aeb6c1; font-size:11px; line-height:1.7; }
.events-side-box ul { margin:14px 0 0; padding:0; list-style:none; display:grid; gap:8px; }
.events-side-box li { display:flex; gap:8px; color:#c9d0da; font-size:10px; }
.events-list-grid { margin-top:28px; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:22px; }
.event-card-public {
  overflow:hidden; border:1px solid rgba(255,255,255,.08); border-radius:16px;
  background:linear-gradient(145deg, rgba(15,19,29,.95), rgba(8,11,17,.92));
  box-shadow:0 18px 48px rgba(0,0,0,.28);
}
.event-card-public-media { position:relative; height:220px; overflow:hidden; background:#0d1017; }
.event-card-public-media img { width:100%; height:100%; object-fit:cover; display:block; }
.event-card-public-media::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,10,16,.15), rgba(8,10,16,.75)); }
.event-card-public-tag { position:absolute; left:14px; top:14px; z-index:2; padding:7px 10px; border-radius:999px; background:rgba(8,10,16,.6); border:1px solid rgba(255,255,255,.08); color:#e1c493; font-size:9px; font-weight:800; letter-spacing:.14em; }
.event-card-public-body { padding:18px; }
.event-card-public-time { display:flex; gap:12px; flex-wrap:wrap; color:#c49a5d; font-size:9px; letter-spacing:.14em; text-transform:uppercase; }
.event-card-public-body h3 { margin:10px 0; font:500 26px/1.08 var(--serif); color:#fff; }
.event-card-public-body p { margin:0; color:#acb4c0; font-size:11px; line-height:1.7; }

.updates-list { display:grid; gap:20px; }
.update-note-card {
  display:grid; grid-template-columns:280px 1fr; overflow:hidden; border:1px solid rgba(255,255,255,.08); border-radius:16px;
  background:linear-gradient(145deg, rgba(15,19,29,.95), rgba(8,11,17,.92));
}
.update-note-media { min-height:230px; position:relative; background:#0f1218; }
.update-note-media img { width:100%; height:100%; object-fit:cover; display:block; }
.update-note-media::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(7,10,16,.12), rgba(7,10,16,.9)); }
.update-note-media span { position:absolute; left:15px; top:15px; z-index:2; padding:7px 10px; border-radius:999px; background:rgba(11,14,21,.68); color:#e5c08a; border:1px solid rgba(255,255,255,.08); font-size:9px; font-weight:800; letter-spacing:.14em; }
.update-note-body { padding:22px; }
.update-note-body time { color:#d09a53; font-size:9px; letter-spacing:.16em; text-transform:uppercase; }
.update-note-body h2 { margin:10px 0 12px; font:500 30px/1.05 var(--serif); color:#fff; }
.update-note-body ul { margin:0; padding-left:18px; color:#b2bac5; display:grid; gap:8px; }
.update-note-body li { line-height:1.55; font-size:11px; }
.update-empty, .events-empty { padding:26px; border:1px dashed rgba(255,255,255,.12); border-radius:16px; color:#aab2bf; text-align:center; }

.admin-editor-shell { display:grid; gap:22px; }
.admin-editor-grid { display:grid; grid-template-columns: 1fr 1fr; gap:22px; align-items:start; }
.admin-editor-box { padding:20px; border-radius:16px; background:linear-gradient(145deg, rgba(16,21,31,.94), rgba(8,10,15,.9)); border:1px solid rgba(255,255,255,.08); }
.admin-editor-box h3 { margin:0 0 12px; color:#fff; font:500 24px/1.1 var(--serif); }
.admin-editor-box p { margin:0 0 14px; color:#aab2bf; }
.admin-editor-form { display:grid; gap:12px; }
.admin-editor-form label { display:grid; gap:6px; color:#d5dbe5; font-weight:700; font-size:12px; }
.admin-editor-form input[type="text"],
.admin-editor-form input[type="date"],
.admin-editor-form input[type="time"],
.admin-editor-form textarea,
.admin-editor-form select { width:100%; min-height:44px; padding:10px 12px; border:1px solid rgba(255,255,255,.1); border-radius:10px; background:rgba(8,11,17,.9); color:#fff; }
.admin-editor-form textarea { min-height:140px; resize:vertical; }
.admin-editor-form .grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.admin-editor-form button { width:max-content; padding:12px 18px; border:0; border-radius:10px; cursor:pointer; background:linear-gradient(135deg, #d7a55f, #b66c36); color:#0e1117; font-weight:900; letter-spacing:.05em; }
.admin-editor-list { display:grid; gap:14px; }
.admin-entry-card { display:grid; grid-template-columns:110px 1fr auto; gap:14px; align-items:center; padding:14px; border:1px solid rgba(255,255,255,.08); border-radius:14px; background:rgba(255,255,255,.03); }
.admin-entry-card img { width:110px; height:82px; object-fit:cover; border-radius:10px; border:1px solid rgba(255,255,255,.08); background:#0d1017; }
.admin-entry-card h4 { margin:0 0 6px; color:#fff; font-size:16px; }
.admin-entry-card p { margin:0; color:#b4bdc8; font-size:12px; line-height:1.55; }
.admin-entry-card small { display:block; margin-bottom:6px; color:#d09a53; text-transform:uppercase; letter-spacing:.12em; }
.admin-entry-actions { display:flex; flex-direction:column; gap:10px; }
.admin-entry-actions button { padding:10px 12px; border-radius:10px; border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.05); color:#fff; cursor:pointer; }
.admin-entry-actions .danger { color:#ff8f8f; border-color:rgba(255,80,80,.22); }
.admin-notice { padding:14px 16px; border-radius:12px; margin-bottom:12px; background:rgba(37,101,58,.18); border:1px solid rgba(78,181,110,.28); color:#d7f1dc; }
.admin-notice.error { background:rgba(109,36,45,.18); border-color:rgba(223,97,119,.25); color:#ffd9dd; }

@media (max-width: 980px) {
  .panamera-page-header,
  .events-calendar-shell,
  .update-note-card,
  .admin-editor-grid { grid-template-columns:1fr; }
  .events-list-grid { grid-template-columns:1fr; }
  .update-note-media { min-height:200px; }
}
@media (max-width: 720px) {
  .panamera-page { width:min(100% - 16px, 100%); padding:16px; }
  .events-calendar-grid { overflow:auto; }
  .events-calendar-head,
  .events-day { min-width:130px; }
  .login-dialog { width:min(100% - 16px, 100%); }
  .login-dialog > img,
  .login-dialog > .section-kicker,
  .login-dialog > h2,
  .login-dialog > p,
  .login-dialog form,
  .login-dialog .dialog-links { margin-left: 18px; margin-right: 18px; }
  .admin-entry-card { grid-template-columns:1fr; }
  .admin-entry-actions { flex-direction:row; }
}
