:root {
    --nav-height: 48px;
    --nav-bg: #202124;
    --nav-text: #ccc;
    --nav-text-active: #fff;
    --nav-child-text: #aaa;
    --nav-hover-bg: rgba(255, 255, 255, 0.08);
    --nav-active-bg: rgba(255, 255, 255, 0.14);
    --nav-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);

    --dialog-surface: Canvas;
    --dialog-on-surface: CanvasText;

	--alert-error-color:  #c62828;
	--alert-error-background: #ffebee;
	--alert-error-border: #c71b1b;
	--alert-warning-color: #ff9800;
	--alert-warning-background: #fff3e0;
	--alert-warning-border: #ffb74d;
	--alert-info-color: #2196f3;
	--alert-info-background: #e3f2fd;
	--alert-info-border: #64b5f6;
	--alert-success-color: #4caf50;
	--alert-success-background: #e8f5e9;
	--alert-success-border: #81c784;

	--default-color: CanvasText;
    --default-background: Canvas;
    --default-color-disabled: GrayText;
    --link-color: #1666ce;
    --link-color-hover: color-mix(in srgb, var(--link-color) 80%, black);


    --button-padding: 1px 6px;
    --button-disabled-opacity: 0.5;
    --default-button-color: ButtonText;
    --default-button-background-color: ButtonFace;
    --default-button-background-color-hover: color-mix(in srgb, var(--default-button-background-color), var(--default-button-color) 10%);
    --default-button-border-color: ButtonBorder;
    --default-button-border: 1px solid var(--default-button-border-color);

    --default-control-padding: 6px 10px;
    --default-control-color: FieldText;
    --default-control-background-color: var(--default-background);
    --default-control-background-color-hover: var(--default-control-background-color);
    --default-control-border-color: color-mix(in srgb, var(--default-control-color) 40%, var(--default-control-background-color));
    --default-control-border: 1px solid var(--default-control-border-color);
    --default-control-focus-border-color: Highlight;
    --default-control-border-radius: 4px;
    --default-control-label-color: color-mix(in srgb, var(--default-control-color) 60%, var(--default-control-background-color));
    --default-control-label-font-size: 0.8em;

    --primary-button-color: #fff;
    --primary-button-background: #007bff;
    --primary-button-background-color-hover: color-mix(in srgb, var(--primary-button-background), white 20%);
    --primary-button-border: 1px solid color-mix(in srgb, var(--primary-button-background), black 20%);

    --color-danger: #d32f2f;
    --danger-button-color: #fff;
    --danger-button-background: var(--color-danger);
    --danger-button-background-color-hover: color-mix(in srgb, var(--danger-button-background), black 15%);
    --danger-button-border: 1px solid color-mix(in srgb, var(--danger-button-background), black 20%);
}

html {
    overflow-x: hidden;
}

/* ===== Dark theme — Gemini-inspired ===== */

html[data-theme="dark"] {
    color-scheme: dark;

    --default-background: #131218;
    --default-color: #e2e3ef;
    --default-color-disabled: #9aa0b4;

    --link-color: #8ab4f8;

    --default-button-color: #e2e3ef;
    --default-button-background-color: #211f26;
    --default-button-border-color: #49454f;

    --default-control-color: #e2e3ef;
    --default-control-background-color: #1e1c26;

    --primary-button-color: #fff;
    --primary-button-background: #4a8af4;

    --color-danger: #f44336;
    --danger-button-background: var(--color-danger);

    --dialog-surface: #1c1a24;
    --dialog-on-surface: #e2e3ef;

    --nav-bg: #1f1f1f;
    --nav-text: #c5c7d4;
    --nav-text-active: #e2e3ef;
    --nav-child-text: #9aa0b4;
    --nav-hover-bg: rgba(138, 180, 248, 0.08);
    --nav-active-bg: rgba(138, 180, 248, 0.12);

    --alert-error-color: #f28b82;
    --alert-error-background: rgba(242, 139, 130, 0.12);
    --alert-error-border: #f28b82;

    --alert-warning-color: #fdd663;
    --alert-warning-background: rgba(253, 214, 99, 0.12);
    --alert-warning-border: #fdd663;

    --alert-info-color: #8ab4f8;
    --alert-info-background: rgba(138, 180, 248, 0.12);
    --alert-info-border: #8ab4f8;

    --alert-success-color: #81c995;
    --alert-success-background: rgba(129, 201, 149, 0.12);
    --alert-success-border: #81c995;
}

