/*
 * Multilang subsystem styles for mod_cometascreator
 *
 * @package    mod_cometascreator
 * @copyright  2026 cometas AG
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */

/* ============================================================
   Language bar (view.php, multilingual edit mode)
   ============================================================ */

.cometascreator-lang-bar {
    background: #f8fafc;
    border-top: 1px solid #e2e8f0;
    border-bottom: 1px solid #e2e8f0;
    padding: 8px 0;
    margin-bottom: 16px;
}

.cometascreator-lang-bar .lang-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.cometascreator-lang-bar .lang-tab {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 600;
    color: #475569;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.15s ease;
}

.cometascreator-lang-bar .lang-tab:hover {
    background: #f1f5f9;
    border-color: #94a3b8;
    color: #1e293b;
    text-decoration: none;
}

.cometascreator-lang-bar .lang-tab.active {
    background: #0057B8;
    border-color: #0057B8;
    color: #ffffff;
}

.cometascreator-lang-bar .lang-tab.active:hover {
    background: #003d82;
    border-color: #003d82;
    color: #ffffff;
}

.cometascreator-lang-bar .lang-tab-primary {
    /* Primary tab gets slight emphasis */
    font-weight: 700;
}

.cometascreator-lang-bar .lang-tab-removable {
    display: inline-flex;
    align-items: stretch;
    padding: 0;
    overflow: hidden;
}

.cometascreator-lang-bar .lang-tab-removable .lang-tab-link {
    padding: 6px 10px 6px 14px;
    color: inherit;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
}

.cometascreator-lang-bar .lang-tab-removable .lang-tab-remove {
    border: none;
    background: transparent;
    color: inherit;
    padding: 0 10px;
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
    opacity: 0.6;
    transition: opacity 0.15s ease, background 0.15s ease;
}

.cometascreator-lang-bar .lang-tab-removable .lang-tab-remove:hover {
    opacity: 1;
    background: rgba(220, 38, 38, 0.15);
    color: #dc2626;
}

.cometascreator-lang-bar .lang-tab.active .lang-tab-remove:hover {
    background: rgba(255, 255, 255, 0.2);
    color: #ffffff;
}

.cometascreator-lang-bar .lang-tab-plus {
    border-style: dashed;
}

/* ============================================================
   Globe button (single-language mode)
   ============================================================ */

.cometascreator-globe-btn {
    display: inline-flex;
    align-items: center;
    gap: 2px;
}

/* ============================================================
   Inline title-translate input
   ============================================================ */

.cometascreator-title-translate-inline {
    display: flex;
    gap: 6px;
    align-items: center;
    margin-top: 8px;
    max-width: 600px;
}

.cometascreator-title-translate-input {
    flex: 1;
    min-width: 250px;
}

/* ============================================================
   Language picker modal
   ============================================================ */

.cometascreator-lang-picker-list {
    max-height: 320px;
    overflow-y: auto;
    border: 1px solid #e2e8f0;
    border-radius: 4px;
}

.cometascreator-lang-picker-list .lang-option {
    padding: 8px 12px;
    cursor: pointer;
    border-bottom: 1px solid #f1f5f9;
    transition: background 0.1s ease;
}

.cometascreator-lang-picker-list .lang-option:last-child {
    border-bottom: none;
}

.cometascreator-lang-picker-list .lang-option:hover {
    background: #e8f0fe;
}

.cometascreator-lang-picker-list .lang-option .lang-code {
    display: inline-block;
    min-width: 50px;
    font-weight: 600;
    color: #64748b;
    font-size: 12px;
    text-transform: uppercase;
}

.cometascreator-lang-picker-list .lang-option .lang-name {
    margin-left: 8px;
    color: #1e293b;
}

.cometascreator-lang-picker-loading {
    padding: 16px;
    text-align: center;
    color: #64748b;
}

.cometascreator-lang-picker-heading {
    padding: 8px 12px 4px;
    margin: 0;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #94a3b8;
}

.cometascreator-lang-picker-heading:not(:first-child) {
    border-top: 2px solid #e2e8f0;
    margin-top: 4px;
    padding-top: 10px;
}

.cometascreator-lang-picker-list .lang-option-active {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: default;
}

.cometascreator-lang-picker-list .lang-option-active:hover {
    background: #f8fafc;
}

.cometascreator-lang-picker-list .lang-option-active .lang-option-info {
    display: flex;
    align-items: center;
    gap: 8px;
}

.cometascreator-lang-picker-list .lang-set-default-btn {
    flex-shrink: 0;
    font-size: 12px;
    padding: 2px 10px;
    line-height: 1.6;
}

