html,
body {
    min-height: 100%;
    font-family: Aptos, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-weight: 400;
    margin: 0;
    padding: 0;
}

* {
    box-sizing: border-box;
}

.layout-page {
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
}

.layout-main {
    min-height: 100dvh;
}

.retro-footer {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 18px;

    display: flex;
    justify-content: center;
    align-items: center;

    font-size: 0.68rem;
    opacity: 0.5;

    color: #666;

    background: transparent;

    pointer-events: none;

    z-index: 50;
}

body {
    margin: 0;
    background: #f4f5f8;
    color: #151823;
}

button,
input,
textarea {
    font: inherit;
}

button {
    letter-spacing: 0;
}

a,
.btn-link {
    color: #006bb7;
}

.btn-primary {
    color: #fff;
    background-color: #6f55d9;
    border-color: #6f55d9;
}

.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem rgba(111, 85, 217, 0.35);
}

.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: #b32121;
    padding: 1rem;
    color: white;
}

.blazor-error-boundary::after {
    content: "An error has occurred.";
}

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

/* Auth */

.auth-landing {
    --landing-ink: #101522;
    --landing-muted: #667085;
    --landing-border: #dfe4ec;
    --landing-panel: rgba(255, 255, 255, 0.84);
    --landing-accent: #7156d9;
    --landing-accent-deep: #4f35bd;
    --landing-accent-soft: rgba(113, 86, 217, 0.09);
    min-height: 100vh;
    min-height: 100dvh;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 26px;
    padding: 28px 24px 58px;
    background:
        radial-gradient(circle at 50% 8%, rgba(113, 86, 217, 0.12), transparent 30rem),
        radial-gradient(circle at 14% 78%, rgba(16, 24, 40, 0.05), transparent 24rem),
        linear-gradient(180deg, #fbfcff 0%, #f5f6fa 100%);
}

.landing-nav {
    width: min(100%, 920px);
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.landing-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--landing-ink);
    font-size: 18px;
    font-weight: 900;
    text-decoration: none;
}

.landing-brand:hover {
    color: var(--landing-ink);
}

.landing-nav-link {
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--landing-border);
    border-radius: 999px;
    padding: 0 16px;
    background: rgba(255, 255, 255, 0.76);
    color: var(--landing-ink);
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}

.landing-nav-link:hover {
    border-color: #c7ceda;
    color: var(--landing-ink);
    background: white;
}

.landing-hero {
    width: min(100%, 920px);
    display: grid;
    justify-items: center;
    gap: 24px;
    padding-top: clamp(44px, 9vh, 92px);
    text-align: center;
}

.landing-copy-panel {
    min-width: 0;
    display: grid;
    justify-items: center;
}

.landing-copy-panel h1 {
    margin: 0;
    max-width: 760px;
    color: var(--landing-ink);
    font-size: clamp(44px, 7vw, 84px);
    line-height: 0.96;
    font-weight: 950;
    letter-spacing: -0.06em;
    text-wrap: balance;
}

.landing-lede {
    max-width: 610px;
    margin: 22px auto 0;
    color: var(--landing-muted);
    font-size: 18px;
    line-height: 1.58;
}

.landing-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-top: 30px;
}

.landing-primary-link {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    padding: 0 22px;
    font-size: 14px;
    font-weight: 900;
    text-decoration: none;
    cursor: pointer;
}

.landing-primary-link {
    background: linear-gradient(135deg, #8064ef 0%, #5f47c8 100%);
    color: white;
    box-shadow: 0 16px 30px rgba(113, 86, 217, 0.28);
}

.landing-primary-link:hover {
    color: white;
    background: linear-gradient(135deg, #7356df 0%, #4f35bd 100%);
}

.landing-board-card {
    width: min(100%, 520px);
    display: grid;
    gap: 10px;
    margin-top: 8px;
    padding: 20px 22px;
    border: 1px solid var(--landing-border);
    border-radius: 24px;
    background: var(--landing-panel);
    box-shadow: 0 24px 60px rgba(16, 24, 40, 0.08);
    backdrop-filter: blur(18px);
}

.landing-board-card span {
    color: var(--landing-accent);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.landing-board-card strong {
    color: var(--landing-ink);
    font-size: 20px;
    line-height: 1.22;
    font-weight: 950;
    letter-spacing: -0.025em;
}

.landing-board-preview {
    width: min(100%, 920px);
    display: grid;
    gap: 18px;
    margin-top: 10px;
    padding: 18px;
    border: 1px solid var(--landing-border);
    border-radius: 28px;
    background: var(--landing-panel);
    box-shadow: 0 24px 70px rgba(16, 24, 40, 0.08);
    backdrop-filter: blur(18px);
}

.landing-preview-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.landing-preview-top span {
    color: var(--landing-accent);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.landing-preview-top h2 {
    max-width: 540px;
    margin: 8px 0 0;
    color: var(--landing-ink);
    font-size: clamp(22px, 2.4vw, 30px);
    line-height: 1.08;
    font-weight: 950;
    letter-spacing: -0.03em;
}

.landing-preview-top strong {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 8px 12px;
    background: var(--landing-accent-soft);
    color: var(--landing-accent);
    font-size: 12px;
    font-weight: 950;
}

.landing-preview-lanes {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.landing-preview-lanes article {
    min-width: 0;
    padding: 14px;
    border: 1px solid #e6eaf0;
    border-top: 4px solid #7156d9;
    border-radius: 18px;
    background: rgba(248, 250, 252, 0.8);
}

.landing-preview-lanes article:nth-child(2) {
    border-top-color: #28c5b0;
}

.landing-preview-lanes article:nth-child(3) {
    border-top-color: #f59e0b;
}

.landing-preview-lanes h3 {
    margin: 0 0 12px;
    color: var(--landing-ink);
    font-size: 14px;
    line-height: 1.2;
    font-weight: 950;
}

.landing-ticket {
    display: grid;
    gap: 10px;
    margin-top: 10px;
    padding: 12px;
    border: 1px solid #e5e9f0;
    border-radius: 13px;
    background: white;
    box-shadow: 0 1px 4px rgba(17, 24, 39, 0.045);
}

.landing-ticket p {
    margin: 0;
    color: #3f4758;
    font-size: 13px;
    line-height: 1.42;
}

.landing-ticket span {
    justify-self: start;
    border-radius: 999px;
    padding: 5px 8px;
    background: var(--landing-accent-soft);
    color: var(--landing-accent);
    font-size: 11px;
    font-weight: 950;
}

.landing-ticket.muted {
    background: #f5f6fa;
}

.landing-ticket.muted p {
    color: #788196;
}

.landing-offers {
    width: min(100%, 920px);
    display: grid;
    gap: 18px;
    margin-top: 6px;
}

.landing-offers-heading {
    max-width: 620px;
    margin: 0 auto;
    text-align: center;
}

.landing-offers-heading span {
    color: var(--landing-accent);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.landing-offers-heading h2 {
    margin: 8px 0 0;
    color: var(--landing-ink);
    font-size: clamp(24px, 2.6vw, 34px);
    line-height: 1.08;
    font-weight: 950;
    letter-spacing: -0.035em;
}

.landing-offer-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.landing-offer-grid article {
    min-height: 142px;
    padding: 18px;
    border: 1px solid var(--landing-border);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.72);
    box-shadow: 0 12px 28px rgba(16, 24, 40, 0.04);
}

.landing-offer-grid span {
    color: var(--landing-accent);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.landing-offer-grid h3 {
    margin: 10px 0 8px;
    color: var(--landing-ink);
    font-size: 18px;
    line-height: 1.2;
    font-weight: 950;
    letter-spacing: -0.015em;
}

.landing-offer-grid p {
    margin: 0;
    color: #5b6577;
    font-size: 14px;
    line-height: 1.55;
}

.auth-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 500;
    display: grid;
    place-items: center;
    padding: 22px;
    background: rgba(17, 24, 39, 0.34);
    backdrop-filter: blur(8px);
}

.auth-panel {
    width: min(100%, 440px);
    padding: 28px;
    border: 1px solid var(--landing-border);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 28px 90px rgba(15, 23, 42, 0.28);
    backdrop-filter: blur(12px);
}

.auth-modal {
    position: relative;
    max-height: min(760px, calc(100vh - 44px));
    overflow: auto;
}

.auth-modal-close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 32px;
    height: 32px;
    border: 1px solid #d9dee8;
    border-radius: 999px;
    background: white;
    color: #4b5563;
    font-size: 15px;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
}

.auth-modal-close:hover {
    background: #f3f5f9;
    color: #111827;
}

.auth-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 12px;
    color: var(--landing-accent);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.landing-eyebrow span {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: var(--landing-accent);
    box-shadow: 0 0 0 5px rgba(113, 86, 217, 0.12);
}

.auth-panel h2 {
    margin: 0;
    color: var(--landing-ink);
    font-size: 28px;
    line-height: 1.08;
    font-weight: 950;
    letter-spacing: -0.025em;
}

.auth-copy {
    margin: 12px 0 24px;
    color: #4b5563;
    font-size: 15px;
    line-height: 1.55;
}

.google-signin-btn {
    height: 46px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    border: 1px solid #dadce0;
    border-radius: 8px;
    background: white;
    color: #3c4043;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.google-signin-btn:hover {
    border-color: #c1c7cd;
    background: #f8fafd;
    color: #202124;
    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.12);
}

.google-signin-btn svg {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
}

.google-signin-btn-disabled,
.google-signin-btn-disabled:hover {
    cursor: not-allowed;
    opacity: 0.62;
    background: #f8fafc;
    border-color: #e5e7eb;
    color: #4b5563;
    box-shadow: none;
}

.auth-error {
    margin-bottom: 16px;
    padding: 10px 12px;
    border: 1px solid #fecaca;
    border-radius: 10px;
    background: #fef2f2;
    color: #991b1b;
    font-size: 14px;
    font-weight: 700;
}

.auth-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 20px 0;
    color: #6b7280;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

.auth-divider::before,
.auth-divider::after {
    content: "";
    height: 1px;
    flex: 1;
    background: #e5e7eb;
}

.password-auth-form {
    display: grid;
    gap: 9px;
}

.password-auth-form label {
    color: #374151;
    font-size: 13px;
    font-weight: 800;
}

.password-auth-form input[type="email"],
.password-auth-form input[type="password"] {
    width: 100%;
    height: 44px;
    border: 1px solid #d1d5db;
    border-radius: 12px;
    padding: 0 12px;
    background: white;
    color: #111827;
}

.password-auth-form input:focus {
    border-color: #6f55d9;
    outline: none;
    box-shadow: 0 0 0 3px rgba(111, 85, 217, 0.14);
}

.auth-checkbox {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 2px 0 4px;
    color: #4b5563;
    font-size: 13px;
    font-weight: 700;
}

.auth-checkbox input {
    width: 16px;
    height: 16px;
}

.password-auth-form button {
    height: 46px;
    border: none;
    border-radius: 12px;
    background: #7156d9;
    color: white;
    font-weight: 800;
}

.password-auth-form button:hover {
    background: #5f47c8;
}

.register-form {
    margin-top: 0;
}

.auth-mode-switch {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 18px;
    color: #5b6577;
    font-size: 14px;
    font-weight: 700;
}

.auth-mode-switch button {
    border: 0;
    padding: 0;
    background: transparent;
    color: #5f47c8;
    font: inherit;
    font-weight: 900;
    cursor: pointer;
}

.auth-mode-switch button:hover {
    color: #4f35bd;
    text-decoration: underline;
}

/* Landing dashboard */

.home-page {
    min-height: 100dvh;
    padding: 0 42px 42px;
    background: #f4f5f8;
}

.home-header {
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 -42px;
    padding: 0 42px;
    border-bottom: 1px solid #e1e4eb;
}

.home-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #151823;
    font-size: 18px;
    font-weight: 800;
    text-decoration: none;
}

.home-brand:hover {
    color: #151823;
}

.home-account {
    display: flex;
    align-items: center;
    gap: 18px;
    color: #596176;
    font-size: 14px;
    font-weight: 500;
}

.home-signout {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    color: #151823;
    text-decoration: none;
}

.home-signout:hover {
    background: rgba(17, 24, 39, 0.06);
    color: #151823;
}

.home-signout svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.home-main {
    width: min(1104px, 100%);
    padding-top: 38px;
}

.home-hero {
    margin-bottom: 38px;
}

.home-hero h1 {
    margin: 0 0 6px;
    color: #111420;
    font-size: 38px;
    line-height: 1.12;
    font-weight: 900;
    letter-spacing: 0;
}

.home-hero p {
    margin: 0;
    color: #636b80;
    font-size: 16px;
}

.home-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 32px;
}

.board-filter-tabs {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 3px;
    border-radius: 13px;
    background: #eef0f5;
    box-shadow: 0 2px 6px rgba(17, 24, 39, 0.08);
}

.board-filter-tabs button {
    height: 30px;
    border: 0;
    border-radius: 10px;
    padding: 0 12px;
    background: transparent;
    color: #596176;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
}

.board-filter-tabs button.active {
    background: white;
    color: #151823;
    box-shadow: 0 1px 4px rgba(17, 24, 39, 0.1);
}

.new-retro-btn {
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 0;
    border-radius: 10px;
    padding: 0 18px;
    background: #7156d9;
    color: white;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(113, 86, 217, 0.24);
}

.new-retro-btn span {
    font-size: 20px;
    line-height: 1;
}

.create-board-panel {
    display: grid;
    grid-template-columns: minmax(180px, 0.9fr) minmax(220px, 1.2fr) auto;
    align-items: start;
    gap: 10px;
    width: min(760px, 100%);
    margin-bottom: 28px;
    padding: 12px;
    border: 1px solid #d7dbe5;
    border-radius: 12px;
    background: white;
    box-shadow: 0 2px 6px rgba(17, 24, 39, 0.07);
}

.create-board-field {
    min-width: 0;
    display: grid;
    gap: 6px;
}

.create-board-field span {
    color: #475169;
    font-size: 12px;
    font-weight: 800;
}

.create-board-panel input {
    min-width: 0;
    height: 38px;
    border: 1px solid #d7dbe5;
    border-radius: 9px;
    padding: 0 12px;
    background: #f8f9fc;
    color: #151823;
}

.create-board-panel button {
    align-self: end;
    height: 38px;
    border: 0;
    border-radius: 9px;
    padding: 0 14px;
    background: #111827;
    color: white;
    font-weight: 800;
}

.create-board-panel button:disabled {
    cursor: default;
    opacity: 0.45;
}

.board-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(260px, 1fr));
    gap: 18px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.board-card {
    position: relative;
    min-height: 120px;
    border: 1px solid #d9dde6;
    border-top: 5px solid #28c5b0;
    border-radius: 10px;
    background: white;
    box-shadow: 0 2px 4px rgba(17, 24, 39, 0.08);
    overflow: hidden;
}

.board-card a {
    min-height: 120px;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 6px;
    padding: 24px 20px 52px;
    color: #151823;
    text-decoration: none;
}

