:root{
    --bg:#f4f7fb;
    --card:#ffffff;
    --line:#e2e8f0;
    --text:#0f172a;
    --muted:#64748b;
    --primary:#7c3aed;
    --primary2:#2563eb;
    --success:#16a34a;
    --danger:#dc2626;
    --shadow:0 20px 50px rgba(15,23,42,.08);
    --radius:24px;
}
*{box-sizing:border-box}
body{
    margin:0;
    font-family:Inter,Arial,sans-serif;
    color:var(--text);
    background:
        radial-gradient(circle at top left, rgba(124,58,237,.10), transparent 24%),
        radial-gradient(circle at top right, rgba(37,99,235,.10), transparent 26%),
        var(--bg);
}
.px-app{padding:28px 14px 60px}
.px-shell{max-width:1320px;margin:0 auto}
.px-hero{text-align:center;margin-bottom:18px}
.px-badge{
    display:inline-flex;padding:8px 14px;border-radius:999px;
    background:#fff;border:1px solid rgba(124,58,237,.15);font-weight:800;color:#6d28d9
}
.px-hero h1{margin:14px 0 8px;font-size:40px;line-height:1.05}
.px-hero p{max-width:760px;margin:0 auto;color:var(--muted);font-size:15px}
.px-grid{display:grid;grid-template-columns:minmax(0,1fr) 460px;gap:20px;align-items:start}
.px-card{
    background:rgba(255,255,255,.94);
    border:1px solid rgba(255,255,255,.8);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    padding:22px;
}
.px-card-head h2{margin:0;font-size:20px}
.px-card-head p{margin:6px 0 0;color:var(--muted);font-size:13px}
.px-upload{
    position:relative;margin-top:18px;padding:34px 16px;border:2px dashed #cbd5e1;
    border-radius:22px;text-align:center;background:linear-gradient(135deg, rgba(124,58,237,.05), rgba(37,99,235,.05));
    transition:.2s ease;overflow:hidden
}
.px-upload.is-drag{border-color:#7c3aed;background:#f5f3ff}
.px-upload input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.px-upload-icon{
    width:70px;height:70px;border-radius:22px;display:grid;place-items:center;margin:0 auto 12px;
    background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;font-size:30px;font-weight:800
}
.px-upload-title{font-size:22px;font-weight:900}
.px-upload-sub{margin-top:6px;color:var(--muted);font-size:13px}
.px-progress-wrap{margin-top:18px}
.px-progress-wrap.is-hidden,.is-hidden{display:none!important}
.px-progress-label{display:flex;justify-content:space-between;gap:12px;font-size:13px;font-weight:800;margin-bottom:8px}
.px-progress{height:14px;border-radius:999px;background:#e5e7eb;overflow:hidden}
.px-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--primary),var(--primary2));transition:width .25s ease}
.px-file-card{
    display:flex;align-items:center;gap:14px;margin-top:18px;padding:14px;border:1px solid var(--line);
    border-radius:18px;background:#fff
}
.px-file-card img{width:74px;height:74px;object-fit:cover;border-radius:16px;border:1px solid var(--line);background:#fff}
.px-file-meta{min-width:0;flex:1}
.px-file-name{font-size:15px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.px-file-sub{margin-top:5px;color:var(--muted);font-size:12px}
.px-status{
    margin-top:18px;padding:14px 16px;border-radius:18px;background:#eff6ff;color:#1d4ed8;
    border:1px solid #bfdbfe;font-weight:700;font-size:14px
}
.px-status.is-success{background:#f0fdf4;color:#166534;border-color:#bbf7d0}
.px-status.is-error{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
.px-status.is-info{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.px-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.px-group{margin-top:16px}
.px-group label{
    display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;
    text-transform:uppercase;font-size:12px;letter-spacing:.6px;font-weight:900;color:#334155
}
.px-group label span{color:#4f46e5;text-transform:none;letter-spacing:0;font-size:13px}
.px-control, .px-range{width:100%}
.px-control{
    padding:14px 15px;border-radius:16px;border:1.5px solid var(--line);background:#fff;outline:none
}
.px-control:focus{border-color:#8b5cf6;box-shadow:0 0 0 4px rgba(139,92,246,.12)}
.px-range{accent-color:#7c3aed}
.px-inline{
    display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px
}
.px-color-card,.px-note-card{
    display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:16px;background:#fff
}
.px-color-box{
    width:42px;height:42px;border-radius:12px;overflow:hidden;position:relative;border:1px solid rgba(0,0,0,.08)
}
.px-color-box input{position:absolute;inset:-50%;width:200%;height:200%;border:0;cursor:pointer}
.px-color-meta small,.px-note-card small{display:block;color:var(--muted);font-size:11px;font-weight:700}
.px-color-meta strong,.px-note-card strong{display:block;margin-top:3px;font-size:15px}
.px-toggle{
    margin-top:16px;display:flex;justify-content:space-between;gap:12px;align-items:center;
    padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:#fff
}
.px-toggle strong{display:block;font-size:15px}
.px-toggle small{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.px-rename{margin-top:16px}
.px-rename label{display:block;margin-bottom:8px;font-weight:900;font-size:13px}
.px-rename input{
    width:100%;padding:14px 15px;border-radius:16px;border:1.5px solid var(--line);outline:none
}
.px-rename input:focus{border-color:#8b5cf6;box-shadow:0 0 0 4px rgba(139,92,246,.12)}
.px-rename small{display:block;color:var(--muted);margin-top:8px;font-size:12px}
.px-action-stack{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.px-btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 18px;border-radius:16px;
    text-decoration:none;font-weight:900;border:none;cursor:pointer;transition:.2s ease
}
.px-btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;box-shadow:0 16px 32px rgba(124,58,237,.18)}
.px-btn-primary:hover{transform:translateY(-1px)}
.px-btn-secondary{background:#fff;color:var(--text);border:1.5px solid var(--line)}
.px-btn-secondary:hover{background:#f8fafc}
.px-btn[disabled], .px-btn.is-disabled{opacity:.55;pointer-events:none}
.px-preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.px-preview-box{margin-top:18px}
.px-preview-title{font-size:12px;text-transform:uppercase;letter-spacing:.8px;font-weight:900;color:var(--muted);margin-bottom:8px}
.px-preview-stage{
    min-height:260px;padding:14px;border-radius:20px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden;
    background:
        linear-gradient(45deg,#eef2f7 25%,transparent 25%),
        linear-gradient(-45deg,#eef2f7 25%,transparent 25%),
        linear-gradient(45deg,transparent 75%,#eef2f7 75%),
        linear-gradient(-45deg,transparent 75%,#eef2f7 75%);
    background-size:18px 18px;background-position:0 0,0 9px,9px -9px,-9px 0
}
.px-preview-stage img,.px-preview-stage object{max-width:100%;max-height:230px;display:block}
.px-preview-stage.is-empty{color:var(--muted);font-size:13px}
.px-output-meta{
    margin-top:16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px
}
.px-chip{
    padding:10px 12px;border-radius:999px;background:#fff;border:1px solid var(--line);
    font-size:12px;font-weight:800;color:#475569;text-align:center
}
@media (max-width:1000px){
    .px-grid{grid-template-columns:1fr}
}
@media (max-width:768px){
    .px-hero h1{font-size:30px}
    .px-form-grid,.px-inline,.px-preview-grid,.px-output-meta{grid-template-columns:1fr}
}
