/* JL Planners — Hotel / Accommodation Planner module styles.
 * Builds only on the foundation's --jlp-* design tokens (planner-shell.css).
 * Mobile-first: single column; the rail moves beside the editor at >= 980px. */

.hap{display:flex;flex-direction:column;gap:18px}

/* Locked / preview banner */
.hap-locked{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--jlp-line-strong);border-radius:var(--jlp-radius-lg);background:linear-gradient(180deg,var(--jlp-blush),var(--jlp-surface))}
.hap-locked__icon{display:inline-flex;flex:0 0 auto;color:var(--jlp-gold-deep);line-height:1}
.hap-locked__text{flex:1 1 220px;font-size:.92rem;color:var(--jlp-ink-soft)}

/* Meta header */
.hap-head{display:flex;flex-direction:column;gap:12px}
.hap-h2{font-family:var(--jlp-ff-display);font-size:clamp(1.4rem,3vw,1.9rem);font-weight:500;color:var(--jlp-gold-deep);margin:0}
.hap-head__grid{display:grid;grid-template-columns:1fr;gap:12px}
@media (min-width:640px){.hap-head__grid{grid-template-columns:1fr 1fr}}

/* Toolbar */
.hap-toolbar{display:flex;flex-wrap:wrap;gap:8px}

/* Layout */
.hap-layout{display:grid;grid-template-columns:1fr;gap:18px}
@media (min-width:980px){.hap-layout{grid-template-columns:minmax(0,1fr) 320px}}
.hap-main{display:flex;flex-direction:column;gap:18px;min-width:0}

/* Sections + cards */
.hap-section{display:flex;flex-direction:column;gap:10px}
.hap-section__head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.hap-section__title{font-family:var(--jlp-ff-display);font-size:1.2rem;font-weight:500;color:var(--jlp-ink);margin:0}
.hap-rows{display:flex;flex-direction:column;gap:12px}
.hap-card{border:1px solid var(--jlp-line);border-radius:var(--jlp-radius-lg);background:var(--jlp-surface);padding:14px;box-shadow:var(--jlp-shadow-sm);display:flex;flex-direction:column;gap:10px}
.hap-card--hotel{border-left:3px solid var(--jlp-champagne)}
.hap-card--guest{border-left:3px solid var(--jlp-rose)}
.hap-card__row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.hap-card__row--grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (min-width:640px){.hap-card__row--grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:980px){.hap-card__row--grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.hap-field--grow{flex:1 1 180px;min-width:0}
.hap-card__remove{flex:0 0 auto;align-self:flex-start;width:32px;height:32px;border:1px solid var(--jlp-line);border-radius:var(--jlp-radius);background:transparent;color:var(--jlp-ink-mute);font-size:1.2rem;line-height:1;cursor:pointer;transition:color .15s var(--jlp-ease),border-color .15s var(--jlp-ease)}
.hap-card__remove:hover{color:var(--jlp-error);border-color:var(--jlp-line-strong)}
.hap-empty{margin:0;padding:14px;border:1px dashed var(--jlp-line);border-radius:var(--jlp-radius-lg);text-align:center}
.hap-add{align-self:flex-start}

/* Rail */
.hap-rail{display:flex;flex-direction:column;gap:14px}
@media (min-width:980px){.hap-rail{position:sticky;top:24px;align-self:start}}
.hap-rail-box{border:1px solid var(--jlp-line);border-radius:var(--jlp-radius-lg);background:var(--jlp-surface);padding:14px;box-shadow:var(--jlp-shadow-sm)}
.hap-rail__title{font-family:var(--jlp-ff-display);font-size:1.05rem;font-weight:500;color:var(--jlp-ink);margin:0 0 8px}

/* Counters */
.hap-counters__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.hap-counter{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid var(--jlp-line);border-radius:var(--jlp-radius);background:var(--jlp-bg)}
.hap-counter__num{font-family:var(--jlp-ff-display);font-size:1.4rem;line-height:1;color:var(--jlp-gold-deep)}
.hap-counter__label{font-size:.74rem;color:var(--jlp-ink-soft);text-transform:uppercase;letter-spacing:.04em}
.hap-counter--warn{border-color:rgba(179,38,30,.4);background:#fbf2f2}
.hap-counter--warn .hap-counter__num{color:var(--jlp-error)}
.hap-counter--ok .hap-counter__num{color:var(--jlp-ok)}
.hap-counters__nba{margin:12px 0 0;padding:10px 12px;border-radius:var(--jlp-radius);background:linear-gradient(180deg,var(--jlp-cream),var(--jlp-surface));border:1px solid var(--jlp-line);display:flex;flex-direction:column;gap:3px}
.hap-counters__nba-eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:var(--jlp-gold-deep)}
.hap-counters__nba-text{font-size:.92rem;color:var(--jlp-ink)}

/* Warnings */
.hap-warnings__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.hap-warn{font-size:.86rem;padding:8px 10px;border-radius:var(--jlp-radius);border-left:3px solid var(--jlp-line-strong);background:var(--jlp-bg);color:var(--jlp-ink-soft)}
.hap-warn--warn{border-left-color:#c9852a;background:#fbf6ee;color:#7a5410}
.hap-warn--error{border-left-color:var(--jlp-error);background:#fbf2f2;color:#8a1f18}
.hap-warn--info{border-left-color:var(--jlp-champagne)}
.hap-unassigned{margin-top:12px}
.hap-unassigned__title{font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--jlp-error);margin:0 0 6px}
.hap-unassigned__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:.88rem;color:var(--jlp-ink-soft)}
.hap-unassigned__list li{padding:3px 8px;border:1px dashed rgba(179,38,30,.35);border-radius:var(--jlp-radius);background:#fbf2f2}

/* History */
.hap-history__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.hap-history__list li{display:flex;gap:8px;font-size:.84rem;color:var(--jlp-ink-soft);padding:4px 0;border-bottom:1px solid var(--jlp-line)}
.hap-history__list li:last-child{border-bottom:0}
.hap-history__when{flex:0 0 auto;color:var(--jlp-ink-mute);font-variant-numeric:tabular-nums}
.hap-history__what{flex:1 1 auto;min-width:0}

/* Dialog (import) */
.hap-dialog{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:16px}
.hap-dialog[hidden]{display:none}
.hap-dialog__backdrop{position:absolute;inset:0;background:rgba(42,31,26,.5);backdrop-filter:blur(2px)}
.hap-dialog__panel{position:relative;z-index:1;width:min(440px,100%);max-height:90vh;overflow:auto;background:var(--jlp-surface);border-radius:var(--jlp-radius-lg);box-shadow:var(--jlp-shadow);padding:22px;display:flex;flex-direction:column;gap:12px}
.hap-dialog__close{position:absolute;top:8px;right:10px;border:0;background:transparent;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--jlp-ink-mute)}
.hap-dialog__title{font-family:var(--jlp-ff-display);font-size:1.2rem;font-weight:500;margin:0;color:var(--jlp-ink)}
.hap-dialog__actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.hap-import__plans{display:flex;flex-direction:column;gap:6px}
.hap-import__radio{display:flex;gap:8px;align-items:center;font-size:.9rem;padding:6px 8px;border:1px solid var(--jlp-line);border-radius:var(--jlp-radius);cursor:pointer}
.hap-import__radio input{margin:0}
.hap-import__mode{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.hap-import__error{margin:0;font-size:.86rem;color:var(--jlp-error);padding:8px 10px;background:#fbf2f2;border-radius:var(--jlp-radius)}

@media (prefers-reduced-motion:reduce){
	.hap-card__remove{transition:none}
}
