.ec-btn{border-radius:var(--radius);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;font-family:inherit;font-weight:550;line-height:1;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.ec-btn:disabled{opacity:.55;cursor:not-allowed}.ec-btn-md{padding:.5rem .9rem;font-size:.875rem}.ec-btn-sm{padding:.35rem .65rem;font-size:.8125rem}.ec-btn-block{width:100%}.ec-btn-primary{background:var(--primary);color:var(--primary-contrast);box-shadow:var(--shadow-sm)}.ec-btn-primary:not(:disabled):hover{background:var(--primary-hover)}.ec-btn-primary:not(:disabled):active{background:var(--primary-active)}.ec-btn-secondary{background:var(--bg-white);color:var(--text-primary);border-color:var(--border);box-shadow:var(--shadow-sm)}.ec-btn-secondary:not(:disabled):hover{background:var(--surface-hover);border-color:var(--border-strong)}.ec-btn-ghost{color:var(--text-secondary);background:0 0}.ec-btn-ghost:not(:disabled):hover{background:var(--surface-hover);color:var(--text-primary)}.ec-btn-danger{background:var(--danger-fill);color:#fff}.ec-btn-danger:not(:disabled):hover{filter:brightness(.94)}.ec-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.ec-card-padded{padding:1.25rem}.ec-card-header{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1rem;display:flex}.ec-card-title{color:var(--text-primary);margin:0;font-size:.95rem;font-weight:650}.ec-card-subtitle{color:var(--text-muted);margin:.2rem 0 0;font-size:.8125rem}.ec-card-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.ec-badge{border-radius:var(--radius-pill);align-items:center;gap:.3rem;padding:.15rem .55rem;font-size:.72rem;font-weight:600;line-height:1.4;display:inline-flex}.ec-badge-neutral{background:var(--surface-hover);color:var(--text-secondary)}.ec-badge-accent{background:var(--primary-soft);color:color-mix(in srgb, var(--primary) 55%, var(--text-primary))}.ec-badge-success{background:color-mix(in srgb, var(--success) 16%, transparent);color:color-mix(in srgb, var(--success) 55%, var(--text-primary))}.ec-badge-warning{background:color-mix(in srgb, var(--warning) 16%, transparent);color:color-mix(in srgb, var(--warning) 55%, var(--text-primary))}.ec-badge-danger{background:color-mix(in srgb, var(--error) 15%, transparent);color:color-mix(in srgb, var(--error) 55%, var(--text-primary))}.ec-badge-info{background:color-mix(in srgb, var(--info) 15%, transparent);color:color-mix(in srgb, var(--info) 55%, var(--text-primary))}.ec-empty{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:.6rem;padding:3rem 1.5rem;display:flex}.ec-empty-icon{color:var(--text-muted);opacity:.7}.ec-empty-title{color:var(--text-secondary);margin:0;font-size:1rem}.ec-empty-desc{max-width:34ch;margin:0;font-size:.875rem}.ec-empty-action{margin-top:.5rem}.ec-tabs{border-bottom:1px solid var(--border);gap:2px;display:flex}.ec-tab{border-radius:var(--radius-sm) var(--radius-sm) 0 0;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;align-items:center;gap:.4rem;padding:.5rem .75rem;font-size:.875rem;font-weight:500;transition:background .15s,color .15s;display:inline-flex;position:relative}.ec-tab:hover{background:var(--surface-hover);color:var(--text-primary)}.ec-tab.active{color:var(--text-primary);font-weight:600}.ec-tab.active:after{content:"";background:var(--text-primary);border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px;left:.5rem;right:.5rem}.ec-media{flex-direction:column;gap:8px;display:flex}.ec-media-tabs{border:1px solid var(--border);border-radius:var(--radius);align-self:flex-start;display:inline-flex;overflow:hidden}.ec-media-tabs button{background:var(--bg-white);color:var(--text-secondary);cursor:pointer;border:none;align-items:center;gap:5px;padding:5px 12px;font-size:.8rem;font-weight:600;display:inline-flex}.ec-media-tabs button+button{border-left:1px solid var(--border)}.ec-media-tabs button.active{background:var(--surface-active);color:var(--text-primary)}.ec-media-file{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-light);justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;display:flex}.ec-media-filename{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.ec-media-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;align-items:center;gap:4px;font-size:.78rem;display:inline-flex}.ec-media-remove:hover{color:var(--error)}.ec-media-browse{border:1px dashed var(--border);border-radius:var(--radius);background:var(--bg-white);color:var(--text-secondary);cursor:pointer;align-self:flex-start;align-items:center;gap:6px;padding:8px 14px;font-size:.82rem;font-weight:600;display:inline-flex}.ec-media-browse:hover{border-color:var(--primary);color:var(--primary)}.ec-input,.ec-textarea,.ec-select{width:100%;color:var(--text-primary);background:var(--bg-light);border-radius:var(--radius);border:1px solid #0000;padding:9px 12px;font-family:inherit;font-size:.875rem;transition:background .15s,border-color .15s,box-shadow .15s}.ec-input::placeholder,.ec-textarea::placeholder{color:var(--text-muted)}.ec-input:hover:not(:disabled):not(:focus),.ec-textarea:hover:not(:disabled):not(:focus),.ec-select:hover:not(:disabled):not(:focus){border-color:var(--border);background:var(--surface-hover)}.ec-input:focus,.ec-textarea:focus,.ec-select:focus{background:var(--bg-white);border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.ec-input:disabled,.ec-textarea:disabled,.ec-select:disabled{opacity:.6;cursor:not-allowed}.ec-textarea{resize:vertical;min-height:76px;line-height:1.55}.ec-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239b9a97' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .7rem center;background-repeat:no-repeat;background-size:16px;padding-right:2.25rem}.ec-field{flex-direction:column;gap:6px;display:flex}.ec-field-labelrow{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.ec-field-label{color:var(--text-secondary);font-size:.82rem;font-weight:600}.ec-field-aside{color:var(--text-muted);font-size:.75rem}.ec-field-hint{color:var(--text-muted);font-size:.78rem}.ec-field-hint.error{color:var(--error)}
