:root {
    --ui-accent: #f97316;
    --ui-accent-hover: #ea580c;
    --ui-accent-soft: rgba(249, 115, 22, 0.1);
    --ui-accent-selected: rgba(249, 115, 22, 0.15);
    --ui-accent-border: rgba(249, 115, 22, 0.3);
    --ui-accent-ring: rgba(249, 115, 22, 0.3);
}

@keyframes fadeInOverlay {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes fadeInModal {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes fadeOutModal {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

@keyframes fadeOutOverlay {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

html, body {
    background: rgb(255, 255, 255);
    overscroll-behavior: none;
}

html {
    scrollbar-gutter: auto;
}

.notes-app * {
    box-sizing: border-box;
}

.notes-app {
    position: relative;
    z-index: 1;
    font-family: "DM Sans", sans-serif;
    height: 100vh;
    display: flex;
    flex-direction: column;
    background: rgb(245, 245, 245);
    overflow: hidden;
    cursor: auto;
    visibility: visible !important;
    opacity: 1 !important;
}

.notes-header {
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(3px);
    color: rgb(44, 62, 80);
    padding: 12px 20px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    flex-shrink: 0;
    box-shadow: rgba(0, 0, 0, 0.05) 0px 2px 8px;
}

.header-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.app-logo {
    display: flex;
    align-items: center;
    gap: 8px;
}

.app-title {
    font-size: 18px;
    font-weight: 600;
    color: rgb(44, 62, 80);
}

.save-indicator {
    background: rgba(35, 154, 77, 0.2);
    border: 1px solid rgba(35, 154, 77, 0.3);
    color: rgb(35, 154, 77);
    padding: 6px 16px;
    border-radius: 5rem;
    font-size: 12px;
    cursor: default;
    font-weight: 500;
    transition: 0.2s;
}

.save-indicator.saving {
    background: rgba(255, 193, 7, 0.2);
    border-color: rgba(255, 193, 7, 0.4);
    color: rgb(255, 193, 7);
    animation: 1.5s ease-in-out 0s infinite normal none running pulse;
}

.ribbon-tabs {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 8px;
    padding: 0px 12px;
    margin: 0px 12px 8px;
    background: transparent;
    border-bottom-width: medium;
    border-bottom-style: none;
    border-bottom-color: currentcolor;
    overflow-x: auto;
    scrollbar-width: none;
    position: relative;
    z-index: 11;
    flex-shrink: 0;
    transition: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 1;
    transform: translateY(0px);
}

.ribbon-tabs-left {
    display: flex;
    align-items: flex-end;
    gap: 2px;
    flex-shrink: 0;
    position: relative;
}

.ribbon-tabs-right {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 4px;
    margin-left: auto;
    flex-shrink: 0;
}

.ribbon-tab-action {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 10px;
    background: rgb(255, 255, 255);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 8px;
    color: rgb(99, 99, 99);
    font-family: "DM Sans", sans-serif;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: 0.18s;
    white-space: nowrap;
    line-height: 1;
}

.ribbon-tab-action:hover {
    background: var(--ui-accent, #f97316);
    color: rgb(255, 255, 255);
    border-color: var(--ui-accent, #f97316);
    box-shadow: rgba(249, 115, 22, 0.28) 0px 2px 8px;
}

.ribbon-tab-action:active {
    transform: translateY(1px);
}

.ribbon-tab-action svg {
    flex-shrink: 0;
}

.ribbon-tabs::-webkit-scrollbar {
    display: none;
}

.ribbon-tab {
    background: none;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    padding: 0px 4px 4px;
    margin-left: 8px;
    margin-right: 8px;
    margin-bottom: 4px;
    cursor: pointer;
    font-size: 13px;
    color: rgba(44, 62, 80, 0.7);
    transition: background 0.2s, color 0.2s, background-color 0.2s, box-shadow 0.2s;
    font-weight: 500;
    font-family: "DM Sans", sans-serif;
    border-radius: 2px;
    white-space: nowrap;
    flex-shrink: 0;
    position: relative;
}

.ribbon-tab.active {
    background: transparent;
    color: var(--ui-accent);
    font-weight: 600;
    box-shadow: none;
}

.ribbon-tab:not(.active):not([data-tab="file"]):hover {
    background: transparent;
}

.ribbon-tab:not(.active):not([data-tab="file"])::after {
    content: "";
    position: absolute;
    left: 4px;
    right: 4px;
    bottom: -4px;
    height: 3px;
    background: rgba(44, 62, 80, 0.38);
    border-radius: 2px;
    pointer-events: none;
    transform: scaleX(0);
    transform-origin: left center;
    opacity: 0;
    transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.18s;
}

.ribbon-tab:not(.active):not([data-tab="file"]):hover::after {
    transform: scaleX(1);
    opacity: 1;
}

.ribbon-tab[data-tab="file"]::before {
    content: "";
    position: absolute;
    inset: -4px -2px -2px;
    background: rgba(136, 136, 136, 0.16);
    border-radius: 6px;
    pointer-events: none;
    opacity: 0;
    transform: scale(0.92);
    transition: opacity 0.2s, transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: -1;
}

.ribbon-tab[data-tab="file"]:hover::before {
    opacity: 1;
    transform: scale(1);
}

.ribbon-tab[data-tab="file"]:hover {
    background: transparent;
}

.ribbon-tab-indicator {
    position: absolute;
    bottom: 0px;
    left: 0px;
    height: 3px;
    width: 0px;
    background: var(--ui-accent, #f97316);
    border-radius: 5px;
    pointer-events: none;
    z-index: 1;
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), width 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s;
    will-change: transform, width;
    opacity: 0;
}

.ribbon-tab-indicator.visible {
    opacity: 1;
}

.ribbon {
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(3px);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 12px;
    margin: 0px 12px 12px;
    box-shadow: rgba(0, 0, 0, 0.04) 0px 4px 10px, rgba(0, 0, 0, 0.06) 0px 2px 8px;
    position: relative;
    z-index: 10;
    flex-shrink: 0;
    min-height: 100px;
    transition: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 1;
    transform: translateY(0px);
    will-change: transform, opacity, margin;
    -webkit-font-smoothing: antialiased;
    backface-visibility: hidden;
}

body.no-active-note .ribbon, body.no-active-note .ribbon-tabs {
    opacity: 0;
    transform: translateY(-110%);
    pointer-events: none;
    margin: 0px;
    height: 0px;
    min-height: 0px;
    flex-basis: 0px;
    flex-shrink: 1;
    overflow: hidden;
    padding: 0px;
}

.ribbon.entering, .ribbon-tabs.entering {
    animation: 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) 0s 1 normal none running ribbonSlideDown;
}

@keyframes ribbonSlideDown {
    0% {
        opacity: 0;
        transform: translateY(-20px);
    }

    100% {
        opacity: 1;
        transform: translateY(0px);
    }
}

.ribbon-content {
    padding: 12px;
    min-height: 80px;
    max-height: 96px;
    background: rgba(255, 255, 255, 0.95);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    max-width: 1900px;
    margin: 0px auto;
    border-radius: 8px;
    overflow: auto hidden;
}

.ribbon-panel .ribbon-controls {
    flex-flow: row !important;
    align-items: center !important;
}

.ribbon-panel .ribbon-controls > div, .ribbon-panel .ribbon-controls > label {
    flex-shrink: 0;
}

.ribbon-content::-webkit-scrollbar {
    height: 10px;
}

.ribbon-content::-webkit-scrollbar-track {
    background: rgba(241, 241, 241, 0.9);
}

.ribbon-panel {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: nowrap;
    justify-content: flex-start;
    min-width: max-content;
    padding-right: 12px;
    padding-left: 12px;
    margin: 0px auto;
    opacity: 0;
    filter: blur(4px);
    visibility: hidden;
    pointer-events: none;
    position: absolute;
    top: 0px;
    left: 0px;
    right: 0px;
    transition: opacity 0.3s ease-out, filter 0.3s ease-out, visibility 0.3s;
    will-change: opacity, filter;
}

.ribbon-panel.active {
    opacity: 1;
    filter: blur(0px);
    visibility: visible;
    pointer-events: auto;
    position: relative;
    transition: opacity 0.3s ease-out, filter 0.3s ease-out, visibility;
}

.ribbon-panel.blur-out {
    opacity: 0;
    filter: blur(4px);
    visibility: visible;
    pointer-events: none;
    position: relative;
    transition: opacity 0.18s ease-in, filter 0.18s ease-in, visibility 0.18s;
}

.ribbon-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
    border-right: 1px solid rgba(0, 0, 0, 0.08);
    padding-right: 16px;
    margin-right: 6px;
    flex-shrink: 0;
    min-width: max-content;
}

.ribbon-group:last-child {
    border-right-width: medium;
    border-right-style: none;
    border-right-color: currentcolor;
    padding-right: 0px;
    margin-right: 0px;
}

.group-label, .font-group-label {
    font-size: 10px;
    font-weight: 600;
    color: rgb(156, 163, 175);
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    display: block;
    margin-bottom: 4px;
    font-family: "DM Sans", sans-serif;
}

.ribbon-controls {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-wrap: nowrap;
    min-width: max-content;
}

.ribbon-btn {
    background: rgba(255, 255, 255, 0.6);
    border: 1px solid rgba(0, 0, 0, 0.08);
    padding: 8px 12px;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    min-width: 60px;
    transition: 0.2s;
    font-size: 11px;
    color: rgba(44, 62, 80, 0.8);
    backdrop-filter: blur(3px);
    font-weight: 500;
    box-shadow: rgba(0, 0, 0, 0.05) 0px 1px 3px;
}

.ribbon-btn:hover {
    background: rgba(255, 255, 255, 0.9);
    border-color: var(--ui-accent-border);
    color: rgb(44, 62, 80);
    box-shadow: rgba(0, 0, 0, 0.08) 0px 2px 6px;
}

.ribbon-btn.active {
    background: rgba(249, 115, 22, 0.15);
    border-color: var(--ui-accent);
    color: var(--ui-accent);
    box-shadow: inset 0 0 0 1px var(--ui-accent-border), rgba(249, 115, 22, 0.25) 0px 2px 8px;
}

.ribbon-btn svg {
    width: 16px;
    height: 16px;
}

.ribbon-btn span {
    white-space: nowrap;
    font-size: 10px;
}

.ribbon-btn-vertical {
    padding: 8px 12px;
    min-width: 60px;
    gap: 4px;
}

.ribbon-btn-vertical svg {
    width: 16px;
    height: 16px;
}

.ribbon-btn-vertical span {
    font-size: 10px;
    font-weight: 500;
}

.ribbon-btn-icon {
    flex-direction: row;
    min-width: 28px;
    padding: 5px 8px;
    gap: 0px;
}

.ribbon-btn-icon svg {
    width: 16px;
    height: 16px;
}

.theme-thumbnail-row, .variant-thumbnail-row {
    display: flex;
    gap: 4px;
    align-items: center;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    padding: 2px 0px;
}

.theme-thumbnail-row::-webkit-scrollbar, .variant-thumbnail-row::-webkit-scrollbar {
    display: none;
}

.theme-thumb {
    width: 92px;
    height: 52px;
    border-radius: 6px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    cursor: pointer;
    transition: transform 0.18s, box-shadow 0.18s, border-color 0.18s;
    overflow: hidden;
    position: relative;
    flex-shrink: 0;
    padding: 0px;
    font-family: "DM Sans", sans-serif;
    background-size: cover;
    background-position: center center;
    box-sizing: border-box;
}

.theme-thumb:hover {
    border-color: var(--ui-accent-border);
    box-shadow: rgba(0, 0, 0, 0.08) 0px 2px 6px;
}

.theme-thumb.active {
    border-color: var(--ui-accent);
    box-shadow: 0 0 0 2px var(--ui-accent-soft);
}

.tt-preview {
    position: absolute;
    inset: 14%;
    display: flex;
    flex-direction: column;
    gap: 8%;
}

.tt-title-bar {
    height: 16%;
    width: 52%;
    background: var(--tt-title, #1a1a1a);
    border-radius: 4%;
    flex-shrink: 0;
}

.tt-body {
    display: flex;
    flex-direction: column;
    gap: 14%;
    margin-top: 8%;
    flex: 1 1 0%;
    min-height: 0px;
}

.tt-line {
    height: 9%;
    background: var(--tt-title, #1a1a1a);
    opacity: 0.38;
    border-radius: 4%;
    min-height: 1px;
}

.tt-line-1 {
    width: 92%;
}

.tt-line-2 {
    width: 68%;
}

.tt-line-3 {
    width: 80%;
}

.tt-accent-box {
    position: absolute;
    bottom: 14%;
    right: 14%;
    width: 22%;
    height: 20%;
    background: var(--tt-accent, #f97316);
    border-radius: 8%;
}

.variant-thumb {
    width: 56px;
    height: 40px;
    border-radius: 4px;
    border: 2px solid rgba(0, 0, 0, 0.08);
    cursor: pointer;
    transition: 0.15s;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 700;
    color: rgb(26, 26, 26);
    font-family: "DM Sans", sans-serif;
}

.variant-thumb:hover {
    border-color: var(--ui-accent);
    transform: translateY(-1px);
    box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 8px;
}

.variant-thumb.active {
    border-color: var(--ui-accent);
    box-shadow: 0 0 0 2px var(--ui-accent-soft);
}

.template-thumbnail-row {
    display: flex;
    gap: 4px;
    align-items: center;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    padding: 2px 0px;
}

.template-thumbnail-row::-webkit-scrollbar {
    display: none;
}

.template-thumb {
    width: 92px;
    height: 52px;
    border-radius: 6px;
    border: 1.5px solid rgba(0, 0, 0, 0.08);
    cursor: pointer;
    transition: transform 0.18s, box-shadow 0.18s, border-color 0.18s;
    overflow: hidden;
    position: relative;
    flex-shrink: 0;
    padding: 0px;
    font-family: "DM Sans", sans-serif;
    background-size: cover;
    background-position: center center;
    box-sizing: border-box;
}

.template-thumb:hover {
    border-color: var(--ui-accent-border);
    box-shadow: rgba(0, 0, 0, 0.08) 0px 2px 6px;
}

.template-thumb.active {
    border-color: var(--ui-accent);
    box-shadow: 0 0 0 2px var(--ui-accent-soft);
}


.tpl-preview-el {
    pointer-events: none;
    box-sizing: border-box;
}

.template-gallery-menu {
    max-width: 680px;
    padding: 14px 14px 16px;
    background: rgba(255, 255, 255, 0.99);
    min-width: 580px !important;
}

.template-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px 12px;
    justify-items: stretch;
}

.template-gallery-card {
    background: transparent;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    padding: 0px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 6px;
    text-align: left;
    font-family: "DM Sans", sans-serif;
    transition: transform 0.15s;
}

.template-gallery-card:hover .template-thumb {
    border-color: var(--ui-accent-border);
    box-shadow: rgba(0, 0, 0, 0.08) 0px 2px 6px;
}

.template-gallery-card .template-thumb {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
}

.template-preview-overlay {
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: 0.2s ease-out 0s 1 normal none running fadeInOverlay;
}

.template-preview-modal {
    background: rgb(255, 255, 255);
    border-radius: 12px;
    padding: 24px;
    max-width: 720px;
    width: 90%;
    box-shadow: rgba(0, 0, 0, 0.3) 0px 20px 60px;
    animation: 0.25s ease-out 0s 1 normal none running fadeInModal;
}

.template-preview-box {
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 8px;
    border: 2px solid rgba(0, 0, 0, 0.1);
    position: relative;
    overflow: hidden;
    margin-bottom: 16px;
}

.template-preview-info {
    padding: 8px 0px 12px;
    font-size: 14px;
    line-height: 1.5;
    color: rgb(55, 65, 81);
    font-family: "DM Sans", sans-serif;
}

.template-preview-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}

.template-preview-action-btn {
    padding: 8px 16px;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 6px;
    background: rgb(255, 255, 255);
    color: rgb(55, 65, 81);
    font-size: 13px;
    font-weight: 500;
    font-family: "DM Sans", sans-serif;
    cursor: pointer;
    transition: 0.15s;
}

.template-preview-action-btn:hover {
    border-color: rgba(0, 0, 0, 0.2);
    background: rgb(249, 250, 251);
}

.template-preview-action-btn.primary {
    background: var(--ui-accent);
    color: rgb(255, 255, 255);
    border-color: var(--ui-accent);
}

.template-preview-action-btn.primary:hover {
    background: var(--ui-accent-hover);
}

.theme-gallery-menu {
    max-width: 620px;
    padding: 14px 14px 16px;
    background: rgba(255, 255, 255, 0.99);
    min-width: 520px !important;
}

.theme-gallery-header {
    font-size: 11px;
    font-weight: 600;
    color: rgb(133, 138, 147);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0px 2px 10px;
    border-bottom: 1px solid rgb(240, 240, 240);
    margin-bottom: 12px;
    font-family: "DM Sans", sans-serif;
}

.theme-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px 12px;
    justify-items: stretch;
}

.theme-gallery-card {
    background: transparent;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    padding: 0px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 5px;
    font-family: "DM Sans", sans-serif;
    transition: transform 0.18s;
}


.theme-gallery-card:hover .theme-thumb {
    border-color: var(--ui-accent-border);
    box-shadow: rgba(0, 0, 0, 0.08) 0px 2px 6px;
}

.theme-gallery-card .theme-thumb {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
}

.theme-gallery-label {
    font-size: 10.5px;
    font-weight: 500;
    color: rgb(75, 85, 99);
    margin-top: 1px;
    text-align: center;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 600px) {
    .theme-gallery-menu {
        min-width: 280px !important;
        max-width: 90vw;
    }

    .theme-gallery-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }
}

.draw-color-swatch.active {
    box-shadow: 0 0 0 2px var(--ui-accent-soft);
    border-color: var(--ui-accent) !important;
}

.font-family, .font-size {
    padding: 6px 12px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 6px;
    font-size: 12px;
    margin-right: 6px;
    background: rgba(255, 255, 255, 0.8);
    color: rgba(44, 62, 80, 0.8);
    backdrop-filter: blur(3px);
    transition: 0.2s;
    box-shadow: rgba(0, 0, 0, 0.05) 0px 1px 3px;
}

.font-family {
    width: 120px;
}

.font-size {
    width: 60px;
}

.font-controls {
    display: flex;
    align-items: center;
    gap: 2px;
}

.font-controls .ribbon-btn {
    min-width: 32px;
    padding: 4px 6px;
}

.color-picker {
    width: 28px;
    height: 28px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    cursor: pointer;
    padding: 0px;
    margin: 0px 4px;
    transition: 0.2s;
    backdrop-filter: blur(3px);
}

.main-content {
    display: flex;
    flex: 1 1 0%;
    overflow: hidden;
    transition: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: flex;
    background: transparent;
}

.sidebar {
    width: 295px;
    padding-right: 8px;
    background: rgba(255, 255, 255, 0);
    backdrop-filter: blur(3px);
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    border-radius: 12px 0px 0px 12px;
    transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1), min-width 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
    opacity: 1;
    will-change: width, opacity;
}

body.no-active-note .sidebar {
    pointer-events: none;
    width: 0px;
    min-width: 0px;
    max-width: 0px;
    padding: 0px;
    margin: 0px;
    border: 0px;
    border-radius: 0px;
    backdrop-filter: none;
    visibility: hidden;
    display: none;
}

.sidebar.appearing {
    animation: 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) 0s 1 normal forwards running sidebarSlideIn;
}

@keyframes sidebarSlideIn {
    0% {
        opacity: 0;
        width: 0px;
    }

    100% {
        opacity: 1;
        width: 320px;
    }
}

.sidebar.collapsed {
    width: 60px;
    min-width: 60px;
    margin-left: 4px;
    padding-bottom: 4px;
}

.sidebar-header h3, .sidebar .notes-list, .sidebar .new-note-btn {
    transition: opacity 0.2s;
}

.sidebar.collapsed .sidebar-header h3, .sidebar.collapsed .notes-list {
    opacity: 0;
    pointer-events: none;
}

.sidebar.collapsed .new-note-btn {
    opacity: 0;
    pointer-events: none;
}

.sidebar.collapsed .pres-title-wrap, .sidebar.collapsed .pres-title-input {
    display: none !important;
}

.sidebar.collapsed .sidebar-header {
    justify-content: center;
    flex-direction: column;
    gap: 8px;
}

.sidebar.collapsed .sidebar-toggle {
    order: 0;
}

.sidebar-header {
    padding: 0px 8px 10px 12px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    background: rgba(255, 255, 255, 0);
    backdrop-filter: blur(3px);
    border-radius: 12px 0px 0px;
    gap: 8px;
    position: relative;
    flex-shrink: 0;
}

.sidebar-header .pres-title-input {
    flex: 1 1 0%;
    min-width: 0px;
    width: auto;
}

.sidebar-toggle {
    background: rgba(255, 255, 255, 0.8);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 8px;
    width: 40px;
    height: 40px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.2s;
    color: rgba(44, 62, 80, 0.7);
    backdrop-filter: blur(3px);
    order: 0;
    flex-shrink: 0;
}

.sidebar-toggle:hover {
    background: var(--ui-accent-soft);
    border-color: var(--ui-accent-border);
    color: rgba(249, 115, 22, 0.85);
}

.sidebar-header h3 {
    margin: 0px;
    font-size: 18px;
    color: rgba(44, 62, 80, 0.9);
    font-weight: 600;
    font-family: "DM Sans", sans-serif;
    order: 1;
    flex: 1 1 0%;
}

.new-note-btn {
    background: var(--ui-accent);
    color: white;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    border-radius: 8px;
    padding: 0px;
    width: 40px;
    height: 40px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(3px);
    order: 2;
    flex-shrink: 0;
}

.new-note-btn:hover {
    background: var(--ui-accent-hover);
}

.notes-list {
    flex: 1 1 0%;
    overflow: hidden auto;
    padding: 5px 12px;
}

.note-item {
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 8px;
    padding: 16px 20px;
    margin-bottom: 8px;
    cursor: pointer;
    transition: background 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    backdrop-filter: blur(3px);
    opacity: 1;
    transform: translateX(0px);
}

@keyframes noteItemFadeIn {
    0% {
        opacity: 0;
        transform: translateX(-12px);
    }

    100% {
        opacity: 1;
        transform: translateX(0px);
    }
}

.note-item:hover {
    background: rgb(255, 255, 255);
    transform: translateX(4px);
    box-shadow: rgba(0, 0, 0, 0.08) 0px 2px 8px;
}

.note-item.active {
    box-shadow: rgba(249, 115, 22, 0.15) 0px 4px 16px;
    border-color: rgba(249, 115, 22, 0.2);
    background: rgb(255, 255, 255);
}

.note-item-title {
    font-weight: 600;
    color: rgba(44, 62, 80, 0.9);
    margin-bottom: 6px;
    font-size: 15px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-family: "DM Sans", sans-serif;
}

.note-item-preview {
    color: rgba(44, 62, 80, 0.6);
    font-size: 12px;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-family: "DM Sans", sans-serif;
}

.note-item-date {
    color: rgba(44, 62, 80, 0.4);
    font-size: 11px;
    margin-top: 8px;
    font-weight: 500;
}

.editor-column {
    flex: 1 1 0%;
    display: flex;
    flex-direction: column;
    min-width: 0px;
    min-height: 0px;
    overflow: hidden;
    margin-right: 12px;
    gap: 8px;
    transition: margin 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

body.no-active-note .editor-column {
    margin: 0px;
}

.editor-area {
    flex: 1 1 0%;
    display: flex;
    flex-direction: column;
    background: transparent;
    backdrop-filter: blur(3px);
    position: relative;
    border-radius: 12px;
    margin: 0px;
    transition: margin 0.4s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.4s cubic-bezier(0.4, 0, 0.2, 1), border-radius 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
    will-change: flex, margin, border-radius;
}

body.no-active-note .editor-area {
    border-radius: 0px;
    margin: 0px;
    border-color: transparent;
}

.editor-area.appearing {
    animation: 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) 0s 1 normal none running editorExpand;
}

@keyframes editorExpand {
    0% {
        margin: 0px;
        border-radius: 0px;
        border-color: transparent;
    }

    100% {
        margin: 12px;
        border-radius: 12px;
        border-color: rgba(0, 0, 0, 0.05);
    }
}

.editor-header {
    padding: 20px 24px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(3px);
    border-radius: 0px 12px 0px 0px;
    position: relative;
    z-index: 100;
    transition: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    animation: 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) 0s 1 normal none running headerFadeIn;
}

