/* Geometrie comună mobile-first; pragurile sunt în pixeli CSS. */
:root {
    --responsive-height-mode: normal;
    --responsive-section-space: 48px;
    --responsive-dialog-space: 16px;
    --responsive-content-max: 1600px;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-padding-block: 96px 24px; }
body { min-width: 0; }
body, .admin-page { overflow-x: visible; }
main, section, article, aside, form, fieldset { min-width: 0; }
img, video { max-width: 100%; }
input, select, textarea { max-width: 100%; min-width: 0; }
.admin-field select:not([multiple]):not([size]) {
    appearance: none;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-right: 36px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%236b5a4e' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 16px 16px;
}
:is(h1, h2, h3, p, label, button, .admin-field__error, .ca-field-error) { overflow-wrap: anywhere; }
:is(.admin-button, .portal-button, .public-button, .ux-button, .access-button, .ca-submit, .cc-button, .et-icon-button,
    .admin-table-action, .admin-mobile-toggle, .admin-topbar-notification, .portal-row-action,
    .portal-notification, .portal-profile-menu__trigger, .admin-pagination-nav__page,
    .admin-pagination-nav__button, .portal-pagination-nav__page, .public-menu-toggle,
    .portal-drawer-close, .admin-drawer-close, .ca-password-toggle, .ca-dialog-close,
    .portal-file-modal__close, .public-modal__close) {
    min-height: 44px !important;
    min-width: 44px !important;
    max-width: 100%;
    height: auto;
    white-space: normal;
    flex-shrink: 0;
}
button:not([hidden]), .cp__button { min-height: 44px !important; min-width: 44px !important; }
:is(.admin-form-actions, .portal-form__actions, .public-hero__actions, .ca-header-actions) { flex-wrap: wrap; }
:is(.admin-content, .portal-content, .public-main) { min-width: 0; max-width: var(--responsive-content-max); }
:is(.admin-content, .portal-content) { margin-inline: auto; }
:is(.table-wrap, .admin-form-versions__table-wrap, .portal-table-wrap) { max-width: 100%; overflow-x: auto; }
:is(.admin-data-table, .portal-table) { overflow-wrap: anywhere; }
.admin-review-tabs:not(.admin-review-tabs--dossier) { min-width: 0; max-width: 100%; }
:is(.admin-topbar__heading, .admin-topbar__actions, .portal-topbar__actions) { min-width: 0; }
:is(.admin-topbar, .portal-topbar) { flex-wrap: wrap; }
.admin-topbar__heading { flex: 1 1 100px; }
.admin-topbar__heading strong { white-space: normal; overflow-wrap: anywhere; }
.public-header--refined .public-brand__name { overflow: visible; white-space: normal; }
.public-header--refined .public-nav > a { white-space: normal; }
.public-header--refined .public-header__inner { max-width: 1920px; margin-inline: auto; }
.public-header--refined.is-measuring.is-compact .public-nav,
.public-header--refined.is-measuring .public-nav { display: flex; position: absolute; width: max-content; max-height: none; visibility: hidden; }
.public-header--refined.is-measuring :is(.public-nav__label, .public-nav__mobile-actions, .public-nav__arrow) { display: none; }
.public-header--refined.is-compact .public-header__inner { grid-template-columns: minmax(0, 1fr) auto auto; }
.public-header--refined.is-compact .public-header__actions { grid-column: 2; }
.public-header--refined.is-compact .public-menu-toggle { display: grid; }
.public-header--refined.is-compact .public-nav { display: none; position: absolute; grid-column: auto; grid-row: auto; top: calc(100% + 8px); left: var(--header-gutter); right: var(--header-gutter); width: auto; max-height: calc(100vh - 110px); max-height: calc(100dvh - 110px); overflow-y: auto; }
.public-header--refined.is-compact.is-menu-open .public-nav { display: grid; }
.public-header--refined.is-compact .public-nav__label, .public-header--refined.is-compact .public-nav__mobile-actions { display: grid; }
.public-main--landing .public-hero.public-hero--concept { min-height: 0; padding-block: var(--responsive-section-space); }
.public-main--landing .public-hero--concept .hero-concept__copy { padding-block: 0; }
.public-page .hero-edugov .eg-scene { padding-block: var(--responsive-section-space); }
.public-main--landing > .public-section { padding-block: var(--responsive-section-space); }
.admin-app, .portal-navigation-ready .portal-app { display: block; }
.admin-page .admin-sidebar, .portal-navigation-ready .portal-sidebar {
    position: fixed; inset: 0 auto 0 0; z-index: 70;
    display: flex; flex-direction: column;
    width: min(300px, calc(100% - 48px));
    height: 100vh; height: 100dvh; min-height: 0;
    overflow-y: auto; overscroll-behavior: contain;
    padding: 16px; visibility: hidden; transform: translateX(-100%);
}
.admin-menu-open .admin-sidebar, .portal-navigation-ready .portal-sidebar.is-drawer-open { visibility: visible; transform: none; }
.admin-menu__link, .portal-menu a { min-height: 44px; overflow-wrap: anywhere; }
.admin-drawer-close, .portal-drawer-close { position: sticky; top: 0; z-index: 2; align-self: flex-end; background: white; border: 1px solid #dbe3ef; border-radius: 8px; cursor: pointer; }
.admin-sidebar-backdrop, .portal-drawer-backdrop { position: fixed; inset: 0; z-index: 65; background: #17203366; }
.admin-menu-open .admin-sidebar-backdrop { display: block; }
.admin-menu-open, .portal-drawer-is-open { overflow: hidden; }
.admin-mobile-toggle { display: inline-flex; }
.portal-navigation-ready .portal-sidebar .portal-brand { display: flex; }
.portal-navigation-ready .portal-sidebar__label { display: block; }
.portal-navigation-ready .portal-menu { display: flex; flex-direction: column; overflow: visible; }
.portal-navigation-ready .portal-menu a { width: 100%; }
:is(dialog, .public-modal__dialog, .portal-file-modal__dialog, .cmh-dialog, .ca-dialog) {
    max-width: calc(100% - 2 * var(--responsive-dialog-space));
    max-height: calc(100vh - 2 * var(--responsive-dialog-space));
    max-height: calc(100dvh - 2 * var(--responsive-dialog-space));
    overflow-y: auto;
}
:is(.portal-file-modal__body, .public-modal__body, .ca-dialog-body) { min-height: 0; overflow-y: auto; }
.cc-banner { max-height: 100vh; max-height: 100dvh; overflow-y: auto; }
.cc-banner__inner, .cc-banner__actions, .cc-modal__actions { min-width: 0; flex-wrap: wrap; }
:is(.admin-form-grid, .portal-form-grid, .ds-field-grid) { grid-template-columns: minmax(0, 1fr); }
.et-shell .et-designer { grid-template-columns: minmax(0, 1fr); }
.et-shell .et-canvas-surface { min-width: 0; }

@media (min-width: 768px) {
    :is(.admin-form-grid, .portal-form-grid, .ds-field-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .public-hero--concept .hero-concept__title { font-size: clamp(32px, 3.8vw, 58px); }
}
@media (min-width: 1024px) {
    .admin-editor-layout { grid-template-columns: minmax(0, 1fr) minmax(220px, .4fr); }
}
@media (min-width: 1280px) {
    .public-header--refined:not(.is-compact) .public-header__inner { grid-template-columns: max-content minmax(0, 1fr) max-content; }
    .public-header--refined:not(.is-compact) .public-nav { justify-self: center; }
    .admin-app, .portal-navigation-ready .portal-app { display: grid; grid-template-columns: 244px minmax(0, 1fr); }
    .admin-page .admin-sidebar, .portal-navigation-ready .portal-sidebar { position: sticky; width: auto; visibility: visible; transform: none; }
    .admin-mobile-toggle, .admin-drawer-close, .portal-drawer-close { display: none; }
    .et-shell .et-designer { grid-template-columns: minmax(160px, .65fr) minmax(0, 1.7fr) minmax(200px, .85fr); }
}
/* H480 completează intenționat H600, inclusiv pentru ferestre verticale joase. */
@media (max-height: 600px) {
    :root { --responsive-height-mode: compact; --responsive-section-space: 24px; --responsive-dialog-space: 12px; }
    .admin-page .admin-topbar, .portal-page .portal-topbar, .public-header.public-header--refined { position: relative; }
    :is(.admin-content, .portal-content) { padding-top: 20px; }
    :is(.public-hero__visual, .hero-concept__showcase) { align-self: start; }
    .cc-banner { position: relative; inset: auto; margin: 16px; width: auto; }
    .cc-status { position: relative; inset: auto; margin: 16px; max-width: calc(100% - 32px); }
    .et-shell.admin-main { height: auto; }
}
@media (max-height: 480px) {
    :root { --responsive-height-mode: dense; --responsive-section-space: 16px; --responsive-dialog-space: 8px; }
    :is(.admin-content, .portal-content) { padding-top: 12px; }
    .public-hero.public-hero--concept { height: auto; min-height: 0; }
    .auth-page .ca-form-panel, .auth-page .ca-story { padding-block: 20px; }
    .crest-interior .form-actions { position: static; }
}
@media (forced-colors: active) {
    .admin-field select:not([multiple]):not([size]) { appearance: auto; background-image: none; }
}
