:root{--pp-bg: #f6f4ff;--pp-surface: #ffffff;--pp-ink: #2c2550;--pp-ink-soft: #6b6390;--pp-primary: #7c5cff;--pp-accent: #ff8fb1;--pp-warn: #ff9f43;--pp-warn-bg: #fff8ee;--pp-danger: #e05252;--pp-line: #ece8ff;--pp-radius: 18px;--pp-radius-sm: 12px;--pp-shadow: 0 10px 30px rgba(124, 92, 255, .1);--pp-font: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--pp-font);background:var(--pp-bg);color:var(--pp-ink);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}.pp-app{min-height:100vh;display:flex;flex-direction:column}.pp-header{display:flex;align-items:center;gap:12px;padding:14px 24px;background:var(--pp-surface);border-bottom:1px solid var(--pp-line);position:sticky;top:0;z-index:10}.pp-logo{font-weight:800;font-size:19px;letter-spacing:-.02em;display:flex;align-items:center;gap:8px}.pp-logo-badge{background:var(--pp-primary);color:#fff;border-radius:9px;padding:4px 8px;font-size:12px}.pp-tagline{color:var(--pp-ink-soft);font-size:13px}.pp-main{flex:1;display:grid;grid-template-columns:minmax(340px,420px) 1fr;gap:20px;padding:20px 24px 40px;max-width:1500px;width:100%;margin:0 auto;align-items:start}.pp-col{display:flex;flex-direction:column;gap:16px;min-width:0}.pp-col-sticky{position:sticky;top:76px}@media(max-width:940px){.pp-main{grid-template-columns:1fr}.pp-col-sticky{position:static}}.pp-panel{background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius);box-shadow:var(--pp-shadow);padding:18px;display:flex;flex-direction:column;gap:12px}.pp-panel-error{border-color:#f5c6c6}.pp-panel-title{font-weight:700;font-size:15px;display:flex;align-items:center;gap:8px}.pp-step-num{background:var(--pp-primary);color:#fff;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.pp-sub-head{font-weight:700;font-size:13px;margin-bottom:6px}.pp-muted{color:var(--pp-ink-soft);font-size:13px;line-height:1.6}.pp-note{margin-top:4px;font-size:12px}.pp-spec-title{font-weight:800;font-size:18px;letter-spacing:-.02em}.pp-tag{display:inline-block;background:var(--pp-line);color:var(--pp-primary);border-radius:8px;padding:3px 9px;font-size:12px;font-weight:700}.pp-tag-warn{background:var(--pp-warn-bg);color:var(--pp-warn);margin-left:auto}.pp-rules{margin:0;padding-left:18px;color:var(--pp-ink-soft);font-size:13px;line-height:1.8}.pp-drop{border:2px dashed var(--pp-line);border-radius:var(--pp-radius-sm);padding:18px 14px;text-align:center;cursor:pointer;background:#fbfaff;transition:border-color .12s,background .12s}.pp-drop:hover{border-color:var(--pp-primary);background:#f6f3ff}.pp-drop-main{font-weight:700;font-size:14px;color:var(--pp-primary);margin-bottom:4px}.pp-file-ok{font-size:12px;color:#1f9d5c;background:#e9f9f0;border:1px solid #bfe9d3;border-radius:var(--pp-radius-sm);padding:8px 10px;word-break:break-all}.pp-sample-box{background:#fbfaff;border:1px dashed var(--pp-line);border-radius:var(--pp-radius-sm);padding:12px;display:flex;flex-direction:column;gap:8px}.pp-sample-head{font-size:12px;font-weight:800;color:var(--pp-primary);letter-spacing:.02em}.pp-tag-sample{background:#fff8ee;color:#c77a1d;margin-left:auto}.pp-samples{display:flex;flex-wrap:wrap;gap:8px}.pp-chip{border:1px solid var(--pp-line);background:#fbfaff;border-radius:999px;padding:6px 12px;font-size:13px;color:var(--pp-ink-soft)}.pp-chip:hover:not(:disabled){border-color:var(--pp-primary);color:var(--pp-primary)}.pp-chip:disabled{opacity:.5;cursor:not-allowed}textarea.pp-input{width:100%;min-height:220px;resize:vertical;border:1px solid var(--pp-line);border-radius:var(--pp-radius-sm);padding:12px;font-family:var(--pp-font);font-size:13px;line-height:1.7;color:var(--pp-ink);background:#fbfaff}textarea.pp-input:focus{outline:none;border-color:var(--pp-primary)}.pp-btn{border:none;border-radius:var(--pp-radius-sm);padding:12px 16px;font-weight:700;font-size:14px;background:var(--pp-primary);color:#fff;box-shadow:0 5px #7c5cff42;transition:transform .08s ease}.pp-btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px #7c5cff42}.pp-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.pp-btn-ghost{background:transparent;color:var(--pp-primary);box-shadow:none;border:1px solid var(--pp-line)}.pp-btn-ghost:active:not(:disabled){box-shadow:none}.pp-btn-sm{padding:6px 11px;font-size:12px}.pp-notbuildable{text-align:center;padding:22px 16px;background:#fbfaff;border:2px dashed var(--pp-line);border-radius:var(--pp-radius-sm)}.pp-nb-emoji{font-size:40px;margin-bottom:8px}.pp-nb-head{font-weight:800;font-size:15px;margin-bottom:6px}.pp-nb-tip{margin-top:12px;padding-top:12px;border-top:1px solid var(--pp-line);font-size:12px}.pp-oos{background:#fff5f5;border:1px solid #f5c6c6;border-radius:var(--pp-radius-sm);padding:14px}.pp-oos-head{font-weight:800;font-size:13px;color:var(--pp-danger);margin-bottom:6px}.pp-oos-row{padding:8px 0;border-top:1px solid #f5c6c6}.pp-oos-item{font-weight:700;font-size:13px}.pp-holes{background:var(--pp-warn-bg);border:1px solid #ffe2bd;border-radius:var(--pp-radius-sm);padding:14px}.pp-holes-head{font-weight:800;font-size:13px;color:#c77a1d;margin-bottom:6px}.pp-hole{padding:10px 0;border-top:1px solid #ffe2bd}.pp-hole-item{font-weight:700;font-size:13px}.pp-hole-assumed{font-size:13px;color:#c77a1d;font-weight:600;margin:2px 0}.pp-art-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}.pp-art{margin:0;display:flex;flex-direction:column;gap:6px}.pp-art img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--pp-radius-sm);border:1px solid var(--pp-line);background:#fbfaff;display:block}.pp-art figcaption{font-size:11px;color:var(--pp-ink-soft);text-align:center;line-height:1.3}.pp-art-ph{width:100%;aspect-ratio:1;border-radius:var(--pp-radius-sm);border:1px dashed var(--pp-line);background:#fbfaff;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--pp-ink-soft)}.pp-art-loading{background:linear-gradient(100deg,#fbfaff 30%,var(--pp-line) 50%,#fbfaff 70%);background-size:220% 100%;animation:pp-shimmer 1.4s linear infinite}@keyframes pp-shimmer{to{background-position:-220% 0}}.pp-sliders{display:flex;flex-direction:column;gap:16px}.pp-slider-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px}.pp-slider-label{font-size:13px;font-weight:700}.pp-slider-val{font-size:13px;font-weight:700;color:var(--pp-ink-soft);font-variant-numeric:tabular-nums}.pp-slider-val.pp-changed{color:var(--pp-primary)}.pp-orig{font-weight:500;font-size:11px;color:var(--pp-ink-soft)}.pp-slider input[type=range]{width:100%;accent-color:var(--pp-primary);cursor:pointer}.pp-tag-pass{background:#e9f9f0;color:#1f9d5c}.pp-tag-fail{background:#fff0f0;color:var(--pp-danger)}table.pp-verify{width:100%;border-collapse:collapse;font-size:13px}table.pp-verify th{text-align:left;font-size:11px;font-weight:700;color:var(--pp-ink-soft);padding:0 8px 6px 0;border-bottom:1px solid var(--pp-line)}table.pp-verify th:nth-child(2),table.pp-verify th:nth-child(3){text-align:right}table.pp-verify td{padding:9px 8px 9px 0;border-bottom:1px solid var(--pp-line);vertical-align:middle}table.pp-verify tr:last-child td{border-bottom:none}.pp-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.pp-v-measured{font-weight:700}.pp-v-mark{width:24px;text-align:center}.pp-v-pass .pp-v-measured{color:#1f9d5c}.pp-v-fail .pp-v-measured{color:var(--pp-danger)}.pp-v-fail{background:#fff8f8}.pp-v-info .pp-v-measured{color:var(--pp-primary)}.pp-v-err{font-size:11px;color:var(--pp-danger);margin-top:2px}.pp-preview-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.pp-preview-actions{display:flex;gap:6px}.pp-device{border:1px solid var(--pp-line);border-radius:var(--pp-radius);overflow:hidden;background:#fff;height:640px}.pp-device iframe{width:100%;height:100%;border:none;display:block}.pp-empty{height:640px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--pp-ink-soft);text-align:center;border:2px dashed var(--pp-line);border-radius:var(--pp-radius)}.pp-empty-emoji{font-size:46px}.pp-loading{color:var(--pp-primary);font-weight:700;font-size:15px}.pp-spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--pp-line);border-top-color:var(--pp-primary);animation:pp-spin .8s linear infinite}@keyframes pp-spin{to{transform:rotate(360deg)}}.pp-error{color:var(--pp-danger);font-size:13px;line-height:1.6;background:#fff5f5;border:1px solid #f5c6c6;border-radius:var(--pp-radius-sm);padding:10px 12px;white-space:pre-wrap;word-break:break-word}.pp-goal{background:#f3efff;border:1px solid var(--pp-line);border-radius:var(--pp-radius-sm);padding:11px 13px}.pp-goal-stmt{font-weight:700;font-size:13px;margin-bottom:3px}.pp-suggest{background:#fbfaff;border:1px dashed var(--pp-primary);border-radius:var(--pp-radius-sm);padding:14px}.pp-suggest-head{font-weight:800;font-size:13px;color:var(--pp-primary);margin-bottom:6px}.pp-suggest-item{background:#fff;border:1px solid var(--pp-line);border-radius:9px;padding:9px 11px;font-size:13px;margin-bottom:6px;font-weight:600}