body {
    margin: 0;
    padding: 0;
    font-family: 'Roboto', sans-serif;
    line-height: 1.5;
    background-color: var(--default-background);
    color: var(--default-color);
}

a {
    color: var(--link-color);
    text-decoration: underline;
    transition: color 0.15s;

    &:hover {
        color: var(--link-color-hover);
        text-decoration: underline;
    }
}

p:first-child {
	margin-top: 0;
}

p:last-child {
	margin-bottom: 0;
}

/* ===== Tab ===== */
.tab-legend {
    width: 100%;
    display: flex;
    gap: 4px;
    border-bottom: 1px solid var(--default-control-border-color);
}

button.tab {
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    cursor: pointer;
    font-weight: 500;
    color: var(--default-control-label-color);
    padding: 8px 16px;
    border-radius: 4px 4px 0 0;
    transition: color 0.15s, background-color 0.15s, border-color 0.15s;
}

button.tab:hover {
    color: var(--default-color);
    background-color: var(--nav-hover-bg);
}

button.tab--active {
    color: var(--default-color);
    border-bottom-color: var(--default-color);
}

/* ===== Markdown Editor ===== */
.markdown-editor-border {
    border: 1px solid var(--default-control-border-color);
    overflow: hidden;
}

/* ===== Page Layout ===== */

.page-container {
    padding: var(--nav-height) 0 0;
	margin-bottom: 32px;
}

/* ===== Shared Nav Backdrop ===== */

.nav-backdrop {
    position: fixed;
    inset: 0;
    z-index: 999;
}

/* ===== Desktop Nav ===== */

.desktop-nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: var(--nav-height);
    background: var(--nav-bg);
    z-index: 1000;
    display: flex;
    align-items: center;
    padding: 0 16px;
    box-shadow: var(--nav-shadow);
}

.desktop-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
}

.desktop-nav__item {
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
}

.desktop-nav__dropdown-container {
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
}

.desktop-nav__link {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 14px;
    height: 100%;
    color: var(--nav-text);
    text-decoration: none;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 14px;
    font-family: inherit;
    white-space: nowrap;
    transition: color 0.15s, background 0.15s;
}

.desktop-nav__link:hover {
    color: var(--nav-text-active);
    background: var(--nav-hover-bg);
}

.desktop-nav__link--active {
    color: var(--nav-text-active);
    background: var(--nav-active-bg);
}

.desktop-nav__chevron {
    font-size: 8px;
    opacity: 0.6;
}

.desktop-nav__submenu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 160px;
    background: var(--nav-bg);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-top: none;
    list-style: none;
    margin: 0;
    padding: 4px 0;
    z-index: 1001;
    box-shadow: var(--nav-shadow);
}

.desktop-nav__submenu-link {
    display: block;
    padding: 8px 16px;
    color: var(--nav-text);
    text-decoration: none;
    font-size: 14px;
    white-space: nowrap;
    transition: color 0.15s, background 0.15s;
}

.desktop-nav__submenu-link:hover {
    color: var(--nav-text-active);
    background: var(--nav-hover-bg);
}

.desktop-nav__submenu-link--active {
    color: var(--nav-text-active);
    background: var(--nav-active-bg);
}

/* ===== Mobile Nav ===== */

.mobile-nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: var(--nav-height);
    background: var(--nav-bg);
    z-index: 1000;
    display: flex;
    align-items: center;
    padding: 0 16px;
    box-shadow: var(--nav-shadow);
}

.mobile-nav__hamburger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 36px;
    height: 36px;
    padding: 6px;
    background: none;
    border: none;
    cursor: pointer;
}

.mobile-nav__hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background: var(--nav-text);
    border-radius: 1px;
}

.mobile-nav__overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1001;
}

.mobile-nav__drawer {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: 260px;
    background: var(--nav-bg);
    z-index: 1002;
    transform: translateX(calc(-100% - 2px));
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    overflow-y: auto;
    box-shadow: none;
}

