.canvas-grid-bg {
    background-color: #f8fafc;
    background-image: 
        linear-gradient(to right, rgba(203, 213, 225, 0.4) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(203, 213, 225, 0.4) 1px, transparent 1px);
    background-size: 20px 20px;
}
.dark .canvas-grid-bg {
    background-color: #0f172a;
    background-image: 
        linear-gradient(to right, rgba(51, 65, 85, 0.4) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(51, 65, 85, 0.4) 1px, transparent 1px);
    background-size: 20px 20px;
}

::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}
::-webkit-scrollbar-track {
    background: transparent;
}
::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 3px;
}
.dark ::-webkit-scrollbar-thumb {
    background: #334155;
}

.tool-btn.active {
    background-color: #e0e7ff;
    color: #4338ca;
    border-color: #818cf8;
}
.dark .tool-btn.active {
    background-color: #312e81;
    color: #e0e7ff;
    border-color: #6366f1;
}

input[type=range] {
    accent-color: #4f46e5;
}

.katex-mathml {
    display: none !important;
}

/* ---------- Collapsible sidebar categories ---------- */
.pf-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    user-select: none;
    margin-bottom: 0 !important;
    padding: 4px 2px;
    border-radius: 4px;
}
.pf-section-header:hover { background-color: rgba(99, 102, 241, 0.08); color: #4f46e5; }
.pf-section-header:focus-visible { outline: 2px solid #818cf8; outline-offset: 1px; }
.pf-section-header .pf-count { margin-left: 6px; font-weight: 500; opacity: 0.6; text-transform: none; letter-spacing: 0; }
.pf-section-header .pf-chev { margin-left: auto; font-size: 9px; transition: transform 0.2s ease; }
.pf-section.collapsed .pf-chev { transform: rotate(-90deg); }
.pf-section-body {
    display: grid;
    grid-template-rows: 1fr;
    transition: grid-template-rows 0.22s ease, opacity 0.22s ease, margin-top 0.22s ease;
    margin-top: 8px;
}
.pf-section-body > .pf-section-inner { overflow: hidden; min-height: 0; padding: 1px; }
.pf-section.collapsed .pf-section-body { grid-template-rows: 0fr; opacity: 0; margin-top: 0; visibility: hidden; transition: grid-template-rows 0.22s ease, opacity 0.22s ease, margin-top 0.22s ease, visibility 0s 0.22s; }
.pf-group { margin-bottom: 10px; }
.pf-group-header {
    display: flex; align-items: center; gap: 7px; cursor: pointer; user-select: none;
    padding: 7px 8px; border-radius: 6px; font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
    color: #3730a3; background: #eef2ff; border: 1px solid #e0e7ff;
}
.pf-group-header:hover { background: #e0e7ff; }
.pf-group-header:focus-visible { outline: 2px solid #818cf8; outline-offset: 1px; }
.pf-group-header .pf-group-icon { width: 14px; text-align: center; font-size: 11px; }
.pf-group-header .pf-count { margin-left: auto; font-weight: 600; opacity: 0.6; font-size: 10px; background: rgba(99, 102, 241, 0.15); border-radius: 8px; padding: 0 6px; }
.pf-group-header .pf-chev { margin-left: 4px; font-size: 9px; transition: transform 0.2s ease; }
.pf-group.collapsed .pf-group-header .pf-chev { transform: rotate(-90deg); }
.pf-group-body { margin: 8px 0 0 5px; padding-left: 9px; border-left: 2px solid #e0e7ff; display: flex; flex-direction: column; gap: 12px; }
.pf-group.collapsed > .pf-group-body { display: none; }
.dark .pf-group-header { color: #c7d2fe; background: rgba(99, 102, 241, 0.16); border-color: rgba(99, 102, 241, 0.3); }
.dark .pf-group-header:hover { background: rgba(99, 102, 241, 0.26); }
.dark .pf-group-body { border-left-color: rgba(99, 102, 241, 0.3); }
.pf-toolbar-link { font-size: 10px; color: #94a3b8; cursor: pointer; }
.pf-toolbar-link:hover { color: #4f46e5; }

/* ---------- Inspector: plot axes options ---------- */
.pf-details { border: 1px solid #e2e8f0; border-radius: 6px; background: #f8fafc; }
.dark .pf-details { border-color: #334155; background: rgba(15, 23, 42, 0.5); }
.pf-details > summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 8px;
    font-size: 11px;
    font-weight: 600;
    user-select: none;
}
.pf-details > summary::-webkit-details-marker { display: none; }
.pf-details > summary .pf-chev { margin-left: auto; font-size: 9px; color: #94a3b8; transition: transform 0.2s ease; }
.pf-details:not([open]) > summary .pf-chev { transform: rotate(-90deg); }
.pf-details-body { padding: 4px 8px 8px; display: flex; flex-direction: column; gap: 5px; border-top: 1px solid #e2e8f0; }
.dark .pf-details-body { border-top-color: #334155; }
.pf-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 11px; color: #64748b; }
.dark .pf-row { color: #94a3b8; }
.pf-input {
    width: 7.5rem;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 4px;
    padding: 2px 6px;
    font-size: 11px;
    color: inherit;
}
.dark .pf-input { background: #0f172a; border-color: #334155; color: #e2e8f0; }
.pf-input:focus { outline: none; border-color: #818cf8; }

/* Always-visible, thicker scroll bars for the page area (iPad / touch screens hide thin ones) */
#canvas-container { -webkit-overflow-scrolling: touch; }
#canvas-container::-webkit-scrollbar { width: 14px; height: 14px; }
#canvas-container::-webkit-scrollbar-track { background: rgba(148, 163, 184, 0.28); }
#canvas-container::-webkit-scrollbar-thumb { background: #64748b; border-radius: 8px; border: 3px solid transparent; background-clip: content-box; }
#canvas-container::-webkit-scrollbar-corner { background: transparent; }
@media (pointer: coarse) {
    ::-webkit-scrollbar { width: 10px; height: 10px; }
    ::-webkit-scrollbar-thumb { background: #94a3b8; border-radius: 5px; }
}
