/*!
 * FLUENT REDACTOR 3 - Microsoft Fluent Design System
 * Professional WYSIWYG Editor with Modern UX
 * Version 3.0 - osTicket Enhanced
 */

:root {
    /* Fluent Design Tokens */
    --redactor-bg: #ffffff;
    --redactor-bg-secondary: #faf9f8;
    --redactor-bg-tertiary: #f3f2f1;
    --redactor-text: #323130;
    --redactor-text-secondary: #605e5c;
    --redactor-text-tertiary: #a19f9d;
    --redactor-accent: #0078d4;
    --redactor-accent-light: #e6f2fa;
    --redactor-accent-dark: #106ebe;
    --redactor-border: #edebe9;
    --redactor-border-dark: #c8c6c4;
    --redactor-border-focus: #0078d4;
    --redactor-error: #d13438;
    --redactor-error-light: #fde7e9;
    --redactor-success: #107c41;
    --redactor-success-light: #dff6dd;
    --redactor-warning: #ff8c00;
    --redactor-warning-light: #fff4e6;
    
    /* Typography */
    --redactor-font: 'Segoe UI', system-ui, -apple-system, 'Helvetica Neue', sans-serif;
    --redactor-font-mono: 'Cascadia Code', 'Source Code Pro', 'Consolas', monospace;
    
    /* Spacing */
    --redactor-space-xs: 4px;
    --redactor-space-sm: 8px;
    --redactor-space-md: 16px;
    --redactor-space-lg: 24px;
    --redactor-space-xl: 32px;
    
    /* Elevation */
    --redactor-shadow-sm: 0 1.6px 3.6px rgba(0,0,0,0.13), 0 0.3px 0.9px rgba(0,0,0,0.1);
    --redactor-shadow-md: 0 3.2px 7.2px rgba(0,0,0,0.13), 0 0.6px 1.8px rgba(0,0,0,0.1);
    --redactor-shadow-lg: 0 6.4px 14.4px rgba(0,0,0,0.13), 0 1.2px 3.6px rgba(0,0,0,0.1);
    --redactor-shadow-focus: 0 0 0 3px rgba(0, 120, 212, 0.1);
    
    /* Animation */
    --redactor-transition: 0.1s cubic-bezier(0.4, 0, 0.2, 1);
    --redactor-transition-slow: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    
    /* Border Radius */
    --redactor-radius-sm: 2px;
    --redactor-radius-md: 4px;
    --redactor-radius-lg: 8px;
}

/* ===== ANIMATIONS ===== */
@keyframes fluentFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes fluentFadeOut {
    from { opacity: 1; }
    to { opacity: 0; }
}