.mobile-nav__drawer--open {
    transform: translateX(0);
    box-shadow: 4px 0 16px rgba(0, 0, 0, 0.5);
}

.mobile-nav__close {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 100%;
    padding: 0 16px;
    height: var(--nav-height);
    background: none;
    border: none;
    color: var(--nav-text);
    font-size: 18px;
    cursor: pointer;
    box-sizing: border-box;
}

.mobile-nav__close:hover {
    color: var(--nav-text-active);
}

.mobile-nav__list {
    list-style: none;
    margin: 0;
    padding: 8px 0;
}

.mobile-nav__link,
.mobile-nav__section-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 12px 20px;
    color: var(--nav-text);
    text-decoration: none;
    font-size: 14px;
    font-family: inherit;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    box-sizing: border-box;
    transition: color 0.15s, background 0.15s;
}

.mobile-nav__link:hover,
.mobile-nav__section-btn:hover {
    color: var(--nav-text-active);
    background: var(--nav-hover-bg);
}

.mobile-nav__link--active,
.mobile-nav__section-btn--active {
    color: var(--nav-text-active);
    background: var(--nav-active-bg);
}

.mobile-nav__children {
    list-style: none;
    margin: 0;
    padding: 0;
    background: rgba(0, 0, 0, 0.2);
}

.mobile-nav__child-link {
    display: block;
    padding: 10px 20px 10px 36px;
    color: var(--nav-child-text);
    text-decoration: none;
    font-size: 13px;
    transition: color 0.15s, background 0.15s;
}

.mobile-nav__child-link:hover {
    color: var(--nav-text-active);
    background: var(--nav-hover-bg);
}

.mobile-nav__child-link--active {
    color: var(--nav-text-active);
    background: var(--nav-active-bg);
}

/* ===== Dialog ===== */

dialog {
    padding: 0;
    border: none;
    border-radius: 16px;
    background: var(--dialog-surface, Canvas);
    color: var(--dialog-on-surface, CanvasText);
    min-width: 280px;
    max-width: 560px;
    width: min(560px, calc(100vw - 48px));
    box-shadow:
        0 1px 3px rgba(0, 0, 0, 0.30),
        0 4px 8px 3px rgba(0, 0, 0, 0.15);
}

dialog.dialog--wide {
    width: min(848px, calc(100vw - 48px));
    max-width: calc(100vw - 48px);
}

dialog::backdrop {
    background: rgba(0, 0, 0, 0.32);
}

.dialog__content {
    display: flex;
    flex-direction: column;
    padding: 24px;
    gap: 16px;
    max-height: 80vh;
    overflow: hidden;
}

.dialog__body {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
}

.dialog__header {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.dialog__title {
    margin: 0;
    font-size: 24px;
    font-weight: 500;
    line-height: 32px;
}

.dialog__close {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-inline-start: auto;
    width: 40px;
    height: 40px;
    padding: 0;
    background: none;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    color: var(--dialog-on-surface, CanvasText);
    transition: background 0.2s;
}

.dialog__close:hover {
    background: color-mix(in srgb, var(--dialog-on-surface, CanvasText) 8%, transparent);
}

.dialog__close .material-symbols-outlined {
    font-size: 20px;
    line-height: 1;
}

/* ===== Snackbar ===== */

.snackbar {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%) translateY(calc(100% + 24px));
    opacity: 0;
    pointer-events: none;
    transition: transform 0.2s ease-out, opacity 0.2s ease-out;

    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 8px 12px 16px;
    min-width: 288px;
    max-width: 568px;
    border-radius: 4px;
    box-shadow:
        0 3px 5px rgba(0, 0, 0, 0.2),
        0 6px 10px rgba(0, 0, 0, 0.14),
        0 1px 18px rgba(0, 0, 0, 0.12);
    z-index: 1400;

    --snackbar-surface: #323232;
    --snackbar-on-surface: #ffffff;
    background: var(--snackbar-surface);
    color: var(--snackbar-on-surface);
}

.snackbar--visible {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
    pointer-events: auto;
}

.snackbar--success {
    --snackbar-surface: #2e7d32;
}

.snackbar--error {
    --snackbar-surface: #c62828;
}

