/* GESOC — stratul de interfață peste stilurile clasice (screen.css, main.css, form.css)
 * și peste stilurile implicite ale widgeturilor Yii (CGridView, CDetailView, jQuery UI).
 * Culorile și dimensiunile vin din gesoc-tokens.css (kitul de brand GESOC v1). */

@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/Inter-Regular.woff2) format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/Inter-Medium.woff2) format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/Inter-SemiBold.woff2) format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/Inter-Bold.woff2) format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 800; font-display: swap; src: url(../fonts/Inter-ExtraBold.woff2) format("woff2"); }

:root {
    --gs-row-hover: #EEF4FA;
    --gs-row-odd: #F7F9FC;
    --gs-row-selected: #E3EEF9;
    --gs-nav-fg: #D5DEE6;
    --gs-nav-muted: #8EA5BF;
    --gs-nav-hover: rgba(255, 255, 255, .08);
    --gs-nav-active: rgba(18, 160, 219, .22);
}

/* ---------------------------------------------------------------- bază */
html { font-size: 100%; }
body.gs {
    margin: 0;
    background: var(--gesoc-canvas);
    color: var(--gesoc-text);
    font: 13px/1.5 var(--gesoc-font-sans);
    /* fără tabular-nums global: în Inter lățește și cratima („Maria - Ioana”) */
}
body.gs a { color: var(--gesoc-link); font-weight: 500; }
body.gs a:hover, body.gs a:focus { color: var(--gesoc-navy-800); text-decoration: underline; }
body.gs :focus-visible { outline: 3px solid rgba(18, 160, 219, .55); outline-offset: 1px; }
body.gs h1, body.gs h2, body.gs h3, body.gs h4 { color: var(--gesoc-navy-900); letter-spacing: -.01em; font-weight: 700; }
body.gs h1 { font-size: 22px; line-height: 1.25; margin: 0 0 14px; }
body.gs h2 { font-size: 17px; margin: 0 0 10px; }
body.gs h3 { font-size: 15px; margin: 0 0 8px; }
body.gs h4 { font-size: 14px; margin: 0 0 8px; }
body.gs strong, body.gs b { font-weight: 600; }
body.gs thead th { background: transparent; }
[hidden] { display: none !important; }
.gs-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------------------------------------------------------------- shell */
.gs-app {
    display: grid;
    min-height: 100vh;
    grid-template-columns: var(--gesoc-sidebar) minmax(0, 1fr);
    grid-template-rows: var(--gesoc-topbar) auto minmax(0, 1fr) auto;
    grid-template-areas: "brand top" "nav nav" "main main" "foot foot";
}
.gs-brand {
    grid-area: brand;
    display: flex; align-items: center; gap: 10px;
    padding: 0 18px;
    background: var(--gesoc-navy-900);
    color: #fff !important;
    font-size: 19px; font-weight: 800 !important; letter-spacing: -.02em;
    text-decoration: none !important;
}
.gs-brand img { width: 30px; height: 30px; flex: none; }
.gs-brand b { color: #E07AAA; font-weight: 800; }

.gs-topbar {
    grid-area: top;
    display: flex; align-items: center; gap: 14px; min-width: 0;
    padding: 0 20px;
    background: var(--gesoc-surface);
    border-bottom: 1px solid var(--gesoc-border);
}
.gs-service { font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.gs-case {
    display: inline-flex; align-items: center; gap: 8px; min-width: 0;
    padding: 4px 12px 4px 5px; border-radius: 999px;
    background: var(--gesoc-rose-50); color: var(--gesoc-rose-700) !important;
    font-weight: 600 !important; white-space: nowrap; text-decoration: none !important;
}
.gs-case span { overflow: hidden; text-overflow: ellipsis; }
.gs-case i { font-style: normal; background: var(--gesoc-rose-600); color: #fff; border-radius: 999px; padding: 1px 8px; font-size: 12px; }
.gs-case:hover { background: #F5DDEA; }
.gs-tools { margin-left: auto; display: flex; align-items: center; gap: 12px; flex: none; }
.gs-user { display: flex; align-items: center; gap: 8px; color: var(--gesoc-text-muted); }
.gs-avatar {
    width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center;
    background: var(--gesoc-slate-100); border: 1px solid var(--gesoc-border);
    color: var(--gesoc-navy-900); font-weight: 700; font-size: 12px;
}
.gs-logout { color: var(--gesoc-text-muted) !important; font-weight: 500; }
.gs-navmode, .gs-burger, .gs-support {
    display: inline-flex; align-items: center; gap: 6px;
    height: 32px; padding: 0 8px; border-radius: var(--gesoc-radius-sm);
    border: 1px solid var(--gesoc-border); background: var(--gesoc-surface);
    color: var(--gesoc-text-muted); font: 600 13px var(--gesoc-font-sans); cursor: pointer;
}
.gs-navmode:hover, .gs-burger:hover, .gs-support:hover { color: var(--gesoc-text); background: var(--gesoc-slate-50); }
.gs-navmode svg, .gs-burger svg, .gs-support svg { width: 16px; height: 16px; }
.gs-support { text-decoration: none !important; }
.gs-support.active { color: var(--gesoc-primary); border-color: var(--gesoc-primary); background: var(--gesoc-slate-50); }
.gs-nav-top .gs-navmode-side, .gs-nav-side .gs-navmode-top { opacity: .25; }
.gs-burger { display: none; }

.gs-main { grid-area: main; min-width: 0; padding: 20px 24px 32px; }
.gs-footer {
    grid-area: foot;
    display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px;
    padding: 12px 24px; border-top: 1px solid var(--gesoc-border);
    color: var(--gesoc-text-muted); font-size: 12px; background: var(--gesoc-surface);
}
.gs-footer a { color: var(--gesoc-text-muted) !important; }
#content { padding: 0; min-height: 0; }

/* sigla, bara de sus și meniul rămân pe ecran la derulare */
.gs-brand, .gs-topbar { position: sticky; top: 0; z-index: 60; height: var(--gesoc-topbar); box-sizing: border-box; }
.gs-nav { position: sticky; top: var(--gesoc-topbar); }
html { scroll-padding-top: calc(var(--gesoc-topbar) + 56px); }
html:has(body.gs-nav-side), html:has(body.gs-guest) { scroll-padding-top: calc(var(--gesoc-topbar) + 12px); }

/* ---------------------------------------------------------------- meniul (structura CMenu) */
.gs-nav { grid-area: nav; background: var(--gesoc-navy-900); color: var(--gs-nav-fg); z-index: 50; }
.gs-menu, .gs-menu ul { list-style: none; margin: 0; padding: 0; }
.gs-menu > li > span, .gs-menu > li > a {
    display: flex; align-items: center; gap: 6px; box-sizing: border-box;
    color: var(--gs-nav-fg) !important; font-weight: 600 !important; text-decoration: none !important;
    cursor: pointer; user-select: none;
}
.gs-menu > li.gs-group > span::after {
    content: ""; width: 6px; height: 6px; margin-left: 2px;
    border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor;
    transform: rotate(45deg) translateY(-2px); transition: transform .15s;
}
.gs-menu > li.is-open > span::after { transform: rotate(-135deg) translateY(-1px); }
.gs-sub a {
    display: block; padding: 7px 12px; border-radius: 6px;
    font-weight: 500 !important; text-decoration: none !important;
}

/* bară sus */
.gs-nav-top .gs-menu { display: flex; flex-wrap: wrap; align-items: stretch; padding: 0 12px; }
.gs-nav-top .gs-menu > li { position: relative; }
.gs-nav-top .gs-menu > li > span, .gs-nav-top .gs-menu > li > a { height: 44px; padding: 0 12px; font-size: 13px; }
.gs-nav-top .gs-menu > li > span:hover, .gs-nav-top .gs-menu > li > a:hover,
.gs-nav-top .gs-menu > li.is-open > span { background: var(--gs-nav-hover); color: #fff !important; }
.gs-nav-top .gs-menu > li.is-active > span, .gs-nav-top .gs-menu > li.is-active > a { color: #fff !important; box-shadow: inset 0 -3px 0 var(--gesoc-cyan-500); }
.gs-nav-top .gs-menu > li.gs-page { margin-left: auto; }
.gs-nav-top .gs-menu > li.gs-page > span { color: #fff !important; }
.gs-nav-top .gs-sub {
    display: none; position: absolute; left: 0; top: 44px; min-width: 260px; max-height: 70vh; overflow-y: auto;
    padding: 6px; background: var(--gesoc-surface); border: 1px solid var(--gesoc-border);
    border-radius: 0 0 var(--gesoc-radius) var(--gesoc-radius); box-shadow: 0 12px 28px rgba(2, 41, 87, .18);
}
.gs-nav-top li.gs-page .gs-sub { left: auto; right: 0; }
.gs-nav-top li.is-open > .gs-sub { display: block; }
.gs-nav-top .gs-sub a { color: var(--gesoc-text) !important; }
.gs-nav-top .gs-sub a:hover { background: var(--gesoc-slate-100); }
.gs-nav-top .gs-sub li.is-active > a { background: var(--gesoc-slate-100); box-shadow: inset 3px 0 0 var(--gesoc-rose-600); }

/* meniu lateral (implicit) */
.gs-nav-side .gs-app {
    grid-template-rows: var(--gesoc-topbar) minmax(0, 1fr) auto;
    grid-template-areas: "brand top" "nav main" "nav foot";
}
.gs-nav-side .gs-nav {
    align-self: start; box-sizing: border-box; height: calc(100vh - var(--gesoc-topbar));
    overflow-y: auto; overscroll-behavior: contain; padding: 12px 10px 24px;
}
.gs-nav-side .gs-menu { display: flex; flex-direction: column; gap: 6px; }
.gs-nav-side .gs-menu > li.gs-page { order: -1; padding-bottom: 8px; margin-bottom: 4px; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.gs-nav-side .gs-menu > li > span {
    justify-content: space-between; padding: 6px 10px;
    font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--gs-nav-muted) !important;
}
.gs-nav-side .gs-menu > li > span:hover { color: #fff !important; }
.gs-nav-side .gs-menu > li.gs-leaf > a { padding: 7px 10px; border-radius: 6px; font-weight: 500 !important; }
.gs-nav-side .gs-menu > li.gs-leaf > a:hover, .gs-nav-side .gs-sub a:hover { background: var(--gs-nav-hover); color: #fff !important; }
/* submeniul: retras sub iconița grupului, cu o linie de ghidaj; textul se aliniază cu numele grupului */
.gs-nav-side .gs-sub { display: none; margin: 2px 0 4px 17px; padding-left: 4px; border-left: 1px solid rgba(255, 255, 255, .14); }
.gs-nav-side .gs-sub a { padding-left: 10px; }
.gs-nav-side li.is-open > .gs-sub { display: block; }
.gs-nav-side .gs-sub a { color: var(--gs-nav-fg) !important; }
.gs-nav-side .gs-menu li.is-active > a { background: var(--gs-nav-active); color: #fff !important; box-shadow: inset 3px 0 0 var(--gesoc-cyan-500); }

/* ---------------------------------------------------------------- ecran de autentificare */
.gs-guest .gs-app { grid-template-rows: var(--gesoc-topbar) minmax(0, 1fr) auto; grid-template-areas: "brand top" "main main" "foot foot"; }
.gs-login { max-width: 420px; margin: 48px auto; display: flex; flex-direction: column; gap: 22px; }
.gs-login-logo { display: block; width: 220px; max-width: 70%; margin: 0 auto; }
.gs-card { background: var(--gesoc-surface); border: 1px solid var(--gesoc-border); border-radius: var(--gesoc-radius); box-shadow: var(--gesoc-shadow); padding: 24px; }
.gs-login h1 { font-size: 18px; margin: 0 0 16px; }
.gs-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 14px; }
.gs-field label { font-weight: 600; font-size: 13px; }
body.gs .gs-field input[type=text], body.gs .gs-field input[type=password] { width: 100%; box-sizing: border-box; height: 38px; font-size: 14px; }
.gs-login-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin: 4px 0 18px; }
.gs-login-row label { display: inline; font-weight: 500; }
body.gs .gs-login input[type=submit] { width: 100%; height: 40px; font-size: 14px; }
.gs-login-note { text-align: center; color: var(--gesoc-text-muted); font-size: 12px; margin: 0; }

/* ---------------------------------------------------------------- breadcrumbs, mesaje */
body.gs div.breadcrumbs { margin: 0 0 12px; padding: 0; font-size: 12.5px; color: var(--gesoc-text-muted); }
body.gs div.breadcrumbs a { color: var(--gesoc-text-muted); }
body.gs .flash-success, body.gs .flash-notice, body.gs .flash-error, body.gs div.success:not(.form), body.gs div.info:not(.form) {
    padding: 10px 14px; margin: 0 0 14px; border-radius: var(--gesoc-radius-sm); border: 1px solid;
}
body.gs .flash-success, body.gs div.success:not(.form) { background: var(--gesoc-success-bg); border-color: #BFDDBC; color: var(--gesoc-success-text); }
body.gs .flash-notice, body.gs div.info:not(.form) { background: var(--gesoc-info-bg); border-color: #B4DCDF; color: var(--gesoc-info-text); }
body.gs .flash-error { background: var(--gesoc-danger-bg); border-color: #E8C3C2; color: var(--gesoc-danger-text); }

/* ---------------------------------------------------------------- formulare */
body.gs input[type=text], body.gs input[type=password], body.gs input[type=email], body.gs input[type=number],
body.gs input[type=date], body.gs input[type=search], body.gs input:not([type]), body.gs select, body.gs textarea {
    font: 13px var(--gesoc-font-sans); color: var(--gesoc-text);
    background: var(--gesoc-surface); border: 1px solid #B9C8D6; border-radius: var(--gesoc-radius-sm);
    padding: 4px 7px;
}
body.gs select { padding: 3px 4px; }
body.gs input:focus, body.gs select:focus, body.gs textarea:focus { border-color: var(--gesoc-blue-600); box-shadow: 0 0 0 3px rgba(18, 160, 219, .2); outline: none; }
body.gs input[disabled], body.gs input[readonly], body.gs select[disabled], body.gs textarea[readonly] { background: var(--gesoc-slate-50); color: var(--gesoc-text-muted); }
body.gs input[type=submit], body.gs input[type=button], body.gs input[type=reset], body.gs button:not(.gs-navmode):not(.gs-burger):not(.ui-button):not(.ui-dialog-titlebar-close):not(.gs-more-btn):not(.gs-seg button) {
    font: 600 13px var(--gesoc-font-sans); cursor: pointer;
    padding: 6px 14px; border-radius: 8px;
    border: 1px solid var(--gesoc-navy-900); background: var(--gesoc-navy-900); color: #fff;
}
body.gs input[type=submit]:hover, body.gs input[type=button]:hover, body.gs button:not(.gs-navmode):not(.gs-burger):not(.ui-button):not(.ui-dialog-titlebar-close):not(.gs-more-btn):not(.gs-seg button):hover { background: var(--gesoc-navy-800); }
body.gs input[type=reset] { background: var(--gesoc-surface); color: var(--gesoc-navy-900); }
body.gs div.form label { font-size: 12.5px; font-weight: 600; color: var(--gesoc-text-muted); }

/* tabelele de așezare din formulare: benzile <th colspan> sunt titluri de secțiune */
body.gs div.form table { border-collapse: separate; border-spacing: 0; margin-bottom: 8px; }
body.gs div.form table td { padding: 4px 12px 4px 0; vertical-align: middle; }
/* lângă un câmp de text înalt, eticheta cade pe primul lui rând, nu la mijloc */
body.gs div.form table tr:has(textarea) > td { vertical-align: top; }
body.gs div.form table tr:has(textarea) > td:has(> label) { padding-top: 9px; }
body.gs div.form table th {
    background: var(--gesoc-slate-50); background-clip: padding-box; color: var(--gesoc-navy-900);
    font-size: 12px; font-weight: 700; letter-spacing: .02em; text-align: left;
    padding: 8px 12px; border-left: 3px solid var(--gesoc-blue-600);
}
body.gs div.form table tr + tr > th[colspan] { border-top: 14px solid transparent; }
body.gs div.form table tr > th[colspan] + * { padding-top: 8px; }

/* acțiunile de fișă: „Adăugare reevaluare” (edit_fisa) și adăugările din fișă (add_fisa) */
body.gs a.edit_fisa {
    display: inline-flex; align-items: center; width: auto; margin: 0 4px 0 0; padding: 6px 14px; border-radius: 8px;
    background: var(--gesoc-rose-600); color: #fff !important; border: 1px solid var(--gesoc-rose-600);
    font-size: 13px; font-weight: 600; text-transform: none; text-decoration: none !important;
}
body.gs a.edit_fisa:hover { background: var(--gesoc-rose-700); color: #fff !important; }
body.gs .add_fisa {
    display: inline-block; margin: 6px 0; padding: 6px 14px; border-radius: 8px;
    background: var(--gesoc-surface); border: 1px solid var(--gesoc-navy-900); color: var(--gesoc-navy-900);
    font-size: 12.5px; font-weight: 600; text-transform: none;
}
body.gs .add_fisa:hover { background: var(--gesoc-slate-50); }
body.gs a.add { font-weight: 600; }
body.gs #fisa { border: 1px solid var(--gesoc-border); border-radius: var(--gesoc-radius); box-shadow: var(--gesoc-shadow); padding: 10px; }
body.gs div.search-form { background: var(--gesoc-surface); border: 1px solid var(--gesoc-border); border-radius: var(--gesoc-radius); padding: 14px 16px; }

/* tabele de conținut folosite în view-uri */
body.gs table.plan th, body.gs table.border_table th { background: var(--gesoc-slate-50); border-color: var(--gesoc-border); color: var(--gesoc-navy-900); font-weight: 600; padding: 6px 8px; }
body.gs table.plan td.plan, body.gs table.border_table td { border-color: var(--gesoc-border); padding: 5px 8px; }
/* în formulare, regula generală (fără spațiu la stânga, pentru etichete) nu se aplică tabelelor cu chenar */
body.gs div.form table.border_table { background: var(--gesoc-surface); }
body.gs div.form table.border_table th { padding: 8px 12px; }
body.gs div.form table.border_table td { padding: 6px 12px; }
body.gs table.border_table tr.odd { background: var(--gs-row-odd); }
body.gs table.border_table tr.even { background: var(--gesoc-surface); }
body.gs table.parinti td { border-color: var(--gesoc-slate-100); padding: 4px 8px; }
body.gs .ftotals { background: var(--gesoc-success-bg); color: var(--gesoc-success-text); }
body.gs .fara_listare { background: var(--gesoc-warning-bg); }
body.gs .nom_icons a { color: var(--gesoc-navy-900); }
body.gs div.form .row { margin: 6px 0; }
body.gs div.form .hint, body.gs div.form .note { color: var(--gesoc-text-muted); }
body.gs span.required { color: var(--gesoc-danger); }
body.gs div.form .errorMessage { color: var(--gesoc-danger-text); font-size: 12px; }
body.gs div.form label.error, body.gs div.form span.error { color: var(--gesoc-danger-text); }
body.gs div.form div.error input, body.gs div.form div.error textarea, body.gs div.form div.error select,
body.gs div.form input.error, body.gs div.form textarea.error, body.gs div.form select.error { background: var(--gesoc-danger-bg); border-color: var(--gesoc-danger); }
body.gs .errorSummary { background: var(--gesoc-danger-bg); border: 1px solid #E8C3C2; color: var(--gesoc-danger-text); border-radius: var(--gesoc-radius-sm); padding: 10px 14px; margin-bottom: 14px; }
body.gs fieldset { border: 1px solid var(--gesoc-border); border-radius: var(--gesoc-radius); padding: 10px 14px; margin: 0 0 14px; background: var(--gesoc-surface); }
body.gs legend { font-weight: 700; color: var(--gesoc-navy-900); padding: 0 6px; }

/* formularele de lucru (secțiunile dosarului, paginile de adăugare/modificare): câmpuri mai înalte,
   lățimi pe trei trepte în loc de size-ul din fiecare view, benzi de secțiune de aceeași lățime */
body.gs .ui-accordion-content div.form, body.gs #content > div.form { --gs-field-long: 720px; --gs-field-mid: 280px; }
/* pe ecrane late, paginile de dosar și cele cu secțiuni de formular stau pe mijloc, în lățimea formularelor
   (antetul dosarului, titlul, butoanele de tipărire, secțiunile). Paginile cu antet de pagină (GesocPagina)
   stau tot așa, în afară de cele cu tabele de date (grid), care păstrează toată lățimea pentru coloane. Spațiul lateral se calculează din lățimea
   zonei principale (cqw); filele dosarului care nu încap trec în „Mai multe” (gesoc.js). */
body.gs .gs-main { container-type: inline-size; }
body.gs #content:has(> .gs-casehead:not(.gs-pagehead)),
body.gs #content:has(> .gs-pagehead):not(:has(.grid-view)),
body.gs #content:has(.ui-accordion-content div.form > form > table:not(.border_table)) {
    --gs-col-pad: max(0px, (100cqw - 1140px) / 2);
    padding-inline: var(--gs-col-pad);
}
/* overflow: auto (jQuery UI) ar opri bara de salvare fixă; pe telefon secțiunea se derulează orizontal (mai jos) */
@media (min-width: 641px) { body.gs .ui-accordion .ui-accordion-content { overflow: visible; } }
body.gs .ui-accordion-content div.form :is(input[type=text], input[type=password], input[type=email], input[type=number], input:not([type]), select),
body.gs #content > div.form :is(input[type=text], input[type=password], input[type=email], input[type=number], input:not([type]), select) {
    min-height: 34px; padding: 6px 10px; font-size: 14px; box-sizing: border-box;
}
body.gs .ui-accordion-content div.form textarea, body.gs #content > div.form textarea {
    font-size: 14px; line-height: 1.45; padding: 8px 10px; box-sizing: border-box;
}
body.gs .ui-accordion-content div.form > form > table:not(.border_table),
body.gs #content > div.form > form > table:not(.border_table) { width: 100%; max-width: 1080px; }
/* câmpul din coloana a doua a unui rând „etichetă | câmp” */
body.gs div.form td:has(> label) + td > :is(input[type=text], input:not([type])):not([size]),
body.gs div.form td:has(> label) + td > input[type=text]:is([size="40"], [size="45"], [size="50"], [size="60"]) { width: 100%; max-width: var(--gs-field-long); }
body.gs div.form td:has(> label) + td > input[type=text]:is([size="20"], [size="25"], [size="30"], [size="34"]) { width: 100%; max-width: var(--gs-field-mid); }
body.gs div.form td:has(> label) + td > select { max-width: var(--gs-field-long); }
body.gs div.form td:has(> label) + td > textarea {
    width: 100%; max-width: var(--gs-field-long); min-height: 84px; max-height: 60vh;
    field-sizing: content; /* crește odată cu textul (Chrome, Edge) */
}

/* bara de salvare: rămâne jos pe ecran cât timp formularul e vizibil (gesoc.js mută aici butonul formularului) */
.gs-savebar {
    position: sticky; bottom: 0; z-index: 20; display: flex; align-items: center; gap: 14px;
    margin: 12px -20px -16px; padding: 10px 20px;
    background: rgba(255, 255, 255, .96); border-top: 1px solid var(--gesoc-border);
    box-shadow: 0 -6px 16px rgba(2, 41, 87, .06);
}
body.gs .gs-savebar input.save_btn { margin: 0; min-width: 110px; }
.gs-savebar-state { font-size: 13px; color: var(--gesoc-text-muted); }
.gs-savebar-state::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: var(--gesoc-slate-300, #CBD5E1); vertical-align: 1px; }
form.gs-dirty .gs-savebar-state { color: #8A5D0C; font-weight: 600; }
form.gs-dirty .gs-savebar-state::before { background: #D97706; }
body.gs form.gs-dirty .gs-savebar input.save_btn { background: var(--gesoc-rose-600); border-color: var(--gesoc-rose-600); }
body.gs form.gs-dirty .gs-savebar input.save_btn:hover { background: var(--gesoc-rose-700); }
/* secțiunea cu modificări nesalvate se vede și când e închisă */
body.gs .ui-accordion-header.gs-dirty::after {
    content: "nesalvat"; margin-left: 10px; padding: 1px 8px; border-radius: 999px;
    background: #FBF1DD; color: #8A5D0C; font-size: 11.5px; font-weight: 600; letter-spacing: .01em;
}
@media (max-width: 640px) { .gs-savebar { margin: 12px -14px -14px; padding: 10px 14px; } }

/* ---------------------------------------------------------------- CGridView */
body.gs .grid-view { padding: 10px 0; overflow-x: auto; }
body.gs .grid-view table.items td { white-space: normal; }
body.gs .grid-view table.items {
    background: var(--gesoc-surface); border: 1px solid var(--gesoc-border); border-collapse: separate; border-spacing: 0;
    border-radius: var(--gesoc-radius); overflow: hidden; box-shadow: var(--gesoc-shadow); margin-bottom: 8px;
}
body.gs .grid-view table.items th, body.gs .grid-view table.items td { font-size: 13px; border: 0; border-bottom: 1px solid var(--gesoc-slate-100); padding: 7px 10px; }
body.gs .grid-view table.items th {
    background: var(--gesoc-slate-50); color: var(--gesoc-text-muted); text-align: left;
    font-size: 12px; font-weight: 600; border-bottom: 1px solid var(--gesoc-border); white-space: nowrap;
}
body.gs .grid-view table.items th a { color: var(--gesoc-text-muted); font-weight: 600; }
body.gs .grid-view table.items th a:hover { color: var(--gesoc-navy-900); }
body.gs .grid-view table.items th a.asc, body.gs .grid-view table.items th a.desc { background: none; padding-right: 0; color: var(--gesoc-navy-900); }
body.gs .grid-view table.items th a.asc::after { content: " ▲"; font-size: 9px; }
body.gs .grid-view table.items th a.desc::after { content: " ▼"; font-size: 9px; }
body.gs .grid-view table.items tr.filters td { background: var(--gesoc-slate-50); border-bottom: 1px solid var(--gesoc-border); padding: 6px 8px; }
body.gs .grid-view .filters input, body.gs .grid-view .filters select { width: 100%; box-sizing: border-box; border: 1px solid #B9C8D6; }
body.gs .grid-view table.items tr.even { background: var(--gesoc-surface); }
body.gs .grid-view table.items tr.odd { background: var(--gs-row-odd); }
body.gs .grid-view table.items tbody tr:hover { background: var(--gs-row-hover); }
/* listele în care clicul pe rând deschide înregistrarea */
body.gs .gs-rowlink table.items tbody tr { cursor: pointer; }
body.gs .grid-view table.items tr.selected, body.gs .grid-view table.items tr:hover.selected { background: var(--gs-row-selected); }
body.gs .grid-view table.items tbody tr:last-child td { border-bottom: 0; }

/* rândurile colorate după starea dosarului (rowCssClassExpression): nuanță discretă + bară în prima celulă */
body.gs .grid-view table.items tr.asteptare { background: #FFFAF0; color: inherit; }
body.gs .grid-view table.items tr.lucru { background: var(--gesoc-surface); color: inherit; }
body.gs .grid-view table.items tr.finalizat { background: #F6FBF5; color: inherit; }
body.gs .grid-view table.items tr.suspendat { background: #FDF6F6; color: inherit; }
body.gs .grid-view table.items tr.transferat { background: #F8F6FC; color: inherit; }
body.gs .grid-view table.items tr.asteptare > td:first-child { box-shadow: inset 4px 0 0 var(--gesoc-warning); }
body.gs .grid-view table.items tr.lucru > td:first-child { box-shadow: inset 4px 0 0 var(--gesoc-info); }
body.gs .grid-view table.items tr.finalizat > td:first-child { box-shadow: inset 4px 0 0 var(--gesoc-success); }
body.gs .grid-view table.items tr.suspendat > td:first-child { box-shadow: inset 4px 0 0 var(--gesoc-danger); }
body.gs .grid-view table.items tr.transferat > td:first-child { box-shadow: inset 4px 0 0 var(--gesoc-analytics); }
body.gs .grid-view table.items tr.asteptare:hover, body.gs .grid-view table.items tr.lucru:hover,
body.gs .grid-view table.items tr.finalizat:hover, body.gs .grid-view table.items tr.suspendat:hover,
body.gs .grid-view table.items tr.transferat:hover { background: var(--gs-row-hover); }
body.gs .grid-view .summary { color: var(--gesoc-text-muted); font-size: 12px; margin: 0 0 6px; }
body.gs .grid-view .empty { color: var(--gesoc-text-muted); font-style: normal; }
body.gs .grid-view .button-column { white-space: nowrap; width: auto; }
body.gs .grid-view .button-column img, body.gs .grid-view .link-column img { opacity: .8; }
body.gs .grid-view .button-column a:hover img { opacity: 1; }
body.gs .grid-view-loading { background-position: right 6px; }

/* paginare (CLinkPager) */
body.gs ul.yiiPager { display: inline-flex; gap: 4px; margin: 0; padding: 0; font-size: 12.5px; }
body.gs ul.yiiPager li { display: inline-block; }
body.gs ul.yiiPager a { display: inline-block; min-width: 28px; padding: 4px 8px; text-align: center; border: 1px solid var(--gesoc-border); border-radius: 6px; background: var(--gesoc-surface); color: var(--gesoc-text); font-weight: 500; }
body.gs ul.yiiPager a:hover { border-color: var(--gesoc-blue-600); text-decoration: none; }
body.gs ul.yiiPager .selected a { background: var(--gesoc-navy-900); border-color: var(--gesoc-navy-900); color: #fff; font-weight: 600; }
/* paginile indisponibile rămân lizibile (contrast 4.5:1); se deosebesc prin chenarul șters */
body.gs ul.yiiPager .hidden a { color: var(--gesoc-text-muted); border-color: var(--gesoc-slate-100); background: transparent; }
body.gs .pager { color: var(--gesoc-text-muted); }

/* ---------------------------------------------------------------- CDetailView, div.view, portleturi */
body.gs table.detail-view { background: var(--gesoc-surface); border: 1px solid var(--gesoc-border); border-collapse: separate; border-spacing: 0; border-radius: var(--gesoc-radius); overflow: hidden; margin-bottom: 14px; }
body.gs table.detail-view th, body.gs table.detail-view td { font-size: 13px; border: 0; border-bottom: 1px solid var(--gesoc-slate-100); padding: 7px 12px; }
body.gs table.detail-view th { color: var(--gesoc-text-muted); font-weight: 600; text-align: left; width: 220px; }
body.gs table.detail-view tr.odd, body.gs table.detail-view tr.even { background: var(--gesoc-surface); }
body.gs table.detail-view tr:last-child th, body.gs table.detail-view tr:last-child td { border-bottom: 0; }
body.gs table.detail-view .null { color: var(--gesoc-slate-400); }
body.gs div.view { background: var(--gesoc-surface); border: 1px solid var(--gesoc-border); border-radius: var(--gesoc-radius); padding: 12px 14px; }
body.gs .portlet { background: var(--gesoc-surface); border: 1px solid var(--gesoc-border); border-radius: var(--gesoc-radius); box-shadow: var(--gesoc-shadow); overflow: hidden; margin-bottom: 14px; }
body.gs .portlet-decoration { background: var(--gesoc-slate-50); border-bottom: 1px solid var(--gesoc-border); padding: 8px 12px; }
body.gs .portlet-title { color: var(--gesoc-navy-900); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
body.gs .portlet-content { padding: 8px 12px; }

/* ---------------------------------------------------------------- jQuery UI (dialoguri, acordeoane, calendar) */
body.gs .ui-widget { font-family: var(--gesoc-font-sans); font-size: 13px; }
body.gs .ui-widget input, body.gs .ui-widget select, body.gs .ui-widget textarea, body.gs .ui-widget button { font-family: var(--gesoc-font-sans); font-size: 13px; }
body.gs .ui-widget-content { border-color: var(--gesoc-border); color: var(--gesoc-text); }
body.gs .ui-widget-header { background: var(--gesoc-navy-900); border-color: var(--gesoc-navy-900); color: #fff; font-weight: 600; }
body.gs .ui-dialog { padding: 0; border-radius: var(--gesoc-radius); box-shadow: 0 18px 48px rgba(2, 41, 87, .28); overflow: hidden; }
body.gs .ui-dialog .ui-dialog-titlebar { border-radius: 0; padding: 10px 14px; }
body.gs .ui-dialog .ui-dialog-content { padding: 14px; }
body.gs .ui-dialog .ui-dialog-buttonpane { border-top: 1px solid var(--gesoc-border); margin: 0; padding: 8px 14px; }
body.gs .ui-widget-overlay { background: #022957; opacity: .35; }
/* acordeoane: antetele au padding și fundal puse direct în view-uri (style="padding:0 30px; background:..."),
   de aici !important */
body.gs .ui-accordion .ui-accordion-header {
    display: flex; align-items: center; min-height: 40px; box-sizing: border-box;
    padding: 10px 16px !important; margin-top: 8px;
    background: var(--gesoc-surface) !important; border: 1px solid var(--gesoc-border); border-radius: var(--gesoc-radius);
    color: var(--gesoc-navy-900); font-size: 14px; font-weight: 600 !important; letter-spacing: 0;
    box-shadow: var(--gesoc-shadow);
}
body.gs .ui-accordion .ui-accordion-header a, body.gs .ui-accordion .ui-accordion-header .gs-acc-title { color: var(--gesoc-navy-900); font-weight: 600; }
body.gs .ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: static; flex: none; margin: 0 10px 0 0; left: auto; top: auto; opacity: .7; }
body.gs .ui-accordion .ui-accordion-header:hover { background: var(--gesoc-slate-50) !important; }
body.gs .ui-accordion .ui-accordion-header.ui-state-active {
    background: var(--gesoc-slate-50) !important; border-color: var(--gesoc-border);
    border-radius: var(--gesoc-radius) var(--gesoc-radius) 0 0; box-shadow: inset 3px 0 0 var(--gesoc-rose-600);
}
body.gs .ui-accordion .ui-accordion-content {
    padding: 18px 22px 22px; background: var(--gesoc-surface);
    border: 1px solid var(--gesoc-border); border-top: 0; border-radius: 0 0 var(--gesoc-radius) var(--gesoc-radius);
    box-shadow: var(--gesoc-shadow);
}
body.gs .ui-accordion .ui-accordion-content > :first-child { margin-top: 0; }
body.gs .ui-accordion .ui-accordion-content form > input[type=submit],
body.gs .ui-accordion .ui-accordion-content .buttons { margin-top: 12px; }
body.gs .ui-state-default, body.gs .ui-widget-content .ui-state-default { background: var(--gesoc-surface); border-color: var(--gesoc-border); color: var(--gesoc-navy-900); }
body.gs .ui-state-hover, body.gs .ui-widget-content .ui-state-hover { background: var(--gesoc-slate-50); border-color: var(--gesoc-slate-400); }
body.gs .ui-state-highlight, body.gs .ui-widget-content .ui-state-highlight { background: var(--gesoc-rose-50); border-color: var(--gesoc-rose-200); color: var(--gesoc-rose-700); }
body.gs .ui-datepicker .ui-datepicker-header { background: var(--gesoc-navy-900); border: 0; }
body.gs .ui-datepicker .ui-state-active { background: var(--gesoc-navy-900); color: #fff; }

/* ---------------------------------------------------------------- ecrane înguste */
@media (max-width: 900px) {
    .gs-app, .gs-nav-side .gs-app, .gs-guest .gs-app {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto auto minmax(0, 1fr) auto;
        grid-template-areas: "brand" "top" "nav" "main" "foot";
    }
    /* pe ecran îngust antetul are două rânduri și meniul e derulant: nu mai stau fixe */
    .gs-brand, .gs-topbar, .gs-nav, .gs-nav-side .gs-nav { position: static; height: auto; overflow: visible; }
    html, html:has(body.gs-nav-side), html:has(body.gs-guest) { scroll-padding-top: 0; }
    .gs-brand { height: 52px; }
    .gs-topbar { flex-wrap: wrap; padding: 8px 16px; }
    .gs-burger { display: inline-flex; }
    .gs-navmode, .gs-user-name, .gs-support-label { display: none; }
    .gs-nav { display: none; }
    .gs-nav-open .gs-nav { display: block; padding: 8px 12px; }
    .gs-nav-open .gs-menu { display: flex; flex-direction: column; position: static; padding: 0; }
    .gs-nav-open .gs-menu > li > span, .gs-nav-open .gs-menu > li > a { height: auto; padding: 8px 10px; }
    .gs-nav-open .gs-menu > li.gs-page { margin-left: 0; order: -1; }
    .gs-nav-open .gs-sub { position: static; display: none; background: transparent; border: 0; box-shadow: none; max-height: none; padding: 0 0 6px 8px; }
    .gs-nav-open li.is-open > .gs-sub { display: block; }
    .gs-nav-open .gs-sub a { color: var(--gs-nav-fg) !important; }
    .gs-nav-open .gs-sub li.is-active > a { background: var(--gs-nav-active); color: #fff !important; box-shadow: inset 3px 0 0 var(--gesoc-cyan-500); }
    .gs-nav-open .gs-sub a:hover { background: var(--gs-nav-hover); }
    .gs-main { padding: 16px; }
    .gs-main .grid-view { overflow-x: auto; }
}

@media print {
    .gs-brand, .gs-topbar, .gs-nav, .gs-footer, div.breadcrumbs { display: none !important; }
    .gs-app { display: block; }
    .gs-main { padding: 0; }
    body.gs { background: #fff; }
}

@media (prefers-reduced-motion: reduce) {
    .gs-menu > li.gs-group > span::after { transition: none; }
}

/* ---------------------------------------------------------------- pagini de tip catalog (rapoarte, nomenclatoare) */
.gs-icon { width: 20px; height: 20px; flex: none; }
.gs-page-head { margin: 0 0 18px; }
.gs-page-head h1 { margin: 0 0 4px; }
.gs-page-head p { margin: 0; color: var(--gesoc-text-muted); max-width: 72ch; }
.gs-section { margin: 0 0 22px; }
body.gs h2.gs-section-title {
    display: flex; align-items: center; gap: 8px; margin: 0 0 10px;
    font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gesoc-text-muted);
}
.gs-section-title small { font-size: 11px; font-weight: 600; letter-spacing: 0; color: var(--gesoc-text-muted); background: var(--gesoc-slate-100); border-radius: 999px; padding: 1px 8px; }
.gs-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
body.gs a.gs-card-link {
    display: flex; align-items: flex-start; gap: 14px; padding: 14px 16px;
    background: var(--gesoc-surface); border: 1px solid var(--gesoc-border); border-radius: var(--gesoc-radius);
    box-shadow: var(--gesoc-shadow); color: var(--gesoc-text); text-decoration: none; font-weight: 400;
    transition: border-color .12s, box-shadow .12s;
}
body.gs a.gs-card-link:hover { border-color: var(--gesoc-blue-600); box-shadow: 0 4px 14px rgba(2, 41, 87, .12); text-decoration: none; color: var(--gesoc-text); }
.gs-card-icon {
    display: grid; place-items: center; width: 40px; height: 40px; flex: none; border-radius: 10px;
    background: var(--gesoc-slate-100); color: var(--gesoc-navy-800);
}
a.gs-card-link:hover .gs-card-icon { background: var(--gesoc-navy-900); color: #fff; }
.gs-card-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.gs-card-text b { font-size: 14px; font-weight: 600; color: var(--gesoc-navy-900); }
.gs-card-text > span { font-size: 12.5px; color: var(--gesoc-text-muted); line-height: 1.45; }
.gs-chips { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.gs-chips i { font-style: normal; font-size: 11.5px; font-weight: 500; padding: 1px 8px; border-radius: 999px; background: var(--gesoc-slate-100); color: var(--gesoc-slate-800); }

.gs-filter { position: relative; max-width: 420px; margin: 0 0 18px; }
.gs-filter .gs-icon { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); width: 17px; height: 17px; color: var(--gesoc-text-muted); }
body.gs .gs-filter input { width: 100%; box-sizing: border-box; height: 38px; padding: 0 12px 0 36px; font-size: 14px; border-radius: 8px; }

.gs-list { display: flex; flex-direction: column; background: var(--gesoc-surface); border: 1px solid var(--gesoc-border); border-radius: var(--gesoc-radius); box-shadow: var(--gesoc-shadow); overflow: hidden; max-width: 760px; }
body.gs a.gs-list-row { display: flex; align-items: center; gap: 12px; padding: 10px 16px; border-bottom: 1px solid var(--gesoc-slate-100); color: var(--gesoc-text); font-weight: 400; text-decoration: none; }
body.gs a.gs-list-row:last-of-type { border-bottom: 0; }
body.gs a.gs-list-row:hover { background: var(--gs-row-hover); text-decoration: none; }
.gs-list-title { flex: 1; font-weight: 600; color: var(--gesoc-navy-900); }
.gs-list-meta { font-size: 12.5px; color: var(--gesoc-text-muted); white-space: nowrap; }
.gs-list-go { width: 16px; height: 16px; color: var(--gesoc-slate-400); }
.gs-list-wide { max-width: none; }
.gs-list-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.gs-list-desc { font-size: 12.5px; color: var(--gesoc-text-muted); }
.gs-list .gs-chips { margin-top: 0; justify-content: flex-end; max-width: 45%; }
@media (max-width: 640px) {
    body.gs a.gs-list-row:has(.gs-list-main) { flex-wrap: wrap; }
    .gs-list .gs-chips { order: 3; flex-basis: 100%; max-width: none; justify-content: flex-start; }
}
.gs-empty { color: var(--gesoc-text-muted); padding: 12px 16px; margin: 0; }

/* butoanele de acțiune ale listelor de nomenclatoare („Poziție nouă”, „Import...”) */
body.gs .buttons a.add, body.gs a.add.adr {
    display: inline-flex; align-items: center; gap: 6px; margin: 0 6px 8px 0; padding: 6px 14px; border-radius: 8px;
    border: 1px solid var(--gesoc-navy-900); background: var(--gesoc-surface); color: var(--gesoc-navy-900);
    font-size: 12.5px; font-weight: 600; text-decoration: none;
}
body.gs .buttons a.add:hover, body.gs a.add.adr:hover { background: var(--gesoc-slate-50); text-decoration: none; }
body.gs .buttons a.add.act { background: var(--gesoc-surface); padding-left: 14px; }

/* ---------- dosarul deschis: antet, file de documente, operații (GesocCaz) ---------- */
.gs-casehead {
    background: var(--gesoc-surface); border: 1px solid var(--gesoc-border); border-radius: var(--gesoc-radius);
    box-shadow: var(--gesoc-shadow); margin: 0 0 16px;
}
/* la derulare antetul urcă până rămâne vizibil numai rândul filelor, sub bara de sus (variabilele vin din gesoc.js) */
.gs-casehead.is-sticky { position: sticky; z-index: 40; top: calc(var(--gs-head, 0px) - var(--gs-casehead-hide, 0px)); }
.gs-casehead.is-stuck { border-radius: 0 0 var(--gesoc-radius) var(--gesoc-radius); box-shadow: 0 6px 16px rgba(2, 41, 87, .12); }
.gs-casehead-main { display: flex; align-items: center; gap: 14px; padding: 16px 20px 12px; flex-wrap: wrap; }
.gs-casehead-avatar {
    flex: none; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center;
    background: var(--gesoc-rose-50); color: var(--gesoc-rose-700); border: 1px solid var(--gesoc-rose-200);
    font-weight: 700; font-size: 15px; letter-spacing: .02em;
}
.gs-casehead-id { flex: 1; min-width: 0; }
body.gs .gs-casehead h1 { margin: 0; font-size: 20px; line-height: 1.25; }
.gs-casehead-facts { display: flex; flex-wrap: wrap; gap: 2px 0; margin: 2px 0 0; color: var(--gesoc-text-muted); font-size: 13px; }
.gs-casehead-facts span + span::before { content: "·"; margin: 0 8px; color: var(--gesoc-slate-400); }
.gs-casehead-state { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.gs-casehead-state small { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--gesoc-text-muted); }
.gs-casehead-state .gs-icon { width: 14px; height: 14px; }

.gs-state { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 600; background: var(--gesoc-slate-100); color: var(--gesoc-slate-800); }
.gs-state::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.gs-state-asteptare { background: #FBF1DD; color: #8A5D0C; }
.gs-state-lucru { background: #E1F1F2; color: #0B6A70; } /* --gesoc-info avea 4.27:1 pe acest fundal */
.gs-state-finalizat { background: #E6F2E5; color: var(--gesoc-success); }
.gs-state-suspendat { background: #F7E6E6; color: var(--gesoc-danger); }
.gs-state-transferat { background: #EEE9F7; color: var(--gesoc-analytics); }

/* filele documentelor: un singur rând; ce nu încape trece în „Mai multe” (gesoc.js) */
body.gs ul.gs-casetabs {
    display: flex; gap: 2px; margin: 0; padding: 0 12px; list-style: none; border-top: 1px solid var(--gesoc-slate-100);
    flex-wrap: nowrap; min-width: 0;
}
body.gs ul.gs-casetabs li { margin: 0; padding: 0; flex: none; }
body.gs ul.gs-casetabs a {
    display: block; padding: 11px 10px 9px; border-bottom: 2px solid transparent; white-space: nowrap;
    color: var(--gesoc-slate-700); font-size: 13.5px; font-weight: 500; text-decoration: none;
}
body.gs ul.gs-casetabs a:hover { color: var(--gesoc-navy-900); border-bottom-color: var(--gesoc-slate-200); text-decoration: none; }
body.gs ul.gs-casetabs li.is-active a { color: var(--gesoc-navy-900); font-weight: 600; border-bottom-color: var(--gesoc-rose-600); }

.gs-caseactions { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 20px; background: var(--gesoc-slate-50); border-top: 1px solid var(--gesoc-slate-100); }
body.gs .gs-caseactions a {
    display: inline-flex; align-items: center; padding: 4px 12px; border-radius: 999px; font-size: 12.5px; font-weight: 500;
    background: var(--gesoc-surface); border: 1px solid var(--gesoc-border); color: var(--gesoc-slate-800); text-decoration: none;
}
body.gs .gs-caseactions a:hover { border-color: var(--gesoc-navy-900); color: var(--gesoc-navy-900); }
/* antetul unei secțiuni de serviciu (GesocPagina): iconiță în loc de inițiale, operații cu iconițe */
.gs-pagehead .gs-casehead-avatar { background: var(--gesoc-slate-50); color: var(--gesoc-navy-900); border-color: var(--gesoc-border); }
.gs-pagehead .gs-casehead-avatar .gs-icon { width: 22px; height: 22px; }
body.gs .gs-caseactions a .gs-icon { width: 14px; height: 14px; margin-right: 5px; }

/* bara evaluării afișate (fișa dosarului) */
.gs-evalbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 0 0 10px; }
body.gs form.gs-evalbar-pick { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; }
body.gs form.gs-evalbar-pick label { font-size: 13px; font-weight: 600; color: var(--gesoc-slate-700); margin: 0; }
.gs-evalbar-actions { display: flex; flex-wrap: wrap; gap: 8px; }
body.gs a.gs-btn {
    display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border-radius: 8px;
    font-size: 13px; font-weight: 600; text-decoration: none; border: 1px solid var(--gesoc-border);
    background: var(--gesoc-surface); color: var(--gesoc-navy-900); white-space: nowrap;
}
body.gs a.gs-btn .gs-icon { width: 16px; height: 16px; }
body.gs a.gs-btn:hover { border-color: var(--gesoc-navy-900); text-decoration: none; }
body.gs a.gs-btn-accent { background: var(--gesoc-rose-600); border-color: var(--gesoc-rose-600); color: #fff; }
body.gs a.gs-btn-accent:hover { background: var(--gesoc-rose-700); border-color: var(--gesoc-rose-700); color: #fff; }
.gs-evalbar-note { margin: 0 0 10px; font-weight: 600; color: var(--gesoc-slate-700); }

details.gs-import { margin: 0 0 16px; border: 1px dashed var(--gesoc-slate-200); border-radius: var(--gesoc-radius); background: var(--gesoc-surface); }
details.gs-import summary { cursor: pointer; padding: 8px 14px; font-size: 13px; font-weight: 600; color: var(--gesoc-link); }
details.gs-import[open] summary { border-bottom: 1px solid var(--gesoc-slate-100); }
details.gs-import form { padding: 10px 14px 14px; margin: 0; }
details.gs-import p { margin: 0 0 8px; font-size: 13px; color: var(--gesoc-text-muted); max-width: 72ch; }
.gs-import-row { display: flex; flex-wrap: wrap; gap: 8px; }
.gs-import-row input[type=text] { flex: 1 1 260px; max-width: 420px; }

@media (max-width: 640px) {
    .gs-casehead-main { padding: 14px 16px 10px; }
    .gs-casehead-state { align-items: flex-start; flex-direction: row; flex-wrap: wrap; width: 100%; padding-left: 58px; }
    .gs-caseactions { padding: 10px 16px; }
}

/* documentele dosarului: titlul documentului și butoanele de tipărire */
.gs-docprint { float: right; display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 10px 16px; }
body.gs h2.gs-doc-title { margin: 4px 0 14px; font-size: 18px; color: var(--gesoc-navy-900); }
/* „Înregistrare în comisie” apare deja în operațiile din antet */
body.gs #content a.fr:has(> img[src$="/exit.png"]) { display: none; }
@media (max-width: 640px) { .gs-docprint { float: none; margin: 0 0 10px; } }
body.gs #content .gs-docprint ~ .ui-accordion { clear: both; }

/* opisul dosarului: datele fiecărui document pe un rând, cu eticheta deasupra; tabelul pe toată lățimea */
body.gs #opis-dosar-form table.border_table { width: 100%; }
.gs-docfields { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 6px 10px; }
.gs-docfields > .errorSummary { flex-basis: 100%; }
.gs-docfield { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
body.gs .gs-docfield label { margin: 0; font-size: 12px; font-weight: 600; color: var(--gesoc-slate-700); }
body.gs .gs-docfield input[type=text] { width: 7em; }
body.gs .gs-docfield input[size="3"] { width: 4.5em; }
/* buton numai cu iconiță (tipărirea din opis) */
body.gs a.gs-iconbtn {
    display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 8px;
    border: 1px solid var(--gesoc-border); background: var(--gesoc-surface); color: var(--gesoc-navy-900);
}
body.gs a.gs-iconbtn:hover { border-color: var(--gesoc-navy-900); }
body.gs a.gs-iconbtn .gs-icon { width: 16px; height: 16px; }
@media (max-width: 640px) {
    .gs-casehead-facts { flex-direction: column; }
    .gs-casehead-facts span + span::before { display: none; }
}

/* „Mai multe”: filele care nu încap pe rând */
body.gs ul.gs-casetabs li.gs-more { position: relative; margin-left: auto; }
body.gs ul.gs-casetabs .gs-more > button {
    display: inline-flex; align-items: center; gap: 4px; height: auto; margin: 0; padding: 11px 10px 9px;
    background: none; border: 0; border-bottom: 2px solid transparent; border-radius: 0; box-shadow: none;
    color: var(--gesoc-slate-700); font: inherit; font-size: 13.5px; font-weight: 500; cursor: pointer; white-space: nowrap;
}
body.gs ul.gs-casetabs .gs-more > button:hover { background: none; color: var(--gesoc-navy-900); }
body.gs ul.gs-casetabs .gs-more > button .gs-icon { width: 14px; height: 14px; transform: rotate(90deg); }
body.gs ul.gs-casetabs .gs-more.is-active > button { color: var(--gesoc-navy-900); font-weight: 600; border-bottom-color: var(--gesoc-rose-600); }
body.gs ul.gs-casetabs .gs-more > ul {
    display: none; position: absolute; right: 0; top: calc(100% + 4px); z-index: 30; min-width: 220px; margin: 0; padding: 6px;
    list-style: none; background: var(--gesoc-surface); border: 1px solid var(--gesoc-border); border-radius: var(--gesoc-radius);
    box-shadow: 0 8px 24px rgba(2,41,87,.14);
}
body.gs ul.gs-casetabs .gs-more.is-open > ul { display: block; }
body.gs ul.gs-casetabs .gs-more > ul a { border-bottom: 0; border-radius: 6px; padding: 8px 10px; }
body.gs ul.gs-casetabs .gs-more > ul a:hover { background: var(--gesoc-slate-50); }
body.gs ul.gs-casetabs .gs-more > ul li.is-active a { background: var(--gesoc-rose-50); color: var(--gesoc-rose-700); }
/* tabelele late din formulare (ex. opisul) se derulează în formular, nu lățesc pagina */
body.gs div.form:has(> form > table.border_table, > table.border_table) { overflow-x: auto; clear: both; } /* lângă butoanele plutitoare de tipărire s-ar îngusta */

/* formulare scurte pe grilă (ex. valoare de tip generic): etichetă deasupra, explicație dedesubt */
body.gs div.gs-form-card {
    background: var(--gesoc-surface); border: 1px solid var(--gesoc-border); border-radius: var(--gesoc-radius);
    box-shadow: var(--gesoc-shadow); padding: 16px 20px; margin: 0 0 24px;
}
.gs-form-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px 16px; align-items: start; }
.gs-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.gs-field-wide { grid-column: 1 / -1; }
body.gs .gs-field label { margin: 0; font-size: 13px; font-weight: 600; color: var(--gesoc-slate-800); }
body.gs .gs-field input[type=text] { width: 100%; max-width: none; box-sizing: border-box; }
.gs-field-wide input[type=text] { max-width: 560px !important; }
.gs-field small { font-size: 12px; color: var(--gesoc-text-muted); line-height: 1.35; }
.gs-field-check { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px; align-self: center; padding-top: 18px; }
body.gs .gs-field-check label { font-weight: 500; }
.gs-form-actions { display: flex; align-items: center; gap: 14px; margin-top: 16px; }
body.gs .gs-form-actions input[type=submit] { margin: 0; }
body.gs .grid-view table.items td.gs-num { font-variant-numeric: tabular-nums; }

/* formularele de pagină (adăugare / modificare) stau într-un card, cu coloana etichetelor de aceeași lățime */
body.gs #content > div.form:not(.gs-form-card) {
    background: var(--gesoc-surface); border: 1px solid var(--gesoc-border); border-radius: var(--gesoc-radius);
    box-shadow: var(--gesoc-shadow); padding: 16px 20px; margin: 0 0 24px;
}
body.gs #content > div.form > form > table:not(.border_table) > tbody > tr > td:first-child:has(> label),
body.gs #content > div.form > form > table:not(.border_table) > tr > td:first-child:has(> label) { width: 210px; }
.gs-lead { margin: -6px 0 16px; color: var(--gesoc-text-muted); max-width: 72ch; }
.gs-options { display: flex; flex-direction: column; }
body.gs label.gs-option { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--gesoc-slate-100); font-weight: 500; cursor: pointer; margin: 0; }
body.gs label.gs-option:last-of-type { border-bottom: 0; }
body.gs label.gs-option input[type=checkbox] { margin: 0; width: 16px; height: 16px; }

/* arborii (adrese, organigramă): card, rânduri aerisite */
body.gs ul.treeview {
    background: var(--gesoc-surface); border: 1px solid var(--gesoc-border); border-radius: var(--gesoc-radius);
    box-shadow: var(--gesoc-shadow); padding: 12px 16px; margin: 8px 0 24px;
}
body.gs ul.treeview li { padding-top: 3px; padding-bottom: 3px; background-color: transparent; }
body.gs ul.treeview a { font-weight: 500; }
/* pe telefon, formularele de pagină trec pe o coloană: eticheta deasupra câmpului */
@media (max-width: 640px) {
    body.gs #content > div.form > form > table:not(.border_table),
    body.gs #content > div.form > form > table:not(.border_table) > tbody,
    body.gs #content > div.form > form > table:not(.border_table) > tbody > tr,
    body.gs #content > div.form > form > table:not(.border_table) > tbody > tr > td { display: block; width: auto !important; }
    body.gs #content > div.form > form > table:not(.border_table) > tbody > tr > td { padding: 2px 0; }
    body.gs #content > div.form input[type=text], body.gs #content > div.form input[type=password],
    body.gs #content > div.form textarea, body.gs #content > div.form select { max-width: 100%; box-sizing: border-box; }
    body.gs #content > div.form { overflow-x: auto; padding: 14px; }
}

/* formularele din secțiunile dosarului: aceeași coloană de etichete în toate tabelele, nu lățimea celei mai lungi etichete */
body.gs .ui-accordion-content table > tbody > tr > td:first-child:has(> label):not(:has(input, select, textarea)) { width: 220px; }
/* pe telefon, rândurile cu multe câmpuri depășesc ecranul: secțiunea se derulează orizontal, nu pagina */
@media (max-width: 640px) {
    body.gs .ui-accordion-content table > tbody > tr > td:first-child:has(> label):not(:has(input, select, textarea)) { width: auto; min-width: 110px; }
    body.gs .ui-accordion .ui-accordion-content { overflow-x: auto; padding: 14px; }
}

/* ---------------------------------------------------------------- organigramă */
.gs-org-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px 24px; }
.gs-org-head > div { flex: 1 1 420px; min-width: 0; }
.gs-org { margin: 0 0 24px; }
.gs-org-root {
    display: flex; align-items: center; gap: 14px; padding: 16px 20px; border-radius: var(--gesoc-radius);
    background: var(--gesoc-navy-900); color: var(--gs-nav-fg); box-shadow: var(--gesoc-shadow);
}
.gs-org-root > div { min-width: 0; }
.gs-org-icon { display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 10px; background: rgba(255, 255, 255, .1); color: #fff; }
.gs-org-icon .gs-icon { width: 22px; height: 22px; }
body.gs .gs-org-root a { display: block; color: #fff; font-size: 18px; font-weight: 700; letter-spacing: -.01em; }
body.gs .gs-org-root a:hover { color: #fff; }
.gs-org-root small { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; font-size: 12.5px; color: var(--gs-nav-muted); }
.gs-org-root small span { display: inline-flex; align-items: center; gap: 4px; }
.gs-org-sep { display: none; }
/* serviciile: fișe legate de instituție printr-o linie */
.gs-org-grid {
    position: relative; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; align-items: start;
    margin: 14px 0 0 0; padding: 14px 0 0 0; border-top: 2px solid var(--gesoc-slate-200);
}
.gs-org-unit {
    min-width: 0; padding: 14px 16px; border: 1px solid var(--gesoc-border); border-top: 3px solid var(--gesoc-cyan-500);
    border-radius: var(--gesoc-radius); background: var(--gesoc-surface); box-shadow: var(--gesoc-shadow);
}
body.gs .gs-org-unit h2 { margin: 0; font-size: 14.5px; line-height: 1.35; }
body.gs .gs-org-unit h2 a { color: var(--gesoc-navy-900); font-weight: 700; }
body.gs .gs-org-unit h3 { margin: 12px 0 6px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--gesoc-text-muted); }
.gs-org-modul { margin: 4px 0 0; font-size: 12px; color: var(--gesoc-text-muted); }
.gs-org-facts, .gs-org-row small { display: flex; flex-wrap: wrap; gap: 2px 12px; margin: 6px 0 0; font-size: 12px; color: var(--gesoc-slate-600); }
.gs-org-facts span, .gs-org-row small span { display: inline-flex; align-items: center; gap: 4px; }
.gs-org-facts .gs-icon, .gs-org-row small .gs-icon, .gs-org-root small .gs-icon { width: 14px; height: 14px; }
/* compartimentele subordonate, pe niveluri, cu linie de legătură */
ul.gs-org-sub { list-style: none; margin: 0; padding: 0; }
ul.gs-org-sub ul.gs-org-sub { margin: 4px 0 0 10px; padding-left: 12px; border-left: 1px solid var(--gesoc-slate-200); }
ul.gs-org-sub li { margin: 0; padding: 0; }
.gs-org-row { padding: 6px 10px; margin: 0 0 4px; border-radius: 8px; background: var(--gesoc-slate-50); }
body.gs .gs-org-row a { color: var(--gesoc-slate-800); font-size: 13px; font-weight: 500; }
body.gs .gs-org-row a:hover, body.gs .gs-org-unit h2 a:hover { color: var(--gesoc-link); }
.gs-org-row small { margin-top: 2px; font-size: 11.5px; }
.gs-org-empty { padding: 20px; border: 1px dashed var(--gesoc-slate-200); border-radius: var(--gesoc-radius); background: var(--gesoc-surface); color: var(--gesoc-text-muted); }
@media (max-width: 640px) {
    .gs-org-root { padding: 14px 16px; }
    .gs-org-grid { grid-template-columns: minmax(0, 1fr); }
}
/* formularul compartimentului, în dialog */
body.gs div.gs-org-form { width: min(620px, calc(100vw - 80px)); box-sizing: border-box; margin: 0; border: 0; box-shadow: none; padding: 4px 2px; }
.gs-org-form .gs-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gs-org-form .gs-form-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body.gs .gs-org-form .gs-field-wide input[type=text] { max-width: none !important; }
body.gs .gs-org-form select, body.gs .gs-org-form textarea { width: 100%; max-width: none; box-sizing: border-box; }
body.gs .gs-org-form h3.gs-form-group { margin: 18px 0 8px; padding-top: 14px; border-top: 1px solid var(--gesoc-slate-100); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--gesoc-text-muted); }
@media (max-width: 640px) {
    body.gs div.gs-org-form { width: calc(100vw - 48px); }
    .gs-org-form .gs-form-grid, .gs-org-form .gs-form-grid-4 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .gs-org-form .gs-form-grid > .gs-field:not(.gs-field-wide):only-child { grid-column: 1 / -1; }
}
body.gs .gs-org-form .gs-field { margin-bottom: 0; }

/* organigramă: comutator Schemă / Fișe */
.gs-seg { display: inline-flex; gap: 2px; padding: 3px; margin: 0 0 14px; border-radius: 9px; background: var(--gesoc-slate-100); }
body.gs .gs-seg button {
    height: 30px; padding: 0 14px; border: 0; border-radius: 7px; background: transparent; cursor: pointer;
    font: inherit; font-size: 13px; font-weight: 600; color: var(--gesoc-slate-700);
}
body.gs .gs-seg button[aria-pressed=true] { background: var(--gesoc-surface); color: var(--gesoc-navy-900); box-shadow: var(--gesoc-shadow); }
body.gs .gs-seg button:focus-visible { outline: 2px solid var(--gesoc-focus); outline-offset: 1px; }

/* organigramă: schema cu legături */
.gs-oc {
    --oc-line: var(--gesoc-slate-400); --oc-gap: 22px;
    overflow-x: auto; padding: 20px 10px 24px; border: 1px solid var(--gesoc-border); border-radius: var(--gesoc-radius);
    background: var(--gesoc-surface); box-shadow: var(--gesoc-shadow);
}
.gs-oc ul { list-style: none; margin: 0; padding: 0; }
.gs-oc li { margin: 0; }
.gs-oc-top { display: flex; flex-direction: column; align-items: center; width: fit-content; min-width: 100%; box-sizing: border-box; }
.gs-oc-top > li { display: flex; flex-direction: column; align-items: center; width: 100%; }
.gs-oc-box { box-sizing: border-box; padding: 8px 10px; border-radius: 8px; border: 1px solid var(--gesoc-border); background: var(--gesoc-surface); text-align: left; }
body.gs .gs-oc-box a { display: block; color: var(--gesoc-navy-900); font-size: 12.5px; font-weight: 600; line-height: 1.3; }
body.gs .gs-oc-box a:hover { color: var(--gesoc-link); }
.gs-oc-box small { display: flex; align-items: center; gap: 4px; margin-top: 3px; font-size: 11px; color: var(--gesoc-slate-600); }
.gs-oc-box .gs-icon { width: 13px; height: 13px; }
.gs-oc-n1 { padding: 10px 22px; background: var(--gesoc-navy-900); border-color: var(--gesoc-navy-900); text-align: center; }
body.gs .gs-oc-n1 a { color: #fff; font-size: 15px; font-weight: 700; }
body.gs .gs-oc-n1 a:hover { color: #fff; }
.gs-oc-n1 small { justify-content: center; color: var(--gs-nav-muted); }
.gs-oc-n2 { width: 100%; border-top: 3px solid var(--gesoc-cyan-500); box-shadow: var(--gesoc-shadow); }
.gs-oc-n3 { padding: 6px 8px; background: var(--gesoc-slate-50); }
.gs-oc-box { min-width: 0; overflow-wrap: anywhere; }
body.gs .gs-oc-n3 a { font-size: 12px; font-weight: 500; color: var(--gesoc-slate-800); }

/* nivelul 2: rând orizontal; din instituție coboară o linie, se ramifică spre fiecare serviciu */
.gs-oc-row { position: relative; display: flex; align-items: flex-start; padding-top: var(--oc-gap) !important; }
.gs-oc-row::before { content: ""; position: absolute; top: 0; left: 50%; height: var(--oc-gap); border-left: 2px solid var(--oc-line); }
.gs-oc-row > li { position: relative; flex: 1 1 0; min-width: 140px; max-width: 200px; padding: var(--oc-gap) 5px 0; }
.gs-oc-row > li::before, .gs-oc-row > li::after {
    content: ""; position: absolute; top: 0; width: 50%; height: var(--oc-gap); border-top: 2px solid var(--oc-line);
}
.gs-oc-row > li::before { left: 0; }
.gs-oc-row > li::after { right: 0; border-left: 2px solid var(--oc-line); }
.gs-oc-row > li:first-child::before { border-top: 0; }
.gs-oc-row > li:first-child::after { border-top-left-radius: 8px; }
.gs-oc-row > li:last-child::after { border-top: 0; border-left: 0; }
.gs-oc-row > li:last-child::before { border-right: 2px solid var(--oc-line); border-top-right-radius: 8px; }
.gs-oc-row > li:only-child::before { border: 0; }
.gs-oc-row > li:only-child::after { border-top: 0; border-left: 2px solid var(--oc-line); border-radius: 0; left: 50%; right: auto; }

/* nivelul 3 și mai jos: coloană sub serviciu, cu linie verticală și ramuri */
.gs-oc-col { margin: 0 0 0 8px !important; }
.gs-oc-col > li { position: relative; padding: 8px 0 0 10px; border-left: 2px solid var(--oc-line); }
.gs-oc-col > li:last-child { border-left-color: transparent; }
.gs-oc-col > li::before {
    content: ""; position: absolute; left: -2px; top: 0; width: 8px; height: 24px;
    border-left: 2px solid var(--oc-line); border-bottom: 2px solid var(--oc-line); border-bottom-left-radius: 8px;
}

/* ---------------------------------------------------------------- adrese: arbore cu săgeți */
.gs-adr-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.gs-adr { border: 1px solid var(--gesoc-border); border-radius: var(--gesoc-radius); background: var(--gesoc-surface); box-shadow: var(--gesoc-shadow); margin: 0 0 24px; }
.gs-adr-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding: 12px 16px; border-bottom: 1px solid var(--gesoc-slate-100); }
.gs-adr-search { position: relative; flex: 1 1 260px; max-width: 420px; margin: 0; }
.gs-adr-search .gs-icon { position: absolute; left: 10px; top: 50%; width: 16px; height: 16px; transform: translateY(-50%); color: var(--gesoc-slate-400); pointer-events: none; }
body.gs .gs-adr-search input { width: 100%; box-sizing: border-box; height: 36px; padding-left: 34px; font-size: 13.5px; }
.gs-adr-count { font-size: 12.5px; color: var(--gesoc-text-muted); }
.gs-adr-empty { margin: 0; padding: 16px; color: var(--gesoc-text-muted); }
body.gs ul.treeview.gs-adr-tree { border: 0; box-shadow: none; border-radius: 0; margin: 0; padding: 8px 8px 12px; background: transparent; }
body.gs ul.treeview.gs-adr-tree li, body.gs ul.treeview.gs-adr-tree li.last, body.gs ul.treeview.gs-adr-tree li.lastCollapsable, body.gs ul.treeview.gs-adr-tree li.lastExpandable {
    position: relative; margin: 0; padding: 0 0 0 26px; background: none !important;
}
body.gs ul.treeview.gs-adr-tree li.gs-ascuns { display: none; }
body.gs ul.treeview.gs-adr-tree ul { margin: 0 0 2px 11px; padding: 0; border-left: 1px solid var(--gesoc-slate-200); background: none; }
body.gs ul.treeview.gs-adr-tree li > span { display: block; padding: 0; background: none; }
body.gs ul.treeview.gs-adr-tree li > span > a {
    display: block; padding: 5px 8px; border-radius: 6px; color: var(--gesoc-slate-800); font-size: 13.5px; font-weight: 500; text-decoration: none;
}
body.gs ul.treeview.gs-adr-tree li > span > a:hover { background: var(--gs-row-hover); color: var(--gesoc-navy-900); }
body.gs ul.treeview.gs-adr-tree li.collapsable > span > a, body.gs ul.treeview.gs-adr-tree li.lastCollapsable > span > a { color: var(--gesoc-navy-900); font-weight: 600; }
/* săgeata: închis → dreapta, deschis → jos; frunzele au un punct */
body.gs ul.treeview.gs-adr-tree .hitarea {
    position: absolute; left: 2px; top: 4px; width: 22px; height: 22px; margin: 0; float: none; border-radius: 6px;
    background: none !important; cursor: pointer;
}
body.gs ul.treeview.gs-adr-tree .hitarea::before {
    content: ""; position: absolute; left: 8px; top: 7px; width: 6px; height: 6px;
    border-right: 2px solid var(--gesoc-slate-600); border-bottom: 2px solid var(--gesoc-slate-600); transform: rotate(-45deg); transition: transform .12s;
}
body.gs ul.treeview.gs-adr-tree .collapsable-hitarea::before { transform: rotate(45deg); top: 6px; }
body.gs ul.treeview.gs-adr-tree .hitarea:hover { background: var(--gesoc-slate-100) !important; }
body.gs ul.treeview.gs-adr-tree li:not(:has(> .hitarea))::before {
    content: ""; position: absolute; left: 11px; top: 14px; width: 4px; height: 4px; border-radius: 50%; background: var(--gesoc-slate-400);
}
body.gs ul.treeview.gs-adr-tree .placeholder { display: block; height: 20px; margin: 4px 8px; border-radius: 4px; background: linear-gradient(90deg, var(--gesoc-slate-100), var(--gesoc-slate-50), var(--gesoc-slate-100)); }

/* iconițele meniului (echivalentele liniare ale celor din meniul clasic) */
.gs-menu .gs-menu-icon { flex: none; width: 16px; height: 16px; opacity: .85; }
.gs-menu > li > span:hover .gs-menu-icon, .gs-menu > li > a:hover .gs-menu-icon, .gs-menu > li.is-open .gs-menu-icon { opacity: 1; }
.gs-menu > li > span, .gs-menu > li > a { gap: 7px; }
.gs-sub a:has(> .gs-menu-icon) { display: flex; align-items: center; gap: 8px; }
.gs-nav-side .gs-menu > li > span .gs-menu-label { flex: 1; }
.gs-nav-side .gs-menu > li > span .gs-menu-icon { width: 15px; height: 15px; }

/* butoanele standard din grile (CButtonColumn: view/update/delete.png din Yii): iconițe GESOC desenate
   cu mask, în culoarea textului; butoanele proprii ale paginilor, cu alte imagini, rămân neschimbate */
body.gs .grid-view .button-column a:has(> img[src$="gridview/view.png"]),
body.gs .grid-view .button-column a:has(> img[src$="gridview/update.png"]),
body.gs .grid-view .button-column a:has(> img[src$="gridview/delete.png"]) {
    display: inline-grid; place-items: center; width: 28px; height: 28px; margin: 0 1px; border-radius: 6px;
    color: var(--gesoc-slate-600); vertical-align: middle; text-decoration: none;
}
body.gs .grid-view .button-column a:has(> img[src$="gridview/view.png"]) > img,
body.gs .grid-view .button-column a:has(> img[src$="gridview/update.png"]) > img,
body.gs .grid-view .button-column a:has(> img[src$="gridview/delete.png"]) > img { display: none; }
body.gs .grid-view .button-column a:has(> img[src$="gridview/view.png"])::before,
body.gs .grid-view .button-column a:has(> img[src$="gridview/update.png"])::before,
body.gs .grid-view .button-column a:has(> img[src$="gridview/delete.png"])::before {
    content: ""; width: 17px; height: 17px; background: currentColor;
    -webkit-mask: var(--gs-btn-icon) center / contain no-repeat; mask: var(--gs-btn-icon) center / contain no-repeat;
}
body.gs .grid-view .button-column a:has(> img[src$="gridview/view.png"]) {
    --gs-btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
}
body.gs .grid-view .button-column a:has(> img[src$="gridview/update.png"]) {
    --gs-btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h4L19 9l-4-4L4 16v4Z'/%3E%3Cpath d='m13.5 6.5 4 4'/%3E%3C/svg%3E");
}
body.gs .grid-view .button-column a:has(> img[src$="gridview/delete.png"]) {
    --gs-btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M10 11v6M14 11v6M6 7l1 12a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2l1-12M9 7V4h6v3'/%3E%3C/svg%3E");
}
body.gs .grid-view .button-column a:has(> img[src$="gridview/view.png"]):hover,
body.gs .grid-view .button-column a:has(> img[src$="gridview/update.png"]):hover { background: var(--gesoc-slate-100); color: var(--gesoc-navy-900); }
body.gs .grid-view .button-column a:has(> img[src$="gridview/delete.png"]):hover { background: var(--gesoc-danger-bg); color: var(--gesoc-danger); }

/* formularele vechi din dialoguri (tabele cu etichetă și câmp): aceeași înălțime a câmpurilor, celule aliniate */
body.gs .ui-dialog .ui-dialog-content { min-width: 300px; box-sizing: border-box; }
body.gs .ui-dialog-content table:not(.items) { border-collapse: separate; border-spacing: 0; margin: 0; }
body.gs .ui-dialog-content table:not(.items) > tbody > tr > td,
body.gs .ui-dialog-content table:not(.items) > tr > td { padding: 5px 8px 5px 0; vertical-align: middle; background: none; }
body.gs .ui-dialog-content table:not(.items) td:has(> label):not(:has(input, select, textarea)) { white-space: nowrap; padding-right: 14px; }
body.gs .ui-dialog-content input[type=text], body.gs .ui-dialog-content input[type=password],
body.gs .ui-dialog-content input[type=number], body.gs .ui-dialog-content input:not([type]), body.gs .ui-dialog-content select {
    height: 34px; min-width: 200px; box-sizing: border-box; font-size: 13.5px;
}
body.gs .ui-dialog-content input[type=text], body.gs .ui-dialog-content input:not([type]) { padding: 0 10px; }
body.gs .ui-dialog-content textarea { min-width: 200px; box-sizing: border-box; padding: 6px 10px; font-size: 13.5px; }
body.gs .ui-dialog-content .errorMessage { font-size: 12px; margin-top: 3px; }
body.gs .ui-dialog-content input[type=submit] { margin-top: 6px; }
@media (max-width: 640px) {
    body.gs .ui-dialog { max-width: calc(100vw - 16px); }
    body.gs .ui-dialog-content input[type=text], body.gs .ui-dialog-content select, body.gs .ui-dialog-content textarea { min-width: 0; max-width: 100%; }
}
/* câmpurile de dată au în view-uri style="height:20px" */
body.gs .ui-dialog-content input.hasDatepicker { height: 34px !important; min-width: 140px; padding: 0 10px; }

/* telefon: formularele din secțiunile dosarului (tabele de așezare, nu de date) trec pe o coloană,
   cu eticheta deasupra câmpului, ca să nu iasă câmpurile din dreapta în afara ecranului */
@media (max-width: 640px) {
    body.gs .ui-accordion-content table:not(.items):not(.border_table):not(.plan),
    body.gs .ui-accordion-content table:not(.items):not(.border_table):not(.plan) > tbody,
    body.gs .ui-accordion-content table:not(.items):not(.border_table):not(.plan) > tbody > tr,
    body.gs .ui-accordion-content table:not(.items):not(.border_table):not(.plan) > tbody > tr > td,
    body.gs .ui-accordion-content table:not(.items):not(.border_table):not(.plan) > tbody > tr > th { display: block; width: auto !important; }
    body.gs .ui-accordion-content input[type=text], body.gs .ui-accordion-content select, body.gs .ui-accordion-content textarea { max-width: 100%; box-sizing: border-box; }
    body.gs .ui-accordion-content .invis { display: none !important; }
}
