.pl-page, .pl-dialog {
  --pl-ink: #193e31;
  --pl-muted: #59685e;
  --pl-rule: #d8ddcf;
  --pl-paper: #faf8f1;
  color: var(--pl-ink);
  font-family: var(--sans, "Segoe UI", sans-serif);
}
.pl-page, .pl-page *, .pl-dialog, .pl-dialog * { box-sizing: border-box; }
.pl-page {
  width: min(100%, 1360px);
  margin: 0 auto;
  padding: clamp(30px, 4.7vw, 70px) 0 76px;
}
.pl-head { margin: 0 0 clamp(27px, 4vw, 46px); }
.pl-head h1, .pl-dialoghead h2, .pl-dayname h2, .pl-nolist h2, .pl-group h2 {
  color: var(--pl-ink);
  font-family: var(--serif, Georgia, serif);
  font-weight: 500;
  margin: 0;
}
.pl-head h1 { font-size: clamp(2.8rem, 5.8vw, 6rem); line-height: 1.02; letter-spacing: -.057em; }
.pl-head h1 i { font-style: normal; color: #9e482f; }
.pl-head p, .pl-nolist p, .pl-dialog p { margin: 12px 0 0; max-width: 630px; color: var(--pl-muted); line-height: 1.55; }
.pl-page button, .pl-dialog button, .pl-dialog input, .pl-dialog select, .pl-dialog textarea { font: inherit; }
.pl-page button, .pl-dialog button, .pl-item { cursor: pointer; }
.pl-tools { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; margin-bottom: 22px; }
.pl-switcher, .pl-actions, .pl-dialogactions { display: flex; align-items: center; }
.pl-switcher { border: 1px solid var(--pl-rule); border-radius: 16px; padding: 4px 5px; gap: 8px; background: #f5f4eb; }
.pl-icon { background: transparent; border: 0; color: var(--pl-ink); border-radius: 50%; width: 42px; height: 42px; display: grid; flex: 0 0 auto; place-items: center; }
.pl-icon:hover { background: #e6e9d9; }
.pl-period { min-width: 113px; text-align: center; display: grid; gap: 2px; line-height: 1.2; }
.pl-period b { font-size: .95rem; font-weight: 650; }
.pl-period span { color: var(--pl-muted); font-size: .8rem; }
.pl-actions, .pl-dialogactions { gap: 9px; flex-wrap: wrap; }
.pl-btn { display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; border: 1px solid #bbc7b7; background: transparent; color: var(--pl-ink); min-height: 43px; padding: 10px 19px; gap: 8px; line-height: 1.2; font-weight: 600 !important; font-size: .92rem !important; }
.pl-btn:hover { background: #e6eadb; border-color: #a9b8a5; }
.pl-btn.pl-dark { background: var(--pl-ink); color: #fffef4; border-color: var(--pl-ink); }
.pl-btn.pl-dark:hover { background: #2c5744; }
.pl-btn.pl-text { background: transparent; color: #8d3d27; border: 0; padding-inline: 5px; }
.pl-btn.pl-text:hover { text-decoration: underline; }
.pl-page :focus-visible, .pl-dialog :focus-visible { outline: 3px solid #9c552e; outline-offset: 2px; }
.pl-grid { overflow: hidden; border: 1px solid var(--pl-rule); border-radius: 21px; background: #fdfcf6; }
.pl-gridhead, .pl-day { display: grid; grid-template-columns: .65fr repeat(3, 1fr); align-items: center; gap: clamp(8px, 1.3vw, 20px); padding: 12px clamp(12px, 2vw, 26px); }
.pl-gridhead { background: #e8eddd; color: #3c5744; font-size: .8rem; font-weight: 650; }
.pl-gridhead span, .pl-mobilemeal { display: flex; align-items: center; gap: 7px; }
.pl-gridhead svg, .pl-mobilemeal svg { width: 17px; height: 17px; }
.pl-day { min-height: 88px; }
.pl-day + .pl-day { border-top: 1px solid var(--pl-rule); }
.pl-dayname { min-width: 0; }
.pl-dayname h2 { font-size: clamp(1.23rem, 1.65vw, 1.55rem); line-height: 1.1; letter-spacing: -.035em; }
.pl-dayname > span { display: block; color: var(--pl-muted); margin-top: 6px; font-size: .8rem; }
.pl-today { background: #f4f5e8; }
.pl-today .pl-dayname > span { color: #476331; font-weight: 650; }
.pl-cell { min-width: 0; }
.pl-mobilemeal { display: none; }
.pl-slot { width: 100%; text-align: left; display: flex; align-items: center; gap: 9px; min-height: 56px; border: 1px solid var(--pl-rule); border-radius: 12px; padding: 6px; background: #fffef8; color: var(--pl-ink); }
.pl-slot:hover { border-color: #8e9f87; }
.pl-slot > span { min-width: 0; }
.pl-slot strong { font-size: .85rem; line-height: 1.23; font-weight: 650; overflow-wrap: anywhere; display: block; }
.pl-slot small { display:block; margin-top: 3px; font-size: .72rem; color: var(--pl-muted); line-height: 1.25; }
.pl-slot img, .pl-awayicon { flex: 0 0 auto; width: 41px; height: 41px; border-radius: 8px; object-fit: cover; }
.pl-empty { justify-content: center; background: transparent; border-style: dashed; border-color: #cdd4c3; color: #5c6f5d; font-size: .82rem !important; min-height: 48px; }
.pl-empty svg { width: 15px; height: 15px; }
.pl-away { background: #f6f1e7; }
.pl-awayicon { display: grid; place-items: center; background: #eadfc9; color: #775837; }
.pl-listmeta { border-top: 1px solid var(--pl-rule); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; padding: 17px 0; }
.pl-listmeta span:first-child { font-weight: 650; }
.pl-listmeta span:last-child { color: var(--pl-muted); font-size: .84rem; }
.pl-groups { columns: 2; column-gap: 20px; }
.pl-group { break-inside: avoid; display: inline-block; width: 100%; background: #fdfcf7; border: 1px solid var(--pl-rule); border-radius: 16px; padding: 16px 20px 9px; margin: 0 0 15px; }
.pl-group h2 { font-size: 1.55rem; line-height: 1.2; letter-spacing: -.035em; padding-bottom: 11px; }
.pl-item { position: relative; display: flex; align-items: center; min-height: 49px; gap: 11px; border-top: 1px solid #e1e4d8; }
.pl-item input, .pl-choices input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.pl-square { width: 19px; height: 19px; display: grid; flex: 0 0 auto; place-items: center; border-radius: 5px; border: 1.5px solid #a8b6a4; }
.pl-square svg { opacity: 0; width: 16px; height: 16px; }
.pl-item input:checked + .pl-square { background: #284733; border-color: #284733; color: white; }
.pl-item input:checked + .pl-square svg { opacity: 1; }
.pl-item input:checked ~ .pl-itemname { text-decoration: line-through; color: var(--pl-muted); }
.pl-item input:focus-visible + .pl-square, .pl-choices input:focus-visible + span { outline: 3px solid #9c552e; outline-offset: 2px; }
.pl-itemname { font-size: .94rem; overflow-wrap: anywhere; }
.pl-qty { margin-left: auto; flex: 0 0 auto; font-size: .87rem; color: #465a4c; }
.pl-nolist { display: grid; justify-items: center; text-align: center; padding: clamp(33px, 6.5vw, 83px) 18px; background: #eff2e4; border: 1px solid #dce2ce; border-radius: 22px; }
.pl-nolist h2 { font-size: clamp(2rem, 3.5vw, 3.4rem); line-height: 1.08; letter-spacing: -.05em; }
.pl-nolist p { max-width: 350px; margin: 10px 0 21px; }
.pl-emblem { width: 57px; height: 57px; border-radius: 50%; display: grid; place-items: center; margin-bottom: 17px; background: #dce5bb; }
.pl-emblem svg { width: 27px; height: 27px; }
.pl-dialog { position: fixed; inset: 0; width: min(475px, calc(100vw - 28px)); max-width: 100%; max-height: min(88dvh, 760px); margin: auto; padding: 0; overflow: auto; overscroll-behavior: contain; border: 1px solid #c9d0bf; border-radius: 23px; box-shadow: 0 22px 80px #0b231f3b; background: var(--pl-paper); }
.pl-dialog::backdrop { background: rgb(13 32 24 / 46%); }
.pl-dialoginner { padding: clamp(19px, 4vw, 29px); }
.pl-dialoghead { display: flex; align-items: flex-start; gap: 10px; justify-content: space-between; margin-bottom: 22px; }
.pl-dialoghead h2 { margin-top: 4px; font-size: clamp(1.75rem,4vw,2.15rem); line-height: 1.06; letter-spacing: -.045em; }
.pl-dialoghead .pl-icon { width: 35px; height: 35px; background: #e9edde; }
.pl-form, .pl-recipefields { display: grid; gap: 16px; }
.pl-dialog [hidden] { display: none !important; }
.pl-label { display: grid; gap: 6px; color: #394e3e; font-size: .88rem; font-weight: 650; min-width: 0; }
.pl-input, .pl-copyarea { border: 1px solid #bcc7b6; border-radius: 9px; padding: 10px 11px; width: 100%; min-width: 0; min-height: 44px; background: #fffef9; color: var(--pl-ink); font-size: 1rem !important; font-weight: 400 !important; }
.pl-label:has(input[type=number]) { max-width: 108px; }
.pl-formrow { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pl-dialogactions { justify-content: flex-end; border-top: 1px solid var(--pl-rule); padding-top: 16px; margin-top: 1px; }
.pl-dialogactions .pl-text { margin-right: auto; }
.pl-choices { display: flex; gap: 6px; flex-wrap: wrap; border: 0; padding: 0; margin: 0; }
.pl-choices legend { font-size: .88rem; font-weight: 650; color: #394e3e; margin: 0 0 8px; padding: 0; }
.pl-choices label { position: relative; cursor: pointer; }
.pl-choices label span { display: inline-flex; align-items: center; justify-content: center; min-height: 39px; padding: 6px 13px; border-radius: 999px; border: 1px solid #c4cdbd; font-size: .88rem; }
.pl-choices input:checked + span { color: #233e25; font-weight: 650; border-color: #acbc91; background: #e6edcf; }
.pl-recipepeek, .pl-addedrecipe { color: var(--pl-ink); width: 100%; border-radius: 13px; border: 1px solid var(--pl-rule); padding: 8px; display: flex; text-align: left; align-items: center; gap: 13px; background: #f3f3e8; }
.pl-recipepeek img, .pl-addedrecipe img { width: 64px; height: 58px; object-fit: cover; border-radius: 8px; }
.pl-recipepeek span, .pl-addedrecipe strong { font-family: var(--serif, Georgia, serif); font-size: 1.23rem; line-height: 1.1; font-weight: 500; }
.pl-recipepeek small { display: flex; align-items: center; gap: 2px; margin-top: 6px; color: var(--pl-muted); font: 500 .74rem var(--sans,"Segoe UI",sans-serif); }
.pl-recipepeek small svg { width: 12px; height: 12px; }
.pl-selection:empty, .pl-conflict:empty { display: none; }
.pl-dialog .pl-conflict, .pl-dialog .pl-awayhint { margin: 0; }
.pl-dialog .pl-conflict { color: #864028; font-size: .87rem; }
.pl-copyarea { min-height: 170px; margin-top: 14px; resize: vertical; }
@media (max-width: 760px) {
  .pl-page { padding: 30px 0 45px; }
  .pl-gridhead { display: none; }
  .pl-day { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; padding: 13px 14px 17px; }
  .pl-dayname { grid-column: 1 / -1; display: flex; gap: 8px; align-items: baseline; }
  .pl-dayname > span { margin: 0; }
  .pl-mobilemeal { display:flex; font-size: .73rem; font-weight: 630; color: #51624f; margin: 0 0 5px; }
  .pl-mobilemeal svg { width: 14px; height: 14px; }
  .pl-filled img, .pl-awayicon { display: none; }
  .pl-slot { padding: 7px; min-height: 51px; }
  .pl-slot strong { font-size: .79rem; }
  .pl-grid { border-radius: 15px; }
  .pl-groups { columns: 1; }
}
@media (max-width: 420px) {
  .pl-day { gap: 6px; padding-inline: 9px; }
  .pl-slot { gap: 4px; }
  .pl-empty { font-size: .75rem !important; }
  .pl-tools, .pl-actions { gap: 7px; }
  .pl-tools { row-gap: 12px; }
  .pl-actions .pl-btn { padding-inline: 13px; }
  .pl-switcher { width: fit-content; }
  .pl-group { padding-inline: 14px; }
  .pl-formrow { grid-template-columns: 1fr; }
}