.snackbar__message {
    flex: 1;
    font-size: 14px;
    line-height: 20px;
    font-weight: 400;
}

.snackbar__close {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    padding: 0;
    background: none;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    color: var(--snackbar-on-surface);
    opacity: 0.8;
    transition: background 0.2s, opacity 0.2s;
}

.snackbar__close:hover {
    opacity: 1;
    background: rgba(255, 255, 255, 0.12);
}

.snackbar__close .material-symbols-outlined {
    font-size: 18px;
    line-height: 1;
}

/* ===== Components ===== */

.page-box {
    margin: 0 12px 16px 12px;
    padding: 12px 16px;
	border-radius: var(--default-control-border-radius);
    box-shadow: 0 0 4px rgba(0,0,0,0.3);

    &.without-shadow {
        box-shadow: none;
    }
    &.without-margin-bottom {
        margin-bottom: 0;
    }
}

label {
    color: var(--default-color);
}

legend {
    margin: 0;
    padding: 0;
    color: var(--default-control-label-color);
    font-size: var(--default-control-label-font-size);
}

fieldset {
    padding: 0.1em;
    margin: 0;
    border: none;
}
fieldset.border {
    border: 1px solid var(--default-control-border-color);
	border-radius: var(--default-control-border-radius);
}


h1,
h2,
h3,
h4,
h5,
h6 {
    margin: 0;
    padding: 0;
}
/* ===== Select, Input ===== */
.pis-control {
    box-sizing: border-box;
    padding: var(--default-control-padding);
    border-radius: var(--default-control-border-radius);
    font-size: inherit;
    font-family: inherit;
    line-height: 1;

    &.default {
        color: var(--default-control-color);
        background-color: var(--default-control-background-color);
        border: var(--default-control-border);

        &:not(:disabled):hover {
            color: var(--default-control-color);
            background-color: var(--default-control-background-color-hover);
            border: var(--default-control-border);
        }

        &:not(:disabled):focus {
            outline: 2px solid var(--default-control-focus-border-color);
            border: var(--default-control-border);
        }
    }

    &.primary {
        color: var(--default-control-color);
        background-color: color-mix(in srgb, var(--primary-button-background) 6%, var(--default-control-background-color));
        border: 1px solid var(--primary-button-background);

        &:not(:disabled):hover {
            color: var(--default-control-color);
            background-color: color-mix(in srgb, var(--primary-button-background) 10%, var(--default-control-background-color));
            border: 1px solid var(--primary-button-background);
        }

        &:not(:disabled):focus {
            outline: 2px solid var(--primary-button-background);
            border: 1px solid var(--primary-button-background);
        }
    }
}


/* ===== Link Button / Button (shared base) ===== */
.pis-link-button,
.pis-button {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    text-decoration: none;
	padding: var(--default-control-padding);
	border-radius: var(--default-control-border-radius);
    border-style: solid;
    line-height: 1;

    & .material-symbols-outlined {
        font-size: 1em;
        line-height: 1.2;
    }

    &.default {
        color: var(--default-button-color);
        background-color: var(--default-button-background-color);
        border: var(--default-button-border);
    }

    &.primary {
        color: var(--primary-button-color);
        background-color: var(--primary-button-background);
        border: var(--primary-button-border);
    }

    &.danger {
        color: var(--danger-button-color);
        background-color: var(--danger-button-background);
        border: var(--danger-button-border);
    }
}

/* ===== Link Button ===== */
.pis-link-button {
    &.default:not([aria-disabled="true"]):hover {
        color: var(--default-button-color);
        background-color: var(--default-button-background-color-hover);
        text-decoration: none;
    }

    &.primary:not([aria-disabled="true"]):hover {
        color: var(--primary-button-color);
        background-color: var(--primary-button-background-color-hover);
        border-color: var(--primary-button-background-color-hover);
    }

    &.danger:not([aria-disabled="true"]):hover {
        color: var(--danger-button-color);
        background-color: var(--danger-button-background-color-hover);
        border-color: var(--danger-button-background-color-hover);
    }

    &[aria-disabled="true"] {
        opacity: var(--button-disabled-opacity);
        cursor: not-allowed;
    }
}