@keyframes headerFadeIn {
    0% {
        opacity: 0;
        transform: translateY(-10px);
    }

    100% {
        opacity: 1;
        transform: translateY(0px);
    }
}

.note-title {
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    font-size: 24px;
    font-weight: 600;
    color: rgba(0, 0, 0, 0.9);
    background: transparent;
    flex: 1 1 0%;
    outline: none;
    padding: 8px 0px;
    font-family: "DM Sans", sans-serif;
    max-width: 80%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.note-title::placeholder {
    color: rgba(44, 62, 80, 0.4);
}

.editor-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

.action-btn {
    background: rgba(255, 255, 255, 0.8);
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 8px;
    padding: 12px;
    cursor: pointer;
    color: rgba(44, 62, 80, 0.7);
    transition: 0.2s;
    backdrop-filter: blur(3px);
    box-shadow: rgba(0, 0, 0, 0.05) 0px 2px 8px;
    height: 48px;
    box-sizing: border-box;
}

.action-btn:hover {
    background: rgba(220, 53, 69, 0.2);
    border-color: rgb(220, 53, 69);
    color: rgb(220, 53, 69);
    box-shadow: rgba(220, 53, 69, 0.2) 0px 2px 6px;
}

.action-btntwo {
    background: rgba(255, 255, 255, 0.8);
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 8px;
    padding: 12px;
    cursor: pointer;
    color: rgba(44, 62, 80, 0.7);
    transition: 0.2s;
    backdrop-filter: blur(3px);
    box-shadow: rgba(0, 0, 0, 0.05) 0px 2px 8px;
    height: 48px;
    box-sizing: border-box;
}

.action-btntwo:hover {
    background: rgba(56, 88, 220, 0.2);
    border-color: rgb(56, 88, 220);
    color: rgb(56, 75, 220);
    box-shadow: rgba(56, 67, 220, 0.2) 0px 2px 6px;
}

.action-btnthree {
    background: rgba(255, 255, 255, 0.8);
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 8px;
    padding: 12px;
    cursor: pointer;
    transition: 0.2s;
    backdrop-filter: blur(3px);
    height: 48px;
    color: rgba(44, 62, 80, 0.7);
    box-shadow: rgba(217, 220, 56, 0.05) 0px 2px 6px;
}

.action-btnthree:hover {
    background: rgba(217, 220, 56, 0.2);
    border-color: rgb(195, 220, 56);
    color: rgb(220, 209, 56);
    box-shadow: rgba(220, 190, 56, 0.2) 0px 2px 6px;
}

.mobile-back-btn {
    display: none;
}

.editor-content {
    flex: 1 1 0%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: relative;
    z-index: 1;
    min-height: 0px;
    transition: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    animation: 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) 0s 1 normal none running editorContentFadeIn;
}

@keyframes editorContentFadeIn {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

.text-editor {
    flex: 1 1 0%;
    padding: 24px;
    outline: none;
    font-size: 15px;
    line-height: 1.6;
    color: rgba(0, 0, 0, 0.85);
    overflow: hidden auto;
    font-family: "DM Sans", sans-serif;
    background: rgba(255, 255, 255, 0.5);
    overflow-wrap: break-word;
    word-break: break-word;
    white-space: pre-wrap;
    hyphens: auto;
    position: relative;
    min-height: 0px;
}

.collab-presence-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 5px 16px;
    background: linear-gradient(90deg, rgb(240, 253, 244) 0%, rgb(248, 255, 254) 100%);
    border-bottom: 1px solid rgb(187, 247, 208);
    font-size: 12px;
    gap: 8px;
    flex-shrink: 0;
    animation: 0.25s ease 0s 1 normal none running collabBarIn;
}

@keyframes collabBarIn {
    0% {
        opacity: 0;
        transform: translateY(-6px);
    }

    100% {
        opacity: 1;
        transform: translateY(0px);
    }
}

.collab-bar-avatars {
    display: flex;
    align-items: center;
}

.collab-avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    color: rgb(255, 255, 255);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    border: 2px solid rgb(255, 255, 255);
    box-shadow: rgba(0, 0, 0, 0.18) 0px 1px 4px;
    margin-left: -6px;
    position: relative;
    cursor: default;
    transition: transform 0.15s, z-index;
    z-index: 0;
}

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

.collab-avatar:hover {
    transform: translateY(-3px) scale(1.12);
    z-index: 5;
}

.collab-avatar-me {
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--bg, #00b894);
}

.collab-avatar-crown {
    position: absolute;
    top: -13px;
    left: 50%;
    transform: translateX(-50%);
    line-height: 1;
    filter: drop-shadow(rgba(0, 0, 0, 0.4) 0px 1px 3px);
    pointer-events: none;
}

.collab-avatar-overflow {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: -0.5px;
    background: rgb(229, 231, 235) !important;
    color: rgb(55, 65, 81) !important;
}

.collab-bar-right {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.collab-session-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: rgb(16, 185, 129);
    animation: 2s ease 0s infinite normal none running collabPulse;
    margin-right: 2px;
}

@keyframes collabPulse {
    0%, 100% {
        opacity: 1;
        box-shadow: rgba(16, 185, 129, 0.5) 0px 0px 0px 0px;
    }

    50% {
        opacity: 0.7;
        box-shadow: rgba(16, 185, 129, 0) 0px 0px 0px 4px;
    }
}

.collab-session-label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: rgb(5, 150, 105);
    margin-right: 4px;
}

.collab-perm-badge {
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.collab-perm-owner {
    background: rgb(254, 243, 199);
    color: rgb(146, 64, 14);
    border: 1px solid rgb(253, 230, 138);
}

.collab-perm-edit {
    background: rgb(209, 250, 229);
    color: rgb(6, 95, 70);
    border: 1px solid rgb(110, 231, 183);
}

.collab-perm-view {
    background: rgb(241, 245, 249);
    color: rgb(71, 85, 105);
    border: 1px solid rgb(203, 213, 225);
}

.collab-nav-avatars {
    display: flex;
    align-items: center;
    margin-right: 8px;
}

.collab-nav-avatars .collab-avatar {
    width: 26px;
    height: 26px;
    font-size: 11px;
}

.note-item-date {
    display: flex;
    align-items: center;
    gap: 5px;
}

.note-live-dot {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgb(16, 185, 129);
    flex-shrink: 0;
    animation: 2s ease 0s infinite normal none running collabPulse;
}

#statbar-perm {
    margin-left: auto;
    padding-right: 4px;
}

#statbar-perm .collab-perm-badge {
    font-size: 10px;
    padding: 1px 8px;
    border-radius: 999px;
    font-weight: 600;
}

.collab-cursors {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 8;
    overflow: visible;
}

.collab-cursor {
    position: absolute;
    pointer-events: auto;
    width: 14px;
    margin-left: -6px;
    min-height: 18px;
    border-radius: 0px;
    background: transparent !important;
}

.collab-cursor::before {
    content: "";
    position: absolute;
    left: 6px;
    top: 0px;
    width: 2px;
    height: 100%;
    background: var(--cursor-color, #005fa3);
    border-radius: 2px;
    pointer-events: none;
}

.collab-cursor-label {
    position: absolute;
    left: 6px;
    top: -26px;
    padding: 2px 8px;
    border-radius: 4px 4px 4px 0px;
    color: rgb(255, 255, 255);
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    z-index: 10;
    box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 6px;
    letter-spacing: 0.01em;
    pointer-events: none;
    opacity: 0;
    transform: translateY(4px) scale(0.9);
    transform-origin: left bottom;
    transition: opacity 0.18s, transform 0.18s;
}

.collab-cursor-label.label-visible {
    opacity: 1;
    transform: translateY(0px) scale(1);
}

body.collab-view-only .format-btn, body.collab-view-only #insertTableBtn, body.collab-view-only #insertTodoBtn, body.collab-view-only #drawBtn, body.collab-view-only #insertImageBtn, body.collab-view-only #cutBtn, body.collab-view-only #pasteBtn, body.collab-view-only #fontFamilyDropdown .ms-dropdown-btn, body.collab-view-only #fontSizeDropdown .ms-dropdown-btn, body.collab-view-only #fontColorDropdown .ms-dropdown-btn, body.collab-view-only #highlightColorDropdown .ms-dropdown-btn, body.collab-view-only .mobile-ribbon-row .format-btn, body.collab-view-only #mobileInsertTableBtn, body.collab-view-only #mobileInsertImageBtn, body.collab-view-only #mobileInsertTodoBtn, body.collab-view-only #mobileDrawBtn, body.collab-view-only #mobileMoreBtn {
    opacity: 0.35;
    pointer-events: none;
    cursor: not-allowed;
}

body.collab-non-owner #exportNoteBtn, body.collab-non-owner #deleteNoteBtn, body.collab-non-owner #noteColorDropdown {
    display: none !important;
}

#leaveCollabBtn {
    display: none !important;
}

#leaveCollabBtn.visible, body.collab-non-owner #leaveCollabBtn.visible {
    display: inline-flex !important;
}

.text-editor:focus {
    outline: none;
}

.text-editor:empty::before, .text-editor[data-empty="true"]::before {
    content: attr(data-placeholder);
    color: rgba(44, 62, 80, 0.4);
    font-style: italic;
    position: absolute;
    top: 24px;
    left: 24px;
    pointer-events: none;
    white-space: nowrap;
}

.text-editor:focus:empty::before, .text-editor:focus[data-empty="true"]::before {
    color: rgba(44, 62, 80, 0.3);
}

.text-editor p {
    margin: 0px 0px 12px;
}

.text-editor h1, .text-editor h2, .text-editor h3, .text-editor h4, .text-editor h5, .text-editor h6 {
    margin: 16px 0px 8px;
    color: rgb(44, 62, 80);
}

.text-editor ul, .text-editor ol {
    padding-left: 24px;
    margin: 8px 0px;
}

.text-editor li {
    margin: 4px 0px;
}

.text-editor table {
    border-collapse: collapse;
    width: 100%;
    margin: 16px 0px;
}

.text-editor table td, .text-editor table th {
    border: 1px solid rgb(209, 209, 209);
    padding: 8px 12px;
    text-align: left;
}

.text-editor table th {
    background: rgb(248, 249, 250);
    font-weight: 600;
}

.text-editor a {
    color: rgb(0, 120, 212);
    text-decoration: none;
}

.text-editor a:hover {
    text-decoration: underline;
}

.welcome-screen {
    display: flex;
    align-items: stretch;
    justify-content: center;
    flex: 1 1 0%;
    width: 100%;
    background: linear-gradient(135deg, rgb(255, 255, 255) 0%, rgb(252, 255, 252) 100%);
    position: relative;
    overflow: hidden;
    transition: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.welcome-screen.hidden {
    pointer-events: none;
    opacity: 0;
    display: none !important;
}

.welcome-content {
    padding: 40px;
    max-width: 1200px;
    width: 100%;
    animation: 0.6s cubic-bezier(0.4, 0, 0.2, 1) 0s 1 normal none running welcomeFadeIn;
    display: flex;
    flex-direction: column;
    gap: 24px;
    height: 100%;
    overflow: hidden;
}

@keyframes welcomeFadeIn {
    0% {
        opacity: 0;
        transform: translateY(12px);
    }

    100% {
        opacity: 1;
        transform: translateY(0px);
    }
}

.welcome-header {
    display: flex;
    flex-direction: column;
    gap: 24px;
    flex-shrink: 0;
}

.welcome-header-top {
    display: flex;
    align-items: center;
    gap: 24px;
}

.welcome-logo {
    opacity: 0.9;
    filter: drop-shadow(rgba(249, 115, 22, 0.15) 0px 4px 12px);
    animation: 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) 0s 1 normal none running welcomeBounce;
    flex-shrink: 0;
}

@keyframes welcomeBounce {
    0% {
        opacity: 0;
        transform: scale(0.8) translateY(-8px);
    }

    50% {
        transform: scale(1.05);
    }

    100% {
        opacity: 0.9;
        transform: scale(1) translateY(0px);
    }
}

.welcome-header h1 {
    margin: 0px;
    color: rgba(44, 62, 80, 0.95);
    font-weight: 700;
    font-family: "DM Sans", sans-serif;
    font-size: 38px;
    line-height: 1.3;
}

.notes-section {
    display: flex;
    flex-direction: column;
    flex: 1 1 0%;
    overflow: hidden;
}

.section-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-shrink: 0;
}

.section-title h3 {
    margin: 0px;
    font-size: 18px;
    font-weight: 600;
    color: rgba(44, 62, 80, 0.9);
    font-family: "DM Sans", sans-serif;
}

.create-note-btn {
    background: var(--ui-accent);
    color: white;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    border-radius: 8px;
    padding: 10px 20px;
    font-size: 14px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 500;
    font-family: "DM Sans", sans-serif;
    backdrop-filter: blur(3px);
    transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: rgba(249, 115, 22, 0.2) 0px 4px 16px;
    white-space: nowrap;
    flex-shrink: 0;
}

.create-note-btn:hover {
    background: var(--ui-accent-hover);
    box-shadow: rgba(249, 115, 22, 0.3) 0px 8px 24px;
    transform: translateY(-2px);
}

.create-note-btn svg {
    width: 18px;
    height: 18px;
}

.welcome-import-btn {
    background: rgba(255, 255, 255, 0.9);
    color: #374151;
    border: 1px solid rgba(0, 0, 0, 0.1);
    box-shadow: rgba(0, 0, 0, 0.06) 0px 2px 8px;
}

.welcome-import-btn:hover {
    background: rgba(255, 255, 255, 1);
    border-color: var(--ui-accent-border);
    color: var(--ui-accent);
    box-shadow: rgba(249, 115, 22, 0.15) 0px 4px 12px;
}

.notes-list-display {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    overflow: hidden auto;
    padding-right: 8px;
}

.notes-list-display::-webkit-scrollbar {
    width: 8px;
}

.notes-list-display::-webkit-scrollbar-track {
    background: transparent;
}

.notes-list-display::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 4px;
}

.notes-list-display::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 0, 0, 0.3);
}

.note-card {
    background: rgb(255, 255, 255);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 12px;
    padding: 24px;
    cursor: pointer;
    transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    gap: 12px;
    backdrop-filter: blur(3px);
    box-shadow: rgba(0, 0, 0, 0.06) 0px 2px 8px;
    position: relative;
    overflow: hidden;
    min-height: 120px;
}

.note-card.pink {
    background: rgb(255, 228, 225);
}

.note-card.pink:hover {
    background: rgb(255, 212, 206);
}

.note-card.blue {
    background: rgb(230, 243, 255);
}

.note-card.blue:hover {
    background: rgb(204, 230, 255);
}

.note-card.green {
    background: rgb(232, 245, 232);
}

.note-card.green:hover {
    background: rgb(209, 235, 209);
}

.note-card.yellow {
    background: rgb(255, 249, 230);
}

.note-card.yellow:hover {
    background: rgb(255, 243, 204);
}

.note-card.purple {
    background: rgb(255, 247, 237);
}

.note-card.purple:hover {
    background: rgb(255, 237, 213);
}

.note-card-title {
    font-size: 16px;
    font-weight: 600;
    color: rgba(44, 62, 80, 0.95);
    margin: 0px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-family: "DM Sans", sans-serif;
}

.note-card-preview {
    font-size: 14px;
    color: rgba(44, 62, 80, 0.65);
    margin: 0px;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-family: "DM Sans", sans-serif;
    flex: 1 1 0%;
}

.note-card-date {
    font-size: 12px;
    color: rgba(44, 62, 80, 0.5);
    margin: auto 0px 0px;
    font-family: "DM Sans", sans-serif;
}

.no-notes-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 60px 20px;
    text-align: center;
    grid-column: 1 / -1;
}

.no-notes-icon {
    font-size: 128px;
    color: rgba(150, 111, 80, 0.15);
    line-height: 1;
    font-weight: 1000;
}

.no-notes-container p {
    margin: 0px;
    color: rgba(44, 62, 80, 0.6);
    font-family: "DM Sans", sans-serif;
    font-size: 16px;
}

.no-notes-container p:first-of-type {
    font-weight: 500;
    color: rgba(44, 62, 80, 0.8);
}

.no-notes-hint {
    font-size: 14px;
    color: rgba(44, 62, 80, 0.5) !important;
}

@media (max-width: 1023px) {
    .notes-app {
        overflow: hidden;
        position: relative;
    }

    .main-content {
        position: relative;
        overflow: hidden;
    }

    .ribbon {
        margin: 8px;
        border-radius: 10px;
    }

    .ribbon-tabs {
        display: flex;
        justify-content: flex-end;
        padding: 0px 8px;
        margin: 0px 8px 4px;
    }

    .ribbon-tabs-left {
        display: none;
    }

    .ribbon-tabs-right {
        margin-left: 0px;
    }

    .ribbon-tab-action {
        padding: 7px 12px;
        font-size: 13px;
    }

    .ribbon-panel {
        display: none !important;
    }

    .ribbon-content {
        padding: 8px 4px;
        min-height: unset;
        border-radius: 10px;
        justify-content: flex-start;
        overflow-x: auto;
        scrollbar-width: none;
        position: relative;
    }

    .ribbon-content::-webkit-scrollbar {
        display: none;
    }

    .mobile-ribbon-row {
        display: flex;
        align-items: center;
        gap: 6px;
        flex-wrap: nowrap;
        width: 100%;
        padding-right: 16px;
    }

    .mobile-ribbon-row .ribbon-btn {
        min-width: 40px;
        padding: 8px;
        flex-direction: row;
        gap: 0px;
        flex-shrink: 0;
        border-radius: 8px;
    }

    .mobile-ribbon-row .ribbon-btn span {
        display: none;
    }

    .mobile-ribbon-divider {
        width: 1px;
        height: 28px;
        background: rgba(0, 0, 0, 0.1);
        flex-shrink: 0;
        margin: 0px 2px;
    }

    .mobile-more-btn {
        min-width: 40px;
        padding: 8px;
        background: rgba(255, 255, 255, 0.6);
        border: 1px solid rgba(0, 0, 0, 0.08);
        border-radius: 8px;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        color: rgba(44, 62, 80, 0.8);
        flex-shrink: 0;
        font-size: 16px;
        font-weight: 600;
        transition: 0.2s;
    }

    .mobile-more-btn:hover, .mobile-more-btn.active {
        background: var(--ui-accent-selected);
        border-color: var(--ui-accent);
        color: var(--ui-accent);
    }

    .mobile-more-panel {
        display: none;
        position: absolute;
        top: calc(100% + 4px);
        right: 0px;
        background: rgba(255, 255, 255, 0.98);
        backdrop-filter: blur(3px);
        border: 1px solid rgba(0, 0, 0, 0.1);
        border-radius: 10px;
        box-shadow: rgba(0, 0, 0, 0.18) 0px 12px 40px;
        z-index: 5000;
        padding: 8px;
        min-width: 220px;
    }

    .mobile-more-panel.open {
        display: block;
        animation: 0.2s ease 0s 1 normal none running dropdownFadeIn;
    }

    .mobile-more-panel .ms-dropdown {
        margin-bottom: 4px;
    }

    .mobile-more-panel .ms-dropdown-btn {
        width: 100%;
        min-width: unset;
    }

    .mobile-ribbon-row .ms-dropdown {
        flex-shrink: 0;
    }

    .mobile-ribbon-row .ms-dropdown-btn {
        height: 36px;
        min-height: 36px;
        white-space: nowrap;
        font-size: 12px;
    }

    .mobile-ribbon-row .ms-dropdown-menu {
        min-width: 150px;
        max-height: 260px;
        overflow-y: auto;
    }

    .sidebar {
        position: fixed;
        top: 0px;
        left: 0px;
        width: 85vw;
        max-width: 340px;
        height: 100%;
        z-index: 2000;
        transform: translateX(-100%);
        transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
        border-radius: 0px 16px 16px 0px;
        box-shadow: none;
        background: rgba(255, 255, 255, 0.99);
        backdrop-filter: blur(3px);
        overflow: hidden;
        display: flex;
        flex-direction: column;
    }

    .sidebar.mobile-open {
        transform: translateX(0px);
        box-shadow: rgba(0, 0, 0, 0.25) 4px 0px 40px;
    }

    .sidebar.collapsed {
        width: 85vw;
        max-width: 340px;
        min-width: unset;
        transform: translateX(-100%);
    }

    .sidebar.collapsed.mobile-open {
        transform: translateX(0px);
    }

    .sidebar.collapsed .sidebar-header h3, .sidebar.collapsed .notes-list, .sidebar.collapsed .new-note-btn, .sidebar.collapsed .pres-title-input {
        opacity: 1;
        pointer-events: auto;
    }

    .sidebar.collapsed.mobile-open .pres-title-input {
        display: block !important;
    }

    .sidebar.collapsed .sidebar-header {
        justify-content: space-between;
        flex-direction: row;
        padding: 20px;
        gap: 12px;
    }

    .sidebar-header {
        padding: 10px 12px;
        border-radius: 0px 16px 0px 0px;
        flex-shrink: 0;
    }

    .notes-list {
        flex: 1 1 0%;
        overflow-y: auto;
    }

    .sidebar-backdrop {
        display: block;
        position: fixed;
        inset: 0px;
        background: rgba(0, 0, 0, 0.5);
        z-index: 9998;
        backdrop-filter: blur(3px);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.3s;
    }

    .sidebar-backdrop.visible {
        opacity: 1;
        pointer-events: auto;
    }

    .editor-area {
        margin: 0px 8px 8px;
        border-radius: 10px;
        width: calc(100% - 16px);
        flex: 1 1 0%;
        min-width: 0px;
    }

    .editor-header {
        padding: 10px 12px;
        border-radius: 10px 10px 0px 0px;
        gap: 6px;
        flex-wrap: nowrap;
        min-height: 0px;
    }

    .note-title {
        font-size: 16px;
        max-width: none;
        flex: 1 1 0%;
        min-width: 0px;
    }

    .editor-actions {
        gap: 4px;
        flex-shrink: 1;
        flex-wrap: wrap;
        align-items: center;
        overflow-x: auto;
        max-width: 100%;
    }

    .action-btn, .action-btntwo, .action-btnthree, #noteColorDropdown .ms-dropdown-btn {
        height: 36px !important;
        min-height: 36px !important;
        max-height: 36px !important;
        border-radius: 8px !important;
        box-sizing: border-box !important;
        display: flex !important;
        align-items: center !important;
        flex-shrink: 0 !important;
    }

    .action-btn, .action-btntwo, .action-btnthree {
        padding: 0px 10px;
        width: 36px;
        min-width: 36px;
        justify-content: center;
    }

    #noteColorDropdown .ms-dropdown-btn {
        padding: 0px 20px 0px 8px !important;
        width: auto !important;
        min-width: 88px !important;
        justify-content: flex-start !important;
    }

    #noteColorDropdown .dropdown-value {
        font-size: 11px;
        white-space: nowrap;
        display: inline !important;
    }

    #noteColorDropdown .ms-dropdown-btn::after {
        right: 5px;
    }

    #noteColorDropdown .color-preview {
        flex-shrink: 0;
    }

    .swipe-hint {
        position: fixed;
        left: 0px;
        top: 50%;
        transform: translateY(-50%);
        width: 20px;
        height: 48px;
        background: transparent;
        border-radius: 0px 4px 4px 0px;
        z-index: 100;
        pointer-events: auto;
        cursor: pointer;
        transition: opacity 0.3s;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .swipe-hint::after {
        content: "";
        display: block;
        width: 4px;
        height: 48px;
        background: rgba(249, 115, 22, 0.35);
        border-radius: 0px 4px 4px 0px;
        transition: background 0.2s, width 0.2s;
    }

    .swipe-hint:hover::after, .swipe-hint:active::after {
        background: rgba(249, 115, 22, 0.65);
        width: 6px;
    }

    .text-editor {
        padding: 16px;
        font-size: 15px;
    }

    .text-editor:empty::before, .text-editor[data-empty="true"]::before {
        top: 16px;
        left: 16px;
    }

    .welcome-screen {
        padding: 20px;
    }

    .welcome-content h2 {
        font-size: 22px;
    }

    .welcome-content p {
        font-size: 14px;
    }

    .mobile-more-panel .ms-dropdown {
        display: block;
        width: 100%;
    }

    .mobile-more-panel .ms-dropdown-btn {
        width: 100%;
        border-radius: 8px;
    }

    .mobile-more-panel .ms-dropdown-menu {
        min-width: 100%;
    }

    .ribbon {
        position: relative;
    }

    .draw-toolbar {
        left: 8px;
        right: 8px;
        bottom: 16px;
        transform: none;
        width: auto;
        max-width: calc(-16px + 100vw);
        overflow-x: auto;
        scrollbar-width: none;
    }

    .draw-toolbar::-webkit-scrollbar {
        display: none;
    }

    @keyframes drawToolbarIn {
        0% {
            opacity: 0;
            transform: translateY(12px) scale(0.95);
        }

        100% {
            opacity: 1;
            transform: translateY(0px) scale(1);
        }
    }
}

