.pp{--page:transparent;--surface:#fff;--surface-2:#f4f3ef;--text:#0b0b0b;--text-2:#52514e;--muted:#6f6d67;--border:#0b0b0b1f;--border-strong:#0b0b0b33;--accent:#0f8a68;--accent-ink:#0a6b51;--accent-wash:#0f8a681a;--good:#0ca30c;--warning:#b97b00;--serious:#ec835a;--critical:#d03b3b;--good-ink:#006300;--shadow:0 1px 2px #0b0b0b0d, 0 4px 16px #0b0b0b0a;--radius:12px;--mono:ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;color:var(--text);font-size:15px;line-height:1.5}.pp *,.pp :before,.pp :after{box-sizing:border-box}.pp .main{gap:20px;padding:20px 0 48px;display:grid}.pp h2{margin:0;font-size:18px;font-weight:650;line-height:1.25}.pp h3{margin:0;font-size:15px;font-weight:650;line-height:1.25}.pp p{margin:0}.pp a{color:var(--accent-ink)}.pp button,.pp input,.pp select,.pp textarea{font:inherit;color:inherit}.pp :focus-visible{outline:2px solid var(--accent);outline-offset:2px}@keyframes pp-spin{to{transform:rotate(360deg)}}@media print{body:has(.pp-root .print-area) *{visibility:hidden}.pp-root .print-area,.pp-root .print-area *{visibility:visible}.pp-root .print-area{display:block;position:absolute;inset:0}.pp-root .letter-sheet{break-after:page;border:0;border-radius:0;max-width:none;padding:20mm}.pp-root .letter-sheet:last-child{break-after:auto}.pp-root .letter-sheet mark.placeholder{background:0 0}}.pp .tabs{scrollbar-width:none;gap:4px;margin-top:10px;display:flex;overflow-x:auto}.pp .tabs::-webkit-scrollbar{display:none}.pp .tab{color:var(--text-2);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:none;padding:8px 12px 10px;font-weight:550}.pp .tab:hover{color:var(--text)}.pp .tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.pp .grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:20px;display:grid}.pp .stack{gap:12px;display:grid}.pp .stack>*,.pp .main>*,.pp .grid-2>*{min-width:0}.pp .row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pp .spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.pp .card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;padding:20px}.pp .card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.pp .card-sub{color:var(--text-2);margin-top:4px;font-size:14px}.pp .muted{color:var(--muted)}.pp .small{font-size:13px}.pp .dim{color:var(--text-2)}.pp .btn{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;color:var(--text);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-weight:600;text-decoration:none;display:inline-flex}.pp .btn:hover:not(:disabled){background:var(--surface-2)}.pp .btn:disabled{opacity:.5;cursor:not-allowed}.pp .btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.pp .btn-primary:hover:not(:disabled){background:var(--accent-ink);border-color:var(--accent-ink)}.pp .btn-ghost{color:var(--accent-ink);background:0 0;border-color:#0000;padding:6px 8px}.pp .btn-small{padding:4px 10px;font-size:13px}.pp .btn-danger{color:var(--critical)}.pp .input,.pp .select,.pp .textarea{border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;width:100%;min-width:0;padding:8px 10px}.pp .textarea{resize:vertical;min-height:120px}.pp .field{gap:6px;display:grid}.pp .field>span{color:var(--text-2);font-size:13px;font-weight:600}.pp .field-hint{color:var(--muted);font-size:12px}.pp .form-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px;display:grid}.pp .check{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.pp .check input{width:16px;height:16px;accent-color:var(--accent)}.pp .chips{flex-wrap:wrap;gap:6px;display:flex}.pp .chip{border:1px solid var(--border-strong);background:var(--surface-2);border-radius:999px;align-items:center;gap:6px;padding:2px 4px 2px 10px;font-size:13px;display:inline-flex}.pp .chip button{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:0 4px;font-size:15px;line-height:1}.pp .chip-add{cursor:pointer;color:var(--text-2);background:0 0;border-style:dashed;padding:2px 10px}.pp .chip-toggle{border:1px solid var(--border-strong);color:var(--text-2);cursor:pointer;background:0 0;border-radius:999px;padding:3px 12px;font-size:13px;font-weight:600}.pp .chip-toggle[aria-pressed=true]{background:var(--accent-wash);border-color:var(--accent);color:var(--accent-ink)}.pp .seg{border:1px solid var(--border-strong);border-radius:8px;display:inline-flex;overflow:hidden}.pp .seg button{color:var(--text-2);cursor:pointer;background:0 0;border:0;padding:6px 14px;font-size:13.5px;font-weight:600}.pp .seg button+button{border-left:1px solid var(--border)}.pp .seg button[aria-pressed=true]{background:var(--accent);color:#fff}.pp .pill{white-space:nowrap;background:var(--surface-2);color:var(--text);border-radius:999px;justify-self:start;align-items:center;gap:6px;padding:2px 10px 2px 8px;font-size:12.5px;font-weight:600;display:inline-flex}.pp .pill-icon{flex:none;width:14px;height:14px}.pp .pill.good{background:color-mix(in srgb, var(--good) 14%, transparent)}.pp .pill.warning{background:color-mix(in srgb, var(--warning) 22%, transparent)}.pp .pill.serious{background:color-mix(in srgb, var(--serious) 20%, transparent)}.pp .pill.critical{background:color-mix(in srgb, var(--critical) 16%, transparent)}.pp .pill.info{background:var(--accent-wash)}.pp .tag{color:var(--text-2);border:1px solid var(--border);white-space:nowrap;border-radius:6px;padding:0 6px;font-size:12px;font-weight:600;display:inline-block}.pp .banner{border:1px solid var(--border);border-left:4px solid var(--warning);background:var(--surface);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 16px;display:flex}.pp .banner.info{border-left-color:var(--accent)}.pp .banner.critical{border-left-color:var(--critical)}.pp .error-text{color:var(--critical);font-weight:600}.pp .kpis{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px;display:grid}.pp .tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-content:start;gap:4px;padding:16px;display:grid}.pp .tile-label{color:var(--text-2);font-size:13px;font-weight:550}.pp .tile-value{font-size:28px;font-weight:650;line-height:1.15}.pp .tile-sub{color:var(--muted);font-size:13px}.pp .meter{background:var(--surface-2);border-radius:4px;height:8px;overflow:hidden}.pp .meter>div{border-radius:0 4px 4px 0;height:100%}.pp .lead{border-top:1px solid var(--border);gap:10px;padding:16px 0;display:grid}.pp .lead:first-child{border-top:0;padding-top:0}.pp .lead-head{grid-template-columns:auto 1fr;align-items:start;gap:12px;display:grid}.pp .score{background:var(--accent-wash);width:44px;height:44px;color:var(--accent-ink);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);border-radius:10px;flex:none;place-items:center;font-size:16px;font-weight:750;display:grid}.pp .score.mid{background:color-mix(in srgb, var(--warning) 18%, transparent);color:var(--text);border-color:color-mix(in srgb, var(--warning) 45%, transparent)}.pp .score.low{background:var(--surface-2);color:var(--text-2);border-color:var(--border-strong)}.pp .lead-title{overflow-wrap:anywhere;font-weight:650}.pp .lead-meta{color:var(--text-2);font-size:13px}.pp .fresh-dot{background:var(--accent);vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.pp .stage-group{gap:0;display:grid}.pp .stage-head{border-bottom:2px solid var(--border-strong);align-items:baseline;gap:8px;padding:6px 0;display:flex}.pp .stage-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.pp .letter-sheet{color:#111;border:1px solid var(--border-strong);background:#fff;border-radius:6px;gap:18px;max-width:720px;padding:clamp(24px,5vw,56px);font-size:14.5px;line-height:1.6;display:grid}.pp .letter-sheet .letterhead{text-align:right;color:#444;font-size:13px}.pp .letter-sheet .letterhead strong{color:#111;font-size:16px;display:block}.pp .letter-sheet .letterhead .letter-logo{float:left;object-fit:contain;max-width:180px;max-height:64px}.pp .letter-sheet .letter-qr{object-fit:contain;width:84px;height:84px}.pp .letter-sheet .subject{font-weight:700}.pp .letter-sheet .privacy{color:#555;border-top:1px solid #ddd;padding-top:10px;font-size:10.5px}.pp .print-area{gap:20px;display:grid}.pp .tag-value{border-color:color-mix(in srgb, var(--accent) 45%, transparent);color:var(--accent-ink);font-variant-numeric:tabular-nums}.pp mark.placeholder{background:color-mix(in srgb, var(--warning) 30%, transparent);border-radius:3px}.pp .bars{gap:8px;display:grid}.pp .bar-row{grid-template-columns:minmax(80px,34%) 1fr;align-items:center;gap:10px;display:grid}.pp .bar-label{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;overflow:hidden}.pp .bar-track{align-items:center;gap:8px;min-width:0;display:flex}.pp .bar{background:var(--accent);border-radius:0 4px 4px 0;min-width:2px;height:14px}.pp .bar-value{color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}.pp .table-wrap{border:1px solid var(--border);border-radius:10px;overflow-x:auto}.pp table{border-collapse:collapse;width:100%;font-size:14px}.pp th,.pp td{text-align:left;border-bottom:1px solid var(--border);padding:8px 12px}.pp th{color:var(--text-2);background:var(--surface-2);white-space:nowrap;font-size:12.5px;font-weight:650}.pp tr:last-child td{border-bottom:0}.pp td.num{font-variant-numeric:tabular-nums;text-align:right}.pp .map-box{border:1px solid var(--border-strong);border-radius:10px;height:440px;overflow:hidden}.pp .map-box.leaflet-container{background:var(--surface-2);font:inherit}.pp .map-pop{max-width:230px;font-size:13px}.pp .map-pop strong{margin-bottom:2px;display:block}.pp .list-plain{gap:8px;margin:0;padding:0;list-style:none;display:grid}.pp .bullets{gap:4px;margin:0;padding-left:20px;display:grid}.pp .steps{counter-reset:step;gap:10px;margin:0;padding:0;list-style:none;display:grid}.pp .steps li{grid-template-columns:28px 1fr auto;align-items:center;gap:12px;display:grid}.pp .step-num{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:50%;place-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:grid}.pp .step-num.done{background:var(--good);border-color:var(--good);color:#fff}.pp .spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:16px;height:16px;animation:.8s linear infinite pp-spin}@media (prefers-reduced-motion:reduce){.pp .spinner{animation-duration:3s}}.pp .loading-screen{min-height:60vh;color:var(--muted);place-items:center;display:grid}@media (max-width:640px){.pp .topbar-inner,.pp .main{padding-left:16px;padding-right:16px}.pp .card{padding:16px}.pp .steps li{grid-template-columns:28px 1fr}.pp .steps li>button{grid-column:2;justify-self:start}}.pp .gate-banner{background:var(--accent-wash);color:var(--text-2);border:1px solid #0f8a684d;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin:14px 0 6px;padding:12px 16px;font-size:14px;display:flex}
