.nl-cal-overlay { position: fixed; inset: 0; z-index: 2147483645; display: grid; place-items: center; background: #06050bd9; backdrop-filter: blur(12px); padding: 24px; font-family: Inter,system-ui,sans-serif; }
.nl-cal { position: relative; width: min(1160px,100%); max-height: 92dvh; overflow: auto; background: #151017; border: 1px solid #65404b; border-radius: 20px; color: #f6e9ec; box-shadow: 0 30px 100px #0009; }
.nl-cal button,.nl-cal a,.nl-cal select { font-family: inherit; }
.nl-cal-close { position: absolute; right: 16px; top: 16px; width: 32px; height: 32px; background: #1a111ccc; color: #f1dbe1; border: 1px solid #80586455; border-radius: 50%; font-size: 22px; cursor: pointer; z-index: 3; }
.nl-cal-hero { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 32px 38px; background: linear-gradient(90deg,#24131feb,#1e111c99),url('/assets/new-leak-xmas-city.png') center 40%/cover; border-bottom: 1px solid #50313d; }
.nl-cal-hero img { width: 30%; max-width: 280px; height: auto; object-fit: contain; filter: drop-shadow(0 10px 20px #0008); }
.nl-cal-kicker { font-size: 9px; font-weight: 600; letter-spacing: 2px; color: #d09da8; }
.nl-cal-hero h2 { font-size: clamp(32px,4vw,48px); line-height: 1.03; font-weight: 650; letter-spacing: -1.7px; margin: 17px 0 14px; color: #fff4f3; }
.nl-cal-hero h2 em { font-family: Georgia,serif; font-weight: 400; color: #eeb1b7; }
.nl-cal-hero p { color: #baa0ae; font-size: 12px; line-height: 1.7; margin: 0 0 16px; }
.nl-cal-dates { font-size: 9px; letter-spacing: 2px; color: #e8c3c8; }
.nl-cal-summary { display: flex; align-items: center; gap: 24px; padding: 22px 38px; }
.nl-cal-summary>div:first-child { display: flex; align-items: center; gap: 10px; }
.nl-cal-summary strong { font-size: 24px; letter-spacing: -1px; white-space: nowrap; }
.nl-cal-summary strong span { color: #906c7a; font-weight: 400; }
.nl-cal-summary>div>span { color: #ae91a0; font-size: 10px; max-width: 60px; line-height: 1.5; }
.nl-cal-progress { height: 4px; flex: 1; background: #39232f; border-radius: 4px; overflow: hidden; }
.nl-cal-progress i { display: block; height: 100%; background: #da7485; border-radius: inherit; }
.nl-cal-state { font-size: 8px; font-weight: 600; letter-spacing: 1.2px; color: #c49aa6; }
.nl-cal-demo { margin: 0 38px 18px; display: flex; align-items: center; gap: 10px; color: #b79ba8; font-size: 11px; }
.nl-cal-demo select { padding: 6px 10px; background: #2d1b28; color: #ebd0da; border: 1px solid #5b3b49; border-radius: 6px; }
.nl-cal-grid { display: grid; grid-template-columns: repeat(8,minmax(0,1fr)); gap: 10px; padding: 0 38px; }
.nl-cal-day { position: relative; display: flex; flex-direction: column; align-items: flex-start; min-height: 126px; padding: 13px 14px; background: #211622; border: 1px solid #432b3a; border-radius: 10px; text-align: left; color: #bc8e9f; overflow: hidden; }
.nl-cal-day-top { display: flex; width: 100%; justify-content: space-between; align-items: center; color: #906777; font-size: 11px; }
.nl-cal-day-top span { font-size: 7px; letter-spacing: 1.6px; }
.nl-cal-day strong { font-size: 33px; font-weight: 500; letter-spacing: -1.5px; line-height: 1; margin: 13px 0 10px; }
.nl-cal-day-label { margin-top: auto; font-size: 8px; color: #886675; }
.nl-cal-day.today { background: linear-gradient(135deg,#a52d43,#642039); color: #fff0ee; border-color: #e697a3; box-shadow: inset 0 1px #ffffff22; cursor: pointer; }
.nl-cal-day.today::after { content:'↗'; position: absolute; right: 13px; bottom: 13px; color: #ffcecc; font-size: 18px; }
.nl-cal-day.today .nl-cal-day-top,.nl-cal-day.today .nl-cal-day-label { color: #f1b4c0; }
.nl-cal-day.special { border-color: #82604b; background-image: radial-gradient(ellipse at top right,#d8a96614,transparent 70%); }
.nl-cal-day.special strong { color: #dfb88b; }
.nl-cal-special { position: absolute; right: 10px; top: 43px; writing-mode: vertical-rl; font-size: 6px; letter-spacing: 1px; color: #ba9670; }
.nl-cal-day.opened { background: #18231f; border-color: #344c40; color: #9db6a2; }
.nl-cal-day.opened .nl-cal-day-label { color: #8fa996; }
.nl-cal-day.missed { opacity: .55; }
.nl-cal-day:disabled { cursor: default; }
.nl-cal-day:not(:disabled):hover { border-color: #eeb1b7; transform: translateY(-2px); }
.nl-cal-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 38px 18px; }
.nl-cal-footer p { font-size: 11px; color: #ad8d9c; line-height: 1.7; margin: 0; }
.nl-cal-footer a,.nl-cal-footer button,.nl-cal-error button { display: inline-flex; align-items: center; gap: 9px; padding: 12px 17px; background: #ebcad0; color: #381c2a; text-decoration: none; border: 1px solid #ebcad0; border-radius: 7px; font-size: 11px; font-weight: 600; cursor: pointer; white-space: nowrap; }
.nl-cal-footer button:disabled { background: #2e1d2a; color: #91717e; border-color: #48303d; cursor: default; }
.nl-cal-message { min-height: 0; margin: 0 38px 20px; color: #e7a0ad; font-size: 12px; line-height: 1.6; }
.nl-cal-message:empty { display: none; }
.nl-cal-message.success { padding: 14px 18px; border: 1px solid #4e6a51; background: #1f2c24; border-radius: 8px; color: #bed6bf; }
.nl-cal-error { padding: 60px 38px; }
.nl-cal-error p { color: #b393a3; font-size: 13px; }
.nl-cal :is(button,a,select):focus-visible { outline: 2px solid #f2b7c0; outline-offset: 3px; }
@media(max-width:800px) { .nl-cal-grid { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; padding: 0 22px; } .nl-cal-hero { padding: 28px 22px; } .nl-cal-summary { padding: 20px 22px; flex-wrap: wrap; gap: 14px; } .nl-cal-footer { padding: 22px; flex-wrap: wrap; } .nl-cal-demo { margin-left: 22px; } .nl-cal-message { margin: 0 22px 20px; } }
@media(max-width:480px) { .nl-cal-overlay { padding: 10px; } .nl-cal { border-radius: 13px; max-height: 95dvh; } .nl-cal-hero { padding: 28px 20px 24px; } .nl-cal-hero img { display: none; } .nl-cal-hero h2 { font-size: 37px; } .nl-cal-hero p { max-width: 230px; } .nl-cal-grid { grid-template-columns: repeat(4,minmax(0,1fr)); padding: 0 16px; gap: 7px; } .nl-cal-day { padding: 10px; min-height: 107px; border-radius: 8px; } .nl-cal-day strong { font-size: 28px; } .nl-cal-state { width: 100%; } .nl-cal-special { display: none; } .nl-cal-day-label { font-size: 7px; } }
@media(prefers-reduced-motion:reduce) { .nl-cal-day:not(:disabled):hover { transform: none; } }
@media(min-width:801px) {
  .nl-cal-hero { padding: 24px 32px; }
  .nl-cal-hero h2 { font-size: 38px; margin: 12px 0 10px; }
  .nl-cal-hero p { font-size: 11px; margin-bottom: 12px; }
  .nl-cal-hero img { max-width: 230px; }
  .nl-cal-summary { padding: 16px 32px; }
  .nl-cal-grid { padding: 0 32px; }
  .nl-cal-day { min-height: 108px; padding: 11px 13px; }
  .nl-cal-day strong { font-size: 30px; margin: 10px 0 8px; }
  .nl-cal-footer { padding: 18px 32px; }
}
.nl-cal-lock-notice { display:flex; align-items:center; gap:14px; margin:0 32px 18px; padding:16px 18px; border:1px solid #62424f; border-radius:10px; background:linear-gradient(100deg,#37202e,#231722); }
.nl-cal-lock-notice>i { display:grid; place-items:center; width:36px; height:36px; flex-shrink:0; border:1px solid #795465; border-radius:50%; color:#e4bcc8; background:#4a2a3b; font-size:14px; }
.nl-cal-lock-notice strong { color:#f0dce2; font-size:12px; font-weight:600; }
.nl-cal-lock-notice p { color:#b797a5; font-size:10px; line-height:1.6; margin:5px 0 0; }
.nl-cal-lock-notice>span { color:#c5a0ae; font-size:9px; letter-spacing:1px; margin-left:auto; white-space:nowrap; }
.nl-cal-day.locked .nl-cal-day-top i { color:#9c7183; font-size:11px; }
.nl-cal-day.locked { background:repeating-linear-gradient(135deg,#ffffff00 0,#ffffff00 9px,#ffffff02 10px,#ffffff02 11px),#211622; }
@media(max-width:800px){.nl-cal-lock-notice{margin:0 22px 18px}.nl-cal-lock-notice>span{display:none}}
@media(max-width:480px){.nl-cal-lock-notice{margin:0 16px 16px;padding:13px}.nl-cal-lock-notice p{font-size:10px}}
.nl-cal-close { position:sticky !important; top:14px !important; float:right; margin:14px 14px -46px 0; z-index:4; }