@media (max-width: 480px) {
    .ribbon {
        margin: 6px;
        border-radius: 8px;
    }

    .ribbon-content {
        padding: 6px 10px;
    }

    .editor-area {
        margin: 0px 6px 6px;
        border-radius: 8px;
    }

    .note-title {
        font-size: 16px;
        max-width: 45%;
    }

    .sidebar {
        width: 92vw;
    }

    .draw-toolbar {
        left: 8px;
        right: 8px;
        bottom: 16px;
        transform: none;
        max-width: calc(-16px + 100vw);
        overflow-x: auto;
    }

    @keyframes drawToolbarIn {
        0% {
            opacity: 0;
            transform: translateY(12px) scale(0.95);
        }

        100% {
            opacity: 1;
            transform: translateY(0px) scale(1);
        }
    }

    .symbol-toolbar {
        left: 8px;
        right: 8px;
        bottom: 16px;
        transform: none;
        width: auto;
        max-width: calc(-16px + 100vw);
    }
}

.navbar.sticky-top {
    z-index: 3000 !important;
}

@media (max-width: 1023px) {
    .notes-app, .notes-header, .ribbon, .ribbon-btn, .sidebar, .sidebar-toggle, .sidebar-header, .new-note-btn, .note-item, .editor-area, .editor-header, .action-btn, .action-btntwo, .ms-dropdown-btn, .ms-dropdown-menu, .mobile-more-panel, .welcome-btn, .font-family, .font-size, .delete-modal-content, .table-modal-content, .link-modal-content {
        backdrop-filter: none !important;
    }

    .ribbon {
        background: rgb(255, 255, 255);
    }

    .ribbon-content {
        background: rgb(255, 255, 255);
    }

    .editor-area {
        background: rgb(249, 250, 251);
    }

    .editor-header {
        background: rgb(255, 255, 255);
    }

    .ms-dropdown-menu {
        background: rgb(255, 255, 255);
    }

    .mobile-more-panel {
        background: rgb(255, 255, 255);
    }

    .note-item {
        background: rgb(255, 255, 255);
    }

    .ribbon {
        box-shadow: rgba(0, 0, 0, 0.08) 0px 2px 6px;
    }

    .editor-area {
        box-shadow: none;
    }

    .note-item {
        box-shadow: none !important;
    }

    .note-item.active {
        box-shadow: rgba(249, 115, 22, 0.25) 0px 0px 0px 2px !important;
    }

    .ribbon-btn {
        box-shadow: none !important;
    }

    .action-btn, .action-btntwo {
        box-shadow: none !important;
    }

    .ms-dropdown-menu {
        box-shadow: rgba(0, 0, 0, 0.12) 0px 4px 16px;
    }

    .mobile-more-panel {
        box-shadow: rgba(0, 0, 0, 0.12) 0px 4px 16px;
    }

    .ribbon-btn, .action-btn, .action-btntwo, .sidebar-toggle, .new-note-btn, .mobile-more-btn, .ms-dropdown-btn, .note-item, .ribbon-tab {
        transition: background-color 0.15s, color 0.15s, border-color 0.15s !important;
    }

    .sidebar {
        will-change: transform;
        box-shadow: none;
        transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1) !important;
        background: rgb(255, 255, 255) !important;
    }

    .sidebar.mobile-open {
        box-shadow: rgba(0, 0, 0, 0.15) 3px 0px 20px;
        z-index: 9999;
    }

    .sidebar-backdrop {
        background: rgba(0, 0, 0, 0.5) !important;
    }

    .notes-list, .text-editor {
        transform: translateZ(0px);
        overscroll-behavior: contain;
    }

    .note-item:hover {
        background: rgb(255, 255, 255);
        transform: none;
    }
}

.hidden {
    display: none !important;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0px, 0px, 0px, 0px);
    white-space: nowrap;
    border: 0px;
}

@keyframes fadeIn {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }

    50% {
        opacity: 0.6;
    }
}

.ms-dropdown {
    position: relative;
    display: inline-block;
}

.ms-dropdown-btn {
    background: rgba(255, 255, 255, 0.8);
    border: 1px solid rgba(0, 0, 0, 0.08);
    padding: 6px 24px 6px 12px;
    cursor: pointer;
    border-radius: 6px;
    font-size: 13px;
    color: rgba(44, 62, 80, 0.8);
    transition: 0.2s;
    position: relative;
    min-width: 120px;
    text-align: left;
    backdrop-filter: blur(3px);
    box-shadow: rgba(0, 0, 0, 0.05) 0px 1px 3px;
    font-family: "DM Sans", sans-serif;
    display: flex;
    align-items: center;
}

.color-preview {
    width: 12px;
    height: 12px;
    border-radius: 2px;
    display: inline-block;
    margin-right: 6px;
    transition: 0.2s;
    box-shadow: rgba(255, 255, 255, 0.8) 0px 0px 0px 2px, transparent 0px 0px 0px 3px;
    position: relative;
}

.color-preview[data-color="#ffffff"] {
    border: 1px solid rgb(204, 204, 204);
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.8), 0 0 0 3px var(--ui-accent-ring), 0 1px 3px rgba(249, 115, 22, 0.2);
}

.color-preview[data-color="#ffe4e1"] {
    border: 1px solid rgba(255, 182, 193, 0.4);
    box-shadow: rgba(255, 255, 255, 0.8) 0px 0px 0px 2px, rgba(255, 182, 193, 0.4) 0px 0px 0px 3px, rgba(255, 182, 193, 0.3) 0px 1px 3px;
}

.color-preview[data-color="#e6f3ff"] {
    border: 1px solid rgba(135, 206, 250, 0.4);
    box-shadow: rgba(255, 255, 255, 0.8) 0px 0px 0px 2px, rgba(135, 206, 250, 0.4) 0px 0px 0px 3px, rgba(135, 206, 250, 0.3) 0px 1px 3px;
}

.color-preview[data-color="#e8f5e8"] {
    border: 1px solid rgba(144, 238, 144, 0.4);
    box-shadow: rgba(255, 255, 255, 0.8) 0px 0px 0px 2px, rgba(144, 238, 144, 0.4) 0px 0px 0px 3px, rgba(144, 238, 144, 0.3) 0px 1px 3px;
}

.color-preview[data-color="#fff9e6"] {
    border: 1px solid rgba(255, 255, 224, 0.4);
    box-shadow: rgba(255, 255, 255, 0.8) 0px 0px 0px 2px, rgba(255, 255, 224, 0.4) 0px 0px 0px 3px, rgba(255, 255, 224, 0.3) 0px 1px 3px;
}

.color-preview[data-color="#f3e6ff"] {
    border: 1px solid rgba(249, 115, 22, 0.4);
    box-shadow: rgba(255, 255, 255, 0.8) 0px 0px 0px 2px, rgba(249, 115, 22, 0.4) 0px 0px 0px 3px, rgba(249, 115, 22, 0.3) 0px 1px 3px;
}

#noteColorDropdown .ms-dropdown-btn {
    min-width: 100px;
    justify-content: flex-start;
    padding: 12px 24px 12px 12px;
    height: 48px;
    border-radius: 8px;
    box-sizing: border-box;
}

#noteColorDropdown .dropdown-value {
    flex: 1 1 0%;
    text-align: left;
}

.ms-dropdown-btn::after {
    content: "▼";
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 10px;
    color: rgba(44, 62, 80, 0.6);
    transition: transform 0.2s;
    font-family: "Segoe UI Symbol", "Arial Unicode MS", "DejaVu Sans", sans-serif;
}

.ms-dropdown-btn:hover {
    background: rgba(255, 255, 255, 0.95);
    border-color: var(--ui-accent-border);
    box-shadow: rgba(0, 0, 0, 0.06) 0px 2px 6px;
}

.ms-dropdown-btn[aria-expanded="true"]::after, .ms-dropdown.active .ms-dropdown-btn::after {
    transform: translateY(-50%) rotate(180deg);
    color: var(--ui-accent, #f97316);
}

.ms-dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0px;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(3px);
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 8px;
    box-shadow: rgba(0, 0, 0, 0.2) 0px 12px 40px;
    min-width: 180px;
    z-index: 10000;
    display: none;
    overflow: hidden;
    margin-top: 4px;
}

.ms-dropdown.active .ms-dropdown-menu {
    display: block;
    animation: 0.2s ease 0s 1 normal none running dropdownFadeIn;
}

.ms-dropdown-item {
    padding: 10px 16px;
    cursor: pointer;
    transition: 0.15s;
    color: rgba(44, 62, 80, 0.8);
    font-size: 13px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    font-family: "DM Sans", sans-serif;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ms-dropdown-item:last-child {
    border-bottom-width: medium;
    border-bottom-style: none;
    border-bottom-color: currentcolor;
}

.ms-dropdown-item:hover {
    background: var(--ui-accent-soft);
    color: rgb(44, 62, 80);
}

@keyframes dropdownFadeIn {
    0% {
        opacity: 0;
        transform: translateY(-8px);
    }

    100% {
        opacity: 1;
        transform: translateY(0px);
    }
}

@keyframes dropdownFadeOut {
    0% {
        opacity: 1;
        transform: translateY(0px);
    }

    100% {
        opacity: 0;
        transform: translateY(-8px);
    }
}

.ms-portal-closing {
    animation: 0.15s ease 0s 1 normal forwards running dropdownFadeOut !important;
    pointer-events: none !important;
}

.fade-in {
    animation: 0.3s ease-in-out 0s 1 normal none running fadeIn;
}

@keyframes slideInFromLeft {
    0% {
        transform: translateX(-100%);
    }

    100% {
        transform: translateX(0px);
    }
}

.slide-in-left {
    animation: 0.3s ease-out 0s 1 normal none running slideInFromLeft;
}

.ribbon-btn:focus, .new-note-btn:focus, .action-btn:focus, .welcome-btn:focus {
    outline-offset: 0px;
}

.font-family:focus, .font-size:focus {
    outline: none;
    box-shadow: 0 0 0 2px var(--ui-accent-ring);
    border-radius: 6px;
}

.note-title:focus {
    outline: none;
    box-shadow: none;
}

.delete-modal {
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(3px);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 100000;
    opacity: 0;
    visibility: hidden;
    transition: 0.3s;
}

.delete-modal.show {
    opacity: 1;
    visibility: visible;
}

.delete-modal.show .delete-modal-content {
    opacity: 1;
    animation: 0.25s ease 0s 1 normal both running fadeInModal;
}

.delete-modal-content {
    position: relative;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(3px);
    border-radius: 12px;
    padding: 24px;
    max-width: 400px;
    width: 90%;
    box-shadow: rgba(0, 0, 0, 0.3) 0px 20px 60px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    opacity: 0;
    transition: opacity 0.3s;
    will-change: opacity;
}

.delete-modal-header {
    text-align: center;
    margin-bottom: 16px;
}

.icons-modal-header {
    text-align: center;
}

.delete-modal-icon {
    width: 48px;
    height: 48px;
    background: rgb(238, 90, 82);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0px auto 12px;
    color: white;
    font-size: 24px;
}

.delete-modal-title {
    font-size: 18px;
    font-weight: 600;
    color: rgba(44, 62, 80, 0.9);
    margin: 0px 0px 8px;
    font-family: "DM Sans", sans-serif;
}

.delete-modal-message {
    font-size: 14px;
    color: rgba(44, 62, 80, 0.7);
    line-height: 1.5;
    text-align: center;
    font-family: "DM Sans", sans-serif;
    margin-bottom: 16px;
}

.icons-modal-message {
    font-size: 14px;
    margin-bottom: 6px;
    color: rgba(44, 62, 80, 0.7);
    line-height: 1.5;
    text-align: center;
    font-family: "DM Sans", sans-serif;
}

.delete-modal-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
}

.delete-modal-btn {
    padding: 10px 24px;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: 0.2s;
    font-family: "DM Sans", sans-serif;
    min-width: 100px;
}

.delete-modal-btn-cancel {
    background: rgba(108, 117, 125, 0.1);
    color: rgba(108, 117, 125, 0.8);
    border: 1px solid rgba(108, 117, 125, 0.2);
}

.delete-modal-btn-cancel:hover {
    background: rgba(108, 117, 125, 0.2);
    color: rgb(108, 117, 125);
}

.delete-modal-btn-delete {
    background: rgb(238, 90, 82);
    color: white;
    border: 1px solid rgba(238, 90, 82, 0.3);
}

.delete-modal-btn-delete:hover {
    background: rgb(229, 57, 53);
    box-shadow: rgba(255, 107, 107, 0.4) 0px 4px 12px;
}

.table-modal {
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(3px);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 100000;
    opacity: 0;
    visibility: hidden;
    transition: 0.3s;
}

.table-modal.show {
    opacity: 1;
    visibility: visible;
}

.table-modal-content {
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(3px);
    border-radius: 12px;
    padding: 24px;
    max-width: 400px;
    width: 90%;
    box-shadow: rgba(0, 0, 0, 0.3) 0px 20px 60px;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.table-modal-header {
    text-align: center;
    margin-bottom: 20px;
}

.table-modal-icon {
    width: 48px;
    height: 48px;
    background: rgb(35, 154, 77);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0px auto 12px;
    color: white;
    font-size: 24px;
}

.table-modal-title {
    font-size: 18px;
    font-weight: 600;
    color: rgba(44, 62, 80, 0.9);
    margin: 0px;
    font-family: "DM Sans", sans-serif;
}

.table-modal-body {
    margin-bottom: 24px;
}

.table-input-group {
    margin-bottom: 16px;
}

.table-input-group label {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: rgba(44, 62, 80, 0.8);
    margin-bottom: 8px;
    font-family: "DM Sans", sans-serif;
}

.table-input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 6px;
    font-size: 14px;
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(3px);
    transition: 0.2s;
    font-family: "DM Sans", sans-serif;
}

.table-input:focus {
    outline: none;
    border-color: rgba(35, 154, 77, 0.5);
    box-shadow: rgba(35, 154, 77, 0.1) 0px 0px 0px 3px;
    background: rgba(255, 255, 255, 0.95);
}

.table-modal-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
}

.table-modal-btn {
    padding: 10px 24px;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: 0.2s;
    font-family: "DM Sans", sans-serif;
    min-width: 100px;
}

.table-modal-btn-cancel {
    background: rgba(108, 117, 125, 0.1);
    color: rgba(108, 117, 125, 0.8);
    border: 1px solid rgba(108, 117, 125, 0.2);
}

.table-modal-btn-cancel:hover {
    background: rgba(108, 117, 125, 0.2);
    color: rgb(108, 117, 125);
}

.table-modal-btn-create {
    background: rgb(35, 154, 77);
    color: white;
    border: 1px solid rgba(30, 142, 62, 0.3);
}

.table-modal-btn-create:hover {
    background: rgb(30, 142, 62);
    box-shadow: rgba(35, 154, 77, 0.4) 0px 4px 12px;
}

.link-modal {
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(3px);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 100000;
    opacity: 0;
    visibility: hidden;
    transition: 0.3s;
}

.link-modal.show {
    opacity: 1;
    visibility: visible;
}

.link-modal-content {
    position: relative;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(3px);
    border-radius: 12px;
    padding: 24px;
    max-width: 480px;
    width: 92%;
    box-shadow: rgba(0, 0, 0, 0.3) 0px 20px 60px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    opacity: 0;
    transition: opacity 0.3s;
    will-change: opacity;
}

.link-modal.show .link-modal-content {
    opacity: 1;
    animation: 0.25s ease 0s 1 normal both running fadeInModal;
}

.link-modal-header {
    text-align: center;
    margin-bottom: 20px;
}

.link-modal-icon {
    width: 48px;
    height: 48px;
    background: rgb(0, 95, 163);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0px auto 12px;
    color: white;
    font-size: 24px;
}

.link-modal-title {
    font-size: 18px;
    font-weight: 600;
    color: rgba(44, 62, 80, 0.9);
    margin: 0;
    font-family: "DM Sans", sans-serif;
    text-align: center;
}

.link-modal-body {
    margin-bottom: 24px;
}

.link-input-group {
    margin-bottom: 16px;
}

.link-input-group label {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: rgba(44, 62, 80, 0.8);
    margin-bottom: 8px;
    font-family: "DM Sans", sans-serif;
}

.link-input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 6px;
    font-size: 14px;
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(3px);
    transition: 0.2s;
    font-family: "DM Sans", sans-serif;
}

.link-input:focus {
    outline: none;
    border-color: rgba(0, 122, 204, 0.5);
    box-shadow: rgba(0, 122, 204, 0.1) 0px 0px 0px 3px;
    background: rgba(255, 255, 255, 0.95);
}

.link-modal-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: nowrap;
}

.link-modal-btn {
    padding: 10px 24px;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: 0.2s;
    font-family: "DM Sans", sans-serif;
    min-width: 100px;
}

.link-modal-btn-cancel {
    background: rgba(108, 117, 125, 0.1);
    color: rgba(108, 117, 125, 0.8);
    border: 1px solid rgba(108, 117, 125, 0.2);
}

.link-modal-btn-cancel:hover {
    background: rgba(108, 117, 125, 0.2);
    color: rgb(108, 117, 125);
}

.link-modal-btn-create {
    background: rgb(0, 95, 163);
    color: white;
    border: 1px solid rgba(0, 95, 163, 0.3);
}

.link-modal-btn-create:hover {
    background: rgb(0, 77, 135);
}

#shareModal .link-modal-icon {
    background: rgb(195, 220, 56);
}

#shareModal .link-modal-btn-create#shareModalCopy {
    background: rgb(195, 220, 56);
    color: rgb(44, 62, 80);
    border: 1px solid rgb(181, 208, 0);
}

#shareModal .link-modal-btn-create#shareModalCopy:hover {
    background: rgb(181, 208, 0);
}

.link-modal-btn-create:disabled {
    background: rgba(108, 117, 125, 0.3);
    color: rgba(108, 117, 125, 0.6);
    border: 1px solid rgba(108, 117, 125, 0.2);
    cursor: not-allowed;
}

.link-modal-btn-create:disabled:hover {
    background: rgba(108, 117, 125, 0.3);
}

.validation-feedback {
    font-size: 12px;
    font-family: "DM Sans", sans-serif;
    margin-top: 4px;
    padding: 4px 8px;
    border-radius: 4px;
    font-weight: 500;
    display: none;
    animation: 0.2s ease-out 0s 1 normal none running fadeIn;
}

.validation-feedback.valid {
    background: rgba(35, 154, 77, 0.1);
    color: rgb(35, 154, 77);
    border: 1px solid rgba(35, 154, 77, 0.2);
}

.validation-feedback.invalid {
    background: rgba(220, 53, 69, 0.1);
    color: rgb(220, 53, 69);
    border: 1px solid rgba(220, 53, 69, 0.2);
}

.notes-list::-webkit-scrollbar, .text-editor::-webkit-scrollbar {
    width: 8px;
}

.notes-list::-webkit-scrollbar-track, .text-editor::-webkit-scrollbar-track {
    background: rgb(241, 241, 241);
    border-radius: 4px;
}

.notes-list::-webkit-scrollbar-thumb, .text-editor::-webkit-scrollbar-thumb {
    background: rgb(193, 193, 193);
    border-radius: 4px;
}

.notes-list::-webkit-scrollbar-thumb:hover, .text-editor::-webkit-scrollbar-thumb:hover {
    background: rgb(168, 168, 168);
}

#findReplaceBar {
    position: fixed;
    bottom: 18px;
    right: 18px;
    z-index: 9500;
    background: rgb(255, 255, 255);
    border: 1px solid rgb(209, 213, 219);
    border-radius: 10px;
    box-shadow: rgba(0, 0, 0, 0.14) 0px 4px 5px;
    padding: 12px 14px 10px;
    width: 320px;
    font-family: "DM Sans", sans-serif;
    animation: 0.25s cubic-bezier(0.34, 1.56, 0.64, 1) 0s 1 normal none running frSlideIn;
}

@keyframes frSlideIn {
    0% {
        opacity: 0;
        transform: translateY(12px) scale(0.95);
    }

    100% {
        opacity: 1;
        transform: translateY(0px) scale(1);
    }
}

.fr-header {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 10px;
    color: rgb(55, 65, 81);
}

.fr-title {
    font-size: 13px;
    font-weight: 600;
    flex: 1 1 0%;
}

.fr-close-btn {
    background: none;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    cursor: pointer;
    padding: 2px;
    color: rgb(107, 114, 128);
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s;
}

.fr-close-btn:hover {
    background: rgb(243, 244, 246);
    color: rgb(17, 17, 17);
}

.fr-row {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 6px;
}

.fr-input {
    flex: 1 1 0%;
    padding: 5px 8px;
    border: 1px solid rgb(209, 213, 219);
    border-radius: 6px;
    font-size: 13px;
    font-family: "DM Sans", sans-serif;
    outline: none;
    transition: border-color 0.15s;
    min-width: 0px;
}

.fr-input:focus {
    border-color: rgb(249, 115, 22);
}

.fr-input.fr-no-match {
    border-color: rgb(239, 68, 68);
    background: rgb(255, 245, 245);
}

.fr-nav-btn {
    background: rgb(243, 244, 246);
    border: 1px solid rgb(209, 213, 219);
    border-radius: 5px;
    cursor: pointer;
    padding: 4px 6px;
    display: flex;
    align-items: center;
    color: rgb(55, 65, 81);
    transition: background 0.15s;
    flex-shrink: 0;
}

.fr-nav-btn:hover {
    background: rgb(229, 231, 235);
}

.fr-nav-btn:disabled {
    opacity: 0.4;
    cursor: default;
}

.fr-count {
    font-size: 11px;
    color: rgb(107, 114, 128);
    white-space: nowrap;
    min-width: 44px;
}

.fr-action-btn {
    background: rgb(249, 115, 22);
    color: rgb(255, 255, 255);
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    border-radius: 6px;
    padding: 5px 10px;
    font-size: 12px;
    font-family: "DM Sans", sans-serif;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s;
}

.fr-action-btn:hover {
    background: rgb(234, 88, 12);
}

.fr-action-btn:disabled {
    opacity: 0.4;
    cursor: default;
}

.fr-options {
    margin-top: 2px;
}

.fr-opt-label {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    color: rgb(107, 114, 128);
    cursor: pointer;
    user-select: none;
}

.fr-opt-label input {
    cursor: pointer;
    accent-color: rgb(249, 115, 22);
}

mark.fr-highlight {
    background: rgb(253, 230, 138);
    color: inherit;
    border-radius: 2px;
    padding: 0px;
}

