:root {
  --pn-pattern-image: url("/brand/playn-geometric-pattern.png");
  --pn-wordmark-image: url("/brand/playn-wordmark-wide.png");
}

.planner-shell { min-height:100vh; }
.planner-topbar { min-height:5.5rem; padding:var(--pn-space-3) clamp(1rem,3vw,2.5rem); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:var(--pn-space-4); border-bottom:1px solid var(--pn-line); background:rgba(255,255,255,.94); box-shadow:var(--pn-shadow-sm); }
.planner-brand { color:var(--pn-ink); text-decoration:none; }.planner-brand .pn-brand__wordmark { width:6.75rem; }.planner-brand .pn-brand__text { padding-left:var(--pn-space-3); border-left:1px solid var(--pn-line); }.planner-brand small { color:var(--pn-muted); }
.month-nav { display:flex; align-items:center; gap:var(--pn-space-4); text-align:center; }.month-nav .pn-title { margin:0; }
.top-actions { justify-self:end; display:flex; align-items:center; gap:var(--pn-space-4); }
.calendar-legend { display:flex; gap:var(--pn-space-3); color:var(--pn-muted); font-size:var(--pn-font-size-xs); font-weight:800; }.calendar-legend span::before { content:""; display:inline-block; width:.65rem; height:.65rem; margin-right:.35rem; border-radius:50%; vertical-align:-.05rem; }.legend-friday::before { background:var(--pn-blue); }.legend-saturday::before { background:var(--pn-yellow); }.legend-activity::before { background:var(--pn-pink); }

