.tools-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:24px;align-items:start}
.tools-directory{
  position:sticky;top:72px;min-width:0;padding-right:18px;border-right:1px solid var(--border);
}
.tools-directory-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.tools-directory-header>div{display:grid;gap:2px;min-width:0}
.tools-directory-header strong{color:var(--text-primary);font-size:.92em}
.tools-directory-header span{color:var(--text-dim);font-size:.64em}
.tools-workspace{min-width:0}
.tool-mode-switch{display:flex;flex-direction:column;gap:5px;min-width:0}
.tool-mode-switch button{
  display:grid;grid-template-columns:26px minmax(0,1fr);gap:9px;align-items:center;width:100%;min-height:56px;
  padding:9px 10px;border:1px solid transparent;border-radius:6px;background:transparent;
  color:var(--text-secondary);font:inherit;text-align:left;cursor:pointer;
}
.tool-mode-switch button:hover{border-color:var(--border);background:#14161f;color:var(--text-primary)}
.tool-mode-switch button.active{border-color:var(--accent-dim);background:rgba(79,195,247,.08);color:var(--text-primary)}
.tool-mode-switch button>span:last-child{display:grid;gap:2px;min-width:0}
.tool-mode-switch button strong,.tool-mode-switch button small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tool-mode-switch button strong{font-size:.76em;font-weight:600}
.tool-mode-switch button small{color:var(--text-dim);font-size:.6em}
.tool-mode-index{color:var(--text-dim);font-size:.6em;font-variant-numeric:tabular-nums}
.tool-mode-switch button.active .tool-mode-index{color:var(--accent)}
.tool-tour-trigger{
  display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:4px 7px;
  border:1px solid var(--border);border-radius:5px;background:transparent;color:var(--text-secondary);
  font:inherit;font-size:.7em;white-space:nowrap;cursor:pointer;
}
.tool-tour-trigger:hover{border-color:var(--accent);color:var(--accent)}
.tool-tour-trigger-icon{
  display:grid;place-items:center;width:18px;height:18px;border:1px solid currentColor;border-radius:50%;
  font-size:11px;font-weight:700;line-height:1;
}
.tool-mode-switch button:focus-visible,.tool-tour-trigger:focus-visible,.catalog-clear-button:focus-visible,
.tool-tour-card button:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px;
}
.tool-subpanel{display:none}
.tool-subpanel.active{display:block}

.catalog-shell{
  display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.92fr);gap:20px;align-items:start;
}
.catalog-source-pane,.catalog-work-pane{min-width:0}
.catalog-source-pane{padding-bottom:20px}
.catalog-work-pane{
  position:sticky;top:72px;max-height:calc(100vh - 84px);padding:0 5px 4px 18px;overflow-y:auto;
  border-left:1px solid var(--border);scrollbar-width:thin;scrollbar-color:var(--border-light) transparent;
}
.catalog-pane-heading,.catalog-work-heading{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
}
.catalog-pane-heading{min-height:38px;margin-bottom:10px}
.catalog-pane-heading h3{margin:0 0 2px;font-size:.96em;color:var(--text-primary)}
.catalog-pane-heading span{display:block;font-size:.7em;color:var(--text-dim)}
.catalog-pane-heading a{color:var(--accent);font-size:.7em;text-decoration:none}
.catalog-source-actions{display:flex;align-items:center;gap:6px}
.catalog-text-button{
  min-height:30px;padding:5px 9px;border:1px solid var(--border);border-radius:5px;background:transparent;
  color:var(--text-secondary);font:inherit;font-size:.68em;text-align:center;white-space:nowrap;cursor:pointer;
}
.catalog-text-button:hover{border-color:var(--accent);color:var(--accent)}
.catalog-text-button:disabled{opacity:.4;cursor:default}
.catalog-add-page{border-color:var(--accent-dim);color:var(--accent)}

