.dsh-root{color:#0f172a;max-width:1180px;margin:0 auto;padding:8px 16px 40px}.dsh-head{margin-bottom:16px}.dsh-title{letter-spacing:-.02em;margin:0 0 8px;font-size:24px;font-weight:800}.dsh-sub{color:#475569;max-width:78ch;margin:0 0 12px;font-size:14px;line-height:1.65}.dsh-notice{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:12px;align-items:flex-start;gap:8px;padding:10px 12px;font-size:13px;line-height:1.6;display:flex}.dsh-notice svg{color:#059669;flex:none;margin-top:2px}.dsh-meta-line{color:#64748b;margin:10px 0 0;font-size:12px;line-height:1.6}.dsh-meta-line a{color:#047857}.dsh-search{margin:16px 0 10px;position:relative}.dsh-search input{box-sizing:border-box;background:#fff;border:1px solid #e2e8f0;border-radius:999px;outline:none;width:100%;height:48px;font-size:16px;box-shadow:0 4px 14px #0f172a0d;padding:0 44px!important}.dsh-search input:focus{border-color:#10b981;box-shadow:0 0 0 3px #10b9812e}.dsh-search-ico{color:#94a3b8;pointer-events:none;position:absolute;top:15px;left:16px}.dsh-clear{color:#475569;cursor:pointer;background:#f1f5f9;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:absolute;top:10px;right:10px}.dsh-hot{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;display:flex}.dsh-hot-label{color:#64748b;margin-right:2px;font-size:12px}.dsh-chip{color:#334155;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:5px 12px;font-size:13px}.dsh-chip:hover,.dsh-chip.on{color:#047857;background:#ecfdf5;border-color:#059669}.dsh-cats{flex-wrap:wrap;gap:6px;max-height:7.5em;margin-bottom:8px;display:flex;overflow:auto}.dsh-cat{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:500}.dsh-cat.on{color:#fff;background:#059669}.dsh-count{color:#64748b;align-items:center;gap:6px;margin:8px 0 12px;font-size:12px;display:flex}.dsh-spin{animation:1s linear infinite dsh-spin}@keyframes dsh-spin{to{transform:rotate(360deg)}}.dsh-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.dsh-card{cursor:pointer;text-align:left;font:inherit;color:inherit;background:#fff;border:1px solid #e8eef5;border-radius:14px;flex-direction:column;padding:0;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex;overflow:hidden}.dsh-card:hover{border-color:#6ee7b7;transform:translateY(-2px);box-shadow:0 12px 28px #0f172a17}.dsh-card-top{box-sizing:border-box;background:linear-gradient(135deg,#d1fae522,#10b98155);align-items:flex-end;height:56px;padding:10px 12px;display:flex;position:relative}.dsh-avatar{color:#fff;background:#059669;border:2px solid #ffffff59;border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;display:flex;box-shadow:0 4px 12px #05966940}.dsh-avatar.lg{border-radius:12px;width:48px;height:48px}.dsh-lic{color:#fff;letter-spacing:.02em;background:#0f172ad1;border-radius:5px;padding:3px 7px;font-size:10px;font-weight:700;position:absolute;top:8px;right:8px}.dsh-card-meta{flex-direction:column;flex:1;gap:3px;padding:10px 12px 12px;display:flex}.dsh-card-name{color:#0f172a;word-break:break-word;font-size:13.5px;font-weight:750;line-height:1.35;display:block}.dsh-card-owner{color:#94a3b8;font-size:11px}.dsh-card-blurb{-webkit-line-clamp:2;color:#64748b;-webkit-box-orient:vertical;min-height:2.9em;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.dsh-card-row{color:#64748b;border-top:1px solid #f1f5f9;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:8px;font-size:11px;display:flex}.dsh-stars{color:#334155;align-items:center;gap:3px;font-weight:650;display:inline-flex}.dsh-tags{text-overflow:ellipsis;white-space:nowrap;color:#64748b;overflow:hidden}.dsh-pager{color:#475569;justify-content:center;align-items:center;gap:16px;margin:18px 0 8px;font-size:13px;display:flex}.dsh-pager button{cursor:pointer;color:#0f172a;background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:6px 14px}.dsh-pager button:disabled{opacity:.4;cursor:not-allowed}.dsh-credit{color:#64748b;margin-top:20px;font-size:12px;line-height:1.7}.dsh-credit a{color:#047857}.dsh-tag{color:#334155;background:#f1f5f9;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.dsh-tag.lic{color:#047857;background:#ecfdf5;font-weight:700}.dsh-tag.stars{color:#b45309;background:#fffbeb}.dsh-pills{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.dsh-install-label{color:#475569;align-items:center;gap:6px;margin:12px 0 6px;font-size:12px;font-weight:700;display:flex}.dsh-install{background:#0f172a;border-radius:12px;align-items:stretch;gap:8px;margin-bottom:8px;padding:8px;display:flex}.dsh-install code{color:#e2e8f0;word-break:break-all;flex:1;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1.5}.dsh-install button{color:#fff;cursor:pointer;background:#10b981;border:none;border-radius:8px;flex:none;align-items:center;gap:6px;padding:0 12px;font-size:12px;font-weight:700;display:inline-flex}.dsh-install-note,.dsh-cap-note,.dsh-dep-text{color:#64748b;margin:0 0 8px;font-size:12px;line-height:1.55}.dsh-linkbtn{color:#fff;background:#059669;border-radius:10px;align-items:center;gap:6px;padding:10px 14px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.dsh-linkbtn.ghost{color:#0f172a;background:#fff;border:1px solid #e2e8f0}.dsh-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.dsh-modal{z-index:1200;background:#0f172a73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dsh-modal-panel{background:#fff;border-radius:16px;width:min(640px,100%);max-height:min(88vh,820px);padding:20px 20px 24px;position:relative;overflow:auto;box-shadow:0 24px 60px #0f172a47}.dsh-modal-close{color:#475569;cursor:pointer;background:#f1f5f9;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:flex;position:absolute;top:12px;right:12px}.dsh-modal-head{align-items:center;gap:12px;padding-right:36px;display:flex}.dsh-modal-title{letter-spacing:-.02em;word-break:break-word;margin:0;font-size:20px;font-weight:800}.dsh-modal-sub{color:#64748b;word-break:break-all;margin-top:4px;font-size:12px}.dsh-modal-desc{color:#475569;margin:12px 0 0;font-size:14px;line-height:1.7}@media (max-width:560px){.dsh-install{flex-direction:column}.dsh-install button{justify-content:center;height:36px}.dsh-cats{max-height:6.2em}}.dsh-chip.reset{color:#b45309;background:#fffbeb;border-color:#f59e0b}.dsh-chip.reset:hover{background:#fef3c7;border-color:#d97706}.dsh-filter-hint{color:#94a3b8;margin-left:8px;font-size:12px}.dsh-empty{text-align:center;color:#64748b;padding:40px 0 24px;font-size:14px}.dsh-empty p{margin:0 0 12px}.dsh-empty-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:8px;display:flex}.dsh-empty-note{color:#94a3b8;max-width:42ch;margin:8px auto 0;font-size:12px;line-height:1.55}
.ps-root{--ps-primary:var(--primary,#00ef89);--ps-primary-ink:#063322;--ps-bg:#f4f7f6;--ps-surface:#fff;--ps-border:#e2e8f0;--ps-text:#0f172a;--ps-muted:#64748b;--ps-danger:#ef4444;background:var(--ps-bg);width:100%;min-height:calc(100vh - 60px);color:var(--ps-text);flex-direction:column;font-size:14px;display:flex}.ps-topbar{background:var(--ps-surface);border-bottom:1px solid var(--ps-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;height:56px;padding:0 16px;display:flex}.ps-topbar-left,.ps-topbar-right,.ps-topbar-center{align-items:center;gap:8px;display:flex}.ps-brand{align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.ps-brand-dot{background:var(--ps-primary);border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 3px #00ef8940}.ps-btn{border:1px solid var(--ps-border);background:var(--ps-surface);height:34px;color:var(--ps-text);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13px;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.ps-btn:hover:not(:disabled){border-color:var(--ps-primary);color:var(--ps-primary-ink)}.ps-btn:disabled{opacity:.45;cursor:not-allowed}.ps-btn-primary{background:var(--ps-primary);border-color:var(--ps-primary);color:var(--ps-primary-ink);font-weight:650}.ps-btn-primary:hover:not(:disabled){filter:brightness(.96)}.ps-btn-ghost{color:var(--ps-muted);background:0 0;border-color:#0000}.ps-btn-ghost:hover:not(:disabled){color:var(--ps-text);background:#f1f5f9;border-color:#0000}.ps-btn-icon{width:34px;padding:0}.ps-btn.active{border-color:var(--ps-primary);color:var(--ps-primary-ink);background:#00ef892e}.ps-select{border:1px solid var(--ps-border);background:var(--ps-surface);height:34px;color:var(--ps-text);border-radius:8px;padding:0 10px;font-size:13px}.ps-body{flex:1;min-height:0;display:flex}.ps-rail{background:var(--ps-surface);border-right:1px solid var(--ps-border);flex-direction:column;flex-shrink:0;align-items:center;gap:6px;width:64px;padding:12px 8px;display:flex}.ps-rail-sep{background:var(--ps-border);width:28px;height:1px;margin:6px 0}.ps-rail-btn{width:44px;height:44px;color:var(--ps-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:10px;display:flex}.ps-rail-btn:hover{color:var(--ps-text);background:#f1f5f9}.ps-rail-btn.active{color:var(--ps-primary-ink);background:#00ef8929;border-color:#00ef8973}.ps-stage-wrap{background-color:#e8eceb;background-image:linear-gradient(45deg,#eef2f1 25%,#0000 25%),linear-gradient(-45deg,#eef2f1 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#eef2f1 75%),linear-gradient(-45deg,#0000 75%,#eef2f1 75%);background-position:0 0,0 10px,10px -10px,-10px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:20px 20px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;flex:1;min-width:0;position:relative;overflow:auto}.ps-stage-inner{box-sizing:border-box;justify-content:center;align-items:center;min-width:100%;min-height:100%;padding:40px;display:flex}.ps-canvas-frame{background:#fff;line-height:0;box-shadow:0 16px 48px #0f172a24}.ps-panel{background:var(--ps-surface);border-left:1px solid var(--ps-border);flex-direction:column;flex-shrink:0;width:280px;min-height:0;display:flex}.ps-panel-tabs{border-bottom:1px solid var(--ps-border);display:flex}.ps-panel-tab{height:42px;color:var(--ps-muted);cursor:pointer;background:0 0;border:none;flex:1;font-size:13px;font-weight:600}.ps-panel-tab.active{color:var(--ps-primary-ink);box-shadow:inset 0 -2px 0 var(--ps-primary)}.ps-panel-body{flex:1;padding:14px;overflow:auto}.ps-field{margin-bottom:14px}.ps-field label{color:var(--ps-muted);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.ps-field input[type=color]{border:1px solid var(--ps-border);cursor:pointer;background:0 0;border-radius:8px;width:100%;height:36px;padding:0}.ps-field input[type=range]{width:100%;accent-color:var(--ps-primary)}.ps-field input[type=number],.ps-field select{border:1px solid var(--ps-border);background:#fff;border-radius:8px;width:100%;height:34px;padding:0 10px}.ps-row,.ps-preset-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ps-preset-card{border:1px solid var(--ps-border);cursor:pointer;text-align:left;background:#fff;border-radius:10px;padding:0;overflow:hidden}.ps-preset-card:hover{border-color:var(--ps-primary)}.ps-preset-swatch{width:100%;height:56px}.ps-preset-card span{color:var(--ps-text);padding:8px;font-size:12px;display:block}.ps-layer-item{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;padding:8px 10px;font-size:13px;display:flex}.ps-layer-item:hover{background:#f8fafc}.ps-layer-item.active{background:#00ef891f;border-color:#00ef8966}.ps-hint{color:var(--ps-muted);font-size:12px;line-height:1.5}.ps-shape-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ps-status{color:var(--ps-muted);font-size:12px}@media (max-width:900px){.ps-panel{display:none}.ps-rail{width:52px}.ps-topbar-center{display:none}}
