/* ===== CSS clip-path Generator — cp- prefix ===== */
.cp-container{position:relative;font-family:'Inter','Noto Sans JP',system-ui,sans-serif}
.cp-container>p,.cp-container>br{display:none!important}
.cp-container *{margin-top:0!important}

/* Security Banner */
.cp-security{display:flex;flex-wrap:wrap;gap:12px;padding:14px 18px;background:linear-gradient(135deg,rgba(99,102,241,.08),rgba(139,92,246,.06));border:1px solid rgba(99,102,241,.15);border-radius:12px;margin-bottom:20px;font-size:.82rem;color:#6366f1}
.cp-security span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}

/* Preset Gallery — horizontal scroll */
.cp-presets-wrap{overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:0 16px 8px}
.cp-presets-wrap::-webkit-scrollbar{height:4px}
.cp-presets-wrap::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}
.cp-presets{display:flex;gap:10px;padding-bottom:4px}
.cp-preset{position:relative;flex:0 0 90px;width:90px;height:90px;background:#f1f5f9;border:2px solid transparent;border-radius:10px;cursor:pointer;transition:.2s;overflow:hidden;display:flex;align-items:center;justify-content:center}
.cp-preset:hover{border-color:#6366f1;transform:translateY(-2px);box-shadow:0 4px 12px rgba(99,102,241,.18)}
.cp-preset.active{border-color:#6366f1;background:#eef2ff}
.cp-preset__shape{width:60%;height:60%;background:linear-gradient(135deg,#6366f1,#8b5cf6);transition:clip-path .3s ease}
.cp-preset__label{position:absolute;bottom:3px;left:0;right:0;text-align:center;font-size:.65rem;color:#64748b;line-height:1.2}

/* Mode Tabs */
.cp-tabs{display:flex;gap:4px;margin-bottom:16px;flex-wrap:wrap}
.cp-tab{padding:8px 16px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;cursor:pointer;font-size:.82rem;font-weight:500;color:#64748b;transition:.2s;white-space:nowrap}
.cp-tab:hover{background:#f8fafc;border-color:#6366f1;color:#6366f1}
.cp-tab.active{background:#6366f1;color:#fff;border-color:#6366f1}

/* Canvas Area */
.cp-editor{display:flex;flex-direction:column;gap:20px}
.cp-canvas-wrap{position:relative;width:100%;aspect-ratio:1;background:#f1f5f9;border-radius:12px;border:2px solid #e2e8f0;overflow:hidden;touch-action:none;cursor:crosshair}
.cp-canvas-wrap canvas{position:absolute;inset:0;width:100%;height:100%}
.cp-canvas-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cp-canvas-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.cp-grid-toggle{position:absolute;top:8px;right:8px;background:rgba(255,255,255,.85);border:1px solid #e2e8f0;border-radius:6px;padding:4px 8px;font-size:.72rem;cursor:pointer;z-index:5}
.cp-snap-toggle{position:absolute;top:8px;right:70px;background:rgba(255,255,255,.85);border:1px solid #e2e8f0;border-radius:6px;padding:4px 8px;font-size:.72rem;cursor:pointer;z-index:5}

/* Editor Controls */
.cp-controls{width:100%}
.cp-param{margin-bottom:14px}
.cp-param__label{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;font-weight:500;color:#475569;margin-bottom:4px}
.cp-param__label span{font-family:monospace;color:#6366f1;font-size:.75rem}
.cp-param input[type=range]{width:100%;accent-color:#6366f1}
.cp-param input[type=number]{width:70px;padding:4px 6px;border:1px solid #e2e8f0;border-radius:6px;font-size:.8rem;text-align:center}
.cp-param input[type=color]{width:36px;height:28px;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;padding:0}

/* Coordinate Table */
.cp-coords{max-height:220px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:8px;margin-top:10px;scrollbar-width:thin}
.cp-coords table{width:100%;border-collapse:collapse;font-size:.78rem}
.cp-coords th{background:#f8fafc;padding:6px 8px;text-align:center;font-weight:600;color:#475569;border-bottom:1px solid #e2e8f0;position:sticky;top:0}
.cp-coords td{padding:4px 6px;text-align:center;border-bottom:1px solid #f1f5f9}
.cp-coords input[type=number]{width:55px;padding:3px 4px;border:1px solid #e2e8f0;border-radius:4px;text-align:center;font-size:.76rem}
.cp-coords .cp-del-node{background:none;border:none;color:#ef4444;cursor:pointer;font-size:.9rem;padding:2px 4px}

/* Preview Settings */
.cp-preview-settings{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}
.cp-preview-settings .cp-param{flex:1;min-width:140px;margin-bottom:0}
.cp-img-upload{display:flex;gap:8px;align-items:center}
.cp-img-upload label{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;font-size:.78rem;transition:.2s}
.cp-img-upload label:hover{background:#eef2ff;border-color:#6366f1}
.cp-img-upload input[type=file]{display:none}
.cp-img-clear{background:none;border:1px solid #ef4444;color:#ef4444;padding:4px 8px;border-radius:6px;cursor:pointer;font-size:.72rem;transition:.2s}
.cp-img-clear:hover{background:#ef4444;color:#fff}

/* Hover Animation */
.cp-hover-section{padding:16px;background:#fefce8;border:1px solid #fde68a;border-radius:10px}
.cp-hover-section h3{font-size:.88rem;font-weight:600;color:#92400e;margin-bottom:12px}
.cp-hover-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.cp-hover-controls .cp-param{flex:1;min-width:120px;margin-bottom:0}
.cp-hover-preview-btn{padding:8px 18px;background:#6366f1;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:.82rem;font-weight:500;transition:.2s}
.cp-hover-preview-btn:hover{background:#4f46e5}

/* Hover State Toggle Tabs */
.cp-hover-state-tabs{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:14px!important}
.cp-hover-state-tab{padding:7px 14px;border:1.5px solid #e2e8f0;border-radius:8px;background:#fff;cursor:pointer;font-size:.78rem;font-weight:500;color:#64748b;transition:.2s}
.cp-hover-state-tab:hover{border-color:#6366f1;color:#6366f1}
.cp-hover-state-tab.active[data-state="base"]{background:#eef2ff;color:#4f46e5;border-color:#6366f1}
.cp-hover-state-tab.active[data-state="hover"]{background:#fef3c7;color:#b45309;border-color:#f59e0b}
.cp-canvas-wrap.editing-hover{border-color:#f59e0b;box-shadow:0 0 0 2px rgba(245,158,11,.25)}

/* Code Output */
.cp-code-tabs{display:flex;gap:4px;margin-bottom:0}
.cp-code-tab{padding:6px 14px;border:1px solid #e2e8f0;border-radius:8px 8px 0 0;background:#fff;cursor:pointer;font-size:.78rem;color:#64748b;transition:.2s}
.cp-code-tab.active{background:#1e293b;color:#fff;border-color:#1e293b}
.cp-code-block{position:relative;background:#1e293b;color:#e2e8f0!important;padding:18px 16px;border-radius:0 8px 8px 8px;font-family:'Fira Code',monospace;font-size:.82rem;line-height:1.7;overflow-x:auto;white-space:pre-wrap;word-break:break-all;min-height:60px}
.cp-code-block code{color:#e2e8f0!important;background:transparent!important;font-family:inherit;font-size:inherit;padding:0;border:none;white-space:pre-wrap}
.cp-copy-btn{position:absolute;top:8px;right:8px;background:rgba(255,255,255,.12);color:#e2e8f0;border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:5px 10px;font-size:.72rem;cursor:pointer;transition:.2s;display:inline-flex;align-items:center;gap:4px}
.cp-copy-btn:hover{background:rgba(255,255,255,.2)}
.cp-option-row{display:flex;gap:12px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.cp-checkbox{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;color:#64748b;cursor:pointer}
.cp-checkbox input{accent-color:#6366f1}

/* Related Tools */
.cp-related{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.cp-related a{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;text-decoration:none;color:#334155;font-size:.82rem;font-weight:500;transition:.2s}
.cp-related a:hover{border-color:#6366f1;color:#6366f1;background:#eef2ff}

/* Toast */
.cp-toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(80px);background:#1e293b;color:#fff;padding:10px 24px;border-radius:10px;font-size:.82rem;opacity:0;transition:all .3s ease;z-index:9999;pointer-events:none;box-shadow:0 8px 32px rgba(0,0,0,.2)}
.cp-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* SVG Path Input */
.cp-svg-input{width:100%;min-height:80px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;font-family:'Fira Code',monospace;font-size:.78rem;resize:vertical;line-height:1.5}
.cp-svg-row{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px}
.cp-svg-row label{font-size:.78rem;font-weight:500;color:#475569;min-width:80px;padding-top:8px}
.cp-svg-row input{flex:1;padding:6px 10px;border:1px solid #e2e8f0;border-radius:6px;font-size:.8rem}

/* Responsive */
@media(max-width:480px){
  .cp-preset{flex:0 0 75px;width:75px;height:75px}
  .cp-tabs{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
  .cp-tabs::-webkit-scrollbar{display:none}
  .cp-preview-settings{flex-direction:column}
}
