/* Shared portal geometry. Only the content changes between operational pages. */
:root { --portal-nav-expanded-width: 248px; --portal-nav-width: var(--portal-nav-expanded-width); --portal-rail-width: 76px; --portal-duration: 220ms; }
html { font-size: 16px; }
html[data-navigation="compact"] { --portal-nav-width: var(--portal-rail-width); }
.portal-app { background: #f4f7f8; color: #233b48; }
.portal-app .page-shell { overflow: clip; background: #f4f7f8; }
.portal-app .page-shell__glow, .portal-app .page-shell__grid { display: none; }
.portal-layout { min-height: 100dvh; padding-left: var(--portal-nav-width); }
.portal-body { position: relative; min-width: 0; min-height: 100dvh; display: flex; flex-direction: column; isolation: isolate; overflow: hidden; }
.portal-body::before, .portal-body::after { content: ""; position: absolute; z-index: -1; pointer-events: none; border-radius: 50%; filter: blur(3px); opacity: .5; }
.portal-body::before { top: -170px; right: 9%; width: 360px; height: 360px; background: radial-gradient(circle, rgba(142,205,179,.22), rgba(142,205,179,0) 68%); animation: portal-orbit 16s ease-in-out infinite alternate; }
.portal-body::after { bottom: 7%; left: 12%; width: 300px; height: 300px; background: radial-gradient(circle, rgba(118,84,232,.12), rgba(118,84,232,0) 70%); animation: portal-orbit-reverse 19s ease-in-out infinite alternate; }
.portal-content { width: min(100%, 1600px); margin: 0 auto; padding: 32px clamp(20px, 3vw, 44px) 48px; flex: 1; outline: none; animation: portal-content-in 420ms cubic-bezier(.2,.75,.25,1) both; }
.portal-content > :is(.directory-page, .profile-page, .import-page, .workspace__main) { width: 100%; padding: 0; margin: 0; min-height: 0; animation: none; }
.portal-content > .directory-page > .panel:first-child, .portal-content > .panel:first-child { margin-top: 0; }
.portal-sidebar { position: fixed; z-index: 50; inset: 0 auto 0 0; width: var(--portal-nav-width); height: 100dvh; display: flex; flex-direction: column; padding: 24px 12px 12px; color: #b8cbcd; background: #153335; border-right: 1px solid #254346; }
.portal-sidebar-resizer { position: fixed; z-index: 55; top: 0; bottom: 0; left: calc(var(--portal-nav-width) - 3px); width: 7px; border: 0; padding: 0; background: transparent; cursor: col-resize; }
.portal-sidebar-resizer:hover, body.portal-resizing .portal-sidebar-resizer { background: #a8d89c66; }
body.portal-resizing, body.portal-resizing * { cursor: col-resize !important; user-select: none !important; }
.portal-brand { display: flex; align-items: center; gap: 22px; min-height: 44px; margin: 0 8px 24px; color: #fff; overflow: hidden; }
.portal-brand__mark { width: 34px; height: 38px; flex: 0 0 34px; display: grid; place-content: center; position: relative; color: #c3e9c3; font-size: 30px; font-weight: 800; letter-spacing: -.1em; }
.portal-brand__mark::after { display: none; }
.portal-brand strong { display: block; font-size: 21px; letter-spacing: .03em; }
.portal-brand small { display: block; margin-top: 2px; color: #91aeb0; font-size: 11px; font-weight: 500; }
.portal-role { display: flex; align-items: center; gap: 12px; margin: 0 12px 24px; font-size: 18px; line-height: 1.4; font-weight: 600; letter-spacing: 0; white-space: nowrap; }
.portal-role > span:first-child { display: block; flex: 0 0 7px; height: 7px; border-radius: 50%; background: #a6d99c; box-shadow: 0 0 0 4px #a6d99c12; }
.portal-nav { overflow-y: auto; overflow-x: hidden; flex: 1; scrollbar-width: thin; scrollbar-color: #3a5759 transparent; padding: 0 2px; }
.portal-nav-group + .portal-nav-group { margin-top: 22px; }
.portal-nav-heading { margin: 0 12px 10px; font-size: 13px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; color: #78989b; }
.portal-nav-item { position: relative; display: flex; align-items: center; gap: 12px; width: 100%; min-height: 50px; margin: 3px 0; padding: 12px 14px; border: 0; border-radius: 10px; color: inherit; background: transparent; cursor: pointer; text-align: left; font: 650 17px/1.45 "Manrope", sans-serif; text-decoration: none; }
.portal-nav-item:hover { color: #fff; background: #ffffff09; }
.portal-nav-item.is-active { background: #d2eccb; color: #143b31; }
.portal-nav-item:focus-visible { outline: 2px solid #d2eccb; outline-offset: -2px; }
.portal-icon { display: block; flex: 0 0 20px; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.portal-nav-label { display: block; min-width: 0; white-space: normal; overflow-wrap: anywhere; overflow: hidden; }
.portal-sidebar-bottom { flex: 0 0 auto; margin-top: 18px; border-top: 1px solid #ffffff12; padding: 8px 2px 0; background: #153335; }
.portal-sidebar-bottom form { margin: 0; }
.portal-logout { color: #a8bfc1; }
.portal-logout:hover { color: #ffd8cf; background: #c5584914; }
.portal-collapse { margin-top: 8px; color: #cbdadd; background: #ffffff08; }
.portal-collapse .portal-icon { transition: transform var(--portal-duration) ease; }
.portal-topbar { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 150px; padding: 32px clamp(32px,4vw,72px); overflow: hidden; background: linear-gradient(110deg, #ffffffed, #f7fbf9e8, #ffffffed); background-size: 220% 100%; border-bottom: 1px solid #e5ecee; animation: portal-header-shimmer 14s ease-in-out infinite; }
.portal-topbar::before { display: none; }
.portal-topbar::after { content: ""; position: absolute; right: 14%; bottom: -95px; width: 320px; height: 180px; border-radius: 50%; background: radial-gradient(ellipse, rgba(133,190,170,.16), transparent 70%); animation: portal-header-glow 10s ease-in-out infinite alternate; pointer-events: none; }
.portal-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; font-size: 28px !important; line-height: 1.35; font-weight: 600; }
.portal-breadcrumb a { color: #83959d; }
.portal-breadcrumb > span:last-child { color: #34515d; font-weight: 700; }
.portal-breadcrumb > span[aria-hidden] { color: #bcc9cc; }
.portal-user { display: flex; gap: 12px; align-items: center; flex-shrink: 0; }
.portal-user__name { max-width: 330px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: right; color: #314b57; font-size: 26px !important; font-weight: 750; }
.portal-user__name small { display: block; color: #71858e; font-weight: 600; font-size: 20px !important; margin-top: 6px; }
.portal-avatar { display: grid; place-items: center; width: 62px; height: 62px; border: 1px solid #d7e6df; border-radius: 18px; color: #39705c; background: #edf5ee; font-size: 22px; font-weight: 800; }
.portal-footer { display: flex; justify-content: space-between; gap: 16px; border-top: 1px solid #dbe5e8; margin: 0 clamp(20px,3vw,44px); padding: 28px 0 34px; color: #526d78; font-size: 15px; line-height: 1.5; font-weight: 600; }
.portal-nav-scrim { display: none; }
.portal-skip { position: fixed; z-index: 100; top: 10px; left: 10px; padding: 12px; background: #fff; color: #143b31; border-radius: 8px; transform: translateY(-160%); }
.portal-skip:focus { transform: none; }
html[data-navigation="compact"] .portal-nav-label { width: 0; opacity: 0; white-space: nowrap; }
html[data-navigation="compact"] .portal-sidebar-resizer { display: none; }
html[data-navigation="compact"] .portal-nav-item { gap: 0; justify-content: center; padding-inline: 8px; }
html[data-navigation="compact"] .portal-brand { margin-inline: 8px; gap: 0; }
html[data-navigation="compact"] .portal-role { justify-content: center; gap: 0; margin-inline: 0; }
html[data-navigation="compact"] .portal-nav-heading { height: 1px; overflow: hidden; color: transparent; background: #ffffff12; margin: 16px 10px 8px; }
html[data-navigation="compact"] .portal-collapse .portal-icon { transform: rotate(180deg); }
.workspace--reviewer { --accent: #7654e8; --accent-rgb: 118,84,232; }
.workspace--reviewer .portal-nav-item.is-active { color: #fff; background: #7654e8; }
.workspace--reviewer .portal-role > span:first-child { background: #b59cff; box-shadow: 0 0 0 4px #7654e833; }
/* Native title works with mouse; aria-label keeps the icon rail accessible. */
.portal-motion-ready .portal-sidebar { transition: width var(--portal-duration) cubic-bezier(.2,.7,.2,1); }
.portal-motion-ready .portal-layout { transition: padding-left var(--portal-duration) cubic-bezier(.2,.7,.2,1); }
.portal-motion-ready body.portal-resizing .portal-sidebar,
.portal-motion-ready body.portal-resizing .portal-layout { transition: none; }
.portal-motion-ready .portal-nav-item { transition: color 140ms ease, background 140ms ease; }
.portal-messages:empty { display: none; }
.portal-messages { display: grid; gap: 8px; margin-bottom: 20px; }
.portal-messages .message { margin: 0; font-size: 13px; border-radius: 10px; box-shadow: none; }
.portal-app :is(.panel,.profile-card,.import-card,.form-section,.task-card,.metrics article,.report-row,.container-report-card):hover { transform: none; }
.portal-app :is(.panel,.profile-card,.import-card,.form-section,.metrics article) { box-shadow: 0 3px 16px #173c4910; border: 1px solid #e3eaed; background: #fff; animation: none; }
.portal-app :is(.panel,.metrics article)::before, .portal-app .button::after, .portal-app .report-row::before { display: none; }
.portal-app .panel { padding: 26px; border-radius: 16px; }
.portal-app h1 { font-size: clamp(24px,2.4vw,32px); line-height: 1.2; letter-spacing: -.04em; }
.portal-app .eyebrow { font-size: 10px; letter-spacing: .13em; }
.portal-app .section-heading { align-items: flex-start; gap: 20px; flex-wrap: wrap; }
.portal-app :is(.section-actions,.report-row__actions,.dialog-actions,.form-actions,.container-strip__actions,.archive-package-actions) { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.portal-app .section-actions { margin-left: auto; }
.portal-app .button { min-height: 40px; padding: 10px 15px; border-radius: 9px; font-size: 12px; line-height: 1.4; box-shadow: none; transform: none; transition: background 150ms ease, box-shadow 150ms ease, color 150ms ease; }
.portal-app .button:hover { transform: none; filter: brightness(.97); box-shadow: 0 2px 6px #16324415; }
.portal-app .button { position: relative; overflow: hidden; }
.portal-app .button::before { content: ""; position: absolute; inset: 0 auto 0 -110%; width: 70%; background: linear-gradient(105deg, transparent, rgba(255,255,255,.34), transparent); transform: skewX(-18deg); transition: left 480ms ease; }
.portal-app .button:hover::before { left: 135%; }
.portal-app .button:active { transform: none; }
.portal-app .button--ghost { background: #f3f7f8; color: #41626c; border: 1px solid #e1eaed; }
.portal-app .button--danger { background: #fff0ee; color: #b05245; border: 1px solid #f0d7d1; }
.portal-app .button:disabled { cursor: not-allowed; }
.portal-app .back-link { display: inline-flex; min-height: 36px; align-items: center; margin: 0 0 16px; font-size: 12px; }
.portal-app .list-filters { margin-bottom: 20px; padding: 16px; border: 1px solid #e9eef0; border-radius: 12px; background: #f8fafb; align-items: end; }
.portal-app .list-filters :is(input,select) { min-height: 40px; box-shadow: none; background: #fff; font-size: 12px; }
.portal-app .report-row { transform: none; padding: 16px 0; }
.portal-app .report-row:hover .report-row__avatar, .portal-app .task-card:hover :is(.status,.priority) { transform: none; }
.portal-app .task-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,250px),1fr)); }
.portal-app .task-card { display: flex; flex-direction: column; gap: 8px; border-radius: 12px; background: #fff; }
.portal-app .task-card h3 { margin: 8px 0 0; }
.portal-app .task-card__actions { margin-top: auto; padding-top: 12px; }
.portal-app .task-card.is-selected { border-color: var(--accent); background: rgba(var(--accent-rgb),.04); }
.portal-app .status, .portal-app .priority { font-size: 10px; text-transform: none; letter-spacing: 0; line-height: 1.5; }
.portal-app .counter { display: inline-grid; place-items: center; min-height: 30px; min-width: 30px; }
.portal-app .empty-state { padding: 32px 20px; color: #85959d; font-size: 13px; line-height: 1.7; text-align: center; }
.portal-app .decision-dialog { border: 1px solid #e2e9eb; border-radius: 18px; box-shadow: 0 32px 100px #152f3a30; max-height: calc(100dvh - 48px); }
.portal-app dialog[open] { animation: portal-dialog-in 180ms ease-out; }
.portal-app dialog::backdrop { background: #102c3b66; backdrop-filter: blur(3px); }
.portal-app .dialog-close { display: grid; place-items: center; min-width: 36px; min-height: 36px; }
.portal-app .form-actions { justify-content: flex-end; padding-top: 20px; border-top: 1px solid #e7edef; }
.portal-app .form-section { box-shadow: none; border-radius: 12px; background: #fafcfc; }
.portal-app .form-section:hover, .portal-app .photo-upload-row:hover { transform: none; box-shadow: none; }
.portal-app .import-page { display: block; }
.portal-app .import-card { max-width: 880px; margin: 0 auto; }
.portal-app .profile-card { border-radius: 16px; }
.portal-app .is-live-updated { animation: none; }
.portal-app .team-list { grid-template-columns: repeat(auto-fit,minmax(min(100%,240px),1fr)); }
.portal-app .team-card { min-height: 140px; border-radius: 12px; text-align: left; }
.portal-app .act-workspace { max-width: none; }
.portal-app .act-grid { grid-template-columns: 200px minmax(270px,1fr) minmax(320px,1fr); gap: 16px; }
.portal-app .act-preview { top: 20px; }
.portal-app .act-library, .portal-app .act-editor, .portal-app .act-preview { border-radius: 14px; box-shadow: none; }
.portal-notice { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 22px; margin-bottom: 20px; border: 1px solid #dce8e2; border-radius: 12px; color: #3b6b58; background: #eff6f0; font-size: 19px; line-height: 1.5; font-weight: 600; }
.assignment-panel { border: 1px solid #e0e9ec; border-radius: 12px; margin-bottom: 20px; background: #f9fbfc; }
.assignment-panel > summary { cursor: pointer; padding: 16px; font-size: 13px; font-weight: 700; }
.assignment-panel > summary span { margin-left: 12px; font-size: 11px; color: #80959d; font-weight: 500; }
.assignment-panel .bulk-assign { margin: 0; border: 0; box-shadow: none; border-top: 1px solid #e6edef; border-radius: 0 0 12px 12px; }
.dashboard-intro { display: flex; justify-content: space-between; gap: 24px; align-items: center; margin: 4px 0 28px; }
.dashboard-intro p:last-child { margin: 12px 0 0; font-size: 13px; line-height: 1.7; color: #7d9199; }
.overview-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; margin-bottom: 26px; }
.overview-metric { display: grid; grid-template-columns: 1fr auto; align-items: start; gap: 14px; padding: 22px; background: #fff; border: 1px solid #e2e9ec; border-radius: 14px; transition: border-color 150ms, box-shadow 150ms; }
.overview-metric:hover { border-color: #b4d5c6; box-shadow: 0 10px 28px #23483916; transform: translateY(-3px); }
.overview-metric > span { font-size: 12px; color: #6c828d; }
.overview-metric .portal-icon { color: #83a79a; }
.overview-metric strong { font-size: 30px; letter-spacing: -.04em; font-weight: 700; line-height: 1; }
.overview-metric small { grid-column: 1/-1; color: #9aa8ae; font-size: 10px; }
.overview-metric--accent { background: #eaf4eb; border-color: #d0e3d0; }
.overview-columns { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(270px,1fr); gap: 24px; align-items: start; }
.overview-columns .panel { margin: 0; }
.overview-queue { display: grid; }
.overview-queue-row { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 14px; padding: 18px 0; border-top: 1px solid #eef2f3; }
.overview-queue-row > div { min-width: 0; }
.overview-queue-row strong { display: block; font-size: 13px; line-height: 1.6; }
.overview-queue-row small { display: block; font-size: 11px; color: #8b9ba3; margin-top: 4px; }
.overview-queue-row > .portal-icon { color: #97aaa8; }
.overview-queue-row:hover strong { color: var(--accent); }
.overview-aside { display: grid; gap: 20px; }
.overview-shortcuts { display: grid; gap: 0; }
.overview-shortcut { display: flex; gap: 13px; align-items: center; padding: 16px 0; border-top: 1px solid #edf1f2; }
.overview-shortcut > .portal-icon { color: #72988a; }
.overview-shortcut strong { display: block; font-size: 12px; }
.overview-shortcut small { display: block; margin-top: 4px; color: #8b9ba3; font-size: 11px; line-height: 1.6; }
.overview-shortcut:hover strong { color: var(--accent); }
@keyframes portal-content-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes portal-header-shimmer { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
@keyframes portal-header-glow { from { transform: translateX(-35px) scale(.9); opacity: .45; } to { transform: translateX(70px) scale(1.12); opacity: .9; } }
@keyframes portal-orbit { from { transform: translate3d(-20px, 10px, 0) scale(.92); } to { transform: translate3d(60px, 45px, 0) scale(1.08); } }
@keyframes portal-orbit-reverse { from { transform: translate3d(30px, 20px, 0) scale(1); } to { transform: translate3d(-55px, -30px, 0) scale(.86); } }
@keyframes portal-dialog-in { from { opacity: 0; transform: translateY(6px) scale(.99); } to { opacity: 1; transform: none; } }
@media (max-width: 1400px) { .portal-app .act-grid { grid-template-columns: 190px minmax(260px,1fr); } .portal-app .act-preview { grid-column: 1/-1; position: static; } }
@media (max-width: 1200px) { .overview-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); } .overview-columns { grid-template-columns: 1fr; } .overview-aside { grid-template-columns: 1fr 1fr; } }
@media (max-width: 980px) { .portal-user__name { display: none; } .portal-app .report-row { grid-template-columns: 42px minmax(0,1fr); } .portal-app .report-row--head { display: none; } .portal-app .report-row > .status, .portal-app .report-row__actions { grid-column: 2; justify-self: start; } }
@media (max-width: 720px) {
    :root { --portal-nav-width: var(--portal-rail-width); }
    .portal-sidebar-resizer { display: none; }
    html[data-navigation="expanded"] .portal-sidebar { width: 248px; box-shadow: 20px 0 70px #102c3b26; }
    html:not([data-navigation="expanded"]) .portal-nav-label { width: 0; opacity: 0; white-space: nowrap; }
    html:not([data-navigation="expanded"]) .portal-nav-item { justify-content: center; padding-inline: 8px; gap: 0; }
    html:not([data-navigation="expanded"]) .portal-brand { margin-inline: 8px; gap: 0; }
    html:not([data-navigation="expanded"]) .portal-role { justify-content: center; gap: 0; margin-inline: 0; }
    html:not([data-navigation="expanded"]) .portal-nav-heading { height: 1px; overflow: hidden; color: transparent; background: #ffffff12; margin: 16px 10px 8px; }
    html:not([data-navigation="expanded"]) .portal-collapse .portal-icon { transform: rotate(180deg); }
    html[data-navigation="expanded"] .portal-nav-scrim { display: block; position: fixed; z-index: 40; inset: 0; border: 0; background: #16343b40; }
    .portal-topbar { min-height: 64px; padding: 12px 16px; gap: 8px; }
    .portal-breadcrumb { gap: 5px; font-size: 10px; }
    .portal-breadcrumb a, .portal-breadcrumb > span[aria-hidden] { display: none; }
    .portal-content { padding: 24px 16px 32px; }
    .portal-footer { margin: 0 16px; padding: 20px 0 24px; font-size: 12px; flex-direction: column; gap: 6px; }
    .portal-app .panel { padding: 18px; }
    .portal-app h1 { font-size: 24px; }
    .portal-app .section-actions { margin-left: 0; width: 100%; }
    .portal-app .section-actions .button { flex: 1; }
    .portal-app .list-filters { grid-template-columns: 1fr; padding: 12px; }
    .portal-app .form-actions, .portal-app .dialog-actions { flex-direction: row; }
    .portal-app .form-actions .button, .portal-app .dialog-actions .button { width: auto; flex: 1 1 auto; }
    .dashboard-intro { flex-direction: column; align-items: flex-start; gap: 18px; }
    .overview-metrics { gap: 10px; }
    .overview-metric { padding: 16px; gap: 10px; }
    .overview-metric > .portal-icon { display: none; }
    .overview-metric strong { grid-column: 1; font-size: 27px; }
    .overview-aside { grid-template-columns: 1fr; }
    .overview-queue-row { grid-template-columns: 1fr auto; gap: 8px; }
    .overview-queue-row > .report-row__avatar { display: none; }
    .portal-notice { align-items: flex-start; flex-direction: column; gap: 8px; }
    .portal-app .act-grid { display: flex; flex-direction: column; }
    .portal-app .act-grid > section { width: 100%; }
    .portal-app .act-library #template-list { max-height: 260px; overflow-y: auto; }
    .assignment-panel > summary span { display: block; margin: 8px 0 0; }
}
@media (prefers-reduced-motion: reduce) {
    .portal-app *, .portal-app *::before, .portal-app *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
    .portal-layout, .portal-sidebar { transition: none !important; }
}
@media (max-height: 800px) {
    .portal-sidebar { padding-top: 16px; }
    .portal-brand { margin-bottom: 12px; }
    .portal-role { margin-bottom: 12px; }
    .portal-nav-group + .portal-nav-group { margin-top: 12px; }
    .portal-nav-heading { margin-bottom: 5px; font-size: 9px; }
    .portal-nav-item { min-height: 36px; padding-block: 8px; margin-block: 2px; font-size: 11px; }
    .portal-sidebar-bottom { margin-top: 10px; padding-top: 6px; }
    .portal-collapse { margin-top: 5px; }
}

/* Readability and responsive corrections. */
.portal-brand__mark { width: 38px; height: 42px; font-size: 35px; line-height: 1; letter-spacing: -.14em; }
.portal-brand__mark > span { top: -2px; right: -5px; font-size: 26px; line-height: 1; }
.portal-brand strong { font-size: 24px; }
.portal-brand small { font-size: 13px; }
.portal-nav-item { min-height: 52px; font-size: 19px; }
.portal-nav-heading { font-size: 14px; }
.portal-breadcrumb { font-size: 14px; }
.portal-user__name { font-size: 14px; }
.portal-user__name small { font-size: 12px; }
.portal-app { font-size: 16px; }
.portal-app h1 { font-size: clamp(28px, 3vw, 42px); }
.portal-app .eyebrow { font-size: 12px; }
.portal-app .button { font-size: 14px; }
.portal-app .status, .portal-app .priority { font-size: 14px; padding: 8px 12px; }
.portal-app .report-row > .status { min-width: 150px; min-height: 40px; border-radius: 999px; }
.portal-app .team-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.portal-app .team-card { min-height: 112px; padding: 18px; grid-template-columns: 42px minmax(0, 1fr); gap: 4px 12px; }
.portal-app .team-avatar { width: 42px; height: 42px; font-size: 1rem; }
.portal-app .team-card strong { font-size: 1rem; }
.portal-app .team-card > span:not(.team-avatar) { font-size: .86rem; line-height: 1.45; }
.login-brand__mark { position: relative; display: grid; place-items: center; width: 62px; height: 62px; border-radius: 18px; color: #c3e9c3; background: #153335; font-size: 42px; font-weight: 800; line-height: 1; letter-spacing: -.14em; }
.login-brand__mark::after { display: none; }
.login-brand__text { display: grid; gap: 2px; }
.login-brand__text strong { color: #fff; font-size: 2rem; letter-spacing: .02em; }
.login-brand__text small { color: #91aeb0; font-size: 1rem; }
.login-brand { gap: 14px; }
.login-shell { position: relative; }
.login-shell::before, .login-shell::after { content: ""; position: absolute; z-index: -1; width: 280px; height: 280px; border-radius: 50%; filter: blur(8px); pointer-events: none; }
.login-shell::before { top: 6%; left: 4%; background: radial-gradient(circle, rgba(0,148,207,.18), transparent 70%); animation: login-glow-one 9s ease-in-out infinite alternate; }
.login-shell::after { right: 4%; bottom: 8%; background: radial-gradient(circle, rgba(160,195,44,.16), transparent 70%); animation: login-glow-two 11s ease-in-out infinite alternate; }
.login-card { animation: login-card-in 650ms cubic-bezier(.2,.75,.25,1) both; }
.portal-app :is(.portal-content, .panel, .list-filters, .assignment-panel, .task-card, .report-page, .profile-page) { font-size: 16px; }
.portal-app :is(.portal-content p, .portal-content label, .portal-content input, .portal-content select, .portal-content textarea, .portal-content button, .portal-content dt, .portal-content dd, .portal-content small) { font-size: 15px; }
.portal-app .portal-content h1 { font-size: clamp(30px, 3vw, 46px); }
.portal-app .portal-content h2 { font-size: clamp(22px, 2vw, 30px); }
.portal-app .report-row__info strong { font-size: 17px; }
.portal-app .report-row__info span, .portal-app .report-row__media { font-size: 14px; }
.portal-app .report-page { font-size: 17px; }
.portal-app .report-details dl { font-size: 16px; line-height: 1.55; }
.portal-app .overview-queue-row strong { font-size: 20px; line-height: 1.45; }
.portal-app .overview-queue-row small { font-size: 16px; line-height: 1.45; }
.portal-app .overview-shortcut strong { font-size: 19px; line-height: 1.4; }
.portal-app .overview-shortcut small { font-size: 16px; line-height: 1.5; }
.portal-app .overview-metric > span { font-size: 16px; }
.portal-app .overview-metric strong { font-size: 36px; }
.portal-app .overview-metric small { font-size: 14px; line-height: 1.5; }
.portal-app .dashboard-intro .button { min-height: 52px; padding: 13px 20px; font-size: 16px; }
.portal-app .dialog-close { width: 52px; height: 52px; min-width: 52px; min-height: 52px; border: 2px solid var(--accent); border-radius: 12px; color: var(--accent); background: #fff; font-size: 30px; line-height: 1; font-weight: 700; }
.portal-app .dialog-close:hover { color: #fff; background: var(--accent); }
.portal-app .container-strip > span { font-size: 19px; line-height: 1.45; }
.portal-app .container-strip > span strong { font-size: 22px; font-weight: 800; }
.portal-app .container-strip__actions a { font-size: 17px; }
.portal-app .conversation-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 20px 24px 24px; }
.portal-app .conversation-actions > .decision-actions { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 12px; width: 100%; padding: 16px 0 0; border-top: 1px solid #e4ecee; background: transparent; }
.portal-app .conversation-actions > .decision-actions .decision-warning { grid-column: 1; max-width: none; margin: 0; font-size: 15px; line-height: 1.45; }
.portal-app .conversation-actions > .decision-actions .button { min-height: 54px; padding-inline: 22px; font-size: 16px; }
@media (max-width: 760px) {
    .portal-app .conversation-actions { grid-template-columns: 1fr; }
    .portal-app .conversation-actions > .decision-actions { grid-template-columns: 1fr; }
    .portal-app .conversation-actions > .decision-actions .decision-warning { grid-column: auto; }
    .portal-app .conversation-actions > .decision-actions .button { width: 100%; }
}
.portal-app .list-filters label, .portal-app .history-filter label { font-size: 15px; }
.portal-app .list-filters :is(input, select), .portal-app .history-filter select { font-size: 16px; min-height: 46px; }
.login-brand > .login-brand__mark { flex: 0 0 62px; font-size: 42px; line-height: 1; letter-spacing: -.14em; }
.login-brand > .login-brand__mark { display: grid; place-items: center; text-align: center; padding: 0; text-indent: -.08em; animation: login-logo-breathe 4s ease-in-out infinite; }
.login-brand > .login-brand__text { display: grid; gap: 2px; font-size: 1rem; font-weight: 500; letter-spacing: 0; }
.login-brand > .login-brand__text strong { color: #163244; font-size: 2rem; line-height: 1; letter-spacing: .02em; }
.login-brand > .login-brand__text small { color: #718894; font-size: 1rem; line-height: 1.3; }
@media (max-width: 900px) { .portal-app .team-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) {
    .portal-app h1 { font-size: 28px; }
    .portal-app .panel { padding: 18px; }
    .portal-app .team-list { grid-template-columns: 1fr; }
    .portal-app .team-card { min-height: 96px; }
    .portal-app .report-row > .status { min-width: 0; width: fit-content; min-height: 36px; font-size: 13px; }
    .portal-topbar { min-height: 92px; padding: 18px 16px; }
    .portal-breadcrumb { font-size: 14px !important; }
    .portal-avatar { width: 42px; height: 42px; border-radius: 13px; font-size: 15px; }
    .login-brand > .login-brand__mark { flex-basis: 54px; width: 54px; height: 54px; font-size: 36px; }
    .login-brand > .login-brand__text strong { font-size: 1.7rem; }
    .login-brand > .login-brand__text small { font-size: .9rem; }
    .portal-footer { font-size: 13px; }
}
@keyframes login-logo-breathe { 0%, 100% { box-shadow: 0 10px 24px rgba(21,51,53,.12); } 50% { box-shadow: 0 16px 34px rgba(21,51,53,.24); transform: translateY(-2px); } }
@keyframes login-card-in { from { opacity: 0; transform: translateY(22px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes login-glow-one { from { transform: translate(-30px, 15px) scale(.8); } to { transform: translate(50px, -30px) scale(1.15); } }
@keyframes login-glow-two { from { transform: translate(20px, 20px) scale(1); } to { transform: translate(-60px, -20px) scale(.82); } }