mark.fr-highlight.fr-current {
    background: rgb(245, 158, 11);
    outline: rgb(217, 119, 6) solid 2px;
    border-radius: 2px;
}

@media print {
    .notes-header, .ribbon, .sidebar, .editor-header {
        display: none !important;
    }

    .main-content {
        display: block;
    }

    .editor-area {
        width: 100% !important;
    }

    .text-editor {
        padding: 0px !important;
        font-size: 12pt !important;
        line-height: 1.5 !important;
    }
}

.todo-item {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin: 2px 0px;
    padding: 1px 0px;
}

.todo-checkbox {
    width: 16px;
    height: 16px;
    min-width: 16px;
    margin-top: 2px;
    accent-color: var(--primary-color, #2ecc71);
    cursor: pointer;
}

.todo-label {
    flex: 1 1 0%;
    outline: none;
    word-break: break-word;
}

.todo-item:has(.todo-checkbox:checked) .todo-label {
    text-decoration: line-through;
    color: rgb(136, 136, 136);
}

.draw-toolbar {
    display: none;
    position: fixed;
    bottom: 18px;
    left: 50%;
    transform: translateX(-50%);
    align-items: center;
    gap: 10px;
    padding: 10px 18px;
    background: rgb(255, 255, 255);
    border: 1px solid rgb(209, 213, 219);
    border-radius: 16px;
    box-shadow: rgba(0, 0, 0, 0.14) 0px 4px 5px;
    z-index: 9000;
    flex-wrap: nowrap;
    white-space: nowrap;
    animation: 0.25s cubic-bezier(0.34, 1.56, 0.64, 1) 0s 1 normal none running drawToolbarIn;
}

.draw-toolbar.visible {
    display: flex;
}

@keyframes drawToolbarIn {
    0% {
        opacity: 0;
        transform: translateX(-50%) translateY(12px) scale(0.95);
    }

    100% {
        opacity: 1;
        transform: translateX(-50%) translateY(0px) scale(1);
    }
}

.draw-toolbar-divider {
    width: 1px;
    height: 28px;
    background: rgb(229, 231, 235);
    flex-shrink: 0;
    margin: 0px 2px;
}

.draw-tool-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 12px;
    border: 1px solid rgb(229, 231, 235);
    border-radius: 8px;
    background: rgb(249, 250, 251);
    color: rgb(55, 65, 81);
    cursor: pointer;
    font-size: 13px;
    font-family: "DM Sans", sans-serif;
    font-weight: 500;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    white-space: nowrap;
}

.draw-tool-btn:hover {
    background: rgb(243, 244, 246);
    border-color: rgb(209, 213, 219);
    color: rgb(17, 24, 39);
}

.draw-tool-btn.active {
    background: rgb(255, 247, 237);
    border-color: var(--ui-accent);
    color: var(--ui-accent-hover);
}

.draw-clear-btn {
    color: rgb(220, 38, 38);
    border-color: rgb(254, 202, 202);
    background: rgb(254, 242, 242);
}

.draw-clear-btn:hover {
    background: rgb(254, 226, 226);
    border-color: rgb(239, 68, 68);
    color: rgb(185, 28, 28);
}

.draw-done-btn {
    background: rgb(209, 250, 229);
    border-color: rgb(46, 204, 113);
    color: rgb(6, 95, 70);
    font-weight: 600;
}

.draw-done-btn:hover {
    background: rgb(167, 243, 208);
    border-color: rgb(16, 185, 129);
    color: rgb(6, 78, 59);
}

.draw-section-label {
    font-size: 10px;
    font-weight: 600;
    color: rgb(156, 163, 175);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    display: block;
    margin-bottom: 4px;
    font-family: "DM Sans", sans-serif;
}

.draw-color-section, .draw-size-section {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

.draw-color-section {
    overflow: hidden;
    max-width: 300px;
    transition: max-width 0.3s, opacity 0.3s, padding 0.3s;
    opacity: 1;
}

.draw-color-section.eraser-hidden {
    max-width: 0px;
    opacity: 0;
    pointer-events: none;
    padding: 0px;
    gap: 0px;
}

.draw-toolbar-divider.color-divider {
    transition: max-width 0.3s, opacity 0.3s;
    overflow: hidden;
    max-width: 10px;
    opacity: 1;
}

.draw-toolbar-divider.color-divider.eraser-hidden {
    max-width: 0px;
    opacity: 0;
}

.draw-color-presets {
    display: flex;
    align-items: center;
    gap: 4px;
}

.draw-color-swatch {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid transparent;
    cursor: pointer;
    transition: transform 0.12s, border-color 0.12s;
    flex-shrink: 0;
    padding: 0px;
}

.draw-color-swatch:hover {
    transform: scale(1.15);
}

.draw-color-swatch.active {
    border-color: rgb(55, 65, 81);
    transform: scale(1.15);
    box-shadow: rgb(255, 255, 255) 0px 0px 0px 1px inset;
}

.draw-color-custom {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid rgb(229, 231, 235);
    background: conic-gradient(red, yellow, lime, cyan, blue, magenta, red);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    transition: transform 0.12s;
    flex-shrink: 0;
    color: rgb(255, 255, 255);
}

.draw-color-custom:hover {
    transform: scale(1.15);
}

.draw-size-presets {
    display: flex;
    align-items: center;
    gap: 6px;
}

.draw-size-btn {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    border: 1px solid rgb(229, 231, 235);
    background: rgb(249, 250, 251);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.12s, border-color 0.12s;
    color: rgb(55, 65, 81);
    padding: 0px;
}

.draw-size-btn:hover {
    background: rgb(243, 244, 246);
    border-color: rgb(209, 213, 219);
}

.draw-size-btn.active {
    background: rgb(255, 247, 237);
    border-color: var(--ui-accent);
    color: var(--ui-accent-hover);
}

.symbol-toolbar {
    display: none;
    position: fixed;
    bottom: 18px;
    left: 50%;
    transform: translateX(-50%);
    align-items: center;
    gap: 0px;
    padding: 10px 16px;
    background: rgb(255, 255, 255);
    border: 1px solid rgb(209, 213, 219);
    border-radius: 16px;
    box-shadow: rgba(0, 0, 0, 0.14) 0px 4px 5px;
    z-index: 9000;
    max-width: 94vw;
    animation: 0.25s cubic-bezier(0.34, 1.56, 0.64, 1) 0s 1 normal none running drawToolbarIn;
}

.symbol-toolbar.visible {
    display: flex;
}

.symbol-bar-scroll {
    display: flex;
    align-items: center;
    gap: 0px;
    overflow: auto hidden;
    flex: 1 1 0%;
    padding: 0px 4px;
}

.symbol-group {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
    padding: 0px 8px;
    flex-shrink: 0;
}

.symbol-section-label {
    font-size: 10px;
    font-weight: 600;
    color: rgb(156, 163, 175);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-family: "DM Sans", sans-serif;
    line-height: 1;
}

.symbol-group-row {
    display: flex;
    align-items: center;
    gap: 2px;
}

.sym-bar-btn {
    width: 32px;
    height: 32px;
    border: 1px solid rgba(0, 0, 0, 0.04);
    border-radius: 6px;
    background: rgb(255, 255, 255);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s, border-color 0.15s, color 0.15s, transform 0.12s;
    font-size: 16px;
    color: rgb(44, 62, 80);
    padding: 0px;
    outline: none;
    font-family: "DM Sans", sans-serif;
    line-height: 1;
}

.sym-bar-btn:hover {
    background: rgba(249, 115, 22, 0.08);
    border-color: rgba(249, 115, 22, 0.2);
    color: var(--ui-accent);
    transform: scale(1.1);
}

.sym-bar-btn:active {
    transform: scale(1);
    background: rgba(249, 115, 22, 0.12);
}

.symbol-toolbar-divider {
    width: 1px;
    height: 28px;
    background: rgb(229, 231, 235);
    flex-shrink: 0;
    margin: 0px 4px;
}

.draw-label {
    font-size: 12px;
    color: rgb(107, 114, 128);
    display: flex;
    align-items: center;
    gap: 6px;
    font-family: "DM Sans", sans-serif;
}

.draw-label input[type="color"] {
    width: 28px;
    height: 24px;
    border: 1px solid rgb(229, 231, 235);
    border-radius: 6px;
    cursor: pointer;
    padding: 2px;
    background: transparent;
}

.draw-label input[type="range"] {
    accent-color: var(--ui-accent);
    vertical-align: middle;
}

#drawingCanvas {
    display: block;
    position: absolute;
    top: 0px;
    left: 0px;
    width: 960px;
    height: 540px;
    pointer-events: none;
    z-index: 50;
    cursor: default;
}

#drawingCanvas[style*="pointer-events: all"] {
    cursor: crosshair;
}

#drawingCanvas.eraser-active {
    cursor: crosshair;
}

#tableToolbar {
    display: none;
    position: fixed;
    z-index: 8000;
    background: rgb(255, 255, 255);
    border: 1px solid rgb(209, 213, 219);
    border-radius: 6px;
    box-shadow: rgba(0, 0, 0, 0.15) 0px 2px 8px;
    padding: 4px 6px;
    gap: 3px;
    align-items: center;
    font-size: 12px;
}

.tbl-btn {
    background: rgb(243, 244, 246);
    border: 1px solid rgb(209, 213, 219);
    border-radius: 4px;
    padding: 3px 8px;
    font-size: 11px;
    cursor: pointer;
    color: rgb(55, 65, 81);
    white-space: nowrap;
    transition: background 0.15s;
}

.tbl-btn:hover {
    background: rgb(229, 231, 235);
    border-color: rgb(156, 163, 175);
}

.tbl-btn-danger {
    color: rgb(220, 38, 38);
    border-color: rgb(252, 165, 165);
    background: rgb(254, 242, 242);
}

.tbl-btn-danger:hover {
    background: rgb(254, 226, 226);
    border-color: rgb(248, 113, 113);
}

.text-editor img {
    max-width: 100%;
    height: auto;
    border-radius: 6px;
    box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 8px;
    cursor: default;
    display: inline-block;
    vertical-align: middle;
    transition: box-shadow 0.15s, outline 0.15s;
}

.text-editor img:hover {
    box-shadow: rgba(0, 0, 0, 0.18) 0px 4px 16px;
    outline: rgba(249, 115, 22, 0.4) solid 2px;
    outline-offset: 2px;
}

.text-editor img.img-selected {
    outline: 2px solid var(--ui-accent);
    outline-offset: 2px;
}

.text-editor.drag-over {
    outline: 3px dashed var(--ui-accent);
    outline-offset: -3px;
    background: rgba(249, 115, 22, 0.04) !important;
}

.img-resize-wrapper {
    display: inline-block;
    position: relative;
    line-height: 0;
    user-select: none;
}

.img-resize-handle {
    position: absolute;
    width: 10px;
    height: 10px;
    background: var(--ui-accent);
    border: 2px solid rgb(255, 255, 255);
    border-radius: 2px;
    cursor: se-resize;
    bottom: -5px;
    right: -5px;
    z-index: 20;
}

.text-editor table {
    table-layout: fixed;
    width: 100%;
    border-collapse: collapse;
    position: relative;
}

.col-resize-handle {
    position: absolute;
    top: 0px;
    width: 4px;
    height: 100%;
    cursor: col-resize;
    background: transparent;
    z-index: 5;
    transition: background 0.15s;
}

.col-resize-handle:hover, .col-resize-handle.dragging {
    background: rgba(249, 115, 22, 0.5);
}

table.em-floating {
    position: absolute;
    z-index: 100;
    cursor: move;
    box-shadow: rgba(0, 0, 0, 0.18) 0px 8px 32px;
    border-radius: 6px;
    border: 2px solid var(--ui-accent);
    min-width: 120px;
}

table.em-floating:hover {
    box-shadow: rgba(0, 0, 0, 0.25) 0px 12px 40px;
}

.table-drag-handle {
    display: none;
    position: absolute;
    top: -26px;
    left: 0px;
    background: var(--ui-accent);
    color: rgb(255, 255, 255);
    border-radius: 5px 5px 0px 0px;
    padding: 3px 8px;
    font-size: 11px;
    font-family: "DM Sans", sans-serif;
    font-weight: 500;
    cursor: move;
    align-items: center;
    gap: 5px;
    user-select: none;
    white-space: nowrap;
    z-index: 101;
}

table.em-floating .table-drag-handle {
    display: flex;
}

#canvasDragHandle {
    display: none;
    position: absolute;
    z-index: 20;
    background: rgba(249, 115, 22, 0.9);
    color: rgb(255, 255, 255);
    border-radius: 6px;
    padding: 4px 10px;
    font-size: 11px;
    font-family: "DM Sans", sans-serif;
    font-weight: 500;
    cursor: move;
    align-items: center;
    gap: 5px;
    user-select: none;
    white-space: nowrap;
    top: 8px;
    right: 8px;
    box-shadow: rgba(0, 0, 0, 0.15) 0px 2px 8px;
}

#canvasDragHandle.visible {
    display: flex;
}

#fontFamilyDropdown .ms-dropdown-menu {
    max-height: 320px;
    overflow-y: auto;
    min-width: 200px;
}

#fontColorDropdown .ms-dropdown-menu, #highlightColorDropdown .ms-dropdown-menu, #fillColorDropdown .color-list-menu, #strokeColorDropdown .color-list-menu, #noteColorDropdown .ms-dropdown-menu {
    max-height: 240px;
    overflow-y: auto;
}

#mobileFontFamilyDropdown .ms-dropdown-menu {
    max-height: 240px;
    overflow-y: auto;
}

#mobileFontColorDropdown .ms-dropdown-menu, #mobileHighlightDropdown .ms-dropdown-menu {
    max-height: 240px;
    overflow-y: auto;
}

#superscriptBtn text {
    font-family: "DM Sans", sans-serif;
}

#insertImageBtn {
    position: relative;
}

#drawingCanvas {
    outline: none;
}

#drawingCanvas[style*="display: none"], #drawingCanvas[style*="display:none"] {
    width: 0px !important;
    height: 0px !important;
}

.editor-statusbar {
    display: flex;
    align-items: center;
    gap: 0px;
    padding: 5px 20px;
    background: rgb(241, 245, 249);
    color: rgb(100, 116, 139);
    font-size: 12px;
    font-family: "DM Sans", system-ui, sans-serif;
    user-select: none;
    flex-shrink: 0;
    min-height: 30px;
}

.editor-statusbar .statbar-item {
    white-space: nowrap;
    padding: 0px 12px;
    font-weight: 500;
    letter-spacing: 0.01em;
}

body.no-active-note .editor-header, body.no-active-note .editor-content, body.no-active-note .editor-statusbar {
    display: none !important;
}

body.no-active-note .ribbon, body.no-active-note .ribbon * {
    pointer-events: none !important;
}

body.no-active-note .ribbon {
    display: none;
    opacity: 0 !important;
    transform: translateY(-110%) !important;
    pointer-events: none !important;
    margin: 0px !important;
    height: 0px !important;
    min-height: 0px !important;
    flex-basis: 0px !important;
    flex-shrink: 1 !important;
    overflow: hidden !important;
    padding: 0px !important;
}

.sidebar.collapsed .sidebar-header h3, .sidebar.collapsed .new-note-btn, .sidebar.collapsed .notes-list {
    transition: opacity !important;
    opacity: 0 !important;
}

#canvasResizeHandle {
    display: none;
    position: absolute;
    z-index: 21;
    width: 14px;
    height: 14px;
    background: var(--ui-accent);
    border: 2px solid rgb(255, 255, 255);
    border-radius: 3px;
    cursor: se-resize;
    box-shadow: rgba(0, 0, 0, 0.18) 0px 2px 6px;
}

#canvasResizeHandle.visible {
    display: block;
}

#drawingCanvas {
    background: transparent;
}

.img-resize-wrapper.selected {
    outline: 2px solid var(--ui-accent);
    outline-offset: 2px;
}

.img-resize-wrapper > img {
    display: block;
    cursor: move;
}

@media (max-width: 1400px) {
    .notes-list-display {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 900px) {
    .notes-list-display {
        grid-template-columns: 1fr;
    }

    .welcome-content {
        padding: 30px;
    }

    .welcome-header-top {
        flex-direction: column;
        text-align: center;
    }

    .welcome-header h1 {
        font-size: 28px;
    }
}

@media (max-width: 640px) {
    .welcome-content {
        padding: 20px;
        gap: 16px;
    }

    .welcome-header {
        gap: 16px;
    }

    .welcome-logo {
        width: 48px;
        height: 48px;
    }

    .welcome-header h1 {
        font-size: 24px;
    }

    .section-title {
        flex-direction: column;
        align-items: flex-start;
    }

    .create-note-btn {
        width: 100%;
        justify-content: center;
    }
}

.ribbon-btn:disabled, #undoBtn:disabled, #redoBtn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
}

.slide-canvas-wrapper {
    flex: 1 1 0%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    overflow: visible;
    position: relative;
    min-height: 0px;
}

.slide-canvas-scaler {
    position: relative;
    transform-origin: center center;
    overflow: visible;
}

.slide-canvas {
    width: 960px;
    height: 540px;
    position: relative;
    background: rgb(255, 255, 255);
    box-shadow: rgba(0, 0, 0, 0.01) 0px 8px 12px, rgba(0, 0, 0, 0.08) 0px 2px 8px;
    overflow: visible;
    border-radius: 4px;
    clip-path: none;
    user-select: none;
    cursor: default;
}

.slide-el {
    position: absolute;
    box-sizing: border-box;
    cursor: move;
    outline: none;
    user-select: none;
    -webkit-user-drag: none;
}

.slide-el:hover:not(.selected):not(.editing) {
    outline: rgba(249, 115, 22, 0.5) dashed 1.5px;
}

.slide-el.selected {
    outline: 2px solid var(--ui-accent);
    outline-offset: 1px;
    overflow: visible;
}

.slide-el.editing {
    cursor: text;
    outline: 2px solid var(--ui-accent);
    outline-offset: 1px;
    overflow: visible;
}

.slide-el-text {
    padding: 8px 10px;
    overflow: visible;
    word-break: break-word;
    hyphens: auto;
    line-height: 1.3;
}

.slide-el.selected.slide-el-text, .slide-el.editing.slide-el-text {
    overflow: visible;
}

.slide-el-text .text-content {
    outline: none;
    min-height: 1em;
    word-break: break-word;
    white-space: pre-wrap;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.slide-el-text .text-content:empty::before {
    content: attr(data-placeholder);
    color: rgba(0, 0, 0, 0.3);
    pointer-events: none;
}

.slide-el-text .text-content:focus {
    outline: none;
}

.slide-el.has-link:not(.editing) .text-content {
    color: rgb(37, 99, 235);
    text-decoration: underline rgba(37, 99, 235, 0.5);
    cursor: pointer;
}

.slide-el.has-link.editing .text-content {
    color: inherit;
    text-decoration: inherit;
}

.slide-el.has-link:not(.selected):not(.editing) {
    cursor: pointer;
}

.slide-el.has-link.selected:not(.editing) {
    cursor: pointer;
}

.slide-el.has-link:not(.editing):hover {
    cursor: pointer;
}

.slide-el-text .text-content ul, .slide-el-text .text-content ol {
    margin: 0px;
    padding-left: 1.5em;
    list-style-position: outside;
}

.slide-el-text .text-content ul {
    list-style-type: disc;
}

.slide-el-text .text-content ol {
    list-style-type: decimal;
}

.slide-el-text .text-content li {
    margin: 0px;
}

.slide-el-shape svg {
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
}

.slide-el-image-wrap {
    position: absolute;
    inset: 0px;
    overflow: hidden;
    border-radius: inherit;
}

.slide-el-image-wrap img {
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
    object-fit: fill;
}

.slide-el-video-wrap {
    position: absolute;
    inset: 0px;
    overflow: hidden;
    background: rgb(0, 0, 0);
    border-radius: inherit;
}

.slide-el-video-wrap video {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    background: rgb(0, 0, 0);
}

.slide-el-image img {
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
    object-fit: fill;
}

.slide-el-video video {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    background: rgb(0, 0, 0);
}

.slide-el-audio {
    border-radius: 0px;
    background: linear-gradient(135deg, rgb(30, 30, 46) 0%, rgb(42, 42, 60) 100%);
    overflow: hidden;
}

.slide-el-video.selected video, .slide-el-audio.selected audio {
    pointer-events: auto;
}

.slide-el.editing {
    cursor: text !important;
    user-select: text !important;
}

.slide-el.editing .text-content {
    cursor: text;
    user-select: text !important;
}

.el-handles {
    position: absolute;
    inset: 0px;
    pointer-events: none;
    z-index: 9999;
}

.el-handle {
    position: absolute;
    width: 10px;
    height: 10px;
    background: rgb(255, 255, 255);
    border: 2px solid var(--ui-accent);
    border-radius: 2px;
    pointer-events: all;
    box-shadow: rgba(0, 0, 0, 0.2) 0px 1px 4px;
    transform: translate(-50%, -50%);
    transition: transform 0.1s, background 0.1s;
    z-index: 10000;
}

.el-handle:hover {
    background: var(--ui-accent);
    transform: translate(-50%, -50%) scale(1.3);
}

.el-handle.nw {
    top: 0px;
    left: 0px;
    cursor: nw-resize;
}

.el-handle.n {
    top: 0px;
    left: 50%;
    cursor: n-resize;
}

.el-handle.ne {
    top: 0px;
    left: 100%;
    cursor: ne-resize;
}

.el-handle.e {
    top: 50%;
    left: 100%;
    cursor: e-resize;
}

.el-handle.se {
    top: 100%;
    left: 100%;
    cursor: se-resize;
}

.el-handle.s {
    top: 100%;
    left: 50%;
    cursor: s-resize;
}

.el-handle.sw {
    top: 100%;
    left: 0px;
    cursor: sw-resize;
}

.el-handle.w {
    top: 50%;
    left: 0px;
    cursor: w-resize;
}

.el-rotate-handle {
    position: absolute;
    top: -28px;
    left: 50%;
    transform: translateX(-50%);
    width: 20px;
    height: 20px;
    background: white;
    border: 2px solid var(--ui-accent);
    border-radius: 50%;
    pointer-events: all;
    cursor: grab;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 6px;
    z-index: 10000;
}

.el-rotate-handle:active {
    cursor: grabbing;
}

.el-rotate-handle svg {
    width: 11px;
    height: 11px;
    stroke: var(--ui-accent);
    pointer-events: none;
}

.el-rotate-handle::before {
    content: "";
    position: absolute;
    bottom: -12px;
    left: 50%;
    transform: translateX(-50%);
    width: 1.5px;
    height: 10px;
    background: var(--ui-accent);
}

.selection-marquee {
    position: absolute;
    border: 1.5px dashed var(--ui-accent);
    background: rgba(249, 115, 22, 0.05);
    pointer-events: none;
    z-index: 5000;
    border-radius: 2px;
}

.slide-thumb-item {
    position: relative;
    margin-bottom: 10px;
    border-radius: 4px;
    overflow: hidden;
    cursor: pointer;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    background: transparent;
    outline: rgba(0, 0, 0, 0.4) solid 2px;
    box-shadow: none;
    transition: outline 0.2s, box-shadow 0.2s;
    display: flex;
    flex-direction: column;
    animation: 0.3s cubic-bezier(0.4, 0, 0.2, 1) 0s 1 normal none running noteItemFadeIn;
}

.slide-thumb-item:hover {
    outline: rgba(249, 115, 22, 0.4) solid 2px;
    outline-offset: 1px;
}

.slide-thumb-item.active {
    outline: 2px solid var(--ui-accent);
    outline-offset: 1px;
    box-shadow: rgba(249, 115, 22, 0.18) 0px 2px 8px;
}

.slide-thumb-item.drag-over {
    outline: 2px dashed var(--ui-accent);
    outline-offset: 1px;
}

.slide-thumb-number {
    position: absolute;
    top: 7px;
    left: 7px;
    font-size: 10px;
    font-weight: 900;
    color: rgba(0, 0, 0, 0.5);
    z-index: 2;
    font-family: "DM Sans", sans-serif;
    line-height: 1;
    background: rgba(255, 255, 255, 0.85);
    border-radius: 5px;
    padding: 6px 8px;
}

.slide-thumb-canvas-wrap {
    width: 100%;
    position: relative;
    overflow: hidden;
    background: transparent;
    box-sizing: border-box;
}

.slide-thumb-inner {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 960px;
    height: 560px;
    transform-origin: left top;
    pointer-events: none;
    overflow: hidden;
}

.shape-dropdown-menu {
    max-width: 440px;
    max-height: 460px;
    overflow-y: auto;
    min-width: 380px !important;
    padding: 12px 14px !important;
}

.shape-cat-label {
    font-size: 11px;
    font-weight: 600;
    color: rgb(133, 138, 147);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0px 2px 10px;
    border-bottom: 1px solid rgb(240, 240, 240);
    margin-bottom: 12px;
    margin-top: 12px;
    font-family: "DM Sans", sans-serif;
}

.shape-cat-label:first-child {
    border-top-width: medium;
    border-top-style: none;
    border-top-color: currentcolor;
    margin-top: 0px;
    padding-top: 2px;
}

.shape-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 6px;
}

