/* The Gridtop's cursors (AutocompShell/desktop_poc.css, sprites/cursor_*.ico), Matt 2026-10-17: every element,
   with fields, field labels and scrollbars set on their own because they ignore the rest. The views (2D,
   satellite, 3D) move where the browser would grab; a solar panel takes the crosshair in every view. Loaded
   last, and !important, so no older rule or library inline style wins. */
html, body, body *, body *::before, body *::after { cursor: url('../sprites/cursor_default.ico'), default !important; }

/* scrollbars: styled as the Gridtop's (a styled scrollbar is the only kind that takes a cursor) */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: #ECECEC; }
::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #F4F4F4, #D9D9D9); border: 1px solid #C4C4C4; border-radius: 2px; }
::-webkit-scrollbar-corner { background: #ECECEC; }
::-webkit-scrollbar, ::-webkit-scrollbar-thumb, ::-webkit-scrollbar-track, ::-webkit-scrollbar-corner, ::-webkit-scrollbar-button {
    cursor: url('../sprites/cursor_default.ico'), default !important; }

/* things to press */
a[href], a[href] *, button, button *, [role="button"], [role="button"] *, [role="option"], [role="option"] *, [role="tab"], [role="tab"] *,
summary, select, select *, option, input[type="button"], input[type="submit"], input[type="reset"], input[type="checkbox"], input[type="radio"],
input[type="range"], input[type="file"], input[type="color"], label:has(input[type="checkbox"]), label:has(input[type="radio"]),
.sv-dd, .sv-dd *, .sl-seg-btn, .sl-seg-btn *, .sv-menu-row, .sv-menu-row *, .sv-inset-band, .sv-inset-band *, .sv-modal-row-select,
.sv-modal-row-select *, .sv-util-btn, .sv-util-btn *, .sv-step-btn, .sv-step-btn *, #splash .btn, #splash .btn * {
    cursor: url('../sprites/cursor_point.ico'), pointer !important; }
a[href^="tel:"], a[href^="tel:"] * { cursor: url('../sprites/cursor_phone.ico'), pointer !important; }
button[disabled], button[disabled] *, .is-off, .is-off *, .is-locked, .is-locked *, .sv-menu-row.is-disabled, .sv-menu-row.is-disabled *, [aria-disabled="true"], [aria-disabled="true"] * {
    cursor: url('../sprites/cursor_default.ico'), default !important; }

/* fields, and their labels (a label is plain text: the default cursor) */
input:not([type]), input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="search"], input[type="url"],
input[type="password"], textarea, [contenteditable="true"], [contenteditable=""] {
    cursor: url('../sprites/cursor_input.ico') 12 12, text !important; }
input[readonly], textarea[readonly] { cursor: url('../sprites/cursor_default.ico'), default !important; }
label, .sl-field > span, .sl-field b, .sv-modal-row > span { cursor: url('../sprites/cursor_default.ico'), default !important; }

/* the views: move where the browser would grab (roof.js and roof3d.js mark the house and the panels) */
#roof, #map2, #map2 *, #view3d, #view3d canvas, .sv-inset-titlebar, .sv-inset-imgwrap.is-zoomed, .sv-inset-imgwrap.is-panning {
    cursor: url('../sprites/cursor_move.ico') 12 12, move !important; }
#roof[data-cur="default"], #view3d canvas[data-cur="default"] { cursor: url('../sprites/cursor_default.ico'), default !important; }
#roof[data-cur="cross"], #view3d canvas[data-cur="cross"], body.sl-on-panel #map2, body.sl-on-panel #map2 *, .sl-chart-wrap canvas {
    cursor: url('../sprites/cursor_cross.ico') 12 12, crosshair !important; }
#view3d .sl-3dctl, #view3d .sl-3dctl * { cursor: url('../sprites/cursor_default.ico'), default !important; }
#view3d .sl-3dctl button, #view3d .sl-3dctl button *, #map2 a[href], #map2 a[href] * { cursor: url('../sprites/cursor_point.ico'), pointer !important; }
