.toast-region { position: fixed; z-index: 1200; inset: auto max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) auto; width: min(24rem, calc(100vw - 2rem)); display: grid; gap: .65rem; }
.app-toast { border: 1px solid var(--color-border); border-left: .28rem solid var(--color-success); border-radius: var(--radius-small); padding: .9rem 1rem; color: var(--color-text); background: var(--color-surface-elevated); box-shadow: var(--shadow-medium); animation: toast-in 180ms var(--motion-ease-enter) both; }
.app-toast-error { border-left-color: var(--color-danger); }
.app-toast.leaving { opacity: 0; transform: translateY(.3rem); transition: 180ms ease; }
@keyframes toast-in { from { opacity: 0; transform: translateY(.5rem); } }
.enterprise-dialog { width: min(44rem, 100vw); max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0 0 0 auto; border: 0; border-radius: var(--radius-large) 0 0 var(--radius-large); padding: 0; color: var(--color-text); background: var(--color-surface-subtle); box-shadow: var(--shadow-large); }
.enterprise-dialog::backdrop { background: rgb(5 20 29 / .68); backdrop-filter: blur(.2rem); }
.dialog-open,html:has(.enterprise-dialog[open]) { overflow:hidden; }
.dialog-shell { min-height: 100%; padding: 0; }
.dialog-shell > header { position: sticky; z-index: 2; top: 0; display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--color-border); padding: var(--space-4) clamp(1rem, 4vw, 1.75rem); background: var(--color-surface-elevated); }
.dialog-shell h2 { margin: .2rem 0 0; font-size: clamp(1.4rem, 4vw, 2rem); }
.dialog-close { width: 2.6rem; height: 2.6rem; flex: 0 0 auto; border: 0; border-radius: 50%; padding: 0; color: var(--color-text); background: var(--color-surface-subtle); font-size: 1.5rem; }
.enterprise-sidepanel .dialog-close { position: static; min-width: 2.6rem !important; min-height: 2.6rem !important; padding: 0 !important; background: var(--color-surface-subtle) !important; }
.sidepanel-body { padding: var(--space-4); }
.sidepanel-sections { display: grid; gap: var(--space-4); }
.sidepanel-card { border: 1px solid var(--color-border); border-radius: var(--radius-medium); padding: var(--space-4); background: var(--color-surface-elevated); }
.sidepanel-card > h3 { margin: 0 0 var(--space-3); font-size: 1.15rem; }
.record-detail { display: grid; gap: 0; margin-top: var(--space-4); }
.record-field { min-width: 0; display: grid; grid-template-columns: minmax(8rem, .7fr) minmax(0, 1.3fr); gap: var(--space-3); border-bottom: 1px solid var(--color-border); padding-block: .75rem; }
.record-field span { color: var(--color-text-muted); text-transform: capitalize; }
.record-field strong { overflow-wrap: anywhere; font-weight: 600; }
.activity-feed { display: grid; gap: var(--space-3); border-left: 2px solid var(--color-border); padding-left: var(--space-5); list-style: none; }
.activity-feed li { position: relative; }
.activity-feed li::before { content: ''; position: absolute; width: .7rem; height: .7rem; inset: .35rem auto auto calc(var(--space-5) * -1 - .4rem); border-radius: 50%; background: var(--color-primary); }
.activity-feed p { margin: 0; }
.activity-feed time { color: var(--color-text-muted); font-size: .8rem; }
.skeleton-stack { display: grid; gap: .8rem; margin-top: var(--space-5); }
.skeleton-stack span { height: 3rem; border-radius: var(--radius-small); background: linear-gradient(90deg,var(--color-surface-subtle),var(--color-border),var(--color-surface-subtle)); background-size: 220% 100%; animation: skeleton 1.2s linear infinite; }
@keyframes skeleton { to { background-position: -220% 0; } }
[aria-busy='true'] { cursor: progress; }
.is-loading > * { opacity: .45; pointer-events: none; }
.enterprise-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); margin-block: var(--space-5); }
.enterprise-toolbar input { min-width: min(100%, 18rem); flex: 1; }
.record-list { display: grid; gap: var(--space-3); }
.record-card { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-4); align-items: center; border: 1px solid var(--color-border); border-radius: var(--radius-medium); padding: var(--space-4); background: var(--color-surface-elevated); }
.record-card-main { min-width: 0; display: grid; gap: .4rem; }
.record-card-main h2,.record-card-main h3 { margin: 0; font-size: clamp(1.15rem, 2vw, 1.45rem); }
.record-meta { display: flex; flex-wrap: wrap; gap: .4rem 1rem; color: var(--color-text-muted); font-size: .86rem; }
.record-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--space-2); }
.record-actions form { display: grid; gap: var(--space-3); }
.portal-app-shell { width: min(calc(100% - 2rem), 88rem); display: grid; gap: var(--space-4); margin: var(--space-4) auto var(--space-7); }
.portal-sidebar { min-width: 0; max-width: 100%; align-self: start; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-medium); padding: var(--space-4); background: var(--color-surface); }
.portal-greeting { display: block; margin: .15rem 0 .35rem; }
.portal-sidebar nav { display: grid; gap: .15rem; }
.portal-sidebar a { min-height: 2.7rem; display: flex; align-items: center; border-radius: var(--radius-small); padding: .55rem .7rem; color: var(--color-text-muted); text-decoration: none; }
.portal-sidebar a[aria-current='page'] { color: var(--color-primary); background: var(--color-surface-subtle); font-weight: 700; box-shadow: inset .2rem 0 var(--color-accent-yellow); }
.portal-logout { display: flex; justify-content: center; margin-top: var(--space-3); border-top: 1px solid var(--color-border); padding-top: var(--space-3); }
.portal-workspace { min-width: 0; }
.portal-page-header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-3); align-items: end; margin-bottom: var(--space-4); }
.portal-page-header h1 { margin: 0; font-size: clamp(1.65rem, 3vw, 2rem); }
.workspace-grid { display: grid; gap: var(--space-4); }
.workspace-card { border: 1px solid var(--color-border); border-radius: var(--radius-medium); padding: var(--space-5); background: var(--color-surface-elevated); }
.workspace-card h2,.workspace-card h3 { margin-top: 0; }
.workspace-card > form { display: grid; gap: var(--space-4); }
.workspace-card > form > button { width: fit-content; margin-top: var(--space-2); }
.portal-workspace > .workspace-card + .workspace-card { margin-top: var(--space-4); }
.portal-workspace > .workspace-grid + .workspace-card { margin-top: var(--space-4); }
.portal-workspace .status { width: fit-content; display: inline-flex; align-items: center; gap: .45rem; margin: 0; padding: .45rem .7rem; font-size: .88rem; }
.portal-workspace .status::before { width: 1.2rem; height: 1.2rem; font-size: .7rem; }
.portal-workspace .record-meta { align-items: center; }
.workspace-card:not(.appointment-primary) > h2 { font-size: clamp(1.35rem, 2.5vw, 1.8rem); }
.workspace-card .cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
.workspace-card .cards article { display: grid; gap: .2rem; padding: var(--space-3); }
.workspace-card .cards strong { font-size: 1.5rem; }
.quick-actions { display:flex;flex-wrap:wrap;gap:var(--space-3); }
.dialog-actions { display: grid; gap: var(--space-4); margin-top: 0; }
.dialog-actions form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: var(--space-3); align-items: end; }
.dialog-actions textarea { min-height: 6rem; }
.form-status { border-left: .22rem solid var(--color-info); border-radius: var(--radius-small); padding: var(--space-3) var(--space-4); background: var(--color-info-surface); }
.form-status.success { border-color: var(--color-success); background: var(--color-success-surface); }
.form-status.error { border-color: var(--color-danger); background: var(--color-danger-surface); }
@media (min-width: 64rem) { .portal-app-shell { grid-template-columns: 15rem minmax(0,1fr); } .portal-sidebar { position: sticky; top: calc(var(--header-height) + var(--space-4)); } .workspace-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 63.99rem) { .portal-sidebar nav { width: 100%; max-width: 100%; display: flex; overflow-x: auto; padding-block: var(--space-2); scrollbar-width: thin; } .portal-sidebar nav a { flex: 0 0 auto; white-space: nowrap; } .portal-sidebar form { display: inline-flex; } }
@media (max-width: 42rem) { .record-card { grid-template-columns: 1fr; } .record-actions { justify-content: flex-start; } .record-field { grid-template-columns: 1fr; gap: .2rem; } .enterprise-dialog { width: 100vw; border-radius: 0; } }