.shape-option {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    padding: 8px 4px 6px;
    border: 1px solid rgba(0, 0, 0, 0.04);
    border-radius: 6px;
    background: rgb(255, 255, 255);
    cursor: pointer;
    transition: 0.15s;
    color: rgb(44, 62, 80);
    font-size: 10px;
    font-weight: 500;
    font-family: "DM Sans", sans-serif;
    line-height: 1.2;
}

.shape-option:hover {
    background: rgba(249, 115, 22, 0.08);
    border-color: rgba(249, 115, 22, 0.2);
    color: var(--ui-accent);
}

.shape-option svg {
    width: 36px;
    height: 26px;
    stroke: rgb(44, 62, 80);
}

.shape-option:hover svg {
    stroke: var(--ui-accent);
}

.color-grid-menu {
    min-width: 200px !important;
    padding: 10px !important;
}

.color-list-menu {
    min-width: 180px !important;
    max-height: 240px !important;
    overflow-y: auto !important;
    padding: 0px !important;
}

.color-list-menu .ms-dropdown-item {
    padding: 10px 16px;
    font-size: 13px;
}

.color-list-menu .ms-dropdown-item .color-preview {
    box-shadow: none;
}

.bg-color-list-menu {
    min-width: 160px !important;
    max-width: 200px !important;
    max-height: 320px !important;
    overflow-y: auto !important;
    padding: 0px !important;
}

.bg-color-list-menu .ms-dropdown-item {
    padding: 8px 14px;
    font-size: 13px;
}

.bg-color-list-menu .ms-dropdown-item .color-preview {
    box-shadow: none;
}

.bg-color-list-menu .ms-dropdown-item.bg-gradient-item .color-preview {
    border: 1px solid rgba(0, 0, 0, 0.15);
}

.ms-dropdown-section-label {
    padding: 6px 14px 4px;
    font-size: 10px;
    color: rgb(156, 163, 175);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.ms-dropdown-section-label:first-child {
    border-top-width: medium;
    border-top-style: none;
    border-top-color: currentcolor;
}

.color-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
    margin-bottom: 4px;
}

.color-dot {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 2px solid transparent;
    cursor: pointer;
    transition: transform 0.15s, border-color 0.15s;
    outline: none;
    padding: 0px;
}

.color-dot:hover {
    transform: scale(1.2);
    border-color: rgba(0, 0, 0, 0.25);
}

.color-dot.active {
    transform: scale(1.1);
    border-color: var(--ui-accent) !important;
}

.bg-color-btn {
    width: 36px;
    height: 36px;
    border-radius: 6px;
    border: 2px solid transparent;
    cursor: pointer;
    transition: transform 0.15s, border-color 0.15s;
    outline: none;
    padding: 0px;
}

.bg-color-btn:hover {
    transform: scale(1.15);
    border-color: rgba(0, 0, 0, 0.3);
}

.bg-color-btn.active {
    border-color: var(--ui-accent);
    transform: scale(1.1);
}

#shapeDropdown .ms-dropdown-btn.ribbon-btn, #bgDropdown .ms-dropdown-btn.ribbon-btn {
    flex-direction: column;
    gap: 4px;
    min-width: 60px;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 10px;
}

#designerModal .link-modal-content {
    max-height: 85vh;
    overflow-y: auto;
}

.link-modal-close-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: none;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    cursor: pointer;
    color: rgba(108, 117, 125, 0.5);
    transition: background 0.15s, color 0.15s;
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
}

.link-modal-close-btn:hover {
    background: rgba(0, 0, 0, 0.06);
    color: rgba(44, 62, 80, 0.7);
}

.designer-layout-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.designer-layout-card {
    background: rgb(255, 255, 255);
    border: 1.5px solid rgba(0, 0, 0, 0.08);
    border-radius: 10px;
    padding: 0px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 6px;
    text-align: center;
    font-family: "DM Sans", sans-serif;
    transition: transform 0.18s, box-shadow 0.18s, border-color 0.18s;
    overflow: hidden;
}

.designer-layout-card:hover {
    transform: translateY(-2px);
    box-shadow: rgba(0, 0, 0, 0.1) 0px 6px 16px;
    border-color: var(--ui-accent-border);
}

.designer-layout-preview {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    border-radius: 8px 8px 0px 0px;
    overflow: hidden;
}

.designer-layout-name {
    font-size: 13px;
    font-weight: 600;
    color: rgba(44, 62, 80, 0.9);
    padding: 6px 8px 0px;
}

.designer-layout-desc {
    font-size: 11px;
    color: rgba(44, 62, 80, 0.5);
    padding: 0px 8px 8px;
}

