.ptp-app {
  --ptp-ink: #172033;
  --ptp-muted: #667085;
  --ptp-line: #d9e0ec;
  --ptp-panel: #f7f9fc;
  --ptp-card: #ffffff;
  --ptp-accent: #2563eb;
  --ptp-accent-dark: #1748b3;
  --ptp-success: #087a55;
  color: var(--ptp-ink);
  font-family: Inter, "Inter Fallback", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  width: 100%;
}

.ptp-app *,
.ptp-app *::before,
.ptp-app *::after { box-sizing: border-box; }

.ptp-intro,
.ptp-preview-head,
.ptp-sheet-toolbar,
.ptp-interpreter {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.ptp-intro { margin-block-end: 1.25rem; }
.ptp-intro h3,
.ptp-preview-head h3,
.ptp-interpreter h3 { margin: .25rem 0 .35rem; font-size: clamp(1.05rem, 2vw, 1.35rem); line-height: 1.25; }
.ptp-intro p,
.ptp-interpreter p { margin: 0; color: var(--ptp-muted); }
.ptp-eyebrow { color: var(--ptp-accent) !important; font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.ptp-local-badge {
  align-self: center;
  max-width: 21rem;
  border: 1px solid #a7e2cb;
  border-radius: 999px;
  background: #ecfdf5;
  color: #075d42;
  font-size: .77rem;
  font-weight: 700;
  line-height: 1.35;
  padding: .55rem .8rem;
  text-align: center;
}

.ptp-layout {
  display: grid;
  grid-template-columns: minmax(16.5rem, .78fr) minmax(0, 1.45fr);
  gap: 1.25rem;
  align-items: start;
}

.ptp-controls,
.ptp-preview,
.ptp-interpreter,
.ptp-limitations {
  background: var(--ptp-card);
  border: 1px solid var(--ptp-line);
  border-radius: 1rem;
  box-shadow: 0 12px 30px rgba(36, 50, 78, .07);
}

.ptp-controls { padding: 1rem; position: sticky; top: 1rem; }
.ptp-preview { min-width: 0; padding: 1rem; background: var(--ptp-panel); }
.ptp-fieldset { border: 0; margin: 0 0 1rem; padding: 0; min-width: 0; }
.ptp-fieldset legend { font-size: .86rem; font-weight: 800; margin-block-end: .55rem; padding: 0; }

.ptp-segmented {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .45rem;
}
.ptp-segmented--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ptp-segmented label { cursor: pointer; min-width: 0; position: relative; }
.ptp-segmented input { opacity: 0; position: absolute; pointer-events: none; }
.ptp-segmented span {
  align-items: center;
  background: #fff;
  border: 1px solid var(--ptp-line);
  border-radius: .65rem;
  display: flex;
  font-size: .74rem;
  font-weight: 750;
  justify-content: center;
  line-height: 1.25;
  min-height: 3rem;
  padding: .5rem .35rem;
  text-align: center;
}
.ptp-segmented input:checked + span { background: #eff6ff; border-color: var(--ptp-accent); color: #1748b3; box-shadow: inset 0 0 0 1px var(--ptp-accent); }
.ptp-segmented input:focus-visible + span,
.ptp-sheet-option input:focus-visible + span { outline: 3px solid rgba(37, 99, 235, .27); outline-offset: 2px; }

.ptp-quick-actions { display: flex; flex-wrap: wrap; gap: .4rem; margin-block-end: .65rem; }
.ptp-quick-actions button,
.ptp-download-button {
  appearance: none;
  border: 1px solid #b8c4d7;
  border-radius: .55rem;
  background: #fff;
  color: #27364f;
  cursor: pointer;
  font: inherit;
  font-size: .75rem;
  font-weight: 750;
  padding: .42rem .65rem;
}
.ptp-quick-actions button:hover,
.ptp-download-button:hover { border-color: var(--ptp-accent); color: var(--ptp-accent-dark); }
.ptp-quick-actions button:focus-visible,
.ptp-download-button:focus-visible,
.ptp-print-button:focus-visible,
.ptp-diagnosis-select select:focus-visible { outline: 3px solid rgba(37, 99, 235, .28); outline-offset: 2px; }

.ptp-sheet-options { display: grid; gap: .45rem; }
.ptp-sheet-option { cursor: pointer; position: relative; }
.ptp-sheet-option input { opacity: 0; position: absolute; pointer-events: none; }
.ptp-sheet-option > span {
  align-items: flex-start;
  background: #fff;
  border: 1px solid var(--ptp-line);
  border-radius: .7rem;
  display: grid;
  gap: .12rem;
  padding: .62rem .7rem .62rem 2.25rem;
  position: relative;
}
[dir="rtl"] .ptp-sheet-option > span { padding: .62rem 2.25rem .62rem .7rem; }
.ptp-sheet-option > span::before {
  align-items: center;
  border: 1.5px solid #99a8bd;
  border-radius: .3rem;
  color: #fff;
  content: "";
  display: flex;
  font-size: .76rem;
  font-weight: 900;
  height: 1.15rem;
  inset-inline-start: .7rem;
  justify-content: center;
  position: absolute;
  top: .75rem;
  width: 1.15rem;
}
.ptp-sheet-option input:checked + span { background: #f5f9ff; border-color: #91b7fb; }
.ptp-sheet-option input:checked + span::before { background: var(--ptp-accent); border-color: var(--ptp-accent); content: "✓"; }
.ptp-sheet-option strong { font-size: .82rem; line-height: 1.25; }
.ptp-sheet-option small { color: var(--ptp-muted); font-size: .7rem; line-height: 1.35; }

.ptp-primary-actions { border-block-start: 1px solid var(--ptp-line); padding-block-start: 1rem; }
.ptp-print-button {
  align-items: center;
  appearance: none;
  background: linear-gradient(135deg, var(--ptp-accent), #4f46e5);
  border: 0;
  border-radius: .7rem;
  box-shadow: 0 8px 18px rgba(37, 99, 235, .23);
  color: #fff;
  cursor: pointer;
  display: flex;
  font: inherit;
  font-weight: 800;
  gap: .55rem;
  justify-content: center;
  min-height: 2.9rem;
  padding: .68rem 1rem;
  width: 100%;
}
.ptp-print-button:hover { background: linear-gradient(135deg, var(--ptp-accent-dark), #3730a3); }
.ptp-primary-actions p,
.ptp-size-warning,
.ptp-status { color: var(--ptp-muted); font-size: .72rem; line-height: 1.4; margin: .5rem 0 0; }
.ptp-size-warning { background: #fff8e6; border: 1px solid #f2d58b; border-radius: .55rem; color: #75520a; padding: .55rem .65rem; }
.ptp-status { color: var(--ptp-success); font-weight: 750; min-height: 1rem; }

.ptp-preview-head { align-items: center; margin-block-end: .8rem; }
.ptp-preview-head h3 { color: var(--ptp-muted); font-size: .82rem; font-weight: 500; margin: .16rem 0 0; }
.ptp-count { background: #e8eef9; border-radius: 999px; color: #35445f; flex: none; font-size: .75rem; font-weight: 800; padding: .4rem .65rem; }
.ptp-print-stage { display: grid; gap: 1rem; }
.ptp-sheet-card { min-width: 0; }
.ptp-sheet-card[data-selected="false"] { display: none; }
.ptp-sheet-toolbar { align-items: center; margin-block-end: .45rem; }
.ptp-sheet-toolbar h4 { font-size: .85rem; margin: 0; }
.ptp-sheet-toolbar p { color: var(--ptp-muted); font-size: .7rem; margin: .15rem 0 0; }
.ptp-sheet-paper {
  aspect-ratio: var(--ptp-page-ratio, 210 / 297);
  background: #fff;
  border: 1px solid #cbd4e2;
  box-shadow: 0 10px 24px rgba(29, 42, 67, .13);
  margin-inline: auto;
  max-height: 50rem;
  overflow: hidden;
  width: min(100%, 38rem);
}
.ptp-sheet-paper svg { display: block; height: 100%; width: 100%; }

.ptp-interpreter { align-items: end; display: grid; grid-template-columns: minmax(0, 1fr) minmax(14rem, .75fr); margin-block-start: 1.25rem; padding: 1rem; }
.ptp-interpreter > div:first-child { align-self: center; }
.ptp-diagnosis-select { display: grid; gap: .35rem; }
.ptp-diagnosis-select span { font-size: .78rem; font-weight: 800; }
.ptp-diagnosis-select select { appearance: auto; background: #fff; border: 1px solid #b8c4d7; border-radius: .65rem; color: var(--ptp-ink); font: inherit; min-height: 2.8rem; padding: .55rem .65rem; width: 100%; }
.ptp-diagnosis-result { background: #f5f9ff; border: 1px solid #b8cff7; border-radius: .7rem; grid-column: 1 / -1; margin-block-start: .8rem; padding: .8rem; }
.ptp-diagnosis-result strong { color: #1748b3; display: block; font-size: .86rem; margin-block-end: .25rem; }
.ptp-diagnosis-result p { color: #394962; font-size: .78rem; line-height: 1.55; margin: 0; }
.ptp-limitations { background: #fff9ed; border-color: #ecd193; margin-block-start: .85rem; padding: .8rem 1rem; }
.ptp-limitations strong { color: #6f4c06; font-size: .82rem; }
.ptp-limitations p { color: #755f32; font-size: .75rem; line-height: 1.5; margin: .25rem 0 0; }

@media (max-width: 900px) {
  .ptp-layout { grid-template-columns: 1fr; }
  .ptp-controls { position: static; }
}

@media (max-width: 560px) {
  .ptp-intro { display: grid; }
  .ptp-local-badge { justify-self: start; }
  .ptp-segmented { grid-template-columns: 1fr; }
  .ptp-segmented--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ptp-interpreter { grid-template-columns: 1fr; }
  .ptp-preview-head { align-items: flex-start; }
}

@media (prefers-color-scheme: dark) {
  .ptp-app { --ptp-ink: #edf3ff; --ptp-muted: #adbad0; --ptp-line: #3a4960; --ptp-panel: #172133; --ptp-card: #111a29; }
  .ptp-controls,
  .ptp-preview,
  .ptp-interpreter { box-shadow: 0 12px 30px rgba(0, 0, 0, .2); }
  .ptp-segmented span,
  .ptp-quick-actions button,
  .ptp-download-button,
  .ptp-sheet-option > span,
  .ptp-diagnosis-select select { background: #172133; color: #e9f0fb; }
  .ptp-segmented input:checked + span,
  .ptp-sheet-option input:checked + span,
  .ptp-diagnosis-result { background: #13284b; }
  .ptp-count { background: #263550; color: #e8eef9; }
  .ptp-local-badge { background: #0c3429; border-color: #1f6d56; color: #c9f8e6; }
  .ptp-size-warning,
  .ptp-limitations { background: #382c13; border-color: #725c25; }
  .ptp-size-warning,
  .ptp-limitations strong,
  .ptp-limitations p { color: #f4d990; }
}

@media print {
  @page { margin: 0; }
  html,
  body { background: #fff !important; margin: 0 !important; padding: 0 !important; }
  body * { visibility: hidden !important; }
  .ptp-print-stage,
  .ptp-print-stage * { visibility: visible !important; }
  .ptp-print-stage {
    display: block !important;
    inset: 0 auto auto 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    position: absolute !important;
    width: 100% !important;
  }
  .ptp-sheet-card { display: none !important; margin: 0 !important; padding: 0 !important; }
  .ptp-sheet-card[data-selected="true"] {
    break-after: page;
    display: block !important;
    page-break-after: always;
  }
  .ptp-sheet-card[data-selected="true"][data-last-selected="true"] { break-after: auto; page-break-after: auto; }
  .ptp-sheet-toolbar { display: none !important; }
  .ptp-sheet-paper {
    aspect-ratio: auto !important;
    border: 0 !important;
    box-shadow: none !important;
    height: var(--ptp-page-height) !important;
    margin: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
    width: var(--ptp-page-width) !important;
  }
  .ptp-sheet-paper svg { display: block !important; height: 100% !important; width: 100% !important; }
  .ptp-sheet-paper,
  .ptp-sheet-paper * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
}