@keyframes fluentSlideIn {
    from { 
        opacity: 0;
        transform: translateY(-8px);
    }
    to { 
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fluentProgress {
    from { background-position: 40px 0; }
    to { background-position: 0 0; }
}

.redactor-animate-hide {
    display: none !important;
}

.redactor-fadeIn {
    opacity: 0;
    animation: fluentFadeIn var(--redactor-transition-slow) ease-in-out;
}

.redactor-fadeOut {
    opacity: 1;
    animation: fluentFadeOut var(--redactor-transition-slow) ease-in-out;
}

/* ===== MODERN ICON FONT ===== */
@font-face {
    font-family: 'FluentRedactor';
    src: url("data:application/x-font-ttf;charset=utf-8;base64,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") format("truetype");
    font-weight: normal;
    font-style: normal;
}

[class^="re-icon-"], 
[class*=" re-icon-"] {
    font-family: 'FluentRedactor' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: 16px;
    color: var(--redactor-text-secondary);
    transition: color var(--redactor-transition);
}

.re-icon-aligncenter:before { content: "\e900"; }
.re-icon-alignment:before,
.re-icon-alignleft:before { content: "\e901"; }
.re-icon-alignright:before { content: "\e902"; }
.re-icon-bold:before { content: "\e903"; }
.re-icon-bookmark:before { content: "\e904"; }
.re-icon-clips:before { content: "\e905"; }
.re-icon-codesnippets:before { content: "\e906"; }
.re-icon-deleted:before { content: "\e907"; }
.re-icon-expand:before { content: "\e908"; }
.re-icon-file:before { content: "\e909"; }
.re-icon-fontcolor:before { content: "\e90a"; }
.re-icon-fontfamily:before { content: "\e90b"; }
.re-icon-fontsize:before { content: "\e90c"; }
.re-icon-format:before { content: "\e90d"; }
.re-icon-html:before { content: "\e90e"; }
.re-icon-imagecenter:before { content: "\e90f"; }
.re-icon-imageleft:before { content: "\e910"; }
.re-icon-imageright:before { content: "\e911"; }
.re-icon-image:before { content: "\e912"; }
.re-icon-indent:before { content: "\e913"; }
.re-icon-inline:before { content: "\e914"; }
.re-icon-italic:before { content: "\e915"; }
.re-icon-line:before,
.re-icon-horizontalrule:before { content: "\e916"; }
.re-icon-link:before { content: "\e917"; }
.re-icon-ol:before,
.re-icon-ordered:before { content: "\e918"; }
.re-icon-outdent:before { content: "\e919"; }
.re-icon-properties:before { content: "\e91a"; }
.re-icon-readmore:before { content: "\e91b"; }
.re-icon-redo:before { content: "\e91c"; }
.re-icon-retract:before { content: "\e91d"; }
.re-icon-specialcharacters:before { content: "\e91e"; }
.re-icon-sub:before { content: "\e91f"; }
.re-icon-sup:before { content: "\e920"; }
.re-icon-table:before { content: "\e921"; }
.re-icon-textdirection:before { content: "\e922"; }
.re-icon-toggle:before { content: "\e923"; }
.re-icon-underline:before { content: "\e924"; }
.re-icon-undo:before { content: "\e925"; }
.re-icon-ul:before,
.re-icon-lists:before,
.re-icon-unordered:before { content: "\e926"; }
.re-icon-variable:before { content: "\e927"; }
.re-icon-video:before { content: "\e928"; }
.re-icon-widget:before { content: "\e929"; }

/* ===== EDITOR CONTAINER ===== */
.redactor-box,
.redactor-box textarea {
    z-index: auto;
}

.redactor-box {
    position: relative;
    box-sizing: border-box;
    font-family: var(--redactor-font);
}

.redactor-box.redactor-styles-on {
    margin: 0;
    padding: 0;
    background: var(--redactor-bg);
    border: 1px solid var(--redactor-border);
    border-radius: var(--redactor-radius-md);
    box-shadow: var(--redactor-shadow-sm);
}

.redactor-box.redactor-inline {
    position: static;
}

.redactor-focus.redactor-styles-on,
.redactor-focus:focus.redactor-styles-on {
    border-color: var(--redactor-border-focus) !important;
    box-shadow: var(--redactor-shadow-focus);
}

.redactor-over:hover.redactor-styles-on {
    border-color: var(--redactor-error) !important;
}

.redactor-source-view,
.redactor-source-view.redactor-styles-on {
    border-color: var(--redactor-text) !important;
}

/* ===== EDITOR CONTENT AREA ===== */
.redactor-in {
    position: relative;
    overflow: auto;
    white-space: normal;
    box-sizing: border-box;
    padding: var(--redactor-space-md) var(--redactor-space-lg);
    min-height: 200px;
    color: var(--redactor-text);
    font-family: var(--redactor-font);
    font-size: 15px;
    line-height: 1.6;
}

.redactor-in:focus {
    outline: none;
}

.redactor-inline .redactor-in {
    overflow: hidden;
}

.redactor-in *,
.redactor-read-only * {
    outline: none !important;
}

/* Content placeholders */
.redactor-in h1:empty,
.redactor-in h2:empty,
.redactor-in h3:empty,
.redactor-in h4:empty,
.redactor-in h5:empty,
.redactor-in h6:empty,
.redactor-in p:empty,
.redactor-in blockquote:empty,
.redactor-in div[data-redactor-tag=br]:empty,
.redactor-in div[data-redactor-tag=tbr]:empty {
    min-height: 1.6em;
}

.redactor-in div[data-redactor-tag=br],
.redactor-in div[data-redactor-tag=tbr] {
    margin-top: 0;
    margin-bottom: 0;
}

.redactor-in strong:empty, 
.redactor-in b:empty, 
.redactor-in em:empty, 
.redactor-in i:empty, 
.redactor-in span:empty, 
.redactor-in sup:empty, 
.redactor-in sub:empty, 
.redactor-in u:empty, 
.redactor-in ins:empty {
    display: inline-block;
    min-width: 1px;
    min-height: 1.2rem;
}

.redactor-in table {
    empty-cells: show;
}

/* ===== COMPONENTS ===== */
.redactor-component {
    position: relative;
}

.redactor-component[data-redactor-type="widget"]:before,
.redactor-component[data-redactor-type="video"]:before {
    width: 100%;
    height: 100%;
    content: "";
    display: block;
    position: absolute;
    z-index: 1;
}

.redactor-component[data-redactor-type=image],
.redactor-component[data-redactor-type=widget] {
    clear: both;
    border-radius: var(--redactor-radius-md);
    overflow: hidden;
}

.redactor-component[data-redactor-type=variable] {
    white-space: nowrap;
    background: var(--redactor-accent);
    color: white;
    display: inline-block;
    padding: 4px 8px;
    line-height: 1;
    border-radius: var(--redactor-radius-sm);
    cursor: pointer;
    font-size: 12px;
    font-weight: 500;
}

.redactor-component-active {
    outline: 3px solid var(--redactor-accent-light) !important;
    border-radius: var(--redactor-radius-sm);
}

.redactor-component-active[data-redactor-type=image] {
    outline: none !important;
}

.redactor-component-active[data-redactor-type=image] img {
    outline: 3px solid var(--redactor-accent-light) !important;
    border-radius: var(--redactor-radius-sm);
}

.redactor-component-active[data-redactor-type=variable] {
    outline: none !important;
    background: var(--redactor-error);
}

.redactor-blur.redactor-styles-on .redactor-component-active {
    outline: 3px solid var(--redactor-border-dark) !important;
}

.redactor-component-caret {
    position: absolute;
    left: -9999px;
}

/* ===== IMAGE RESIZER ===== */
#redactor-image-resizer {
    position: absolute;
    z-index: 1051;
    background-color: var(--redactor-accent);
    width: 12px;
    height: 12px;
    border: 2px solid white;
    border-radius: 2px;
    cursor: nwse-resize;
    box-shadow: var(--redactor-shadow-sm);
}

/* ===== FILE ITEMS ===== */
.redactor-file-item {
    display: inline-flex;
    align-items: center;
    line-height: 1;
    padding: 6px 16px;
    border-radius: 20px;
    border: 1px solid var(--redactor-border);
    background: var(--redactor-bg-secondary);
    color: var(--redactor-text);
    font-size: 13px;
}

.redactor-file-remover {
    margin-left: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    cursor: pointer;
    opacity: 0.6;
    font-size: 16px;
    line-height: 1;
    transition: all var(--redactor-transition);
}

.redactor-file-remover:hover {
    opacity: 1;
    background: rgba(0,0,0,0.08);
}

/* ===== OVERLAY ===== */
.redactor-overlay {
    position: fixed;
    z-index: 1051;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(27, 26, 25, 0.6);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

/* ===== SOURCE VIEW ===== */
.redactor-source,
.redactor-source:hover,
.redactor-source:focus {
    text-align: left;
    box-sizing: border-box;
    font-family: var(--redactor-font-mono);
    width: 100%;
    display: block;
    margin: 0;
    border: none;
    box-shadow: none;
    border-radius: 0;
    background: #1e1e1e;
    color: #d4d4d4;
    font-size: 14px;
    outline: none;
    padding: var(--redactor-space-lg);
    line-height: 1.6;
    resize: vertical;
    tab-size: 4;
}

/* ===== PLACEHOLDER ===== */
.redactor-placeholder:before {
    position: absolute;
    content: attr(placeholder);
    color: var(--redactor-text-tertiary);
    font-weight: normal;
    cursor: text;
    font-style: italic;
}

.redactor-in figcaption[placeholder]:empty:before {
    content: attr(placeholder);
    color: var(--redactor-text-tertiary);
    font-weight: normal;
    font-style: italic;
}

.redactor-in figcaption[placeholder]:empty:focus:before {
    content: "";
}

/* ===== STATUSBAR ===== */
.redactor-statusbar {
    font-family: var(--redactor-font-mono);
    margin: 0;
    padding: var(--redactor-space-sm) var(--redactor-space-md);
    position: relative;
    overflow: hidden;
    list-style: none;
    background: var(--redactor-bg-secondary);
    box-sizing: border-box;
    border-top: 1px solid var(--redactor-border);
    font-size: 12px;
    display: flex;
    align-items: center;
}

.redactor-statusbar li {
    float: left;
    font-size: 12px;
    color: var(--redactor-text-secondary);
    padding: 0 var(--redactor-space-sm);
    line-height: 1;
    border-right: 1px solid var(--redactor-border);
}

.redactor-statusbar li:last-child {
    border-right-color: transparent;
}

.redactor-statusbar a {
    color: var(--redactor-text-secondary);
    text-decoration: none;
    transition: color var(--redactor-transition);
}

.redactor-statusbar a:hover {
    color: var(--redactor-accent);
    text-decoration: underline;
}

.redactor-statusbar:empty {
    display: none;
}

/* ===== MODERN TOOLBAR - osTicket Enhanced ===== */
.redactor-toolbar-wrapper {
    position: relative;
    z-index: 100;
}

.redactor-toolbar,
.redactor-air {
    z-index: 100;
    font-family: var(--redactor-font);
    position: relative;
    margin: 0 !important;
    padding: 0;
    list-style: none !important;
    line-height: 1 !important;
    background: none;
    border: none;
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.redactor-box.redactor-styles-on .redactor-toolbar {
    padding: var(--redactor-space-xs);
    background: var(--redactor-bg);
    border-bottom: 1px solid var(--redactor-border);
}

.redactor-box.redactor-styles-on.redactor-source-view .redactor-toolbar {
    background: #1e1e1e;
    border-bottom-color: #333;
}

/* Classic osTicket toolbar styling */
.redactor-toolbar a,
.redactor-air a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    font-size: 14px;
    text-align: center;
    padding: 8px 12px;
    cursor: pointer;
    outline: none;
    border: none;
    vertical-align: middle;
    text-decoration: none;
    position: relative;
    color: var(--redactor-text-secondary);
    background: transparent;
    border-radius: var(--redactor-radius-sm);
    margin: 2px;
    transition: all var(--redactor-transition);
}

.redactor-toolbar a.re-button-icon,
.redactor-air a.re-button-icon {
    font-size: 16px;
    padding: 8px 10px;
}

.redactor-toolbar a:hover,
.redactor-air a:hover {
    outline: none;
    color: var(--redactor-text);
    background: var(--redactor-bg-tertiary);
}

.redactor-toolbar a.redactor-button-active {
    background: var(--redactor-accent-light);
    color: var(--redactor-accent);
}

.redactor-toolbar a.redactor-button-active [class^="re-icon-"] {
    color: var(--redactor-accent);
}

.redactor-toolbar a.redactor-button-disabled,
.redactor-air a.redactor-button-disabled {
    opacity: 0.4;
    pointer-events: none;
}

/* Source view toolbar */
.redactor-source-view .redactor-toolbar a {
    color: #ccc;
}

.redactor-source-view .redactor-toolbar a:hover {
    background: #333;
    color: #fff;
}

/* ===== TOOLTIP ===== */
.re-button-tooltip {
    display: none;
    position: absolute;
    white-space: nowrap;
    top: -30px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1052;
    background: var(--redactor-text);
    border-radius: var(--redactor-radius-sm);
    padding: 6px 10px;
    color: white;
    font-size: 11px;
    line-height: 1;
    font-family: var(--redactor-font-mono);
    pointer-events: none;
    box-shadow: var(--redactor-shadow-sm);
}

.re-button-tooltip:after {
    top: 100%;
    left: 50%;
    border: solid transparent;
    content: " ";
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
    border-color: rgba(0, 0, 0, 0);
    border-top-color: var(--redactor-text);
    border-width: 4px;
    margin-left: -4px;
}

/* ===== AIR TOOLBAR ===== */
.redactor-toolbar-wrapper-air {
    position: absolute;
    z-index: 100;
}

.redactor-air {
    padding: 4px;
    max-width: 576px;
    min-width: 200px;
    border-radius: var(--redactor-radius-lg);
    background: var(--redactor-text);
    box-shadow: var(--redactor-shadow-lg);
    border: 1px solid rgba(255,255,255,0.1);
}

.redactor-air a {
    background: transparent;
    box-shadow: none;
    color: rgba(255, 255, 255, 0.9);
}

.redactor-air a:hover {
    background: rgba(255,255,255,0.1);
    color: #fff;
}

.redactor-air a.redactor-button-active {
    background: rgba(255,255,255,0.2);
    color: #fff;
}

.redactor-air-helper {
    position: absolute;
    right: 0;
    top: 0;
    line-height: 1;
    font-size: 14px;
    color: var(--redactor-text);
    background: var(--redactor-bg);
    border-bottom-left-radius: var(--redactor-radius-md);
    padding: 8px 12px;
    cursor: pointer;
    box-shadow: var(--redactor-shadow-sm);
}

/* ===== CONTEXT TOOLBAR ===== */
.redactor-context-toolbar {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1051;
    background-color: var(--redactor-text);
    color: #fff;
    border-radius: var(--redactor-radius-md);
    padding: 6px 16px;
    line-height: 1;
    font-family: var(--redactor-font-mono);
    box-shadow: var(--redactor-shadow-md);
    display: flex;
    align-items: center;
}

.redactor-context-toolbar a {
    font-size: 12px;
    color: rgba(255,255,255,0.9);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    padding: 4px 8px;
    border-radius: var(--redactor-radius-sm);
    transition: background var(--redactor-transition);
}

.redactor-context-toolbar a i {
    margin-right: 4px;
    font-size: 14px;
}

.redactor-context-toolbar a:hover {
    background: rgba(255,255,255,0.1);
    color: #fff;
}

.redactor-context-toolbar a:before {
    content: '';
    padding-left: 8px;
    border-left: 1px solid rgba(255,255,255,0.3);
}

.redactor-context-toolbar a:first-child:before {
    padding-left: 0;
    border-left: none;
}

/* ===== DROPDOWN ===== */
.redactor-dropdown {
    font-family: var(--redactor-font);
    display: none;
    position: absolute;
    z-index: 1051;
    background-color: var(--redactor-bg);
    box-shadow: var(--redactor-shadow-lg);
    border-radius: var(--redactor-radius-md);
    width: 280px;
    min-height: 40px;
    max-height: 300px;
    margin: 4px 0 0;
    overflow: auto;
    font-size: 14px;
    padding: var(--redactor-space-xs) 0;
    border: 1px solid var(--redactor-border);
    animation: fluentSlideIn var(--redactor-transition-slow);
}

.redactor-dropdown a {
    display: block;
    text-decoration: none;
    padding: 10px 16px;
    white-space: nowrap;
    color: var(--redactor-text);
    transition: background var(--redactor-transition);
    font-size: 14px;
}

.redactor-dropdown a:hover {
    color: var(--redactor-text) !important;
    background-color: var(--redactor-bg-tertiary) !important;
}

.redactor-dropdown a.redactor-dropdown-item-disabled {
    color: var(--redactor-text-tertiary);
    background: transparent;
    pointer-events: none;
}

.redactor-dropdown-cells {
    margin: 10px auto;
}

.redactor-dropdown-cells a,
.redactor-dropdown-cells span {
    float: left;
    cursor: pointer;
    box-sizing: border-box;
    text-align: center;
    padding: 0;
    margin: 0;
    font-size: 14px;
}

.redactor-dropdown-selector {
    display: flex;
    text-align: center;
    border-bottom: 1px solid var(--redactor-border);
}

.redactor-dropdown-selector span {
    flex-grow: 1;
    font-size: 12px;
    padding: 10px;
    cursor: pointer;
    transition: all var(--redactor-transition);
}

.redactor-dropdown-selector span:hover {
    background: var(--redactor-bg-tertiary);
}

.redactor-dropdown-selector span.active {
    cursor: text;
    color: var(--redactor-accent);
    background: var(--redactor-accent-light);
    font-weight: 500;
}

/* ===== MODAL ===== */
.redactor-modal-box {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    overflow-x: hidden;
    overflow-y: auto;
    z-index: 1051;
    font-family: var(--redactor-font);
    line-height: 1.6;
    display: flex;
    align-items: center;
    justify-content: center;
}

.redactor-modal {
    position: relative;
    margin: 48px auto;
    padding: 0;
    background: var(--redactor-bg);
    box-shadow: var(--redactor-shadow-lg);
    border-radius: var(--redactor-radius-lg);
    color: var(--redactor-text);
    width: 600px;
    max-width: 95%;
    animation: fluentSlideIn var(--redactor-transition-slow);
}

.redactor-modal form {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.redactor-modal input,
.redactor-modal select,
.redactor-modal textarea {
    box-sizing: border-box;
    display: block;
    width: 100%;
    font-family: inherit;
    font-size: 14px;
    height: 40px;
    outline: none;
    vertical-align: middle;
    background-color: var(--redactor-bg);
    border: 1px solid var(--redactor-border-dark);
    border-radius: var(--redactor-radius-sm);
    box-shadow: none;
    padding: 0 12px;
    color: var(--redactor-text);
    transition: all var(--redactor-transition);
}

.redactor-modal textarea {
    padding: 12px;
    height: auto;
    line-height: 1.6;
    vertical-align: top;
}

.redactor-modal select {
    -webkit-appearance: none;
    appearance: none;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="%23605e5c"><path d="M7 10l5 5 5-5z"/></svg>');
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
}

.redactor-modal input:hover,
.redactor-modal textarea:hover,
.redactor-modal select:hover {
    border-color: var(--redactor-text-secondary);
}

.redactor-modal input:focus,
.redactor-modal textarea:focus,
.redactor-modal select:focus {
    border-color: var(--redactor-border-focus);
    box-shadow: var(--redactor-shadow-focus);
}

.redactor-modal input.error,
.redactor-modal textarea.error,
.redactor-modal select.error {
    border-color: var(--redactor-error);
    background-color: var(--redactor-error-light);
}

.redactor-modal .form-item {
    margin-bottom: var(--redactor-space-md);
}

.redactor-modal label {
    display: block;
    color: var(--redactor-text);
    margin-bottom: var(--redactor-space-xs);
    font-size: 13px;
    font-weight: 500;
}

.redactor-modal label.checkbox {
    display: flex;
    align-items: center;
    font-size: 14px;
    font-weight: normal;
    cursor: pointer;
}

.redactor-modal input[type="checkbox"] {
    width: auto;
    height: auto;
    margin-right: 8px;
}

.redactor-modal .redactor-close {
    position: absolute;
    top: 16px;
    right: 16px;
    font-size: 24px;
    line-height: 1;
    padding: 0;
    color: var(--redactor-text-secondary);
    opacity: 0.6;
    cursor: pointer;
    transition: opacity var(--redactor-transition);
    background: none;
    border: none;
}

.redactor-modal .redactor-close:hover {
    opacity: 1;
    color: var(--redactor-text);
}

.redactor-modal .redactor-close:before {
    content: '\00d7';
}

.redactor-modal button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    text-align: center;
    font-family: inherit;
    font-size: 14px;
    font-weight: 500;
    color: white;
    background-color: var(--redactor-accent);
    border-radius: var(--redactor-radius-sm);
    border: none;
    min-height: 36px;
    outline: none;
    padding: 0 20px;
    cursor: pointer;
    line-height: 1;
    vertical-align: middle;
    transition: all var(--redactor-transition);
}

.redactor-modal button:hover {
    background-color: var(--redactor-accent-dark);
    box-shadow: var(--redactor-shadow-sm);
}

.redactor-modal button.redactor-button-secondary {
    background-color: transparent;
    border: 1px solid var(--redactor-border-dark);
    color: var(--redactor-text);
}

.redactor-modal button.redactor-button-secondary:hover {
    background-color: var(--redactor-bg-tertiary);
    border-color: var(--redactor-text-secondary);
}

.redactor-modal button.redactor-button-danger {
    background-color: transparent;
    border: 1px solid var(--redactor-error);
    color: var(--redactor-error);
}

.redactor-modal button.redactor-button-danger:hover {
    background-color: var(--redactor-error);
    color: white;
}

/* Modal Header */
.redactor-modal-header {
    padding: 20px 24px;
    font-size: 18px;
    line-height: 1.2;
    font-weight: 600;
    color: var(--redactor-text);
    border-bottom: 1px solid var(--redactor-border);
}

.redactor-modal-body {
    padding: 24px;
}

.redactor-modal-footer {
    padding: 20px 24px;
    border-top: 1px solid var(--redactor-border);
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

/* Modal Tabs */
.redactor-modal-tabs {
    display: flex;
    border-bottom: 1px solid var(--redactor-border);
    margin-bottom: var(--redactor-space-lg);
    padding: 0 24px;
}

.redactor-modal-tabs a {
    font-size: 14px;
    padding: 12px 0;
    text-decoration: none;
    color: var(--redactor-text-secondary);
    border-bottom: 2px solid transparent;
    margin-right: 24px;
    font-weight: 500;
    transition: all var(--redactor-transition);
}

.redactor-modal-tabs a:hover,
.redactor-modal-tabs a.active {
    color: var(--redactor-accent);
    border-bottom-color: var(--redactor-accent);
}

/* ===== EDITOR STYLES ===== */
.redactor-styles {
    margin: 0;
    padding: var(--redactor-space-md);
    color: var(--redactor-text);
    font-family: var(--redactor-font);
    font-size: 1em;
    line-height: 1.6;
    box-sizing: border-box;
}

.redactor-styles a {
    color: var(--redactor-accent);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color var(--redactor-transition);
}

.redactor-styles a:hover {
    color: var(--redactor-accent-dark);
    border-bottom-color: var(--redactor-accent-dark);
}

.redactor-styles h1,
.redactor-styles h2,
.redactor-styles h3,
.redactor-styles h4,
.redactor-styles h5,
.redactor-styles h6 {
    font-weight: 600;
    color: var(--redactor-text);
    margin: 0 0 var(--redactor-space-sm);
    padding: 0;
    line-height: 1.2;
}

.redactor-styles h1 { font-size: 2em; }
.redactor-styles h2 { font-size: 1.75em; }
.redactor-styles h3 { font-size: 1.5em; }
.redactor-styles h4 { font-size: 1.25em; }
.redactor-styles h5 { font-size: 1.1em; }
.redactor-styles h6 { font-size: 1em; color: var(--redactor-text-secondary); }

.redactor-styles blockquote {
    padding: var(--redactor-space-md) var(--redactor-space-lg);
    margin: 0 0 var(--redactor-space-md);
    border-left: 4px solid var(--redactor-accent-light);
    background: var(--redactor-bg-secondary);
    border-radius: 0 var(--redactor-radius-sm) var(--redactor-radius-sm) 0;
    color: var(--redactor-text-secondary);
}

.redactor-styles pre {
    background: var(--redactor-bg-tertiary);
    border-radius: var(--redactor-radius-md);
    padding: var(--redactor-space-md);
    font-family: var(--redactor-font-mono);
    font-size: 0.9em;
    line-height: 1.6;
    overflow-x: auto;
    border: 1px solid var(--redactor-border);
}

.redactor-styles code {
    font-family: var(--redactor-font-mono);
    font-size: 0.9em;
    background: var(--redactor-bg-tertiary);
    padding: 0.2em 0.4em;
    border-radius: var(--redactor-radius-sm);
}

.redactor-styles table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: var(--redactor-space-md);
}

.redactor-styles th,
.redactor-styles td {
    padding: 12px;
    border: 1px solid var(--redactor-border);
    text-align: left;
}

.redactor-styles th {
    background: var(--redactor-bg-secondary);
    font-weight: 600;
}

.redactor-styles ul,
.redactor-styles ol {
    margin: 0 0 var(--redactor-space-md) var(--redactor-space-lg);
}

.redactor-styles li {
    margin-bottom: var(--redactor-space-xs);
}

/* ===== UPLOAD AREA ===== */
.upload-redactor-box {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    border: 2px dashed var(--redactor-border-dark);
    position: relative;
    width: 100%;
    min-height: 200px;
    background: var(--redactor-bg-secondary);
    cursor: pointer;
    overflow: hidden;
    text-align: center;
    border-radius: var(--redactor-radius-md);
    transition: all var(--redactor-transition-slow);
}

.upload-redactor-box:hover {
    border-color: var(--redactor-accent);
    background: var(--redactor-accent-light);
}

.upload-redactor-placeholder {
    font-size: 15px;
    line-height: 1.6;
    color: var(--redactor-text-tertiary);
    font-style: italic;
}

.upload-redactor-hover {
    border-color: var(--redactor-accent);
    background: var(--redactor-accent-light);
}

.upload-redactor-error {
    border-color: var(--redactor-error);
    background: var(--redactor-error-light);
}

/* ===== PROGRESS BAR ===== */
#redactor-progress {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000000;
    height: 4px;
}

#redactor-progress span {
    display: block;
    width: 100%;
    height: 100%;
    background-color: var(--redactor-accent);
    background-image: linear-gradient(
        45deg,
        rgba(255, 255, 255, 0.2) 25%,
        transparent 25%,
        transparent 50%,
        rgba(255, 255, 255, 0.2) 50%,
        rgba(255, 255, 255, 0.2) 75%,
        transparent 75%,
        transparent
    );
    background-size: 40px 40px;
    animation: fluentProgress 2s linear infinite;
}

