/**
 * VIRTUAL_OS — кастомные курсоры
 * Мягкая палитра под Linux DE: читаемо на тёмном фоне, без неоновой яркости.
 */

.linux-context-menu,
.linux-context-menu .linux-context-menu-item {
    cursor: var(--vos-cursor-pointer) !important;
}

:root {
    --vos-cursor-fill: #e4eaef;
    --vos-cursor-fill-hover: #d2dce4;
    --vos-cursor-stroke: #5f6e78;
    --vos-cursor-stroke-hover: #768896;
    --vos-cursor-accent: #a3b4c0;
    --vos-cursor-accent-hover: #8fa9ba;
    --vos-cursor-muted: #8a97a2;
    --vos-cursor-text: #aeb9c2;
    --vos-cursor-danger: #b08890;

    --vos-cursor-default: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M3.5 2.2v12.8l2.6-2.6 2 4.8 2-.65-2-4.8h4.9L3.5 2.2z' fill='%23e4eaef' stroke='%235f6e78' stroke-width='0.7' stroke-linejoin='round'/%3E%3Ccircle cx='3.5' cy='2.2' r='0.9' fill='%23a3b4c0'/%3E%3C/svg%3E") 3 2, default;

    --vos-cursor-pointer: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M3.5 2.2v12.8l2.6-2.6 2 4.8 2-.65-2-4.8h4.9L3.5 2.2z' fill='%23d2dce4' stroke='%23768896' stroke-width='0.75' stroke-linejoin='round'/%3E%3Ccircle cx='3.5' cy='2.2' r='0.9' fill='%238fa9ba'/%3E%3C/svg%3E") 3 2, pointer;

    --vos-cursor-text: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='20' viewBox='0 0 12 20'%3E%3Crect x='5' y='3.5' width='2' height='13' rx='0.4' fill='%23aeb9c2'/%3E%3Cline x1='2' y1='3.5' x2='10' y2='3.5' stroke='%23687580' stroke-width='0.9' stroke-linecap='round'/%3E%3Cline x1='2' y1='16.5' x2='10' y2='16.5' stroke='%23687580' stroke-width='0.9' stroke-linecap='round'/%3E%3C/svg%3E") 6 10, text;

    --vos-cursor-move: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='2' fill='%239aa7b2'/%3E%3Cpath d='M11 4v3.5M11 14.5V18M4 11h3.5M14.5 11H18' stroke='%238a97a2' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") 11 11, move;

    --vos-cursor-grabbing: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'%3E%3Cpath d='M8.5 5v5.8M11 4.2v7.3M13.5 5.2v5.6M7 11.2c0 2 1.6 3.6 3.6 3.6h1.2c1.8 0 3.2-1.4 3.2-3.2v-.8' fill='none' stroke='%238a97a2' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 11 11, grabbing;

    --vos-cursor-not-allowed: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='8' fill='none' stroke='%239a8088' stroke-width='1.5'/%3E%3Cline x1='6.2' y1='6.2' x2='15.8' y2='15.8' stroke='%23b08890' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") 11 11, not-allowed;

    --vos-cursor-crosshair: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'%3E%3Cpath d='M11 3.5v4M11 14.5v4M3.5 11h4M14.5 11h4' stroke='%2384929c' stroke-width='1.2' stroke-linecap='round'/%3E%3Ccircle cx='11' cy='11' r='1.8' fill='none' stroke='%23a0adb6' stroke-width='1'/%3E%3C/svg%3E") 11 11, crosshair;
}

#desktop.linux-de,
#vos-entry-screen:not([aria-hidden="true"]),
#login-screen {
    cursor: var(--vos-cursor-default);
}

#desktop.linux-de *,
#vos-entry-screen:not([aria-hidden="true"]) *,
#login-screen * {
    cursor: inherit;
}

#desktop.linux-de :is(
    a,
    button,
    label,
    select,
    summary,
    [role="button"],
    [onclick],
    [data-forge-select],
    .d-icon,
    .desktop-icon,
    .w-close,
    .linux-win-btn,
    .linux-start-btn,
    .linux-logout-btn,
    .forge-btn,
    .forge-module-row,
    .forge-app-close,
    .btn-hack,
    .devstudio-tab-btn,
    .linux-context-menu-item,
    .tm-tab,
    .dn-foot-link,
    .argus-trace-widget__dismiss
),
#vos-entry-screen :is(a, button, label, select, [role="button"], [onclick], .vos-role-card, .vos-auth-submit, .vos-breach-terminal-input),
#login-screen :is(a, button, label, select, [role="button"], [onclick], .btn-hack, .cyber-btn, .role-card) {
    cursor: var(--vos-cursor-pointer) !important;
}

#desktop.linux-de *[style*="cursor: pointer"],
#desktop.linux-de *[style*="cursor:pointer"],
#vos-entry-screen *[style*="cursor: pointer"],
#vos-entry-screen *[style*="cursor:pointer"],
#login-screen *[style*="cursor: pointer"],
#login-screen *[style*="cursor:pointer"] {
    cursor: var(--vos-cursor-pointer) !important;
}

#desktop.linux-de :is(
    input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
    textarea,
    [contenteditable="true"]
),
#vos-entry-screen :is(input, textarea, [contenteditable="true"]),
#login-screen :is(input, textarea, [contenteditable="true"]) {
    cursor: var(--vos-cursor-text) !important;
}

#desktop.linux-de *[style*="cursor: text"],
#desktop.linux-de *[style*="cursor:text"] {
    cursor: var(--vos-cursor-text) !important;
}

#desktop.linux-de :is(
    .w-header,
    .forge-app-header,
    .linux-terminal-header,
    .linux-terminal-titlebar
),
#desktop.linux-de *[style*="cursor: move"],
#desktop.linux-de *[style*="cursor:move"] {
    cursor: var(--vos-cursor-move) !important;
}

#desktop.linux-de *[style*="cursor: grabbing"],
#desktop.linux-de *[style*="cursor:grabbing"],
#desktop.linux-de .desktop-pinned-icon.is-dragging,
#desktop.linux-de .desktop-pinned-icon.is-dragging * {
    cursor: var(--vos-cursor-grabbing) !important;
}

#desktop.linux-de :is(:disabled, [disabled], .is-disabled, [aria-disabled="true"]),
#desktop.linux-de *[style*="cursor: not-allowed"],
#desktop.linux-de *[style*="cursor:not-allowed"] {
    cursor: var(--vos-cursor-not-allowed) !important;
}

#desktop.linux-de .window-resizable {
    cursor: var(--vos-cursor-default);
}

#desktop.linux-de.ddos-mouse-invert,
#desktop.linux-de.ddos-mouse-invert * {
    cursor: none !important;
}

#desktop.linux-de .forge-code-pane:not([hidden]),
#login-screen .intro-hack-overlay:not([hidden]) {
    cursor: var(--vos-cursor-crosshair) !important;
}

#desktop.linux-de .forge-code-pane:not([hidden]) *,
#login-screen .intro-hack-overlay:not([hidden]) * {
    cursor: var(--vos-cursor-crosshair) !important;
}