/* ===== Button ===== */
.pis-button {
    cursor: pointer;
    font-size: inherit;

    &.default:not(:disabled):hover {
        color: var(--default-button-color);
        background-color: var(--default-button-background-color-hover);
    }

    &.primary:not(:disabled):hover {
        background-color: var(--primary-button-background-color-hover);
        border-color: var(--primary-button-background-color-hover);
    }

    &.danger:not(:disabled):hover {
        background-color: var(--danger-button-background-color-hover);
        border-color: var(--danger-button-background-color-hover);
    }

    &:disabled {
        opacity: var(--button-disabled-opacity);
        cursor: not-allowed;
    }
}

/* ===== Spinner ===== */

@keyframes spinner-spin {
    to { transform: rotate(360deg); }
}

.spinner {
    display: flex;
    align-items: center;
    gap: 8px;

    &.spinner--center {
        justify-content: center;
    }

    & .spinner-icon {
        display: inline-block;
        width: 16px;
        height: 16px;
        border: 2px solid transparent;
        border-radius: 50%;
        animation: spinner-spin 0.7s linear infinite;
        flex-shrink: 0;
    }

    &.spinner--large .spinner-icon {
        width: 48px;
        height: 48px;
        border-width: 3px;
    }

    & .spinner-message {
        color: var(--default-color-disabled);
        font-size: 0.9em;
    }

    &.spinner--large .spinner-message {
        font-size: 1em;
    }

	&.default .spinner-icon {
	    border-color: var(--default-control-border-color);
	    border-top-color: var(--accent-color);
	}

	&.primary .spinner-icon {
	    border-color: color-mix(in srgb, var(--primary-button-background) 30%, transparent);
	    border-top-color: var(--primary-button-background);
	}
}

/* ===== Accordion ===== */

details {
    border-radius: var(--default-control-border-radius);
    overflow: hidden;

    &[open] > summary::after {
        transform: rotate(45deg);
    }

    & > :not(summary) {
        padding: var(--default-control-padding);
    }

    & > ul,
    & > ol {
        padding-inline-start: revert;
    }
}

summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    list-style: none;
    padding: var(--default-control-padding);
    cursor: pointer;
    font-weight: 500;
    user-select: none;
    overflow-x: auto;
    white-space: nowrap;
    transition: background-color 0.2s;

    &::marker,
    &::-webkit-details-marker {
        display: none;
    }

    &::after {
        content: '';
        display: inline-block;
        width: 8px;
        height: 8px;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        transform: rotate(-45deg);
        transition: transform 0.25s;
        flex-shrink: 0;
        margin-left: 8px;
        position: sticky;
        right: 0;
    }
}

details.default {
    border: 1px solid var(--default-control-border-color);
    background-color: var(--default-control-background-color);

    & + & {
        border-top: none;
    }

    & > summary {
        color: var(--default-control-color);

        &:hover {
            background-color: color-mix(in srgb, var(--default-control-color) 8%, var(--default-control-background-color));
        }
    }

    &[open] > summary {
        border-bottom: 1px solid var(--default-control-border-color);
        background-color: color-mix(in srgb, var(--default-control-color) 8%, var(--default-control-background-color));
    }
}

details.primary {
    border: 1px solid var(--primary-button-background);
    background-color: color-mix(in srgb, var(--primary-button-background) 6%, var(--default-control-background-color));

    & + & {
        border-top: none;
    }

    & > summary {
        color: var(--primary-button-color);
        background-color: var(--primary-button-background);

        &:hover {
            background-color: var(--primary-button-background-color-hover);
        }
    }

    &[open] > summary {
        border-bottom: 1px solid color-mix(in srgb, var(--primary-button-background), black 15%);
        background-color: var(--primary-button-background-color-hover);
    }
}