/* ===== FULLSCREEN ===== */
.redactor-box-fullscreen {
    z-index: 1051;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh !important;
}

.redactor-box-fullscreen .redactor-in {
    height: calc(100vh - 110px) !important;
}

/* ===== RTL SUPPORT ===== */
.redactor-styles[dir="rtl"] {
    direction: rtl;
    text-align: right;
}

.redactor-styles[dir="rtl"] ul,
.redactor-styles[dir="rtl"] ol {
    margin-right: var(--redactor-space-lg);
    margin-left: 0;
}

.redactor-styles[dir="rtl"] blockquote {
    border-left: none;
    border-right: 4px solid var(--redactor-accent-light);
    padding-right: var(--redactor-space-lg);
    padding-left: 0;
}

/* ===== DARK MODE SUPPORT ===== */
@media (prefers-color-scheme: dark) {
    .redactor-box.redactor-styles-on {
        background: #1e1e1e;
        border-color: #333;
    }
    
    .redactor-toolbar {
        background: #1e1e1e;
    }
    
    .redactor-styles {
        color: #e0e0e0;
    }
    
    .redactor-modal {
        background: #2d2d2d;
        color: #e0e0e0;
    }
    
    .redactor-modal input,
    .redactor-modal select,
    .redactor-modal textarea {
        background: #3d3d3d;
        border-color: #555;
        color: #e0e0e0;
    }
}

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
    .redactor-box.redactor-styles-on .redactor-toolbar {
        padding: 4px;
    }
    
    .redactor-toolbar a {
        padding: 10px 12px;
    }
    
    .redactor-modal-body {
        padding: 20px;
    }
    
    .redactor-modal-footer {
        padding: 16px 20px;
        flex-direction: column-reverse;
    }
    
    .redactor-modal-footer button {
        width: 100%;
    }
}

/* ===== PRINT ===== */
@media print {
    .redactor-toolbar-wrapper,
    .redactor-statusbar,
    .redactor-modal-box,
    .redactor-context-toolbar {
        display: none !important;
    }
    
    .redactor-box.redactor-styles-on {
        border: none;
        box-shadow: none;
    }
    
    .redactor-in {
        padding: 0;
    }
}