/* Pantry dashboard styles. Builds on styles.css and shares its design
   tokens (the :root variables there): radii 12px controls and 16px
   cards, the spacing scale, the one card shadow. Every tap target is
   at least 48px tall. Prefix pd- keeps these rules from touching the
   seeker app. */

.pd-eyebrow{font-size:.9375rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--gold);margin:0 0 4px}

.pd-msg{background:#fffbeb;border:1px solid #f59e0b;border-radius:12px;padding:12px 16px;font-weight:600;margin:12px 0}
.pd-msg.err{background:#fef2f2;border-color:#b91c1c;color:#7f1d1d}
.pd-plain{background:#fef2f2;border:2px solid #b91c1c;border-radius:12px;padding:1rem;margin:.7rem 0;font-weight:600}

.pd-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;margin:16px 0;box-shadow:var(--shadow)}
.pd-card h2,.pd-card h3{margin:0 0 8px}
.pd-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:8px 0}
.pd-spread{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-start;justify-content:space-between}
.pd-muted{color:var(--muted);font-size:.95rem}
.pd-small{font-size:.95rem}
.pd-strong{font-weight:700}

.pd-btn{display:inline-flex;align-items:center;min-height:52px;padding:.6rem 1rem;border-radius:12px;border:2px solid var(--green);background:#fff;color:var(--ink);font-size:1.02rem;font-weight:600;cursor:pointer;text-decoration:none}
.pd-btn.primary{background:var(--green);color:#fff;min-height:56px}
.pd-btn.warn{border-color:#b45309;color:#92400e}
.pd-btn:disabled{background:var(--line);color:var(--muted);border-color:var(--line);opacity:1;cursor:default}
.pd-btn.block{width:100%;justify-content:center;margin:.3rem 0}

.pd-menu{display:grid;gap:12px;margin:12px 0}
.pd-menu .pd-btn{justify-content:flex-start;text-align:left;min-height:60px;font-size:1.05rem}

.pd-input,.pd-select,.pd-textarea{display:block;width:100%;min-height:52px;font-size:1.05rem;padding:.6rem;border:2px solid #6b7280;border-radius:12px;margin:.3rem 0 .6rem;background:#fff;color:var(--ink)}
.pd-textarea{min-height:96px}
.pd-label{display:block;font-weight:600;margin-top:.6rem}
.pd-check{display:flex;gap:.6rem;align-items:flex-start;background:var(--green-wash);border:1px solid #bbf7d0;border-radius:12px;padding:12px;font-size:1.02rem;margin:8px 0;overflow-wrap:anywhere}
.pd-check input{width:24px;height:24px;flex:none;margin-top:.15rem}
.pd-radio{display:flex;gap:.6rem;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;font-size:1.02rem;margin:8px 0;overflow-wrap:anywhere}
.pd-radio input{width:24px;height:24px;flex:none;margin-top:.15rem}

.pd-attn{background:#fffbeb;border:1px solid #f59e0b;border-radius:12px;padding:12px 16px;margin:8px 0}
.pd-ok{background:var(--green-wash);border:1px solid #bbf7d0;border-radius:12px;padding:12px 16px;margin:8px 0}
.pd-pending{background:#eff6ff;border:1px solid #93c5fd;border-radius:12px;padding:12px 16px;margin:8px 0}

.pd-code-row{display:flex;gap:.45rem;margin:.5rem 0}
.pd-code-box{width:48px;height:60px;text-align:center;font-size:1.5rem;font-weight:700;border:2px solid #6b7280;border-radius:12px;padding:0}

.pd-dayrow{border:1px solid var(--line);border-radius:12px;padding:.7rem;margin:.5rem 0;background:#fff}
.pd-dayrow .pd-dayname{font-weight:700;font-size:1.05rem}
.pd-winrow{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap;margin:.35rem 0}
.pd-winrow input[type="time"]{min-height:48px;font-size:1.02rem;padding:.4rem;border:2px solid #6b7280;border-radius:12px}
.pd-winrow .pd-btn{min-height:48px}

.pd-list{list-style:none;padding:0;margin:.5rem 0}
.pd-list li{border:1px solid var(--line);border-radius:12px;padding:12px;margin:8px 0;background:#fff;overflow-wrap:anywhere}
.pd-list .pd-when{color:var(--muted);font-size:.92rem}

.pd-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin:.5rem 0}
.pd-tab{min-height:52px;padding:.6rem 1rem;border-radius:999px;border:2px solid var(--green);background:#fff;font-size:1rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.pd-tab::before{content:"✓";font-weight:700;color:var(--green);width:1em;text-align:center;visibility:hidden}
.pd-tab.on{background:var(--green-tint)}
.pd-tab.on::before{visibility:visible}

.pd-map{height:260px;width:100%;border:1px solid var(--line);border-radius:16px;background:#e8efe6;margin:.5rem 0}
.pd-popup-star{color:var(--blue);font-weight:700}
.pd-star-big{font-size:1.15rem}

.pd-fieldrow{border-top:1px solid #e5e7eb;padding:.6rem 0}
.pd-fieldrow:first-of-type{border-top:none}
.pd-before{color:#7f1d1d}
.pd-after{color:var(--green)}

.pd-file{font-size:1.02rem;margin:.5rem 0}
.pd-state-pill{display:inline-block;border-radius:999px;padding:.1rem .6rem;font-size:.9375rem;font-weight:700;background:#e0f2e4}
.pd-state-pill.pending{background:#dbeafe;color:#1e40af}
.pd-state-pill.warn{background:#fef3c7;color:#92400e}

@media(max-width:380px){.pd-code-box{width:44px;height:56px}}
@media(max-width:340px){.pd-code-row{gap:.3rem}.pd-code-box{width:44px}}
.pd-btn{transition:background 150ms ease,color 150ms ease}
.pd-btn:active{background:var(--green-tint)}
.pd-btn.primary:active{background:var(--green-deep)}

/* Stage 2, S7 Today screen: the state choices reuse .pd-radio; the
   fieldset wrapper carries no browser default chrome. The pill on this
   screen reuses .pd-state-pill; its warn variant already ships. */
.pd-fieldset{border:none;padding:0;margin:.4rem 0}
.pd-state-pill.closed{background:#fee2e2;color:#7f1d1d}
