.cache-panel{--cache-surface:var(--card);--cache-surface-soft:var(--bg-cream);--cache-border:var(--line);--cache-text:var(--ink);--cache-text-soft:var(--muted);--cache-chip:var(--accent-50);--cache-chip-ink:var(--green-600);--cache-locked:var(--red-50);--cache-locked-ink:var(--red-600);--cache-warn:var(--amber-50);--cache-warn-ink:var(--amber-600);display:flex;flex-direction:column;gap:18px}html[data-scheme=dark] .cache-panel{--cache-surface:var(--card);--cache-surface-soft:var(--bg-cream);--cache-border:var(--line);--cache-chip:var(--accent-100);--cache-chip-ink:var(--accent-700);--cache-locked:#3a1c1a;--cache-locked-ink:#ff9c8f;--cache-warn:#3a2c14;--cache-warn-ink:#f0b866}.cache-panel .panel{display:flex;flex-direction:column;gap:14px}.cache-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.cache-head h3{margin:0 0 4px}.cache-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cache-error,.cache-result{display:flex;align-items:flex-start;gap:10px;margin:0;padding:12px 16px;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;animation:cache-fade .18s ease-out both}.cache-error{background:var(--cache-locked);color:var(--cache-locked-ink)}.cache-result{background:var(--cache-chip);color:var(--cache-chip-ink)}.cache-result.is-error{background:var(--cache-locked);color:var(--cache-locked-ink)}.cache-warning{display:flex;align-items:flex-start;gap:10px;margin:0;padding:12px 16px;border:1px dashed var(--cache-border);border-radius:var(--radius-sm);background:var(--cache-warn);color:var(--cache-warn-ink);font-size:.8125rem;line-height:1.5;font-weight:600}.cache-warning svg{flex:0 0 auto;margin-top:1px}.cache-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-gap:12px;gap:12px}.cache-stat{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--cache-border);border-radius:var(--radius-md);background:var(--cache-surface);min-width:0;animation:cache-fade .2s ease-out both}.cache-stat-label{font-size:.6875rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--cache-text-soft)}.cache-stat b{font-size:1.25rem;color:var(--cache-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cache-stat small{font-size:.6875rem;color:var(--cache-text-soft);line-height:1.4}.cache-bulk{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.cache-bulk-field{display:flex;flex-direction:column;gap:6px;min-width:260px;flex:1 1 260px}.cache-bulk-field .input{width:100%}.cache-table{min-width:1000px}.cache-table td,.cache-table th{vertical-align:top}.cache-row.is-off{background:color-mix(in srgb,var(--cache-surface-soft) 55%,transparent)}.cache-row.is-locked{opacity:.92}.cache-cell-scope{display:flex;flex-direction:column;gap:6px;min-width:190px}.cache-cell-scope strong{color:var(--cache-text);font-size:.9375rem}.cache-scope{display:inline-block;width:-moz-fit-content;width:fit-content;padding:2px 8px;border-radius:var(--radius-sm);background:var(--cache-surface-soft);font-size:.75rem}.cache-keys,.cache-scope{color:var(--cache-text-soft)}.cache-keys{font-size:.6875rem}.cache-cell-what{min-width:260px;max-width:380px;font-size:.8125rem;color:var(--cache-text-soft);line-height:1.5}.cache-off{margin-top:6px;font-size:.75rem}.cache-off summary{cursor:pointer;color:var(--accent-700);font-weight:700}.cache-off p{margin:6px 0 4px;color:var(--cache-text-soft)}.cache-off small{display:block;margin-top:4px;color:var(--cache-text-soft);font-size:.6875rem}.cache-endpoints{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-word}.cache-switch{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--cache-border);border-radius:var(--radius-sm);background:var(--cache-surface);font-size:.75rem;font-weight:700;color:var(--cache-text-soft);cursor:pointer;white-space:nowrap}.cache-switch input{width:15px;height:15px;accent-color:var(--accent-600)}.cache-switch input:disabled{cursor:not-allowed}.cache-switch:has(input:disabled){opacity:.6;cursor:not-allowed}.cache-cell-ttl{min-width:150px}.cache-cell-ttl .cache-ttl{width:110px}.cache-ttl-hint{display:block;margin-top:4px;font-size:.6875rem;color:var(--cache-text-soft)}.cache-apply{margin-top:6px}.cache-cell-actions{display:flex;flex-direction:column;gap:6px;min-width:150px}.cache-cell-actions small{font-size:.6875rem;color:var(--cache-text-soft)}.cache-locked-note{display:flex;align-items:center;gap:8px;margin:0;font-size:.75rem;color:var(--cache-text-soft)}.cache-presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:12px;gap:12px}.cache-preset{display:flex;flex-direction:column;gap:8px;padding:16px;border:1px solid var(--cache-border);border-radius:var(--radius-md);background:var(--cache-surface);animation:cache-fade .2s ease-out both}.cache-preset strong{color:var(--cache-text);font-size:.9375rem}.cache-preset small{color:var(--cache-text-soft);font-size:.75rem;line-height:1.5}.cache-preset-values{display:flex;flex-wrap:wrap;gap:6px}.cache-preset .btn{align-self:flex-start;margin-top:auto}.cache-notes{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.cache-notes li{display:flex;align-items:flex-start;gap:8px;font-size:.75rem;color:var(--cache-text-soft);line-height:1.5}.cache-notes svg{flex:0 0 auto;margin-top:2px}.pages-cache-reset{display:flex;align-items:center;gap:10px;margin:0;padding:12px 16px;border-radius:var(--radius-sm);background:var(--accent-50);color:var(--green-600);font-size:.875rem;font-weight:700;animation:cache-fade .18s ease-out both}html[data-scheme=dark] .pages-cache-reset{background:var(--accent-100);color:var(--accent-700)}@media (max-width:1100px){.cache-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.cache-table{min-width:820px}.cache-cell-what{max-width:300px}}@media (max-width:700px){.cache-bulk,.cache-head{flex-direction:column;align-items:stretch}.cache-actions .btn,.cache-bulk .btn{width:100%;justify-content:center}.cache-presets,.cache-stats{grid-template-columns:minmax(0,1fr)}.cache-bulk-field{min-width:0}.cache-cell-ttl .cache-ttl{width:100%}.cache-cell-actions{min-width:0}}@keyframes cache-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.cache-error,.cache-preset,.cache-result,.cache-stat,.pages-cache-reset{animation:none}}