/* ============================================================
   Editor language tabs (editblock.php)
   ============================================================ */

.cometascreator-editblock-lang-tabs {
    display: flex;
    gap: 4px;
    padding: 8px 0;
    margin-bottom: 12px;
    border-bottom: 1px solid #e2e8f0;
}

.cometascreator-editblock-lang-tab {
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 600;
    color: #475569;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.15s ease;
}

.cometascreator-editblock-lang-tab:hover {
    background: #f1f5f9;
}

.cometascreator-editblock-lang-tab.active {
    background: #0057B8;
    border-color: #0057B8;
    color: #ffffff;
}

/* Settings column dimmed when editing a translation */
.cometascreator-editor-settings-disabled {
    opacity: 0.5;
    pointer-events: none;
}

/* Placeholder styling for empty translation fields */
.cometascreator-translation-placeholder {
    color: #94a3b8;
    font-style: italic;
}

/* One wrapper per render of the editor body (a language switch throws the
   previous wrapper away, so each render owns its DOM ids and event handlers).
   Purely a grouping element — it must not introduce layout of its own, the
   editor's column grid lives on .editor-columns inside the form. */
.cometascreator-editor-render {
    margin: 0;
    padding: 0;
}

/* On a translation tab the structure is owned by the primary language: the
   author may translate the rows that exist, but not add or remove any. Done in
   CSS rather than JS so it also covers rows a block renders after the switch.
   Settings/Action tabs are hidden for the same reason. */
.cometascreator-translation-locked .btn-add,
.cometascreator-translation-locked .btn-remove,
.cometascreator-translation-locked [data-action="add-pair"],
.cometascreator-translation-locked [data-action="remove-pair"],
.cometascreator-translation-locked [data-action="add-range"],
.cometascreator-translation-locked [data-action="remove-range"],
.cometascreator-translation-locked [data-branching-switch] {
    display: none !important;
}

/* The file a translation inherits from the primary language, previewed below
   its own (empty) file picker. */
.cometascreator-inherited-media {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 8px;
    padding: 8px 10px;
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
    border-radius: 6px;
}

.cometascreator-inherited-media-thumb {
    width: 56px;
    height: 56px;
    object-fit: cover;
    border-radius: 4px;
    flex-shrink: 0;
}

.cometascreator-inherited-media-note {
    font-size: 12px;
    line-height: 1.4;
    color: #64748b;
}

/* ============================================================
   XLIFF Export/Import modals
   ============================================================ */

.cometascreator-xliff-modal .form-group {
    margin-bottom: 16px;
}

.cometascreator-xliff-modal .form-group label {
    display: block;
    font-weight: 600;
    margin-bottom: 4px;
    color: #334155;
}

.cometascreator-xliff-modal .cometascreator-xliff-file-input {
    display: block;
    width: 100%;
    padding: 14px 16px;
    border: 2px dashed #cbd5e1;
    border-radius: 8px;
    background: #f8fafc;
    color: #475569;
    font-size: 0.9rem;
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s;
}

.cometascreator-xliff-modal .cometascreator-xliff-file-input:hover {
    border-color: #94a3b8;
    background: #f1f5f9;
}

.cometascreator-xliff-modal .cometascreator-xliff-file-input:focus {
    outline: none;
    border-color: #3b82f6;
    background: #eff6ff;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
}

.cometascreator-xliff-modal .cometascreator-xliff-overwrite {
    width: 16px;
    height: 16px;
    margin-right: 6px;
    vertical-align: middle;
    accent-color: #3b82f6;
    cursor: pointer;
}

.cometascreator-xliff-modal label:has(.cometascreator-xliff-overwrite) {
    display: inline-flex;
    align-items: center;
    font-weight: 500;
    cursor: pointer;
}

.cometascreator-xliff-modal .form-check {
    margin: 4px 0;
}

.cometascreator-xliff-import-report {
    margin-top: 16px;
}

.cometascreator-xliff-stats {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    padding: 12px;
    margin: 12px 0;
}

.cometascreator-xliff-stats dl {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 4px 16px;
    margin: 0;
}

.cometascreator-xliff-stats dt {
    color: #64748b;
    font-weight: 400;
}

.cometascreator-xliff-stats dd {
    margin: 0;
    color: #1e293b;
    font-weight: 600;
}

.cometascreator-xliff-unmatched {
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 6px;
    padding: 12px;
    margin: 12px 0;
    color: #991b1b;
}

.cometascreator-xliff-unmatched ul {
    margin: 8px 0 0 24px;
}