.planner-main { margin-left:0; padding:var(--pn-space-5) clamp(.75rem,2.5vw,2rem) var(--pn-space-8); }
.planner-banner { position:relative; min-height:10.5rem; margin-bottom:var(--pn-space-5); padding:clamp(1.35rem,3vw,2.25rem); display:flex; align-items:center; justify-content:space-between; gap:var(--pn-space-5); overflow:hidden; border:1px solid var(--pn-line); border-radius:var(--pn-radius-xl); color:var(--pn-ink); background:linear-gradient(100deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.95) 58%,rgba(255,255,255,.7) 100%),var(--pn-pattern-image); background-repeat:no-repeat; background-position:center,right center; background-size:cover,42rem auto; box-shadow:var(--pn-shadow-md); }
.planner-banner__pattern { display:none; }
.planner-banner__copy,.planner-banner__routes { position:relative; z-index:1; }
.planner-banner__copy { max-width:42rem; }.planner-banner__eyebrow { display:block; width:fit-content; margin-bottom:.7rem; padding:.34rem .58rem; border:1px solid #f0d0c8; border-radius:var(--pn-radius-pill); color:#b63622; background:#fff2ee; font-size:var(--pn-font-size-xs); font-weight:900; letter-spacing:.08em; text-transform:uppercase; }.planner-banner h2 { margin:0 0 .55rem; color:var(--pn-ink); font-size:clamp(1.6rem,3vw,2.45rem); line-height:1.05; letter-spacing:-.045em; }.planner-banner p { max-width:38rem; margin:0; color:var(--pn-muted); font-size:var(--pn-font-size-sm); line-height:1.55; }
.planner-banner__routes { max-width:26rem; display:flex; justify-content:flex-end; gap:.5rem; flex-wrap:wrap; }.planner-banner__routes span { padding:.48rem .7rem; border:1px solid var(--pn-line); border-radius:var(--pn-radius-pill); color:var(--pn-text); background:rgba(255,255,255,.9); box-shadow:var(--pn-shadow-sm); font-size:var(--pn-font-size-xs); font-weight:850; }
.prototype-safety-note { margin:-.65rem 0 var(--pn-space-4); padding:.65rem .85rem; display:flex; align-items:center; gap:.55rem; border:1px solid #f0d0c8; border-radius:var(--pn-radius-md); color:#7e3021; background:#fff8f5; font-size:var(--pn-font-size-xs); }.prototype-safety-note strong,.prototype-safety-note span { display:block; }
.role-hidden { display:none !important; }
.planner-embedded { background:transparent; }.planner-embedded .planner-shell { min-height:auto; }.planner-embedded .planner-topbar { min-height:4.5rem; grid-template-columns:1fr auto; border-radius:var(--pn-radius-lg); }.planner-embedded .planner-brand { display:none; }.planner-embedded .month-nav { justify-self:start; }.planner-embedded .top-actions { justify-self:end; }.planner-embedded .calendar-legend { display:none; }.planner-embedded .planner-main { padding:1rem 0 0; }.planner-embedded .planner-banner { min-height:8.5rem; margin-bottom:1rem; }.planner-embedded .calendar-card { box-shadow:none; }.planner-embedded .prototype-safety-note { margin-top:0; }
.calendar-card { padding:0; overflow:hidden; border-radius:var(--pn-radius-xl); box-shadow:var(--pn-shadow-md); }
.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.calendar-weekday { padding:.75rem; color:var(--pn-text); background:var(--pn-surface-soft); border-bottom:1px solid var(--pn-line); font-size:var(--pn-font-size-xs); font-weight:900; text-align:center; letter-spacing:.08em; text-transform:uppercase; }
.calendar-weekday.friday-label { color:var(--pn-info); background:var(--pn-info-soft); }.calendar-weekday.saturday-label { color:var(--pn-warning); background:var(--pn-warning-soft); }
.day-card { min-height:10.5rem; padding:.78rem; display:flex; flex-direction:column; border:0; border-right:1px solid var(--pn-line); border-bottom:1px solid var(--pn-line); color:var(--pn-ink); background:var(--pn-surface); text-align:left; cursor:pointer; transition:transform var(--pn-transition),box-shadow var(--pn-transition); }
.day-card:hover { position:relative; z-index:2; transform:translateY(-2px); box-shadow:inset 0 0 0 2px var(--pn-blue),var(--pn-shadow-md); }
.day-card.friday { background:linear-gradient(145deg,var(--pn-info-soft),var(--pn-surface)); }
.day-card.saturday { background:linear-gradient(145deg,var(--pn-warning-soft),var(--pn-surface)); }
.day-card.has-activity { box-shadow:inset .34rem 0 0 var(--pn-pink); }
.day-card.has-activity.friday { box-shadow:inset .34rem 0 0 var(--pn-blue),inset .68rem 0 0 var(--pn-pink); }
.day-card.has-activity.saturday { box-shadow:inset .34rem 0 0 var(--pn-yellow),inset .68rem 0 0 var(--pn-pink); }
.day-card.outside { color:var(--pn-subtle); background:#f6f7f8; cursor:default; }.day-card.outside:hover { transform:none; box-shadow:none; }
.day-number { display:flex; justify-content:space-between; align-items:center; font-size:var(--pn-font-size-sm); font-weight:900; }.day-number i { width:.55rem; height:.55rem; border-radius:50%; background:var(--pn-line); }.day-number i.planned { background:var(--pn-green); }
.day-theme { display:block; margin:.55rem 0 .3rem; overflow:hidden; font-size:var(--pn-font-size-sm); font-weight:900; text-overflow:ellipsis; white-space:nowrap; }
.type-pill { width:fit-content; max-width:100%; margin:.15rem 0 .25rem; padding:.22rem .42rem; overflow:hidden; border-radius:var(--pn-radius-pill); color:var(--pn-info); background:var(--pn-info-soft); font-size:var(--pn-font-size-xs); font-weight:900; text-overflow:ellipsis; white-space:nowrap; }
.type-pill.toddlers { color:var(--pn-success); background:var(--pn-success-soft); }.type-pill.offer { color:var(--pn-warning); background:var(--pn-warning-soft); }.type-pill.staff { color:#8c2d5a; background:#fff1f7; }.type-pill.housekeeping { color:var(--pn-text); background:var(--pn-surface-soft); }
.activity-pill { display:block; margin:.25rem 0; padding:.25rem .4rem; overflow:hidden; border-radius:var(--pn-radius-sm); color:#8c2d5a; background:rgba(237,127,174,.18); font-size:var(--pn-font-size-xs); font-weight:850; text-overflow:ellipsis; white-space:nowrap; }
.marketing-milestone { display:block; margin:.2rem 0; padding:.24rem .4rem; overflow:hidden; border-radius:var(--pn-radius-sm); color:#075f83; background:var(--pn-info-soft); font-size:var(--pn-font-size-xs); font-weight:850; text-overflow:ellipsis; white-space:nowrap; }
.marketing-milestone.movable { cursor:grab; }.marketing-milestone.movable:active { cursor:grabbing; }
.day-metrics { display:flex; gap:.25rem; flex-wrap:wrap; margin-top:auto; padding-top:.55rem; }.day-metrics span { padding:.18rem .35rem; border-radius:var(--pn-radius-sm); color:var(--pn-text); background:rgba(255,255,255,.76); font-size:var(--pn-font-size-xs); font-weight:800; }

.day-dialog { width:min(62rem,calc(100vw - 2rem)); padding:0; border:0; }.dialog-header { display:flex; align-items:center; justify-content:space-between; }
.overview-fields { display:grid; grid-template-columns:repeat(4,1fr); gap:var(--pn-space-3); }.overview-fields .pn-field:first-child { grid-column:span 2; }
.department-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--pn-space-3); margin-top:var(--pn-space-4); }
.function-card { padding:var(--pn-space-4); overflow:visible; }.function-card .pn-card__header { margin-bottom:var(--pn-space-3); }.function-card .pn-card__header h3 { font-size:var(--pn-font-size-md); }
.function-card[data-function="marketing"] { grid-column:1/-1; }
.marketing-workflow { margin-top:var(--pn-space-4); padding-top:var(--pn-space-4); border-top:1px solid var(--pn-line); }.marketing-workflow__heading { display:flex; align-items:end; justify-content:space-between; gap:var(--pn-space-3); margin-bottom:var(--pn-space-3); }.marketing-workflow__heading h4 { margin:.2rem 0 0; font-size:var(--pn-font-size-md); }.workflow-help { margin:.3rem 0 0; color:var(--pn-muted); font-size:var(--pn-font-size-xs); }.compact-field { width:min(17rem,100%); }
.publish-first-row { padding:var(--pn-space-4); display:flex; align-items:center; gap:var(--pn-space-4); border:1px solid #f0d0c8; border-radius:var(--pn-radius-lg); background:#fff8f5; }.publish-date-field { width:min(19rem,100%); }.publish-date-note strong,.publish-date-note span { display:block; }.publish-date-note strong { margin-bottom:.25rem; color:#b63622; }.publish-date-note span { color:var(--pn-muted); font-size:var(--pn-font-size-xs); }
.production-task-section { margin-top:var(--pn-space-4); }.production-task-heading { display:flex; align-items:baseline; justify-content:space-between; gap:var(--pn-space-3); margin-bottom:var(--pn-space-2); }.production-task-heading span { color:var(--pn-muted); font-size:var(--pn-font-size-xs); }.production-task-list { border-top:1px solid var(--pn-line); }.production-task-row { min-height:3.25rem; display:grid; grid-template-columns:auto 1fr auto auto; align-items:center; gap:var(--pn-space-3); border-bottom:1px solid var(--pn-line); }.production-task-row strong { font-size:var(--pn-font-size-sm); }.production-task-row time { color:var(--pn-muted); font-size:var(--pn-font-size-xs); font-weight:800; }.production-task-row button { border:0; color:var(--pn-danger); background:transparent; cursor:pointer; }.production-task-row.done strong { color:var(--pn-muted); text-decoration:line-through; }.production-task-compose { display:grid; grid-template-columns:1fr minmax(10rem,.35fr) auto; align-items:end; gap:var(--pn-space-2); margin-top:var(--pn-space-3); }
.cashier-brief { grid-column:1/-1; padding:var(--pn-space-4); border-color:var(--pn-info); }.cashier-brief__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--pn-space-3); margin-bottom:var(--pn-space-4); }.cashier-brief__grid div { padding:var(--pn-space-3); border-radius:var(--pn-radius-md); background:var(--pn-surface-soft); }.cashier-brief__grid span,.cashier-brief__grid strong { display:block; }.cashier-brief__grid span { margin-bottom:.4rem; color:var(--pn-muted); font-size:var(--pn-font-size-xs); font-weight:800; }.cashier-brief__grid strong { color:var(--pn-ink); font-size:var(--pn-font-size-sm); line-height:1.5; }
.route-badges { display:flex; gap:var(--pn-space-1); flex-wrap:wrap; justify-content:flex-end; }
.todo-list { min-height:2.5rem; margin-top:var(--pn-space-3); border-top:1px solid var(--pn-line); }
.todo-row { min-height:2.6rem; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:var(--pn-space-2); border-bottom:1px solid var(--pn-line); color:var(--pn-text); font-size:var(--pn-font-size-xs); }.todo-row.done span { color:var(--pn-muted); text-decoration:line-through; }.todo-row button { border:0; color:var(--pn-danger); background:transparent; cursor:pointer; }
.todo-empty { padding:var(--pn-space-3) 0; color:var(--pn-muted); font-size:var(--pn-font-size-xs); }
.todo-compose { display:grid; grid-template-columns:1fr auto; gap:var(--pn-space-2); margin-top:var(--pn-space-3); }.todo-compose .pn-input { min-height:2.625rem; }.todo-compose .pn-button { min-height:2.625rem; }
.pn-dialog__footer { display:flex; gap:var(--pn-space-2); }.footer-spacer { flex:1; }.danger-action { color:var(--pn-danger); }
.planner-toast { position:fixed; right:1.25rem; bottom:1.25rem; z-index:100; padding:.7rem 1rem; border-radius:var(--pn-radius-md); color:#fff; background:var(--pn-ink); box-shadow:var(--pn-shadow-lg); opacity:0; transform:translateY(.75rem); pointer-events:none; transition:var(--pn-transition); }.planner-toast.show { opacity:1; transform:none; }

@media (max-width:900px) {
  .planner-topbar { grid-template-columns:1fr auto; }.month-nav { order:3; grid-column:1/-1; justify-self:center; }.calendar-legend { display:none; }
  .overview-fields,.department-grid { grid-template-columns:repeat(2,1fr); }.overview-fields .pn-field:first-child { grid-column:span 2; }
}
@media (max-width:680px) {
  .planner-topbar { position:sticky; top:0; z-index:20; padding:.6rem .75rem; grid-template-columns:1fr auto; border-radius:0 0 var(--pn-radius-lg) var(--pn-radius-lg); }
  .planner-brand .pn-brand__wordmark { width:5.5rem; }.planner-brand .pn-brand__text { display:none; }.month-nav { grid-column:1/-1; width:100%; justify-content:space-between; }.month-nav .pn-title { font-size:1.35rem; }
  .top-actions .pn-button { min-height:2.4rem; padding:0 .8rem; }.planner-main { margin:0; padding:.75rem; overflow:visible; }.calendar-card { min-width:0; border-radius:var(--pn-radius-lg); }
  .planner-banner { min-height:auto; margin-bottom:.75rem; padding:1.15rem; align-items:flex-start; flex-direction:column; border-radius:var(--pn-radius-lg); }.planner-banner h2 { font-size:1.55rem; }.planner-banner__routes { justify-content:flex-start; }.planner-embedded .planner-main { padding:0; }.planner-embedded .planner-banner { min-height:auto; }
  .calendar-grid { grid-template-columns:1fr; gap:.5rem; padding:.5rem; background:var(--pn-surface-soft); }
  .calendar-weekday,.day-card.outside { display:none; }
  .day-card { min-height:7.5rem; padding:.8rem .85rem; border:1px solid var(--pn-line); border-radius:var(--pn-radius-md); box-shadow:var(--pn-shadow-sm); }
  .day-card.friday { border-left:.32rem solid var(--pn-blue); }.day-card.saturday { border-left:.32rem solid var(--pn-yellow); }.day-card.has-activity { box-shadow:inset .32rem 0 0 var(--pn-pink),var(--pn-shadow-sm); }
  .day-card.has-activity.friday { box-shadow:inset .32rem 0 0 var(--pn-blue),inset .64rem 0 0 var(--pn-pink),var(--pn-shadow-sm); }.day-card.has-activity.saturday { box-shadow:inset .32rem 0 0 var(--pn-yellow),inset .64rem 0 0 var(--pn-pink),var(--pn-shadow-sm); }
  .day-theme { font-size:var(--pn-font-size-md); }.day-metrics { margin-top:.35rem; }
  .overview-fields,.department-grid,.cashier-brief__grid { grid-template-columns:1fr; }.overview-fields .pn-field:first-child { grid-column:auto; }.marketing-workflow__heading,.publish-first-row,.production-task-heading { align-items:stretch; flex-direction:column; }.production-task-compose { grid-template-columns:1fr; }.production-task-row { grid-template-columns:auto 1fr auto; }.production-task-row time { grid-column:2; }.pn-dialog__footer { flex-wrap:wrap; }.footer-spacer { display:none; }
}
