.k-icon { fill:none; }
:root { --v-hair-upright:var(--k-hair); }
.v-page { margin:0; background:var(--color-surface-page); }
.v-frame { width:calc(100% - 96px); max-width:1344px; margin-inline:auto; }
.v-page a { color:inherit; text-decoration:none; }
.v-page a:focus-visible,.v-page summary:focus-visible,.v-page input:focus-visible { outline:3px solid var(--color-focus-ring); outline-offset:4px; }
.v-header { height:88px; display:flex; align-items:center; justify-content:space-between; gap:32px; box-shadow:inset 0 calc(-1 * var(--k-hair)) 0 var(--color-line-construction); position:relative; z-index:50; }
.v-brand { display:flex; align-items:center; gap:10px; white-space:nowrap; }
.v-brand img { width:28px; height:28px; }
.v-nav { display:flex; align-items:center; gap:24px; font-size:12px; line-height:16px; }
.v-nav a,.v-menu summary { padding-block:12px; }
.v-menu { position:relative; }
.v-menu summary { cursor:pointer; }
.v-menu-list { position:absolute; top:100%; left:0; width:280px; padding:20px; background:var(--color-paper); box-shadow:var(--k-sh-base),var(--k-sh-contact); display:grid; gap:8px; }
.v-menu-list a { padding-block:4px; }
.v-button { display:inline-flex; align-items:center; justify-content:center; background:var(--color-text-primary); color:var(--color-paper)!important; min-height:44px; padding:12px 24px; border-radius:999px; font-size:12px; line-height:16px; white-space:nowrap; }
.v-mobile-menu { display:none; }
.v-skip { position:fixed; top:8px; left:16px; padding:12px; background:var(--color-paper); z-index:100; translate:0 -160%; }
.v-skip:focus { translate:0; }
.v-stages { display:flex; gap:24px; padding-block:16px; font-size:12px; line-height:16px; }
.v-stages [aria-current] { color:var(--color-text-primary); }
.v-stages [aria-current]::before { content:''; display:inline-block; width:6px; height:6px; margin-right:8px; background:var(--color-accent-2); }
.v-opening { padding-block:88px 64px; }
.v-stages + .v-opening { padding-top:48px; }
.v-region { color:var(--color-accent-2); }
.v-opening h1 { max-width:888px; margin-top:16px; font:400 50px/56px var(--p-font-family-display); letter-spacing:-.025em; text-wrap:balance; }
.v-section { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:32px 24px; border-top:1.5px solid var(--color-line-structure); padding-top:20px; }
.v-section > h2 { grid-column:1/5; font:400 28px/32px var(--p-font-family-display); text-wrap:balance; max-width:410px; }
.v-prose { grid-column:5/11; font-size:16px; line-height:24px; color:var(--color-text-secondary); }
.v-prose > p + p { margin-top:24px; }
.v-prose > h3 { font:400 21px/28px var(--p-font-family-display); margin-block:32px 16px; color:var(--color-text-primary); }
.v-picture { grid-column:1/-1; min-width:0; }
.v-section-margin { grid-template-rows:auto 1fr; align-items:start; }
.v-section-margin > .v-prose { grid-row:1/3; }
.v-section-margin > .v-picture { grid-column:1/5; grid-row:2; }
.v-section-ledger > .v-picture { grid-column:1/9; }
.v-section-clipboard > .v-picture { grid-column:5/11; margin-top:-24px; }
.v-section-index > .v-picture { margin-top:24px; }
.v-close { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:24px; margin-top:112px; padding-top:28px; border-top:1.5px solid var(--color-line-structure); }
.v-close > div:first-child { grid-column:1/7; }
.v-close h2 { font:400 38px/44px var(--p-font-family-display); text-wrap:balance; }
.v-close p { margin-top:24px; max-width:580px; color:var(--color-text-secondary); }
.v-close .v-button { margin-top:24px; }
.v-close .v-action-facts { margin-top:12px; font-size:12px; line-height:16px; }
.v-close-drawing { grid-column:9/12; height:288px; }
.v-close-note { width:252px; left:20px; top:4px; rotate:3deg; }
.v-close-note .k-doc-title { font-size:21px; line-height:28px; }
.v-close-note .v-note-prompts { margin-top:12px; }
.v-note-prompts li { padding-block:5px; box-shadow:inset 0 calc(-1 * var(--k-hair)) 0 var(--color-line-construction); }
.v-close .v-note-foot { font-size:9px; line-height:12px; margin-top:12px; }
.v-footer { margin-top:96px; padding-block:32px 24px; border-top:1px solid var(--color-line-construction); }
.v-footer-line { font:400 28px/32px var(--p-font-family-display); max-width:660px; }
.v-footer-nav { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.v-footer-nav h2 { color:var(--color-accent-2); margin-bottom:12px; }
.v-footer-nav a,.v-link-held { display:block; font-size:12px; line-height:24px; }
.v-footer-base { margin-top:48px; padding-top:16px; border-top:1px solid var(--color-line-construction); display:flex; justify-content:space-between; font-size:12px; line-height:16px; }
.v-object { position:relative; }
.v-object .k-letterhead { white-space:nowrap; }
.v-object .k-doc-title { text-wrap:balance; }
.v-object.k-doc--read { --k-title-size:28px; --k-title-leading:32px; }
.v-fields { margin-top:16px!important; }
.v-fields > div { display:grid; grid-template-columns:64px 1fr; gap:12px; padding-block:10px; box-shadow:inset 0 calc(-1 * var(--k-hair)) 0 var(--color-line-construction); }
.v-fields dt { color:var(--color-text-tertiary); }
.v-fields dd { color:var(--color-text-primary); }
.v-mini-lines { margin-top:16px!important; }
.v-mini-lines li { padding-block:8px; box-shadow:inset 0 calc(-1 * var(--k-hair)) 0 var(--color-line-construction); }
.v-phone { display:none; }
.v-tick { width:18px; height:18px; }
.v-ledger-stage,.v-schedule-stage,.v-ruler-stage,.v-stamps-stage,.v-signoff-stage,.v-keys-stage {
 --k-sh-reach:calc(var(--k-lx) * 6px) 10px 16px -6px var(--k-mat-shade-200),calc(var(--k-lx) * 16px) 24px 32px -12px var(--k-mat-shade-200);
}

/* V1. The register sits off centre on a pool of light. */
.v-ledger-stage { padding-block:32px 40px; --k-lx:.7; }
.v-ledger-light { position:absolute; inset:0 -152px 0 -24px; border-radius:12px; --k-pool-x:24%; --k-pool-y:24%; }
.v-ledger-sheet { width:100%; }
.v-ledger-sheet .k-body { padding:32px 40px 36px; }
.v-ledger-sheet .k-doc-title { font-size:38px; line-height:44px; margin-block:20px!important; }
.v-ledger-table { width:100%; table-layout:fixed; border-collapse:collapse; font-size:16px; line-height:24px; }
.v-mark-col { width:72px; }
.v-ledger-table th { font-size:12px; line-height:16px; font-weight:400; text-align:left; padding:12px 0; border-bottom:1px solid var(--color-line-structure); }
.v-ledger-table td { padding:16px 20px 16px 0; vertical-align:top; box-shadow:inset 0 calc(-1 * var(--k-hair)) 0 var(--color-line-construction); }
.v-ledger-table td:last-child { padding-right:0; padding-left:16px; box-shadow:inset var(--k-hair) 0 0 var(--color-line-construction),inset 0 calc(-1 * var(--k-hair)) 0 var(--color-line-construction); }
.v-ledger-table td:last-child .k-tick { display:block; margin:2px auto; }
.v-ledger-group th { padding-top:32px; font-family:var(--p-font-family-display); font-size:21px; line-height:28px; }
.v-ledger-table td strong { font-weight:500; }
.v-option { font-size:11px; line-height:16px; }
.v-dense { --k-ink-pen:var(--color-text-primary); }

/* V2. A compact sheet with three bands and a week axis. */
.v-schedule-stage { padding:12px 0 24px; --k-lx:-.6; }
.v-programme-document { width:384px; min-height:240px; }
.v-programme-document .k-body { padding:24px 24px 64px; }
.v-programme-document .k-doc-title { font-size:21px; line-height:28px; }
.v-programme-document p { margin-top:16px; }
.v-schedule-sheet { width:400px; min-height:312px; left:32px; margin-top:-48px; z-index:2; }
.v-schedule-sheet .k-body { padding:16px 20px; }
.v-schedule-sheet .k-doc-title { font-size:21px; line-height:28px; }
.v-week-axis { display:grid; grid-template-columns:100px repeat(13,1fr); align-items:end; margin-top:10px; font-size:8px; line-height:12px; }
.v-week-axis i { font-style:normal; text-align:center; padding-bottom:6px; border-bottom:1px solid var(--color-line-structure); position:relative; }
.v-week-axis i::after { content:''; position:absolute; width:1px; height:4px; right:50%; bottom:0; background:var(--color-text-secondary); }
.v-cadence > div { position:relative; display:grid; grid-template-columns:88px 1fr; align-items:center; gap:0 12px; min-height:40px; padding-block:4px; box-shadow:inset 0 calc(-1 * var(--k-hair)) 0 var(--color-line-construction); }
.v-cadence h4 { font:400 16px/24px var(--p-font-family-display); }
.v-cadence p { font-size:11px; line-height:16px; }
.v-cadence-marks { grid-column:2; display:grid; height:8px; }
.v-cadence-weekly { grid-template-columns:repeat(13,1fr); }
.v-cadence-weekly i { width:1px; height:7px; background:var(--color-text-secondary); justify-self:center; }
.v-cadence-monthly { grid-template-columns:repeat(3,1fr); gap:8px; }
.v-cadence-monthly i,.v-cadence-quarterly i { border:solid var(--color-text-secondary); border-width:0 1px 1px; height:5px; }
.v-room { display:grid; grid-template-columns:max-content max-content; gap:8px 24px; margin-top:16px; font-size:9px; line-height:12px; }
.v-room h4 { grid-column:1/-1; font-weight:400; color:var(--color-text-secondary); }
.v-cadence > div:last-child { padding-bottom:24px; }
.v-quarter-person { display:block; position:absolute; right:0; bottom:4px; padding-left:0; padding-right:12px; }
.v-quarter-person .k-person__square { position:absolute; width:6px; height:6px; left:auto; right:-3px; top:3px; }
.v-quarter-person .k-person__name { font:400 9px/12px var(--p-font-family-working); }
.v-cadence-quarterly { position:relative; }
.v-cadence-quarterly::after { content:""; position:absolute; right:0; top:4px; height:18px; border-right:1px solid var(--color-text-secondary); }

/* V3. The bent metal clip holds the form to a substantial cardstock back. */
.v-clipboard { padding:28px 22px 22px; rotate:-2deg; --k-lx:1; }
.v-clipboard-board { position:absolute; inset:0; background:var(--k-stock-cover) var(--k-grain-cover); border-radius:8px 8px 3px 3px; box-shadow:inset 1px 1px 0 var(--k-cut-light),inset -1px -1px 0 var(--k-cut-edge),var(--k-sh-base),var(--k-sh-contact); }
.v-clip { position:absolute; top:-12px; left:calc(50% - 60px); width:120px; height:44px; z-index:4; border-radius:4px 4px 3px 3px; background:linear-gradient(180deg,var(--k-mat-grey-205),var(--k-mat-grey-155) 14%,var(--k-mat-grey-155) 84%,var(--k-mat-grey-205)); box-shadow:inset 0 1px 0 var(--k-cut-light),inset 0 -1px 0 var(--k-cut-edge),var(--k-sh-base); }
.v-clip::before { content:''; position:absolute; top:-12px; left:42px; width:36px; height:24px; border:1.5px solid var(--color-text-secondary); border-radius:12px 12px 0 0; }
.v-clip::after { content:''; position:absolute; inset:8px 10px; border:1px solid var(--color-text-secondary); border-radius:2px; box-shadow:inset 0 1px 0 var(--k-cut-light),0 1px 0 var(--k-cut-light); }
.v-clip i { position:absolute; bottom:5px; left:18px; right:18px; height:3px; background:var(--k-mat-grey-058); }
.v-checklist .k-body { padding:32px 32px 28px; }
.v-checklist .k-doc-title { margin-top:20px!important; font-size:38px; line-height:44px; }
.v-check-form { margin-top:20px; }
.v-check-form fieldset { padding:0; margin:0; border:0; }
.v-check-form legend { font-size:12px; line-height:16px; padding:0 0 12px; }
.v-check-row { display:grid; grid-template-columns:24px 1fr; gap:16px; padding:18px 0; cursor:pointer; font-size:16px; line-height:24px; box-shadow:inset 0 var(--k-hair) 0 var(--color-line-construction); }
.v-check-row input { appearance:none; margin:2px 0 0; width:24px; height:24px; border:1.5px solid var(--color-text-primary); border-radius:0; background:transparent; position:relative; cursor:pointer; }
.v-check-row input:checked::after { content:''; position:absolute; width:8px; height:15px; left:7px; top:1px; border:solid var(--color-accent-2); border-width:0 1.5px 1.5px 0; rotate:40deg; }
.v-check-consequence { padding-top:24px; margin-top:8px; border-top:1.5px solid var(--color-line-structure); font:400 21px/28px var(--p-font-family-display); }

/* V4. A horizontal scale becomes a vertical scale on the phone. */
.v-ruler-stage { padding-bottom:20px; --k-lx:.6; }
.v-ruler { position:relative; width:432px; min-height:356px; padding:18px 20px; }
.v-ruler-track { position:relative; height:218px; margin-top:16px; }
.v-duration { position:absolute; left:0; right:0; height:42px; top:calc(var(--v-row,0) * 46px); }
.v-duration-1 { --v-row:1; }.v-duration-2 { --v-row:2; }.v-duration-3 { --v-row:3; }
.v-duration-label { font-size:11px; line-height:16px; display:flex; justify-content:space-between; gap:8px; }
.v-duration-label b { font-weight:500; }
.v-duration-label span { color:var(--color-text-secondary); }
.v-duration-bar,.v-duration-range { position:absolute; top:25px; left:0; width:calc(100% * var(--v-low) / 12); border-top:3px solid var(--color-text-primary); }
.v-duration-range { left:calc(100% * var(--v-low) / 12); width:calc(100% * (var(--v-high) - var(--v-low)) / 12); border-top:1px solid var(--color-text-secondary); }
.v-duration-range::after { content:''; position:absolute; right:0; top:-6px; height:10px; border-right:1px solid var(--color-text-primary); }
.v-duration-leader { display:none; }
.v-ruler-axis { position:absolute; left:0; right:0; bottom:0; height:28px; border-top:1px solid var(--color-text-primary); font-size:9px; line-height:12px; }
.v-ruler-axis li { position:absolute; left:calc(100% * var(--v-week) / 12); padding-top:10px; }
.v-ruler-axis li::before { content:''; position:absolute; top:0; height:6px; border-left:1px solid var(--color-text-primary); }
.v-ruler-axis li span { display:block; translate:-50% 0; }
.v-day-scale { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:4px 12px; padding-top:12px; border-top:1px solid var(--color-line-construction); font-size:11px; line-height:16px; }
.v-day-scale strong { font-weight:500; }
.v-day-scale > span { text-align:right; }
.v-day-scale svg { width:132px; height:40px; fill:none; stroke:var(--color-text-primary); stroke-width:1px; }
.v-day-scale svg text { stroke:none; fill:var(--color-text-primary); font:9px var(--p-font-family-working); }
.v-day-scale .v-span { stroke-width:3px; }
.v-days-label { font-size:9px; color:var(--color-text-tertiary); }

/* V5. Natural height retains a 48 px overlap without trapping the docket in a fixed box. */
.v-docket-stage { padding-block:12px 24px; --k-lx:.8; }
.v-backlog { width:300px; height:310px; left:0; top:0; }
.v-backlog .k-body { padding:20px; }
.v-backlog .k-register th:first-child { width:24px; }
.v-backlog .k-register td { padding-block:10px; }
.v-docket { position:relative; width:310px; left:104px; top:0; margin-top:-48px; min-height:396px; rotate:2deg; z-index:3; }
.v-docket .k-body { padding:20px 24px 28px; }
.v-docket .k-letterhead { font-size:9px; }
.v-docket .k-doc-title { margin-top:18px!important; }
.v-docket::before { background-image:var(--k-grain-thin); }
.v-docket-fold { height:20px; margin-inline:-24px; background:linear-gradient(transparent 8px,var(--k-mat-shade-070) 9px,var(--k-mat-light-900) 11px,var(--k-mat-shade-025) 12px,transparent 18px); }
.v-docket .v-fields { margin-top:12px!important; }
.v-docket .v-fields > div { padding-block:7px; grid-template-columns:40px 1fr; }
.v-docket-number { width:32px; }
.v-docket .v-docket-table th:first-child { width:32px; }
.v-docket .v-docket-table th:last-child { width:auto; }
.v-docket-table th,.v-docket-table td { font-size:11px; line-height:16px; }
.v-hours { display:grid; grid-template-columns:40px 1fr; align-items:center; gap:12px; margin-top:16px; }
.v-hours-field { height:32px; border:1px solid var(--color-line-structure); background:repeating-linear-gradient(90deg,transparent 0 25px,var(--color-line-construction) 25px 26px); }
.v-docket-sign { display:grid; grid-template-columns:40px 1fr; align-items:baseline; gap:8px 12px; margin-top:16px; }
.v-docket-sign .k-pen { font-size:28px; line-height:32px; font-weight:400; border-bottom:1px solid var(--color-line-structure); }
.v-docket-sign > span:last-child { grid-column:2; color:var(--color-text-tertiary); }
.v-docket-foot { display:flex; justify-content:space-between; margin-top:16px; padding-top:10px; border-top:1px solid var(--color-line-construction); font-size:9px; line-height:12px; }

/* V6. Seven equal cards share one drawer, with only filing bands exposed. */
.v-index-stage { width:728px; height:792px; --k-lx:.8; --v-card:0; }
.v-index-back { position:absolute; left:16px; right:0; top:72px; bottom:36px; background:var(--color-surface-well-deep) var(--k-grain-cover); box-shadow:inset 1px 1px 0 var(--k-cut-light),inset -3px 0 0 var(--k-cut-edge),var(--k-sh-base),var(--k-sh-contact); }
.v-index-card { position:absolute; top:calc(56px + var(--v-card) * 56px); left:calc(16px + var(--v-card) * 24px); width:536px; height:368px; background:var(--k-stock-cover) var(--k-grain-cover); box-shadow:var(--k-sh-base),var(--k-sh-contact); border-radius:2px; z-index:calc(1 + var(--v-card)); }
.v-index-tab { position:absolute; bottom:100%; left:0; width:max-content; max-width:488px; min-height:40px; padding:8px 16px; background:var(--k-stock-cover) var(--k-grain-cover); border-radius:6px 12px 0 0; box-shadow:inset 0 1px 0 var(--k-cut-light); font:400 16px/20px var(--p-font-family-display); }
.v-index-content { padding:80px 24px 64px; }
.v-index-card-6 { box-shadow:var(--k-sh-base),var(--k-sh-reach); }
.v-index-card-6 .v-index-tab { color:var(--color-accent-2-text); }
.v-index-card-6 .v-index-content { padding-top:24px; }
.v-index-line { font:400 28px/32px var(--p-font-family-display); }
.v-index-document { margin-top:24px!important; margin-left:72px; width:320px; }
.v-index-document .k-body { padding:20px; }
.v-index-document p { margin-top:16px; font-size:11px; line-height:16px; }
.v-index-side { position:absolute; top:80px; bottom:44px; width:16px; z-index:9; background:var(--k-stock-cover) var(--k-grain-cover); box-shadow:inset 1px 0 0 var(--k-cut-light),inset -3px 0 0 var(--k-cut-edge); transform:skewY(-28deg); }
.v-index-side-left { left:0; }.v-index-side-right { right:0; }
.v-index-front { position:absolute; left:0; right:16px; top:720px; height:48px; z-index:10; padding:8px 24px; background:var(--k-stock-cover) var(--k-grain-cover); box-shadow:inset 0 1px 0 var(--k-cut-light),inset -1px -1px 0 var(--k-cut-edge),var(--k-sh-base),var(--k-sh-contact); }
.v-index-front::before { content:''; position:absolute; left:0; right:0; top:-8px; height:8px; background:var(--color-surface-well-deep); box-shadow:inset 0 1px 0 var(--k-cut-light),inset 0 -1px 0 var(--k-cut-edge); transform:skewX(-25deg); transform-origin:bottom left; }
.v-index-holder { display:inline-block; padding:2px 16px; border:1.5px solid var(--color-text-secondary); box-shadow:inset 0 1px 0 var(--k-cut-light),0 1px 0 var(--k-cut-light); border-radius:2px; background:var(--color-paper-under); font:400 16px/24px var(--p-font-family-display); }
.v-drawer-handle { display:block; width:76px; height:20px; border:1.5px solid var(--color-text-secondary); border-radius:2px; background:var(--color-paper-under); }
.v-drawer-handle::after { content:''; display:block; margin:6px 10px 0; border-top:1px solid var(--color-text-secondary); }

/* V7. Architectural doors have lintels, jambs, leaves and swing arcs. */
.v-map-stage { height:360px; }
.v-map-plan { position:absolute; inset:0; width:100%; height:100%; fill:none; stroke:var(--color-text-secondary); stroke-width:1.5px; }
.v-map-plan .v-map-swing { stroke:var(--color-line-ui); stroke-width:1px; }
.v-map-entry { position:absolute; left:0; top:90px; width:104px; padding:0 8px 8px; border-bottom:1.5px solid var(--color-text-secondary); font:400 21px/28px var(--p-font-family-display); }
.v-doorway { position:absolute; left:calc(208px + var(--v-door,0) * 210px); bottom:232px; width:180px; height:auto; z-index:2; }
.v-doorway-1 { --v-door:1; }.v-doorway-2 { --v-door:2; }.v-doorway-3 { --v-door:3; }.v-doorway-4 { --v-door:4; }
.v-doorway h3 { font:400 21px/28px var(--p-font-family-display); max-width:176px; }
.v-map-person { position:absolute; left:1278px; top:282px; z-index:3; }

/* V8. The paper sits inside the bed and the lip covers its blank foot. */
.v-tray-stage { height:696px; --k-lx:-.7; }
.v-tray { position:absolute; left:0; top:0; width:264px; height:376px; }
.v-tray-out { left:168px; top:328px; height:344px; z-index:10; }
.v-tray-bed { position:absolute; inset:0; background:var(--color-surface-well-deep) var(--k-grain-ground); box-shadow:inset 0 1px 0 var(--k-cut-light),inset 0 -3px 0 var(--k-cut-edge),var(--k-sh-base),var(--k-sh-contact); }
.v-tray-bed::after { content:''; position:absolute; inset:12px 10px; border-top:1px solid var(--color-line-ui); border-bottom:1px solid var(--color-line-ui); }
.v-tray-rim { position:absolute; left:0; right:0; bottom:0; height:52px; z-index:8; padding:12px; font:400 16px/24px var(--p-font-family-display); background:var(--k-stock-cover) var(--k-grain-cover); box-shadow:inset 0 1px 0 var(--k-cut-light),inset 0 -1px 0 var(--k-cut-edge),var(--k-sh-base); }
.v-tray-rim::before { content:''; position:absolute; top:-8px; left:0; right:0; height:8px; background:var(--color-paper-under); transform:skewX(-25deg); transform-origin:bottom left; box-shadow:inset 0 1px 0 var(--k-cut-light),inset 0 -1px 0 var(--k-cut-edge); }
.v-tray-rim::after { content:''; position:absolute; left:0; right:0; top:100%; height:3px; background:var(--k-cut-face); box-shadow:var(--k-sh-base),var(--k-sh-contact); }
.v-tray-rails { position:absolute; inset:0 0 4px; z-index:7; pointer-events:none; }
.v-tray-rails::before,.v-tray-rails::after { content:''; position:absolute; top:0; bottom:0; width:8px; background:var(--k-stock-cover) var(--k-grain-cover); border:solid var(--color-line-ui); border-width:0 1px; box-shadow:inset 1px 0 0 var(--k-cut-light); }
.v-tray-rails::before { left:0; }.v-tray-rails::after { right:0; }
.v-tray .v-object { position:absolute; width:240px; left:12px; }
.v-tray-monthly { top:24px; height:240px; }
.v-tray-monthly .k-period { gap:6px; }
.v-tray-monthly .v-mini-lines li { padding-block:4px; }
.v-tray-fix { top:216px; height:148px; z-index:3; }
.v-tray-fix .k-body { padding:16px; }
.v-tray-fix .k-doc-title { font-size:11px; line-height:16px; }
.v-tray-fix p { margin-top:8px; max-width:208px; }
.v-slip-check { position:absolute; right:16px; top:42px; }
.v-tray-migration { top:24px; height:180px; z-index:4; }
.v-tray-inherited { top:156px; height:176px; z-index:5; }
.v-tray-inherited .k-body { padding-bottom:12px; }
.v-tray .k-doc-title { margin-top:8px!important; }
.v-tray .v-object p:not(.k-doc-subtitle) { margin-top:12px; }

/* V9. A closed source cover and its corner impression. */
.v-stamps-stage { padding-block:16px 40px; --k-lx:.6; }
.v-internal-cover { width:340px; left:24px; }
.v-internal-cover.k-stack > .k-body { height:auto; }
.v-internal-cover .k-body { padding:32px; }
.v-internal-cover .k-doc-title { margin-top:24px!important; font-size:38px; line-height:44px; }
.v-internal-cover .k-cover { font-size:12px; line-height:20px; padding-top:20px; }
.v-source-date { font-weight:500; }
.v-source-read { margin-top:24px; padding-top:12px; box-shadow:inset 0 var(--k-hair) 0 var(--color-line-construction); font-size:9px; line-height:12px; }
.v-internal-stamp { top:auto; bottom:26px; right:-24px; padding:8px 14px; font-size:16px; line-height:20px; rotate:-8deg; }

/* V10. The printed draft and the human review retain distinct paper stocks. */
.v-signoff-stage { padding:8px 0 28px; --k-lx:.8; }
.v-signoff-draft { width:368px; }
.v-signoff-draft .k-body { padding:24px 24px 72px; }
.v-signoff-draft .k-doc-title { font-size:21px; line-height:28px; }
.v-signoff-draft p { margin-top:16px; }
.v-signoff-draft h4 { margin-top:20px; font:400 16px/24px var(--p-font-family-display); }
.v-signoff-sheet { width:344px; left:64px; margin-top:-48px; z-index:2; }
.v-signoff-sheet.k-stock-thin { background-image:var(--k-grain-paper); }
.v-signoff-sheet .k-body { padding:24px; }
.v-signoff-sheet .k-doc-title { font-size:28px; line-height:32px; margin-top:16px!important; }
.v-signoff-rule { display:grid; grid-template-columns:8px 1fr; gap:12px; margin-top:20px; font-size:11px; line-height:16px; }
.v-signoff-rule i { border:solid var(--color-text-primary); border-width:1.5px 0 1.5px 1.5px; height:46px; width:6px; }
.v-signature-fields { margin-top:24px; }
.v-signature-fields > span { font-size:9px; line-height:12px; color:var(--color-text-secondary); }
.v-signature-stroke { display:block; width:100%; height:56px; fill:none; stroke:var(--color-accent-2-text); stroke-width:1.5px; stroke-linecap:round; stroke-linejoin:round; border-bottom:1px solid var(--color-line-structure); }
.v-signature-fields > p { margin-top:8px; font-size:11px; line-height:16px; }
.v-never { margin-top:20px; border-top:1.5px solid var(--color-line-structure); padding-top:12px; font-size:16px; line-height:24px; }

/* V11. Tags hang in front of the next tag, exposing only its blank lower edge. */
.v-keys-stage { padding:12px 0 28px; --k-lx:-.6; }
.v-keys-heading { position:relative; width:400px; padding:20px 24px 24px 48px; background:var(--k-stock-cover) var(--k-grain-cover); box-shadow:inset 1px 1px 0 var(--k-cut-light),inset -1px -1px 0 var(--k-cut-edge),var(--k-sh-base); }
.v-keys-heading h3 { max-width:310px; font:400 28px/32px var(--p-font-family-display); }
.v-keys-heading p { margin-top:8px; font-size:11px; line-height:16px; color:var(--color-text-secondary); }
.v-key-register { position:relative; padding-top:16px; }
.v-key-rail { position:absolute; left:12px; top:0; bottom:108px; width:8px; background:var(--k-mat-grey-205); box-shadow:inset 1px 0 var(--k-cut-light),inset -1px 0 var(--k-cut-edge); border-radius:3px; }
.v-key-row { position:relative; display:grid; grid-template-columns:32px 1fr; align-items:start; gap:16px; width:384px; }
.v-key-row + .v-key-row { margin-top:-40px; }
.v-key-row-1 { left:12px; }.v-key-row-2 { left:4px; }.v-key-row-3 { left:16px; }
.v-key-gutter { display:flex; padding-top:20px; color:var(--color-text-secondary); }
.v-key-tag { position:relative; height:128px; background:var(--k-stock-cover) var(--k-grain-cover); padding:16px 16px 48px 32px; box-shadow:var(--k-sh-base),var(--k-sh-contact); display:grid; grid-template-columns:1fr auto; align-content:start; gap:4px 12px; border-radius:12px 2px 2px 12px; }
.v-key-row-3 .v-key-tag { height:88px; padding-bottom:16px; }
.v-key-tag-write { background:var(--color-paper) var(--k-grain-paper); }
.v-key-tag strong { font:400 21px/28px var(--p-font-family-display); }
.v-key-tag > span { font-size:11px; line-height:28px; }
.v-key-tag small { grid-column:1/-1; font-size:11px; line-height:16px; color:var(--color-text-secondary); }
.v-eyelet { position:absolute; left:10px; top:26px; width:8px; height:8px; border:1px solid var(--color-text-secondary); border-radius:50%; }
.v-eyelet::after { content:''; position:absolute; width:28px; height:10px; border:1px solid var(--color-text-tertiary); border-radius:50%; left:-24px; top:-2px; }
.v-key-row.v-sealed-row { margin-top:20px; left:16px; }
.v-sealed-drawer { background:var(--color-surface-well-deep) var(--k-grain-cover); position:relative; padding:16px; height:96px; box-shadow:inset 1px 1px 0 var(--k-cut-light),inset -1px -1px 0 var(--k-cut-edge); }
.v-sealed-drawer strong { font:400 21px/28px var(--p-font-family-display); }
.v-sealed-drawer p { font-size:11px; line-height:16px; color:var(--color-text-secondary); }
.v-sealed-drawer .v-drawer-handle { position:absolute; right:12px; bottom:12px; width:48px; height:16px; }
.v-sealed-drawer .v-drawer-handle::after { margin-top:4px; }
.v-sealed-drawer::before { content:''; position:absolute; right:68px; top:0; bottom:0; width:10px; border:solid var(--color-text-tertiary); border-width:0 1px; background:var(--color-paper-under) var(--k-grain-paper); }
.v-sealed-drawer::after { content:''; position:absolute; left:0; right:0; bottom:-3px; height:3px; background:var(--k-cut-face); box-shadow:var(--k-sh-base); }
.v-system-mark { width:16px; height:16px; display:block; margin-left:auto; }

/* V12. The gateway reuses the finished job's door and posted terms. */
.v-gateway-stage { height:716px; --k-lx:1; }
.v-gateway-light { position:absolute; inset:48px -48px 0 0; --k-lx:1; --k-pool-x:38%; --k-pool-y:30%; --k-pool-w:64%; --k-pool-h:90%; }
.v-gateway-field { inset:96px 0 32px 300px; }
.v-gateway-door { position:absolute; left:448px; top:24px; width:472px; height:668px; padding:28px 34px 28px 28px; isolation:isolate; background:var(--k-stock-cover) var(--k-grain-cover); box-shadow:inset 1px 1px 0 var(--k-cut-light),inset -1px -1px 0 var(--k-cut-edge),var(--k-sh-base),var(--k-sh-contact); z-index:3; }
.v-gateway-door > h3 { font:400 28px/32px var(--p-font-family-display); }
.v-gateway-door::after { content:''; position:absolute; left:-16px; top:-12px; right:-16px; bottom:-8px; border:1.5px solid var(--color-text-secondary); border-bottom:0; z-index:-2; }
.v-hinge { position:absolute; left:-9px; width:14px; height:42px; background:var(--color-text-secondary); box-shadow:inset 1px 0 var(--color-line-ui); }
.v-hinge-top { top:70px; }.v-hinge-bottom { bottom:80px; }
.v-gateway-handle { position:absolute; right:20px; top:350px; width:11px; height:11px; border-radius:50%; background:var(--k-mat-grey-155); box-shadow:inset 1px 1px 0 var(--k-cut-light),var(--k-sh-base); }
.v-gate-plate { position:absolute; left:calc(50% - 31px); bottom:24px; width:62px; height:14px; background:var(--k-mat-grey-205); box-shadow:inset 1px 1px 0 var(--k-cut-light),inset -1px -1px 0 var(--k-cut-edge),var(--k-sh-base); border-radius:2px; }
.v-gate-plate::after { content:''; position:absolute; inset:5px 7px; background:var(--color-text-primary); border-radius:1px; }
.v-door-sill { position:absolute; left:-44px; right:-44px; bottom:-9px; border-top:1.5px solid var(--color-text-secondary); }
.v-posted { position:absolute; left:32px; top:88px; width:374px; min-height:424px; }
.v-posted .k-body { padding:24px; }
.v-posted::after { content:''; position:absolute; top:10px; left:50%; width:5px; height:5px; border-radius:50%; background:var(--color-text-secondary); }
.v-posted .k-letterhead { display:none; }
.v-posted .k-doc-title { font-size:12px; line-height:16px; margin-top:0!important; font-variant:small-caps; letter-spacing:.04em; }
.v-term-main { font:400 28px/32px var(--p-font-family-display); margin-top:20px!important; }
.v-term-list { margin-top:20px!important; font-size:16px; line-height:24px; }
.v-term-list li { padding-block:10px; box-shadow:inset 0 var(--k-hair) 0 var(--color-line-construction); }
.v-meter { margin-top:24px; padding-top:16px; border-top:1.5px solid var(--color-line-structure); }
.v-meter h4 { font:400 16px/24px var(--p-font-family-display); }
.v-meter-scale { position:relative; height:88px; margin-top:8px; }
.v-meter-scale svg { width:100%; height:78px; fill:none; stroke:var(--color-text-primary); stroke-width:1px; }
.v-meter-cap { stroke-width:3px; }
.v-meter-alert { stroke-width:1.5px; }
.v-alert-label,.v-cap-label { position:absolute; top:0; font-size:9px; line-height:12px; }
.v-alert-label { left:67%; }.v-cap-label { left:88%; }
.v-meter > p { font-size:11px; line-height:16px; color:var(--color-text-secondary); }
.v-meter-enquiry { position:absolute; left:72px; top:80px; width:320px; min-height:280px; z-index:2; }
.v-meter-enquiry .k-letterhead { flex-direction:row-reverse; }
.v-meter-enquiry .k-letterhead b { display:none; }
.v-meter-enquiry .k-letterhead span { font:600 9px/12px var(--p-font-family-display); margin-right:auto; }
.v-enquiry-ask { margin-top:16px!important; font-size:11px; line-height:16px; }
.v-meter-enquiry .v-fields > div { padding-block:4px; }
.v-call-log { position:absolute; left:144px; top:316px; width:300px; min-height:196px; z-index:4; }
.v-call-log.k-stack > .k-body { height:auto; min-height:inherit; }
.v-call-log .k-register th:last-child { width:48px; text-align:right; }
.v-call-log .k-doc-subtitle { margin-top:20px!important; }
.v-model-call { position:absolute; left:814px; top:494px; width:320px; height:196px; z-index:5; }
.v-system-link { position:absolute; inset:0; width:100%; height:100%; fill:none; stroke:var(--color-text-secondary); stroke-width:1.5px; z-index:1; }
.v-model-service { position:absolute; left:1212px; top:538px; width:106px; height:56px; border:1px solid var(--color-text-secondary); background:repeating-linear-gradient(-45deg,transparent 0 8px,var(--color-line-construction) 8px 9px); }
.v-model-service span { position:absolute; left:0; top:64px; white-space:nowrap; font-size:11px; }
.v-gateway-person { position:absolute; left:424px; top:644px; z-index:3; }

@media(max-width:1100px) {
 .v-clipboard,.v-checklist,.v-docket,.v-index-card,.v-index-document,.v-tray-fix,.v-tray-migration { --k-hair:var(--v-hair-upright); }
 .v-frame { width:calc(100% - 32px); max-width:660px; }
 .v-header { height:72px; gap:12px; }.v-brand { font-size:12px; gap:6px; }.v-brand img { width:24px; height:24px; }
 .v-header > .v-button { padding-inline:14px; min-height:40px; }.v-nav { display:none; }
 .v-mobile-menu { display:block; font-size:12px; line-height:16px; }.v-mobile-menu > summary { min-height:32px; display:flex; align-items:center; cursor:pointer; }
 .v-mobile-menu > nav { position:absolute; left:0; right:0; top:72px; padding:20px; display:grid; gap:12px; background:var(--color-paper); box-shadow:var(--k-sh-base),var(--k-sh-contact); }
 .v-mobile-menu .v-menu-list { position:static; box-shadow:none; padding:12px 16px; }.v-mobile-menu nav > a { padding-block:6px; }
 .v-stages { gap:20px; flex-wrap:wrap; row-gap:10px; }.v-opening { padding-block:56px 40px; }.v-stages + .v-opening { padding-top:32px; }
 .v-opening h1 { font-size:38px; line-height:44px; margin-top:12px; }.v-region { font-size:12px; line-height:16px; }
 .v-section { display:flex; flex-direction:column; gap:24px; padding-top:16px; }
 .v-section > h2 { font-size:21px; line-height:28px; max-width:100%; }
 .v-section > .v-prose:empty { display:none; }.v-section > .v-picture { width:100%; margin-top:0; }
 .v-close { display:flex; flex-direction:column; gap:40px; margin-top:72px; }.v-close h2 { font-size:28px; line-height:32px; }
 .v-close-drawing { height:264px; }.v-close-note { left:68px; width:260px; }.v-close p { margin-top:16px; }
 .v-footer { margin-top:64px; }.v-footer-line { font-size:21px; line-height:28px; }.v-footer-nav { grid-template-columns:1fr 1fr; gap:32px 16px; margin-top:32px; }.v-footer-nav h2 { font-size:12px; line-height:16px; }.v-footer-base { flex-wrap:wrap; gap:12px 24px; }
 .v-desktop { display:none; }.v-phone { display:block; }
 .v-object.k-doc--read { --k-pad:20px; }
 .v-ledger-sheet .k-body { padding:24px 18px 28px 24px; }.v-ledger-sheet .k-doc-title { font-size:28px; line-height:32px; margin-block:16px!important; }
 .v-mark-col { width:48px; }.v-ledger-table td { padding-right:12px; }.v-ledger-table td:last-child { padding-left:4px; }.v-ledger-table thead th:last-child { font-size:9px; }.v-ledger-group th { font-size:21px; line-height:28px; }
 .v-option { font-size:9px; line-height:16px; }
 .v-ledger-light { inset:0 -16px 0 -16px; }
 .v-programme-document { width:320px; }
 .v-programme-document .k-body { padding:24px 24px 64px; }
 .v-schedule-sheet { width:326px; left:32px; min-height:320px; }
 .v-schedule-sheet .k-body { padding:18px; }
 .v-week-axis { grid-template-columns:88px repeat(13,1fr); }
 .v-cadence > div { grid-template-columns:76px 1fr; min-height:44px; }
 .v-cadence p { font-size:10px; }
 .v-section > .v-picture-clipboard { margin-top:16px; }
 .v-clipboard { rotate:0deg; padding:24px 12px 14px; }.v-checklist .k-body { padding:28px 20px; }.v-checklist .k-doc-title { font-size:28px; line-height:32px; }.v-check-row { gap:12px; padding-block:16px; }.v-check-consequence { font-size:21px; line-height:28px; }
 .v-ruler-stage { padding-bottom:24px; }.v-ruler { width:100%; min-height:728px; padding:20px; }.v-ruler-track { height:550px; margin-top:36px; }
 .v-ruler-heading { position:relative; }.v-ruler-heading .k-letterhead > span { position:absolute; left:8px; top:32px; font-size:9px; line-height:12px; }
 .v-ruler-axis { top:0; left:24px; bottom:0; right:auto; height:528px; width:1px; border-top:0; border-left:1px solid var(--color-text-primary); }
 .v-ruler-axis li { left:0; top:calc(100% * var(--v-week) / 12); padding:0; height:1px; }.v-ruler-axis li::before { top:0; left:0; width:7px; height:0; border:0; border-top:1px solid var(--color-text-primary); }.v-ruler-axis li span { translate:none; position:absolute; top:-6px; right:8px; }
 .v-duration { top:0; bottom:22px; height:auto; left:calc(120px - var(--v-row,0) * 24px); width:1px; right:auto; }
 .v-duration-bar { top:0; left:0; width:0; height:calc(100% * var(--v-low) / 12); border:0; border-left:3px solid var(--color-text-primary); }
 .v-duration-range { top:calc(100% * var(--v-low) / 12); left:0; width:0; height:calc(100% * (var(--v-high) - var(--v-low)) / 12); border:0; border-left:1px solid var(--color-text-secondary); }
 .v-duration-range::after { right:auto; left:-5px; top:auto; bottom:0; width:10px; height:0; border:0; border-top:1px solid var(--color-text-primary); }
 .v-duration-label { position:absolute; left:calc(40px + var(--v-row,0) * 24px); top:calc(100% * var(--v-high) / 12 - 8px); width:148px; display:block; font-size:12px; line-height:16px; }.v-duration-label > span { display:block; margin-top:4px; font-size:11px; }
 .v-duration-leader { display:block; position:absolute; top:calc(100% * var(--v-high) / 12); left:5px; width:calc(28px + var(--v-row,0) * 24px); border-top:1px solid var(--color-line-ui); }
 .v-day-scale { margin-top:12px; }.v-day-scale svg { width:132px; }
 .v-docket-stage { padding-top:8px; }.v-backlog { width:278px; height:310px; }.v-docket { left:48px; width:298px; margin-top:-48px; rotate:0deg; }.v-docket .k-body { padding:20px 24px 28px; }
 .v-index-stage { width:358px; height:824px; }
 .v-index-back { left:8px; right:0; top:72px; bottom:32px; }
 .v-index-card { left:calc(8px + var(--v-card) * 4px); width:310px; height:400px; }
 .v-index-tab { max-width:286px; padding:8px 12px; font-size:14px; line-height:20px; }
 .v-index-content { padding:80px 24px 64px; }
 .v-index-card-6 .v-index-content { padding-top:24px; }
 .v-index-line { font-size:28px; line-height:32px; }
 .v-index-document { width:240px; margin-top:20px!important; margin-left:10px; }
 .v-index-document .k-body { padding:16px; }
 .v-index-front { top:752px; left:0; right:8px; padding:8px 20px; }
 .v-index-side { width:8px; }
 .v-map-stage { height:576px; }
 .v-map-entry { top:0; left:0; width:72px; padding:0 0 8px; font-size:16px; line-height:24px; }
 .v-doorway { width:104px; height:auto; bottom:412px; left:28px; text-align:center; }
 .v-doorway h3 { font-size:16px; line-height:20px; }
 .v-doorway-0 { left:76px; width:72px; }
 .v-doorway-1 { left:148px; width:88px; }.v-doorway-2 { left:236px; }
 .v-doorway-3 { left:216px; top:476px; bottom:auto; }.v-doorway-4 { left:40px; top:476px; bottom:auto; }
 .v-map-person { left:18px; top:522px; }
 .v-tray-stage { height:696px; }
 .v-tray-in { left:-8px; }
 .v-tray-out { left:94px; top:328px; }
 .v-tray-rim { padding-inline:10px; }
 .v-internal-cover { width:304px; left:16px; }.v-internal-cover .k-body { padding:28px; }.v-internal-cover .k-doc-title { font-size:28px; line-height:32px; }.v-internal-stamp { right:-16px; bottom:22px; }
 .v-signoff-draft { width:310px; }
 .v-signoff-draft .k-body { padding:24px 24px 72px; }
 .v-signoff-sheet { width:310px; left:40px; }
 .v-signoff-sheet .k-body { padding:24px; }
 .v-keys-heading { width:342px; padding-left:48px; }
 .v-keys-heading h3 { font-size:28px; line-height:32px; }
 .v-key-row { width:326px; }
 .v-key-tag { padding-right:12px; gap:4px 8px; }
 .v-key-tag > span { font-size:10px; }
 .v-key-tag small { font-size:10px; }
 .v-sealed-drawer { padding:12px; }
 .v-sealed-drawer p { max-width:170px; font-size:10px; }
 .v-gateway-stage { height:1284px; }.v-gateway-light { inset:64px -16px 0 0; }.v-gateway-field { inset:76px 0 24px 48px; }
 .v-meter-enquiry { left:8px; top:16px; width:280px; min-height:268px; }.v-call-log { left:84px; top:236px; width:264px; min-height:168px; }.v-call-log .k-body { padding:16px; }.v-call-log .k-doc-subtitle { margin-top:12px!important; }
 .v-gateway-door { left:24px; top:360px; width:310px; height:652px; padding:56px 24px 24px; }.v-gateway-door > h3 { font-size:21px; line-height:28px; }.v-gateway-door::after { left:-8px; right:-8px; top:-8px; }.v-door-sill { left:-24px; right:-24px; }
 .v-posted { left:16px; top:108px; width:264px; min-height:428px; }.v-posted .k-body { padding:20px; }.v-term-main { font-size:21px; line-height:28px; }.v-term-list { font-size:12px; line-height:20px; }.v-meter h4 { font-size:16px; line-height:24px; }.v-meter-scale { height:78px; }
 .v-gateway-handle { right:9px; top:372px; }.v-gate-plate { bottom:22px; }.v-model-call { left:8px; top:962px; width:264px; height:192px; }.v-model-call .v-fields > div { grid-template-columns:56px 1fr; padding-block:8px; }.v-model-service { left:284px; top:1098px; width:66px; height:44px; }.v-model-service span { top:52px; left:-12px; font-size:9px; }.v-gateway-person { left:176px; top:1232px; }.v-gateway-person .k-person__name { font-size:16px; line-height:24px; }.v-gateway-person .k-person__role { font-size:12px; line-height:16px; }
}

@media(min-width:600px) and (max-width:1100px) {
 .v-section-margin .v-picture { max-width:432px; }.v-index-stage,.v-map-stage,.v-gateway-stage { width:358px; margin-inline:auto; }
}
