:root {
  --christmas-green:#07382b; --christmas-deep-green:#05271f; --christmas-pine:#123d2e;
  --christmas-red:#9f1725; --christmas-burgundy:#740d1a; --christmas-gold:#d6ae59;
  --christmas-gold-light:#f4dfac; --christmas-cream:#fff6e6; --christmas-parchment:#f8ecd6;
  --christmas-snow:#fffdf6; --christmas-text:#183d2c; --christmas-muted:#70644d;
}
.christmas-app.lodge {
  min-height:100vh; isolation:isolate; position:relative; padding:0; overflow:clip;
  color:var(--christmas-cream);
  background:radial-gradient(ellipse at 50% 12%,#205843a6,transparent 65%),radial-gradient(ellipse at 90% 72%,#23544377,transparent 55%),linear-gradient(140deg,#062b21,#0b402f 45%,#041f19) !important;
}
.lodge *, .lodge *::before, .lodge *::after { box-sizing:border-box }
.lodge::before {
  content:""; position:absolute; inset:0; pointer-events:none; z-index:-1; opacity:.65;
  background-image:url("./lodge-icons.svg#flurry"); background-size:390px 340px;
}
.lodge .lodge-garland { display:block; width:100%; height:clamp(104px,14vw,185px); object-fit:cover; object-position:center 35%; mask-image:linear-gradient(#000 73%,transparent); }
.lodge > header {
  width:min(100% - 2rem,72rem); border:0; box-shadow:none; background:transparent;
  padding:.35rem 0; border-radius:0;
}
.lodge .planner-brand {
  gap:15px; color:#f4f6fc; white-space:nowrap;
  font:900 16px/1.6 Inter,"Segoe UI",system-ui,-apple-system,sans-serif; letter-spacing:.16px;
}
.lodge .planner-brand img { width:24px; height:24px; filter:drop-shadow(0 0 9px #ae6cff8c) }
.lodge > main { width:min(100% - 2rem,72rem); padding-bottom:1.5rem }
.lodge .planner-hero {
  min-height:220px; position:relative; padding:1rem 0 1.2rem; border:0; box-shadow:none;
  background:transparent; margin:0; isolation:isolate;
}
.lodge .planner-hero h1 {
  position:relative; font-family:Georgia,serif; color:var(--christmas-gold-light);
  text-shadow:0 1px var(--christmas-cream),0 4px 9px #0009;
  font-size:clamp(2.15rem,6.25vw,4.2rem); margin:.65rem 0 .35rem; line-height:1.05;
}
.lodge .holiday-ribbon {
  display:inline-block; position:relative; padding:.35rem 1.15rem;
  background:linear-gradient(#9f1725,#740d1a); border:1px solid var(--christmas-gold);
  clip-path:polygon(3% 0,97% 0,100% 50%,97% 100%,3% 100%,0 50%);
}
.lodge .planner-hero .holiday-subtitle { position:relative; font:italic clamp(1rem,2.3vw,1.3rem)/1.45 Georgia,serif; margin:0; color:var(--christmas-cream) }
.lodge .lodge-still { position:absolute; z-index:-1; right:-1rem; bottom:-.2rem; width:min(31%,340px); height:auto; pointer-events:none; mask-image:radial-gradient(ellipse,#000 37%,#000d 52%,transparent 73%); }
.lodge .pine-divider { display:flex; align-items:center; gap:.7rem; margin:.6rem 0 0; max-width:36rem; color:var(--christmas-gold-light) }
.lodge .pine-divider::before,.lodge .pine-divider::after { content:""; height:1px; background:linear-gradient(90deg,transparent,var(--christmas-gold)); flex:1 }
.lodge .pine-divider::after { transform:scaleX(-1) }
.lodge .pine-divider svg { width:46px; height:26px; fill:currentColor }
.lodge .lodge-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:0 0 1.2rem }
.lodge .lodge-stat {
  position:relative; display:flex; align-items:center; gap:.9rem; min-height:112px; min-width:0; padding:.95rem;
  color:var(--christmas-text); background:linear-gradient(150deg,var(--christmas-snow),var(--christmas-parchment));
  border:4px double #ac7e30; border-radius:1.1rem; box-shadow:0 9px 16px #00150e88,inset 0 0 12px #b484302a;
}
.lodge .lodge-stat::before { content:""; position:absolute; inset:-4px .6rem auto .6rem; height:7px; background:linear-gradient(#fffdf6,#e4dfd2); border-radius:65% 35% 38% 58%; pointer-events:none }
.lodge .lodge-stat::after { content:""; position:absolute; right:.2rem; top:-.45rem; width:40px; height:32px; background:url("./lodge-icons.svg#holly") center/contain no-repeat; pointer-events:none }
.lodge .lodge-stat > svg { width:clamp(32px,5vw,59px); height:clamp(32px,5vw,59px); flex:none }
.lodge .lodge-stat > div { min-width:0; padding-left:.85rem; border-left:1px solid #b3955c }
.lodge .lodge-stat span { display:block; color:#624923; text-transform:uppercase; letter-spacing:.04em; font:700 clamp(.75rem,1.6vw,.95rem) Georgia,serif }
.lodge .lodge-stat strong { display:block; margin-top:.2rem; overflow-wrap:anywhere; font:700 clamp(1.35rem,3.1vw,2.1rem)/1.05 Georgia,serif }
.lodge main > section:not(.planner-hero),.lodge .lodge-gift {
  background:linear-gradient(145deg,var(--christmas-snow),var(--christmas-parchment)); border:4px double #b38a42;
  color:var(--christmas-text); box-shadow:0 12px 28px #00150e66; border-radius:1.1rem;
}
.lodge main > h2 { color:var(--christmas-gold-light) !important; background:none !important; padding:0 !important; border:0 !important; font-size:1.8rem; margin:1.5rem 0 .4rem !important }
.lodge .lodge-gift {
  position:relative; isolation:isolate; min-inline-size:0; padding:1rem 1.2rem 1.25rem clamp(3.5rem,9vw,6.5rem);
  background:linear-gradient(145deg,var(--christmas-snow),var(--christmas-parchment));
}
.lodge .lodge-gift::after {
  content:""; position:absolute; inset:auto 0 0 auto; width:min(38%,240px); height:126px; z-index:-1; pointer-events:none;
  background:url("./lodge-cabin.jpg") right bottom / cover no-repeat;
  border-radius:0 0 .8rem 0; mask-image:linear-gradient(135deg,transparent 20%,#000 78%);
}
.lodge .lodge-gift::before {
  content:""; position:absolute; inset:0 auto 0 .8rem; width:clamp(13px,2.8vw,32px); pointer-events:none; z-index:-1;
  background:linear-gradient(90deg,#560c15,#a82434 38%,#740d1a); border-inline:2px solid #cd9e51; box-shadow:2px 0 5px #4c1e1d44;
}
.lodge .lodge-gift legend { margin-left:.2rem; padding:.14rem .65rem; background:var(--christmas-cream); border:1px solid #b38a42; border-radius:.4rem; font:700 1.45rem Georgia,serif }
.lodge .gift-wrap-art { position:absolute; top:-.65rem; left:.2rem; width:clamp(46px,8vw,95px); height:clamp(84px,14vw,150px); pointer-events:none }
.lodge .gift-rule { display:flex; align-items:center; gap:.6rem; margin:0 0 .8rem }
.lodge .gift-rule::before,.lodge .gift-rule::after { content:""; flex:1; height:1px; background:#be9956 }
.lodge .gift-rule svg { width:25px; height:25px }
.lodge .lodge-gift label:has([name="recipient"],[name="idea"]) { font-weight:800; color:var(--christmas-burgundy) }
.lodge .lodge-gift label:has([name="category"],[name="actual"],[name="status"]) { font-weight:700 }
.lodge .fields input,.lodge .fields select { width:100%; min-width:0; background:#fffdf9; color:#183d2c; font-weight:400 }
.lodge #privacy { color:var(--christmas-cream); background:#05271f; border:1px solid #d6ae5990 }
.lodge #save-status { color:var(--christmas-cream) }
.lodge .lodge-snow { display:block; width:100%; height:clamp(42px,7vw,95px); object-fit:cover; object-position:center bottom; mask-image:linear-gradient(transparent,#000 32%); }
@media (prefers-reduced-motion:no-preference) {
  .lodge::before { animation:lodge-twinkle 7s ease-in-out infinite alternate }
  @keyframes lodge-twinkle { from {opacity:.38} to {opacity:.72} }
}
@media (max-width:700px) {
  .lodge .lodge-summary { gap:.55rem }
  .lodge .lodge-stat { padding:.65rem; gap:.38rem; min-height:92px }
  .lodge .lodge-stat > div { padding-left:.4rem }
  .lodge .lodge-still { opacity:.55; bottom:1.6rem; width:39% }
}
@media (max-width:490px) {
  .lodge .lodge-summary { grid-template-columns:1fr }
  .lodge .lodge-stat { padding:.6rem .85rem; min-height:62px; gap:.75rem }
  .lodge .lodge-stat > div { padding-left:.75rem }
  .lodge .lodge-gift .fields { grid-template-columns:1fr }
  .lodge .lodge-gift { padding-right:.8rem }
  .lodge .lodge-still { display:none }
  .lodge .planner-hero { min-height:0 }
  .lodge .music-toggle { font-size:.8rem }
}
@media print {
  #print-sheet .export-head { background:#05271f url("./lodge-garland.jpg") center 40%/cover; min-height:65px }
  #print-sheet .export-brand { background:#05271f; padding:4px 8px }
  #print-sheet .export-title { font-family:Georgia,serif; color:#07382b }
  #print-sheet .export-stat,#print-sheet .gift-export { background:#fff6e6; border:3px double #ac7e30 }
  #print-sheet .gift-export { border-left:5px solid #740d1a }
}