.board-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.board-card-title {
    min-width: 0;
    color: #151823;
    font-size: 16px;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.board-card-badges {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
    flex: 0 0 auto;
}

.board-card-lock {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: #667085;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.board-status-pill {
    height: 22px;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0 10px;
    font-size: 11px;
    font-weight: 800;
}

.board-status-pill.done {
    background: #e7e9ef;
    color: #151823;
}

.board-status-pill.active {
    background: #7156d9;
    color: white;
}

.board-access-pill {
    height: 22px;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0 10px;
    font-size: 11px;
    font-weight: 800;
}

.board-access-pill.owned {
    background: #dcfce7;
    color: #166534;
}

.board-access-pill.invited {
    background: #dbeafe;
    color: #1e40af;
}

.board-card-description {
    color: #596176;
    font-size: 15px;
    overflow-wrap: anywhere;
}

.board-card-footer {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #596176;
    font-size: 13px;
}

.board-card-arrow {
    margin-left: auto;
    color: #151823;
    font-size: 20px;
    line-height: 1;
}

.board-card-duplicate,
.board-card-delete {
    position: absolute;
    bottom: 12px;
    min-width: 52px;
    border: 0;
    border-radius: 8px;
    padding: 6px 8px;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.board-card-duplicate {
    right: 14px;
    min-width: 76px;
    background: #e0f2fe;
    color: #075985;
}

.board-card-delete {
    right: 98px;
    background: #fee2e2;
    color: #991b1b;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease;
}

.board-card:hover .board-card-delete,
.board-card-delete:focus-visible {
    opacity: 1;
    pointer-events: auto;
}

.duplicate-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 500;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(15, 23, 42, 0.42);
}

.duplicate-modal {
    width: min(420px, 100%);
    border: 1px solid #d7dbe5;
    border-radius: 16px;
    padding: 22px;
    background: white;
    color: #151823;
    box-shadow: 0 24px 70px rgba(17, 24, 39, 0.22);
}

.duplicate-modal h3 {
    margin: 0;
    font-size: 20px;
    font-weight: 900;
}

.duplicate-modal p {
    margin: 8px 0 18px;
    color: #596176;
    font-size: 14px;
    line-height: 1.45;
}

.duplicate-name-field {
    display: grid;
    gap: 7px;
}

.duplicate-name-field span {
    color: #475169;
    font-size: 12px;
    font-weight: 800;
}

.duplicate-name-field input {
    height: 40px;
    border: 1px solid #d7dbe5;
    border-radius: 10px;
    padding: 0 12px;
    background: #f8f9fc;
    color: #151823;
}

.duplicate-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 20px;
}

.duplicate-modal-actions button {
    height: 38px;
    border: 0;
    border-radius: 9px;
    padding: 0 14px;
    font-weight: 800;
    cursor: pointer;
}

.duplicate-modal-secondary {
    background: #eef0f5;
    color: #151823;
}

.duplicate-modal-primary {
    background: #7156d9;
    color: white;
}

.duplicate-modal-primary:disabled {
    cursor: default;
    opacity: 0.45;
}

.empty-boards {
    color: #596176;
}

/* Board */

.retro-page {
    --vote-meter-border: #d6dae5;
    --vote-meter-bg: #ffffff;
    --vote-meter-text: #151823;
    --vote-meter-muted: #596176;
    --vote-meter-shadow: 0 2px 5px rgba(17, 24, 39, 0.08);
    --vote-dot-available-bg: linear-gradient(135deg, #34d399, #7156d9);
    --vote-dot-available-border: transparent;
    --vote-dot-available-shadow: 0 0 0 2px rgba(113, 86, 217, 0.08);
    --vote-dot-used-bg: #e5e7eb;
    --vote-dot-used-border: #d1d5db;
    --vote-dot-used-shadow: none;
    --vote-dot-radius: 50%;
    --vote-controls-bg: #eefdf5;
    --vote-controls-shadow: inset 0 0 0 1px rgba(4, 120, 87, 0.12);
    --vote-button-bg: rgba(255, 255, 255, 0.72);
    --vote-button-color: #475169;
    --vote-count-color: #6f55d9;
    --vote-up-hover-bg: #eefdf5;
    --vote-up-hover-color: #047857;
    --vote-up-active-bg: #dcfce7;
    --vote-up-active-color: #047857;
    --vote-remove-hover-bg: #fff1f2;
    --vote-remove-hover-color: #be123c;
    --vote-remove-active-bg: #ffe4e6;
    --vote-remove-active-color: #be123c;
    --vote-total-bg: #eefdf5;
    --vote-total-color: #047857;
    --vote-total-border: 0;
    --vote-total-radius: 999px;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #f4f5f8;
}

.retro-topbar {
    min-height: 100px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 22px 24px 12px;
    background: #f4f5f8;
    position: sticky;
    top: 0;
    z-index: 100;
}

.retro-title-section {
    display: flex;
    align-items: center;
    gap: 16px;
}

.retro-title {
    margin: 0;
    color: #151823;
    font-size: 22px;
    font-weight: 600;
    letter-spacing: 0;
}

.board-presence {
    display: flex;
    align-items: center;
    margin-top: 8px;
    padding-left: 2px;
}

.presence-avatar {
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: -4px;
    border: 2px solid #f4f5f8;
    border-radius: 999px;
    background: #7156d9;
    color: white;
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    cursor: default;
    box-shadow: 0 2px 5px rgba(17, 24, 39, 0.12);
}

.presence-avatar:first-child {
    margin-left: 0;
}

.presence-avatar:nth-child(2n) {
    background: #0f9f8f;
}

.presence-avatar:nth-child(3n) {
    background: #e26d5c;
}

.presence-avatar:nth-child(4n) {
    background: #3066be;
}

.presence-more {
    background: #111827;
}

.back-btn {
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: #151823;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.back-btn:hover {
    background: rgba(17, 24, 39, 0.06);
}

.retro-toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.toolbar-btn,
.complete-btn {
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid #d6dae5;
    border-radius: 10px;
    padding: 0 14px;
    background: white;
    color: #151823;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(17, 24, 39, 0.08);
}

.toolbar-btn:hover {
    border-color: #c7ccd8;
}

.blur-toolbar-btn.active {
    border-color: #c9c1f4;
    background: #eeeafd;
    color: #5f47c8;
}

.voting-toolbar-btn.active {
    border-color: #22c55e;
    background: #dcfce7;
    color: #047857;
}

.voting-toolbar-btn.finished {
    border-color: #f59e0b;
    background: #fff7ed;
    color: #9a3412;
}

.vote-meter {
    min-height: 36px;
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--vote-meter-border);
    border-radius: 12px;
    padding: 7px 10px;
    background: var(--vote-meter-bg);
    color: var(--vote-meter-text);
    box-shadow: var(--vote-meter-shadow);
}

.vote-meter-label,
.vote-meter-count {
    color: var(--vote-meter-muted);
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
}

.vote-meter-dots {
    display: flex;
    align-items: center;
    gap: 5px;
}

.vote-meter-dot {
    width: 10px;
    height: 10px;
    border-radius: var(--vote-dot-radius);
    border: 1px solid transparent;
    transition: background-color 0.16s ease, border-color 0.16s ease, transform 0.16s ease;
}

.vote-meter-dot.available {
    border-color: var(--vote-dot-available-border);
    background: var(--vote-dot-available-bg);
    box-shadow: var(--vote-dot-available-shadow);
}

.vote-meter-dot.used {
    border-color: var(--vote-dot-used-border);
    background: var(--vote-dot-used-bg);
    box-shadow: var(--vote-dot-used-shadow);
}

.toolbar-btn:disabled {
    opacity: 0.48;
    cursor: default;
}

.toolbar-icon {
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.complete-btn {
    border-color: #7156d9;
    background: #7156d9;
    color: white;
}

.complete-btn:disabled {
    border-color: #cfd4df;
    background: #eef1f6;
    color: #596176;
    cursor: default;
    box-shadow: none;
}

.timer-control {
    min-height: 54px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border: 1px solid #d6dae5;
    border-radius: 12px;
    background: white;
    box-shadow: 0 2px 5px rgba(17, 24, 39, 0.08);
}

.timer-duration-group {
    display: flex;
    align-items: center;
    gap: 4px;
}

.timer-duration-btn {
    width: 36px;
    height: 30px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: #596176;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
}

.timer-duration-btn.active {
    background: #7156d9;
    color: white;
}

.timer-duration-btn:disabled {
    cursor: default;
    opacity: 0.72;
}

.timer-pill {
    width: 66px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    border-radius: 10px;
    background: #ddd9ef;
    color: #151823;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    font-size: 14px;
    font-weight: 600;
}

.timer-pill span {
    display: none;
}

.timer-pill.finished {
    background: #fee2e2;
    color: #b91c1c;
}

.timer-icon-btn {
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: #151823;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
}

.timer-icon-btn:hover {
    background: #f0f2f7;
}

.timer-icon-btn:disabled {
    opacity: 0.42;
    cursor: default;
}

.timer-icon-btn:disabled:hover {
    background: transparent;
}

.retro-board {
    flex: 1;
    min-height: 0;
    display: flex;
    gap: 20px;
    overflow: auto;
    padding: 12px 22px 28px;
}

.retro-column {
    flex: 1 1 340px;
    min-width: min(350px, calc(100vw - 44px));
    display: flex;
    flex-direction: column;
    padding: 0;
}

.retro-column-header[draggable="true"] {
    cursor: grab;
    touch-action: none;
}

.retro-column-header[draggable="true"]:active {
    cursor: grabbing;
}

.retro-column.column-dragging {
    opacity: 0.56;
}

.retro-board.mobile-sort-active,
.retro-board.mobile-sort-active * {
    user-select: none;
}

.retro-column-header {
    min-height: 70px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px;
    border: 1px solid #d8dde8;
    border-radius: 10px;
    margin-bottom: 20px;
    background: white;
    touch-action: manipulation;
}

.retro-column-header-main {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 14px;
}

.retro-column-header-icon {
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    border-radius: 999px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.74);
    font-size: 19px;
}

.retro-column-title {
    color: #151823;
    font-size: 15px;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.retro-column-count {
    margin-top: 1px;
    color: #596176;
    font-size: 13px;
}

.column-actions {
    display: flex;
    align-items: center;
    gap: 4px;
    flex: 0 0 auto;
}

.column-action-btn {
    width: 27px;
    height: 27px;
    border: 0;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.62);
    color: #151823;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.column-action-btn:hover {
    background: white;
}

.column-action-btn:disabled {
    opacity: 0.38;
    cursor: default;
}

.column-action-btn.danger {
    color: #b91c1c;
}