@keyframes fadeInOverlay {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes fadeInModal {
    0% {
        opacity: 0;
        transform: translateY(10px) scale(0.98);
    }

    100% {
        opacity: 1;
        transform: translateY(0px) scale(1);
    }
}

.present-overlay {
    position: fixed;
    inset: 0px;
    background: rgb(0, 0, 0);
    z-index: 100000;
    overflow: hidden;
    opacity: 0;
    transition: opacity 0.3s;
}

.present-overlay.visible {
    opacity: 1;
}

.present-toolbar {
    position: absolute;
    bottom: 0px;
    left: 0px;
    right: 0px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    z-index: 100001;
    padding: 12px 20px 16px;
    opacity: 0;
    transition: opacity 0.3s;
    pointer-events: none;
}

.present-overlay:hover .present-toolbar, .present-overlay .present-toolbar:focus-within {
    opacity: 1;
    pointer-events: auto;
}

.present-toolbar-btn {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    background: rgba(0, 0, 0, 0.35);
    color: rgba(255, 255, 255, 0.85);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    transition: background 0.2s, transform 0.15s;
}

.present-toolbar-btn:hover {
    background: rgba(0, 0, 0, 0.5);
}

.present-exit-btn {
    background: rgba(255, 0, 0, 0.35);
}

.present-exit-btn:hover {
    background: rgba(255, 0, 0, 0.5);
}

.present-counter {
    background: rgba(0, 0, 0, 0.35);
    color: rgba(255, 255, 255, 0.85);
    font-size: 12px;
    font-family: "DM Sans", sans-serif;
    font-weight: 500;
    min-width: 48px;
    min-height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    user-select: none;
    letter-spacing: 0.3px;
}

.present-slide-container {
    position: absolute;
    inset: 0px;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.present-slide {
    width: 960px;
    height: 540px;
    position: relative;
    transform-origin: center center;
    overflow: hidden;
    box-shadow: rgba(0, 0, 0, 0.5) 0px 20px 80px;
    background: rgb(255, 255, 255);
    transition: opacity 0.35s;
    pointer-events: auto;
}

.present-slide.transitioning {
    opacity: 0;
}

.present-slide.fade-in {
    animation: 0.35s ease 0s 1 normal forwards running presentFadeIn;
}

@keyframes presentFadeIn {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

.present-slide.slide-in-right {
    animation: 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0s 1 normal forwards running presentSlideRight;
}

@keyframes presentSlideRight {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

.present-slide.slide-in-left {
    animation: 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0s 1 normal forwards running presentSlideLeft;
}

@keyframes presentSlideLeft {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

.presentation-card {
    background: rgb(255, 255, 255);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
    transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    display: flex;
    flex-direction: column;
    backdrop-filter: blur(3px);
    box-shadow: rgba(0, 0, 0, 0.06) 0px 2px 8px;
    animation: 0.4s cubic-bezier(0.4, 0, 0.2, 1) 0s 1 normal none running noteItemFadeIn;
}

.presentation-card:hover {
    background: rgb(255, 255, 255);
    box-shadow: rgba(249, 115, 22, 0.12) 0px 8px 24px;
    border-color: rgba(249, 115, 22, 0.2);
}

.presentation-card-thumb {
    width: 100%;
    aspect-ratio: 16 / 9;
    background: rgb(245, 245, 245);
    position: relative;
    overflow: hidden;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.presentation-card-thumb-inner {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 960px;
    height: 540px;
    transform-origin: left top;
    pointer-events: none;
}

.presentation-card-info {
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.presentation-card-title {
    font-size: 15px;
    font-weight: 600;
    color: rgba(44, 62, 80, 0.95);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-family: "DM Sans", sans-serif;
}

.presentation-card-meta {
    font-size: 12px;
    color: rgba(44, 62, 80, 0.5);
    font-family: "DM Sans", sans-serif;
}

.editor-statusbar {
    align-items: center;
    gap: 0px;
    margin: 10px;
    padding: 0px 20px;
    background: rgb(241, 245, 249);
    color: rgb(100, 116, 139);
    font-size: 12px;
    font-family: "DM Sans", system-ui, sans-serif;
    user-select: none;
    flex-shrink: 0;
    min-height: 30px;
    border-radius: 20px;
    border: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: rgba(0, 0, 0, 0.03) 0px 2px 8px;
    display: flex !important;
}

.editor-statusbar .statbar-item, .statbar-item {
    white-space: nowrap;
    padding: 0px 12px;
    font-weight: 500;
    letter-spacing: 0.01em;
    color: rgb(100, 116, 139);
}

.editor-statusbar .statbar-sep, .statbar-sep {
    color: rgb(148, 163, 184);
    flex-shrink: 0;
    opacity: 1;
}

.presenter-notes-panel {
    flex-shrink: 0;
    background: rgb(250, 250, 250);
    display: none;
    margin: 0px 12px;
    flex-direction: column;
    min-height: 120px;
    max-height: 240px;
    overflow: hidden;
    border-radius: 12px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    box-shadow: rgba(0, 0, 0, 0.04) 0px 2px 8px;
    animation: 0.22s cubic-bezier(0.4, 0, 0.2, 1) 0s 1 normal none running notesPanelSlideIn;
}

@keyframes notesPanelSlideIn {
    0% {
        transform: translateY(8px);
        opacity: 0;
    }

    100% {
        transform: translateY(0px);
        opacity: 1;
    }
}

.presenter-notes-panel.visible {
    display: flex;
}

.pnotes-header {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 5px 14px 3px;
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: rgb(148, 163, 184);
    font-family: "DM Sans", sans-serif;
    border-bottom: 1px solid rgb(232, 236, 240);
    flex-shrink: 0;
}

.pnotes-textarea {
    flex: 1 1 0%;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    outline: none;
    resize: none;
    padding: 8px 14px;
    font-size: 12.5px;
    font-family: "DM Sans", sans-serif;
    color: rgb(71, 85, 105);
    background: transparent;
    line-height: 1.5;
}

.pnotes-textarea::placeholder {
    color: rgb(203, 213, 225);
}

body.no-active-note .presenter-notes-panel {
    display: none !important;
}

body.no-active-note .slide-canvas-wrapper {
    display: none !important;
}

body.no-active-note .ribbon {
    opacity: 0 !important;
    transform: translateY(-110%) !important;
    pointer-events: none !important;
    margin: 0px !important;
    height: 0px !important;
    min-height: 0px !important;
    flex-basis: 0px !important;
    flex-shrink: 1 !important;
    overflow: hidden !important;
    padding: 0px !important;
    display: none !important;
}

body.no-active-note .editor-header, body.no-active-note .editor-content, body.no-active-note .editor-statusbar, body.no-active-note .presenter-notes-panel {
    display: none !important;
}

.welcome-screen {
    display: flex;
}

@media (max-width: 1023px) {
    .ribbon-panel {
        display: flex !important;
        position: relative !important;
        visibility: visible !important;
        opacity: 1 !important;
        filter: none !important;
        transform: none !important;
        pointer-events: auto !important;
    }

    .ribbon-content {
        padding: 8px 4px;
        min-height: unset;
        max-height: none !important;
        overflow-y: auto !important;
    }

    .ribbon-panel .ribbon-controls {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .ribbon {
        margin: 8px;
        border-radius: 10px;
    }

    .slide-canvas-wrapper {
        padding: 12px;
    }

    .slide-canvas {
        border-radius: 4px;
    }

    .slide-thumb-item:hover {
        transform: none;
    }

    .presentation-card:hover {
        transform: none;
    }

    .el-rotate-handle {
        display: none;
    }

    .el-handle {
        width: 14px;
        height: 14px;
    }

    .ribbon-btn {
        min-width: 48px;
        padding: 6px 8px;
    }

    .ribbon-btn span {
        font-size: 9px;
    }

    .ribbon-group {
        padding-right: 10px;
        margin-right: 4px;
    }

    .editor-column {
        margin: 0px 8px 8px;
    }

    .editor-area {
        margin: 0px;
        border-radius: 10px;
    }

    .editor-statusbar, .presenter-notes-panel {
        border-radius: 10px;
    }

    .editor-header {
        padding: 10px 12px;
        border-radius: 10px 10px 0px 0px;
    }

    .note-title {
        font-size: 16px;
    }

    .welcome-content {
        padding: 20px;
    }

    .welcome-header-top {
        flex-direction: column;
        text-align: center;
    }

    .welcome-header h3 {
        font-size: 22px;
    }

    .section-title {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .create-note-btn {
        width: 100%;
        justify-content: center;
    }

    .notes-list-display {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 480px) {
    .slide-canvas-wrapper {
        padding: 8px;
    }

    .editor-statusbar {
        padding: 4px 10px;
        font-size: 11px;
    }

    .editor-statusbar .statbar-item {
        padding: 0px 6px;
    }
}


.ribbon-tabs-legacy-removed {
    display: none;
}

.transition-thumbnail-row {
    display: flex;
    gap: 4px;
    align-items: center;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    padding: 2px 0px;
}

.transition-thumbnail-row::-webkit-scrollbar {
    display: none;
}

.transition-thumb {
    width: 92px;
    height: 52px;
    border-radius: 6px;
    border: 1.5px solid rgba(0, 0, 0, 0.08);
    cursor: pointer;
    transition: transform 0.18s, box-shadow 0.18s, border-color 0.18s;
    overflow: hidden;
    position: relative;
    flex-shrink: 0;
    padding: 0px;
    font-family: "DM Sans", sans-serif;
    background: rgb(255, 255, 255);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
}

.transition-thumb:hover {
    border-color: var(--ui-accent-border);
    box-shadow: rgba(0, 0, 0, 0.08) 0px 2px 6px;
    transform: translateY(-1px);
}

.transition-thumb.active {
    border-color: var(--ui-accent, #f97316);
    box-shadow: 0 0 0 2px var(--ui-accent-soft);
}

.transition-thumb .tr-thumb-preview {
    flex: 1 1 auto;
    width: 100%;
    min-height: 0px;
    background-size: cover;
    background-position: center center;
}

.transition-thumb .tr-thumb-label {
    flex: 0 0 auto;
    font-size: 10px;
    padding: 3px 4px;
    text-align: center;
    color: rgba(44, 62, 80, 0.8);
    font-weight: 500;
    background: rgba(255, 255, 255, 0.95);
    border-top: 1px solid rgba(0, 0, 0, 0.04);
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.more-thumb {
    width: 60px;
    height: 52px;
    min-width: 0px;
    flex: 0 0 60px;
    box-sizing: border-box;
    padding: 8px 10px;
    border-radius: 6px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    background: rgba(255, 255, 255, 0.6);
    box-shadow: rgba(0, 0, 0, 0.05) 0px 1px 3px;
    backdrop-filter: blur(3px);
    color: rgba(44, 62, 80, 0.8);
    cursor: pointer;
    overflow: hidden;
    position: relative;
    transition: 0.2s;
    font-family: "DM Sans", sans-serif;
    font-weight: 500;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
}

.more-thumb.ms-dropdown-btn::after {
    content: "▼";
    position: absolute;
    top: 50%;
    right: 6px;
    bottom: auto;
    transform: translateY(-50%);
    font-size: 10px;
    color: rgba(44, 62, 80, 0.6);
    line-height: 1;
    pointer-events: none;
    transition: transform 0.2s;
    font-family: "Segoe UI Symbol", "Arial Unicode MS", "DejaVu Sans", sans-serif;
}

.more-thumb.ms-dropdown-btn[aria-expanded="true"]::after, .ms-dropdown.active .more-thumb.ms-dropdown-btn::after {
    transform: translateY(-50%) rotate(180deg);
    color: var(--ui-accent, #f97316);
}

.more-thumb:hover {
    background: rgba(255, 255, 255, 0.9);
    border-color: var(--ui-accent-border);
    color: rgb(44, 62, 80);
    box-shadow: rgba(0, 0, 0, 0.08) 0px 2px 6px;
}

.more-thumb.active, .more-thumb[aria-expanded="true"] {
    background: rgba(249, 115, 22, 0.15);
    border-color: var(--ui-accent);
    color: var(--ui-accent);
    box-shadow: inset 0 0 0 1px var(--ui-accent-border), rgba(249, 115, 22, 0.25) 0px 2px 8px;
}

.more-thumb-preview {
    flex: 0 0 auto;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: inherit;
    background: transparent;
}

.more-thumb-preview svg {
    display: block;
    width: 18px;
    height: 18px;
}

.more-thumb-label {
    flex: 0 0 auto;
    font-size: 10px;
    text-align: center;
    color: inherit;
    font-weight: 500;
    background: transparent;
    border-top-width: medium;
    border-top-style: none;
    border-top-color: currentcolor;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.transition-gallery-menu {
    max-width: 720px;
    padding: 14px 14px 16px;
    background: rgba(255, 255, 255, 0.99);
    min-width: 580px !important;
}

.transition-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px 12px;
    justify-items: stretch;
    margin-bottom: 8px;
}

.transition-gallery-grid .transition-thumb {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
}

.transition-gallery-grid .transition-thumb .tr-thumb-label {
    font-size: 10.5px;
    padding: 5px 4px;
}

.transition-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
    padding: 8px;
    max-width: 420px;
}

.transition-category-header {
    grid-column: 1 / -1;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(44, 62, 80, 0.55);
    padding: 8px 4px 4px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    margin-top: 4px;
    font-family: "DM Sans", sans-serif;
}

.transition-category-header:first-child {
    margin-top: 0px;
}

.tr-timing-group {
    min-width: 0px;
    flex-shrink: 0;
}

.tr-timing-panel {
    display: flex;
    flex-flow: row;
    align-items: center;
    gap: 10px;
    padding: 4px 0px;
    font-family: "DM Sans", sans-serif;
    white-space: nowrap;
}

.tr-timing-row {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-wrap: nowrap;
    white-space: nowrap;
}

.tr-timing-row + .tr-timing-row {
    position: relative;
    padding-left: 12px;
}

.tr-timing-row + .tr-timing-row::before {
    content: "";
    position: absolute;
    left: 0px;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 22px;
    background: rgba(0, 0, 0, 0.08);
    border-radius: 1px;
}

.tr-timing-label {
    font-size: 10px;
    color: rgba(44, 62, 80, 0.65);
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.tr-num-field {
    display: inline-flex;
    align-items: center;
    background: rgba(255, 255, 255, 0.8);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 6px;
    margin-left: 3px;
    box-shadow: rgba(0, 0, 0, 0.05) 0px 1px 3px;
    backdrop-filter: blur(3px);
    overflow: hidden;
    transition: border-color 0.18s, box-shadow 0.18s;
}

.tr-num-field:focus-within {
    border-color: var(--ui-accent-border, rgba(249, 115, 22, 0.4));
    box-shadow: 0 0 0 2px var(--ui-accent-soft, rgba(249, 115, 22, 0.18));
}

.tr-num-field:disabled, .tr-num-field.disabled {
    opacity: 0.45;
    pointer-events: none;
}

.tr-num-step {
    width: 22px;
    height: 28px;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    background: transparent;
    color: rgba(44, 62, 80, 0.6);
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    user-select: none;
}

.tr-num-step:hover {
    background: rgba(249, 115, 22, 0.1);
    color: var(--ui-accent, #f97316);
}

.tr-num-step:active {
    background: rgba(249, 115, 22, 0.18);
}

.tr-num-input {
    width: 44px;
    height: 28px;
    border-width: medium 1px;
    border-style: none solid;
    border-color: currentcolor rgba(0, 0, 0, 0.06);
    border-image: none;
    text-align: center;
    font-size: 12px;
    font-weight: 600;
    color: rgba(44, 62, 80, 0.9);
    background: transparent;
    font-family: "DM Sans", sans-serif;
    outline: none;
}

.tr-num-input::-webkit-outer-spin-button, .tr-num-input::-webkit-inner-spin-button {
    appearance: none;
    margin: 0px;
}

.tr-num-input:disabled {
    color: rgba(44, 62, 80, 0.4);
    background: rgba(0, 0, 0, 0.03);
}

.tr-num-unit {
    font-size: 10.5px;
    color: rgba(44, 62, 80, 0.55);
    padding: 0px 8px 0px 6px;
    font-weight: 500;
    white-space: nowrap;
}

.tr-trigger-toggle {
    display: inline-flex;
    background: rgba(0, 0, 0, 0.04);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 7px;
    padding: 2px;
    gap: 2px;
    box-shadow: rgba(0, 0, 0, 0.04) 0px 1px 2px inset;
}

.tr-trigger-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 9px;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    background: transparent;
    border-radius: 5px;
    cursor: pointer;
    font-size: 11px;
    font-weight: 600;
    color: rgba(44, 62, 80, 0.7);
    transition: background 0.18s, color 0.18s, box-shadow 0.18s;
    font-family: "DM Sans", sans-serif;
    white-space: nowrap;
}

.tr-trigger-pill svg {
    flex-shrink: 0;
    opacity: 0.75;
}

.tr-trigger-pill:hover {
    color: rgba(44, 62, 80, 0.95);
    background: rgba(255, 255, 255, 0.6);
}

.tr-trigger-pill[aria-pressed="true"] {
    background: rgb(255, 255, 255);
    color: var(--ui-accent, #f97316);
    box-shadow: rgba(0, 0, 0, 0.08) 0px 1px 2px, rgba(249, 115, 22, 0.15) 0px 0px 0px 1px;
}

.tr-trigger-pill[aria-pressed="true"] svg {
    opacity: 1;
}

.tr-after-field.disabled, .tr-after-field[aria-disabled="true"] {
    opacity: 0.45;
    pointer-events: none;
}

.anim-timing-group {
    min-width: 0px;
    flex-shrink: 0;
}

.anim-timing-panel {
    gap: 10px;
}


.anim-reorder-row {
    gap: 4px;
    padding-left: 12px;
    position: relative;
}

.anim-reorder-row::before {
    content: "";
    position: absolute;
    left: 0px;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 22px;
    background: rgba(0, 0, 0, 0.08);
    border-radius: 1px;
}

.anim-reorder-row .ribbon-btn-icon {
    width: 28px;
    height: 28px;
    border-radius: 6px;
}

@keyframes animAppear {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes animFade {
    0% {
        opacity: 0;
        transform: scale(0.96);
    }

    100% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes animFly {
    0% {
        opacity: 0;
        transform: translateX(-80px);
    }

    100% {
        opacity: 1;
        transform: translateX(0px);
    }
}

@keyframes animZoom {
    0% {
        opacity: 0;
        transform: scale(0.3);
    }

    100% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes animSpin {
    0% {
        opacity: 0;
        transform: rotate(-180deg) scale(0.6);
    }

    100% {
        opacity: 1;
        transform: rotate(0deg) scale(1);
    }
}

@keyframes animBounce {
    0% {
        opacity: 0;
        transform: translateY(-80px);
    }

    50% {
        opacity: 1;
        transform: translateY(8px);
    }

    75% {
        transform: translateY(-4px);
    }

    100% {
        transform: translateY(0px);
    }
}

.slide-canvas .anim-playing-appear, .slide-canvas .anim-playing-fade, .slide-canvas .anim-playing-fly, .slide-canvas .anim-playing-zoom, .slide-canvas .anim-playing-spin, .slide-canvas .anim-playing-bounce, .present-slide .anim-playing-appear, .present-slide .anim-playing-fade, .present-slide .anim-playing-fly, .present-slide .anim-playing-zoom, .present-slide .anim-playing-spin, .present-slide .anim-playing-bounce {
    animation-fill-mode: both;
    animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.slide-canvas .anim-playing-appear, .present-slide .anim-playing-appear {
    animation-name: animAppear;
    animation-duration: var(--anim-duration, 0.5s);
    animation-delay: var(--anim-delay, 0s);
    animation-timing-function: ease-out;
}

.slide-canvas .anim-playing-fade, .present-slide .anim-playing-fade {
    animation-name: animFade;
    animation-duration: var(--anim-duration, 0.5s);
    animation-delay: var(--anim-delay, 0s);
    animation-timing-function: ease-out;
}

.slide-canvas .anim-playing-fly, .present-slide .anim-playing-fly {
    animation-name: animFly;
    animation-duration: var(--anim-duration, 0.5s);
    animation-delay: var(--anim-delay, 0s);
}

.slide-canvas .anim-playing-zoom, .present-slide .anim-playing-zoom {
    animation-name: animZoom;
    animation-duration: var(--anim-duration, 0.5s);
    animation-delay: var(--anim-delay, 0s);
    animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}

.slide-canvas .anim-playing-spin, .present-slide .anim-playing-spin {
    animation-name: animSpin;
    animation-duration: var(--anim-duration, 0.5s);
    animation-delay: var(--anim-delay, 0s);
}

.slide-canvas .anim-playing-bounce, .present-slide .anim-playing-bounce {
    animation-name: animBounce;
    animation-duration: var(--anim-duration, 0.5s);
    animation-delay: var(--anim-delay, 0s);
    animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}

.transition-option {
    cursor: pointer;
    border: 2px solid transparent;
    border-radius: 6px;
    overflow: hidden;
    background: rgb(255, 255, 255);
    padding: 0px;
    display: flex;
    flex-direction: column;
    transition: 0.15s;
    font-family: "DM Sans", sans-serif;
}

.transition-option:hover {
    border-color: rgba(249, 115, 22, 0.3);
    transform: translateY(-1px);
}

.transition-option.active {
    border-color: var(--ui-accent, #f97316);
    box-shadow: rgba(249, 115, 22, 0.15) 0px 0px 0px 2px;
}

.transition-option .tr-preview {
    width: 100%;
    aspect-ratio: 16 / 9;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.transition-option .tr-label {
    font-size: 10px;
    padding: 4px 2px;
    text-align: center;
    color: rgba(44, 62, 80, 0.8);
    font-weight: 500;
}

.animation-pane {
    display: none;
    flex-direction: column;
    width: 280px;
    min-width: 280px;
    max-width: 280px;
    backdrop-filter: blur(12px);
    border-radius: 0px 12px 12px 0px;
    flex-shrink: 0;
    overflow: hidden;
    margin-right: 2px;
    font-family: "DM Sans", sans-serif;
    z-index: 10;
    transition: width 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
    animation: 0.25s cubic-bezier(0.34, 1.56, 0.64, 1) 0s 1 normal none running paneSlideInRight;
}

.animation-pane.visible {
    display: flex;
}

@keyframes paneSlideInRight {
    0% {
        opacity: 0;
        transform: translateX(20px);
    }

    100% {
        opacity: 1;
        transform: translateX(0px);
    }
}

.animation-pane .ap-header {
    padding: 4px 12px 1px;
    font-size: 14px;
    font-weight: 700;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: rgba(44, 62, 80, 0.95);
    letter-spacing: 0.02em;
}

.animation-pane .ap-header button {
    background: none;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    cursor: pointer;
    color: rgba(44, 62, 80, 0.5);
    padding: 6px;
    border-radius: 6px;
    transition: 0.2s;
    display: flex;
    align-items: center;
}

.animation-pane .ap-header button:hover {
    background: rgba(0, 0, 0, 0.06);
    color: rgba(44, 62, 80, 0.9);
}

.animation-pane .ap-toolbar {
    display: flex;
    gap: 6px;
    padding: 12px 16px 4px 12px;
}

.animation-pane .ap-toolbar-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 10px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 6px;
    font-size: 11px;
    font-weight: 600;
    color: rgba(0, 0, 0, 0.7);
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
    font-family: "DM Sans", sans-serif;
    box-shadow: rgba(0, 0, 0, 0.04) 0px 1px 2px;
}

.animation-pane .ap-toolbar-btn:hover {
    background: rgba(249, 115, 22, 0.1);
    border-color: rgba(249, 115, 22, 0.25);
    color: var(--ui-accent, #f97316);
}

.animation-pane .ap-toolbar-btn svg {
    flex-shrink: 0;
}

.animation-pane .ap-body {
    padding: 8px 12px 1px 10px;
    flex: 1 1 0%;
    overflow-y: auto;
}

.animation-pane .ap-empty {
    color: rgba(44, 62, 80, 0.45);
    font-size: 12px;
    padding: 24px 12px;
    text-align: center;
    line-height: 1.5;
}

.animation-pane .ap-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 8px;
    transition: background 0.2s, border-color 0.2s, box-shadow 0.2s;
    border: 1px solid rgba(0, 0, 0, 0.04);
    margin-bottom: 6px;
    background: rgba(255, 255, 255, 0.7);
    cursor: pointer;
    position: relative;
}

.animation-pane .ap-item:hover {
    background: rgba(249, 115, 22, 0.06);
    border-color: rgba(249, 115, 22, 0.12);
    box-shadow: rgba(249, 115, 22, 0.08) 0px 2px 8px;
}

.animation-pane .ap-item.selected {
    background: rgba(249, 115, 22, 0.1);
    border-color: rgba(249, 115, 22, 0.2);
    box-shadow: rgba(249, 115, 22, 0.12) 0px 2px 12px;
}

.animation-pane .ap-item-info {
    flex: 1 1 0%;
    min-width: 0px;
}

.animation-pane .ap-item-name {
    font-size: 12px;
    font-weight: 600;
    color: rgba(44, 62, 80, 0.9);
    text-transform: capitalize;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.animation-pane .ap-item-anim {
    font-size: 11px;
    color: rgba(44, 62, 80, 0.55);
    margin-top: 3px;
    display: flex;
    align-items: center;
    gap: 4px;
}

.animation-pane .ap-item-anim .anim-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1px 6px;
    background: rgba(249, 115, 22, 0.12);
    color: var(--ui-accent, #f97316);
    font-size: 10px;
    font-weight: 600;
    border-radius: 4px;
    letter-spacing: 0.02em;
}

.animation-pane .ap-item-remove {
    background: none;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    cursor: pointer;
    color: rgba(220, 53, 69, 0.5);
    padding: 5px;
    border-radius: 6px;
    transition: 0.2s;
    display: flex;
    align-items: center;
    opacity: 0;
}

.animation-pane .ap-item:hover .ap-item-remove {
    opacity: 1;
}

.animation-pane .ap-item-remove:hover {
    background: rgba(220, 53, 69, 0.1);
    color: rgb(220, 53, 69);
}

.animation-option {
    align-items: center;
    gap: 10px;
    padding: 9px 14px;
    cursor: pointer;
    transition: background 0.15s;
    color: rgba(44, 62, 80, 0.85);
    font-size: 13px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.04);
    font-family: "DM Sans", sans-serif;
    display: flex !important;
}

.animation-option:last-child {
    border-bottom-width: medium;
    border-bottom-style: none;
    border-bottom-color: currentcolor;
}

.animation-option:hover {
    background: rgba(249, 115, 22, 0.08);
    color: rgb(44, 62, 80);
}

.animation-option svg {
    opacity: 0.7;
    flex-shrink: 0;
}

.ribbon-btn.active {
    background: rgba(249, 115, 22, 0.15);
    border-color: var(--ui-accent-border, rgba(249, 115, 22, 0.3));
    color: var(--ui-accent, #f97316);
    box-shadow: inset 0 0 0 1px var(--ui-accent-border, rgba(249, 115, 22, 0.3));
}

.ribbon-btn.ms-dropdown-btn[aria-expanded="true"], .ms-dropdown.active > .ribbon-btn.ms-dropdown-btn {
    background: rgba(249, 115, 22, 0.15);
    border-color: var(--ui-accent-border, rgba(249, 115, 22, 0.3));
    color: var(--ui-accent, #f97316);
    box-shadow: inset 0 0 0 1px var(--ui-accent-border, rgba(249, 115, 22, 0.3));
}

.slide-canvas.show-grid {
    background-image: linear-gradient(rgba(100, 116, 139, 0.18) 1px, transparent 1px), linear-gradient(90deg, rgba(100, 116, 139, 0.18) 1px, transparent 1px);
    background-size: 20px 20px;
    background-position: 0px 0px;
}

.slide-canvas-wrapper.show-guides .slide-canvas-scaler::before, .slide-canvas-wrapper.show-guides .slide-canvas-scaler::after {
    content: "";
    position: absolute;
    background: rgba(249, 115, 22, 0.55);
    pointer-events: none;
    z-index: 5;
}

.slide-canvas-wrapper.show-guides .slide-canvas-scaler::before {
    left: 50%;
    top: 0px;
    bottom: 0px;
    width: 1px;
    transform: translateX(-0.5px);
}

.slide-canvas-wrapper.show-guides .slide-canvas-scaler::after {
    top: 50%;
    left: 0px;
    right: 0px;
    height: 1px;
    transform: translateY(-0.5px);
}

.present-slide.tr-fade-in, .slide-canvas.tr-fade-in {
    animation: trFadeIn var(--tr-duration, 0.7s) ease-out;
}

@keyframes trFadeIn {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

.present-slide.tr-push-in, .slide-canvas.tr-push-in {
    animation: trPushIn var(--tr-duration, 0.7s) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes trPushIn {
    0% {
        clip-path: inset(0px 0px 0px 100%);
    }

    100% {
        clip-path: inset(0px);
    }
}

.present-slide.tr-push-in-right, .slide-canvas.tr-push-in-right {
    animation: trPushIn var(--tr-duration, 0.7s) cubic-bezier(0.4, 0, 0.2, 1);
}

.present-slide.tr-wipe-in, .slide-canvas.tr-wipe-in {
    animation: trWipeIn var(--tr-duration, 0.7s) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes trWipeIn {
    0% {
        clip-path: inset(0px 100% 0px 0px);
    }

    100% {
        clip-path: inset(0px);
    }
}

.present-slide.tr-split-in, .slide-canvas.tr-split-in {
    animation: trSplitIn var(--tr-duration, 0.7s) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes trSplitIn {
    0% {
        clip-path: inset(0px 50%);
    }

    100% {
        clip-path: inset(0px);
    }
}

.present-slide.tr-fade-black-in, .slide-canvas.tr-fade-black-in {
    animation: trFadeBlackIn var(--tr-duration, 0.7s) ease-in-out;
}

@keyframes trFadeBlackIn {
    0% {
        opacity: 0;
        filter: brightness(0);
    }

    45% {
        opacity: 1;
        filter: brightness(0);
    }

    55% {
        opacity: 1;
        filter: brightness(0);
    }

    100% {
        opacity: 1;
        filter: brightness(1);
    }
}

.present-slide.tr-cover-in, .slide-canvas.tr-cover-in {
    animation: trCoverIn var(--tr-duration, 0.7s) cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes trCoverIn {
    0% {
        clip-path: circle(0% at 50% 50%);
    }

    100% {
        clip-path: circle(150% at 50% 50%);
    }
}

.present-slide.tr-cut-in, .slide-canvas.tr-cut-in {
    animation: trCutIn var(--tr-duration, 0.3s) steps(2);
}

@keyframes trCutIn {
    0% {
        opacity: 0;
    }

    50% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

.present-slide.tr-honeycomb-in, .slide-canvas.tr-honeycomb-in {
    animation: trHoneycombIn var(--tr-duration, 0.7s) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes trHoneycombIn {
    0% {
        clip-path: polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%, 50% 50%, 50% 50%);
    }

    100% {
        clip-path: polygon(-50% 0%, 150% 0%, 200% 50%, 150% 100%, -50% 100%, -100% 50%);
    }
}

.present-slide.tr-reveal-in, .slide-canvas.tr-reveal-in {
    animation: trRevealIn var(--tr-duration, 0.7s) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes trRevealIn {
    0% {
        clip-path: polygon(0px 0px, 0px 0px, 0px 0px, 0px 0px);
    }

    50% {
        clip-path: polygon(0px 0px, 100% 0px, 50% 50%, 0px 50%);
    }

    100% {
        clip-path: polygon(0px 0px, 100% 0px, 100% 100%, 0px 100%);
    }
}

.present-slide.tr-zoom-in, .slide-canvas.tr-zoom-in {
    animation: trZoomIn var(--tr-duration, 0.7s) cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes trZoomIn {
    0% {
        clip-path: inset(45%);
        filter: blur(4px);
    }

    60% {
        clip-path: inset(2%);
        filter: blur(0px);
    }

    100% {
        clip-path: inset(0px);
        filter: blur(0px);
    }
}

.present-slide.tr-cube-in, .slide-canvas.tr-cube-in {
    animation: trCubeIn var(--tr-duration, 0.8s) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes trCubeIn {
    0% {
        clip-path: polygon(50% 100%, 50% 100%, 50% 100%, 50% 100%);
        filter: brightness(0.3);
    }

    40% {
        clip-path: polygon(20% 100%, 80% 100%, 70% 60%, 30% 60%);
        filter: brightness(0.5);
    }

    70% {
        clip-path: polygon(0% 100%, 100% 100%, 100% 30%, 0% 30%);
        filter: brightness(0.8);
    }

    100% {
        clip-path: polygon(0px 0px, 100% 0px, 100% 100%, 0px 100%);
        filter: brightness(1);
    }
}

.present-slide.tr-flip-in, .slide-canvas.tr-flip-in {
    animation: trFlipIn var(--tr-duration, 0.8s) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes trFlipIn {
    0% {
        clip-path: polygon(0px 0px, 100% 0px, 100% 0px, 0px 0px);
        filter: brightness(0.3);
    }

    50% {
        clip-path: polygon(0px 0px, 100% 0px, 100% 50%, 0px 50%);
        filter: brightness(0.6);
    }

    100% {
        clip-path: polygon(0px 0px, 100% 0px, 100% 100%, 0px 100%);
        filter: brightness(1);
    }
}

.present-slide.tr-gallery-in, .slide-canvas.tr-gallery-in {
    animation: trGalleryIn var(--tr-duration, 0.7s) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes trGalleryIn {
    0% {
        clip-path: inset(100% 0px 0px);
    }

    100% {
        clip-path: inset(0px);
    }
}

.present-slide.tr-vortex-in, .slide-canvas.tr-vortex-in {
    animation: trVortexIn var(--tr-duration, 0.8s) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes trVortexIn {
    0% {
        clip-path: circle(0% at 50% 50%);
        filter: blur(20px) hue-rotate(180deg) brightness(0.4);
        opacity: 0;
    }

    50% {
        clip-path: circle(50% at 50% 50%);
        filter: blur(8px) hue-rotate(90deg) brightness(0.7);
        opacity: 0.6;
    }

    100% {
        clip-path: circle(150% at 50% 50%);
        filter: blur(0px) hue-rotate(0deg) brightness(1);
        opacity: 1;
    }
}

.present-slide.tr-newsflash-in, .slide-canvas.tr-newsflash-in {
    animation: trNewsflashIn var(--tr-duration, 0.7s) ease-out;
}

@keyframes trNewsflashIn {
    0% {
        opacity: 0;
        filter: brightness(3.5) saturate(0);
    }

    30% {
        opacity: 1;
        filter: brightness(3.5) saturate(0);
    }

    100% {
        opacity: 1;
        filter: brightness(1) saturate(1);
    }
}

.present-slide.tr-glitch-in, .slide-canvas.tr-glitch-in {
    animation: trGlitchIn var(--tr-duration, 0.6s) steps(6);
}

@keyframes trGlitchIn {
    0% {
        clip-path: inset(20% 0px 60%);
        filter: hue-rotate(90deg) saturate(2);
        opacity: 0;
    }

    20% {
        clip-path: inset(60% 0px 10%);
        filter: hue-rotate(-90deg) saturate(2);
        opacity: 0.5;
    }

    40% {
        clip-path: inset(0px 30% 50% 0px);
        filter: hue-rotate(180deg) saturate(2);
        opacity: 0.7;
    }

    60% {
        clip-path: inset(40% 0px 30% 40%);
        filter: hue-rotate(-45deg);
        opacity: 0.85;
    }

    80% {
        clip-path: inset(10% 0px);
        filter: hue-rotate(45deg);
        opacity: 0.95;
    }

    100% {
        clip-path: inset(0px);
        filter: none;
        opacity: 1;
    }
}

.present-slide.tr-uncover-in, .slide-canvas.tr-uncover-in {
    animation: trUncoverIn var(--tr-duration, 0.7s) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes trUncoverIn {
    0% {
        clip-path: inset(0px 0px 100%);
    }

    100% {
        clip-path: inset(0px);
    }
}

.present-slide.tr-random-bars-in, .slide-canvas.tr-random-bars-in {
    mask-image: repeating-linear-gradient(90deg, rgb(0, 0, 0) 0px, rgb(0, 0, 0) 50%, transparent 50%, transparent 100%);
    animation: trRandomBarsIn var(--tr-duration, 0.7s) steps(8);
}

@keyframes trRandomBarsIn {
    0% {
        mask-size: 4% 100%;
    }

    100% {
        mask-size: 200% 100%;
    }
}

.present-slide.tr-shape-in, .slide-canvas.tr-shape-in {
    animation: trShapeIn var(--tr-duration, 0.7s) cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes trShapeIn {
    0% {
        clip-path: polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%);
    }

    100% {
        clip-path: polygon(50% -50%, 150% 50%, 50% 150%, -50% 50%);
    }
}

.present-slide.tr-blinds-in, .slide-canvas.tr-blinds-in {
    mask-image: repeating-linear-gradient(0deg, rgb(0, 0, 0) 0px, rgb(0, 0, 0) 50%, transparent 50%, transparent 100%);
    animation: trBlindsIn var(--tr-duration, 0.7s) ease-out;
}

@keyframes trBlindsIn {
    0% {
        mask-size: 100% 4%;
    }

    100% {
        mask-size: 100% 200%;
    }
}

.present-slide.tr-dissolve-in, .slide-canvas.tr-dissolve-in {
    animation: trDissolveIn var(--tr-duration, 0.8s) ease-out;
}

@keyframes trDissolveIn {
    0% {
        opacity: 0;
        filter: blur(18px) contrast(2.5) brightness(1.3);
    }

    50% {
        opacity: 0.6;
        filter: blur(8px) contrast(1.5) brightness(1.1);
    }

    100% {
        opacity: 1;
        filter: blur(0px) contrast(1) brightness(1);
    }
}

.present-slide.tr-checkerboard-in, .slide-canvas.tr-checkerboard-in {
    mask-image: repeating-conic-gradient(rgb(0, 0, 0) 0%, rgb(0, 0, 0) 25%, transparent 0%, transparent 50%);
    mask-size: 25% 25%;
    mask-repeat: repeat;
    animation: trCheckerboardIn var(--tr-duration, 0.7s) ease-out;
}

@keyframes trCheckerboardIn {
    0% {
        mask-size: 4% 4%;
        opacity: 0;
    }

    100% {
        mask-size: 25% 25%;
        opacity: 1;
    }
}

@property --clock-angle {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
}

.present-slide.tr-clock-in, .slide-canvas.tr-clock-in {
    --clock-angle: 0deg;
    mask-image: conic-gradient(from 0deg at 50% 50%, #000 0deg, #000 var(--clock-angle), transparent var(--clock-angle));
    animation: trClockIn var(--tr-duration, 0.7s) linear;
}

@keyframes trClockIn {
    0% {
        --clock-angle: 0deg;
    }

    100% {
        --clock-angle: 360deg;
    }
}

@property --ripple-r {
    syntax: "<percentage>";
    inherits: false;
    initial-value: 0%;
}

.present-slide.tr-ripple-in, .slide-canvas.tr-ripple-in {
    --ripple-r: 0%;
    mask-image: radial-gradient(circle at 50% 50%, transparent 0%, transparent calc(var(--ripple-r) - 5%), #000 calc(var(--ripple-r) - 5%), #000 var(--ripple-r), transparent var(--ripple-r), transparent calc(var(--ripple-r) + 15%), #000 calc(var(--ripple-r) + 15%), #000 calc(var(--ripple-r) + 20%), transparent calc(var(--ripple-r) + 20%));
    animation: trRippleIn var(--tr-duration, 0.8s) ease-out;
}

@keyframes trRippleIn {
    0% {
        --ripple-r: 0%;
        opacity: 0;
    }

    50% {
        --ripple-r: 50%;
        opacity: 1;
    }

    100% {
        --ripple-r: 100%;
        opacity: 1;
    }
}

.present-slide.tr-doors-in, .slide-canvas.tr-doors-in {
    animation: trDoorsIn var(--tr-duration, 0.7s) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes trDoorsIn {
    0% {
        clip-path: polygon(48% 0px, 52% 0px, 52% 100%, 48% 100%);
        filter: brightness(0.4);
    }

    100% {
        clip-path: polygon(0px 0px, 100% 0px, 100% 100%, 0px 100%);
        filter: brightness(1);
    }
}

.present-slide.tr-switch-in, .slide-canvas.tr-switch-in {
    animation: trSwitchIn var(--tr-duration, 0.6s) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes trSwitchIn {
    0% {
        clip-path: polygon(0px 0px, 100% 0px, 100% 0px, 0px 0px);
        filter: brightness(0.3);
    }

    50% {
        clip-path: polygon(0px 0px, 100% 0px, 100% 50%, 0px 50%);
        filter: brightness(0.7);
    }

    100% {
        clip-path: polygon(0px 0px, 100% 0px, 100% 100%, 0px 100%);
        filter: brightness(1);
    }
}

.present-slide.tr-curtains-in, .slide-canvas.tr-curtains-in {
    animation: trCurtainsIn var(--tr-duration, 0.7s) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes trCurtainsIn {
    0% {
        clip-path: polygon(0px 48%, 100% 48%, 100% 52%, 0px 52%);
        filter: brightness(0.5);
    }

    100% {
        clip-path: polygon(0px 0px, 100% 0px, 100% 100%, 0px 100%);
        filter: brightness(1);
    }
}

.present-slide.tr-fracture-in, .slide-canvas.tr-fracture-in {
    animation: trFractureIn var(--tr-duration, 0.7s) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes trFractureIn {
    0% {
        clip-path: polygon(45% 45%, 55% 45%, 55% 55%, 45% 55%);
        opacity: 0;
        filter: blur(8px) brightness(0.4);
    }

    30% {
        clip-path: polygon(20% 20%, 80% 20%, 80% 80%, 20% 80%);
        opacity: 0.4;
        filter: blur(4px) brightness(0.7);
    }

    60% {
        clip-path: polygon(0px 0px, 100% 0px, 100% 100%, 0px 100%);
        opacity: 0.8;
        filter: blur(1px) brightness(0.9);
    }

    100% {
        clip-path: polygon(0px 0px, 100% 0px, 100% 100%, 0px 100%);
        opacity: 1;
        filter: blur(0px) brightness(1);
    }
}

.present-slide.tr-peel-off-in, .slide-canvas.tr-peel-off-in {
    animation: trPeelOffIn var(--tr-duration, 0.7s) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes trPeelOffIn {
    0% {
        clip-path: polygon(0px 0px, 0px 0px, 0px 0px, 0px 0px);
        filter: brightness(0.5);
    }

    50% {
        clip-path: polygon(0px 0px, 75% 0px, 100% 75%, 0px 75%);
        filter: brightness(0.75);
    }

    100% {
        clip-path: polygon(0px 0px, 100% 0px, 100% 100%, 0px 100%);
        filter: brightness(1);
    }
}

.present-slide.tr-glitter-in, .slide-canvas.tr-glitter-in {
    animation: trGlitterIn var(--tr-duration, 0.8s) ease-out;
}

@keyframes trGlitterIn {
    0% {
        opacity: 0;
        filter: brightness(2.5) saturate(2) blur(4px);
    }

    30% {
        opacity: 0.4;
        filter: brightness(2) saturate(1.8) blur(2px);
    }

    60% {
        opacity: 0.8;
        filter: brightness(1.4) saturate(1.4) blur(1px);
    }

    100% {
        opacity: 1;
        filter: brightness(1) saturate(1) blur(0px);
    }
}

.present-slide.tr-comb-in, .slide-canvas.tr-comb-in {
    mask-image: repeating-linear-gradient(90deg, rgb(0, 0, 0) 0px, rgb(0, 0, 0) 50%, transparent 50%, transparent 100%);
    animation: trCombIn var(--tr-duration, 0.7s) ease-out;
}

@keyframes trCombIn {
    0% {
        mask-size: 4% 100%;
        opacity: 0.4;
    }

    100% {
        mask-size: 200% 100%;
        opacity: 1;
    }
}

.present-slide.tr-pan-in, .slide-canvas.tr-pan-in {
    animation: trPanIn var(--tr-duration, 0.7s) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes trPanIn {
    0% {
        clip-path: inset(0px 100% 0px 0px);
        filter: blur(6px);
    }

    60% {
        clip-path: inset(0px 30% 0px 0px);
        filter: blur(2px);
    }

    100% {
        clip-path: inset(0px);
        filter: blur(0px);
    }
}

.present-slide.tr-rotate-in, .slide-canvas.tr-rotate-in {
    animation: trRotateIn var(--tr-duration, 0.8s) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes trRotateIn {
    0% {
        clip-path: polygon(50% 50%, 50% 50%, 50% 50%);
        filter: blur(10px) brightness(0.3);
        opacity: 0;
    }

    40% {
        clip-path: polygon(50% 0px, 100% 50%, 50% 100%, 0px 50%);
        filter: blur(5px) brightness(0.6);
        opacity: 0.5;
    }

    100% {
        clip-path: polygon(0px 0px, 100% 0px, 100% 100%, 0px 100%);
        filter: blur(0px) brightness(1);
        opacity: 1;
    }
}

.present-slide.tr-orbit-in, .slide-canvas.tr-orbit-in {
    animation: trOrbitIn var(--tr-duration, 0.8s) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes trOrbitIn {
    0% {
        clip-path: polygon(40% 40%, 60% 40%, 60% 60%, 40% 60%);
        filter: blur(15px) brightness(0.3);
        opacity: 0;
    }

    50% {
        clip-path: polygon(15% 25%, 85% 25%, 85% 75%, 15% 75%);
        filter: blur(8px) brightness(0.6);
        opacity: 0.6;
    }

    100% {
        clip-path: polygon(0px 0px, 100% 0px, 100% 100%, 0px 100%);
        filter: blur(0px) brightness(1);
        opacity: 1;
    }
}

.present-slide.tr-fly-through-in, .slide-canvas.tr-fly-through-in {
    animation: trFlyThroughIn var(--tr-duration, 0.8s) cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes trFlyThroughIn {
    0% {
        clip-path: inset(48%);
        filter: blur(20px) brightness(2);
        opacity: 0;
    }

    50% {
        clip-path: inset(20%);
        filter: blur(8px) brightness(1.5);
        opacity: 0.6;
    }

    100% {
        clip-path: inset(0px);
        filter: blur(0px) brightness(1);
        opacity: 1;
    }
}

.present-slide.tr-conveyor-in, .slide-canvas.tr-conveyor-in {
    animation: trConveyorIn var(--tr-duration, 0.7s) steps(6);
}

@keyframes trConveyorIn {
    0% {
        clip-path: inset(0px 100% 0px 0px);
    }

    100% {
        clip-path: inset(0px);
    }
}

.present-slide.tr-morph-in, .slide-canvas.tr-morph-in {
    animation: trMorphIn var(--tr-duration, 0.7s) ease-out;
}

@keyframes trMorphIn {
    0% {
        filter: brightness(0.6);
    }

    100% {
        filter: brightness(1);
    }
}

.morph-flip-wrapper {
    transform-origin: 0px 0px;
    will-change: transform, opacity;
}

.presenter-notes-panel.expanded {
    flex-basis: 280px;
    min-height: 200px;
}

.presenter-notes-panel.expanded .pnotes-textarea {
    min-height: 160px;
}

.statbar-spacer {
    flex: 1 1 auto;
}

.statbar-toggle {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 4px;
    cursor: pointer;
    font-family: "DM Sans", system-ui, sans-serif;
    font-size: 12px;
    font-weight: 500;
    color: rgb(100, 116, 139);
    padding: 3px 10px;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
    white-space: nowrap;
    margin-left: 8px;
}

.statbar-toggle:hover {
    background: rgba(249, 115, 22, 0.08);
    color: var(--ui-accent);
    border-color: rgba(249, 115, 22, 0.2);
}

.statbar-toggle.active {
    background: rgba(249, 115, 22, 0.12);
    color: var(--ui-accent);
    border-color: rgba(249, 115, 22, 0.3);
}

.statbar-toggle svg {
    flex-shrink: 0;
}

.pres-title-input {
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.9);
    color: rgba(0, 0, 0, 0.9);
    font-size: 13px;
    font-weight: 600;
    font-family: "DM Sans", sans-serif;
    padding: 7px 10px;
    outline: none;
    transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
    box-sizing: border-box;
    height: 40px;
}

.pres-title-input::placeholder {
    color: rgba(0, 0, 0, 0.35);
    font-weight: 500;
}

.pres-title-input:hover {
    border-color: rgba(249, 115, 22, 0.25);
    background: rgb(255, 255, 255);
}

.pres-title-input:focus {
    border-color: var(--ui-accent);
    background: rgb(255, 255, 255);
    box-shadow: rgba(249, 115, 22, 0.12) 0px 0px 0px 3px;
}

body.no-active-note .pres-title-wrap, body.no-active-note .pres-title-input {
    display: none !important;
}

.editor-header {
    display: none !important;
}

.ribbon-tab-contextual {
    position: relative;
    color: rgb(249, 115, 22);
}

.navbar {
    width: 100%;
    border-bottom: transparent;
    background-color: transparent;
    height: 4.5rem;
    position: relative;
}

.ribbon-tab-contextual::before {
    content: "";
    position: absolute;
    left: 0px;
    background: var(--ui-accent, #f97316);
    border-radius: 2px;
    opacity: 0.7;
}

.ribbon-tab-contextual[hidden] {
    display: none !important;
}

.ribbon-tab-contextual.active {
    color: var(--ui-accent, #f97316);
    font-weight: 600;
}

.ribbon-tab-contextual.active::before {
    opacity: 1;
}

/* ── Slide Sorter View — Smooth transition ── */
body.view-sorter .notes-list {
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 20px;
    padding: 24px;
    display: grid !important;
    overflow-y: auto;
}

body.view-sorter .note-item {
    width: 100% !important;
    min-height: 120px;
}

body.view-sorter .slide-thumb-item {
    width: 100% !important;
    aspect-ratio: 16 / 9;
    min-height: unset;
    margin-bottom: 0;
    border-radius: 6px;
    overflow: hidden;
}

body.view-sorter .slide-thumb-item .slide-thumb-canvas-wrap {
    position: relative;
    aspect-ratio: 16 / 9;
    height: auto !important;
    overflow: hidden;
}

body.view-sorter .slide-thumb-item .slide-thumb-inner {
    height: 540px !important;
}

body.view-sorter .slide-thumb-item .slide-thumb-number {
    font-size: 11px;
    padding: 4px 7px;
    top: 4px;
    left: 4px;
}

body.view-sorter .editor-area {
    opacity: 0;
    pointer-events: none;
    position: absolute;
    visibility: hidden;
    max-width: 0;
    flex: 0 0 0%;
    overflow: hidden;
    margin: 0;
    padding: 0;
}

body.view-sorter .presenter-notes-panel {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    max-height: 0;
    flex: 0 0 0%;
    overflow: hidden;
    margin: 0;
    padding: 0;
}

body.view-sorter #slidesSidebar {
    width: 100% !important;
    max-width: 100% !important;
    transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                max-width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

body.view-sorter .sidebar-header {
    padding: 10px 16px;
}

/* Transition helpers for sorter fade-in / fade-out */
.editor-area, .presenter-notes-panel, #slidesSidebar {
    transition: opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1),
                flex 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                max-width 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                width 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                margin 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                visibility 0s linear 0.35s;
}

body.view-sorter .editor-area,
body.view-sorter .presenter-notes-panel {
    transition: opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1),
                flex 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                max-width 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                width 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                margin 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                visibility 0s linear 0.35s;
}

body.view-notes .presenter-notes-panel {
    flex: 1 1 50% !important;
    max-height: 60vh !important;
}

body.view-notes .editor-area {
    flex: 1 1 50% !important;
}

.ribbon-btn-vertical.active {
    background: var(--ui-accent-selected);
    border-color: var(--ui-accent);
    color: var(--ui-accent);
    box-shadow: rgba(249, 115, 22, 0.2) 0px 2px 8px;
}

#animationPaneBtn.active {
    background: var(--ui-accent-selected);
    border-color: var(--ui-accent);
    color: var(--ui-accent);
    box-shadow: rgba(249, 115, 22, 0.2) 0px 2px 8px;
}

#animationPaneBtn.active span {
    color: var(--ui-accent);
}

#themesGroup .ribbon-controls, #variantsGroup .ribbon-controls {
    align-items: center;
}

.icon-pick, .sym-pick {
    padding: 6px;
    background: rgba(255, 255, 255, 0.98);
    border: 1px solid rgba(108, 117, 125, 0.08);
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.2s;
    font-size: 18px;
    color: rgba(44, 62, 80, 0.75);
    outline: none;
    width: 40px;
    height: 40px;
}

.icon-pick:hover, .sym-pick:hover {
    background: rgba(249, 115, 22, 0.08);
    border-color: rgba(249, 115, 22, 0.2);
    color: rgb(249, 115, 22);
    transform: translateY(-1px);
    box-shadow: rgba(249, 115, 22, 0.12) 0px 3px 8px;
}

.icon-pick:active, .sym-pick:active {
    transform: translateY(0px);
    background: rgba(249, 115, 22, 0.12);
}

.delete-modal.closing {
    animation: 0.23s ease 0s 1 normal forwards running fadeOutOverlay;
    pointer-events: none;
}

.delete-modal.closing .delete-modal-content {
    animation: 0.23s ease-in 0s 1 normal forwards running fadeOutModal;
}

.icon-picker-content {
    max-width: 620px;
    width: 92%;
    max-height: 82vh;
    display: flex;
    flex-direction: column;
}

.icon-picker-body {
    display: flex;
    flex-direction: column;
    min-height: 0px;
    flex: 1 1 0%;
    padding-top: 0px;
    padding-bottom: 0px;
}

.icon-picker-search-row {
    position: relative;
    padding: 10px 0px;
}

.icon-picker-search-row input {
    width: 100%;
    padding: 9px 12px 9px 34px;
    border: 1px solid rgba(108, 117, 125, 0.15);
    border-radius: 20px;
    font-size: 13px;
    font-family: "DM Sans", sans-serif;
    background: rgba(108, 117, 125, 0.05);
    color: rgba(44, 62, 80, 0.85);
    outline: none;
    transition: 0.2s;
    box-sizing: border-box;
    line-height: 1.5;
    height: 38px;
}

.icon-picker-search-row::before {
    content: "";
    position: absolute;
    left: 12px;
    top: 21px;
    width: 15px;
    height: 15px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%236c757d' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") center center / contain no-repeat;
    pointer-events: none;
    z-index: 1;
}

.icon-picker-search-row input:focus {
    border-color: rgb(249, 115, 22);
    background: rgba(249, 115, 22, 0.04);
}

.icon-picker-cats {
    display: flex;
    gap: 6px;
    padding: 0px 0px 10px;
    flex-wrap: nowrap;
    justify-content: center;
}



.icon-cat-btn {
    padding: 5px 14px;
    border: 1px solid rgba(108, 117, 125, 0.15);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.98);
    color: rgba(108, 117, 125, 0.75);
    font-size: 12px;
    font-weight: 500;
    font-family: "DM Sans", sans-serif;
    cursor: pointer;
    white-space: nowrap;
    transition: 0.2s;
    outline: none;
    flex-shrink: 0;
}

.icon-cat-btn:hover {
    background: rgba(249, 115, 22, 0.08);
    border-color: rgba(249, 115, 22, 0.25);
    color: rgb(194, 65, 12);
}

.icon-cat-btn.active {
    background: rgb(249, 115, 22);
    border-color: rgb(249, 115, 22);
    color: rgb(255, 255, 255);
    box-shadow: rgba(249, 115, 22, 0.3) 0px 2px 8px;
}

.icon-picker-grid-scroll {
    flex: 1 1 0%;
    overflow-y: auto;
    min-height: 200px;
    max-height: 400px;
    padding: 2px 0px;
}

.icon-picker-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(40px, 1fr));
    gap: 6px;
    align-content: start;
}

.link-modal.closing {
    animation: 0.23s ease 0s 1 normal forwards running fadeOutOverlay;
    pointer-events: none;
}

.link-modal.closing .link-modal-content {
    animation: 0.23s ease-in 0s 1 normal forwards running fadeOutModal;
}

.file-overlay {
    position: fixed;
    inset: 0px;
    background: rgba(0, 0, 0, 0.35);
    backdrop-filter: blur(3px);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s, visibility 0.25s;
    z-index: 9999;
    padding: 20px;
}

.file-overlay.show {
    opacity: 1;
    visibility: visible;
}

.file-overlay.closing {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s, visibility 0.2s;
}

.file-overlay-card {
    background: rgb(255, 255, 255);
    border-radius: 16px;
    box-shadow: rgba(0, 0, 0, 0.15) 0px 12px 40px;
    max-width: 420px;
    width: 100%;
    overflow: hidden;
    opacity: 0;
    transition: opacity 0.25s;
}

.file-overlay.show .file-overlay-card {
    opacity: 1;
    animation: 0.25s ease 0s 1 normal both running fadeInModal;
}

.file-overlay.closing .file-overlay-card {
    opacity: 0;
    transition: opacity 0.2s;
}

.file-overlay-header {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px 24px;
    position: relative;
}

.file-overlay-header-title {
    font-family: "DM Sans", sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: rgba(30, 41, 59, 0.92);
    letter-spacing: -0.02em;
    text-align: center;
}

.file-overlay-close-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: none;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    cursor: pointer;
    color: rgba(108, 117, 125, 0.5);
    transition: background 0.15s, color 0.15s;
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
}

.file-overlay-close-btn:hover {
    background: rgba(0, 0, 0, 0.06);
    color: rgba(44, 62, 80, 0.7);
}

.file-overlay-body {
    padding: 0px 24px 24px;
    overflow-y: auto;
    max-height: 70vh;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.file-overlay-section {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.file-overlay-section-label {
    font-family: "DM Sans", sans-serif;
    font-size: 12px;
    color: rgba(70, 70, 70, 0.5);
    font-weight: 500;
    margin-bottom: 4px;
}

.file-overlay-name-input {
    font-family: "DM Sans", sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: rgba(30, 41, 59, 0.92);
    background: rgba(0, 0, 0, 0.03);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 10px;
    padding: 12px 16px;
    width: 100%;
    outline: none;
    transition: border-color 0.15s, background 0.15s;
    letter-spacing: -0.01em;
}

.file-overlay-name-input:focus {
    border-color: rgba(249, 115, 22, 0.4);
    background: rgba(249, 115, 22, 0.03);
}

.file-overlay-actions-row {
    display: flex;
    gap: 10px;
}

.file-overlay-action-btn {
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: "DM Sans", sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: rgba(44, 62, 80, 0.82);
    background: rgba(0, 0, 0, 0.02);
    border: 1px solid rgba(0, 0, 0, 0.06);
    padding: 11px 16px;
    border-radius: 10px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
    width: 100%;
    letter-spacing: -0.01em;
}

.file-overlay-action-btn:hover {
    background: rgba(0, 0, 0, 0.05);
    color: rgba(30, 41, 59, 0.95);
    border-color: rgba(0, 0, 0, 0.12);
}

.file-overlay-action-btn svg {
    flex-shrink: 0;
    color: rgba(108, 117, 125, 0.45);
    transition: color 0.15s;
}

.file-overlay-action-btn:hover svg {
    color: rgba(44, 62, 80, 0.65);
}

.file-overlay-action-btn--danger {
    color: rgb(220, 53, 69);
    border-color: rgba(220, 53, 69, 0.12);
    background: rgba(220, 53, 69, 0.04);
}

.file-overlay-action-btn--danger:hover {
    color: rgb(200, 35, 51);
    background: rgba(220, 53, 69, 0.1);
    border-color: rgba(220, 53, 69, 0.2);
}

.file-overlay-action-btn--danger svg {
    color: rgb(220, 53, 69);
}

.file-overlay-action-btn--danger:hover svg {
    color: rgb(200, 35, 51);
}

.modal-close-btn {
    background: none;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    color: rgba(108, 117, 125, 0.6);
    font-size: 20px;
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 6px;
    line-height: 1;
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
    transition: color 0.15s, background 0.15s;
}

.modal-close-btn:hover {
    color: rgba(44, 62, 80, 0.9);
    background: rgba(0, 0, 0, 0.05);
}

.slide-video-player {
    position: absolute;
    inset: 0px;
    background: rgb(0, 0, 0);
    border-radius: inherit;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    user-select: none;
}

.slide-el-video:not(.selected) .slide-video-player video, .slide-el-video:not(.selected) .slide-video-player .vid-poster, .slide-el-video:not(.selected) .slide-video-player .vid-big-play {
    pointer-events: none;
}

.slide-video-player video {
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0px;
    display: block;
    object-fit: contain;
    background: rgb(0, 0, 0);
    cursor: pointer;
}

.slide-video-player .vid-poster {
    position: absolute;
    inset: 0px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgb(0, 0, 0);
    cursor: pointer;
    z-index: 1;
    transition: opacity 0.2s;
}

.slide-video-player .vid-poster.hidden {
    opacity: 0;
    pointer-events: none;
}

.slide-video-player .vid-poster svg {
    width: 56px;
    height: 56px;
    opacity: 0.9;
    filter: drop-shadow(rgba(0, 0, 0, 0.5) 0px 2px 8px);
}

.slide-video-player .vid-big-play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--ui-accent, #f97316);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 2;
    box-shadow: rgba(0, 0, 0, 0.3) 0px 2px 8px;
    transition: transform 0.15s, background 0.15s;
    opacity: 0;
    pointer-events: none;
}

.slide-video-player.paused .vid-big-play {
    opacity: 1;
    pointer-events: auto;
}

.slide-video-player .vid-big-play:hover {
    background: var(--ui-accent-hover, #ea580c);
    transform: translate(-50%, -50%) scale(1.08);
}

.slide-video-player .vid-big-play svg {
    width: 14px;
    height: 14px;
    fill: rgb(255, 255, 255);
    margin-left: 2px;
}

.slide-video-player .vid-controls {
    position: absolute;
    bottom: 0px;
    left: 0px;
    right: 0px;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.7));
    padding: 14px 8px 4px;
    display: flex;
    flex-direction: column;
    gap: 3px;
    z-index: 3;
    opacity: 0;
    transition: opacity 0.25s;
}

.slide-video-player:hover .vid-controls, .slide-video-player.paused .vid-controls {
    opacity: 1;
}

.slide-video-player .vid-progress-wrap {
    width: 100%;
    height: 3px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 2px;
    cursor: pointer;
    position: relative;
    transition: height 0.1s;
}

.slide-video-player .vid-progress-wrap:hover {
    height: 6px;
}

.slide-video-player .vid-progress-bar {
    height: 100%;
    background: var(--ui-accent, #f97316);
    border-radius: 3px;
    position: relative;
    pointer-events: none;
    transition: none;
}

.slide-video-player .vid-progress-bar::after {
    content: "";
    position: absolute;
    right: -4px;
    top: 50%;
    transform: translateY(-50%) scale(0);
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--ui-accent, #f97316);
    box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 3px;
    transition: transform 0.15s;
}

.slide-video-player .vid-progress-wrap:hover .vid-progress-bar::after {
    transform: translateY(-50%) scale(1);
}

.slide-video-player .vid-buffer-bar {
    position: absolute;
    top: 0px;
    left: 0px;
    height: 100%;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 3px;
    pointer-events: none;
}

.slide-video-player .vid-btns {
    display: flex;
    align-items: center;
    gap: 5px;
}

.slide-video-player .vid-btn {
    background: none;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    padding: 2px;
    cursor: pointer;
    color: rgb(255, 255, 255);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    transition: background 0.15s;
}

.slide-video-player .vid-btn:hover {
    background: rgba(255, 255, 255, 0.15);
}

.slide-video-player .vid-btn svg {
    width: 14px;
    height: 14px;
    fill: rgb(255, 255, 255);
}

.slide-video-player .vid-time {
    color: rgba(255, 255, 255, 0.85);
    font-size: 9px;
    font-family: "DM Sans", system-ui, sans-serif;
    white-space: nowrap;
    min-width: 52px;
}

.slide-video-player .vid-vol-wrap {
    display: flex;
    align-items: center;
    gap: 3px;
}

.slide-video-player .vid-vol-slider {
    appearance: none;
    width: 40px;
    height: 3px;
    background: rgba(255, 255, 255, 0.25);
    border-radius: 2px;
    outline: none;
    cursor: pointer;
}

.slide-video-player .vid-vol-slider::-webkit-slider-thumb {
    appearance: none;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--ui-accent, #f97316);
    cursor: pointer;
}

.slide-video-player .vid-spacer {
    flex: 1 1 0%;
}

.slide-audio-player {
    position: absolute;
    inset: 0px;
    background: linear-gradient(135deg, rgb(30, 30, 46) 0%, rgb(42, 42, 60) 100%);
    border-radius: 0px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    user-select: none;
    color: rgb(255, 255, 255);
    font-family: "DM Sans", system-ui, sans-serif;
}

.slide-el-audio:not(.selected) .slide-audio-player .aud-art {
    pointer-events: none;
}

.slide-audio-player .aud-art {
    flex: 1 1 0%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    min-height: 0px;
}

.slide-audio-player .aud-wave {
    display: flex;
    align-items: center;
    gap: 2px;
    height: 12px;
    position: absolute;
    bottom: 8px;
    opacity: 0;
    transition: opacity 0.2s;
}

.slide-audio-player.playing .aud-wave {
    opacity: 1;
}

.slide-audio-player .aud-wave span {
    width: 3px;
    background: var(--ui-accent, #f97316);
    border-radius: 2px;
    animation: 0.8s ease-in-out 0s infinite alternate none running audWave;
}

.slide-audio-player .aud-wave span:nth-child(1) {
    height: 40%;
    animation-delay: 0s;
}

.slide-audio-player .aud-wave span:nth-child(2) {
    height: 70%;
    animation-delay: 0.15s;
}

.slide-audio-player .aud-wave span:nth-child(3) {
    height: 100%;
    animation-delay: 0.3s;
}

.slide-audio-player .aud-wave span:nth-child(4) {
    height: 60%;
    animation-delay: 0.45s;
}

.slide-audio-player .aud-wave span:nth-child(5) {
    height: 35%;
    animation-delay: 0.6s;
}

@keyframes audWave {
    0% {
        height: 20%;
    }

    100% {
        height: 100%;
    }
}

.slide-audio-player .aud-controls {
    padding: 4px 8px 5px;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.slide-audio-player .aud-progress-wrap {
    width: 100%;
    height: 4px;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 2px;
    cursor: pointer;
    position: relative;
}

.slide-audio-player .aud-progress-wrap:hover {
    height: 5px;
}

.slide-audio-player .aud-progress-bar {
    height: 100%;
    background: var(--ui-accent, #f97316);
    border-radius: 2px;
    pointer-events: none;
    position: relative;
}

.slide-audio-player .aud-progress-bar::after {
    content: "";
    position: absolute;
    right: -3px;
    top: 50%;
    transform: translateY(-50%) scale(0);
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--ui-accent, #f97316);
    transition: transform 0.15s;
}

.slide-audio-player .aud-progress-wrap:hover .aud-progress-bar::after {
    transform: translateY(-50%) scale(1);
}

.slide-audio-player .aud-btns {
    display: flex;
    align-items: center;
    gap: 4px;
}

.slide-audio-player .aud-btn {
    background: none;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    padding: 2px;
    cursor: pointer;
    color: rgb(255, 255, 255);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 3px;
    transition: background 0.15s;
}

.slide-audio-player .aud-btn:hover {
    background: rgba(255, 255, 255, 0.12);
}

.slide-audio-player .aud-btn svg {
    width: 12px;
    height: 12px;
    fill: rgb(255, 255, 255);
}

.slide-audio-player .aud-play-btn {
    width: 16px;
    height: 16px;
    margin: 2px;
    border-radius: 50%;
    background: var(--ui-accent, #f97316);
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.15s, transform 0.1s;
    padding: 0px;
}

.slide-audio-player .aud-play-btn:hover {
    background: var(--ui-accent-hover, #ea580c);
    transform: scale(1.06);
}

.slide-audio-player .aud-play-btn svg {
    width: 9px;
    height: 9px;
    fill: rgb(255, 255, 255);
}

.slide-audio-player .aud-time {
    color: rgba(255, 255, 255, 0.6);
    font-size: 8px;
    white-space: nowrap;
}

.slide-audio-player .aud-spacer {
    flex: 1 1 0%;
}

.slide-audio-player .aud-vol-wrap {
    display: flex;
    align-items: center;
    gap: 3px;
}

.slide-audio-player .aud-vol-slider {
    appearance: none;
    width: 28px;
    height: 2px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 1px;
    outline: none;
    cursor: pointer;
}

.slide-audio-player .aud-vol-slider::-webkit-slider-thumb {
    appearance: none;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--ui-accent, #f97316);
    cursor: pointer;
}

.present-slide .slide-video-player:fullscreen .vid-big-play, .present-slide .slide-video-player:-webkit-full-screen .vid-big-play, .slide-video-player:fullscreen .vid-big-play, .slide-video-player:-webkit-full-screen .vid-big-play {
    width: 64px;
    height: 64px;
    box-shadow: rgba(0, 0, 0, 0.4) 0px 4px 16px;
}

.present-slide .slide-video-player:fullscreen .vid-big-play svg, .present-slide .slide-video-player:-webkit-full-screen .vid-big-play svg, .slide-video-player:fullscreen .vid-big-play svg, .slide-video-player:-webkit-full-screen .vid-big-play svg {
    width: 32px;
    height: 32px;
    margin-left: 4px;
}

.present-slide .slide-video-player:fullscreen .vid-controls, .present-slide .slide-video-player:-webkit-full-screen .vid-controls, .slide-video-player:fullscreen .vid-controls, .slide-video-player:-webkit-full-screen .vid-controls {
    padding: 28px 16px 10px;
    gap: 7px;
}

.present-slide .slide-video-player:fullscreen .vid-progress-wrap, .present-slide .slide-video-player:-webkit-full-screen .vid-progress-wrap, .slide-video-player:fullscreen .vid-progress-wrap, .slide-video-player:-webkit-full-screen .vid-progress-wrap {
    height: 7px;
    border-radius: 3px;
}

.present-slide .slide-video-player:fullscreen .vid-progress-wrap:hover, .present-slide .slide-video-player:-webkit-full-screen .vid-progress-wrap:hover, .slide-video-player:fullscreen .vid-progress-wrap:hover, .slide-video-player:-webkit-full-screen .vid-progress-wrap:hover {
    height: 12px;
}

.present-slide .slide-video-player:fullscreen .vid-progress-bar, .present-slide .slide-video-player:-webkit-full-screen .vid-progress-bar, .slide-video-player:fullscreen .vid-progress-bar, .slide-video-player:-webkit-full-screen .vid-progress-bar {
    border-radius: 3px;
}

.present-slide .slide-video-player:fullscreen .vid-progress-bar::after, .present-slide .slide-video-player:-webkit-full-screen .vid-progress-bar::after, .slide-video-player:fullscreen .vid-progress-bar::after, .slide-video-player:-webkit-full-screen .vid-progress-bar::after {
    width: 14px;
    height: 14px;
    right: -6px;
    box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 4px;
}

.present-slide .slide-video-player:fullscreen .vid-buffer-bar, .present-slide .slide-video-player:-webkit-full-screen .vid-buffer-bar, .slide-video-player:fullscreen .vid-buffer-bar, .slide-video-player:-webkit-full-screen .vid-buffer-bar {
    border-radius: 3px;
}

.present-slide .slide-video-player:fullscreen .vid-btns, .present-slide .slide-video-player:-webkit-full-screen .vid-btns, .slide-video-player:fullscreen .vid-btns, .slide-video-player:-webkit-full-screen .vid-btns {
    gap: 10px;
}

.present-slide .slide-video-player:fullscreen .vid-btn, .present-slide .slide-video-player:-webkit-full-screen .vid-btn, .slide-video-player:fullscreen .vid-btn, .slide-video-player:-webkit-full-screen .vid-btn {
    padding: 5px;
    border-radius: 20px;
}

.present-slide .slide-video-player:fullscreen .vid-btn svg, .present-slide .slide-video-player:-webkit-full-screen .vid-btn svg, .slide-video-player:fullscreen .vid-btn svg, .slide-video-player:-webkit-full-screen .vid-btn svg {
    width: 22px;
    height: 22px;
}

.present-slide .slide-video-player:fullscreen .vid-time, .present-slide .slide-video-player:-webkit-full-screen .vid-time, .slide-video-player:fullscreen .vid-time, .slide-video-player:-webkit-full-screen .vid-time {
    font-size: 14px;
    min-width: 90px;
}

.present-slide .slide-video-player:fullscreen .vid-vol-wrap, .present-slide .slide-video-player:-webkit-full-screen .vid-vol-wrap, .slide-video-player:fullscreen .vid-vol-wrap, .slide-video-player:-webkit-full-screen .vid-vol-wrap {
    gap: 6px;
}

.present-slide .slide-video-player:fullscreen .vid-vol-slider, .present-slide .slide-video-player:-webkit-full-screen .vid-vol-slider, .slide-video-player:fullscreen .vid-vol-slider, .slide-video-player:-webkit-full-screen .vid-vol-slider {
    width: 70px;
    height: 5px;
    border-radius: 3px;
}

.present-slide .slide-video-player:fullscreen .vid-vol-slider::-webkit-slider-thumb, .present-slide .slide-video-player:-webkit-full-screen .vid-vol-slider::-webkit-slider-thumb, .slide-video-player:fullscreen .vid-vol-slider::-webkit-slider-thumb, .slide-video-player:-webkit-full-screen .vid-vol-slider::-webkit-slider-thumb {
    width: 14px;
    height: 14px;
}

.present-slide .slide-video-player:fullscreen, .present-slide .slide-video-player:-webkit-full-screen, .slide-video-player:fullscreen, .slide-video-player:-webkit-full-screen {
    background: rgb(0, 0, 0);
    width: 100vw !important;
    height: 100vh !important;
}

.present-slide .slide-video-player:fullscreen .vid-controls, .present-slide .slide-video-player:-webkit-full-screen .vid-controls, .present-slide .slide-video-player:fullscreen .vid-controls, .present-slide .slide-video-player:-webkit-full-screen .vid-controls, .slide-video-player:fullscreen .vid-controls, .slide-video-player:-webkit-full-screen .vid-controls {
    position: absolute;
    bottom: 0px;
    left: 0px;
    right: 0px;
}

.present-slide .slide-audio-player:fullscreen .aud-controls, .present-slide .slide-audio-player:-webkit-full-screen .aud-controls, .slide-audio-player:fullscreen .aud-controls, .slide-audio-player:-webkit-full-screen .aud-controls {
    padding: 8px 14px 10px;
    gap: 6px;
}

.present-slide .slide-audio-player:fullscreen .aud-progress-wrap, .present-slide .slide-audio-player:-webkit-full-screen .aud-progress-wrap, .slide-audio-player:fullscreen .aud-progress-wrap, .slide-audio-player:-webkit-full-screen .aud-progress-wrap {
    height: 5px;
}

.present-slide .slide-audio-player:fullscreen .aud-progress-wrap:hover, .present-slide .slide-audio-player:-webkit-full-screen .aud-progress-wrap:hover, .slide-audio-player:fullscreen .aud-progress-wrap:hover, .slide-audio-player:-webkit-full-screen .aud-progress-wrap:hover {
    height: 8px;
}

.present-slide .slide-audio-player:fullscreen .aud-progress-bar::after, .present-slide .slide-audio-player:-webkit-full-screen .aud-progress-bar::after, .slide-audio-player:fullscreen .aud-progress-bar::after, .slide-audio-player:-webkit-full-screen .aud-progress-bar::after {
    width: 12px;
    height: 12px;
    right: -5px;
}

.present-slide .slide-audio-player:fullscreen .aud-btns, .present-slide .slide-audio-player:-webkit-full-screen .aud-btns, .slide-audio-player:fullscreen .aud-btns, .slide-audio-player:-webkit-full-screen .aud-btns {
    gap: 8px;
}

.present-slide .slide-audio-player:fullscreen .aud-btn, .present-slide .slide-audio-player:-webkit-full-screen .aud-btn, .slide-audio-player:fullscreen .aud-btn, .slide-audio-player:-webkit-full-screen .aud-btn {
    padding: 4px;
    border-radius: 5px;
}

.present-slide .slide-audio-player:fullscreen .aud-btn svg, .present-slide .slide-audio-player:-webkit-full-screen .aud-btn svg, .slide-audio-player:fullscreen .aud-btn svg, .slide-audio-player:-webkit-full-screen .aud-btn svg {
    width: 20px;
    height: 20px;
}

.present-slide .slide-audio-player:fullscreen .aud-play-btn, .present-slide .slide-audio-player:-webkit-full-screen .aud-play-btn, .slide-audio-player:fullscreen .aud-play-btn, .slide-audio-player:-webkit-full-screen .aud-play-btn {
    width: 32px;
    height: 32px;
    margin: 6px;
}

.present-slide .slide-audio-player:fullscreen .aud-play-btn svg, .present-slide .slide-audio-player:-webkit-full-screen .aud-play-btn svg, .slide-audio-player:fullscreen .aud-play-btn svg, .slide-audio-player:-webkit-full-screen .aud-play-btn svg {
    width: 18px;
    height: 18px;
}

.present-slide .slide-audio-player:fullscreen .aud-time, .present-slide .slide-audio-player:-webkit-full-screen .aud-time, .slide-audio-player:fullscreen .aud-time, .slide-audio-player:-webkit-full-screen .aud-time {
    font-size: 13px;
}

.present-slide .slide-audio-player:fullscreen .aud-vol-slider, .present-slide .slide-audio-player:-webkit-full-screen .aud-vol-slider, .slide-audio-player:fullscreen .aud-vol-slider, .slide-audio-player:-webkit-full-screen .aud-vol-slider {
    width: 50px;
    height: 4px;
}

.present-slide .slide-audio-player:fullscreen .aud-vol-slider::-webkit-slider-thumb, .present-slide .slide-audio-player:-webkit-full-screen .aud-vol-slider::-webkit-slider-thumb, .slide-audio-player:fullscreen .aud-vol-slider::-webkit-slider-thumb, .slide-audio-player:-webkit-full-screen .aud-vol-slider::-webkit-slider-thumb {
    width: 12px;
    height: 12px;
}

.present-slide .slide-audio-player:fullscreen .aud-wave, .present-slide .slide-audio-player:-webkit-full-screen .aud-wave, .slide-audio-player:fullscreen .aud-wave, .slide-audio-player:-webkit-full-screen .aud-wave {
    height: 22px;
    gap: 3px;
    bottom: 12px;
}

.present-overlay .vid-expanded {
    position: fixed !important;
    inset: 0px !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 1000001 !important;
    border-radius: 0px !important;
    transform: none !important;
    background-color: rgb(0, 0, 0) !important;
}

.present-overlay .vid-expanded video {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
}

.present-overlay .vid-expanded .vid-big-play {
    width: 64px;
    height: 64px;
    box-shadow: rgba(0, 0, 0, 0.4) 0px 4px 16px;
}

.present-overlay .vid-expanded .vid-big-play svg {
    width: 32px;
    height: 32px;
    margin-left: 4px;
}

.present-overlay .vid-expanded .vid-controls {
    position: absolute;
    bottom: 0px;
    left: 0px;
    right: 0px;
    padding: 28px 16px 10px;
    gap: 7px;
}

.present-overlay .vid-expanded .vid-progress-wrap {
    height: 7px;
    border-radius: 3px;
}

.present-overlay .vid-expanded .vid-progress-wrap:hover {
    height: 12px;
}

.present-overlay .vid-expanded .vid-progress-bar::after {
    width: 14px;
    height: 14px;
    right: -6px;
}

.present-overlay .vid-expanded .vid-btns {
    gap: 10px;
}

.present-overlay .vid-expanded .vid-btn {
    padding: 5px;
    border-radius: 20px;
}

.present-overlay .vid-expanded .vid-btn svg {
    width: 22px;
    height: 22px;
}

.present-overlay .vid-expanded .vid-time {
    font-size: 14px;
    min-width: 90px;
}

.present-overlay .vid-expanded .vid-vol-wrap {
    gap: 6px;
}

.present-overlay .vid-expanded .vid-vol-slider {
    width: 70px;
    height: 5px;
    border-radius: 3px;
}

.present-overlay .vid-expanded .vid-vol-slider::-webkit-slider-thumb {
    width: 14px;
    height: 14px;
}

.present-slide .slide-video-player .vid-big-play {
    width: 22px;
    height: 22px;
    box-shadow: rgba(0, 0, 0, 0.25) 0px 1px 6px;
}

.present-slide .slide-video-player .vid-big-play svg {
    width: 11px;
    height: 11px;
    margin-left: 1px;
}

.present-slide .slide-video-player .vid-controls {
    padding: 8px 5px 3px;
    gap: 3px;
}

.present-slide .slide-video-player .vid-progress-wrap {
    height: 3px;
    border-radius: 1px;
}

.present-slide .slide-video-player .vid-progress-wrap:hover {
    height: 4px;
}

.present-slide .slide-video-player .vid-progress-bar {
    border-radius: 1px;
}

.present-slide .slide-video-player .vid-progress-bar::after {
    width: 7px;
    height: 7px;
    right: -3px;
    box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 2px;
}

.present-slide .slide-video-player .vid-buffer-bar {
    border-radius: 1px;
}

.present-slide .slide-video-player .vid-btns {
    gap: 3px;
}

.present-slide .slide-video-player .vid-btn {
    padding: 1px;
    border-radius: 8px;
}

.present-slide .slide-video-player .vid-btn svg {
    width: 10px;
    height: 10px;
}

.present-slide .slide-video-player .vid-time {
    font-size: 6px;
    min-width: 32px;
}

.present-slide .slide-video-player .vid-vol-wrap {
    gap: 2px;
}

.present-slide .slide-video-player .vid-vol-slider {
    width: 28px;
    height: 2px;
    border-radius: 1px;
}

.present-slide .slide-video-player .vid-vol-slider::-webkit-slider-thumb {
    width: 6px;
    height: 6px;
}

.present-slide .slide-audio-player .aud-controls {
    padding: 4px 6px 5px;
    gap: 2px;
}

.present-slide .slide-audio-player .aud-progress-wrap {
    height: 2px;
}

.present-slide .slide-audio-player .aud-progress-wrap:hover {
    height: 4px;
}

.present-slide .slide-audio-player .aud-progress-bar::after {
    width: 6px;
    height: 6px;
    right: -2px;
}

.present-slide .slide-audio-player .aud-btns {
    gap: 3px;
}

.present-slide .slide-audio-player .aud-btn {
    padding: 1px;
    border-radius: 2px;
}

.present-slide .slide-audio-player .aud-btn svg {
    width: 9px;
    height: 9px;
}

.present-slide .slide-audio-player .aud-play-btn {
    width: 18px;
    height: 18px;
    margin: 2px;
}

.present-slide .slide-audio-player .aud-play-btn svg {
    width: 9px;
    height: 9px;
}

.present-slide .slide-audio-player .aud-time {
    font-size: 6px;
}

.present-slide .slide-audio-player .aud-vol-slider {
    width: 24px;
    height: 2px;
}

.present-slide .slide-audio-player .aud-vol-slider::-webkit-slider-thumb {
    width: 6px;
    height: 6px;
}

.present-slide .slide-audio-player .aud-wave {
    height: 12px;
    gap: 1px;
    bottom: 6px;
}

.comment-pin {
    position: absolute;
    z-index: 999;
    cursor: pointer;
    transition: transform 0.12s, opacity 0.12s;
}

.comment-pin:hover {
    transform: scale(1.1);
}

.comment-pin-icon {
    width: 20px;
    height: 20px;
    background: rgb(249, 115, 22);
    border-radius: 50% 50% 50% 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 10px;
    font-weight: 700;
    font-family: "DM Sans", sans-serif;
    box-shadow: rgba(249, 115, 22, 0.3) 0px 1px 4px;
    transform: rotate(-45deg);
}

.comment-pin-icon span {
    transform: rotate(45deg);
}

.comment-popup {
    position: absolute;
    z-index: 10000;
    background: rgb(255, 255, 255);
    border-radius: 8px;
    box-shadow: rgba(0, 0, 0, 0.12) 0px 4px 16px, rgba(0, 0, 0, 0.08) 0px 1px 4px;
    max-width: 220px;
    font-family: "DM Sans", sans-serif;
    animation: 0.15s ease-out 0s 1 normal none running commentPopupIn;
    overflow: hidden;
    border: 1px solid rgba(0, 0, 0, 0.06);
}

@keyframes commentPopupIn {
    0% {
        opacity: 0;
        transform: translateY(4px);
    }

    100% {
        opacity: 1;
        transform: translateY(0px);
    }
}

.comment-popup-header {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 10px 6px;
    background: rgba(249, 115, 22, 0.06);
    border-bottom: 1px solid rgba(0, 0, 0, 0.04);
}

.comment-popup-avatar {
    width: 20px;
    height: 20px;
    background: rgb(249, 115, 22);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 10px;
    font-weight: 700;
    flex-shrink: 0;
}

.comment-popup-author {
    font-weight: 600;
    font-size: 0.78rem;
    color: rgb(26, 26, 26);
}

.comment-popup-time {
    font-size: 0.65rem;
    color: rgb(153, 153, 153);
}

.comment-popup-close {
    margin-left: auto;
    background: none;
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    color: rgb(187, 187, 187);
    cursor: pointer;
    font-size: 0.9rem;
    line-height: 1;
    padding: 2px;
    border-radius: 3px;
    transition: background 0.12s, color 0.12s;
}

.comment-popup-close:hover {
    background: rgba(0, 0, 0, 0.06);
    color: rgb(102, 102, 102);
}

.comment-popup-body {
    font-size: 0.78rem;
    color: rgb(68, 68, 68);
    line-height: 1.4;
    padding: 6px 10px;
    word-break: break-word;
}

.comment-popup-actions {
    display: flex;
    gap: 6px;
    padding: 6px 10px 8px;
}

.comment-popup-actions button {
    padding: 3px 8px;
    border-radius: 4px;
    font-size: 0.7rem;
    cursor: pointer;
    transition: background 0.12s;
    font-family: "DM Sans", sans-serif;
    font-weight: 500;
}

.comment-reply-btn {
    background: rgba(0, 0, 0, 0.04);
    border: 1px solid rgba(0, 0, 0, 0.08);
    color: rgb(102, 102, 102);
}

.comment-reply-btn:hover {
    background: rgba(0, 0, 0, 0.08);
    color: rgb(51, 51, 51);
}

.comment-delete-btn {
    background: rgba(217, 48, 37, 0.06);
    border: 1px solid rgba(217, 48, 37, 0.15);
    color: rgb(217, 48, 37);
}

.comment-delete-btn:hover {
    background: rgba(217, 48, 37, 0.12);
}

.link-badge {
    position: absolute;
    width: 18px;
    height: 18px;
    background: rgb(37, 99, 235);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    box-shadow: rgba(37, 99, 235, 0.4) 0px 1px 4px;
    transition: transform 0.12s;
}

.link-badge svg {
    width: 10px;
    height: 10px;
    stroke: rgb(255, 255, 255);
    fill: none;
}

.delete-modal-body input[type="url"], .delete-modal-body textarea {
    width: 100%;
    padding: 8px 12px;
    border: 1.5px solid rgba(0, 0, 0, 0.12);
    border-radius: 8px;
    font-size: 14px;
    outline: none;
    box-sizing: border-box;
    font-family: "DM Sans", sans-serif;
    transition: border-color 0.2s, box-shadow 0.2s;
    margin-top: 4px;
    margin-bottom: 20px;
}

.delete-modal-body input[type="url"]:focus, .delete-modal-body textarea:focus {
    border-color: rgb(249, 115, 22);
    box-shadow: rgba(249, 115, 22, 0.1) 0px 0px 0px 3px;
}

.delete-modal-body label {
    display: block;
    font-size: 13px;
    color: rgba(44, 62, 80, 0.7);
    margin-bottom: 2px;
    font-weight: 500;
    font-family: "DM Sans", sans-serif;
}

.editor-rulers {
    display: none;
    position: absolute;
    inset: 0px;
    pointer-events: none;
    z-index: 6;
}

body.show-rulers .editor-rulers {
    display: block;
}

.ruler-corner {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 18px;
    height: 18px;
    background: transparent;
    border-right: 1px solid rgb(203, 213, 225);
    border-bottom: 1px solid rgb(203, 213, 225);
    z-index: 2;
}

.ruler-top, .ruler-left {
    position: absolute;
    background: transparent;
    overflow: hidden;
    color: rgb(100, 116, 139);
    font-family: "DM Sans", system-ui, sans-serif;
    font-size: 9px;
    font-weight: 500;
}

.ruler-top {
    top: 0px;
    left: 0px;
    right: 0px;
    height: 18px;
    background: rgb(245, 245, 245);
    border-bottom: 1px solid rgb(203, 213, 225);
}

.ruler-left {
    top: 0px;
    left: 0px;
    bottom: 0px;
    width: 18px;
    background: rgb(245, 245, 245);
    border-right: 1px solid rgb(203, 213, 225);
}

.ruler-tick {
    position: absolute;
    background: rgb(148, 163, 184);
    pointer-events: none;
}

.ruler-tick-x {
    top: 0px;
    width: 1px;
}

.ruler-tick-y {
    left: 0px;
    height: 1px;
}

.ruler-label {
    position: absolute;
    color: rgb(100, 116, 139);
    font-size: 9px;
    line-height: 1;
    pointer-events: none;
    user-select: none;
}

.ruler-label-x {
    top: 11px;
    white-space: nowrap;
}

.ruler-label-y {
    left: 11px;
    white-space: nowrap;
    transform: rotate(-90deg);
    transform-origin: left top;
}