.card-heading,.section-heading { display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3); }
.card-heading h2,.card-heading h3,.section-heading h2 { margin:0; }
.workspace-card-wide { grid-column:1/-1; }
.summary-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:var(--space-3);margin-bottom:var(--space-4); }
.summary-grid article { display:grid;gap:.25rem;border:1px solid var(--color-border);border-radius:var(--radius-small);padding:var(--space-3);background:var(--color-surface-elevated); }
.case-summary-links a { display:grid;gap:.25rem;border:1px solid var(--color-border);border-radius:var(--radius-small);padding:var(--space-3);color:var(--color-text);background:var(--color-surface-elevated);text-decoration:none;transition:border-color var(--motion-duration-fast) ease,transform var(--motion-duration-fast) ease; }
.case-summary-links a:hover,.case-summary-links a:focus-visible { border-color:var(--color-primary);transform:translateY(-1px); }
.case-summary-links span { color:var(--color-text-muted);font-size:.82rem; }
.summary-grid span { color:var(--color-text-muted);font-size:.82rem; }
.compact-record-list { display:grid;gap:var(--space-2); }
.compact-record { min-width:0;display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-small);padding:.75rem .85rem;background:var(--color-surface-elevated); }
.compact-record > div:first-child { min-width:0; }
.compact-record p,.compact-record small,.compact-record time { margin:.2rem 0 0;color:var(--color-text-muted);overflow-wrap:anywhere; }
.compact-empty-state { display:flex;flex-wrap:wrap;gap:.35rem .75rem;align-items:center;border:1px dashed var(--color-border);border-radius:var(--radius-small);padding:.7rem .85rem;color:var(--color-text-muted); }
.compact-form { display:grid;gap:var(--space-4);margin-bottom:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-medium);padding:var(--space-4);background:var(--color-surface-subtle); }
.compact-form-flat { margin:0;border:0;padding:0;background:transparent; }
.message-workspace { display:grid;gap:var(--space-4); }
.message-workspace.has-thread { grid-template-columns:minmax(18rem,.8fr) minmax(22rem,1.2fr);align-items:start; }
.message-compose,.message-reply { display:grid;gap:var(--space-3); }
.message-thread-list { margin-top:var(--space-5); }
.message-thread-link { color:var(--color-text);text-decoration:none; }
.message-thread-link:hover { border-color:var(--color-primary);background:var(--color-surface-subtle); }
.message-timeline { display:grid;gap:var(--space-3);margin:var(--space-4) 0;padding:0;list-style:none; }
.message-bubble { width:min(88%,34rem);border:1px solid var(--color-border);border-radius:var(--radius-medium);padding:var(--space-3);background:var(--color-surface-subtle); }
.message-bubble.is-team { justify-self:start;border-top-left-radius:.25rem; }
.message-bubble.is-client { justify-self:end;border-top-right-radius:.25rem;background:var(--color-info-surface); }
.message-bubble p { margin:.35rem 0;overflow-wrap:anywhere; }
.message-bubble time { color:var(--color-text-muted);font-size:.78rem; }
.communication-workspace { display:grid;gap:var(--space-4); }
.communication-main { min-width:0;display:grid;gap:var(--space-4); }
.case-message-panel { position:fixed;z-index:90;inset:0 0 0 auto;width:min(42rem,100vw);overflow-y:auto;border-left:1px solid var(--color-border);padding:var(--space-4);background:var(--color-surface-elevated);box-shadow:var(--shadow-large); }
.case-message-panel > header { position:sticky;z-index:1;top:calc(var(--space-4) * -1);display:flex;justify-content:space-between;gap:var(--space-3);border-bottom:1px solid var(--color-border);padding:var(--space-4) 0;background:var(--color-surface-elevated); }
.case-message-panel .dialog-close { position:static;display:grid;place-items:center;text-decoration:none; }
.case-message-panel h3 { margin:0; }
@media (max-width:63.99rem) { .message-workspace.has-thread { grid-template-columns:1fr; } }
.case-tabs { display:flex;overflow-x:auto;gap:var(--space-1);margin:0 0 var(--space-4);border-bottom:1px solid var(--color-border);scrollbar-width:thin; }
.case-tabs a { flex:0 0 auto;padding:.65rem .75rem;border-bottom:.2rem solid transparent;color:var(--color-text-muted);text-decoration:none;white-space:nowrap; }
.case-tabs a[aria-current='page'] { border-color:var(--color-accent-yellow);color:var(--color-primary);font-weight:700; }
.case-section { min-height:20rem; }
.case-section > .section-heading { margin-bottom:var(--space-4); }
.overflow-menu { position:relative;flex:0 0 auto; }
.overflow-menu > summary { width:2.35rem;height:2.35rem;display:grid;place-items:center;border-radius:var(--radius-small);cursor:pointer;font-size:1.35rem;list-style:none; }
.overflow-menu > summary::-webkit-details-marker { display:none; }
.overflow-menu[open] > summary { background:var(--color-surface-subtle); }
.overflow-menu > div { position:absolute;z-index:30;right:0;top:calc(100% + .25rem);min-width:12rem;display:grid;border:1px solid var(--color-border);border-radius:var(--radius-small);padding:.3rem;background:var(--color-surface-elevated);box-shadow:var(--shadow-small); }
.menu-action { width:100%;min-height:2.2rem!important;display:flex!important;justify-content:flex-start!important;border:0!important;border-radius:.35rem!important;padding:.45rem .6rem!important;color:var(--color-text)!important;background:transparent!important;text-decoration:none;white-space:nowrap; }
.menu-action:hover { background:var(--color-surface-subtle)!important;transform:none!important; }
.menu-action.danger { color:var(--color-danger)!important; }
.dynamic-form-readonly { display:grid;gap:var(--space-3); }
.form-answer { display:grid;grid-template-columns:minmax(9rem,.65fr) minmax(0,1.35fr);gap:var(--space-3);border-bottom:1px solid var(--color-border);padding-block:.7rem; }
.form-answer-label { color:var(--color-text-muted);font-weight:600; }
.form-answer-value { overflow-wrap:anywhere; }
.dynamic-form-field { margin-bottom:var(--space-4); }
.form-submission-meta { display:flex;flex-wrap:wrap;gap:var(--space-4);margin-block:var(--space-4); }
.form-submission-meta div { display:grid;gap:.2rem; }
.form-submission-meta dt { color:var(--color-text-muted);font-size:.8rem; }
.form-submission-meta dd { margin:0;font-weight:600; }
.form-editor-disclosure > summary { display:flex;justify-content:space-between;gap:var(--space-3);cursor:pointer; }
.visual-form-builder { display:grid;gap:var(--space-4);margin-top:var(--space-4); }
.builder-layout { display:grid;gap:var(--space-4); }
.builder-field { display:grid;gap:var(--space-3);margin-bottom:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-small);padding:var(--space-3);background:var(--color-surface-elevated); }
.builder-field-heading,.builder-field-actions { display:flex;justify-content:space-between;align-items:center;gap:var(--space-2); }
.builder-field-actions { justify-content:flex-end; }
.builder-preview { align-self:start;border:1px solid var(--color-border);border-radius:var(--radius-medium);padding:var(--space-4);background:var(--color-surface-subtle); }
.builder-preview [disabled] { opacity:.78; }
.form-version-editor { margin:.25rem 0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-medium);padding:var(--space-4); }
.archive-section { margin-top:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-small);padding:.75rem .85rem;background:var(--color-surface-subtle); }
.archive-section > summary { display:flex;align-items:center;gap:var(--space-2);cursor:pointer;font-weight:650; }
.archive-section > div { padding-top:var(--space-3); }
.task-groups { display:grid;gap:var(--space-3); }
.task-group { border:1px solid var(--color-border);border-radius:var(--radius-medium);padding:var(--space-3);background:var(--color-surface); }
.task-group > header h2 { display:flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-2);font-size:1.15rem; }
.priority-high,.priority-urgent { color:var(--color-danger);background:var(--color-danger-surface); }
.priority-low { color:var(--color-text-muted);background:var(--color-surface-subtle); }
@media (min-width:64rem) { .builder-layout { grid-template-columns:minmax(0,1.4fr) minmax(18rem,.6fr); } .builder-preview { position:sticky;top:var(--space-4); } }
@media (max-width:42rem) { .compact-record { align-items:flex-start; } .form-answer { grid-template-columns:1fr;gap:.2rem; } .overflow-menu > div { position:fixed;inset:auto .75rem .75rem; } }
@media (prefers-reduced-motion: reduce) { .app-toast,.skeleton-stack span { animation: none; } }

