/* Union foundation components, hand-ported from public-pages.css and
   dafina-brand.css. Shared namespaces deliberately retain visual parity. */
.public-pages { font-family: var(--dafina-font); font-size: var(--public-type-body); line-height: 1.65; color: var(--public-ink); background: var(--public-bg); }
.public-pages :is(h1,h2,h3,h4) { color: var(--dafina-heading); font-weight: 700; line-height: 1.3; letter-spacing: var(--public-tracking); text-wrap: balance; }
.public-pages h1 { font-size: var(--public-type-page-title); }
.public-pages h2 { font-size: var(--public-type-section); }
.public-pages :is(p,li,dd) { text-wrap: pretty; overflow-wrap: anywhere; }
.public-pages a { color: var(--public-brand); }
.public-pages :focus-visible { outline: 3px solid var(--public-focus); outline-offset: 2px; }
.public-pages [hidden] { display: none !important; }
.public-pages :is(small,.public-form-help) { font-size: var(--public-type-label); color: var(--public-muted); }
.public-shell { max-inline-size: 78rem; margin-inline: auto; padding-inline: var(--public-space-xl); }
.public-pages main { padding-block: var(--public-space-lg) var(--public-space-xl); }
.public-topbar { display: flex; align-items: center; flex-wrap: wrap; gap: var(--public-space-xs) var(--public-space-md); min-block-size: 4.25rem; padding-block: var(--public-space-sm); padding-inline: max(var(--public-space-md), calc((100vw - 74rem) / 2)); border-block-end: 1px solid var(--public-border); background: var(--public-surface); }
.public-brand { display: inline-flex; align-items: center; gap: .7rem; min-block-size: var(--dafina-control-height); color: var(--dafina-heading); text-decoration: none; font-size: var(--dafina-type-lg); font-weight: 700; white-space: nowrap; }
.public-brand-mark { display: block; inline-size: 2.25rem; block-size: 2.25rem; object-fit: contain; flex: none; }
.portal-bar-end { display: flex; align-items: center; gap: var(--public-space-xs); margin-inline-start: auto; }
.public-pages :is(button,.button,.public-button-primary) { display: inline-flex; align-items: center; justify-content: center; gap: var(--public-space-xs); min-block-size: var(--dafina-control-height); padding-block: .5rem; padding-inline: 1.125rem; border: 1px solid transparent; border-radius: var(--public-radius-pill); background: var(--public-action); color: var(--public-action-ink); font: inherit; font-weight: 700; line-height: 1.3; text-align: center; text-decoration: none; cursor: pointer; touch-action: manipulation; transition: background-color .15s ease, border-color .15s ease; }
.public-pages :is(button,.button):hover { background: var(--public-action-hover); color: var(--public-action-ink); }
.public-pages :is(button,.button):disabled { opacity: .55; cursor: not-allowed; }
.public-pages :is(.button-secondary,.public-secondary) { background: var(--public-surface); color: var(--dafina-heading); border-color: var(--public-border-strong); }
.public-pages :is(.button-secondary,.public-secondary):hover { background: var(--public-hover); color: var(--dafina-heading); border-color: var(--public-brand); }
.public-pages .button-danger { background: var(--public-danger-action); color: var(--public-action-ink); }
.public-pages .button-danger:hover { background: var(--union-danger-hover); }
.public-pages label { display: block; font-size: var(--public-type-label); font-weight: 700; color: var(--public-ink); }
.public-field { min-inline-size: 0; max-inline-size: 26rem; }
.public-pages input:not([type=hidden],[type=checkbox],[type=radio],[type=file],[type=range],[type=color]), .public-pages select, .public-pages textarea { display: block; inline-size: 100%; min-inline-size: 0; min-block-size: var(--dafina-control-height); margin-block-start: var(--public-space-xs); padding-block: .55rem; padding-inline: .875rem; border: 1px solid var(--public-field-border); border-radius: var(--public-radius-field); background-color: var(--public-surface); color: var(--public-ink); font: inherit; font-weight: 400; line-height: 1.5; }
.public-pages textarea { min-block-size: 7rem; resize: vertical; }
.public-pages :is(input,select,textarea):focus-visible { outline: 2px solid var(--public-focus); outline-offset: 1px; border-color: var(--public-focus); box-shadow: 0 0 0 3px var(--public-focus-ring); }
.public-pages :is(input,select,textarea)[aria-invalid=true] { border-color: var(--public-danger-ink); }
.public-pages :is(input,textarea)::placeholder { color: var(--public-muted); }
.public-card { display: flex; flex-direction: column; gap: var(--public-space-sm); min-inline-size: 0; padding: var(--public-space-lg); border: 1px solid var(--public-border); border-radius: var(--public-radius); background: var(--public-surface); box-shadow: var(--public-shadow); }
.public-card :is(h2,p) { margin: 0; }
.dafina-flat { padding-block-start: var(--public-space-md); border: 0; border-block-start: 1px solid var(--public-border); border-radius: 0; background: none; box-shadow: none; }
.public-request-list { overflow: auto; border: 1px solid var(--public-border); border-radius: var(--dafina-radius-sm); background: var(--public-surface); box-shadow: none; }
.public-request-list table { inline-size: 100%; border-collapse: collapse; text-align: start; }
.public-request-list :is(th,td) { padding-block: var(--public-space-sm); padding-inline: var(--public-space-md); border-block-end: 1px solid var(--public-border); text-align: start; vertical-align: middle; }
.public-request-list th { font-size: var(--public-type-label); color: var(--public-muted); font-weight: 700; }
.public-request-list tbody tr:last-child td { border-block-end: 0; }
.public-request-list tbody tr:hover { background: var(--public-hover); }
.public-request-list .num { text-align: end; white-space: nowrap; }
.public-status-pill { display: inline-flex; align-items: center; align-self: flex-start; inline-size: fit-content; gap: var(--public-space-xs); padding-block: .2rem; padding-inline: .7rem; border: 1px solid transparent; border-radius: var(--public-radius-pill); background: var(--public-tint); color: var(--dafina-heading); font-size: var(--public-type-label); font-weight: 700; }
.public-status-pill[data-status=accepted] { background: var(--public-success-bg); color: var(--public-success-ink); }
.public-status-pill[data-status=submitted] { background: var(--public-status-bg); color: var(--public-status-ink); }
.public-status-pill[data-status=declined] { background: var(--public-danger-bg); color: var(--public-danger-ink); }
.public-pages .public-notice { padding: var(--public-space-md); border: 1px solid var(--public-border); border-inline-start: 4px solid var(--public-brand); border-radius: var(--public-radius-field); background: var(--public-tint); color: var(--public-ink); }
.public-pages .public-notice[role=alert] { border-inline-start-color: var(--public-danger-ink); background: var(--public-danger-bg); color: var(--public-danger-ink); }
.public-empty { max-inline-size: 46rem; padding: var(--public-space-xl); border-block: 1px solid var(--public-border); text-align: center; color: var(--public-muted); }
.public-empty h2 { color: var(--dafina-heading); }
.public-actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--public-space-sm); }
.dafina-lang { position: relative; flex: none; margin: 0; padding: 0; border: 0; background: none; }
.dafina-lang > summary { display: inline-flex; align-items: center; gap: .5rem; min-block-size: var(--dafina-control-height); padding-inline: .875rem; border: 1px solid var(--public-border); border-radius: var(--dafina-radius-pill); background: var(--public-surface); color: var(--public-ink); font: inherit; font-size: var(--dafina-type-sm); font-weight: 700; line-height: 1; cursor: pointer; white-space: nowrap; list-style: none; user-select: none; touch-action: manipulation; }
.dafina-lang > summary::-webkit-details-marker { display: none; }
.dafina-lang > summary::after { content: ""; inline-size: .45rem; block-size: .45rem; margin-inline-start: .125rem; border-inline-end: 2px solid currentColor; border-block-end: 2px solid currentColor; transform: translateY(-.15rem) rotate(45deg); opacity: .7; }
[dir=rtl] .dafina-lang > summary::after { transform: translateY(-.15rem) rotate(315deg); }
.dafina-lang[open] > summary::after { transform: translateY(.1rem) rotate(225deg); }
[dir=rtl] .dafina-lang[open] > summary::after { transform: translateY(.1rem) rotate(135deg); }
.dafina-lang > summary:hover { background: var(--public-hover); }
.dafina-lang-flag { display: block; flex: none; inline-size: 1.5rem; block-size: 1rem; border-radius: var(--union-radius-flag); box-shadow: var(--union-shadow-flag); object-fit: cover; }
.dafina-lang .dafina-lang-list { position: absolute; inset-block-start: calc(100% + .375rem); inset-inline-end: 0; z-index: 30; display: grid; gap: .125rem; inline-size: max-content; min-inline-size: 12rem; max-inline-size: calc(100vw - 2rem); margin: 0; padding: .375rem; border: 1px solid var(--public-border); border-radius: var(--dafina-radius-md); background: var(--public-surface); box-shadow: var(--union-shadow-picker); }
.dafina-lang-list > a { display: flex; align-items: center; gap: .625rem; min-block-size: var(--dafina-control-height); padding-inline: .75rem; border-radius: var(--dafina-radius-sm); color: var(--public-ink); font-size: var(--public-type-body); text-decoration: none; white-space: nowrap; }
.public-pages .dafina-lang-list > a { color: var(--public-ink); }
.dafina-lang-list > a:hover { background: var(--public-hover); }
.dafina-lang-list > a[aria-current] { background: var(--public-tint); font-weight: 700; }
/* Signed-in account menu: the language picker's disclosure, reused. */
.union-account { position: relative; flex: none; margin: 0; padding: 0; border: 0; background: none; }
.union-account > summary { display: inline-flex; align-items: center; gap: .5rem; box-sizing: border-box; min-block-size: var(--dafina-control-height); min-inline-size: var(--dafina-control-height); padding-inline: .25rem .875rem; border: 1px solid var(--public-border); border-radius: var(--dafina-radius-pill); background: var(--public-surface); color: var(--public-ink); font: inherit; font-size: var(--dafina-type-sm); font-weight: 700; line-height: 1; cursor: pointer; white-space: nowrap; list-style: none; user-select: none; touch-action: manipulation; }
.union-account > summary::-webkit-details-marker { display: none; }
.union-account > summary:hover { background: var(--public-hover); }
.union-account > summary:focus-visible { outline: 3px solid var(--public-focus); outline-offset: 2px; }
.union-account-avatar { display: inline-grid; place-items: center; flex: none; inline-size: 2.25rem; block-size: 2.25rem; border-radius: var(--dafina-radius-pill); background: var(--public-action); color: var(--public-action-ink); font-size: var(--public-type-label); font-weight: 700; letter-spacing: 0; }
.union-account-name { max-inline-size: 14rem; overflow: hidden; text-overflow: ellipsis; }
.union-account-panel { position: absolute; inset-block-start: calc(100% + .375rem); inset-inline-end: 0; z-index: 30; display: grid; gap: .25rem; inline-size: max-content; min-inline-size: 15rem; max-inline-size: calc(100vw - 2rem); padding: .5rem; border: 1px solid var(--public-border); border-radius: var(--dafina-radius-md); background: var(--public-surface); box-shadow: var(--union-shadow-picker); }
.union-account-who { display: grid; gap: .125rem; margin: 0; padding: .5rem .75rem; border-block-end: 1px solid var(--public-border); }
.union-account-who > span, .union-account-who > small { color: var(--public-muted); font-size: var(--public-type-label); }
.union-account-who > bdi { color: var(--public-ink); font-weight: 700; overflow-wrap: anywhere; }
.union-account-link { display: flex; align-items: center; min-block-size: var(--dafina-control-height); padding-inline: .75rem; border-radius: var(--dafina-radius-sm); color: var(--public-ink); font-size: var(--public-type-body); text-decoration: none; }
.union-account-link:hover { background: var(--public-hover); }
.union-account-link:focus-visible { outline: 3px solid var(--public-focus); outline-offset: -3px; }
.union-account-panel form { display: block; margin: 0; padding: .25rem .25rem 0; }
.union-account-panel .union-account-signout { inline-size: 100%; }
@media (max-width: 40rem) { .union-account-name { display: none; } .union-account > summary { padding-inline: .25rem; } }
.foundation-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,28rem),1fr)); gap: var(--public-space-xl); }
.foundation-grid > section { min-inline-size: 0; }
.foundation-grid h2 { margin-block: 0 var(--public-space-sm); }
.foundation-grid section > :is(p,div,label) + :is(p,div,label) { margin-block-start: var(--public-space-sm); }
.foundation-swatch { display: inline-block; padding: var(--public-space-sm) var(--public-space-md); border-radius: var(--dafina-radius-sm); background: var(--public-action); color: var(--public-on-action); }
.foundation-swatch-tint { background: var(--public-tint); color: var(--public-ink); }
.foundation-swatch-accent { background: var(--dafina-accent-tint); color: var(--dafina-accent); }
@media (max-width: 30rem) { .public-shell { padding-inline: var(--public-space-md); } .public-topbar { padding-inline: var(--public-space-md); } .foundation-grid { gap: var(--public-space-lg); } }
@media (forced-colors: active) { .public-pages :focus-visible { outline: 2px solid CanvasText; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }

/* Native artwork fallback for strict browser ceremonies; opt in by surface. */
.union-inline-art { display: none; }
/* Optional shared chrome actions and stacked identity. */
.union-bar-quiet { display: inline-flex; align-items: center; min-block-size: var(--dafina-control-height); padding-inline: var(--public-space-sm); font-weight: 700; white-space: nowrap; }
.union-identity { display: flex; flex-direction: column; align-items: center; gap: var(--public-space-xs); color: var(--dafina-heading); font-size: var(--public-type-total); font-weight: 700; }
.union-identity-mark, .union-identity .public-brand-mark { inline-size: 5rem; block-size: 5rem; }
.union-bar-actions { display: flex; align-items: center; gap: var(--public-space-xs); }

/* Shared hamyar.space 09 identity; dimensions preserve the approved ratio. */
.hamyar-brand { display: block; inline-size: 12.5rem; max-inline-size: 42vw; }
.hamyar-logo { display: block; inline-size: 100%; block-size: auto; }
.hamyar-logo-white { display: none; }
@media (prefers-color-scheme: dark) { .hamyar-logo-color { display: none; } .hamyar-logo-white { display: block; } }
.public-brand:has(.hamyar-brand) { min-block-size: var(--dafina-control-height); min-inline-size: var(--dafina-control-height); }
.public-pages:lang(fa), .public-pages:lang(ku) { font-family: "Vazirmatn", sans-serif; }
.public-pages:lang(zh) { font-family: "Noto Sans", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", sans-serif; }
.dafina-lang-list { max-block-size: min(28rem, 70dvh); overflow-y: auto; overscroll-behavior: contain; }
@media (max-width: 760px) { .hamyar-brand { inline-size: 10rem; } }

/* Compact navigation keeps a single mark, with the same accessible brand. */
.hamyar-menu-mark { display: none; }
@media (max-width: 420px) {
 .public-brand .hamyar-brand { inline-size: 2.25rem; }
 .public-brand .hamyar-logo { display: none; }
 .public-brand .hamyar-menu-mark { display: block; inline-size: 2.25rem; block-size: 2.25rem; }
}
