:root{
  --psip-bg:#111;
  --psip-fg:#eaeaea;
  --psip-muted:#9a9a9a;
  --psip-line:#2a2a2a;
  --psip-accent:#8bc34a;
  --psip-danger:#ff9a9a;
}
.psip-surface{max-width:920px;margin:1rem 0;padding:1rem;border:2px dashed var(--psip-line);border-radius:12px;text-align:center}
.psip-btn{padding:.4rem .7rem;border:1px solid var(--psip-line);border-radius:8px;background:#1a1a1a;color:var(--psip-fg);cursor:pointer}
.psip-btn.psip-primary{border-color:#2a4;background:#2a4;color:#fff}
.psip-btn.psip-danger{border-color:#a55;background:#2a1515;color:var(--psip-danger)}
.psip-progress{height:8px;background:#222;border-radius:999px;margin:1rem auto;overflow:hidden;max-width:500px}
#psip-bar{height:8px;width:0%;background:var(--psip-accent)}
.psip-muted{color:var(--psip-muted)}
.psip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.psip-card{border:1px solid var(--psip-line);border-radius:10px;padding:8px;text-align:center;background:#121212}
.psip-link{display:block;margin-bottom:6px;word-break:break-all;color:#9ad}
.psip-thumb{max-width:100%;height:auto;border-radius:6px;background:#000}
.psip-time{font-size:12px;color:var(--psip-muted);margin-top:4px}
.psip-row{display:flex;gap:8px;justify-content:center;margin-top:6px}
/* Modal */
.psip-modal{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:9999;display:flex;align-items:center;justify-content:center}
.psip-modal[hidden]{display:none}
.psip-modal-inner{background:#101010;border:1px solid var(--psip-line);border-radius:10px;max-width:95vw;max-height:95vh;display:flex;flex-direction:column}
.psip-toolbar{padding:8px;border-bottom:1px solid var(--psip-line);display:flex;flex-direction:column;gap:6px;color:var(--psip-fg)}
.psip-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.psip-spacer{flex:1}
.psip-canvas-wrap{padding:8px}
#psip-canvas{max-width:95vw;max-height:80vh;background:#000;border-radius:6px;display:block}
.psip-color{width:22px;height:22px;border-radius:4px;border:1px solid var(--psip-line);cursor:pointer}
.psip-color[data-color="yellow"]{background:#ffe000}
.psip-color[data-color="red"]{background:#ff3b30}
.psip-color[data-color="blue"]{background:#0a84ff}
.psip-color[data-color="black"]{background:#111}
.psip-color[data-color="white"]{background:#f2f2f2}
