.catalog-manager{max-width:1440px;margin:0 auto}
.catalog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.catalog-heading h1{margin:0;font-size:24px;font-weight:600;line-height:1.25}
.catalog-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:16px}
.catalog-tabs [aria-current=page]{background:var(--accent);border-color:var(--accent);color:#fff}
.catalog-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.catalog-toolbar>input{width:min(380px,45%);min-width:130px;flex:1}
.catalog-manager input,.catalog-manager select{box-sizing:border-box;min-width:0;max-width:100%;min-height:31px;padding:5px 9px;border:1px solid var(--line);border-radius:5px;background:var(--input);color:var(--text);font:inherit}
.catalog-manager input[type=checkbox]{width:16px;min-height:16px;margin:0;accent-color:var(--accent)}
.catalog-check{display:flex;align-items:center;gap:7px;font-size:12px;white-space:normal}
.catalog-table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:6px}
.catalog-table{width:100%;font-size:12px}
.catalog-table th{text-align:left}
.catalog-table td{height:34px;padding:4px 10px}
.catalog-table .catalog-name{min-width:170px;max-width:330px;overflow-wrap:anywhere}
.catalog-text-button{display:block;margin:0;padding:2px 0;border:0;background:transparent;color:var(--text);text-align:left;font:inherit;cursor:pointer}
.catalog-text-button:hover{text-decoration:underline}
.catalog-table small{display:block;color:var(--muted);font-size:11px}
.catalog-number{font-variant-numeric:tabular-nums;text-align:right}
.catalog-state{color:var(--muted);text-transform:capitalize}
.catalog-actions{white-space:nowrap;text-align:right}
.catalog-actions .workspace-button{min-height:25px;padding:2px 6px;font-size:11px;margin:0 0 0 4px}
.catalog-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.catalog-manager button:disabled{opacity:.45;cursor:not-allowed}
.catalog-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-top:10px;color:var(--muted);font-size:12px}
.catalog-footer span{margin-right:auto}
.catalog-empty{padding:16px 0;color:var(--muted)}
.catalog-status{margin:0 0 12px;padding:8px 10px;border-left:3px solid var(--accent);background:var(--surface-raised);border-radius:0 4px 4px 0;overflow-wrap:anywhere}
.catalog-status[hidden],.catalog-form-error[hidden]{display:none}
.catalog-status[role=alert],.catalog-form-error{color:var(--negative,#c34848)}
.catalog-editor{display:flex;flex-direction:column;gap:14px;max-width:720px;margin:20px 0 0;padding:18px;border:1px solid var(--line);border-radius:6px;background:var(--surface);scroll-margin-block:18px}
.catalog-editor h2{font-size:16px;line-height:22px;margin:0}
.catalog-editor p{margin:0}
.catalog-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
.catalog-field{display:flex;flex-direction:column;gap:5px;min-width:0;color:var(--muted);font-size:12px}
.catalog-field input,.catalog-field select{width:100%;color:var(--text)}
.catalog-field input[readonly]{background:var(--surface-raised);color:var(--muted)}
.catalog-help{color:var(--muted);font-size:12px;line-height:1.5}
.catalog-editor-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}
.catalog-rule-preview{font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.catalog-rule-preview ul{margin:7px 0 0;padding-left:18px}
@media(max-width:700px){
  .catalog-manager{padding:16px 12px 28px}
  .catalog-heading h1{font-size:22px}
  .catalog-tabs{gap:7px}
  .catalog-manager .workspace-button,.catalog-manager input:not([type=checkbox]),.catalog-manager select{min-height:44px}
  .catalog-toolbar{flex-wrap:wrap;gap:10px}
  .catalog-toolbar>input{width:100%;max-width:none;flex-basis:100%}
  .catalog-toolbar>.catalog-primary{margin-left:auto}
  /* Workspace tables keep a desktop-width scroll area on phones. Catalog
     rows become cards here, so their grid must size to the card container. */
  .catalog-table,.catalog-table tbody{display:block;width:100%;min-width:0;max-width:100%}
  .catalog-table thead{display:none}
  .catalog-table tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:8px;border-bottom:1px solid var(--line)}
  .catalog-table td{display:block;height:auto;min-height:0;padding:4px 2px;border:0;min-width:0;max-width:100%;text-align:left;background:transparent;white-space:normal;overflow-wrap:anywhere}
  .catalog-table td:not(.catalog-name):not(.catalog-actions)::before{content:attr(data-label) ': ';color:var(--muted);font-size:11px}
  .catalog-table .catalog-name{min-width:0;max-width:none;grid-column:1/-1;font-weight:600;font-size:14px}
  .catalog-table .catalog-actions{display:flex;flex-wrap:wrap;grid-column:1/-1;min-width:0;white-space:normal}
  .catalog-actions .workspace-button{font-size:12px;margin:2px}
  .catalog-editor{padding:14px;margin-top:16px}
  .catalog-form-grid{grid-template-columns:1fr}
  .catalog-editor-actions .workspace-button{flex:1}
}