/* ===== Chip ===== */
.pis-chip {
    display: inline-flex;
    align-items: center;
    padding: var(--default-control-padding);
    border-radius: 6px;
    font-size: var(--default-control-label-font-size);
    background-color: var(--default-button-background-color);
    color: var(--default-button-color);
    border: var(--default-button-border);
    text-decoration: none;
    white-space: nowrap;
    position: relative;
	gap: 4px;

    &:hover {
        text-decoration: none;
        cursor: default;
    }

    &.default {

        &:hover {
            background-color: var(--default-button-background-color-hover);
        }
    }

	&.primary {
		background-color: var(--primary-button-background);
		color: var(--primary-button-color);
		border: var(--primary-button-border);

		&:hover {
			background-color: var(--primary-button-background-color-hover);
			border-color: var(--primary-button-background-color-hover);
		}
	}

    & a {
        text-decoration: none;
        color: inherit;
    }

    & .disabled {
        opacity: 0.6;
        cursor: not-allowed;
    }

    & .clickable {
        cursor: pointer;
    }

    & .pis-chip-action {
        color: inherit;
        font-size: inherit;

		 &.clickable:hover {
			font-weight: bolder;
		}
    }
}

/* ===== Card ===== */

.pis-card {
    & .pis-card-bar {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 8px;
        align-items: center;

        &:not(:last-child) {
            margin-bottom: 8px;
        }
		&:not(:first-child) {
		    margin-top: 8px;
		}
    }

    & .pis-card-bar-content {
        flex-grow: 1;
        margin: 0;
        gap: 2px;
        display: flex;
        align-items: center;
    }

    & .pis-card-bar-action {
        display: flex;
        align-items: center;
        gap: 8px;
    }

    & .pis-card-content {
        padding: 0;
    }
}

/* ===== Typography ===== */

.typography {
	color: var(--default-color);

    &.caption {
        font-size: var(--default-control-label-font-size);
        color: var(--default-control-label-color);
    }
}

/* ===== Alert ===== */

.alert {
	display: flex;
	padding: var(--default-control-padding);
	border-radius: 4px;

	&.alert-error {
		color: var(--alert-error-color);
		background-color: var(--alert-error-background);
		border: 1px solid var(--alert-error-border);
	}

	&.alert-warning {
		color: var(--alert-warning-color);
		background-color: var(--alert-warning-background);
		border: 1px solid var(--alert-warning-border);
	}

	&.alert-info {
		color: var(--alert-info-color);
		background-color: var(--alert-info-background);
		border: 1px solid var(--alert-info-border);
	}

	&.alert-success {
		color: var(--alert-success-color);
		background-color: var(--alert-success-background);
		border: 1px solid var(--alert-success-border);
	}
}

/* ===== Table ===== */

.pis-table {
    width: 100%;
    border-collapse: collapse;

    & thead tr {
        border-bottom: 2px solid var(--default-control-border-color);
        background-color: color-mix(in srgb, var(--default-control-color) 5%, var(--default-background));
    }

    & th {
        padding: 8px 0;
        text-align: left;
        font-weight: 600;
        color: var(--default-color-disabled);
        white-space: nowrap;
    }

    & td {
        padding: 4px 0;
        vertical-align: middle;
        border-bottom: 1px solid color-mix(in srgb, var(--default-control-border-color) 60%, transparent);
    }

    & tbody tr:last-child td {
        border-bottom: none;
    }

    & tbody tr:hover td {
        background-color: color-mix(in srgb, var(--default-control-color) 4%, var(--default-background));
    }

    & th:last-child,
    & td:last-child {
        text-align: right;
        white-space: nowrap;
        width: 1%;
    }
}

/* ===== Pagination ===== */

.pagination-bar {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    justify-content: center;
    align-items: center;
    gap: 4px;
    padding: 12px 0;

    & .pagination-controls {
        display: flex;
        gap: 10px;

        & :first-child {
            margin-right: 5px;
        }
        & :last-child {
            margin-left: 5px;
        }
    }


    & .pagination-ellipsis {
        padding: var(--default-control-padding);
        color: var(--muted-color, #888);
        user-select: none;
    }
}

/* ===== Tooltip ===== */
[role="tooltip"] {
    visibility: hidden;
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    z-index: 100;
    width: min(400px, 90vw);
    white-space: normal;
    background: black;
    color: white;
    padding: 0.5rem;
    border-radius: 0.25rem;
    transition: visibility 0.5s;
}

[aria-describedby]:hover+[role="tooltip"],
[aria-describedby]:focus+[role="tooltip"],
[role="tooltip"]:hover,
[role="tooltip"]:focus {
    visibility: visible;
}

@media (hover: none) {
    [role="tooltip"] {
        display: none;
    }
}
