/* WHISF — styles for the full-paper pages. Self-contained; sits on top of style.css. */
[hidden] { display: none !important; }

.pp-hero { background: linear-gradient(135deg, #14213d, #22345e); color: #fff; padding: 56px 0 44px; }
.pp-hero .eyebrow { color: #e0b93d; text-transform: uppercase; letter-spacing: .14em; font-size: .8rem; font-weight: 700; }
.pp-hero h1 { font-family: "Fraunces", Georgia, serif; font-size: clamp(1.9rem, 4vw, 2.7rem); margin: 8px 0 10px; }
.pp-hero p { max-width: 640px; opacity: .9; margin: 0; }

.pp-section { padding: 36px 0 64px; background: #faf7f0; }
.pp-narrow { max-width: 760px; margin: 0 auto; padding: 0 18px; }
.pp-wide { max-width: 1240px; margin: 0 auto; padding: 0 18px; }

.pp-card { background: #fff; border: 1px solid #e6dfcc; border-radius: 12px; padding: 24px; margin-bottom: 20px; box-shadow: 0 1px 3px rgba(20,33,61,.06); }
.pp-card h2 { font-family: "Fraunces", Georgia, serif; font-size: 1.3rem; margin: 0 0 6px; color: #14213d; }
.pp-hint { color: #5d6678; font-size: .93rem; margin: 0 0 14px; }

.pp-tabs { display: flex; gap: 8px; margin-bottom: 18px; flex-wrap: wrap; }
.pp-tab { flex: 1 1 220px; padding: 12px 14px; border: 2px solid #d9d2bd; background: #fff; border-radius: 10px; cursor: pointer;
          font: 600 .98rem "Source Sans 3", system-ui, sans-serif; color: #14213d; text-align: left; }
.pp-tab small { display: block; font-weight: 400; color: #5d6678; margin-top: 2px; }
.pp-tab[aria-selected="true"] { border-color: #c9a227; background: #fff8e0; }

.pp-row { display: flex; gap: 10px; flex-wrap: wrap; }
.pp-row input { flex: 1 1 240px; }

.pp-field { margin-bottom: 14px; }
.pp-field label { display: block; font-weight: 600; font-size: .92rem; margin-bottom: 5px; color: #14213d; }
.pp-field label em { font-weight: 400; color: #7a8294; font-style: normal; }
.pp-field input[type=text], .pp-field input[type=email], .pp-field input[type=tel], .pp-field input[type=file],
.pp-row input, .pp-filters input, .pp-filters select {
  width: 100%; padding: 11px 12px; border: 1px solid #c9c2ac; border-radius: 8px; font: inherit; background: #fff; box-sizing: border-box; }
.pp-field input:focus, .pp-row input:focus { outline: 2px solid #c9a227; outline-offset: 1px; }
.pp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.pp-grid .full { grid-column: 1 / -1; }
.pp-field small { color: #7a8294; display: block; margin-top: 4px; }

.pp-btn { display: inline-block; padding: 11px 22px; border: 0; border-radius: 8px; background: #c9a227; color: #14213d; font: 700 1rem "Source Sans 3", system-ui, sans-serif; cursor: pointer; text-decoration: none; }
.pp-btn:hover { background: #dcb534; }
.pp-btn[disabled] { opacity: .6; cursor: wait; }
.pp-btn.ghost { background: #fff; border: 1px solid #c9c2ac; color: #14213d; }
.pp-btn.small { padding: 6px 12px; font-size: .88rem; }

.pp-msg { margin-top: 10px; font-size: .94rem; }
.pp-msg.err { color: #a12a2a; }
.pp-error { background: #fdecec; border: 1px solid #f0b8b8; color: #8c1f1f; padding: 10px 12px; border-radius: 8px; margin-bottom: 12px; }

.pp-member { border-left: 4px solid #c9a227; background: #fff8e0; border-radius: 8px; padding: 14px 16px; margin-bottom: 16px; }
.pp-member .lbl { font-size: .78rem; text-transform: uppercase; letter-spacing: .12em; color: #8a6d0f; font-weight: 700; }
.pp-member h3 { margin: 2px 0 2px; font-family: "Fraunces", Georgia, serif; color: #14213d; }
.pp-member .meta { color: #4a5266; font-size: .93rem; }
.pp-member a { font-size: .88rem; }

.pp-success { background: #eaf6ec; border: 1px solid #b7dcbd; border-radius: 12px; padding: 22px; }
.pp-success h2 { color: #1d5a2a; margin-top: 0; }
.pp-ref { font-family: "IBM Plex Mono", monospace; font-weight: 700; font-size: 1.2rem; }

.pp-hp { position: absolute; left: -9999px; height: 0; width: 0; overflow: hidden; }

/* admin */
.pp-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin-bottom: 18px; }
.pp-stat { background: #fff; border: 1px solid #e6dfcc; border-radius: 10px; padding: 12px 14px; }
.pp-stat b { display: block; font: 700 1.6rem "Fraunces", Georgia, serif; color: #14213d; }
.pp-stat span { color: #5d6678; font-size: .85rem; }
.pp-filters { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; align-items: center; }
.pp-filters input, .pp-filters select { width: auto; flex: 1 1 160px; }
.pp-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.pp-tablewrap { overflow-x: auto; background: #fff; border: 1px solid #e6dfcc; border-radius: 12px; }
.pp-table { width: 100%; border-collapse: collapse; min-width: 900px; font-size: .93rem; }
.pp-table th { text-align: left; background: #14213d; color: #fff; padding: 10px 12px; font-weight: 600; white-space: nowrap; }
.pp-table td { padding: 10px 12px; border-top: 1px solid #eee7d3; vertical-align: top; }
.pp-table .ref { font-family: "IBM Plex Mono", monospace; font-size: .85rem; white-space: nowrap; }
.pp-tag { display: inline-block; padding: 2px 8px; border-radius: 99px; font-size: .78rem; font-weight: 700; }
.pp-tag.m { background: #e3efe5; color: #1d5a2a; }
.pp-tag.g { background: #eee9f6; color: #4b3a7a; }
.pp-tag.unsent { background: #fdf0d5; color: #8a5a00; }
.pp-table select { padding: 5px 6px; border-radius: 6px; border: 1px solid #c9c2ac; font: inherit; }
.pp-empty { padding: 28px; text-align: center; color: #5d6678; }

@media (max-width: 620px) { .pp-grid { grid-template-columns: 1fr; } .pp-card { padding: 18px; } }

/* abstract title box + recipients */
.pp-abstract { background: #fff8e0; border: 1px solid #e6d9a6; border-radius: 10px; padding: 14px 16px; margin-bottom: 14px; }
.pp-abstract .lbl { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: #7a6a2a; font-weight: 700; }
.pp-abstract select { width: 100%; margin: 8px 0; padding: 9px; border: 1px solid #d9d2bd; border-radius: 8px; font: inherit; }
.pp-abstract .abs-title { font-weight: 600; margin: 6px 0 10px; color: #14213d; }
.pp-check { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; font-size: .95rem; }
.pp-check input { margin-top: 4px; }
.pp-recipients { display: flex; flex-wrap: wrap; gap: 8px; }
.pp-chip { background: #eef1f8; border-radius: 999px; padding: 5px 10px 5px 12px; font-size: .9rem; display: inline-flex; gap: 6px; align-items: center; }
.pp-chip button { border: 0; background: none; cursor: pointer; font-size: 1.1rem; line-height: 1; color: #a02323; }
