.pph-feedback[hidden], .pph-fb-modal[hidden] { display: none !important; }
.pph-feedback {
  position: fixed;
  right: 0;
  bottom: calc(var(--pph-feedback-toolbar-offset, 0px) + 12px + env(safe-area-inset-bottom, 0px));
  z-index: 2147482900;
  display: inline-flex;
  flex-direction: row-reverse;
  align-items: center;
  gap: 0;
  width: 48px;
  height: 48px;
  min-height: 48px;
  padding: 0;
  overflow: hidden;
  border: 1px solid #111;
  border-right: 0;
  border-radius: 12px 0 0 12px;
  background: #111;
  color: #fff;
  box-shadow: 0 10px 28px rgba(0,0,0,.24);
  cursor: pointer;
  font: 750 13px/1.2 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: .01em;
  transition: width .18s ease, box-shadow .15s ease, background .15s ease;
  touch-action: manipulation;
}
.pph-feedback:hover { background: #2b2b2b; box-shadow: 0 13px 34px rgba(0,0,0,.28); }
.pph-feedback:focus-visible { outline: 3px solid #6b8afd; outline-offset: 3px; }
.pph-feedback[disabled] { cursor: default; opacity: .8; }
.pph-feedback-icon {
  display: grid;
  place-items: center;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  color: #fff;
  font-size: 15px;
  line-height: 1;
}
.pph-feedback-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linejoin: round; }
.pph-feedback-label { padding-left: 14px; white-space: nowrap; opacity: 0; transform: translateX(5px); transition: opacity .14s ease, transform .14s ease; }
@media (hover: hover) and (pointer: fine) {
  .pph-feedback:hover, .pph-feedback:focus-visible { width: 190px; }
  .pph-feedback:hover .pph-feedback-label, .pph-feedback:focus-visible .pph-feedback-label { opacity: 1; transform: translateX(0); }
}
body[data-feedback="signer"] .pph-consent-manage {
  right: 0;
  bottom: calc(var(--pph-feedback-toolbar-offset, 0px) + 76px + env(safe-area-inset-bottom, 0px));
  transition: bottom .18s ease;
}
.pph-feedback-open { overflow: hidden; }
.pph-fb-modal { position: fixed; inset: 0; z-index: 2147483100; display: grid; place-items: center; padding: 20px; background: rgba(15,15,18,.62); backdrop-filter: blur(3px); }
.pph-fb-box { box-sizing: border-box; width: min(100%,560px); max-height: min(92vh,720px); overflow: auto; margin: 0; background: #fff; border: 1px solid #111; border-radius: 18px; padding: 26px; box-shadow: 0 24px 80px rgba(0,0,0,.32); }
.pph-fb-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.pph-fb-box h2 { margin: 0 0 8px; font: 750 23px/1.15 system-ui,sans-serif; color: #111; }
.pph-fb-close { display: grid; place-items: center; flex: 0 0 36px; width: 36px; height: 36px; padding: 0; border: 1px solid #c9c9c9; border-radius: 50%; background: #fff; color: #222; font-size: 24px; line-height: 1; cursor: pointer; }
.pph-fb-close:hover { background: #f1f1ef; }
.pph-fb-close:focus-visible, .pph-fb-box button:focus-visible, .pph-fb-box select:focus-visible, .pph-fb-box textarea:focus-visible { outline: 3px solid #6b8afd; outline-offset: 2px; }
.pph-fb-intro { margin: 0 0 16px; color: #333; font: 14px/1.5 system-ui,sans-serif; }
.pph-fb-note { margin: 10px 0; color: #555; font: 12.5px/1.5 system-ui,sans-serif; }
.pph-fb-privacy { padding: 11px 13px; border-left: 3px solid #111; border-radius: 0 8px 8px 0; background: #f5f5f3; }
.pph-fb-box label { display: block; margin: 15px 0 6px; color: #111; font: 700 12px/1.3 system-ui,sans-serif; }
.pph-fb-box select, .pph-fb-box textarea { box-sizing: border-box; width: 100%; padding: 11px 12px; border: 1px solid #888; border-radius: 8px; background: #fff; color: #111; font: 14px/1.4 system-ui,sans-serif; }
.pph-fb-box select:focus, .pph-fb-box textarea:focus { border-color: #111; }
.pph-fb-box textarea { min-height: 112px; resize: vertical; }
.pph-fb-check { display: flex !important; align-items: flex-start; gap: 9px; font-weight: 500 !important; }
.pph-fb-check input { margin-top: 2px; accent-color: #111; }
.pph-fb-check code { font: 12px ui-monospace,SFMono-Regular,monospace; }
.pph-fb-error { min-height: 1.4em; margin: 13px 0 0; color: #a00020; font: 13px/1.4 system-ui,sans-serif; }
.pph-fb-status { min-height: 1.4em; margin: 13px 0 0; color: #176b38; font: 13px/1.4 system-ui,sans-serif; }
.pph-fb-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.pph-fb-actions button { min-height: 42px; padding: 10px 15px; border: 1px solid #111; border-radius: 8px; background: #fff; color: #111; cursor: pointer; font: 700 13px system-ui,sans-serif; }
.pph-fb-actions .ok { background: #111; color: #fff; }
.pph-fb-actions button[disabled] { cursor: wait; opacity: .65; }
@media (max-width: 560px) {
  .pph-feedback { right: 0; bottom: calc(var(--pph-feedback-toolbar-offset, 0px) + 12px + env(safe-area-inset-bottom, 0px)); width: 48px; min-height: 48px; padding: 0; border-radius: 12px 0 0 12px; }
  .pph-feedback-label { display: none; }
  body[data-feedback="signer"] .pph-consent-manage { right: 0; bottom: calc(var(--pph-feedback-toolbar-offset, 0px) + 76px + env(safe-area-inset-bottom, 0px)); }
  .pph-fb-modal { padding: 10px; align-items: end; }
  .pph-fb-box { width: 100%; max-height: calc(100vh - 20px); padding: 20px; border-radius: 16px; }
  .pph-fb-actions { flex-direction: column-reverse; }
  .pph-fb-actions button { width: 100%; }
}
@media (min-width: 561px) and (max-width: 900px) {
  .pph-feedback { right: 0; bottom: calc(var(--pph-feedback-toolbar-offset, 0px) + 12px + env(safe-area-inset-bottom, 0px)); }
  body[data-feedback="signer"] .pph-consent-manage { right: 0; bottom: calc(var(--pph-feedback-toolbar-offset, 0px) + 76px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) { .pph-feedback { transition: none; } }
