/* HF12: presentation only. Keep typography tokens reusable and document rules screen-only. */
:root{
  --type-label:.875rem;--type-meta:.875rem;--type-caption:.875rem;
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;
  --control-min-size:2.75rem;--focus-color:#0b4f84;--field-border:#64748b;
}
body{line-height:var(--line-body,1.6)}
:focus-visible{outline:3px solid var(--focus-color);outline-offset:3px;box-shadow:0 0 0 5px #fff}
:where(a,button,input,select,textarea,[tabindex]){scroll-margin-block:calc(var(--ui-sticky-offset,4.5rem) + 1rem) 1rem}
.skip-link{position:fixed;inset-block-start:.5rem;inset-inline-start:.5rem;z-index:10020;padding:.75rem 1rem;background:#fff;color:#07365d;border:2px solid #07365d;border-radius:.5rem;transform:translateY(-200%)}
.skip-link:focus{transform:none}
.btn,.login-button,.drawer-close,.modal .drawer-close{min-block-size:var(--control-min-size);line-height:1.4}
.drawer-close,.icon-button{min-inline-size:var(--control-min-size)}
.form-field :is(input,select,textarea),.compact-input,.compact-select{border-color:var(--field-border);max-inline-size:100%;min-inline-size:0;font-size:var(--type-body);line-height:1.5}
.form-field label,.checkbox-row{font-size:var(--type-label);line-height:1.5}
.checkbox-row{min-block-size:var(--control-min-size)}
.data-table-wrap{max-inline-size:100%;overscroll-behavior-inline:contain}
.data-table-wrap:focus-visible{outline-offset:-3px}
.data-table :is(th,td){overflow-wrap:break-word}
.toast{max-inline-size:min(100%,38rem);font-size:var(--type-body);line-height:1.5;overflow-wrap:anywhere}
.system-body .system-topbar{gap:var(--space-3);flex-wrap:wrap}
.system-body .system-topbar-copy{min-inline-size:0}
.system-body .system-topbar-copy :is(h1,h2,span){white-space:normal;overflow-wrap:anywhere}
.system-body .system-search{max-inline-size:100%;min-inline-size:0;font-size:var(--type-body)}
.system-body .system-sidebar :focus-visible{outline-color:#fff;box-shadow:0 0 0 5px #07365d}
.system-body .system-sidebar :is(.system-nav-title,.system-user-card span,.system-version,.system-scope){color:#dbeafe}
.system-body .system-topbar-copy span{color:#475569}
.system-body .page-head{gap:var(--space-4);flex-wrap:wrap}
.system-body .page-head h2{font-size:clamp(1.375rem,2vw,1.75rem);line-height:1.3}
.system-body .page-actions,.system-body .filter-group{flex-wrap:wrap;max-inline-size:100%;gap:var(--space-2)}
.system-body .system-nav button,.system-body .drawer-tabs button{min-block-size:var(--control-min-size)}
.system-body .drawer{min-block-size:0;max-block-size:100vh;max-block-size:100dvh;overflow:hidden}
.system-body .drawer-head{flex-shrink:0;gap:var(--space-3);align-items:start}
.system-body .drawer-head>div{min-inline-size:0}
.system-body .drawer-head h2{font-size:1.5rem;line-height:1.3;white-space:normal;overflow-wrap:anywhere}
.system-body .drawer-head p{font-size:var(--type-secondary);line-height:1.5;overflow-wrap:anywhere;color:#475569}
.system-body .drawer-content{min-block-size:0;min-inline-size:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.system-body .drawer-tabs{flex-shrink:0;max-inline-size:100%;overflow-x:auto}
.system-body .drawer-tabs button{font-size:var(--type-control)}
.system-body .info-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:var(--space-3)}
.system-body .info-card{min-inline-size:0;padding:var(--space-3)}
.system-body .info-card span{font-size:var(--type-label);line-height:1.5;color:#475569}
.system-body .info-card strong{font-size:var(--type-body);line-height:1.5;overflow-wrap:anywhere}
.system-body .notice{grid-template-columns:minmax(0,1fr);gap:var(--space-2)}
.system-body .notice :is(span,li){font-size:var(--type-secondary);line-height:1.6}
.system-body .notice strong{font-size:var(--type-body);line-height:1.5}
.system-body .message-card :is(p,.drawer-message-text){font-size:var(--type-body);line-height:1.6}
.system-body .message-card-head{flex-wrap:wrap}
.system-body :is(.message-card-head time,.mail-thread-top time,.mail-bubble-head time){font-size:var(--type-meta);color:#475569}
.system-body .timeline-item strong{font-size:var(--type-body-compact);line-height:1.6}
.system-body .timeline-item span{font-size:var(--type-meta);line-height:1.5}
.system-body .immutable-history-item{min-inline-size:0}
.system-body .immutable-history-item header{flex-wrap:wrap;align-items:start;gap:var(--space-2)}
.system-body .immutable-history-item header strong{display:block;font-size:var(--type-body);line-height:1.5}
.system-body .immutable-history-item :is(header span,time,footer span){font-size:var(--type-meta);line-height:1.5;color:#475569}
.system-body .immutable-history-item pre{font-size:var(--type-body-compact);line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal}
.system-body .immutable-history-item footer{display:block;min-inline-size:0}
.history-technical{inline-size:100%;font-size:var(--type-meta);line-height:1.6}
.history-technical summary{cursor:pointer;min-block-size:var(--control-min-size);padding-block:.5rem;color:#07365d;font-weight:700}
.history-technical dl{display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem;margin:.5rem 0}
.history-technical dt{font-weight:700;color:#334155}.history-technical dd{margin:0;min-inline-size:0}
.history-technical code{font:inherit;overflow-wrap:anywhere;white-space:normal}
.history-technical button{margin-block-start:.5rem;font-size:var(--type-control);min-block-size:var(--control-min-size)}
.system-body :is(.mail-thread-top strong,.mail-thread-subject,.mail-thread-preview,.mail-thread-context,.banner-admin-title h4){white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.system-body .claim-box button{background:#9a3412;color:#fff;font-size:var(--type-control);min-block-size:var(--control-min-size)}
.system-body .legal-group-item{grid-template-columns:minmax(5rem,auto) minmax(0,1fr) auto;gap:var(--space-3)}
.system-body .legal-group-item .content-order{inline-size:auto;min-block-size:3.5rem;font-size:var(--type-meta)}
.system-body .content-item{min-inline-size:0}
.system-body .content-item :is(strong,span){white-space:normal;overflow-wrap:break-word}
.system-body .modal{min-inline-size:0;max-inline-size:calc(100vw - 1rem);max-block-size:calc(100vh - 1rem);max-block-size:calc(100dvh - 1rem);overflow:auto;overscroll-behavior:contain}
.system-body .modal-head{position:sticky;inset-block-start:0;z-index:4;background:#fff}
.system-body .modal-head>div{min-inline-size:0}
.system-body .modal-body :is(.form-grid,.info-grid)>*,.system-body .settings-grid>*{min-inline-size:0}
.system-body .modal-actions,.system-body .team-account-actions{flex-wrap:wrap;gap:var(--space-2)}
.external-body .panel{inline-size:min(40rem,calc(100% - 2rem));margin:clamp(1rem,10vh,5rem) auto;padding:clamp(1rem,4vw,2rem);box-sizing:border-box}
@media(max-width:64rem){
 .system-body :is(.campaign-builder,.content-layout,.banner-admin-layout,.mailbox-layout,.settings-grid){grid-template-columns:minmax(0,1fr)}
 .system-body :is(.content-editor,.campaign-preview-column){position:static}
}
@media(max-width:48rem){
 .system-body .system-topbar-actions{flex-wrap:wrap;max-inline-size:100%;gap:var(--space-2)}
 .system-body .system-content{padding-inline:var(--space-3)}
 .system-body :is(.form-grid,.property-summary,.campaign-card-metrics,.legal-document-trace){grid-template-columns:minmax(0,1fr)}
 .system-body .legal-group-item{grid-template-columns:5rem minmax(0,1fr)}
 .system-body .legal-group-item>.badge{grid-column:2}
 .system-body .modal-actions .btn{flex:1 1 10rem;white-space:normal}
 .system-body .drawer-head{padding:var(--space-3)}
}
@media(max-width:25rem){
 .system-body .system-brand strong{font-size:var(--type-card-title)}
 .system-body .page-actions .btn{inline-size:100%;white-space:normal}
 .system-body .drawer-tabs button{padding-inline:.75rem}
 .system-body .system-topbar-actions{inline-size:100%}
 .system-body .system-search{inline-size:100%}
 .system-body .priority-item,.system-body .activity-item{grid-template-columns:2.75rem minmax(0,1fr)}
}
/* The fixed backdrop bounds the absolute drawer. Every intermediate flex item
   can shrink; ONLY the labelled preview region owns document scrolling. */
@media screen{
 .system-body #systemDrawer.drawer--document{inline-size:min(68rem,100%);block-size:100%;min-block-size:0;overflow:hidden}
 .drawer--document>.contract-document-viewer{display:flex;flex-direction:column;flex:1 1 0;block-size:100%;min-block-size:0;min-inline-size:0;overflow:hidden}
 .drawer--document .contract-document-viewer>.drawer-head{display:grid;grid-template-columns:minmax(0,1fr) auto;flex:0 0 auto}
 .drawer--document .contract-document-viewer>.drawer-content{display:flex;flex-direction:column;flex:1 1 0;min-block-size:0;overflow:hidden;padding:0}
 .drawer--document .legal-preview-toolbar{display:flex;flex:0 0 auto;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem .75rem;border-block-end:1px solid #64748b;background:#fff}
 .legal-preview-toolbar label,.legal-preview-toolbar select,.legal-preview-toolbar button{font-size:var(--type-control);line-height:1.5}
 .legal-preview-toolbar select,.legal-preview-toolbar button{min-block-size:2.75rem;padding:.4rem .65rem;border:1px solid #64748b;border-radius:.5rem;background:#fff;color:#07365d}
 .drawer--document .contract-document-viewer .legal-preview-scroll{display:block;flex:1 1 0;min-block-size:0;min-inline-size:0;max-inline-size:100%;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;touch-action:pan-x pan-y pinch-zoom;border:0;border-radius:0;padding:clamp(.75rem,2vw,1.5rem);background:#e9eef3}
 .drawer--document .legal-preview-scroll:focus-visible{outline-offset:-4px}
 .drawer--document .legal-preview-scroll>.notice{max-inline-size:49.625rem;margin-inline:auto}
 .drawer--document .contract-document-toolbar{position:static;flex-wrap:wrap;margin:0 0 1rem;padding:.75rem;backdrop-filter:none}
 .drawer--document .legal-document-preview{--legal-reading-scale:1;inline-size:min(100%,49.625rem);min-block-size:0;min-height:0;max-inline-size:100%;padding:clamp(1rem,5vw,4rem);font-size:calc(var(--type-body)*var(--legal-reading-scale));line-height:1.65;overflow-wrap:break-word}
 .drawer--document .legal-document-preview .legal-doc-title{font-size:1.375em;line-height:1.35}
 .drawer--document .legal-document-preview .legal-doc-clause{font-size:1.125em;line-height:1.5}
 .drawer--document .legal-document-preview .legal-doc-section{font-size:1.0625em;line-height:1.5}
 .drawer--document .legal-document-preview .legal-doc-brand strong{font-size:1em}
 .drawer--document .legal-document-preview .legal-doc-brand span,.drawer--document .legal-document-preview .legal-doc-meta{font-size:.875em;color:#475569;line-height:1.5}
 .drawer--document .legal-doc-meta,.drawer--document .legal-doc-brand{flex-wrap:wrap;min-inline-size:0}
 .drawer--document .legal-doc-meta span{overflow-wrap:anywhere}
 .drawer--document .legal-doc-watermark{inset-inline:0;left:0;max-inline-size:100%;white-space:normal;text-align:center;transform:none;overflow-wrap:anywhere;font-size:clamp(1.5rem,4vw,3rem)}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}:root{--transition:0ms}
 *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
@media(forced-colors:active){:focus-visible{outline-color:Highlight;box-shadow:none}.form-field :is(input,select,textarea){border-color:ButtonText}}
.system-body .legal-document-trace span{font-size:var(--type-meta);line-height:1.5;color:#475569}
.system-body .legal-document-trace strong{font-size:var(--type-body-compact);line-height:1.5;overflow-wrap:anywhere}
.system-sidebar-close{display:none}
@media(max-width:760px){
 .system-body .system-sidebar{overflow-y:auto;overscroll-behavior:contain}
 .system-sidebar-close{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-block-size:2.75rem;margin-block-end:.75rem;padding:.5rem .75rem;border:1px solid #dbeafe;border-radius:.5rem;background:#07365d;color:#fff;font-size:var(--type-control)}
}
.system-body .data-table td,.system-body .contact-stack strong,.system-body .contact-stack span{font-size:var(--type-body-compact);line-height:1.5}
.system-body .message-card-head strong{font-size:var(--type-body);line-height:1.5}

/* Browser printing is independent of the generated PDF engine. Release viewport
   bounds for the document so a screen scroll region cannot clip printed clauses. */
@media print{
 .system-body.document-preview-open{overflow:visible}
 .system-body.document-preview-open>.system-app,.system-body.document-preview-open>.modal-backdrop,.system-body.document-preview-open>.toast-region,.system-body.document-preview-open>.skip-link{display:none}
 .system-body.document-preview-open>#systemDrawerBackdrop{position:static;inset:auto;visibility:visible;opacity:1;background:none}
 .system-body.document-preview-open #systemDrawer.drawer--document{position:static;inset:auto;transform:none;display:block;inline-size:100%;block-size:auto;max-block-size:none;overflow:visible;box-shadow:none}
 .system-body.document-preview-open .contract-document-viewer,.system-body.document-preview-open .contract-document-viewer>.drawer-content,.system-body.document-preview-open .legal-preview-scroll{display:block;block-size:auto;max-block-size:none;overflow:visible;padding:0;background:none;border:0}
 .system-body.document-preview-open .contract-document-viewer>.drawer-head,.system-body.document-preview-open .legal-preview-toolbar{display:none}
 .system-body.document-preview-open .legal-document-preview{box-shadow:none}
}
