/* Toolbox-specific layout. Shared controls also serve the existing workspaces.
   Keep algorithms, IDs, favorites storage and old /tools/#key links unchanged. */
:root { --wt-sidebar: 208px; --wt-gap: 24px; --wt-field-gap: 16px; --qz-font-sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif; }
.toolbox-hero { max-width:1240px; padding:40px 24px 28px; }
.toolbox-hero .hero-title { font-size:clamp(28px,3vw,36px); line-height:1.3; letter-spacing:-.025em; }
.toolbox-hero .hero-sub { margin-top:12px; font-size:16px; line-height:1.7; }
.toolbox-hero .hero-sub b { margin-right:4px; }
.toolbox-hero .hero-search { max-width:640px; height:56px; margin-top:20px; background:var(--card); border-color:var(--border); }
.toolbox-hero .hero-search:focus-within { border-color:var(--accent); outline:2px solid var(--accent-soft); }
.toolbox-hero .toolbox-privacy { margin:12px 0 0; font-size:14px; line-height:1.65; color:var(--text-secondary); }
.toolbox-catalog { max-width:1240px; display:grid; grid-template-columns:var(--wt-sidebar) minmax(0,1fr); gap:var(--wt-gap); align-items:start; padding-bottom:64px; }
.toolbox-categories { position:sticky; top:calc(var(--qz-header-height,60px) + 20px); min-width:0; border:1px solid var(--border-light); border-radius:14px; background:var(--card); padding:12px; }
.toolbox-categories summary { display:none; }
.toolbox-categories .category-heading { margin:4px 10px 12px; font-size:14px; line-height:1.5; color:var(--text-secondary); font-weight:600; }
.toolbox-categories .cat-tabs-shell { position:static; display:block!important; background:transparent; }
.toolbox-categories .cat-tabs { display:flex; flex-direction:column; overflow:visible; padding:0; gap:4px; background:transparent; }
.toolbox-categories .cat-tabs button { width:100%; justify-content:space-between; gap:8px; padding:11px 12px; min-height:44px; line-height:1.5; text-align:left; white-space:normal; }
.toolbox-categories .cat-tabs .tab-count { font-size:12px; font-variant-numeric:tabular-nums; line-height:1.5; padding:1px 7px; border-radius:6px; background:var(--bg-secondary); color:var(--text-secondary); }
.toolbox-categories .cat-tabs button.on .tab-count { background:var(--card); color:var(--accent); }
.toolbox-categories .cat-tabs-cue { display:none!important; }
.toolbox-results { min-width:0; }
.toolbox-results-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 16px; margin-bottom:16px; min-height:44px; }
.toolbox-results-head h2 { font-size:20px; font-weight:600; line-height:1.5; margin:0; }
.toolbox-result-status { margin:3px 0 0; font-size:14px; line-height:1.6; color:var(--text-secondary); }
.toolbox-results .mini-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.toolbox-results .mini-card { border-color:var(--border); background:var(--card); }
.toolbox-results .mini-open { grid-template-columns:40px minmax(0,1fr); grid-template-rows:auto 1fr auto; gap:12px; padding:20px; min-height:184px; }
.toolbox-results .mini-name { font-size:16px; line-height:1.5; padding-right:18px; }
.toolbox-results .mini-desc { grid-column:1/-1; grid-row:2; font-size:14px; line-height:1.7; -webkit-line-clamp:2; overflow-wrap:anywhere; }
.toolbox-results .mini-open::after { content:'打开工具 →'; grid-column:1/-1; grid-row:3; color:var(--accent); font-size:14px; line-height:1.5; }
html[lang^='en'] .toolbox-results .mini-open::after { content:'Open tool →'; }
.toolbox-results .mini-star { top:6px; right:6px; }
.toolbox-results .mini-card:hover { transform:none; border-color:var(--accent); box-shadow:none; }
.toolbox-categories :focus-visible,.toolbox-results :focus-visible { outline:2px solid var(--qz-focus,var(--accent)); outline-offset:3px; }
.toolbox-results .mini-open:focus-visible { outline-offset:-3px; }
.toolbox-results .mini-empty { text-align:left; padding:32px 24px; border:1px dashed var(--border); border-radius:14px; background:var(--card); line-height:1.8; }
.toolbox-reset[hidden] { display:none; }
/* Working areas: comfortable spacing without moving or replacing tool fields. */
:is(.tool-modal-body,.workspace-shell) .tool-card { overflow-wrap:anywhere; }
:is(.tool-modal-body,.workspace-shell) .tool-head { margin-bottom:24px; }
:is(.tool-modal-body,.workspace-shell) .tool-input { font-size:16px; line-height:1.65; padding:12px 14px; }
:is(.tool-modal-body,.workspace-shell) .tool-select { font-size:14px; min-height:44px; }
:is(.tool-modal-body,.workspace-shell) .tool-card > label { display:block; margin:16px 0 8px; font-size:14px; font-weight:500; line-height:1.65; }
:is(.tool-modal-body,.workspace-shell) .field-label { gap:8px; }
:is(.tool-modal-body,.workspace-shell) .tool-grid2 { gap:16px; margin-top:16px; margin-bottom:16px; grid-template-columns:repeat(2,minmax(0,1fr)); }
:is(.tool-modal-body,.workspace-shell) .tool-grid2 > * { min-width:0; }
:is(.tool-modal-body,.workspace-shell) .tool-actions { gap:8px; margin-top:20px; margin-bottom:16px; padding-top:16px; border-top:1px solid var(--border-light); }
:is(.tool-modal-body,.workspace-shell) .btn { min-height:44px; padding:10px 16px; border:1px solid var(--border); border-radius:10px; font-size:14px; font-weight:600; line-height:1.5; text-decoration:none; }
:is(.tool-modal-body,.workspace-shell) .btn.primary { border-color:var(--accent); }
:is(.tool-modal-body,.workspace-shell) .btn.ghost { background:var(--card); color:var(--text-secondary); }
:is(.tool-modal-body,.workspace-shell) .btn.ghost:hover { background:var(--accent-soft); color:var(--accent); border-color:var(--accent); }
:is(.tool-modal-body,.workspace-shell) .tool-output { padding:16px; border:1px solid var(--border); font-size:14px; line-height:1.75; word-break:normal; overflow-wrap:anywhere; }
:is(.tool-modal-body,.workspace-shell) textarea[readonly] { background:var(--bg-secondary); }
:is(.tool-modal-body,.workspace-shell) .aim-note { margin-top:12px; font-size:14px; line-height:1.75; color:var(--text-secondary); }
.tool-modal-panel { max-width:820px; padding:24px 28px 28px; }
.tool-modal-head { margin-bottom:20px; }
.tool-modal-head h3 { font-size:20px; font-weight:600; }
.tool-modal-body .tool-head { align-items:start; }
.tool-modal-body .tool-desc { padding-top:4px; line-height:1.75; }
.workspace-shell { max-width:1040px; }
.workspace-shell .tool-card { padding:28px; }
.workspace-shell .workspace-bar .btn { min-height:44px; }
@media(min-width:1000px) { .toolbox-categories { max-height:calc(100dvh - var(--qz-header-height,60px) - 40px); overflow-y:auto; scrollbar-width:thin; } .toolbox-categories > :not(summary) { display:block!important; } }
@media(max-width:1199px) and (min-width:1000px) { .toolbox-results .mini-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:999px) {
 .toolbox-catalog { grid-template-columns:minmax(0,1fr); gap:20px; }
 .toolbox-categories { position:static; padding:0; }
 .toolbox-categories summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:52px; padding:12px 16px; cursor:pointer; list-style:none; font-size:14px; font-weight:600; }
 .toolbox-categories summary::-webkit-details-marker { display:none; }
 .toolbox-categories summary svg { flex:none; width:20px; height:20px; transition:transform 120ms; }
 .toolbox-categories[open] summary svg { transform:rotate(180deg); }
 .toolbox-categories .category-heading { display:none; }
 .toolbox-categories .cat-tabs-shell { padding:0 8px 8px; }
 .toolbox-categories .cat-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; }
 .toolbox-results .mini-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:599px) {
 .toolbox-hero { padding:24px 16px; }
 .toolbox-hero .hero-title { font-size:28px; white-space:normal; }
 .toolbox-hero .hero-sub { font-size:14px; margin-top:8px; }
 .toolbox-hero .hero-search { height:52px; margin-top:16px; }
 .toolbox-hero .hero-search input { font-size:16px; }
 .toolbox-hero .hero-search kbd { display:none; }
 .toolbox-hero .toolbox-privacy { text-align:left; }
 .toolbox-catalog { padding:0 16px 40px; gap:16px; }
 .toolbox-categories .cat-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .toolbox-categories .cat-tabs button { padding:10px; }
 .toolbox-results-head { margin-bottom:12px; }
 .toolbox-results-head h2 { font-size:18px; }
 .toolbox-results .mini-grid { grid-template-columns:minmax(0,1fr); gap:12px; }
 .toolbox-results .mini-open { grid-template-columns:40px minmax(0,1fr); grid-template-rows:auto auto auto; min-height:152px; padding:16px; gap:10px 12px; }
 .toolbox-results .mini-open .mini-name { grid-column:2; grid-row:1; padding-right:20px; }
 .toolbox-results .mini-open .mini-desc { grid-column:1/-1; grid-row:2; }
 .tool-modal { padding:0; }
 .tool-modal-panel { min-height:100dvh; border-radius:0; padding:0 16px calc(24px + env(safe-area-inset-bottom)); }
 .tool-modal-head { margin:0 -16px 20px; padding:12px 16px; }
 :is(.tool-modal-body,.workspace-shell) .tool-grid2 { grid-template-columns:minmax(0,1fr); }
 :is(.tool-modal-body,.workspace-shell) .tool-actions .btn { flex:1 1 auto; }
 .workspace-shell .tool-card { padding:20px 16px; }
}
@media(prefers-reduced-motion:reduce) { .toolbox-catalog *,.toolbox-categories summary svg { animation:none!important; transition:none!important; } }

/* Real catalogue content replaces the old empty loading placeholder. */
html:not(.wt-ready) #mini-grid[data-startup-rendered] { min-height:0; }
#toolbox-startup[hidden],#toolbox-startup-retry[hidden] { display:none!important; }
.toolbox-startup { display:flex; align-items:center; flex-wrap:wrap; gap:4px 16px; margin-bottom:16px; color:var(--text-secondary); font-size:14px; line-height:1.6; }
.toolbox-startup a { display:inline-flex; align-items:center; min-height:44px; color:var(--accent); text-underline-offset:3px; }
.toolbox-startup a:focus-visible { outline:2px solid var(--qz-focus,var(--accent)); outline-offset:3px; }
#mini-grid[data-startup-rendered] .mini-star:disabled { opacity:.4; cursor:default; }
