/* Cyberpunk geometry layer
 * Loaded after every component stylesheet so the theme keeps one angular
 * visual language, including components with inline border-radius values.
 */
body.cyberpunk {
    --cyber-corner: 2px;
}

/* Primary surfaces and cards */
body.cyberpunk :is(
    .profile-account-card,
    .profile-shop-card,
    .profile-premium-card,
    .group-card,
    .group-detail,
    .member-row,
    .desktop-detail-panel,
    .bottom-nav,
    .ledger-summ-card,
    .ledger-txn-card,
    .member-txns-container,
    .theme-menu,
    .theme-option,
    .theme-swatch,
    .theme-preview-banner,
    .search-dropdown,
    .notification-help,
    .modal-content,
    .modal-confirm-content,
    .member-detail-info-item,
    .member-detail-note,
    .receipt-box,
    .receipt-summary,
    .ai-chat-window,
    .ai-chat-header,
    .ai-msg-bubble,
    .ai-typing
) {
    border-radius: var(--cyber-corner) !important;
}

/* Inputs, custom selects, and rectangular actions */
body.cyberpunk :is(
    button,
    input:not([type="checkbox"]):not([type="radio"]),
    select,
    textarea,
    .custom-select-trigger,
    .custom-select-menu,
    .custom-select-option,
    .lang-switch,
    .lang-switch label,
    #profileProTag,
    .theme-pro-badge,
    .ledger-icon-income,
    .ledger-icon-expense,
    .ledger-pagination button,
    .member-row .mem-days,
    .alert-bar,
    .toast
) {
    border-radius: var(--cyber-corner) !important;
}

/* Dynamic and inline-styled surfaces that otherwise win the cascade. */
body.cyberpunk #force-update-modal > div,
body.cyberpunk #modal-receipt-preview .modal-content > div,
body.cyberpunk #previewReceiptImg {
    border-radius: var(--cyber-corner) !important;
}

/* Expanded cards must remain visually connected to their detail panels. */
body.cyberpunk .group-card.expanded {
    border-radius: var(--cyber-corner) var(--cyber-corner) 0 0 !important;
}

/* Circles that communicate identity or state stay circular. */
body.cyberpunk :is(
    #profileAvatarContainer,
    .ai-bubble,
    #ai-chat-send,
    .status-dot,
    .ai-typing-dot
) {
    border-radius: 50% !important;
}

/* Cyberpunk switches use an angular rail with a clearly separated thumb. */
body.cyberpunk .slider {
    box-sizing: border-box;
    border: 1px solid rgba(118, 73, 255, 0.72);
    border-radius: var(--cyber-corner) !important;
    background: #211936;
    box-shadow: inset 0 0 0 1px rgba(0, 229, 255, 0.04);
}

body.cyberpunk .slider::before {
    width: 25px;
    height: 25px;
    left: 2px;
    bottom: 2px;
    border-radius: 1px !important;
    background: #d8d3e8;
    box-shadow: none;
}

body.cyberpunk input:checked + .slider {
    border-color: #d100ff;
    background: #9200d7;
    box-shadow: 0 0 12px rgba(174, 1, 255, 0.28);
}

body.cyberpunk input:checked + .slider::before {
    background: #f8f2ff;
    box-shadow: 0 0 8px rgba(0, 229, 255, 0.32);
}
