.pgw-wrap *,
.pgw-wrap *::before,
.pgw-wrap *::after{box-sizing:border-box}
.pgw-wrap{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:16px;line-height:1.5;color:#1a1a1a}
.pgw-wrap .container{max-width:480px;margin:0 auto;padding:16px}
.pgw-wrap header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.pgw-wrap h2{font-size:1.25rem;font-weight:700;margin:0}
.pgw-wrap .session-chip{display:flex;align-items:center;gap:6px;background:#e9ecef;
  border-radius:20px;padding:4px 12px;font-size:0.75rem;font-family:monospace;cursor:pointer;
  border:none;color:#495057;transition:background .15s}
.pgw-wrap .session-chip:active{background:#dee2e6}
.pgw-wrap .session-chip .regen{font-size:0.85rem;opacity:.6;padding:0 2px}
.pgw-wrap .session-chip .regen:hover{opacity:1}
.pgw-wrap textarea{width:100%;min-height:120px;padding:12px;border:1px solid #dee2e6;border-radius:10px;
  font-size:0.9375rem;font-family:inherit;resize:vertical;background:#fff;
  transition:border-color .15s}
.pgw-wrap textarea:focus{outline:none;border-color:#4c6ef5}
.pgw-wrap .pgw-btn{display:block;width:100%;padding:12px;border:none;border-radius:10px;font-size:1rem;
  font-weight:600;cursor:pointer;transition:opacity .15s;margin-top:12px}
.pgw-wrap .pgw-btn:active{opacity:.8}
.pgw-wrap .pgw-btn:disabled{opacity:.4;cursor:not-allowed}
.pgw-wrap .btn-primary{background:#4c6ef5;color:#fff}
.pgw-wrap .btn-secondary{background:#868e96;color:#fff}
.pgw-wrap .btn-danger{background:#fa5252;color:#fff;font-size:.875rem;padding:8px}
.pgw-wrap .card{background:#fff;border:1px solid #dee2e6;border-radius:10px;padding:12px;margin-top:12px;
  white-space:pre-wrap;word-break:break-word;font-size:.9375rem;line-height:1.6}
.pgw-wrap .card.empty{display:none}
.pgw-wrap .tag{display:inline;padding:1px 4px;border-radius:4px;font-size:inherit;line-height:inherit}
.pgw-wrap .tag-PERSON{background:#dbe4ff;color:#364fc7}
.pgw-wrap .tag-EMAIL_ADDRESS{background:#d3f9d8;color:#2b8a3e}
.pgw-wrap .tag-PHONE_NUMBER{background:#ffe8cc;color:#d9480f}
.pgw-wrap .tag-LOCATION{background:#e5dbff;color:#6741d9}
.pgw-wrap .tag-US_SSN{background:#ffe3e3;color:#c92a2a}
.pgw-wrap .tag-CREDIT_CARD{background:#ffe3e3;color:#c92a2a}
.pgw-wrap .tag-IP_ADDRESS{background:#fff3bf;color:#e67700}
.pgw-wrap .tag-URL{background:#c3fae8;color:#087f5b}
.pgw-wrap .tag-DATE_TIME{background:#eebefa;color:#862e9c}
.pgw-wrap .tag-API_KEY{background:#fff3bf;color:#e67700}
.pgw-wrap .tag-OTHER{background:#f1f3f5;color:#495057}
.pgw-wrap .toggle{display:flex;align-items:center;justify-content:space-between;padding:10px 0;
  margin-top:12px;border:none;background:none;width:100%;cursor:pointer;font-size:.9375rem;
  font-weight:600;color:#495057}
.pgw-wrap .toggle .arrow{transition:transform .2s}
.pgw-wrap .toggle[aria-expanded="true"] .arrow{transform:rotate(90deg)}
.pgw-wrap .collapsible{overflow:hidden;max-height:0;transition:max-height .3s ease}
.pgw-wrap .collapsible.open{max-height:2000px}
.pgw-wrap .mappings-table{width:100%;border-collapse:collapse;font-size:.8125rem;margin-top:8px}
.pgw-wrap .mappings-table th{text-align:left;padding:6px 8px;background:#f1f3f5;font-weight:600}
.pgw-wrap .mappings-table td{padding:6px 8px;border-top:1px solid #e9ecef;word-break:break-all}
.pgw-wrap .history-item{padding:10px;border:1px solid #e9ecef;border-radius:8px;margin-top:8px;
  font-size:.8125rem;cursor:pointer;transition:background .15s}
.pgw-wrap .history-item:hover{background:#f8f9fa}
.pgw-wrap .history-item .ts{color:#868e96;font-size:.75rem}
.pgw-wrap .history-item .preview{margin-top:4px;color:#495057;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap}

.pgw-wrap .spinner{display:inline-block;width:16px;height:16px;border:2px solid #fff;
  border-top-color:transparent;border-radius:50%;animation:pgw-spin .6s linear infinite;
  vertical-align:middle;margin-right:6px}
@keyframes pgw-spin{to{transform:rotate(360deg)}}
.pgw-wrap .error{color:#c92a2a;font-size:.8125rem;margin-top:8px}

/* Tabs */
.pgw-wrap .tab-bar{display:flex;gap:0;margin-bottom:16px;border-bottom:2px solid #dee2e6}
.pgw-wrap .tab-btn{flex:1;padding:10px 0;border:none;background:none;font-size:.9375rem;
  font-weight:600;color:#868e96;cursor:pointer;border-bottom:2px solid transparent;
  margin-bottom:-2px;transition:color .15s,border-color .15s}
.pgw-wrap .tab-btn.active{color:#4c6ef5;border-bottom-color:#4c6ef5}
.pgw-wrap .tab-btn:hover:not(.active){color:#495057}
.pgw-wrap .tab-panel{display:none}
.pgw-wrap .tab-panel.active{display:block}

/* File upload */
.pgw-wrap .drop-zone{border:2px dashed #dee2e6;border-radius:10px;padding:24px;
  text-align:center;cursor:pointer;transition:border-color .15s,background .15s;
  color:#868e96;font-size:.9375rem}
.pgw-wrap .drop-zone:hover,.pgw-wrap .drop-zone.dragover{border-color:#4c6ef5;background:#f8f9ff}
.pgw-wrap .drop-zone .file-name{color:#1a1a1a;font-weight:600;margin-top:8px}
.pgw-wrap .drop-zone input[type="file"]{display:none}

/* Session ID card (spreadsheet tab) */
.pgw-wrap .session-card{background:#e7f5ff;border:1px solid #a5d8ff;border-radius:10px;
  padding:12px;margin-top:12px;font-size:.875rem}
.pgw-wrap .session-card .sid{font-family:monospace;font-weight:700;font-size:1rem;
  word-break:break-all;margin:6px 0}
.pgw-wrap .session-card .hint{color:#495057;font-size:.8125rem}
.pgw-wrap .session-card .copy-btn{display:inline-block;margin-top:6px;padding:4px 12px;
  background:#4c6ef5;color:#fff;border:none;border-radius:6px;font-size:.8125rem;
  cursor:pointer;font-weight:600}
.pgw-wrap .session-card .copy-btn:active{opacity:.8}

/* Download link */
.pgw-wrap .download-link{display:block;margin-top:12px;padding:12px;background:#d3f9d8;
  border:1px solid #8ce99a;border-radius:10px;text-align:center;text-decoration:none;
  color:#2b8a3e;font-weight:600;font-size:.9375rem;transition:background .15s}
.pgw-wrap .download-link:hover{background:#b2f2bb}

/* Session selector (Text tab) */
.pgw-wrap .session-selector{margin-bottom:16px;padding:12px;background:#f8f9fa;border-radius:10px;font-size:.875rem}
.pgw-wrap .session-option{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.pgw-wrap .session-option:last-child{margin-bottom:0}
.pgw-wrap .session-option input[type="radio"]{margin:0}
.pgw-wrap .session-option label{font-weight:600;color:#495057}
.pgw-wrap .session-id-preview{font-family:monospace;font-size:.8125rem;color:#868e96;margin-left:auto}
.pgw-wrap .session-option input[type="text"]{flex:1;padding:6px 10px;border:1px solid #dee2e6;border-radius:6px;
  font-size:.8125rem;font-family:monospace;background:#fff;transition:border-color .15s}
.pgw-wrap .session-option input[type="text"]:focus{outline:none;border-color:#4c6ef5}
.pgw-wrap .session-option input[type="text"]:disabled{background:#f1f3f5;color:#868e96;cursor:not-allowed}