.catalog-filter-toolbar{
  display:grid;grid-template-columns:minmax(140px,1fr) minmax(210px,1fr);gap:6px;
}
.catalog-search-row{min-width:0}
.catalog-search-row input,.catalog-filter-row select,.catalog-toolbar input,.catalog-toolbar select{
  min-width:0;height:36px;padding:6px 9px;background:#171923;border:1px solid var(--border);
  border-radius:5px;color:var(--text-primary);font:inherit;font-size:.75em;outline:none;
}
.catalog-search-row input{width:100%}
.catalog-search-row input:focus,.catalog-filter-row select:focus,.catalog-toolbar input:focus,.catalog-toolbar select:focus{
  border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow);
}
.catalog-filter-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;min-width:0}
.catalog-filter-row select{width:100%}
.catalog-faction-tabs{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:7px 0 12px;
  border:1px solid var(--border);border-radius:5px;overflow:hidden;
}
.catalog-faction-tabs button{
  min-width:0;height:30px;padding:4px;border:0;border-right:1px solid var(--border);background:transparent;
  color:var(--text-secondary);font:inherit;font-size:.67em;cursor:pointer;
}
.catalog-faction-tabs button:last-child{border-right:0}
.catalog-faction-tabs button:hover{color:var(--accent)}
.catalog-faction-tabs button.active{background:var(--accent);color:#0d0e14;font-weight:700}

.catalog-source-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;align-content:start;
  max-height:min(64vh,720px);padding-right:7px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;
  scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:#66707f #171923;
}
.catalog-source-grid:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.catalog-source-grid::-webkit-scrollbar{width:12px}
.catalog-source-grid::-webkit-scrollbar-track{background:#171923;border-radius:6px}
.catalog-source-grid::-webkit-scrollbar-thumb{
  min-height:52px;border:3px solid #171923;border-radius:6px;background:#66707f;
}
.catalog-source-grid::-webkit-scrollbar-thumb:hover{background:var(--accent)}
.catalog-source-item{
  --quality-color:#6b7280;
  position:relative;min-width:0;padding:4px 4px 7px;border:1px solid var(--border);border-top:2px solid var(--quality-color);
  border-radius:6px;background:#11131a;color:var(--text-primary);cursor:pointer;text-align:left;
  transition:border-color .15s ease,background .15s ease,transform .15s ease;
}
.catalog-source-item:hover{border-color:var(--quality-color);background:#171923;transform:translateY(-1px)}
.catalog-source-item.selected{border-color:var(--accent);background:rgba(79,195,247,.07)}
.catalog-source-item.selected::after{
  content:'✓';position:absolute;top:7px;right:7px;width:18px;height:18px;display:grid;place-items:center;
  border-radius:50%;background:var(--accent);color:#0d0e14;font-size:.68em;font-weight:700;
}
.catalog-source-item img{display:block;width:100%;aspect-ratio:254/371;object-fit:contain;background:#08090d;border-radius:3px}
.catalog-quality-badge{
  position:absolute;left:7px;top:7px;max-width:calc(100% - 34px);padding:2px 5px;border-radius:3px;
  background:var(--quality-color);color:#fff;font-size:.52em;font-weight:700;line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.quality-illusory{--quality-color:#c9c5b7}
.quality-illusory .catalog-quality-badge{color:#28251f}
.quality-s{--quality-color:#b88b28}
.quality-a{--quality-color:#76527b}
.quality-b{--quality-color:#3f7897}
.quality-c{--quality-color:#668152}
.quality-custom{--quality-color:#6b7280}
.catalog-source-item strong,.catalog-source-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.catalog-source-item strong{margin-top:5px;font-size:.68em;line-height:1.35}
.catalog-source-item small{margin-top:2px;color:var(--text-dim);font-size:.58em;line-height:1.35}
.catalog-source-empty{grid-column:1/-1;padding:48px 8px;text-align:center;color:var(--text-dim);font-size:.78em}

.catalog-pagination{
  display:flex;justify-content:center;align-items:center;gap:10px;margin-top:16px;color:var(--text-dim);font-size:.7em;
}
.catalog-pagination button{
  width:30px;height:30px;padding:0;border:1px solid var(--border);border-radius:5px;background:transparent;
  color:var(--text-secondary);font:500 1.3em inherit;cursor:pointer;
}
.catalog-pagination button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.catalog-pagination button:disabled{opacity:.3;cursor:default}
#catalog_page_status{min-width:54px;text-align:center}

.catalog-work-heading{min-height:38px;margin-bottom:10px}
.catalog-work-heading>div:first-child{display:grid;gap:1px}
.catalog-work-heading>div:first-child>span{color:var(--text-primary);font-size:.9em;font-weight:700}
.catalog-work-heading>div:first-child>strong{color:var(--text-dim);font-size:.66em;font-weight:400}
.catalog-work-heading>div:first-child b{color:var(--accent);font-weight:700}
.catalog-work-heading>div:last-child{display:flex;gap:6px;align-items:center}
.catalog-clear-button{
  min-height:32px;padding:6px 9px;border:1px solid rgba(239,83,80,.55);border-radius:5px;
  background:rgba(239,83,80,.06);color:var(--red);font:inherit;font-size:.7em;white-space:nowrap;cursor:pointer;
}
.catalog-clear-button:hover:not(:disabled){border-color:var(--red);background:rgba(239,83,80,.13)}
.catalog-clear-button:disabled{border-color:var(--border);background:transparent;color:var(--text-dim);opacity:.45;cursor:default}
.btn.catalog-export-button,.btn.catalog-download-ready{
  width:auto;min-height:32px;padding:6px 11px;border-radius:5px;font-size:.72em;white-space:nowrap;
}
.btn.catalog-export-button:disabled{opacity:.4;cursor:default}
.catalog-download-ready{text-decoration:none;background:var(--green);color:#07130b}
.catalog-download-ready[hidden]{display:none}

.catalog-toolbar{padding:10px 0 12px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.catalog-toolbar-primary{display:grid;grid-template-columns:minmax(0,1fr) 62px;gap:8px}
.catalog-toolbar-secondary{display:flex;justify-content:flex-start;align-items:end;gap:10px;margin-top:9px}
.catalog-title-field label,.catalog-control-field label,.catalog-theme-field legend{
  display:block;margin-bottom:4px;color:var(--text-dim);font-size:.64em;
}
.catalog-title-field input,.catalog-control-field select{width:100%}
.catalog-theme-field{display:flex;flex-wrap:wrap;gap:7px;border:0;padding:0;margin:0;min-width:105px}
.catalog-theme-field legend{width:100%}
.catalog-swatch{
  width:20px;height:20px;padding:0;border:2px solid transparent;border-radius:50%;
  background:var(--swatch);box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);cursor:pointer;
}
.catalog-swatch.active{border-color:var(--accent)}

.catalog-text-composer{display:grid;gap:7px;margin-top:10px}
.catalog-text-composer textarea{
  width:100%;min-height:48px;max-height:120px;padding:8px 9px;resize:vertical;background:#171923;
  border:1px solid var(--border);border-radius:5px;color:var(--text-primary);font:inherit;font-size:.72em;
  line-height:1.45;outline:none;
}
.catalog-text-composer textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}
.catalog-text-composer-footer{display:flex;justify-content:space-between;align-items:center;gap:8px}
.catalog-text-style-controls,.catalog-text-actions{display:flex;align-items:center;gap:6px}
.catalog-text-size-field{display:flex;align-items:center;gap:5px;color:var(--text-dim);font-size:.65em;white-space:nowrap}
.catalog-text-size-field input{
  width:50px;height:30px;padding:4px 5px;background:#171923;border:1px solid var(--border);border-radius:5px;
  color:var(--text-primary);font:inherit;font-size:11px;text-align:center;outline:none;
}
.catalog-text-size-field input:focus{border-color:var(--accent)}
.catalog-text-align{display:flex;border:1px solid var(--border);border-radius:5px;overflow:hidden}
.catalog-text-align button{
  height:28px;padding:3px 7px;border:0;border-right:1px solid var(--border);background:transparent;
  color:var(--text-secondary);font:inherit;font-size:.62em;cursor:pointer;
}
.catalog-text-align button:last-child{border-right:0}
.catalog-text-align button:hover{color:var(--accent)}
.catalog-text-align button.active{background:var(--accent);color:#0d0e14;font-weight:700}
.catalog-text-submit,.catalog-text-cancel{
  min-width:62px;padding:6px 9px;border:1px solid var(--border);border-radius:5px;background:transparent;
  color:var(--text-secondary);font:inherit;font-size:.68em;white-space:nowrap;cursor:pointer;
}
.catalog-text-submit{border-color:var(--accent-dim);color:var(--accent)}
.catalog-text-submit:hover:not(:disabled),.catalog-text-cancel:hover{border-color:var(--accent);color:var(--accent)}
.catalog-text-submit:disabled{opacity:.35;cursor:default}
.catalog-text-cancel[hidden]{display:none}

.catalog-text-live-preview{
  margin-top:7px;padding:6px 58px;border:1px solid rgba(140,145,158,.35);border-radius:4px;
  color:#f3f4f6;background:#1c1e26;
}
.catalog-text-live-preview[hidden]{display:none}
.catalog-text-live-preview.theme-paper{background:#d8d5cd;color:#24221f}
.catalog-text-live-preview.theme-green{background:#1d463f;color:#f1f5ef}
.catalog-text-live-preview.theme-red{background:#573039;color:#fff4f1}
.catalog-text-live-preview>div{
  max-width:100%;font-size:var(--catalog-text-size,18px);font-weight:600;line-height:1.35;overflow-wrap:anywhere;
}
.catalog-text-live-preview.align-start>div{text-align:left}
.catalog-text-live-preview.align-center>div{text-align:center}
.catalog-text-live-preview.align-end>div{text-align:right}

.catalog-stage{
  --catalog-columns:4;position:relative;min-height:270px;margin-top:12px;padding:20px 14px 28px;overflow:hidden;
  border:1px solid var(--border-light);border-radius:6px;background:#11131a;color:#f3f4f6;
}
.catalog-stage.theme-paper{background:#e8e4da;color:#24221f}
.catalog-stage.theme-green{background:#123b34;color:#f1f5ef}
.catalog-stage.theme-red{background:#491d26;color:#fff4f1}
.catalog-stage-title{margin-bottom:16px;text-align:center;font-size:1.05em;font-weight:700;overflow-wrap:anywhere}
.catalog-selection-grid{display:grid;grid-template-columns:repeat(var(--catalog-columns),minmax(0,1fr));gap:7px}
.catalog-selected-item{position:relative;min-width:0;cursor:grab}
.catalog-text-block{
  grid-column:1/-1;padding:6px 58px;
  border:1px solid rgba(140,145,158,.35);border-radius:4px;background:rgba(127,127,127,.1);color:inherit;
}
.catalog-text-block-content{
  max-width:100%;font-size:var(--catalog-text-size,18px);font-weight:600;line-height:1.35;overflow-wrap:anywhere;
}
.catalog-text-block.align-start .catalog-text-block-content{text-align:left}
.catalog-text-block.align-center .catalog-text-block-content{text-align:center}
.catalog-text-block.align-end .catalog-text-block-content{text-align:right}
.catalog-selected-item.dragging{opacity:.42}
.catalog-selected-item.drag-target{outline:2px solid var(--accent);outline-offset:2px}
.catalog-selected-item img{
  display:block;width:100%;aspect-ratio:254/371;object-fit:contain;background:rgba(0,0,0,.28);
  border:1px solid var(--quality-color,rgba(255,255,255,.12));border-radius:4px;
}
.catalog-item-actions{
  position:absolute;top:3px;left:3px;right:3px;display:flex;justify-content:space-between;gap:3px;
  opacity:0;transition:opacity .15s ease;
}
.catalog-selected-item:hover .catalog-item-actions,.catalog-selected-item:focus-within .catalog-item-actions{opacity:1}
.catalog-item-actions div{display:flex;gap:3px}
.catalog-item-actions button{
  width:22px;height:22px;padding:0;border:0;border-radius:4px;background:rgba(8,9,13,.86);
  color:#fff;cursor:pointer;font-size:.66em;
}
.catalog-empty{position:absolute;inset:108px 20px auto;text-align:center;color:var(--text-dim);font-size:.78em}
.catalog-attribution{position:absolute;right:12px;bottom:8px;color:currentColor;opacity:.4;font-size:.52em}

.tool-tour[hidden]{display:none}
.tool-tour{position:fixed;inset:0;z-index:1000}
.tool-tour-shield{position:fixed;inset:0;z-index:0;touch-action:none}
.tool-tour-spotlight{
  position:fixed;z-index:1;border:2px solid var(--accent);border-radius:7px;
  box-shadow:0 0 0 9999px rgba(5,6,10,.8),0 0 0 4px rgba(79,195,247,.2);
  pointer-events:none;transition:top .18s ease,left .18s ease,width .18s ease,height .18s ease;
}
.tool-tour-card{
  position:fixed;z-index:2;width:min(360px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow-y:auto;
  padding:15px 16px 16px;border:1px solid var(--border-light);border-radius:8px;background:#151720;
  color:var(--text-primary);box-shadow:0 18px 54px rgba(0,0,0,.48);
}
.tool-tour-card-header{display:flex;justify-content:space-between;align-items:center;gap:12px}
.tool-tour-card-header span{color:var(--accent);font-size:.68em;font-weight:700}
.tool-tour-card-header button{
  width:28px;height:28px;padding:0;border:0;border-radius:4px;background:transparent;
  color:var(--text-secondary);font:inherit;font-size:1.05em;cursor:pointer;
}
.tool-tour-card-header button:hover{background:rgba(255,255,255,.06);color:var(--text-primary)}
.tool-tour-card h3{margin:7px 0 5px;font-size:.98em;color:var(--text-primary)}
.tool-tour-card p{margin:0;color:var(--text-secondary);font-size:.75em;line-height:1.65}
.tool-tour-card-footer{display:flex;justify-content:flex-end;gap:7px;margin-top:14px}
.tool-tour-card-footer button{
  min-height:32px;padding:6px 12px;border:1px solid var(--border);border-radius:5px;
  background:transparent;color:var(--text-secondary);font:inherit;font-size:.7em;cursor:pointer;
}
.tool-tour-card-footer button:disabled{opacity:.35;cursor:default}
.tool-tour-card-footer .tool-tour-next{border-color:var(--accent);background:var(--accent);color:#0d0e14;font-weight:700}
.tool-tour-card-footer .tool-tour-next:hover{filter:brightness(1.08)}

@media(max-width:760px){
  .catalog-shell{grid-template-columns:1fr;gap:20px}
  .catalog-work-pane{
    position:static;max-height:none;padding:18px 0 0;overflow:visible;border-top:1px solid var(--border);border-left:0;
  }
  .catalog-source-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:1000px){
  .tools-layout{grid-template-columns:1fr;gap:18px}
  .tools-directory{position:static;padding:0 0 14px;border-right:0;border-bottom:1px solid var(--border)}
  .tools-directory-header{margin-bottom:9px}
  .tool-mode-switch{flex-direction:row;gap:7px;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}
  .tool-mode-switch::-webkit-scrollbar{display:none}
  .tool-mode-switch button{flex:0 0 190px;min-height:52px}
}
@media(max-width:520px){
  .tool-mode-switch{margin-right:-14px;padding-right:14px}
  .tool-mode-switch button{flex-basis:162px;padding:8px}
  .tool-tour-trigger{padding:4px 6px}
  .tool-tour-trigger-icon{width:17px;height:17px}
  .catalog-pane-heading{align-items:flex-start}
  .catalog-pane-heading>div:first-child{padding-top:2px}
  .catalog-source-actions{flex-wrap:wrap;justify-content:flex-end}
  .catalog-source-actions a{width:100%;text-align:right}
  .catalog-filter-toolbar{grid-template-columns:1fr}
  .catalog-source-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:46vh;padding-right:4px;
  }
  .catalog-source-grid::-webkit-scrollbar{width:10px}
  .catalog-toolbar-secondary{align-items:center}
  .catalog-text-composer-footer{align-items:flex-end;flex-wrap:wrap}
  .catalog-stage{padding:18px 10px 27px}
  .catalog-selection-grid{gap:6px}
  .catalog-item-actions{opacity:1}
  .catalog-work-heading{align-items:center}
  .catalog-work-heading>div:first-child{min-width:78px}
  .catalog-work-heading>div:first-child>span{white-space:nowrap}
  .catalog-work-heading>div:last-child{display:flex;flex-wrap:wrap;justify-content:flex-end}
  .catalog-clear-button,.btn.catalog-export-button,.btn.catalog-download-ready{width:auto;padding:6px 8px}
  .tool-tour-card{left:12px;right:12px;bottom:12px;width:auto;max-height:min(44vh,330px)}
}
@media(prefers-reduced-motion:reduce){
  .tool-tour-spotlight{transition:none}
}