.case-tabs { position: sticky; top: 0; z-index: 3; display: flex; gap: var(--space-2); margin-bottom: var(--space-5); overflow-x: auto; border-block: 1px solid var(--color-border); padding: var(--space-3) 0; background: color-mix(in srgb, var(--color-surface-elevated) 94%, transparent); backdrop-filter: blur(.7rem); scrollbar-width: thin; }
.case-tabs a { flex: 0 0 auto; border-radius: 999px; padding: .5rem .8rem; color: var(--color-text-muted); text-decoration: none; white-space: nowrap; }
.case-tabs a:hover,.case-tabs a:focus-visible { color: var(--color-primary); background: var(--color-surface-subtle); }
.case-summary { margin-bottom: var(--space-5); }
.case-summary > .quick-actions { margin-bottom: var(--space-5); }
.case-title-line { display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3); }
.case-title-line h1 { margin:0; }
.case-status { width:fit-content;display:inline-flex;align-items:center;gap:.45rem;border-radius:999px;padding:.35rem .65rem;color:var(--color-text-muted);background:var(--color-surface-subtle);font-size:.8rem;font-weight:700; }
.case-status > span { width:.55rem;height:.55rem;border-radius:50%;background:var(--color-text-muted); }
.case-status.is-active { color:var(--color-success);background:var(--color-success-surface); }
.case-status.is-active > span { background:var(--color-success); }
.portal-form-card .card-heading { margin-bottom:var(--space-4); }
.form-progress { width:fit-content;display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--color-border);border-radius:999px;padding:.4rem .7rem;background:var(--color-surface-subtle);font-size:.84rem;font-weight:700; }
.form-progress > span { width:1.35rem;height:1.35rem;display:grid;place-items:center;border-radius:50%;background:var(--color-surface-elevated); }
.form-progress.is-progress { color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 48%,var(--color-border));background:var(--color-warning-surface); }
.form-progress.is-complete { color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 48%,var(--color-border));background:var(--color-success-surface); }
.form-submit-actions { align-items:center;margin-top:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--color-border); }
.task-overdue { border-left: .3rem solid var(--color-danger); }
.section-card:target { scroll-margin-top: 5rem; outline: .18rem solid color-mix(in srgb, var(--color-primary) 24%, transparent); outline-offset: .15rem; }
@media (max-width: 42rem) { .case-tabs { margin-inline: calc(clamp(1.2rem, 3vw, 2rem) * -1); padding-inline: clamp(1.2rem, 3vw, 2rem); } }

/* Directional glass edges add depth without changing the established surface palette. */
.sidepanel-card,
.record-card,
.portal-sidebar,
.workspace-card,
.task-group {
  border-color: var(--glass-edge-low);
  box-shadow: var(--glass-card-shadow);
}
.summary-grid article,
.compact-record,
.builder-field,
.message-bubble {
  border-color: var(--glass-edge-low);
  box-shadow: var(--glass-card-shadow-quiet);
}