.lane-emerald {
    border-color: #b6eee2;
    background: linear-gradient(180deg, #e8faf7 0%, #f3fbf9 100%);
}

.lane-rose {
    border-color: #f8c8d4;
    background: linear-gradient(180deg, #fff0f4 0%, #fbf7fa 100%);
}

.lane-amber {
    border-color: #f4dbaf;
    background: linear-gradient(180deg, #fff7eb 0%, #fbfaf7 100%);
}

.lane-blue {
    border-color: #bdd3fb;
    background: linear-gradient(180deg, #edf4ff 0%, #f6f8ff 100%);
}

.lane-violet {
    border-color: #d8c5ff;
    background: linear-gradient(180deg, #f4f0ff 0%, #faf8ff 100%);
}

.lane-cyan {
    border-color: #a7e7f3;
    background: linear-gradient(180deg, #e9fbff 0%, #f6fdff 100%);
}

.lane-lime {
    border-color: #c7efa7;
    background: linear-gradient(180deg, #f3fde8 0%, #f9fdf5 100%);
}

.lane-orange {
    border-color: #ffcda3;
    background: linear-gradient(180deg, #fff3e8 0%, #fffaf5 100%);
}

.lane-slate {
    border-color: #cbd5e1;
    background: linear-gradient(180deg, #f3f6fa 0%, #fafbfc 100%);
}

.lane-default {
    border-color: #d3d8e2;
    background: linear-gradient(180deg, #f5f7fb 0%, #fafbfc 100%);
}

.retro-card-list {
    flex: 1;
    min-height: 76px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    overflow-y: auto;
}

.retro-card-list:empty::after {
    content: "Drop cards here";
    height: 46px;
    border: 2px dashed #dfe3eb;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #6b7280;
    font-size: 14px;
    font-weight: 500;
    background: transparent;
}

.ticket-group-header {
    position: relative;
    z-index: 3;
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 0;
    padding: 8px 10px;
    border: 1px solid #cfd8e8;
    border-radius: 10px;
    background: linear-gradient(180deg, #f5f8ff 0%, #eaf1ff 100%);
    color: #1f2937;
    box-shadow: 0 3px 8px rgba(48, 102, 190, 0.08);
    cursor: grab;
    touch-action: none;
    user-select: none;
}

.ticket-group-header:active {
    cursor: grabbing;
}

.ticket-group-header.group-dragging {
    opacity: 0.66;
}

.ticket-group-title {
    min-width: 0;
    display: grid;
    gap: 1px;
}

.ticket-group-title span {
    font-size: 14px;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.ticket-group-title small {
    color: #667085;
    font-size: 11px;
    font-weight: 500;
}

.ticket-group-vote-total {
    flex: 0 0 auto;
    border: var(--vote-total-border);
    border-radius: var(--vote-total-radius);
    padding: 5px 8px;
    background: var(--vote-total-bg);
    color: var(--vote-total-color);
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
}

.ticket-group-vote-controls {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    border-radius: var(--vote-total-radius);
    padding: 3px;
    background: var(--vote-controls-bg);
    box-shadow: var(--vote-controls-shadow);
}

.group-vote-btn {
    min-width: 34px;
    height: 26px;
    border-radius: var(--vote-total-radius);
}

.ticket-group-actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
}

.ticket-group-action {
    height: 28px;
    border: 1px solid #c7d2e5;
    border-radius: 8px;
    padding: 0 8px;
    background: white;
    color: #334155;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
}

.ticket-group-action:hover {
    border-color: #aab7cf;
}

.ticket-group-action:disabled {
    opacity: 0.45;
    cursor: default;
}

.ticket-group-action.secondary {
    background: transparent;
}

.ticket-group-action.danger {
    border-color: #fecaca;
    color: #b91c1c;
}

.ticket-group-title-input {
    min-width: 0;
    flex: 1;
    height: 32px;
    border: 1px solid #c7d2e5;
    border-radius: 8px;
    padding: 0 10px;
    background: white;
    color: #111827;
    font-size: 13px;
    font-weight: 500;
}

.retro-card {
    position: relative;
    border: 1px solid #d8dde7;
    border-radius: 10px;
    padding: 16px 14px;
    background: white;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
    cursor: grab;
    transition:
        transform 0.15s ease,
        box-shadow 0.15s ease,
        border-color 0.15s ease;
}

.ticket-sortable-item {
    position: relative;
    touch-action: manipulation;
}

.ticket-sortable-item.grouped-ticket-item {
    margin-left: 10px;
    padding-left: 10px;
    z-index: 1;
}

.ticket-sortable-item.grouped-ticket-item::before {
    content: "";
    position: absolute;
    inset: -8px auto -8px 0;
    width: 3px;
    border-radius: 999px;
    background: #b8c7ea;
}

.ticket-sortable-item.grouped-ticket-item + .ticket-sortable-item.grouped-ticket-item {
    margin-top: -38px;
}

.ticket-sortable-item.grouped-ticket-item:hover,
.ticket-sortable-item.grouped-ticket-item:focus-within {
    z-index: 4;
}

.retro-card.grouped-card {
    border-color: #c9d6f0;
    background: #ffffff;
    padding: 10px 12px;
    box-shadow: 0 2px 8px rgba(17, 24, 39, 0.07);
}

.retro-card.grouped-card:not(.stack-front) {
    min-height: 48px;
    border-color: #cfd9ee;
    background: #fbfdff;
    box-shadow: 0 1px 4px rgba(17, 24, 39, 0.08);
}

.retro-card.grouped-card:not(.stack-front) .retro-card-content {
    max-height: 24px;
    overflow: hidden;
    font-size: 14px;
    line-height: 1.35;
}

.retro-card.grouped-card:not(.stack-front) .retro-card-author,
.retro-card.grouped-card:not(.stack-front) .retro-card-divider,
.retro-card.grouped-card:not(.stack-front) .retro-card-actions {
    display: none;
}

.ticket-sortable-item.grouped-ticket-item.stack-front-item {
    z-index: 8;
    margin-bottom: 8px;
}

.retro-card.grouped-card.stack-front {
    position: relative;
    padding: 16px 14px;
    border-color: #9eb2e2;
    background: #ffffff;
    box-shadow: 0 9px 22px rgba(46, 82, 150, 0.16);
}

.retro-card.grouped-card.stack-front .retro-card-content {
    max-height: none;
    overflow: visible;
    font-size: 15px;
    line-height: 1.45;
}

.ticket-origin-corner {
    position: absolute;
    top: 0;
    right: 0;
    width: 22px;
    height: 22px;
    border-top-right-radius: 9px;
    clip-path: polygon(100% 0, 0 0, 100% 100%);
    box-shadow: -1px 1px 0 rgba(255, 255, 255, 0.8);
    pointer-events: none;
}

.ticket-origin-corner.origin-emerald {
    background: linear-gradient(135deg, #b6eee2, #39c6a8);
}

.ticket-origin-corner.origin-rose {
    background: linear-gradient(135deg, #f8c8d4, #f05277);
}

.ticket-origin-corner.origin-amber {
    background: linear-gradient(135deg, #f4dbaf, #e8a13a);
}

.ticket-origin-corner.origin-blue {
    background: linear-gradient(135deg, #bdd3fb, #4f8fe8);
}

.ticket-origin-corner.origin-violet {
    background: linear-gradient(135deg, #d8c5ff, #8b5cf6);
}

.ticket-origin-corner.origin-cyan {
    background: linear-gradient(135deg, #a7e7f3, #06b6d4);
}

.ticket-origin-corner.origin-lime {
    background: linear-gradient(135deg, #c7efa7, #65a30d);
}

.ticket-origin-corner.origin-orange {
    background: linear-gradient(135deg, #ffcda3, #f97316);
}

.ticket-origin-corner.origin-slate {
    background: linear-gradient(135deg, #cbd5e1, #64748b);
}

.ticket-origin-corner.origin-default {
    background: linear-gradient(135deg, #d3d8e2, #7b8496);
}

.retro-card.grouped-card .retro-card-author {
    margin-top: 8px;
}

.retro-card.grouped-card .retro-card-divider {
    margin: 6px 0 8px;
}

.mobile-drag-chosen {
    opacity: 0.96;
}

.mobile-drag-ghost {
    opacity: 0.42;
}

.mobile-dragging {
    box-shadow: 0 14px 34px rgba(17, 24, 39, 0.18);
}

.retro-card:hover {
    transform: translateY(-1px);
    border-color: #c9cfdb;
    box-shadow: 0 4px 12px rgba(17, 24, 39, 0.08);
}

.ticket-sortable-item.grouped-ticket-item:hover .retro-card.grouped-card,
.ticket-sortable-item.grouped-ticket-item:focus-within .retro-card.grouped-card {
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(17, 24, 39, 0.1);
}

.retro-card:active {
    cursor: grabbing;
}

.retro-card.locked,
.retro-card.locked:active {
    cursor: default;
}

.retro-page.tomato-targeting .retro-card.tomato-targetable {
    cursor: crosshair;
}

.retro-page.tomato-targeting .retro-card.tomato-targetable:hover {
    border-color: #e73e40;
    box-shadow: 0 0 0 3px rgba(231, 62, 64, 0.18), 0 7px 18px rgba(17, 24, 39, 0.12);
}

.tomato-throw {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 720;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    pointer-events: none;
    font-size: 30px;
    line-height: 1;
    filter: drop-shadow(0 7px 8px rgba(127, 29, 29, 0.24));
    transform: translate(-50%, -50%);
}

.tomato-splat {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 710;
    width: 78px;
    height: 64px;
    pointer-events: none;
    transform: translate(-50%, -50%) scale(0.72) rotate(var(--splat-rotation, -8deg));
    animation: tomato-splat-pop 1.75s ease-out forwards;
}

.tomato-splat::before,
.tomato-splat::after {
    content: "";
    position: absolute;
    inset: 12px 8px;
    border-radius: 46% 54% 51% 49% / 55% 41% 59% 45%;
    background: #d91f2b;
    box-shadow:
        -20px 7px 0 -7px #b80f1c,
        21px -5px 0 -8px #ef4444,
        25px 15px 0 -10px #b80f1c,
        -11px -14px 0 -9px #ef4444,
        5px 25px 0 -12px #9f1239;
}

.tomato-splat::after {
    inset: 18px 22px 24px;
    border-radius: 50%;
    background: rgba(255, 235, 191, 0.62);
    box-shadow:
        -13px 5px 0 -5px rgba(255, 235, 191, 0.7),
        15px -2px 0 -6px rgba(255, 235, 191, 0.62);
}

.retro-card.tomato-impact {
    animation: tomato-card-impact 0.42s ease-out;
}

@keyframes tomato-card-impact {
    0% {
        transform: translateY(-1px) rotate(0deg);
    }

    28% {
        transform: translateY(-2px) rotate(-1.5deg);
    }

    58% {
        transform: translateY(1px) rotate(1deg);
    }

    100% {
        transform: translateY(0) rotate(0deg);
    }
}

@keyframes tomato-splat-pop {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.3) rotate(var(--splat-rotation, -8deg));
    }

    12% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1.08) rotate(var(--splat-rotation, -8deg));
    }

    72% {
        opacity: 1;
    }

    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(1) rotate(var(--splat-rotation, -8deg));
    }
}

.retro-card.blurred {
    border-color: #c6cad5;
    background: #fbfcfe;
}

.retro-card-content {
    color: #151823;
    font-size: 15px;
    line-height: 1.45;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.ticket-content-display {
    position: relative;
    min-height: 22px;
}

.ticket-content-text {
    display: block;
}

.retro-card.blurred .ticket-content-text {
    filter: blur(5px);
    user-select: none;
}

.ticket-edit-input {
    width: 100%;
    height: 120px;
    min-height: 120px;
    resize: none;
    overflow: auto;
    scrollbar-width: none;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    padding: 10px 12px;
    background: #f9fafb;
    color: #111827;
    line-height: 1.5;
}

.ticket-edit-input:focus {
    outline: none;
    border-color: #9ca3af;
    background: white;
    box-shadow: 0 0 0 3px rgba(17, 24, 39, 0.06);
}

.ticket-edit-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 10px;
}

.ticket-edit-save,
.ticket-edit-cancel {
    height: 32px;
    padding: 0 12px;
    border: 1px solid transparent;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.ticket-edit-save {
    border-color: #7156d9;
    background: #7156d9;
    color: white;
}

.ticket-edit-save:hover {
    border-color: #5f47c8;
    background: #5f47c8;
}

.ticket-edit-save:disabled {
    opacity: 0.45;
    cursor: default;
}

.ticket-edit-save:disabled:hover {
    border-color: #7156d9;
    background: #7156d9;
}

.ticket-edit-cancel {
    border-color: #d6dae5;
    background: white;
    color: #151823;
}

.ticket-edit-cancel:hover {
    border-color: #c7ccd8;
    background: #f4f5f8;
}

.retro-card-author {
    margin-top: 14px;
    color: #667085;
    font-size: 11px;
    font-weight: 500;
    overflow-wrap: anywhere;
}

.retro-card-divider {
    height: 1px;
    margin: 10px 0 12px;
    background: #e7eaf0;
}

.retro-card-actions {
    display: flex;
    gap: 8px;
}

.icon-btn {
    min-width: 28px;
    height: 28px;
    padding: 0 7px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    cursor: pointer;
    color: #475169;
    font-size: 13px;
    font-weight: 500;
    transition: 0.15s ease;
}

.icon-btn:disabled {
    opacity: 0.42;
    cursor: default;
}

.icon-btn:disabled:hover {
    background: transparent;
}

.ticket-group-vote-controls .group-vote-btn,
.group-viewer-vote-controls .group-vote-btn {
    background: var(--vote-button-bg);
    color: var(--vote-button-color);
}

.vote-up-btn:hover {
    background: var(--vote-up-hover-bg);
    color: var(--vote-up-hover-color);
}

.vote-up-btn.active {
    background: var(--vote-up-active-bg);
    color: var(--vote-up-active-color);
}

.vote-remove-btn:hover {
    background: var(--vote-remove-hover-bg);
    color: var(--vote-remove-hover-color);
}

.vote-remove-btn.active {
    background: var(--vote-remove-active-bg);
    color: var(--vote-remove-active-color);
}

.ticket-vote-total {
    min-width: 34px;
    height: 28px;
    border: var(--vote-total-border);
    border-radius: var(--vote-total-radius);
    padding: 0 9px;
    background: var(--vote-total-bg);
    color: var(--vote-total-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
}

.edit-ticket-btn:hover {
    background: rgba(17, 24, 39, 0.06);
}

.group-ticket-btn:hover {
    background: #eff6ff;
}

.vote-icon {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vote-count {
    min-width: 1ch;
    color: var(--vote-count-color);
    line-height: 1;
}

.vote-up-btn.active .vote-count,
.vote-remove-btn.active .vote-count {
    color: inherit;
}

.tomato-count {
    min-width: 42px;
    height: 28px;
    padding: 0 8px;
    border-radius: 999px;
    background: #fff1f2;
    color: #be123c;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
}

.add-card-btn {
    position: relative;
    z-index: 5;
    flex: 0 0 auto;
    height: 46px;
    border: 2px dashed #dfe3eb;
    border-radius: 10px;
    background: transparent;
    color: #6b7280;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: 0.15s ease;
}

.ticket-sortable-item.grouped-ticket-item + .add-card-btn,
.ticket-group-header + .add-card-btn {
    margin-top: 8px;
}

.add-card-btn:hover {
    background: white;
    border-color: #cfd5df;
}

.ticket-group-drop-zone {
    position: relative;
    z-index: 5;
    flex: 0 0 auto;
    min-height: 16px;
    border-radius: 999px;
}

.ticket-group-drop-zone::after {
    content: "";
    display: block;
    height: 3px;
    margin: 6px 8px;
    border-radius: 999px;
    background: transparent;
    transition: background-color 0.15s ease;
}

.ticket-group-drop-zone:hover::after,
.mobile-sort-active .ticket-group-drop-zone::after {
    background: #b8c7ea;
}

.retro-card-list > .ticket-before-group-drop-zone:first-child {
    height: 0;
    min-height: 0;
    margin-bottom: -10px;
}

.retro-card-list > .ticket-before-group-drop-zone:first-child::after {
    position: absolute;
    inset: 0 8px auto;
    margin: 0;
}

.retro-add-card {
    border: 1px solid #d8dde7;
    border-radius: 10px;
    padding: 14px;
    background: white;
}

.ticket-add-input {
    height: 120px;
    min-height: 120px;
    resize: none;
    overflow: auto;
    scrollbar-width: none;
    line-height: 1.45;
}

.ticket-edit-input::-webkit-scrollbar,
.ticket-add-input::-webkit-scrollbar {
    display: none;
}

.anonymous-ticket-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    color: #475169;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}

.anonymous-ticket-toggle input {
    width: 16px;
    height: 16px;
    accent-color: #7156d9;
}

.retro-add-actions {
    display: flex;
    gap: 8px;
    margin-top: 12px;
}

.insert-line {
    height: 4px;
    border-radius: 999px;
    background: #6f55d9;
    margin: 4px 0 8px;
}

.group-drop-target-label {
    position: absolute;
    inset: -6px -6px auto auto;
    z-index: 12;
    border: 1px solid rgba(113, 86, 217, 0.34);
    border-radius: 999px;
    padding: 5px 9px;
    background: #ffffff;
    color: #5f47c8;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    box-shadow: 0 8px 18px rgba(17, 24, 39, 0.12);
    pointer-events: none;
}

.group-drop-target-label + .retro-card {
    border-color: #7156d9;
    box-shadow: 0 0 0 3px rgba(113, 86, 217, 0.18), 0 10px 22px rgba(17, 24, 39, 0.14);
}

/* Utility menu */

.utility-menu {
    --utility-panel-bg: rgba(255, 255, 255, 0.96);
    --utility-panel-border: #d7dbe5;
    --utility-panel-text: #151823;
    --utility-muted-text: #667085;
    --utility-panel-shadow: 0 16px 34px rgba(17, 24, 39, 0.18);
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 170;
    width: 58px;
    height: 58px;
    user-select: none;
    pointer-events: none;
}

.utility-menu-toggle,
.utility-menu-item {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border: 1px solid #d7dbe5;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.96);
    color: #151823;
    box-shadow: 0 12px 28px rgba(17, 24, 39, 0.18);
    cursor: pointer;
    pointer-events: auto;
    transition: transform 0.18s ease, opacity 0.18s ease, background-color 0.18s ease, border-color 0.18s ease;
    backdrop-filter: blur(10px);
}

.utility-menu-toggle {
    position: absolute;
    inset: auto 0 0 auto;
    background: #7156d9;
    color: white;
    border-color: #7156d9;
}

.utility-menu.open .utility-menu-toggle {
    transform: rotate(90deg);
}

.utility-menu-toggle svg,
.utility-menu-item svg {
    width: 23px;
    height: 23px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.utility-menu-toggle svg {
    fill: currentColor;
    stroke: none;
}

.utility-menu-options {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.utility-menu-item {
    position: absolute;
    right: 2px;
    bottom: 2px;
    opacity: 0;
    transform: translate(0, 0) scale(0.72);
    pointer-events: none;
}

.utility-menu.open .utility-menu-item {
    opacity: 1;
    pointer-events: auto;
}

.utility-menu-item.active {
    border-color: #7156d9;
    box-shadow: 0 0 0 3px rgba(113, 86, 217, 0.18), 0 12px 28px rgba(17, 24, 39, 0.18);
}

.utility-menu.has-selection .utility-menu-item.active {
    opacity: 1;
    pointer-events: auto;
    transform: translate(-64px, 0) scale(1);
}

.utility-menu.open .utility-menu-item-dice {
    transform: translate(-102px, -4px) scale(1);
}

.utility-menu.open .utility-menu-item-tomato {
    transform: translate(-96px, -64px) scale(1);
}

.utility-menu.open .utility-menu-item-theme {
    transform: translate(-52px, -106px) scale(1);
}

.utility-menu.open .utility-menu-item-share {
    transform: translate(0, -132px) scale(1);
}

.utility-menu-item:hover,
.utility-menu:not(.open) .utility-menu-toggle:hover {
    transform: translateY(-1px);
}

.utility-menu.open .utility-menu-toggle:hover {
    transform: rotate(90deg) translateX(-1px);
}

.utility-menu.open .utility-menu-item-dice:hover,
.utility-menu.open .utility-menu-item-dice:focus-visible {
    transform: translate(-102px, -5px) scale(1);
}

.utility-menu.open .utility-menu-item-tomato:hover,
.utility-menu.open .utility-menu-item-tomato:focus-visible {
    transform: translate(-96px, -65px) scale(1);
}

.utility-menu.open .utility-menu-item-theme:hover,
.utility-menu.open .utility-menu-item-theme:focus-visible {
    transform: translate(-52px, -107px) scale(1);
}

.utility-menu.open .utility-menu-item-share:hover,
.utility-menu.open .utility-menu-item-share:focus-visible {
    transform: translate(0, -133px) scale(1);
}

.utility-menu.has-selection .utility-menu-item.active:hover,
.utility-menu.has-selection .utility-menu-item.active:focus-visible {
    transform: translate(-65px, -1px) scale(1);
}

.utility-menu-item-dice span,
.utility-menu-item-tomato span {
    font-size: 27px;
    line-height: 1;
}

.utility-menu-item::before,
.utility-menu-item::after {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.14s ease, transform 0.16s ease;
}

.utility-menu-item::before {
    content: "";
    right: calc(100% + 4px);
    top: 50%;
    z-index: 1;
    width: 10px;
    height: 10px;
    border-top: 1px solid var(--utility-panel-border);
    border-right: 1px solid var(--utility-panel-border);
    background: var(--utility-panel-bg);
    transform: translate(6px, -50%) rotate(45deg) scale(0.8);
}

.utility-menu-item::after {
    content: attr(title);
    right: calc(100% + 10px);
    top: 50%;
    z-index: 2;
    min-width: max-content;
    max-width: 120px;
    border: 1px solid var(--utility-panel-border);
    border-radius: 8px;
    padding: 7px 9px;
    background: var(--utility-panel-bg);
    color: inherit;
    box-shadow: var(--utility-panel-shadow);
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    transform: translate(6px, -50%) scale(0.96);
    backdrop-filter: blur(10px);
}

.utility-menu.open .utility-menu-item:hover::before,
.utility-menu.open .utility-menu-item:hover::after,
.utility-menu.open .utility-menu-item:focus-visible::before,
.utility-menu.open .utility-menu-item:focus-visible::after {
    opacity: 1;
}

.utility-menu.open .utility-menu-item:hover::before,
.utility-menu.open .utility-menu-item:focus-visible::before {
    transform: translate(0, -50%) rotate(45deg) scale(1);
}

.utility-menu.open .utility-menu-item:hover::after,
.utility-menu.open .utility-menu-item:focus-visible::after {
    transform: translate(0, -50%) scale(1);
}

.utility-selected-bubble {
    position: absolute;
    right: 64px;
    bottom: 0;
    z-index: 4;
    width: 320px;
    border: 1px solid var(--utility-panel-border);
    border-radius: 14px;
    padding: 12px;
    background: var(--utility-panel-bg);
    color: var(--utility-panel-text);
    box-shadow: var(--utility-panel-shadow);
    pointer-events: auto;
    overflow: visible;
    backdrop-filter: blur(10px);
}

.utility-selected-bubble::before {
    content: "";
    position: absolute;
    right: -6px;
    bottom: 22px;
    width: 12px;
    height: 12px;
    border-top: 1px solid var(--utility-panel-border);
    border-right: 1px solid var(--utility-panel-border);
    background: var(--utility-panel-bg);
    transform: rotate(45deg);
}

.utility-selected-header {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.utility-selected-header h3 {
    margin: 0;
    font-size: 15px;
    font-weight: 800;
}

.utility-selected-body {
    position: relative;
    z-index: 1;
    max-height: min(374px, calc(100vh - 188px));
    overflow: auto;
}

.utility-selected-bubble-dice .utility-selected-body {
    max-height: none;
    overflow: visible;
}

.utility-selected-bubble-tomato .utility-selected-body {
    max-height: none;
    overflow: visible;
}

.utility-share-panel {
    display: grid;
    gap: 10px;
}

.utility-share-panel p {
    margin: 0;
    color: var(--utility-muted-text);
    font-size: 13px;
    line-height: 1.35;
}

.utility-tomato-panel {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 10px;
}

.utility-tomato-preview {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(231, 62, 64, 0.12);
    font-size: 28px;
}

.utility-tomato-panel p {
    margin: 0;
    color: var(--utility-muted-text);
    font-size: 13px;
    line-height: 1.35;
}

.utility-theme-list {
    max-height: 332px;
    overflow: auto;
    padding-right: 2px;
}

.utility-selected-bubble .theme-option-card {
    grid-template-columns: 54px minmax(0, 1fr);
    min-height: 62px;
    gap: 10px;
    padding: 8px;
}

.utility-selected-bubble .theme-option-preview {
    height: 42px;
    border-radius: 8px;
}

.utility-selected-bubble .theme-option-copy strong {
    font-size: 13px;
}

.utility-selected-bubble .theme-option-copy small {
    font-size: 11px;
}

.utility-selected-bubble .theme-active-mark {
    grid-column: 2;
    justify-self: start;
}

.retro-page .utility-selected-bubble .dice-widget.utility-dice-widget {
    position: static;
    width: 100%;
    z-index: auto;
    display: grid;
    gap: 10px;
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
    color: inherit;
    box-shadow: none;
    backdrop-filter: none;
}

/* Dice widget */

.dice-widget {
    position: fixed;
    right: 22px;
    bottom: 104px;
    z-index: 160;
    width: 190px;
    display: grid;
    gap: 10px;
    border: 1px solid #d7dbe5;
    border-radius: 14px;
    padding: 10px;
    background: rgba(255, 255, 255, 0.94);
    color: #151823;
    box-shadow: 0 16px 34px rgba(17, 24, 39, 0.18);
    user-select: none;
    backdrop-filter: blur(10px);
}

.dice-widget-handle {
    height: 28px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    border-radius: 9px;
    padding: 0 8px;
    background: #eef0f5;
    color: #475169;
    font-size: 12px;
    font-weight: 800;
    cursor: grab;
    touch-action: none;
}

.dice-widget-handle > span:first-child {
    min-width: 0;
}

.dice-widget.dragging .dice-widget-handle {
    cursor: grabbing;
}

.dice-total {
    min-width: 30px;
    border-radius: 999px;
    padding: 3px 7px;
    background: #7156d9;
    color: white;
    text-align: center;
}

.dice-roll-btn {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    border: 0;
    padding: 0;
    background: transparent;
    cursor: pointer;
}

.dice-roll-btn:disabled {
    cursor: wait;
    opacity: 1;
}

.dice-face {
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    border: 1px solid #d8dde7;
    border-radius: 10px;
    background: white;
    color: #151823;
    font-size: 34px;
    line-height: 1;
    box-shadow: inset 0 -3px 0 rgba(17, 24, 39, 0.05);
}

.dice-widget.rolling .dice-face {
    animation: dice-tumble 0.16s ease-in-out infinite alternate;
}

.dice-widget.rolling .dice-face:nth-child(2) {
    animation-delay: 0.04s;
}

.dice-widget.rolling .dice-face:nth-child(3) {
    animation-delay: 0.08s;
}

@keyframes dice-tumble {
    from {
        transform: translateY(0) rotate(-4deg);
    }

    to {
        transform: translateY(-3px) rotate(4deg);
    }
}

.dice-confetti-burst {
    position: fixed;
    z-index: 700;
    width: 1px;
    height: 1px;
    pointer-events: none;
}

.dice-confetti-burst span {
    position: absolute;
    left: 0;
    top: 0;
    width: 7px;
    height: 11px;
    border-radius: 2px;
    background: var(--confetti-color, #ffd166);
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.72) rotate(0deg);
    animation: dice-confetti-spray 0.92s cubic-bezier(0.1, 0.78, 0.22, 1) forwards;
    animation-delay: var(--confetti-delay, 0ms);
}

.dice-confetti-burst span:nth-child(3n) {
    width: 9px;
    height: 9px;
    border-radius: 50%;
}

.dice-confetti-burst span:nth-child(4n) {
    width: 11px;
    height: 5px;
}

@keyframes dice-confetti-spray {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.72) rotate(0deg);
    }

    12% {
        opacity: 1;
    }

    68% {
        opacity: 1;
    }

    100% {
        opacity: 0;
        transform:
            translate(calc(-50% + var(--confetti-x, 0px)), calc(-50% + var(--confetti-y, -80px)))
            scale(1)
            rotate(var(--confetti-rotate, 240deg));
    }
}

/* Modals */

.share-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(17, 24, 39, 0.42);
}

.share-modal {
    width: min(100%, 520px);
    border-radius: 18px;
    border: 1px solid #e5e7eb;
    background: white;
    box-shadow: 0 24px 70px rgba(17, 24, 39, 0.22);
    padding: 22px;
}

.share-modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.share-modal-header h3 {
    margin: 0;
    font-size: 20px;
    font-weight: 500;
}

.share-modal-header p {
    margin: 6px 0 0;
    color: #6b7280;
    font-size: 14px;
}

.share-modal-close {
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
    border: none;
    border-radius: 10px;
    background: #f3f4f6;
    color: #374151;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}

.share-modal-close:hover {
    background: #e5e7eb;
}

.group-viewer-modal {
    width: min(1120px, 100%);
    max-height: calc(100vh - 48px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.group-viewer-header {
    flex: 0 0 auto;
}

.group-viewer-vote-controls {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 12px;
    border-radius: var(--vote-total-radius);
    padding: 4px;
    background: var(--vote-controls-bg);
    box-shadow: var(--vote-controls-shadow);
}

.group-viewer-vote-total {
    width: fit-content;
    margin-top: 12px;
    border: var(--vote-total-border);
    border-radius: var(--vote-total-radius);
    padding: 7px 10px;
    background: var(--vote-total-bg);
    color: var(--vote-total-color);
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
}

.group-viewer-grid {
    min-height: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
    overflow: auto;
    padding: 2px 2px 4px;
}

.group-viewer-ticket {
    position: relative;
    min-height: 190px;
    border: 1px solid #d8dde7;
    border-radius: 14px;
    padding: 16px;
    background: #f9fafb;
    display: flex;
    flex-direction: column;
    gap: 12px;
    box-shadow: 0 3px 10px rgba(17, 24, 39, 0.06);
}

.group-viewer-ticket-content {
    flex: 1;
    color: #151823;
    font-size: 15px;
    line-height: 1.5;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.group-viewer-ticket.blurred .ticket-content-text {
    filter: blur(5px);
    user-select: none;
}

.group-viewer-ticket-meta,
.group-viewer-ticket-stats {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: #667085;
    font-size: 12px;
    font-weight: 600;
}

.group-viewer-ticket-meta {
    border-top: 1px solid #e7eaf0;
    padding-top: 10px;
}

.group-viewer-ticket-stats {
    justify-content: flex-start;
    flex-wrap: wrap;
}

.group-viewer-ticket-stats span {
    border-radius: 999px;
    padding: 5px 8px;
    background: #ffffff;
    color: #475169;
    line-height: 1;
}

.share-link-row,
.column-create-row,
.share-invite-row {
    display: flex;
    gap: 10px;
}

.share-invite-row {
    margin-top: 14px;
}

@media (max-width: 640px) {
    .group-viewer-modal {
        max-height: calc(100vh - 24px);
        padding: 18px;
    }

    .group-viewer-grid {
        grid-template-columns: 1fr;
    }
}

.column-create-options {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.column-color-options,
.column-icon-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.column-color-swatch,
.column-icon-choice {
    width: 34px;
    height: 34px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.column-color-swatch {
    padding: 0;
}

.column-icon-choice {
    display: flex;
    align-items: center;
    justify-content: center;
    background: white;
    font-size: 18px;
    line-height: 1;
}

.column-color-swatch:hover,
.column-icon-choice:hover {
    transform: translateY(-1px);
}

.column-color-swatch.active,
.column-icon-choice.active {
    border-color: #111827;
    box-shadow: 0 0 0 2px white, 0 0 0 4px rgba(17, 24, 39, 0.18);
}

.share-link-input {
    min-width: 0;
    flex: 1;
    height: 42px;
    border: 1px solid #d1d5db;
    border-radius: 12px;
    padding: 0 12px;
    color: #111827;
    background: #f9fafb;
    font-size: 14px;
}

.share-copy-btn {
    height: 42px;
    min-width: 84px;
    border: none;
    border-radius: 12px;
    background: #111827;
    color: white;
    font-weight: 500;
    cursor: pointer;
}

.share-copy-btn:hover {
    opacity: 0.95;
}

.share-copy-btn:disabled {
    opacity: 0.45;
    cursor: default;
}

.group-modal .share-invite-row .share-copy-btn,
.group-create-btn {
    background: #7156d9;
}

.group-modal .share-invite-row .share-copy-btn:hover,
.group-create-btn:hover {
    background: #5f47c8;
}

.column-manager-list {
    display: grid;
    gap: 8px;
    padding: 0;
    margin: 18px 0 0;
    list-style: none;
}

.column-manager-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #f9fafb;
}

.column-manager-meta {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.column-manager-meta strong,
.column-manager-meta small {
    display: block;
}

.column-manager-meta strong {
    color: #111827;
    font-size: 14px;
    font-weight: 500;
    overflow-wrap: anywhere;
}

.column-manager-meta small {
    margin-top: 1px;
    color: #6b7280;
    font-size: 12px;
    font-weight: 500;
}

.column-manager-icon {
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    font-size: 18px;
}

.column-remove-btn {
    min-width: 74px;
    height: 34px;
    border: 1px solid #fecaca;
    border-radius: 10px;
    background: #fff7f7;
    color: #b91c1c;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}

.column-remove-btn:disabled {
    opacity: 0.42;
    cursor: default;
}

.complete-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.complete-cancel-btn,
.complete-confirm-btn {
    height: 40px;
    border-radius: 12px;
    padding: 0 14px;
    font-weight: 500;
    cursor: pointer;
}

.complete-cancel-btn {
    border: 1px solid #d1d5db;
    background: white;
    color: #374151;
}

.complete-confirm-btn {
    border: 1px solid #7156d9;
    background: #7156d9;
    color: white;
}

.share-error {
    margin: 10px 0 0;
    color: #b91c1c;
    font-size: 13px;
    font-weight: 500;
}

.share-status {
    margin: 10px 0 0;
    color: #047857;
    font-size: 13px;
    font-weight: 500;
}

.share-empty {
    margin: 16px 0 0;
    color: #6b7280;
    font-size: 13px;
    font-weight: 500;
}

.share-user-list {
    display: grid;
    gap: 8px;
    padding: 0;
    margin: 16px 0 0;
    list-style: none;
}

.share-user-list li {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #f9fafb;
}

.share-user-list span {
    min-width: 0;
    overflow: hidden;
    color: #111827;
    font-size: 14px;
    font-weight: 500;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.share-user-list button {
    border: none;
    background: transparent;
    color: #b91c1c;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}

.group-option-list {
    display: grid;
    gap: 8px;
    padding: 0;
    margin: 0 0 16px;
    list-style: none;
}

.group-option-btn {
    width: 100%;
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid #d8dde7;
    border-radius: 10px;
    padding: 9px 12px;
    background: #f9fafb;
    color: #111827;
    text-align: left;
    cursor: pointer;
}

.group-option-btn span {
    min-width: 0;
    font-size: 14px;
    font-weight: 500;
    overflow-wrap: anywhere;
}

.group-option-btn small {
    flex: 0 0 auto;
    color: #667085;
    font-size: 12px;
    font-weight: 500;
}

.group-option-btn:hover,
.group-option-btn.active {
    border-color: #7156d9;
    background: #f1efff;
}

.group-option-btn:disabled {
    cursor: default;
}

.ungroup-ticket-btn {
    width: 100%;
    height: 38px;
    margin-top: 14px;
    border: 1px solid #d8dde7;
    border-radius: 10px;
    background: white;
    color: #475169;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}

/* Themes */

.theme-option-list {
    display: grid;
    gap: 10px;
}

.theme-option-card {
    width: 100%;
    min-height: 74px;
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    border: 1px solid #d8dde7;
    border-radius: 12px;
    padding: 10px 12px;
    background: #f9fafb;
    color: #111827;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.theme-option-card:hover {
    transform: translateY(-1px);
    border-color: #7156d9;
    box-shadow: 0 6px 16px rgba(17, 24, 39, 0.08);
}

.theme-option-card.active,
.theme-option-card:disabled {
    cursor: default;
    border-color: #7156d9;
    background: #f1efff;
    transform: none;
}

.theme-option-preview {
    height: 52px;
    display: grid;
    align-content: center;
    gap: 5px;
    border: 1px solid #d8dde7;
    border-radius: 10px;
    padding: 8px;
    overflow: hidden;
}

.theme-option-preview span {
    height: 6px;
    border-radius: 999px;
}

.theme-preview-standard {
    background: #f4f5f8;
}

.theme-preview-standard span {
    background: #7156d9;
}

.theme-preview-standard span:nth-child(2) {
    width: 72%;
    background: #28c5b0;
}

.theme-preview-standard span:nth-child(3) {
    width: 48%;
    background: #e8a13a;
}

.theme-preview-macintosh {
    border-color: #111111;
    border-radius: 0;
    background:
        repeating-linear-gradient(
            135deg,
            #ffffff 0,
            #ffffff 2px,
            #d7d7d7 2px,
            #d7d7d7 4px
        );
    box-shadow: inset 0 0 0 2px #ffffff, inset 0 0 0 3px #111111;
}

.theme-preview-macintosh span {
    border-radius: 0;
    background: #111111;
}

.theme-preview-macintosh span:nth-child(2) {
    width: 70%;
    background: #777777;
}

.theme-preview-macintosh span:nth-child(3) {
    width: 46%;
    background: #111111;
}

.theme-preview-dark {
    border-color: #3a3f46;
    background:
        linear-gradient(135deg, rgba(88, 215, 198, 0.12), transparent 46%),
        #16181c;
}

.theme-preview-dark span {
    background: #58d7c6;
}

.theme-preview-dark span:nth-child(2) {
    width: 66%;
    background: #f2c14e;
}

.theme-preview-dark span:nth-child(3) {
    width: 44%;
    background: #a78bfa;
}

.theme-preview-matrix {
    border-color: rgba(39, 255, 116, 0.62);
    background:
        linear-gradient(135deg, rgba(24, 255, 105, 0.1), transparent 48%),
        #041209;
    box-shadow: inset 0 0 18px rgba(39, 255, 116, 0.18);
}

.theme-preview-matrix span {
    background: #36ff76;
    box-shadow: 0 0 8px rgba(54, 255, 118, 0.62);
}

.theme-preview-matrix span:nth-child(2) {
    width: 64%;
}

.theme-preview-matrix span:nth-child(3) {
    width: 38%;
}

.theme-preview-dos {
    border-color: #00ffff;
    border-radius: 0;
    background: #000080;
    box-shadow: inset 2px 2px 0 #ffffff, inset -2px -2px 0 #000000;
}

.theme-preview-dos span {
    border-radius: 0;
    background: #ffff00;
}

.theme-preview-dos span:nth-child(2) {
    width: 70%;
    background: #00ffff;
}

.theme-preview-dos span:nth-child(3) {
    width: 48%;
    background: #c0c0c0;
}

.theme-option-copy {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.theme-option-copy strong {
    color: #111827;
    font-size: 15px;
    font-weight: 700;
}

.theme-option-copy small {
    color: #667085;
    font-size: 13px;
    line-height: 1.35;
}

.theme-active-mark {
    height: 26px;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0 10px;
    background: #7156d9;
    color: white;
    font-size: 12px;
    font-weight: 700;
}

.retro-page.theme-dark {
    --vote-meter-border: #343a42;
    --vote-meter-bg: #1b1f24;
    --vote-meter-text: #e8edf2;
    --vote-meter-muted: #a9b1bb;
    --vote-meter-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
    --vote-dot-available-bg: linear-gradient(135deg, #58d7c6, #f2c14e);
    --vote-dot-available-border: rgba(88, 215, 198, 0.5);
    --vote-dot-available-shadow: 0 0 0 2px rgba(88, 215, 198, 0.12);
    --vote-dot-used-bg: #242930;
    --vote-dot-used-border: #4a535e;
    --vote-controls-bg: rgba(88, 215, 198, 0.1);
    --vote-controls-shadow: inset 0 0 0 1px rgba(88, 215, 198, 0.2);
    --vote-button-bg: rgba(17, 19, 22, 0.72);
    --vote-button-color: #d2dae3;
    --vote-count-color: #9df4e8;
    --vote-up-hover-bg: rgba(88, 215, 198, 0.12);
    --vote-up-hover-color: #9df4e8;
    --vote-up-active-bg: rgba(88, 215, 198, 0.2);
    --vote-up-active-color: #9df4e8;
    --vote-remove-hover-bg: rgba(255, 107, 122, 0.12);
    --vote-remove-hover-color: #ffb0bb;
    --vote-remove-active-bg: rgba(255, 107, 122, 0.18);
    --vote-remove-active-color: #ffb0bb;
    --vote-total-bg: rgba(88, 215, 198, 0.16);
    --vote-total-color: #7eeadd;
    background:
        radial-gradient(circle at 18% 12%, rgba(88, 215, 198, 0.1), transparent 28%),
        radial-gradient(circle at 82% 0%, rgba(167, 139, 250, 0.09), transparent 24%),
        #111316;
    color: #e8edf2;
}

.retro-page.theme-dark .retro-topbar {
    border-bottom: 1px solid #2b3036;
    background: rgba(17, 19, 22, 0.94);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.22);
    backdrop-filter: blur(10px);
}

.retro-page.theme-dark .retro-title,
.retro-page.theme-dark .retro-column-title,
.retro-page.theme-dark .retro-card-content,
.retro-page.theme-dark .ticket-group-title span,
.retro-page.theme-dark .share-modal-header h3,
.retro-page.theme-dark .theme-option-copy strong,
.retro-page.theme-dark .column-manager-meta strong,
.retro-page.theme-dark .group-option-btn span,
.retro-page.theme-dark .share-user-list span {
    color: #e8edf2;
}

.retro-page.theme-dark .retro-column-count,
.retro-page.theme-dark .retro-card-author,
.retro-page.theme-dark .ticket-group-title small,
.retro-page.theme-dark .share-modal-header p,
.retro-page.theme-dark .theme-option-copy small,
.retro-page.theme-dark .column-manager-meta small,
.retro-page.theme-dark .group-option-btn small,
.retro-page.theme-dark .share-empty {
    color: #a9b1bb;
}

.retro-page.theme-dark .presence-avatar {
    border-color: #111316;
    background: #58d7c6;
    color: #0b1113;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.22);
}

.retro-page.theme-dark .presence-avatar:nth-child(2n) {
    background: #f2c14e;
}

.retro-page.theme-dark .presence-avatar:nth-child(3n) {
    background: #a78bfa;
}

.retro-page.theme-dark .presence-more {
    background: #2a2f36;
    color: #e8edf2;
}

.retro-page.theme-dark .back-btn,
.retro-page.theme-dark .timer-icon-btn {
    color: #e8edf2;
}

.retro-page.theme-dark .back-btn:hover,
.retro-page.theme-dark .timer-icon-btn:hover,
.retro-page.theme-dark .icon-btn:hover,
.retro-page.theme-dark .add-card-btn:hover {
    background: rgba(232, 237, 242, 0.08);
}

.retro-page.theme-dark .toolbar-btn,
.retro-page.theme-dark .timer-control,
.retro-page.theme-dark .vote-meter,
.retro-page.theme-dark .complete-btn {
    border-color: #343a42;
    background: #1b1f24;
    color: #e8edf2;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
}

.retro-page.theme-dark .toolbar-btn:hover {
    border-color: #4a535e;
}

.retro-page.theme-dark .blur-toolbar-btn.active,
.retro-page.theme-dark .timer-duration-btn.active,
.retro-page.theme-dark .complete-btn {
    border-color: #58d7c6;
    background: #58d7c6;
    color: #071312;
}

.retro-page.theme-dark .complete-btn:disabled {
    border-color: #2f353c;
    background: #20242a;
    color: #7d8794;
}

.retro-page.theme-dark .timer-duration-btn {
    color: #a9b1bb;
}

.retro-page.theme-dark .timer-pill {
    background: #262126;
    color: #f2c14e;
}

.retro-page.theme-dark .timer-pill.finished {
    background: rgba(255, 107, 122, 0.16);
    color: #ff8f9e;
}

.retro-page.theme-dark .retro-board {
    background: transparent;
}

.retro-page.theme-dark .retro-column-header,
.retro-page.theme-dark .ticket-group-header,
.retro-page.theme-dark .retro-card,
.retro-page.theme-dark .retro-card.grouped-card,
.retro-page.theme-dark .retro-card.grouped-card:not(.stack-front),
.retro-page.theme-dark .retro-card.grouped-card.stack-front,
.retro-page.theme-dark .retro-add-card {
    border-color: #343a42;
    background: #1b1f24;
    color: #e8edf2;
    box-shadow: 0 5px 18px rgba(0, 0, 0, 0.2);
}

.retro-page.theme-dark .retro-card:hover,
.retro-page.theme-dark .ticket-sortable-item.grouped-ticket-item:hover .retro-card.grouped-card,
.retro-page.theme-dark .ticket-sortable-item.grouped-ticket-item:focus-within .retro-card.grouped-card {
    border-color: #4a535e;
    box-shadow: 0 9px 24px rgba(0, 0, 0, 0.28);
}

.retro-page.theme-dark .retro-column-header-icon,
.retro-page.theme-dark .column-manager-icon {
    background: rgba(88, 215, 198, 0.15);
    color: #9df4e8;
}

.retro-page.theme-dark .retro-card-divider {
    background: #303640;
}

.retro-page.theme-dark .icon-btn {
    color: #b7c0ca;
}

.retro-page.theme-dark .vote-up-btn.active {
    background: rgba(88, 215, 198, 0.16);
    color: #7eeadd;
}

.retro-page.theme-dark .ticket-group-vote-total,
.retro-page.theme-dark .ticket-vote-total,
.retro-page.theme-dark .group-viewer-vote-total {
    background: rgba(88, 215, 198, 0.16);
    color: #7eeadd;
}

.retro-page.theme-dark .vote-remove-btn.active {
    background: rgba(255, 107, 122, 0.16);
    color: #ff8f9e;
}

.retro-page.theme-dark .ticket-sortable-item.grouped-ticket-item::before,
.retro-page.theme-dark .ticket-group-drop-zone:hover::after,
.retro-page.theme-dark .retro-board.mobile-sort-active .ticket-group-drop-zone::after,
.retro-page.theme-dark .insert-line {
    background: #58d7c6;
}

.retro-page.theme-dark .add-card-btn,
.retro-page.theme-dark .retro-card-list:empty::after {
    border-color: #3a414a;
    color: #a9b1bb;
}

.retro-page.theme-dark .share-modal {
    border-color: #343a42;
    background: #181c21;
    color: #e8edf2;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.44);
}

.retro-page.theme-dark .group-viewer-ticket {
    border-color: #343a42;
    background: #1f242a;
}

.retro-page.theme-dark .group-viewer-ticket-content {
    color: #e8edf2;
}

.retro-page.theme-dark .group-viewer-ticket-meta {
    border-color: #303640;
}

.retro-page.theme-dark .group-viewer-ticket-stats span {
    background: #242930;
    color: #b7c0ca;
}

.retro-page.theme-dark .share-modal-backdrop {
    background: rgba(4, 6, 8, 0.72);
}

.retro-page.theme-dark .share-modal-close,
.retro-page.theme-dark .ticket-group-action,
.retro-page.theme-dark .complete-cancel-btn,
.retro-page.theme-dark .ungroup-ticket-btn,
.retro-page.theme-dark .column-icon-choice,
.retro-page.theme-dark .ticket-edit-cancel,
.retro-page.theme-dark .retro-add-actions .btn-light {
    border-color: #343a42;
    background: #242930;
    color: #e8edf2;
}

.retro-page.theme-dark .share-modal-close:hover,
.retro-page.theme-dark .ticket-group-action:hover,
.retro-page.theme-dark .complete-cancel-btn:hover,
.retro-page.theme-dark .ticket-edit-cancel:hover,
.retro-page.theme-dark .retro-add-actions .btn-light:hover {
    border-color: #4a535e;
    background: #2b3139;
}

.retro-page.theme-dark .share-copy-btn,
.retro-page.theme-dark .ticket-edit-save,
.retro-page.theme-dark .complete-confirm-btn,
.retro-page.theme-dark .group-create-btn,
.retro-page.theme-dark .retro-add-actions .btn-primary {
    border-color: #58d7c6;
    background: #58d7c6;
    color: #071312;
}

.retro-page.theme-dark .share-link-input,
.retro-page.theme-dark .ticket-edit-input,
.retro-page.theme-dark .ticket-add-input,
.retro-page.theme-dark .ticket-group-title-input {
    border-color: #3a414a;
    background: #111316;
    color: #e8edf2;
}

.retro-page.theme-dark .ticket-edit-input:focus,
.retro-page.theme-dark .ticket-add-input:focus,
.retro-page.theme-dark .ticket-group-title-input:focus,
.retro-page.theme-dark .share-link-input:focus {
    outline: none;
    border-color: #58d7c6;
    background: #111316;
    box-shadow: 0 0 0 3px rgba(88, 215, 198, 0.16);
}

.retro-page.theme-dark .share-link-input::placeholder,
.retro-page.theme-dark .ticket-edit-input::placeholder,
.retro-page.theme-dark .ticket-add-input::placeholder,
.retro-page.theme-dark .ticket-group-title-input::placeholder {
    color: #717b87;
}

.retro-page.theme-dark .column-manager-item,
.retro-page.theme-dark .share-user-list li,
.retro-page.theme-dark .group-option-btn,
.retro-page.theme-dark .theme-option-card {
    border-color: #343a42;
    background: #1f242a;
    color: #e8edf2;
}

.retro-page.theme-dark .group-option-btn:hover,
.retro-page.theme-dark .theme-option-card:hover {
    border-color: #58d7c6;
    background: #242b31;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.24);
}

.retro-page.theme-dark .theme-option-card.active,
.retro-page.theme-dark .theme-option-card:disabled,
.retro-page.theme-dark .group-option-btn.active {
    border-color: #58d7c6;
    background: rgba(88, 215, 198, 0.12);
}

.retro-page.theme-dark .theme-active-mark {
    background: #58d7c6;
    color: #071312;
}

.retro-page.theme-dark .share-user-list button,
.retro-page.theme-dark .ticket-group-action.danger,
.retro-page.theme-dark .column-remove-btn {
    color: #ff8f9e;
}

.retro-page.theme-dark .column-color-swatch,
.retro-page.theme-dark .column-icon-choice {
    border-color: #3a414a;
}

.retro-page.theme-dark .column-color-swatch.active,
.retro-page.theme-dark .column-icon-choice.active {
    border-color: #58d7c6;
    box-shadow: 0 0 0 2px #181c21, 0 0 0 4px rgba(88, 215, 198, 0.62);
}

.retro-page.theme-dark .anonymous-ticket-toggle {
    color: #a9b1bb;
}

.retro-page.theme-dark .anonymous-ticket-toggle input {
    accent-color: #58d7c6;
}

.retro-page.theme-dark .utility-menu {
    --utility-panel-bg: rgba(24, 28, 33, 0.96);
    --utility-panel-border: #343a42;
    --utility-panel-text: #e8edf2;
    --utility-muted-text: #a9b1bb;
    --utility-panel-shadow: 0 18px 42px rgba(0, 0, 0, 0.4);
}

.retro-page.theme-dark .utility-menu-item {
    border-color: #343a42;
    background: rgba(24, 28, 33, 0.96);
    color: #e8edf2;
}

.retro-page.theme-dark .utility-menu-toggle {
    border-color: #58d7c6;
    background: #58d7c6;
    color: #071312;
}

.retro-page.theme-dark .utility-menu-item.active {
    border-color: #58d7c6;
    box-shadow: 0 0 0 3px rgba(88, 215, 198, 0.18), 0 18px 42px rgba(0, 0, 0, 0.34);
}

.retro-page.theme-dark .dice-widget {
    border-color: #343a42;
    background: rgba(24, 28, 33, 0.94);
    color: #e8edf2;
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.4);
}

.retro-page.theme-dark .dice-widget-handle {
    background: #242930;
    color: #a9b1bb;
}

.retro-page.theme-dark .dice-total {
    background: #58d7c6;
    color: #071312;
}

.retro-page.theme-dark .dice-face {
    border-color: #343a42;
    background: #111316;
    color: #e8edf2;
}

.retro-page.theme-macintosh {
    --vote-meter-border: #111111;
    --vote-meter-bg: #ffffff;
    --vote-meter-text: #111111;
    --vote-meter-muted: #111111;
    --vote-meter-shadow: 2px 2px 0 rgba(0, 0, 0, 0.34);
    --vote-dot-available-bg: #111111;
    --vote-dot-available-border: #111111;
    --vote-dot-available-shadow: none;
    --vote-dot-used-bg: #ffffff;
    --vote-dot-used-border: #111111;
    --vote-dot-radius: 0;
    --vote-controls-bg: #ffffff;
    --vote-controls-shadow: inset 0 0 0 1px #111111;
    --vote-button-bg: #ffffff;
    --vote-button-color: #111111;
    --vote-count-color: #111111;
    --vote-up-hover-bg: repeating-linear-gradient(135deg, #ffffff 0, #ffffff 2px, #d7d7d7 2px, #d7d7d7 4px);
    --vote-up-hover-color: #111111;
    --vote-up-active-bg: #111111;
    --vote-up-active-color: #ffffff;
    --vote-remove-hover-bg: repeating-linear-gradient(135deg, #ffffff 0, #ffffff 2px, #d7d7d7 2px, #d7d7d7 4px);
    --vote-remove-hover-color: #111111;
    --vote-remove-active-bg: #111111;
    --vote-remove-active-color: #ffffff;
    --vote-total-bg: #111111;
    --vote-total-color: #ffffff;
    --vote-total-border: 1px solid #111111;
    --vote-total-radius: 0;
    background:
        repeating-linear-gradient(
            45deg,
            rgba(0, 0, 0, 0.055) 0,
            rgba(0, 0, 0, 0.055) 1px,
            transparent 1px,
            transparent 4px
        ),
        #d7d7d7;
    color: #111111;
    font-family: Chicago, Geneva, "Lucida Grande", "Trebuchet MS", Arial, sans-serif;
}

.retro-page.theme-macintosh .retro-topbar {
    border-bottom: 2px solid #111111;
    background:
        repeating-linear-gradient(
            0deg,
            #ffffff 0,
            #ffffff 2px,
            #d7d7d7 2px,
            #d7d7d7 4px
        );
    color: #111111;
    box-shadow: none;
}

.retro-page.theme-macintosh .retro-title {
    color: #111111;
    font-weight: 700;
}

.retro-page.theme-macintosh .retro-title::before {
    content: "□ ";
}

.retro-page.theme-macintosh .presence-avatar {
    border: 1px solid #111111;
    border-radius: 0;
    background: #ffffff;
    color: #111111;
    box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.28);
}

.retro-page.theme-macintosh .presence-avatar:nth-child(2n),
.retro-page.theme-macintosh .presence-avatar:nth-child(3n),
.retro-page.theme-macintosh .presence-avatar:nth-child(4n),
.retro-page.theme-macintosh .presence-more {
    background: #111111;
    color: #ffffff;
}

.retro-page.theme-macintosh .back-btn,
.retro-page.theme-macintosh .timer-icon-btn,
.retro-page.theme-macintosh .icon-btn {
    border-radius: 0;
    color: #111111;
}

.retro-page.theme-macintosh .back-btn:hover,
.retro-page.theme-macintosh .timer-icon-btn:hover,
.retro-page.theme-macintosh .icon-btn:hover,
.retro-page.theme-macintosh .add-card-btn:hover {
    background:
        repeating-linear-gradient(
            135deg,
            #ffffff 0,
            #ffffff 2px,
            #bfbfbf 2px,
            #bfbfbf 4px
        );
}

.retro-page.theme-macintosh .toolbar-btn,
.retro-page.theme-macintosh .timer-control,
.retro-page.theme-macintosh .vote-meter,
.retro-page.theme-macintosh .complete-btn,
.retro-page.theme-macintosh .share-copy-btn,
.retro-page.theme-macintosh .ticket-edit-save,
.retro-page.theme-macintosh .ticket-edit-cancel,
.retro-page.theme-macintosh .complete-cancel-btn,
.retro-page.theme-macintosh .complete-confirm-btn,
.retro-page.theme-macintosh .ungroup-ticket-btn,
.retro-page.theme-macintosh .ticket-group-action,
.retro-page.theme-macintosh .retro-add-actions .btn-primary,
.retro-page.theme-macintosh .retro-add-actions .btn-light,
.retro-page.theme-macintosh .share-modal-close,
.retro-page.theme-macintosh .column-icon-choice {
    border: 2px solid #111111;
    border-radius: 0;
    background: #ffffff;
    color: #111111;
    box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.34);
    font-weight: 700;
    text-shadow: none;
}

.retro-page.theme-macintosh .toolbar-btn:hover,
.retro-page.theme-macintosh .share-copy-btn:hover,
.retro-page.theme-macintosh .ticket-edit-save:hover,
.retro-page.theme-macintosh .ticket-edit-cancel:hover,
.retro-page.theme-macintosh .complete-cancel-btn:hover,
.retro-page.theme-macintosh .complete-confirm-btn:hover,
.retro-page.theme-macintosh .ticket-group-action:hover,
.retro-page.theme-macintosh .retro-add-actions .btn-primary:hover,
.retro-page.theme-macintosh .retro-add-actions .btn-light:hover,
.retro-page.theme-macintosh .column-icon-choice:hover {
    background:
        repeating-linear-gradient(
            135deg,
            #ffffff 0,
            #ffffff 2px,
            #d7d7d7 2px,
            #d7d7d7 4px
        );
}

.retro-page.theme-macintosh .blur-toolbar-btn.active,
.retro-page.theme-macintosh .timer-duration-btn.active,
.retro-page.theme-macintosh .complete-btn {
    background: #111111;
    color: #ffffff;
}

.retro-page.theme-macintosh .complete-btn:disabled {
    background: #d7d7d7;
    color: #777777;
}

.retro-page.theme-macintosh .timer-duration-btn {
    border-radius: 0;
    color: #111111;
}

.retro-page.theme-macintosh .timer-pill {
    border: 2px solid #111111;
    border-radius: 0;
    background: #ffffff;
    color: #111111;
}

.retro-page.theme-macintosh .timer-pill.finished {
    background: #111111;
    color: #ffffff;
}

.retro-page.theme-macintosh .retro-board {
    background: transparent;
}

.retro-page.theme-macintosh .retro-column-header,
.retro-page.theme-macintosh .ticket-group-header,
.retro-page.theme-macintosh .retro-card,
.retro-page.theme-macintosh .retro-card.grouped-card,
.retro-page.theme-macintosh .retro-card.grouped-card:not(.stack-front),
.retro-page.theme-macintosh .retro-card.grouped-card.stack-front,
.retro-page.theme-macintosh .retro-add-card {
    border: 2px solid #111111;
    border-radius: 0;
    background: #ffffff;
    color: #111111;
    box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.34);
}

.retro-page.theme-macintosh .retro-column-header,
.retro-page.theme-macintosh .ticket-group-header {
    background:
        linear-gradient(#ffffff, #ffffff) padding-box,
        repeating-linear-gradient(
            0deg,
            #111111 0,
            #111111 1px,
            #ffffff 1px,
            #ffffff 3px
        ) border-box;
}

.retro-page.theme-macintosh .retro-card:hover,
.retro-page.theme-macintosh .ticket-sortable-item.grouped-ticket-item:hover .retro-card.grouped-card,
.retro-page.theme-macintosh .ticket-sortable-item.grouped-ticket-item:focus-within .retro-card.grouped-card {
    transform: translateY(-1px);
    box-shadow: 5px 5px 0 rgba(0, 0, 0, 0.42);
}

.retro-page.theme-macintosh .retro-column-header-icon,
.retro-page.theme-macintosh .column-manager-icon {
    border: 1px solid #111111;
    border-radius: 0;
    background: #ffffff;
    color: #111111;
}

.retro-page.theme-macintosh .retro-column-title,
.retro-page.theme-macintosh .retro-card-content,
.retro-page.theme-macintosh .retro-card-author,
.retro-page.theme-macintosh .ticket-group-title span,
.retro-page.theme-macintosh .share-modal-header h3,
.retro-page.theme-macintosh .theme-option-copy strong,
.retro-page.theme-macintosh .column-manager-meta strong,
.retro-page.theme-macintosh .group-option-btn span,
.retro-page.theme-macintosh .share-user-list span {
    color: #111111;
}

.retro-page.theme-macintosh .retro-column-count,
.retro-page.theme-macintosh .ticket-group-title small,
.retro-page.theme-macintosh .share-modal-header p,
.retro-page.theme-macintosh .theme-option-copy small,
.retro-page.theme-macintosh .column-manager-meta small,
.retro-page.theme-macintosh .group-option-btn small,
.retro-page.theme-macintosh .share-empty {
    color: #555555;
}

.retro-page.theme-macintosh .retro-card-divider {
    background: #111111;
}

.retro-page.theme-macintosh .vote-up-btn.active,
.retro-page.theme-macintosh .vote-remove-btn.active {
    background: #111111;
    color: #ffffff;
}

.retro-page.theme-macintosh .ticket-group-vote-total,
.retro-page.theme-macintosh .ticket-vote-total,
.retro-page.theme-macintosh .group-viewer-vote-total {
    border: 1px solid #111111;
    border-radius: 0;
    background: #111111;
    color: #ffffff;
}

.retro-page.theme-macintosh .ticket-sortable-item.grouped-ticket-item::before,
.retro-page.theme-macintosh .ticket-group-drop-zone:hover::after,
.retro-page.theme-macintosh .retro-board.mobile-sort-active .ticket-group-drop-zone::after,
.retro-page.theme-macintosh .insert-line {
    background: #111111;
}

.retro-page.theme-macintosh .add-card-btn,
.retro-page.theme-macintosh .retro-card-list:empty::after {
    border-color: #111111;
    border-radius: 0;
    color: #111111;
    background: rgba(255, 255, 255, 0.55);
}

.retro-page.theme-macintosh .ticket-origin-corner {
    display: none;
}

.retro-page.theme-macintosh .share-modal {
    border: 2px solid #111111;
    border-radius: 0;
    background: #f4f4f4;
    color: #111111;
    box-shadow: 8px 8px 0 rgba(0, 0, 0, 0.45);
}

.retro-page.theme-macintosh .group-viewer-ticket {
    border: 2px solid #111111;
    border-radius: 0;
    background: #ffffff;
    box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.34);
}

.retro-page.theme-macintosh .group-viewer-ticket-content,
.retro-page.theme-macintosh .group-viewer-ticket-stats span {
    color: #111111;
}

.retro-page.theme-macintosh .share-modal::before {
    content: "";
    display: block;
    height: 16px;
    margin: -12px -12px 14px;
    border: 1px solid #111111;
    background:
        repeating-linear-gradient(
            0deg,
            #111111 0,
            #111111 1px,
            #ffffff 1px,
            #ffffff 3px
        );
}

.retro-page.theme-macintosh .share-modal-backdrop {
    background: rgba(0, 0, 0, 0.42);
}

.retro-page.theme-macintosh .share-link-input,
.retro-page.theme-macintosh .ticket-edit-input,
.retro-page.theme-macintosh .ticket-add-input,
.retro-page.theme-macintosh .ticket-group-title-input {
    border: 2px solid #111111;
    border-radius: 0;
    background: #ffffff;
    color: #111111;
    box-shadow: inset 2px 2px 0 #d7d7d7;
}

.retro-page.theme-macintosh .ticket-edit-input:focus,
.retro-page.theme-macintosh .ticket-add-input:focus,
.retro-page.theme-macintosh .ticket-group-title-input:focus,
.retro-page.theme-macintosh .share-link-input:focus {
    outline: none;
    border-color: #111111;
    background: #ffffff;
    color: #111111;
    box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #111111, inset 2px 2px 0 #d7d7d7;
}

.retro-page.theme-macintosh .share-link-input::placeholder,
.retro-page.theme-macintosh .ticket-edit-input::placeholder,
.retro-page.theme-macintosh .ticket-add-input::placeholder,
.retro-page.theme-macintosh .ticket-group-title-input::placeholder {
    color: #777777;
}

.retro-page.theme-macintosh .column-manager-item,
.retro-page.theme-macintosh .share-user-list li,
.retro-page.theme-macintosh .group-option-btn,
.retro-page.theme-macintosh .theme-option-card {
    border: 2px solid #111111;
    border-radius: 0;
    background: #ffffff;
    color: #111111;
    box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.2);
}

.retro-page.theme-macintosh .group-option-btn:hover,
.retro-page.theme-macintosh .theme-option-card:hover {
    transform: none;
    border-color: #111111;
    background:
        repeating-linear-gradient(
            135deg,
            #ffffff 0,
            #ffffff 2px,
            #d7d7d7 2px,
            #d7d7d7 4px
        );
    box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.28);
}

.retro-page.theme-macintosh .theme-option-card.active,
.retro-page.theme-macintosh .theme-option-card:disabled,
.retro-page.theme-macintosh .group-option-btn.active {
    background: #111111;
    color: #ffffff;
}

.retro-page.theme-macintosh .theme-option-card.active .theme-option-copy strong,
.retro-page.theme-macintosh .theme-option-card.active .theme-option-copy small,
.retro-page.theme-macintosh .group-option-btn.active span,
.retro-page.theme-macintosh .group-option-btn.active small {
    color: #ffffff;
}

.retro-page.theme-macintosh .theme-active-mark {
    border-radius: 0;
    background: #ffffff;
    color: #111111;
}

.retro-page.theme-macintosh .share-user-list button,
.retro-page.theme-macintosh .ticket-group-action.danger,
.retro-page.theme-macintosh .column-remove-btn {
    color: #111111;
    text-decoration: underline;
}

.retro-page.theme-macintosh .column-color-swatch,
.retro-page.theme-macintosh .column-icon-choice,
.retro-page.theme-macintosh .column-remove-btn {
    border-radius: 0;
}

.retro-page.theme-macintosh .column-color-swatch.active,
.retro-page.theme-macintosh .column-icon-choice.active {
    border-color: #111111;
    box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #111111;
}

.retro-page.theme-macintosh .anonymous-ticket-toggle {
    color: #111111;
}

.retro-page.theme-macintosh .anonymous-ticket-toggle input {
    accent-color: #111111;
}

.retro-page.theme-macintosh .utility-menu {
    --utility-panel-bg: #ffffff;
    --utility-panel-border: #111111;
    --utility-panel-text: #111111;
    --utility-muted-text: #3f3f3f;
    --utility-panel-shadow: 4px 4px 0 rgba(0, 0, 0, 0.36);
}

.retro-page.theme-macintosh .utility-menu-item,
.retro-page.theme-macintosh .utility-menu-toggle {
    border: 2px solid #111111;
    border-radius: 50%;
    background: #ffffff;
    color: #111111;
    box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.36);
    backdrop-filter: none;
}

.retro-page.theme-macintosh .utility-menu-toggle {
    background: #111111;
    color: #ffffff;
}

.retro-page.theme-macintosh .utility-menu-item.active {
    border-color: #111111;
    background:
        repeating-linear-gradient(
            135deg,
            #ffffff 0,
            #ffffff 2px,
            #d7d7d7 2px,
            #d7d7d7 4px
        );
}

.retro-page.theme-macintosh .utility-selected-bubble {
    border-width: 2px;
    border-radius: 0;
    backdrop-filter: none;
}

.retro-page.theme-macintosh .dice-widget {
    border: 2px solid #111111;
    border-radius: 0;
    background: #f4f4f4;
    color: #111111;
    box-shadow: 5px 5px 0 rgba(0, 0, 0, 0.4);
    backdrop-filter: none;
}

.retro-page.theme-macintosh .dice-widget-handle {
    border: 1px solid #111111;
    border-radius: 0;
    background:
        repeating-linear-gradient(
            0deg,
            #111111 0,
            #111111 1px,
            #ffffff 1px,
            #ffffff 3px
        );
    color: #111111;
}

.retro-page.theme-macintosh .dice-total {
    border-radius: 0;
    background: #111111;
    color: #ffffff;
}

.retro-page.theme-macintosh .dice-face {
    border: 2px solid #111111;
    border-radius: 0;
    background: #ffffff;
    color: #111111;
    box-shadow: inset 2px 2px 0 #d7d7d7;
}

.retro-page.theme-dos {
    --vote-meter-border: #ffffff;
    --vote-meter-bg: #c0c0c0;
    --vote-meter-text: #000080;
    --vote-meter-muted: #000080;
    --vote-meter-shadow: none;
    --vote-dot-available-bg: #ffff00;
    --vote-dot-available-border: #000000;
    --vote-dot-available-shadow: none;
    --vote-dot-used-bg: #000080;
    --vote-dot-used-border: #00ffff;
    --vote-dot-radius: 0;
    --vote-controls-bg: #c0c0c0;
    --vote-controls-shadow: inset 2px 2px 0 #ffffff, inset -2px -2px 0 #000000;
    --vote-button-bg: #c0c0c0;
    --vote-button-color: #000080;
    --vote-count-color: #000080;
    --vote-up-hover-bg: #ffff00;
    --vote-up-hover-color: #000080;
    --vote-up-active-bg: #000080;
    --vote-up-active-color: #ffff00;
    --vote-remove-hover-bg: #800000;
    --vote-remove-hover-color: #ffffff;
    --vote-remove-active-bg: #000080;
    --vote-remove-active-color: #ffff00;
    --vote-total-bg: #ffff00;
    --vote-total-color: #000080;
    --vote-total-radius: 0;
    position: relative;
    isolation: isolate;
    background:
        repeating-linear-gradient(
            0deg,
            rgba(255, 255, 255, 0.04) 0,
            rgba(255, 255, 255, 0.04) 1px,
            transparent 1px,
            transparent 18px
        ),
        repeating-linear-gradient(
            90deg,
            rgba(255, 255, 255, 0.03) 0,
            rgba(255, 255, 255, 0.03) 1px,
            transparent 1px,
            transparent 18px
        ),
        #000080;
    color: #ffffff;
    font-family: "Courier New", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}

.retro-page.theme-dos .retro-topbar {
    border-bottom: 3px double #00ffff;
    background: #000080;
    color: #ffffff;
}

.retro-page.theme-dos .retro-title {
    color: #ffff00;
    font-weight: 700;
    text-transform: uppercase;
}

.retro-page.theme-dos .presence-avatar {
    border-color: #000080;
    border-radius: 0;
    background: #00ffff;
    color: #000000;
    box-shadow: none;
}

.retro-page.theme-dos .presence-avatar:nth-child(2n) {
    background: #ffff00;
}

.retro-page.theme-dos .presence-avatar:nth-child(3n) {
    background: #ffffff;
}

.retro-page.theme-dos .back-btn,
.retro-page.theme-dos .timer-icon-btn {
    border-radius: 0;
    color: #ffff00;
}

.retro-page.theme-dos .back-btn:hover,
.retro-page.theme-dos .timer-icon-btn:hover,
.retro-page.theme-dos .icon-btn:hover,
.retro-page.theme-dos .add-card-btn:hover {
    background: #0000aa;
}

.retro-page.theme-dos .toolbar-btn,
.retro-page.theme-dos .timer-control,
.retro-page.theme-dos .vote-meter,
.retro-page.theme-dos .complete-btn,
.retro-page.theme-dos .share-copy-btn,
.retro-page.theme-dos .ticket-edit-save,
.retro-page.theme-dos .ticket-edit-cancel,
.retro-page.theme-dos .complete-cancel-btn,
.retro-page.theme-dos .complete-confirm-btn,
.retro-page.theme-dos .ungroup-ticket-btn,
.retro-page.theme-dos .ticket-group-action,
.retro-page.theme-dos .retro-add-actions .btn-primary,
.retro-page.theme-dos .retro-add-actions .btn-light {
    border: 2px solid;
    border-color: #ffffff #000000 #000000 #ffffff;
    border-radius: 0;
    background: #c0c0c0;
    color: #000000;
    box-shadow: none;
    font-weight: 700;
    text-shadow: none;
}

.retro-page.theme-dos .toolbar-btn:hover {
    border-color: #ffff00 #000000 #000000 #ffff00;
}

.retro-page.theme-dos .blur-toolbar-btn.active,
.retro-page.theme-dos .timer-duration-btn.active,
.retro-page.theme-dos .complete-btn {
    background: #ffff00;
    color: #000080;
}

.retro-page.theme-dos .complete-btn:disabled {
    background: #808080;
    color: #000000;
}

.retro-page.theme-dos .timer-duration-btn {
    border-radius: 0;
    color: #000080;
}

.retro-page.theme-dos .timer-pill {
    border: 2px inset #c0c0c0;
    border-radius: 0;
    background: #000000;
    color: #00ff00;
}

.retro-page.theme-dos .timer-pill.finished {
    background: #800000;
    color: #ffff00;
}

.retro-page.theme-dos .retro-board {
    background: transparent;
}

.retro-page.theme-dos .retro-column-header,
.retro-page.theme-dos .ticket-group-header {
    border: 2px solid #00ffff;
    border-radius: 0;
    background: #0000aa;
    color: #ffffff;
    box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.32);
}

.retro-page.theme-dos .retro-column-header-icon,
.retro-page.theme-dos .column-manager-icon {
    border-radius: 0;
    background: #ffff00;
    color: #000000;
}

.retro-page.theme-dos .retro-column-title,
.retro-page.theme-dos .ticket-group-title span,
.retro-page.theme-dos .share-modal-header h3,
.retro-page.theme-dos .theme-option-copy strong {
    color: #ffff00;
}

.retro-page.theme-dos .retro-column-count,
.retro-page.theme-dos .ticket-group-title small,
.retro-page.theme-dos .share-modal-header p,
.retro-page.theme-dos .theme-option-copy small,
.retro-page.theme-dos .group-option-btn small,
.retro-page.theme-dos .column-manager-meta small {
    color: #00ffff;
}

.retro-page.theme-dos .retro-card,
.retro-page.theme-dos .retro-card.grouped-card,
.retro-page.theme-dos .retro-card.grouped-card:not(.stack-front),
.retro-page.theme-dos .retro-card.grouped-card.stack-front,
.retro-page.theme-dos .retro-add-card {
    border: 2px solid;
    border-color: #ffffff #000000 #000000 #ffffff;
    border-radius: 0;
    background: #c0c0c0;
    color: #000000;
    box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.34);
}

.retro-page.theme-dos .retro-card:hover,
.retro-page.theme-dos .ticket-sortable-item.grouped-ticket-item:hover .retro-card.grouped-card,
.retro-page.theme-dos .ticket-sortable-item.grouped-ticket-item:focus-within .retro-card.grouped-card {
    border-color: #ffff00 #000000 #000000 #ffff00;
    box-shadow: 7px 7px 0 rgba(0, 0, 0, 0.4);
}

.retro-page.theme-dos .retro-card-content,
.retro-page.theme-dos .retro-card-author {
    color: #000000;
}

.retro-page.theme-dos .retro-card-divider {
    background: #808080;
}

.retro-page.theme-dos .icon-btn {
    border-radius: 0;
    color: #000080;
}

.retro-page.theme-dos .vote-up-btn.active,
.retro-page.theme-dos .vote-remove-btn.active {
    background: #000080;
    color: #ffff00;
}

.retro-page.theme-dos .ticket-group-vote-total,
.retro-page.theme-dos .ticket-vote-total,
.retro-page.theme-dos .group-viewer-vote-total {
    border-radius: 0;
    background: #ffff00;
    color: #000080;
}

.retro-page.theme-dos .ticket-sortable-item.grouped-ticket-item::before,
.retro-page.theme-dos .ticket-group-drop-zone:hover::after,
.retro-page.theme-dos .retro-board.mobile-sort-active .ticket-group-drop-zone::after,
.retro-page.theme-dos .insert-line {
    background: #ffff00;
}

.retro-page.theme-dos .add-card-btn,
.retro-page.theme-dos .retro-card-list:empty::after {
    border-color: #00ffff;
    border-radius: 0;
    color: #ffff00;
}

.retro-page.theme-dos .ticket-origin-corner {
    display: none;
}

.retro-page.theme-dos .share-modal {
    border: 3px double #ffffff;
    border-radius: 0;
    background: #0000aa;
    color: #ffffff;
    box-shadow: 10px 10px 0 rgba(0, 0, 0, 0.45);
}

.retro-page.theme-dos .group-viewer-ticket {
    border: 2px solid;
    border-color: #ffffff #000000 #000000 #ffffff;
    border-radius: 0;
    background: #c0c0c0;
    box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.34);
}

.retro-page.theme-dos .group-viewer-ticket-content,
.retro-page.theme-dos .group-viewer-ticket-stats span {
    color: #000000;
}

.retro-page.theme-dos .share-modal-backdrop {
    background: rgba(0, 0, 0, 0.72);
}

.retro-page.theme-dos .share-modal-close {
    border: 2px solid;
    border-color: #ffffff #000000 #000000 #ffffff;
    border-radius: 0;
    background: #c0c0c0;
    color: #000000;
}

.retro-page.theme-dos .column-icon-choice,
.retro-page.theme-dos .column-color-swatch,
.retro-page.theme-dos .column-remove-btn {
    border: 2px solid;
    border-color: #ffffff #000000 #000000 #ffffff;
    border-radius: 0;
    box-shadow: none;
}

.retro-page.theme-dos .column-icon-choice {
    background: #c0c0c0;
    color: #000000;
}

.retro-page.theme-dos .column-color-swatch:hover,
.retro-page.theme-dos .column-icon-choice:hover {
    transform: none;
    border-color: #ffff00 #000000 #000000 #ffff00;
}

.retro-page.theme-dos .column-color-swatch.active,
.retro-page.theme-dos .column-icon-choice.active {
    border-color: #ffff00;
    box-shadow: 0 0 0 2px #000080, 0 0 0 4px #ffff00;
}

.retro-page.theme-dos .column-remove-btn {
    background: #800000;
    color: #ffffff;
}

.retro-page.theme-dos .share-link-input,
.retro-page.theme-dos .ticket-edit-input,
.retro-page.theme-dos .ticket-add-input,
.retro-page.theme-dos .ticket-group-title-input {
    border: 2px inset #c0c0c0;
    border-radius: 0;
    background: #000000;
    color: #00ff00;
}

.retro-page.theme-dos .ticket-edit-input:focus,
.retro-page.theme-dos .ticket-add-input:focus,
.retro-page.theme-dos .ticket-group-title-input:focus {
    outline: none;
    border-color: #ffff00;
    background: #000000;
    color: #00ff00;
    box-shadow: 0 0 0 2px #000080, 0 0 0 4px #ffff00;
}

.retro-page.theme-dos .share-link-input::placeholder,
.retro-page.theme-dos .ticket-edit-input::placeholder,
.retro-page.theme-dos .ticket-add-input::placeholder,
.retro-page.theme-dos .ticket-group-title-input::placeholder {
    color: #808080;
}

.retro-page.theme-dos .column-manager-item,
.retro-page.theme-dos .share-user-list li,
.retro-page.theme-dos .group-option-btn,
.retro-page.theme-dos .theme-option-card {
    border: 2px solid #00ffff;
    border-radius: 0;
    background: #000080;
    color: #ffffff;
}

.retro-page.theme-dos .column-manager-meta strong,
.retro-page.theme-dos .share-user-list span,
.retro-page.theme-dos .group-option-btn span {
    color: #ffffff;
}

.retro-page.theme-dos .share-user-list button {
    color: #ffff00;
    text-decoration: underline;
}

.retro-page.theme-dos .group-option-btn:hover,
.retro-page.theme-dos .theme-option-card:hover {
    transform: none;
    border-color: #ffff00;
    background: #0000aa;
    box-shadow: none;
}

.retro-page.theme-dos .theme-option-card.active,
.retro-page.theme-dos .theme-option-card:disabled,
.retro-page.theme-dos .group-option-btn.active {
    border-color: #ffff00;
    background: #0000aa;
}

.retro-page.theme-dos .theme-active-mark {
    border-radius: 0;
    background: #ffff00;
    color: #000080;
}

.retro-page.theme-dos .anonymous-ticket-toggle {
    color: #000000;
}

.retro-page.theme-dos .anonymous-ticket-toggle input {
    accent-color: #000080;
}

.retro-page.theme-dos .utility-menu {
    --utility-panel-bg: #c0c0c0;
    --utility-panel-border: #ffffff;
    --utility-panel-text: #000080;
    --utility-muted-text: #000000;
    --utility-panel-shadow: 4px 4px 0 #000000;
}

.retro-page.theme-dos .utility-menu-item,
.retro-page.theme-dos .utility-menu-toggle {
    border: 2px solid;
    border-color: #ffffff #000000 #000000 #ffffff;
    border-radius: 50%;
    background: #c0c0c0;
    color: #000000;
    box-shadow: 4px 4px 0 #000000;
    backdrop-filter: none;
}

.retro-page.theme-dos .utility-menu-toggle {
    background: #ffff00;
    color: #000080;
}

.retro-page.theme-dos .utility-menu-item.active {
    border-color: #ffff00 #000000 #000000 #ffff00;
    box-shadow: 4px 4px 0 #000000, 0 0 0 3px #ffff00;
}

.retro-page.theme-dos .utility-selected-bubble {
    border: 3px double #ffffff;
    border-radius: 0;
    backdrop-filter: none;
}

.retro-page.theme-dos .dice-widget {
    border: 3px double #ffffff;
    border-radius: 0;
    background: #000080;
    color: #ffffff;
    box-shadow: 6px 6px 0 #000000;
    backdrop-filter: none;
}

.retro-page.theme-dos .dice-widget-handle {
    border: 2px solid;
    border-color: #ffffff #000000 #000000 #ffffff;
    border-radius: 0;
    background: #c0c0c0;
    color: #000000;
}

.retro-page.theme-dos .dice-total {
    border-radius: 0;
    background: #ffff00;
    color: #000080;
}

.retro-page.theme-dos .dice-face {
    border: 2px inset #c0c0c0;
    border-radius: 0;
    background: #0000aa;
    color: #ffff00;
    box-shadow: none;
}

.retro-page.theme-matrix {
    --vote-meter-border: rgba(57, 255, 116, 0.32);
    --vote-meter-bg: rgba(3, 17, 8, 0.92);
    --vote-meter-text: #d7ffe0;
    --vote-meter-muted: #9eeeb2;
    --vote-meter-shadow: 0 0 18px rgba(54, 255, 118, 0.08);
    --vote-dot-available-bg: linear-gradient(135deg, #42ff7d, #9cffb5);
    --vote-dot-available-border: rgba(66, 255, 125, 0.6);
    --vote-dot-available-shadow: 0 0 8px rgba(66, 255, 125, 0.5);
    --vote-dot-used-bg: #020905;
    --vote-dot-used-border: rgba(66, 255, 125, 0.34);
    --vote-dot-used-shadow: inset 0 0 8px rgba(66, 255, 125, 0.08);
    --vote-controls-bg: rgba(54, 255, 118, 0.1);
    --vote-controls-shadow: inset 0 0 0 1px rgba(66, 255, 125, 0.28), 0 0 12px rgba(54, 255, 118, 0.08);
    --vote-button-bg: rgba(2, 9, 5, 0.74);
    --vote-button-color: #d7ffe0;
    --vote-count-color: #57ff8b;
    --vote-up-hover-bg: rgba(54, 255, 118, 0.14);
    --vote-up-hover-color: #57ff8b;
    --vote-up-active-bg: rgba(54, 255, 118, 0.2);
    --vote-up-active-color: #57ff8b;
    --vote-remove-hover-bg: rgba(255, 72, 94, 0.14);
    --vote-remove-hover-color: #ff8ca0;
    --vote-remove-active-bg: rgba(255, 72, 94, 0.18);
    --vote-remove-active-color: #ff8ca0;
    --vote-total-bg: rgba(54, 255, 118, 0.16);
    --vote-total-color: #57ff8b;
    position: relative;
    isolation: isolate;
    background:
        radial-gradient(circle at 12% 16%, rgba(34, 255, 116, 0.16), transparent 28%),
        radial-gradient(circle at 88% 8%, rgba(0, 180, 90, 0.12), transparent 24%),
        linear-gradient(180deg, #020704 0%, #06140a 52%, #020704 100%);
    color: #caffd6;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}

.retro-page.theme-matrix::before,
.retro-page.theme-matrix::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

.retro-page.theme-matrix::before {
    background:
        repeating-linear-gradient(
            180deg,
            rgba(130, 255, 166, 0.06) 0,
            rgba(130, 255, 166, 0.06) 1px,
            transparent 1px,
            transparent 8px
        );
    opacity: 0.7;
}

.retro-page.theme-matrix::after {
    content: "010011 101100 001011 110010 011001 100101 010011 101100\A101101 010010 111000 001101 100110 011011 101101 010010\A001101 110101 010011 101001 011110 000101 001101 110101\A110010 011001 100101 010011 101100 001011 110010 011001";
    color: rgba(57, 255, 116, 0.13);
    font-size: 18px;
    line-height: 1.7;
    white-space: pre-wrap;
    word-break: break-all;
    transform: rotate(-8deg) scale(1.2);
    transform-origin: center;
}

.retro-page.theme-matrix > :not(.share-modal-backdrop) {
    position: relative;
    z-index: 1;
}

.retro-page.theme-matrix .retro-topbar {
    border-bottom: 1px solid rgba(75, 255, 130, 0.24);
    background: rgba(1, 9, 4, 0.92);
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.34);
    backdrop-filter: blur(10px);
}

.retro-page.theme-matrix .retro-title {
    color: #d7ffe0;
    text-shadow: 0 0 12px rgba(54, 255, 118, 0.42);
}

.retro-page.theme-matrix .board-presence .presence-avatar {
    border-color: #020704;
    background: #042f14;
    color: #d7ffe0;
    box-shadow: 0 0 12px rgba(54, 255, 118, 0.24);
}

.retro-page.theme-matrix .back-btn,
.retro-page.theme-matrix .timer-icon-btn {
    color: #caffd6;
}

.retro-page.theme-matrix .back-btn:hover,
.retro-page.theme-matrix .timer-icon-btn:hover,
.retro-page.theme-matrix .icon-btn:hover,
.retro-page.theme-matrix .add-card-btn:hover {
    background: rgba(54, 255, 118, 0.1);
}

.retro-page.theme-matrix .toolbar-btn,
.retro-page.theme-matrix .timer-control,
.retro-page.theme-matrix .vote-meter,
.retro-page.theme-matrix .complete-btn {
    border-color: rgba(57, 255, 116, 0.32);
    background: rgba(3, 17, 8, 0.92);
    color: #d7ffe0;
    box-shadow: 0 0 18px rgba(54, 255, 118, 0.08);
}

.retro-page.theme-matrix .toolbar-btn:hover {
    border-color: rgba(98, 255, 148, 0.68);
}

.retro-page.theme-matrix .blur-toolbar-btn.active,
.retro-page.theme-matrix .timer-duration-btn.active,
.retro-page.theme-matrix .complete-btn {
    border-color: #42ff7d;
    background: #37f86f;
    color: #001b07;
    text-shadow: none;
}

.retro-page.theme-matrix .complete-btn:disabled {
    border-color: rgba(106, 140, 116, 0.42);
    background: rgba(12, 30, 17, 0.92);
    color: #7eb78e;
}

.retro-page.theme-matrix .timer-duration-btn {
    color: #9eeeb2;
}

.retro-page.theme-matrix .timer-duration-btn:disabled {
    opacity: 0.56;
}

.retro-page.theme-matrix .timer-pill {
    background: rgba(54, 255, 118, 0.14);
    color: #d7ffe0;
    box-shadow: inset 0 0 12px rgba(54, 255, 118, 0.1);
}

.retro-page.theme-matrix .timer-pill.finished {
    background: rgba(255, 72, 94, 0.16);
    color: #ff8ca0;
}

.retro-page.theme-matrix .retro-board {
    background: transparent;
}

.retro-page.theme-matrix .retro-column-header,
.retro-page.theme-matrix .ticket-group-header,
.retro-page.theme-matrix .retro-card,
.retro-page.theme-matrix .retro-add-card {
    border-color: rgba(61, 255, 122, 0.34);
    background:
        linear-gradient(180deg, rgba(9, 31, 14, 0.96), rgba(3, 15, 7, 0.96));
    color: #d7ffe0;
    box-shadow: 0 0 18px rgba(54, 255, 118, 0.08);
}

.retro-page.theme-matrix .retro-column-header-icon,
.retro-page.theme-matrix .column-manager-icon {
    background: rgba(54, 255, 118, 0.12);
    color: #9cffb5;
}

.retro-page.theme-matrix .retro-column-title,
.retro-page.theme-matrix .retro-card-content,
.retro-page.theme-matrix .ticket-group-title span,
.retro-page.theme-matrix .share-modal-header h3,
.retro-page.theme-matrix .column-manager-meta strong,
.retro-page.theme-matrix .theme-option-copy strong,
.retro-page.theme-matrix .share-user-list span {
    color: #d7ffe0;
}

.retro-page.theme-matrix .retro-column-count,
.retro-page.theme-matrix .retro-card-author,
.retro-page.theme-matrix .ticket-group-title small,
.retro-page.theme-matrix .share-modal-header p,
.retro-page.theme-matrix .column-manager-meta small,
.retro-page.theme-matrix .theme-option-copy small,
.retro-page.theme-matrix .group-option-btn small {
    color: #85c995;
}

.retro-page.theme-matrix .retro-card:hover,
.retro-page.theme-matrix .ticket-sortable-item.grouped-ticket-item:hover .retro-card.grouped-card,
.retro-page.theme-matrix .ticket-sortable-item.grouped-ticket-item:focus-within .retro-card.grouped-card {
    border-color: rgba(120, 255, 160, 0.72);
    box-shadow: 0 0 24px rgba(54, 255, 118, 0.16);
}

.retro-page.theme-matrix .retro-card.grouped-card,
.retro-page.theme-matrix .retro-card.grouped-card:not(.stack-front),
.retro-page.theme-matrix .retro-card.grouped-card.stack-front {
    border-color: rgba(71, 255, 132, 0.4);
    background:
        linear-gradient(180deg, rgba(7, 25, 12, 0.98), rgba(2, 12, 6, 0.98));
}

.retro-page.theme-matrix .ticket-origin-corner {
    display: none;
}

.retro-page.theme-matrix .ticket-sortable-item.grouped-ticket-item::before,
.retro-page.theme-matrix .ticket-group-drop-zone:hover::after,
.retro-page.theme-matrix .retro-board.mobile-sort-active .ticket-group-drop-zone::after,
.retro-page.theme-matrix .insert-line {
    background: #37f86f;
    box-shadow: 0 0 10px rgba(55, 248, 111, 0.64);
}

.retro-page.theme-matrix .retro-card.blurred {
    background: rgba(5, 20, 9, 0.98);
}

.retro-page.theme-matrix .retro-card-divider {
    background: rgba(80, 255, 138, 0.18);
}

.retro-page.theme-matrix .icon-btn {
    color: #9cffb5;
}

.retro-page.theme-matrix .vote-up-btn.active,
.retro-page.theme-matrix .vote-remove-btn.active {
    background: rgba(54, 255, 118, 0.16);
    color: #57ff8b;
}

.retro-page.theme-matrix .ticket-group-vote-total,
.retro-page.theme-matrix .ticket-vote-total,
.retro-page.theme-matrix .group-viewer-vote-total {
    background: rgba(54, 255, 118, 0.16);
    color: #57ff8b;
}

.retro-page.theme-matrix .add-card-btn,
.retro-page.theme-matrix .retro-card-list:empty::after {
    border-color: rgba(79, 255, 136, 0.34);
    color: #85c995;
}

.retro-page.theme-matrix .share-modal {
    border-color: rgba(74, 255, 130, 0.34);
    background: #031108;
    color: #d7ffe0;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.44), 0 0 30px rgba(54, 255, 118, 0.12);
}

.retro-page.theme-matrix .group-viewer-ticket {
    border-color: rgba(71, 255, 132, 0.4);
    background: linear-gradient(180deg, rgba(7, 25, 12, 0.98), rgba(2, 12, 6, 0.98));
    box-shadow: 0 0 18px rgba(54, 255, 118, 0.08);
}

.retro-page.theme-matrix .group-viewer-ticket-content {
    color: #d7ffe0;
}

.retro-page.theme-matrix .group-viewer-ticket-meta {
    border-color: rgba(80, 255, 138, 0.18);
}

.retro-page.theme-matrix .group-viewer-ticket-stats span {
    background: rgba(12, 33, 17, 0.92);
    color: #9cffb5;
}

.retro-page.theme-matrix .share-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 5, 2, 0.7);
}

.retro-page.theme-matrix .share-modal-close,
.retro-page.theme-matrix .ticket-group-action,
.retro-page.theme-matrix .complete-cancel-btn,
.retro-page.theme-matrix .ungroup-ticket-btn,
.retro-page.theme-matrix .column-icon-choice {
    border-color: rgba(74, 255, 130, 0.26);
    background: rgba(12, 33, 17, 0.92);
    color: #d7ffe0;
}

.retro-page.theme-matrix .share-link-input,
.retro-page.theme-matrix .ticket-edit-input,
.retro-page.theme-matrix .ticket-add-input,
.retro-page.theme-matrix .ticket-group-title-input {
    border-color: rgba(74, 255, 130, 0.34);
    background: #020905;
    color: #d7ffe0;
}

.retro-page.theme-matrix .ticket-edit-input:focus,
.retro-page.theme-matrix .ticket-add-input:focus,
.retro-page.theme-matrix .ticket-group-title-input:focus {
    outline: none;
    border-color: #42ff7d;
    background: #020905;
    color: #d7ffe0;
    box-shadow: 0 0 0 3px rgba(66, 255, 125, 0.18), 0 0 18px rgba(66, 255, 125, 0.16);
}

.retro-page.theme-matrix .share-link-input::placeholder,
.retro-page.theme-matrix .ticket-edit-input::placeholder,
.retro-page.theme-matrix .ticket-add-input::placeholder,
.retro-page.theme-matrix .ticket-group-title-input::placeholder {
    color: #6fa97d;
}

.retro-page.theme-matrix .share-copy-btn,
.retro-page.theme-matrix .ticket-edit-save,
.retro-page.theme-matrix .complete-confirm-btn,
.retro-page.theme-matrix .group-create-btn,
.retro-page.theme-matrix .retro-add-actions .btn-primary {
    border-color: #42ff7d;
    background: #37f86f;
    color: #001b07;
}

.retro-page.theme-matrix .ticket-edit-cancel,
.retro-page.theme-matrix .retro-add-actions .btn-light,
.retro-page.theme-matrix .column-manager-item,
.retro-page.theme-matrix .share-user-list li,
.retro-page.theme-matrix .group-option-btn,
.retro-page.theme-matrix .theme-option-card {
    border-color: rgba(74, 255, 130, 0.24);
    background: rgba(7, 24, 12, 0.96);
    color: #d7ffe0;
}

.retro-page.theme-matrix .theme-option-card.active,
.retro-page.theme-matrix .theme-option-card:disabled,
.retro-page.theme-matrix .group-option-btn.active {
    border-color: #42ff7d;
    background: rgba(34, 255, 105, 0.12);
}

.retro-page.theme-matrix .theme-active-mark {
    background: #37f86f;
    color: #001b07;
}

.retro-page.theme-matrix .anonymous-ticket-toggle {
    color: #9eeeb2;
}

.retro-page.theme-matrix .anonymous-ticket-toggle input {
    accent-color: #37f86f;
}

.retro-page.theme-matrix .utility-menu {
    position: fixed;
    z-index: 170;
    --utility-panel-bg: rgba(2, 9, 5, 0.96);
    --utility-panel-border: rgba(66, 255, 125, 0.38);
    --utility-panel-text: #d7ffe0;
    --utility-muted-text: #9eeeb2;
    --utility-panel-shadow: 0 0 24px rgba(54, 255, 118, 0.16), 0 18px 44px rgba(0, 0, 0, 0.42);
}

.retro-page.theme-matrix .utility-menu-item {
    border-color: rgba(66, 255, 125, 0.38);
    background: rgba(2, 9, 5, 0.96);
    color: #42ff7d;
    box-shadow: 0 0 18px rgba(54, 255, 118, 0.16);
}

.retro-page.theme-matrix .utility-menu-toggle {
    border-color: #42ff7d;
    background: #37f86f;
    color: #001b07;
    box-shadow: 0 0 24px rgba(54, 255, 118, 0.28);
}

.retro-page.theme-matrix .utility-menu-item.active {
    border-color: #42ff7d;
    box-shadow: 0 0 0 3px rgba(66, 255, 125, 0.2), 0 0 22px rgba(54, 255, 118, 0.22);
}

.retro-page.theme-matrix .dice-widget {
    position: fixed;
    z-index: 160;
    border-color: rgba(66, 255, 125, 0.38);
    background: rgba(2, 9, 5, 0.94);
    color: #d7ffe0;
    box-shadow: 0 0 24px rgba(54, 255, 118, 0.16), 0 18px 44px rgba(0, 0, 0, 0.42);
}

.retro-page.theme-matrix .dice-widget-handle {
    background: rgba(18, 62, 28, 0.84);
    color: #9eeeb2;
}

.retro-page.theme-matrix .dice-total {
    background: #37f86f;
    color: #001b07;
}

.retro-page.theme-matrix .dice-face {
    border-color: rgba(66, 255, 125, 0.34);
    background: #020905;
    color: #42ff7d;
    text-shadow: 0 0 10px rgba(66, 255, 125, 0.5);
    box-shadow: inset 0 0 16px rgba(66, 255, 125, 0.08);
}

.board-access-denied {
    min-height: 100vh;
    display: grid;
    place-content: center;
    gap: 12px;
    padding: 24px;
    text-align: center;
}

.board-access-denied h1 {
    margin: 0;
    font-size: 28px;
    font-weight: 800;
}

.board-access-denied p {
    margin: 0;
    color: #6b7280;
}

.board-error-detail {
    max-width: min(920px, calc(100vw - 48px));
    max-height: 52vh;
    overflow: auto;
    margin: 0;
    padding: 14px;
    border: 1px solid #d9d6f5;
    border-radius: 8px;
    background: #f7f5ff;
    color: #302a4d;
    text-align: left;
    white-space: pre-wrap;
    word-break: break-word;
    font-size: 12px;
    line-height: 1.45;
}

.board-access-denied button {
    justify-self: center;
    height: 40px;
    border: none;
    border-radius: 10px;
    padding: 0 14px;
    background: #111827;
    color: white;
    font-weight: 800;
}

@media (max-width: 1120px) {
    .auth-landing {
        padding-inline: 22px;
    }

    .landing-preview-lanes,
    .landing-offer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .board-list {
        grid-template-columns: repeat(2, minmax(260px, 1fr));
    }

    .retro-topbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .retro-toolbar {
        justify-content: flex-start;
    }
}

@media (max-width: 720px) {
    .auth-landing {
        gap: 18px;
        padding: 18px 16px 40px;
    }

    .landing-nav {
        min-height: 44px;
    }

    .landing-nav-link {
        height: 34px;
        padding: 0 13px;
    }

    .landing-hero {
        gap: 18px;
        padding-top: 34px;
    }

    .landing-copy-panel h1 {
        font-size: clamp(38px, 13vw, 58px);
        line-height: 1;
    }

    .landing-lede {
        font-size: 16px;
        line-height: 1.52;
    }

    .landing-preview-top {
        flex-direction: column;
    }

    .landing-board-preview {
        padding: 14px;
        border-radius: 22px;
    }

    .landing-preview-lanes,
    .landing-offer-grid {
        grid-template-columns: 1fr;
    }

    .landing-board-card,
    .auth-panel {
        border-radius: 18px;
    }

    .auth-panel {
        padding: 24px;
    }

    .home-page {
        padding: 0 20px 28px;
    }

    .home-header {
        margin: 0 -20px;
        padding: 0 20px;
    }

    .home-controls {
        align-items: flex-start;
        flex-direction: column;
    }

    .board-list,
    .create-board-panel {
        grid-template-columns: 1fr;
    }

    .timer-control {
        height: auto;
        flex-wrap: wrap;
    }
}

@media (max-width: 520px) {
    .utility-selected-bubble {
        right: 0;
        bottom: 72px;
        width: calc(100vw - 44px);
    }

    .utility-selected-body {
        max-height: calc(100vh - 188px);
    }

    .utility-selected-bubble::before {
        right: 22px;
        bottom: -6px;
        transform: rotate(135deg);
    }

    .share-link-row,
    .column-create-row,
    .share-invite-row {
        flex-direction: column;
    }

    .theme-option-card {
        grid-template-columns: 58px minmax(0, 1fr);
    }

    .theme-option-preview {
        height: 46px;
    }

    .theme-active-mark {
        grid-column: 2;
        justify-self: start;
    }
}

.retro-logo {
    width: 23px;
    height: 23px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2px;
}

.retro-logo-main {
    background: #765BE3;
    border-radius: 5px;
}

.retro-logo-side {
    display: grid;
    grid-template-rows: 1fr 1fr;
    gap: 2px;
}

.retro-logo-square {
    border-radius: 4px;
}

.retro-logo-teal {
    background: #31C5B0;
}

.retro-logo-orange {
    background: #F59E0C;
}
