.cms-layout { display: grid; gap: 1rem; }
.cms-warning { border-inline-start: .35rem solid var(--primary); }
.cms-role-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: .75rem; }
.cms-role-grid > div { display: grid; gap: .25rem; padding: .85rem; border: 1px solid var(--border, #d7dce5); border-radius: .7rem; }
.cms-role-grid span, .cms-note { opacity: .78; }
.cms-inline-form { display: flex; gap: .75rem; align-items: end; flex-wrap: wrap; }
.cms-inline-form input { flex: 1 1 18rem; }
.cms-section-head, .cms-article { display: flex; justify-content: space-between; gap: 1rem; align-items: center; flex-wrap: wrap; }
.cms-articles { display: grid; gap: .75rem; }
.cms-article { padding: 1rem; border: 1px solid var(--border, #d7dce5); border-radius: .7rem; }
.cms-article h4, .cms-article p { margin: 0; }
.cms-actions { display: flex; gap: .5rem; flex-wrap: wrap; }
.cms-actions form { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.cms-actions input { max-width: 18rem; }
.cms-editor-form { display: grid; gap: .75rem; }
.cms-editor-actions { display: flex; gap: .65rem; align-items: center; flex-wrap: wrap; margin-top: .5rem; }
.cms-category-form { display: grid; grid-template-columns: minmax(12rem, 1fr) minmax(16rem, 2fr) auto; gap: .65rem; align-items: end; margin-bottom: 1rem; }
.cms-article-summary { min-width: min(100%, 24rem); }
.cms-perex { font-size: 1.12rem; font-weight: 600; line-height: 1.55; }
.cms-article-content { line-height: 1.7; overflow-wrap: anywhere; }
.cms-article-content table { width: 100%; border-collapse: collapse; }
.cms-article-content th, .cms-article-content td { border: 1px solid var(--border, #d7dce5); padding: .55rem; vertical-align: top; }
.cms-preview { max-width: 72rem; margin-inline: auto; }
.cms-version-list { max-width: 72rem; margin: 1rem auto; }
@media (max-width: 760px) {
    .cms-category-form { grid-template-columns: 1fr; }
}

.cms-workflow-actions form { display: inline-flex; gap: .5rem; align-items: center; flex-wrap: wrap; margin: 0; }
.cms-workflow-actions input { max-width: 22rem; }


/* M27 FIX 02 – knihovna médií CMS */
.cms-media-thumb {
    width: 72px;
    height: 48px;
    object-fit: cover;
    border-radius: 8px;
    vertical-align: middle;
    border: 1px solid var(--border-color, rgba(127, 127, 127, .28));
}
.cms-media-upload { max-width: 720px; }
.cms-media-detail {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) minmax(280px, .8fr);
    gap: 1.25rem;
}
.cms-media-preview-card {
    display: grid;
    place-items: center;
    min-height: 260px;
}
.cms-media-preview-card img {
    max-width: 100%;
    max-height: 70vh;
    object-fit: contain;
    border-radius: 10px;
}
.cms-article-cover-picker {
    position: relative;
    width: min(36rem, 100%);
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border: 1px solid var(--border, #d7dce5);
    border-radius: .75rem;
    background: color-mix(in srgb, var(--surface) 92%, var(--text-muted));
}
.cms-article-cover-picker img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.cms-article-cover-placeholder {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: var(--text-muted);
    font-size: .9rem;
}
.cms-article-cover-display {
    width: min(52rem, 100%);
    aspect-ratio: 16 / 9;
    margin: 0 0 1.25rem;
    overflow: hidden;
    border: 1px solid var(--border, #d7dce5);
    border-radius: .75rem;
    background: color-mix(in srgb, var(--surface) 92%, var(--text-muted));
}
.cms-article-cover-display img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.cms-definition-list {
    display: grid;
    grid-template-columns: minmax(110px, .35fr) 1fr;
    gap: .65rem 1rem;
    margin: 0 0 1.25rem;
}
.cms-definition-list dt { font-weight: 700; }
.cms-definition-list dd { margin: 0; overflow-wrap: anywhere; }
.cms-article-content img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
}
@media (max-width: 760px) {
    .cms-media-detail { grid-template-columns: 1fr; }
    .cms-definition-list { grid-template-columns: 1fr; }
}

.cms-review-panel { display: grid; gap: 1rem; }
.cms-review-toolbar { display: flex; gap: .55rem; flex-wrap: wrap; }
.cms-review-list { display: grid; gap: .85rem; }
.cms-review-empty { margin: 0; opacity: .75; }
.cms-review-bubble {
    display: grid;
    gap: .65rem;
    padding: 1rem;
    border: 1px solid var(--border, #d7dce5);
    border-inline-start-width: .4rem;
    border-radius: .75rem;
    background: var(--surface, #fff);
}
.cms-review-bubble-comment { border-inline-start-color: #2563eb; }
.cms-review-bubble-suggestion { border-inline-start-color: #7c3aed; }
.cms-review-bubble-resolved { opacity: .72; }
.cms-review-bubble-head { display: flex; justify-content: space-between; gap: .75rem; flex-wrap: wrap; align-items: center; }
.cms-review-bubble-head > div { display: flex; gap: .45rem; flex-wrap: wrap; align-items: center; }
.cms-review-quote { margin: 0; padding: .7rem .85rem; border-inline-start: .25rem solid var(--border, #d7dce5); background: rgba(127, 127, 127, .08); }
.cms-review-message, .cms-review-suggestion p, .cms-review-reply p { margin: 0; }
.cms-review-suggestion { padding: .75rem; border-radius: .6rem; background: rgba(124, 58, 237, .08); }
.cms-review-replies { display: grid; gap: .5rem; }
.cms-review-reply { padding: .65rem .75rem; border-radius: .6rem; background: rgba(127, 127, 127, .08); }
.cms-review-reply strong { margin-inline-end: .45rem; }
.cms-review-actions { display: flex; gap: .65rem; flex-wrap: wrap; align-items: end; }
.cms-review-reply-form { display: flex; gap: .5rem; flex: 1 1 30rem; align-items: center; }
.cms-review-reply-form input { flex: 1 1 18rem; }
.cms-review-dialog { width: min(42rem, calc(100% - 2rem)); border: 0; border-radius: .85rem; padding: 0; box-shadow: 0 1.25rem 4rem rgba(0, 0, 0, .3); }
.cms-review-dialog::backdrop { background: rgba(0, 0, 0, .48); }
.cms-review-dialog form { display: grid; gap: .75rem; padding: 1.1rem; }
.cms-review-selection-preview { margin: 0; padding: .7rem; border-radius: .55rem; background: rgba(37, 99, 235, .08); overflow-wrap: anywhere; }
.cms-review-document { display: grid; gap: .75rem; }
.cms-review-anchor { background: rgba(250, 204, 21, .45); border-bottom: .15rem solid #ca8a04; cursor: pointer; }
.cms-review-bubble[data-cms-review-id] { cursor: pointer; }

@media (max-width: 720px) {
    .cms-review-reply-form { flex-direction: column; align-items: stretch; }
}

/* M27 FIX 05 – veřejné články a komentáře */
.cms-public-filter {
    display: grid;
    grid-template-columns: minmax(14rem, 2fr) minmax(12rem, 1fr) auto auto;
    gap: 0.75rem;
    align-items: end;
    margin-bottom: 1.5rem;
}

.cms-public-articles,
.cms-comment-list,
.cms-home-article-list {
    display: grid;
    gap: 1rem;
}

.cms-public-article-meta,
.cms-comment-header,
.cms-comment-rating,
.cms-comment-delete-form {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
}

.cms-public-article-meta {
    justify-content: space-between;
}

.cms-comments {
    margin-top: 1.5rem;
}

.cms-comment-form {
    margin-bottom: 1.5rem;
}

.cms-comment-header {
    justify-content: space-between;
    margin-bottom: 0.75rem;
}

.cms-comment-text {
    white-space: normal;
    overflow-wrap: anywhere;
}

.cms-comment-rating form,
.cms-comment-delete-form {
    margin: 0;
}


.cms-comment-moderation-text {
    margin-block: 1rem;
}

@media (max-width: 780px) {
    .cms-public-filter {
        grid-template-columns: 1fr;
    }
}

/* M27 FIX 05B – minimalistické reakce článků a komentářů podle Messengeru */
.cms-article-rating {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem .75rem;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
}

.cms-article-rating > strong,
.cms-article-rating > small {
    flex: 0 0 auto;
}

.cms-reaction-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .24rem;
}

.cms-reaction-form {
    margin: 0;
}

.cms-reaction-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    min-width: auto;
    width: auto;
    min-height: 1.9rem;
    height: 1.9rem;
    padding: .18rem .44rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    color: var(--text);
    background: color-mix(in srgb, var(--surface) 86%, transparent);
    font: inherit;
    font-size: .78rem;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    box-shadow: none;
    transform: none;
}

.cms-reaction-button:hover,
.cms-reaction-button:focus-visible,
.cms-reaction-active {
    color: var(--text);
    background: color-mix(in srgb, var(--primary) 14%, var(--surface));
    border-color: color-mix(in srgb, var(--primary) 52%, var(--border));
    outline: none;
    box-shadow: none;
    transform: none;
}

.cms-reaction-active {
    font-weight: 700;
}

.cms-reaction-readonly {
    cursor: default;
    pointer-events: none;
}

.cms-reaction-icon {
    line-height: 1;
}

.cms-reaction-count {
    min-width: 1ch;
    color: var(--text-muted);
}


/* M28 – integrační crash test společných služeb */
.cms-integration-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
    margin: 1rem 0 1.5rem;
}

.cms-integration-grid .card {
    margin: 0;
}

.cms-integration-grid h3 {
    margin-top: 0;
    font-size: 1rem;
}

/* M28 FIX 02A – základ tiskovin a workflow */
.cms-tiskovina-form { display: grid; gap: .85rem; }
.cms-tiskovina-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.cms-definition-list { display: grid; grid-template-columns: minmax(10rem, .7fr) minmax(0, 2fr); gap: .5rem 1rem; align-items: start; }
.cms-definition-list > strong { color: var(--text-muted, #64748b); }
.cms-tiskovina-form + h3 { margin-top: 2rem; }
.cms-tiskovina-form textarea { resize: vertical; }
.cms-tiskovina-form .form-row { min-width: 0; }
@media (max-width: 760px) {
    .cms-tiskovina-fields, .cms-definition-list { grid-template-columns: 1fr; }
}

/* M28 FIX 02B – výběr šablony tiskoviny
 * Karta je pouze prezentační obal. Radio používá STABLE .form-check z forms.css.
 */
.cms-template-picker {
    margin: .5rem 0;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: .8rem;
}
.cms-template-picker legend { padding-inline: .4rem; font-weight: 700; }
.cms-template-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.cms-template-card {
    position: relative;
    display: grid;
    grid-template-columns: 5.2rem 1fr;
    gap: .35rem .8rem;
    align-items: start;
    padding: .9rem;
    border: 1px solid var(--border);
    border-radius: .75rem;
    cursor: pointer;
    background: var(--surface);
}
.cms-template-card:has(input:checked) {
    border-color: var(--primary);
    box-shadow: 0 0 0 .16rem color-mix(in srgb, var(--primary) 22%, transparent);
}
.cms-template-card > input { position: absolute; top: .65rem; right: .65rem; }
.cms-template-card > strong,
.cms-template-card > small,
.cms-template-palette { grid-column: 2; }
.cms-template-card > small { color: var(--text-muted); line-height: 1.35; }
.cms-template-mini {
    grid-row: 1 / span 4;
    position: relative;
    width: 5.2rem;
    aspect-ratio: 210 / 297;
    overflow: hidden;
    border: 1px solid var(--border);
    background: #fff;
    box-shadow: 0 .3rem .8rem rgba(15,23,42,.12);
}
.cms-template-mini i,
.cms-template-mini b,
.cms-template-mini em { position: absolute; display: block; }
.cms-template-mini-bulletin-korporatni i { top: 12%; left: 14%; width: 72%; height: 5%; background: #0f172a; }
.cms-template-mini-bulletin-korporatni b { top: 21%; left: 14%; width: 72%; height: 1%; background: #0f172a; }
.cms-template-mini-bulletin-korporatni em { top: 29%; left: 14%; width: 32%; height: 56%; border-right: 1px solid #cbd5e1; box-shadow: 2rem 0 0 -0.15rem #e2e8f0; }
.cms-template-mini-bulletin-magazin i { inset: 0 auto 0 0; width: 35%; background: #2f5233; }
.cms-template-mini-bulletin-magazin b { top: 13%; left: 43%; width: 44%; height: 6%; background: #2f5233; }
.cms-template-mini-bulletin-magazin em { top: 25%; left: 43%; width: 44%; height: 58%; background: repeating-linear-gradient(to bottom, #d6d3d1 0 2px, transparent 2px 6px); }
.cms-template-mini-bulletin-akademicky i { top: 10%; left: 14%; width: 72%; height: 4%; background: #17324d; }
.cms-template-mini-bulletin-akademicky b { top: 19%; left: 14%; width: 72%; height: 1%; border-top: 1px solid #17324d; border-bottom: 1px solid #17324d; }
.cms-template-mini-bulletin-akademicky em { top: 27%; left: 18%; width: 64%; height: 58%; background: repeating-linear-gradient(to bottom, #9ca3af 0 1px, transparent 1px 5px); }
.cms-template-mini-bulletin-kreativni i { inset: 0 auto 0 0; width: 24%; background: #111; }
.cms-template-mini-bulletin-kreativni b { top: 13%; left: 34%; width: 52%; height: 18%; border-top: 4px solid #111; border-bottom: 4px solid #111; }
.cms-template-mini-bulletin-kreativni em { top: 39%; left: 47%; width: 39%; height: 42%; border-top: 3px solid #ff6f61; background: repeating-linear-gradient(to bottom, #a8a29e 0 1px, transparent 1px 6px); }
.cms-template-mini-brozura-korporatni i { top: 10%; left: 13%; width: 74%; height: 9%; background: #0f172a; }
.cms-template-mini-brozura-korporatni b { top: 25%; left: 17%; width: 66%; height: 44%; background: repeating-linear-gradient(to bottom, #cbd5e1 0 1px, transparent 1px 5px); }
.cms-template-mini-brozura-korporatni em { bottom: 10%; left: 17%; width: 66%; height: 10%; background: #0f172a; }
.cms-template-mini-brozura-magazin i { inset: 0 auto 0 0; width: 24%; background: #2f5233; }
.cms-template-mini-brozura-magazin b { top: 13%; left: 33%; width: 53%; height: 7%; background: #2f5233; }
.cms-template-mini-brozura-magazin em { top: 27%; left: 33%; width: 53%; height: 56%; background: repeating-linear-gradient(to bottom, #d6d3d1 0 1px, transparent 1px 5px); }
.cms-template-mini-brozura-akademicka i { top: 9%; left: 14%; width: 72%; height: 3%; background: #17324d; }
.cms-template-mini-brozura-akademicka b { top: 17%; left: 14%; width: 72%; height: 1%; border-top: 1px solid #17324d; border-bottom: 1px solid #17324d; }
.cms-template-mini-brozura-akademicka em { top: 24%; left: 18%; width: 64%; height: 62%; background: repeating-linear-gradient(to bottom, #9ca3af 0 1px, transparent 1px 4px); }
.cms-template-mini-brozura-kreativni i { top: 0; left: 0; width: 100%; height: 37%; background: #111; }
.cms-template-mini-brozura-kreativni b { top: 12%; left: 15%; width: 64%; height: 13%; border-top: 3px solid #ff6f61; border-bottom: 3px solid #fff; }
.cms-template-mini-brozura-kreativni em { top: 48%; left: 38%; width: 47%; height: 35%; border-top: 3px solid #ff6f61; background: repeating-linear-gradient(to bottom, #a8a29e 0 1px, transparent 1px 5px); }
.cms-template-palette { display: flex; gap: .35rem; margin-top: .25rem; }
.cms-template-palette i { width: 1.15rem; height: 1.15rem; border-radius: 50%; background: var(--cms-template-color); border: 1px solid rgba(0,0,0,.15); }

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