fix(cv): align preview pagination with native PDF

This commit is contained in:
cesnimda
2026-10-07 08:46:43 +02:00
parent 046dc304aa
commit efc9e7bdd4
182 changed files with 16092 additions and 47 deletions
@@ -0,0 +1,245 @@
{
"manualScreenReaderAcceptance": "open for P5-15",
"scans": [
{
"case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/en preview keyboard, pagination and responsive state",
"capture": "transition-900-axe",
"violations": [],
"incomplete": [
{
"id": "aria-prohibited-attr",
"nodes": 2
},
{
"id": "color-contrast",
"nodes": 11
}
]
},
{
"case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/en preview keyboard, pagination and responsive state",
"capture": "transition-1024-axe",
"violations": [],
"incomplete": [
{
"id": "aria-prohibited-attr",
"nodes": 2
},
{
"id": "color-contrast",
"nodes": 17
}
]
},
{
"case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/en preview keyboard, pagination and responsive state",
"capture": "transition-1440-axe",
"violations": [],
"incomplete": [
{
"id": "aria-prohibited-attr",
"nodes": 2
},
{
"id": "color-contrast",
"nodes": 17
}
]
},
{
"case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/en preview keyboard, pagination and responsive state",
"capture": "loaded-final-axe",
"violations": [],
"incomplete": [
{
"id": "aria-prohibited-attr",
"nodes": 2
},
{
"id": "color-contrast",
"nodes": 17
}
]
},
{
"case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/nb preview keyboard, pagination and responsive state",
"capture": "transition-900-axe",
"violations": [],
"incomplete": [
{
"id": "aria-prohibited-attr",
"nodes": 2
},
{
"id": "color-contrast",
"nodes": 11
}
]
},
{
"case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/nb preview keyboard, pagination and responsive state",
"capture": "transition-1024-axe",
"violations": [],
"incomplete": [
{
"id": "aria-prohibited-attr",
"nodes": 2
},
{
"id": "color-contrast",
"nodes": 18
}
]
},
{
"case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/nb preview keyboard, pagination and responsive state",
"capture": "transition-1440-axe",
"violations": [],
"incomplete": [
{
"id": "aria-prohibited-attr",
"nodes": 2
},
{
"id": "color-contrast",
"nodes": 18
}
]
},
{
"case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/nb preview keyboard, pagination and responsive state",
"capture": "loaded-final-axe",
"violations": [],
"incomplete": [
{
"id": "aria-prohibited-attr",
"nodes": 2
},
{
"id": "color-contrast",
"nodes": 18
}
]
},
{
"case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/nb preview keyboard, pagination and responsive state",
"capture": "transition-900-axe",
"violations": [],
"incomplete": [
{
"id": "aria-prohibited-attr",
"nodes": 2
},
{
"id": "color-contrast",
"nodes": 11
}
]
},
{
"case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/nb preview keyboard, pagination and responsive state",
"capture": "transition-1024-axe",
"violations": [],
"incomplete": [
{
"id": "aria-prohibited-attr",
"nodes": 2
},
{
"id": "color-contrast",
"nodes": 17
}
]
},
{
"case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/nb preview keyboard, pagination and responsive state",
"capture": "transition-1440-axe",
"violations": [],
"incomplete": [
{
"id": "aria-prohibited-attr",
"nodes": 2
},
{
"id": "color-contrast",
"nodes": 16
}
]
},
{
"case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/nb preview keyboard, pagination and responsive state",
"capture": "loaded-final-axe",
"violations": [],
"incomplete": [
{
"id": "aria-prohibited-attr",
"nodes": 2
},
{
"id": "color-contrast",
"nodes": 16
}
]
},
{
"case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/en preview keyboard, pagination and responsive state",
"capture": "transition-900-axe",
"violations": [],
"incomplete": [
{
"id": "aria-prohibited-attr",
"nodes": 2
},
{
"id": "color-contrast",
"nodes": 11
}
]
},
{
"case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/en preview keyboard, pagination and responsive state",
"capture": "transition-1024-axe",
"violations": [],
"incomplete": [
{
"id": "aria-prohibited-attr",
"nodes": 2
},
{
"id": "color-contrast",
"nodes": 18
}
]
},
{
"case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/en preview keyboard, pagination and responsive state",
"capture": "transition-1440-axe",
"violations": [],
"incomplete": [
{
"id": "aria-prohibited-attr",
"nodes": 2
},
{
"id": "color-contrast",
"nodes": 18
}
]
},
{
"case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/en preview keyboard, pagination and responsive state",
"capture": "loaded-final-axe",
"violations": [],
"incomplete": [
{
"id": "aria-prohibited-attr",
"nodes": 2
},
{
"id": "color-contrast",
"nodes": 18
}
]
}
]
}
@@ -0,0 +1,897 @@
{
"statistics": {
"startTime": "2026-10-07T06:25:48.039Z",
"duration": 955178.9619999999,
"expected": 98,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"actualPasses": 98,
"expectedFailures": 0,
"unexpected": [],
"cases": [
{
"file": "accessibility.spec.ts",
"title": "public entry points meet automated WCAG A and AA checks",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "accessibility.spec.ts",
"title": "primary authenticated workspaces meet automated WCAG A and AA checks",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "account-isolation.spec.ts",
"title": "retained profile request from A cannot write using B cookies and fresh B CSRF",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "account-isolation.spec.ts",
"title": "missing and forged session contexts fail closed while same-account profile saves work",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "account-isolation.spec.ts",
"title": "crafted CV identifiers cannot cross read update delete or job-association ownership",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "account-isolation.spec.ts",
"title": "[P5-00 PRES-E05 E07 E08] account switch disposes open command, account and notification surfaces",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "account-isolation.spec.ts",
"title": "two tabs discard A's private form before B can use it, including Back navigation",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "analytics-presentation.spec.ts",
"title": "[PRES-S01 S02 E07 E08 E09 J05 J09] Analytics native reports, direct entry, period, drill-down and owner isolation",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "analytics-presentation.spec.ts",
"title": "[PRES-S01 E08] Analytics independent loading and failure states never masquerade as empty reports",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "board-presentation.spec.ts",
"title": "[PRES-J07 J05 W01 W02 E07 E08 E09] Board query membership matches Table and preserves moves, focus and route",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "board-presentation.spec.ts",
"title": "[PRES-J05 J07 E07 W01] legacy Board replaces history and preserves query, hash and route state; default Jobs stays Table",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "board-presentation.spec.ts",
"title": "[PRES-J07 E08] Board loading, retryable error and fully empty columns",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "builder-preview-keyboard.spec.ts",
"title": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/en preview keyboard, pagination and responsive state",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "builder-preview-keyboard.spec.ts",
"title": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/nb preview keyboard, pagination and responsive state",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "builder-preview-keyboard.spec.ts",
"title": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/nb preview keyboard, pagination and responsive state",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "builder-preview-keyboard.spec.ts",
"title": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/en preview keyboard, pagination and responsive state",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "csv-export.spec.ts",
"title": "CSV export has safe cells and headers, and browser download preserves its UTF-8 bytes",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "cv-pagination.spec.ts",
"title": "[PRES-C09 C12] original flowing/boundary fixtures retain native PDF page membership",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "cv-pagination.spec.ts",
"title": "[PRES-C06 C09] pagination waits for image layout and publishes one settled measurement",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "cv-readiness.spec.ts",
"title": "[PRES-C06 C08 C09 C12] native preview/PDF fidelity corpus records unchanged output at fixed settings",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "cv-readiness.spec.ts",
"title": "[PRES-C10 E05] independent authenticated clients cannot save or restore a stale CV revision",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "cv-readiness.spec.ts",
"title": "[PRES-C06 C10 E08] stale editor retains and downloads its draft; reviewed reload resumes versioned saves",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "dashboard-presentation.spec.ts",
"title": "[PRES-S01 S02 E07 E08 E09] Dashboard native data, visibility and responsive presentation",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "dashboard-presentation.spec.ts",
"title": "[PRES-S01 E08] Dashboard loading and independent failed resources retain retry and exact values",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "job-discovery.spec.ts",
"title": "discovery remains usable across widths and opens the reviewed import",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "job-overview-presentation.spec.ts",
"title": "[PRES-W01 W02 W03 J05 E08 E09] native Job header/Overview retains actions, custom status, aliases and mobile progress keyboard access",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "job-overview-presentation.spec.ts",
"title": "[PRES-W01 W02 E08] Job Overview loading, failed read, retry and unavailable resource remain explicit",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "job-sections-presentation.spec.ts",
"title": "[PRES-W01 W08 M01 E08] Job section loading and partial read failures stay explicit and recover locally",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "job-sections-presentation.spec.ts",
"title": "[PRES-W01–W11 E08 E09] native Job sections retain drafts, frozen documents, tasks and history (en, light)",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "job-sections-presentation.spec.ts",
"title": "[PRES-W01–W11 E08 E09] native Job sections retain drafts, frozen documents, tasks and history (en, dark)",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "job-sections-presentation.spec.ts",
"title": "[PRES-W01–W11 E08 E09] native Job sections retain drafts, frozen documents, tasks and history (nb, light)",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "job-sections-presentation.spec.ts",
"title": "[PRES-W01–W11 E08 E09] native Job sections retain drafts, frozen documents, tasks and history (nb, dark)",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "kanban-theme.spec.ts",
"title": "kanban columns use dark theme surfaces",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "named-controls-modal-state.spec.ts",
"title": "[PRES-E07 PRES-E08 PRES-J08 PRES-C08 PRES-C09 PRES-W06 PRES-W08] light/en/1440 named controls, modal keyboard and retained draft",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "named-controls-modal-state.spec.ts",
"title": "[PRES-E07 PRES-E08 PRES-J08 PRES-C08 PRES-C09 PRES-W06 PRES-W08] dark/nb/1440 named controls, modal keyboard and retained draft",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "named-controls-modal-state.spec.ts",
"title": "[PRES-E07 PRES-E08 PRES-J08 PRES-C08 PRES-C09 PRES-W06 PRES-W08] light/nb/390 named controls, modal keyboard and retained draft",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "named-controls-modal-state.spec.ts",
"title": "[PRES-E07 PRES-E08 PRES-J08 PRES-C08 PRES-C09 PRES-W06 PRES-W08] dark/en/390 named controls, modal keyboard and retained draft",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "redesign-preservation.spec.ts",
"title": "[PRES-C01 PRES-C06 PRES-C07 PRES-C10] mobile CV override persists without changing the canonical profile or sibling CV",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "redesign-preservation.spec.ts",
"title": "[PRES-W01 PRES-W05 PRES-W06 PRES-W07 PRES-W08] legacy workspace preserves frozen documents after current sources change",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "redesign-preservation.spec.ts",
"title": "[PRES-W01 PRES-W04 PRES-W08 PRES-E08 PRES-E09] native workspace aliases, keyboard sections and history retain context (en, light)",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "redesign-preservation.spec.ts",
"title": "[PRES-W01 PRES-W04 PRES-W08 PRES-E08 PRES-E09] native workspace aliases, keyboard sections and history retain context (en, dark)",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "redesign-preservation.spec.ts",
"title": "[PRES-W01 PRES-W04 PRES-W08 PRES-E08 PRES-E09] native workspace aliases, keyboard sections and history retain context (nb, light)",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "redesign-preservation.spec.ts",
"title": "[PRES-W01 PRES-W04 PRES-W08 PRES-E08 PRES-E09] native workspace aliases, keyboard sections and history retain context (nb, dark)",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "redesign-preservation.spec.ts",
"title": "[PRES-S03 PRES-W11] responsive settings navigation keeps rule edits and persists notification preferences",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "redesign-preservation.spec.ts",
"title": "[PRES-S03] rule changes persist through the real API",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "redesign-preservation.spec.ts",
"title": "[PRES-E07 PRES-W01 PRES-J04] keyboard command navigation and legacy workspace entry preserve the selected job",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "redesign-preservation.spec.ts",
"title": "[PRES-A01 PRES-S04 PRES-E07] non-admin navigation cannot grant API privileges or unlock CV AI",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "semantic-foundations.spec.ts",
"title": "[PRES-E08 PRES-J08] light/en/1440 loading → error → retry → empty → populated",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "semantic-foundations.spec.ts",
"title": "[PRES-E08 PRES-J08] light/en/390 loading → error → retry → empty → populated",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "semantic-foundations.spec.ts",
"title": "[PRES-E08 PRES-J08] light/nb/1440 loading → error → retry → empty → populated",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "semantic-foundations.spec.ts",
"title": "[PRES-E08 PRES-J08] light/nb/390 loading → error → retry → empty → populated",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "semantic-foundations.spec.ts",
"title": "[PRES-E07 PRES-E08 PRES-J05 PRES-J07] light loaded status semantics, navigation and command focus",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "semantic-foundations.spec.ts",
"title": "[PRES-E08 PRES-C06 PRES-C07 PRES-C08 PRES-C09 PRES-C11 PRES-S03] light loaded CV tabs, selects and settings",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "semantic-foundations.spec.ts",
"title": "[PRES-E08 PRES-J08] dark/en/1440 loading → error → retry → empty → populated",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "semantic-foundations.spec.ts",
"title": "[PRES-E08 PRES-J08] dark/en/390 loading → error → retry → empty → populated",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "semantic-foundations.spec.ts",
"title": "[PRES-E08 PRES-J08] dark/nb/1440 loading → error → retry → empty → populated",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "semantic-foundations.spec.ts",
"title": "[PRES-E08 PRES-J08] dark/nb/390 loading → error → retry → empty → populated",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "semantic-foundations.spec.ts",
"title": "[PRES-E07 PRES-E08 PRES-J05 PRES-J07] dark loaded status semantics, navigation and command focus",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "semantic-foundations.spec.ts",
"title": "[PRES-E08 PRES-C06 PRES-C07 PRES-C08 PRES-C09 PRES-C11 PRES-S03] dark loaded CV tabs, selects and settings",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "settings-page-layout.spec.ts",
"title": "[PRES-E07 E08 E09 S03 S04 S05 J05 J10 M06 W11] light/en Settings headings, reflow and retained actions",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "settings-page-layout.spec.ts",
"title": "[PRES-E07 E08 E09 S03 S04 S05 J05 J10 M06 W11] light/nb Settings headings, reflow and retained actions",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "settings-page-layout.spec.ts",
"title": "[PRES-E07 E08 E09 S03 S04 S05 J05 J10 M06 W11] dark/en Settings headings, reflow and retained actions",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "settings-page-layout.spec.ts",
"title": "[PRES-E07 E08 E09 S03 S04 S05 J05 J10 M06 W11] dark/nb Settings headings, reflow and retained actions",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-00 PRES-E07 E08 A03] light-en mobile labels, focus and admin reflow",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-00 PRES-E07 J03 J08] light-en command list, keyboard and no-write actions",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-02 PRES-E07 E08 E09 S02] light-en utility search and notification states",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-00 PRES-E08 C06 S05] light-en real Tooltip contrast and open-toast action access",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-01 PRES-E07 E08 A03] light-en grouped shell, rail menu and route focus",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-00 PRES-E07 E09 C06 S02 S03] light-en dirty editor survives shell utilities and cancel",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-00 PRES-E07 E08 A03] light-nb mobile labels, focus and admin reflow",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-00 PRES-E07 J03 J08] light-nb command list, keyboard and no-write actions",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-02 PRES-E07 E08 E09 S02] light-nb utility search and notification states",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-00 PRES-E08 C06 S05] light-nb real Tooltip contrast and open-toast action access",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-01 PRES-E07 E08 A03] light-nb grouped shell, rail menu and route focus",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-00 PRES-E07 E08 A03] dark-en mobile labels, focus and admin reflow",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-00 PRES-E07 J03 J08] dark-en command list, keyboard and no-write actions",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-02 PRES-E07 E08 E09 S02] dark-en utility search and notification states",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-00 PRES-E08 C06 S05] dark-en real Tooltip contrast and open-toast action access",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-01 PRES-E07 E08 A03] dark-en grouped shell, rail menu and route focus",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-00 PRES-E07 E08 A03] dark-nb mobile labels, focus and admin reflow",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-00 PRES-E07 J03 J08] dark-nb command list, keyboard and no-write actions",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-02 PRES-E07 E08 E09 S02] dark-nb utility search and notification states",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-00 PRES-E08 C06 S05] dark-nb real Tooltip contrast and open-toast action access",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-01 PRES-E07 E08 A03] dark-nb grouped shell, rail menu and route focus",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "shell-readiness.spec.ts",
"title": "[P5-00 PRES-E07 E09 C06 S02 S03] dark-nb dirty editor survives shell utilities and cancel",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "smoke.spec.ts",
"title": "API liveness and database readiness are separate public probes",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "smoke.spec.ts",
"title": "public plans stay honest, responsive and keyboard accessible",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "smoke.spec.ts",
"title": "login establishes an authenticated session",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "smoke.spec.ts",
"title": "a Free account keeps manual work available while AI actions stay honestly locked",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "smoke.spec.ts",
"title": "a saved job can be created through the reviewed UI flow",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "smoke.spec.ts",
"title": "the dedicated application workspace survives deep links, long data and unsaved navigation",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "smoke.spec.ts",
"title": "Career Workspace loads from the authenticated application shell",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "smoke.spec.ts",
"title": "a public CV renders anonymously and downloads as PDF",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "smoke.spec.ts",
"title": "the Code template exports a long structured CV as searchable multi-page PDF",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "table-density.spec.ts",
"title": "[PRES-J05 J06 W01 W02 S03 E08 E09] light/en table and cards preserve behavior at both densities",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "table-density.spec.ts",
"title": "[PRES-J05 J06 W01 W02 S03 E08 E09] light/nb table and cards preserve behavior at both densities",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "table-density.spec.ts",
"title": "[PRES-J05 J06 W01 W02 S03 E08 E09] dark/en table and cards preserve behavior at both densities",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
},
{
"file": "table-density.spec.ts",
"title": "[PRES-J05 J06 W01 W02 S03 E08 E09] dark/nb table and cards preserve behavior at both densities",
"expectedStatus": "passed",
"outcome": "expected",
"actualStatuses": [
"passed"
]
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 716 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 716 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 920 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 717 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 860 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

@@ -0,0 +1,97 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>&#197;se Fixture — ATS Classic</title>
<style>
*{box-sizing:border-box;}
:root{--cv-accent-color:#334155;--cv-accent-ink:#fff;--cv-accent-soft:color-mix(in srgb,#334155 28%,transparent);--cv-ink:#111827;--cv-muted:#374151;--cv-paper:#ffffff;--cv-page-margin:16mm;}
html,body{min-width:0;}
body{margin:0;background:#e9edf2;color:var(--cv-ink);font-family:Arial, Helvetica, sans-serif;font-size:10pt;line-height:1.42;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.page{width:210mm;min-height:297mm;margin:0 auto;background:var(--cv-paper);overflow:visible;overflow-wrap:anywhere;word-break:normal;}
h1,h2{font-family:Arial, Helvetica, sans-serif;}
.name{margin:0;font-size:24pt;color:#111827;line-height:1.1;overflow-wrap:anywhere;}
.kicker{text-transform:uppercase;letter-spacing:.3em;font-size:7.5pt;color:#334155;margin-bottom:1.5mm;}
.headline{margin-top:1.5mm;color:#374151;font-size:10.5pt;}
.head-text,.main,.sidebar,.cols>*{min-width:0;}
.head-text{flex:1;}
.photo{width:30mm;height:30mm;overflow:hidden;flex:0 0 auto;border:1px solid var(--cv-accent-soft);}
.photo-square{border-radius:2mm;}
.photo-rounded{border-radius:5mm;}
.photo-circle{border-radius:50%;}
.photo img{width:100%;height:100%;object-fit:cover;display:block;}
.contact{display:flex;gap:3mm;flex-wrap:wrap;color:#374151;font-size:9.5pt;margin-top:2.5mm;}
.contact-stacked{flex-direction:column;gap:1.8mm;}
.contact-item{display:inline-flex;align-items:center;gap:1.2mm;min-width:0;max-width:100%;overflow-wrap:anywhere;}
.contact a{color:inherit;text-decoration:none;min-width:0;overflow-wrap:anywhere;word-break:break-word;}
.main a{color:var(--cv-accent-color);text-decoration-color:var(--cv-accent-soft);}
.contact svg{width:3.2mm;height:3.2mm;flex:0 0 auto;opacity:.85;}
.hero{margin-bottom:6mm;}
.hero .name{font-size:21pt;}
.section{margin-top:6mm;}
.section:first-child{margin-top:0;}
.section-title{margin:0 0 2.6mm 0;font-size:12pt;font-weight:700;color:#334155;}
.section-title{text-transform:uppercase;letter-spacing:.14em;font-size:10.2pt;color:var(--cv-accent-color);border-bottom:1px solid var(--cv-accent-soft);padding-bottom:1.4mm;}
.section-presentation-grid{display:grid;grid-template-columns:repeat(var(--cv-section-columns,1),minmax(0,1fr));column-gap:4mm;align-items:start;}
.section-presentation-grid>.section-title{grid-column:1/-1;}
.section-presentation-grid>.entry{min-width:0;}
.section-presentation-compact>.entry{margin-bottom:2.48mm;}
.section-presentation-compact>.bullets li{margin-bottom:0.75mm;}
.section-presentation-bubble>.tags,.section-presentation-bubble>.bullets{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:1.4mm;}
.section-presentation-bubble>.bullets li,.section-presentation-bubble>.tags li{margin:0;border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;}
.section-presentation-bubble>.bullets li::marker{content:"";}
.bullets{margin:0;padding-left:4.5mm;}
.bullets li{margin:0 0 1.6mm 0;}
.bullets li::marker{color:var(--cv-accent-color);}
.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:1.8mm;}
.skills-text{margin:0;overflow-wrap:anywhere;}
.tag{border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;font-size:9.5pt;max-width:100%;overflow-wrap:anywhere;}
.paragraphs p{margin:0 0 1.8mm;white-space:pre-line;}
.skill-groups{display:grid;gap:1.7mm;}
.skill-group{display:grid;grid-template-columns:minmax(24mm,.3fr) minmax(0,1fr);gap:3mm;break-inside:avoid-page;page-break-inside:avoid;}
.skill-group-name{font-family:'Roboto Mono', Consolas, monospace;font-weight:700;color:var(--cv-accent-color);overflow-wrap:anywhere;}
.skill-group-items{display:flex;flex-wrap:wrap;gap:.8mm 3mm;list-style:none;margin:0;padding:0;}
.skill-group-items li{overflow-wrap:anywhere;}
.entry{margin-bottom:4.5mm;}
.entry:last-child{margin-bottom:0;}
.entry-head{display:flex;justify-content:space-between;gap:1.5mm 4mm;align-items:baseline;flex-wrap:wrap;break-after:avoid-page;page-break-after:avoid;}
.entry-title{font-weight:700;font-size:11pt;min-width:0;flex:1 1 50mm;overflow-wrap:anywhere;}
.entry-meta{color:#374151;font-size:9.5pt;white-space:normal;text-align:right;max-width:100%;overflow-wrap:anywhere;}
.entry-subtitle{color:#374151;font-size:10pt;margin:.4mm 0 1.2mm 0;}
.entry-tags{margin-top:1.4mm;}
.main{padding:0 16mm 16mm 16mm;}
.header{padding:16mm 16mm 6mm 16mm;display:flex;gap:6mm;align-items:center;}
.header-band{background:#334155;color:#fff;}
.header-band .name,.header-band .headline,.header-band .contact,.header-band .contact-item,.header-band a{color:#fff;}
.header-centered{flex-direction:column;text-align:center;justify-content:center;}
.header-centered .contact{justify-content:center;}
.header-plain{border-bottom:2px solid #334155;}
/* Print quality: keep normal entries whole, but allow intentionally classified long entries and
long list items to flow. An unsplittable block taller than a page is otherwise clipped. */
.entry{break-inside:avoid-page;page-break-inside:avoid;}
.entry-flow{break-inside:auto;page-break-inside:auto;}
.section-title{break-after:avoid-page;page-break-after:avoid;}
.section-title + .entry,.section-title + .bullets,.section-title + .tags,.section-title + .paragraphs,.section-title + .skill-groups{break-before:avoid-page;page-break-before:avoid;}
.section{break-inside:avoid-page;page-break-inside:avoid;}
.section-flow{break-inside:auto;page-break-inside:auto;}
.tag,.contact-item{break-inside:avoid;}
.bullets li{break-inside:avoid-page;page-break-inside:avoid;orphans:2;widows:2;overflow-wrap:anywhere;}
.bullets li.item-flow{break-inside:auto;page-break-inside:auto;}
/* Physical-page margins belong to paged media rather than an individual template box. This makes
the same top/bottom safe area repeat on every page while themes continue to own horizontal
layout and density. Screen preview mirrors these bounds in CvBuilderEditor. */
@media print{
body{background:transparent;}
.page{width:auto;min-height:0;margin:0;}
.cols{min-height:0;}
.header{padding-top:0;}
.main,.sidebar{padding-top:0;padding-bottom:0;}
}
@page{size:210mm 297mm;margin:16mm 0;}
</style>
</head>
<body>
<main class="page"><header class="header header-plain"><div class="head-text"><h1 class="name">&#197;se Fixture</h1><div class="headline">Career platform engineer</div><div class="contact contact-inline"><span class="contact-item"><a href="mailto:ase@example.test">ase@example.test</a></span><span class="contact-item">Oslo, Norge</span></div></div></header><section class="main"><section class="section section-summary section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Summary</span></h2><ul class="bullets"><li>R01 Builds reliable and accessible career software using documented evidence.</li></ul></section><section class="section section-experience section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Experience</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E01 Platform engineer</div></div><div class="entry-subtitle">Nordlys Fixture AS</div><ul class="bullets"><li>B01 Delivered accessible application workflows with documented outcomes.</li><li>B02 Maintained reliable APIs and verified releases.</li></ul></article></section><section class="section section-education section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Education</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E02 Computer science</div></div><div class="entry-subtitle">Fixture University</div></article></section><section class="section section-projects section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Projects</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">P01 Evidence workspace</div></div><ul class="bullets"><li>B03 Created a source-grounded review workflow.</li></ul></article></section><section class="section section-skills section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Skills</span></h2><ul class="bullets skill-bullets"><li>C#</li><li>React</li><li>Norsk</li><li>Accessibility</li></ul></section><section class="section section-languages section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Languages</span></h2><ul class="tags"><li class="tag">Norsk — Native</li></ul></section></section></main>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

@@ -0,0 +1,97 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>&#197;se Fixture — Code</title>
<style>
*{box-sizing:border-box;}
:root{--cv-accent-color:#0b7a63;--cv-accent-ink:#fff;--cv-accent-soft:color-mix(in srgb,#0b7a63 28%,transparent);--cv-ink:#171a20;--cv-muted:#555e6b;--cv-paper:#ffffff;--cv-page-margin:15.24mm;}
html,body{min-width:0;}
body{margin:0;background:#e9edf2;color:var(--cv-ink);font-family:'Segoe UI', Roboto, Arial, sans-serif;font-size:9.4pt;line-height:1.43;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.page{width:210mm;min-height:297mm;margin:0 auto;background:var(--cv-paper);overflow:visible;overflow-wrap:anywhere;word-break:normal;}
h1,h2{font-family:'Segoe UI', Roboto, Arial, sans-serif;}
.name{margin:0;font-size:25.5pt;color:#171a20;line-height:1.1;overflow-wrap:anywhere;}
.kicker{text-transform:uppercase;letter-spacing:.3em;font-size:7.5pt;color:#0b7a63;margin-bottom:1.5mm;}
.headline{margin-top:1.5mm;color:#555e6b;font-size:9.9pt;}
.head-text,.main,.sidebar,.cols>*{min-width:0;}
.head-text{flex:1;}
.photo{width:30mm;height:30mm;overflow:hidden;flex:0 0 auto;border:1px solid var(--cv-accent-soft);}
.photo-square{border-radius:2mm;}
.photo-rounded{border-radius:5mm;}
.photo-circle{border-radius:50%;}
.photo img{width:100%;height:100%;object-fit:cover;display:block;}
.contact{display:flex;gap:3mm;flex-wrap:wrap;color:#555e6b;font-size:8.9pt;margin-top:2.5mm;}
.contact-stacked{flex-direction:column;gap:1.8mm;}
.contact-item{display:inline-flex;align-items:center;gap:1.2mm;min-width:0;max-width:100%;overflow-wrap:anywhere;}
.contact a{color:inherit;text-decoration:none;min-width:0;overflow-wrap:anywhere;word-break:break-word;}
.main a{color:var(--cv-accent-color);text-decoration-color:var(--cv-accent-soft);}
.contact svg{width:3.2mm;height:3.2mm;flex:0 0 auto;opacity:.85;}
.hero{margin-bottom:5.6mm;}
.hero .name{font-size:22.5pt;}
.section{margin-top:5.6mm;}
.section:first-child{margin-top:0;}
.section-title{margin:0 0 2.6mm 0;font-size:9.5pt;font-weight:700;color:#0b7a63;}
.section-title{text-transform:uppercase;letter-spacing:.14em;font-size:8.08pt;color:var(--cv-accent-color);border-bottom:1px solid var(--cv-accent-soft);padding-bottom:1.4mm;}
.section-presentation-grid{display:grid;grid-template-columns:repeat(var(--cv-section-columns,1),minmax(0,1fr));column-gap:4mm;align-items:start;}
.section-presentation-grid>.section-title{grid-column:1/-1;}
.section-presentation-grid>.entry{min-width:0;}
.section-presentation-compact>.entry{margin-bottom:2.37mm;}
.section-presentation-compact>.bullets li{margin-bottom:0.75mm;}
.section-presentation-bubble>.tags,.section-presentation-bubble>.bullets{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:1.4mm;}
.section-presentation-bubble>.bullets li,.section-presentation-bubble>.tags li{margin:0;border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;}
.section-presentation-bubble>.bullets li::marker{content:"";}
.bullets{margin:0;padding-left:4.5mm;}
.bullets li{margin:0 0 1.6mm 0;}
.bullets li::marker{color:var(--cv-accent-color);}
.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:1.8mm;}
.skills-text{margin:0;overflow-wrap:anywhere;}
.tag{border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;font-size:8.9pt;max-width:100%;overflow-wrap:anywhere;}
.paragraphs p{margin:0 0 1.8mm;white-space:pre-line;}
.skill-groups{display:grid;gap:1.7mm;}
.skill-group{display:grid;grid-template-columns:minmax(24mm,.3fr) minmax(0,1fr);gap:3mm;break-inside:avoid-page;page-break-inside:avoid;}
.skill-group-name{font-family:Consolas, 'Courier New', monospace;font-weight:700;color:var(--cv-accent-color);overflow-wrap:anywhere;}
.skill-group-items{display:flex;flex-wrap:wrap;gap:.8mm 3mm;list-style:none;margin:0;padding:0;}
.skill-group-items li{overflow-wrap:anywhere;}
.entry{margin-bottom:4.3mm;}
.entry:last-child{margin-bottom:0;}
.entry-head{display:flex;justify-content:space-between;gap:1.5mm 4mm;align-items:baseline;flex-wrap:wrap;break-after:avoid-page;page-break-after:avoid;}
.entry-title{font-weight:700;font-size:10.4pt;min-width:0;flex:1 1 50mm;overflow-wrap:anywhere;}
.entry-meta{color:#555e6b;font-size:8.9pt;white-space:normal;text-align:right;max-width:100%;overflow-wrap:anywhere;}
.entry-subtitle{color:#555e6b;font-size:9.4pt;margin:.4mm 0 1.2mm 0;}
.entry-tags{margin-top:1.4mm;}
.main{padding:0 15.24mm 15.24mm 15.24mm;}
.header{padding:15.24mm 15.24mm 5.6mm 15.24mm;display:flex;gap:6mm;align-items:center;}
.header-band{background:#0b7a63;color:#fff;}
.header-band .name,.header-band .headline,.header-band .contact,.header-band .contact-item,.header-band a{color:#fff;}
.header-centered{flex-direction:column;text-align:center;justify-content:center;}
.header-centered .contact{justify-content:center;}
.header-plain{border-bottom:2px solid #0b7a63;}
.main{counter-reset:cv-section;} .main>.section>.section-title{counter-increment:cv-section;font-family:Consolas, 'Courier New', monospace;font-weight:600;} .main>.section>.section-title::before{content:counter(cv-section,decimal-leading-zero) ' — ';color:var(--cv-accent-color);}
/* Print quality: keep normal entries whole, but allow intentionally classified long entries and
long list items to flow. An unsplittable block taller than a page is otherwise clipped. */
.entry{break-inside:avoid-page;page-break-inside:avoid;}
.entry-flow{break-inside:auto;page-break-inside:auto;}
.section-title{break-after:avoid-page;page-break-after:avoid;}
.section-title + .entry,.section-title + .bullets,.section-title + .tags,.section-title + .paragraphs,.section-title + .skill-groups{break-before:avoid-page;page-break-before:avoid;}
.section{break-inside:avoid-page;page-break-inside:avoid;}
.section-flow{break-inside:auto;page-break-inside:auto;}
.tag,.contact-item{break-inside:avoid;}
.bullets li{break-inside:avoid-page;page-break-inside:avoid;orphans:2;widows:2;overflow-wrap:anywhere;}
.bullets li.item-flow{break-inside:auto;page-break-inside:auto;}
/* Physical-page margins belong to paged media rather than an individual template box. This makes
the same top/bottom safe area repeat on every page while themes continue to own horizontal
layout and density. Screen preview mirrors these bounds in CvBuilderEditor. */
@media print{
body{background:transparent;}
.page{width:auto;min-height:0;margin:0;}
.cols{min-height:0;}
.header{padding-top:0;}
.main,.sidebar{padding-top:0;padding-bottom:0;}
}
@page{size:210mm 297mm;margin:15.24mm 0;}
</style>
</head>
<body>
<main class="page"><header class="header header-plain"><div class="head-text"><h1 class="name">&#197;se Fixture</h1><div class="headline">Career platform engineer</div><div class="contact contact-inline"><span class="contact-item"><a href="mailto:ase@example.test">ase@example.test</a></span><span class="contact-item">Oslo, Norge</span></div></div></header><section class="main"><section class="section section-summary section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Summary</span></h2><ul class="bullets"><li>R01 Builds reliable and accessible career software using documented evidence.</li></ul></section><section class="section section-experience section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Experience</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E01 Platform engineer</div></div><div class="entry-subtitle">Nordlys Fixture AS</div><ul class="bullets"><li>B01 Delivered accessible application workflows with documented outcomes.</li><li>B02 Maintained reliable APIs and verified releases.</li></ul></article></section><section class="section section-education section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Education</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E02 Computer science</div></div><div class="entry-subtitle">Fixture University</div></article></section><section class="section section-projects section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Projects</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">P01 Evidence workspace</div></div><ul class="bullets"><li>B03 Created a source-grounded review workflow.</li></ul></article></section><section class="section section-skills section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Skills</span></h2><ul class="bullets skill-bullets"><li>C#</li><li>React</li><li>Norsk</li><li>Accessibility</li></ul></section><section class="section section-languages section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Languages</span></h2><ul class="tags"><li class="tag">Norsk — Native</li></ul></section></section></main>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

@@ -0,0 +1,98 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>&#197;se Fixture — Creative</title>
<style>
*{box-sizing:border-box;}
:root{--cv-accent-color:#db2777;--cv-accent-ink:#fff;--cv-accent-soft:color-mix(in srgb,#db2777 28%,transparent);--cv-ink:#18181b;--cv-muted:#52525b;--cv-paper:#ffffff;--cv-page-margin:16mm;}
html,body{min-width:0;}
body{margin:0;background:#e9edf2;color:var(--cv-ink);font-family:'Segoe UI', Arial, sans-serif;font-size:10pt;line-height:1.42;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.page{width:210mm;min-height:297mm;margin:0 auto;background:var(--cv-paper);overflow:visible;overflow-wrap:anywhere;word-break:normal;}
h1,h2{font-family:'Poppins', 'Segoe UI', Arial, sans-serif;}
.name{margin:0;font-size:24pt;color:#18181b;line-height:1.1;overflow-wrap:anywhere;}
.kicker{text-transform:uppercase;letter-spacing:.3em;font-size:7.5pt;color:#db2777;margin-bottom:1.5mm;}
.headline{margin-top:1.5mm;color:#52525b;font-size:10.5pt;}
.head-text,.main,.sidebar,.cols>*{min-width:0;}
.head-text{flex:1;}
.photo{width:30mm;height:30mm;overflow:hidden;flex:0 0 auto;border:1px solid var(--cv-accent-soft);}
.photo-square{border-radius:2mm;}
.photo-rounded{border-radius:5mm;}
.photo-circle{border-radius:50%;}
.photo img{width:100%;height:100%;object-fit:cover;display:block;}
.contact{display:flex;gap:3mm;flex-wrap:wrap;color:#52525b;font-size:9.5pt;margin-top:2.5mm;}
.contact-stacked{flex-direction:column;gap:1.8mm;}
.contact-item{display:inline-flex;align-items:center;gap:1.2mm;min-width:0;max-width:100%;overflow-wrap:anywhere;}
.contact a{color:inherit;text-decoration:none;min-width:0;overflow-wrap:anywhere;word-break:break-word;}
.main a{color:var(--cv-accent-color);text-decoration-color:var(--cv-accent-soft);}
.contact svg{width:3.2mm;height:3.2mm;flex:0 0 auto;opacity:.85;}
.hero{margin-bottom:6mm;}
.hero .name{font-size:21pt;}
.section{margin-top:6mm;}
.section:first-child{margin-top:0;}
.section-title{margin:0 0 2.6mm 0;font-size:12pt;font-weight:700;color:#db2777;}
.section-title{padding-left:2.5mm;border-left:3px solid #db2777;}
.section-presentation-grid{display:grid;grid-template-columns:repeat(var(--cv-section-columns,1),minmax(0,1fr));column-gap:4mm;align-items:start;}
.section-presentation-grid>.section-title{grid-column:1/-1;}
.section-presentation-grid>.entry{min-width:0;}
.section-presentation-compact>.entry{margin-bottom:2.48mm;}
.section-presentation-compact>.bullets li{margin-bottom:0.75mm;}
.section-presentation-bubble>.tags,.section-presentation-bubble>.bullets{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:1.4mm;}
.section-presentation-bubble>.bullets li,.section-presentation-bubble>.tags li{margin:0;border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;}
.section-presentation-bubble>.bullets li::marker{content:"";}
.bullets{margin:0;padding-left:4.5mm;}
.bullets li{margin:0 0 1.6mm 0;}
.bullets li::marker{color:var(--cv-accent-color);}
.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:1.8mm;}
.skills-text{margin:0;overflow-wrap:anywhere;}
.tag{border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;font-size:9.5pt;max-width:100%;overflow-wrap:anywhere;}
.paragraphs p{margin:0 0 1.8mm;white-space:pre-line;}
.skill-groups{display:grid;gap:1.7mm;}
.skill-group{display:grid;grid-template-columns:minmax(24mm,.3fr) minmax(0,1fr);gap:3mm;break-inside:avoid-page;page-break-inside:avoid;}
.skill-group-name{font-family:'Roboto Mono', Consolas, monospace;font-weight:700;color:var(--cv-accent-color);overflow-wrap:anywhere;}
.skill-group-items{display:flex;flex-wrap:wrap;gap:.8mm 3mm;list-style:none;margin:0;padding:0;}
.skill-group-items li{overflow-wrap:anywhere;}
.entry{margin-bottom:4.5mm;}
.entry:last-child{margin-bottom:0;}
.entry-head{display:flex;justify-content:space-between;gap:1.5mm 4mm;align-items:baseline;flex-wrap:wrap;break-after:avoid-page;page-break-after:avoid;}
.entry-title{font-weight:700;font-size:11pt;min-width:0;flex:1 1 50mm;overflow-wrap:anywhere;}
.entry-meta{color:#52525b;font-size:9.5pt;white-space:normal;text-align:right;max-width:100%;overflow-wrap:anywhere;}
.entry-subtitle{color:#52525b;font-size:10pt;margin:.4mm 0 1.2mm 0;}
.entry-tags{margin-top:1.4mm;}
.cols{display:grid;grid-template-columns:62mm minmax(0,1fr);min-height:297mm;}
.sidebar{background:var(--cv-accent-color);color:var(--cv-accent-ink);padding:16mm;}
.sidebar .section-title{color:var(--cv-accent-ink);border-color:color-mix(in srgb,var(--cv-accent-ink) 38%,transparent);}
.sidebar .tag{border-color:color-mix(in srgb,var(--cv-accent-ink) 45%,transparent);}
.sidebar .contact,.sidebar .headline,.sidebar .entry-meta,.sidebar .entry-subtitle{color:var(--cv-accent-ink);}
.sidebar a{color:inherit;}
.main{padding:16mm;}
.hero .name{color:var(--cv-accent-ink);}
/* Print quality: keep normal entries whole, but allow intentionally classified long entries and
long list items to flow. An unsplittable block taller than a page is otherwise clipped. */
.entry{break-inside:avoid-page;page-break-inside:avoid;}
.entry-flow{break-inside:auto;page-break-inside:auto;}
.section-title{break-after:avoid-page;page-break-after:avoid;}
.section-title + .entry,.section-title + .bullets,.section-title + .tags,.section-title + .paragraphs,.section-title + .skill-groups{break-before:avoid-page;page-break-before:avoid;}
.section{break-inside:avoid-page;page-break-inside:avoid;}
.section-flow{break-inside:auto;page-break-inside:auto;}
.tag,.contact-item{break-inside:avoid;}
.bullets li{break-inside:avoid-page;page-break-inside:avoid;orphans:2;widows:2;overflow-wrap:anywhere;}
.bullets li.item-flow{break-inside:auto;page-break-inside:auto;}
/* Physical-page margins belong to paged media rather than an individual template box. This makes
the same top/bottom safe area repeat on every page while themes continue to own horizontal
layout and density. Screen preview mirrors these bounds in CvBuilderEditor. */
@media print{
body{background:transparent;}
.page{width:auto;min-height:0;margin:0;}
.cols{min-height:0;}
.header{padding-top:0;}
.main,.sidebar{padding-top:0;padding-bottom:0;}
}
@page{size:210mm 297mm;margin:16mm 0;}
</style>
</head>
<body>
<main class="page"><div class="cols"><aside class="sidebar"><header class="hero"><div class="head-text"><h1 class="name">&#197;se Fixture</h1><div class="headline">Career platform engineer</div></div></header><div class="contact contact-stacked"><span class="contact-item"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"><path d="M2 4h12v8H2z M2 4l6 4 6-4"/></svg><a href="mailto:ase@example.test">ase@example.test</a></span><span class="contact-item"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"><path d="M8 1a4 4 0 0 0-4 4c0 3 4 8 4 8s4-5 4-8a4 4 0 0 0-4-4z M8 5v.01"/></svg>Oslo, Norge</span></div><section class="section section-skills section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Skills</span></h2><ul class="tags"><li class="tag">C#</li><li class="tag">React</li><li class="tag">Norsk</li><li class="tag">Accessibility</li></ul></section><section class="section section-languages section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Languages</span></h2><ul class="tags"><li class="tag">Norsk — Native</li></ul></section></aside><section class="main"><section class="section section-summary section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Summary</span></h2><ul class="bullets"><li>R01 Builds reliable and accessible career software using documented evidence.</li></ul></section><section class="section section-experience section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Experience</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E01 Platform engineer</div></div><div class="entry-subtitle">Nordlys Fixture AS</div><ul class="bullets"><li>B01 Delivered accessible application workflows with documented outcomes.</li><li>B02 Maintained reliable APIs and verified releases.</li></ul></article></section><section class="section section-education section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Education</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E02 Computer science</div></div><div class="entry-subtitle">Fixture University</div></article></section><section class="section section-projects section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Projects</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">P01 Evidence workspace</div></div><ul class="bullets"><li>B03 Created a source-grounded review workflow.</li></ul></article></section></section></div></main>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

@@ -0,0 +1,97 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>&#197;se Fixture — Elegant</title>
<style>
*{box-sizing:border-box;}
:root{--cv-accent-color:#7c3aed;--cv-accent-ink:#fff;--cv-accent-soft:color-mix(in srgb,#7c3aed 28%,transparent);--cv-ink:#1f2937;--cv-muted:#4b5563;--cv-paper:#ffffff;--cv-page-margin:16mm;}
html,body{min-width:0;}
body{margin:0;background:#e9edf2;color:var(--cv-ink);font-family:'Segoe UI', Arial, sans-serif;font-size:10pt;line-height:1.42;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.page{width:210mm;min-height:297mm;margin:0 auto;background:var(--cv-paper);overflow:visible;overflow-wrap:anywhere;word-break:normal;}
h1,h2{font-family:Georgia, 'Times New Roman', serif;}
.name{margin:0;font-size:26pt;color:#1f2937;line-height:1.1;overflow-wrap:anywhere;}
.kicker{text-transform:uppercase;letter-spacing:.3em;font-size:7.5pt;color:#7c3aed;margin-bottom:1.5mm;}
.headline{margin-top:1.5mm;color:#4b5563;font-size:10.5pt;}
.head-text,.main,.sidebar,.cols>*{min-width:0;}
.head-text{flex:1;}
.photo{width:30mm;height:30mm;overflow:hidden;flex:0 0 auto;border:1px solid var(--cv-accent-soft);}
.photo-square{border-radius:2mm;}
.photo-rounded{border-radius:5mm;}
.photo-circle{border-radius:50%;}
.photo img{width:100%;height:100%;object-fit:cover;display:block;}
.contact{display:flex;gap:3mm;flex-wrap:wrap;color:#4b5563;font-size:9.5pt;margin-top:2.5mm;}
.contact-stacked{flex-direction:column;gap:1.8mm;}
.contact-item{display:inline-flex;align-items:center;gap:1.2mm;min-width:0;max-width:100%;overflow-wrap:anywhere;}
.contact a{color:inherit;text-decoration:none;min-width:0;overflow-wrap:anywhere;word-break:break-word;}
.main a{color:var(--cv-accent-color);text-decoration-color:var(--cv-accent-soft);}
.contact svg{width:3.2mm;height:3.2mm;flex:0 0 auto;opacity:.85;}
.hero{margin-bottom:7mm;}
.hero .name{font-size:23pt;}
.section{margin-top:7mm;}
.section:first-child{margin-top:0;}
.section-title{margin:0 0 2.6mm 0;font-size:12pt;font-weight:700;color:#7c3aed;}
.section-title{border-bottom:1.5px solid var(--cv-accent-soft);padding-bottom:1.5mm;}
.section-presentation-grid{display:grid;grid-template-columns:repeat(var(--cv-section-columns,1),minmax(0,1fr));column-gap:4mm;align-items:start;}
.section-presentation-grid>.section-title{grid-column:1/-1;}
.section-presentation-grid>.entry{min-width:0;}
.section-presentation-compact>.entry{margin-bottom:2.48mm;}
.section-presentation-compact>.bullets li{margin-bottom:0.75mm;}
.section-presentation-bubble>.tags,.section-presentation-bubble>.bullets{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:1.4mm;}
.section-presentation-bubble>.bullets li,.section-presentation-bubble>.tags li{margin:0;border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;}
.section-presentation-bubble>.bullets li::marker{content:"";}
.bullets{margin:0;padding-left:4.5mm;}
.bullets li{margin:0 0 1.6mm 0;}
.bullets li::marker{color:var(--cv-accent-color);}
.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:1.8mm;}
.skills-text{margin:0;overflow-wrap:anywhere;}
.tag{border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;font-size:9.5pt;max-width:100%;overflow-wrap:anywhere;}
.paragraphs p{margin:0 0 1.8mm;white-space:pre-line;}
.skill-groups{display:grid;gap:1.7mm;}
.skill-group{display:grid;grid-template-columns:minmax(24mm,.3fr) minmax(0,1fr);gap:3mm;break-inside:avoid-page;page-break-inside:avoid;}
.skill-group-name{font-family:'Roboto Mono', Consolas, monospace;font-weight:700;color:var(--cv-accent-color);overflow-wrap:anywhere;}
.skill-group-items{display:flex;flex-wrap:wrap;gap:.8mm 3mm;list-style:none;margin:0;padding:0;}
.skill-group-items li{overflow-wrap:anywhere;}
.entry{margin-bottom:4.5mm;}
.entry:last-child{margin-bottom:0;}
.entry-head{display:flex;justify-content:space-between;gap:1.5mm 4mm;align-items:baseline;flex-wrap:wrap;break-after:avoid-page;page-break-after:avoid;}
.entry-title{font-weight:700;font-size:11pt;min-width:0;flex:1 1 50mm;overflow-wrap:anywhere;}
.entry-meta{color:#4b5563;font-size:9.5pt;white-space:normal;text-align:right;max-width:100%;overflow-wrap:anywhere;}
.entry-subtitle{color:#4b5563;font-size:10pt;margin:.4mm 0 1.2mm 0;}
.entry-tags{margin-top:1.4mm;}
.main{padding:0 16mm 16mm 16mm;}
.header{padding:16mm 16mm 7mm 16mm;display:flex;gap:6mm;align-items:center;}
.header-band{background:#7c3aed;color:#fff;}
.header-band .name,.header-band .headline,.header-band .contact,.header-band .contact-item,.header-band a{color:#fff;}
.header-centered{flex-direction:column;text-align:center;justify-content:center;}
.header-centered .contact{justify-content:center;}
.header-plain{border-bottom:2px solid #7c3aed;}
/* Print quality: keep normal entries whole, but allow intentionally classified long entries and
long list items to flow. An unsplittable block taller than a page is otherwise clipped. */
.entry{break-inside:avoid-page;page-break-inside:avoid;}
.entry-flow{break-inside:auto;page-break-inside:auto;}
.section-title{break-after:avoid-page;page-break-after:avoid;}
.section-title + .entry,.section-title + .bullets,.section-title + .tags,.section-title + .paragraphs,.section-title + .skill-groups{break-before:avoid-page;page-break-before:avoid;}
.section{break-inside:avoid-page;page-break-inside:avoid;}
.section-flow{break-inside:auto;page-break-inside:auto;}
.tag,.contact-item{break-inside:avoid;}
.bullets li{break-inside:avoid-page;page-break-inside:avoid;orphans:2;widows:2;overflow-wrap:anywhere;}
.bullets li.item-flow{break-inside:auto;page-break-inside:auto;}
/* Physical-page margins belong to paged media rather than an individual template box. This makes
the same top/bottom safe area repeat on every page while themes continue to own horizontal
layout and density. Screen preview mirrors these bounds in CvBuilderEditor. */
@media print{
body{background:transparent;}
.page{width:auto;min-height:0;margin:0;}
.cols{min-height:0;}
.header{padding-top:0;}
.main,.sidebar{padding-top:0;padding-bottom:0;}
}
@page{size:210mm 297mm;margin:16mm 0;}
</style>
</head>
<body>
<main class="page"><header class="header header-kicker"><div class="head-text"><div class="kicker">Curriculum Vitae</div><h1 class="name">&#197;se Fixture</h1><div class="headline">Career platform engineer</div><div class="contact contact-inline"><span class="contact-item"><a href="mailto:ase@example.test">ase@example.test</a></span><span class="contact-item">Oslo, Norge</span></div></div></header><section class="main"><section class="section section-summary section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Summary</span></h2><ul class="bullets"><li>R01 Builds reliable and accessible career software using documented evidence.</li></ul></section><section class="section section-experience section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Experience</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E01 Platform engineer</div></div><div class="entry-subtitle">Nordlys Fixture AS</div><ul class="bullets"><li>B01 Delivered accessible application workflows with documented outcomes.</li><li>B02 Maintained reliable APIs and verified releases.</li></ul></article></section><section class="section section-education section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Education</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E02 Computer science</div></div><div class="entry-subtitle">Fixture University</div></article></section><section class="section section-projects section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Projects</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">P01 Evidence workspace</div></div><ul class="bullets"><li>B03 Created a source-grounded review workflow.</li></ul></article></section><section class="section section-skills section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Skills</span></h2><ul class="tags"><li class="tag">C#</li><li class="tag">React</li><li class="tag">Norsk</li><li class="tag">Accessibility</li></ul></section><section class="section section-languages section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Languages</span></h2><ul class="tags"><li class="tag">Norsk — Native</li></ul></section></section></main>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

@@ -0,0 +1,97 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>&#197;se Fixture — Executive</title>
<style>
*{box-sizing:border-box;}
:root{--cv-accent-color:#7c2d12;--cv-accent-ink:#fff;--cv-accent-soft:color-mix(in srgb,#7c2d12 28%,transparent);--cv-ink:#1c1917;--cv-muted:#57534e;--cv-paper:#ffffff;--cv-page-margin:16mm;}
html,body{min-width:0;}
body{margin:0;background:#e9edf2;color:var(--cv-ink);font-family:Georgia, 'Times New Roman', serif;font-size:10pt;line-height:1.42;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.page{width:210mm;min-height:297mm;margin:0 auto;background:var(--cv-paper);overflow:visible;overflow-wrap:anywhere;word-break:normal;}
h1,h2{font-family:Georgia, 'Times New Roman', serif;}
.name{margin:0;font-size:27pt;color:#1c1917;line-height:1.1;overflow-wrap:anywhere;}
.kicker{text-transform:uppercase;letter-spacing:.3em;font-size:7.5pt;color:#7c2d12;margin-bottom:1.5mm;}
.headline{margin-top:1.5mm;color:#57534e;font-size:10.5pt;}
.head-text,.main,.sidebar,.cols>*{min-width:0;}
.head-text{flex:1;}
.photo{width:30mm;height:30mm;overflow:hidden;flex:0 0 auto;border:1px solid var(--cv-accent-soft);}
.photo-square{border-radius:2mm;}
.photo-rounded{border-radius:5mm;}
.photo-circle{border-radius:50%;}
.photo img{width:100%;height:100%;object-fit:cover;display:block;}
.contact{display:flex;gap:3mm;flex-wrap:wrap;color:#57534e;font-size:9.5pt;margin-top:2.5mm;}
.contact-stacked{flex-direction:column;gap:1.8mm;}
.contact-item{display:inline-flex;align-items:center;gap:1.2mm;min-width:0;max-width:100%;overflow-wrap:anywhere;}
.contact a{color:inherit;text-decoration:none;min-width:0;overflow-wrap:anywhere;word-break:break-word;}
.main a{color:var(--cv-accent-color);text-decoration-color:var(--cv-accent-soft);}
.contact svg{width:3.2mm;height:3.2mm;flex:0 0 auto;opacity:.85;}
.hero{margin-bottom:6mm;}
.hero .name{font-size:24pt;}
.section{margin-top:6mm;}
.section:first-child{margin-top:0;}
.section-title{margin:0 0 2.6mm 0;font-size:12pt;font-weight:700;color:#7c2d12;}
.section-title{border-bottom:1.5px solid var(--cv-accent-soft);padding-bottom:1.5mm;}
.section-presentation-grid{display:grid;grid-template-columns:repeat(var(--cv-section-columns,1),minmax(0,1fr));column-gap:4mm;align-items:start;}
.section-presentation-grid>.section-title{grid-column:1/-1;}
.section-presentation-grid>.entry{min-width:0;}
.section-presentation-compact>.entry{margin-bottom:2.48mm;}
.section-presentation-compact>.bullets li{margin-bottom:0.75mm;}
.section-presentation-bubble>.tags,.section-presentation-bubble>.bullets{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:1.4mm;}
.section-presentation-bubble>.bullets li,.section-presentation-bubble>.tags li{margin:0;border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;}
.section-presentation-bubble>.bullets li::marker{content:"";}
.bullets{margin:0;padding-left:4.5mm;}
.bullets li{margin:0 0 1.6mm 0;}
.bullets li::marker{color:var(--cv-accent-color);}
.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:1.8mm;}
.skills-text{margin:0;overflow-wrap:anywhere;}
.tag{border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;font-size:9.5pt;max-width:100%;overflow-wrap:anywhere;}
.paragraphs p{margin:0 0 1.8mm;white-space:pre-line;}
.skill-groups{display:grid;gap:1.7mm;}
.skill-group{display:grid;grid-template-columns:minmax(24mm,.3fr) minmax(0,1fr);gap:3mm;break-inside:avoid-page;page-break-inside:avoid;}
.skill-group-name{font-family:'Roboto Mono', Consolas, monospace;font-weight:700;color:var(--cv-accent-color);overflow-wrap:anywhere;}
.skill-group-items{display:flex;flex-wrap:wrap;gap:.8mm 3mm;list-style:none;margin:0;padding:0;}
.skill-group-items li{overflow-wrap:anywhere;}
.entry{margin-bottom:4.5mm;}
.entry:last-child{margin-bottom:0;}
.entry-head{display:flex;justify-content:space-between;gap:1.5mm 4mm;align-items:baseline;flex-wrap:wrap;break-after:avoid-page;page-break-after:avoid;}
.entry-title{font-weight:700;font-size:11pt;min-width:0;flex:1 1 50mm;overflow-wrap:anywhere;}
.entry-meta{color:#57534e;font-size:9.5pt;white-space:normal;text-align:right;max-width:100%;overflow-wrap:anywhere;}
.entry-subtitle{color:#57534e;font-size:10pt;margin:.4mm 0 1.2mm 0;}
.entry-tags{margin-top:1.4mm;}
.main{padding:0 16mm 16mm 16mm;}
.header{padding:16mm 16mm 6mm 16mm;display:flex;gap:6mm;align-items:center;}
.header-band{background:#7c2d12;color:#fff;}
.header-band .name,.header-band .headline,.header-band .contact,.header-band .contact-item,.header-band a{color:#fff;}
.header-centered{flex-direction:column;text-align:center;justify-content:center;}
.header-centered .contact{justify-content:center;}
.header-plain{border-bottom:2px solid #7c2d12;}
/* Print quality: keep normal entries whole, but allow intentionally classified long entries and
long list items to flow. An unsplittable block taller than a page is otherwise clipped. */
.entry{break-inside:avoid-page;page-break-inside:avoid;}
.entry-flow{break-inside:auto;page-break-inside:auto;}
.section-title{break-after:avoid-page;page-break-after:avoid;}
.section-title + .entry,.section-title + .bullets,.section-title + .tags,.section-title + .paragraphs,.section-title + .skill-groups{break-before:avoid-page;page-break-before:avoid;}
.section{break-inside:avoid-page;page-break-inside:avoid;}
.section-flow{break-inside:auto;page-break-inside:auto;}
.tag,.contact-item{break-inside:avoid;}
.bullets li{break-inside:avoid-page;page-break-inside:avoid;orphans:2;widows:2;overflow-wrap:anywhere;}
.bullets li.item-flow{break-inside:auto;page-break-inside:auto;}
/* Physical-page margins belong to paged media rather than an individual template box. This makes
the same top/bottom safe area repeat on every page while themes continue to own horizontal
layout and density. Screen preview mirrors these bounds in CvBuilderEditor. */
@media print{
body{background:transparent;}
.page{width:auto;min-height:0;margin:0;}
.cols{min-height:0;}
.header{padding-top:0;}
.main,.sidebar{padding-top:0;padding-bottom:0;}
}
@page{size:210mm 297mm;margin:16mm 0;}
</style>
</head>
<body>
<main class="page"><header class="header header-centered"><div class="head-text"><h1 class="name">&#197;se Fixture</h1><div class="headline">Career platform engineer</div><div class="contact contact-inline"><span class="contact-item"><a href="mailto:ase@example.test">ase@example.test</a></span><span class="contact-item">Oslo, Norge</span></div></div></header><section class="main"><section class="section section-summary section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Summary</span></h2><ul class="bullets"><li>R01 Builds reliable and accessible career software using documented evidence.</li></ul></section><section class="section section-experience section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Experience</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E01 Platform engineer</div></div><div class="entry-subtitle">Nordlys Fixture AS</div><ul class="bullets"><li>B01 Delivered accessible application workflows with documented outcomes.</li><li>B02 Maintained reliable APIs and verified releases.</li></ul></article></section><section class="section section-education section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Education</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E02 Computer science</div></div><div class="entry-subtitle">Fixture University</div></article></section><section class="section section-projects section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Projects</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">P01 Evidence workspace</div></div><ul class="bullets"><li>B03 Created a source-grounded review workflow.</li></ul></article></section><section class="section section-skills section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Skills</span></h2><p class="skills-text">C# · React · Norsk · Accessibility</p></section><section class="section section-languages section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Languages</span></h2><ul class="tags"><li class="tag">Norsk — Native</li></ul></section></section></main>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

@@ -0,0 +1,97 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>&#197;se Fixture — Minimal</title>
<style>
*{box-sizing:border-box;}
:root{--cv-accent-color:#111827;--cv-accent-ink:#fff;--cv-accent-soft:color-mix(in srgb,#111827 28%,transparent);--cv-ink:#111827;--cv-muted:#6b7280;--cv-paper:#ffffff;--cv-page-margin:16mm;}
html,body{min-width:0;}
body{margin:0;background:#e9edf2;color:var(--cv-ink);font-family:'Helvetica Neue', Arial, sans-serif;font-size:10pt;line-height:1.42;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.page{width:210mm;min-height:297mm;margin:0 auto;background:var(--cv-paper);overflow:visible;overflow-wrap:anywhere;word-break:normal;}
h1,h2{font-family:'Helvetica Neue', Arial, sans-serif;}
.name{margin:0;font-size:24pt;color:#111827;line-height:1.1;overflow-wrap:anywhere;}
.kicker{text-transform:uppercase;letter-spacing:.3em;font-size:7.5pt;color:#111827;margin-bottom:1.5mm;}
.headline{margin-top:1.5mm;color:#6b7280;font-size:10.5pt;}
.head-text,.main,.sidebar,.cols>*{min-width:0;}
.head-text{flex:1;}
.photo{width:30mm;height:30mm;overflow:hidden;flex:0 0 auto;border:1px solid var(--cv-accent-soft);}
.photo-square{border-radius:2mm;}
.photo-rounded{border-radius:5mm;}
.photo-circle{border-radius:50%;}
.photo img{width:100%;height:100%;object-fit:cover;display:block;}
.contact{display:flex;gap:3mm;flex-wrap:wrap;color:#6b7280;font-size:9.5pt;margin-top:2.5mm;}
.contact-stacked{flex-direction:column;gap:1.8mm;}
.contact-item{display:inline-flex;align-items:center;gap:1.2mm;min-width:0;max-width:100%;overflow-wrap:anywhere;}
.contact a{color:inherit;text-decoration:none;min-width:0;overflow-wrap:anywhere;word-break:break-word;}
.main a{color:var(--cv-accent-color);text-decoration-color:var(--cv-accent-soft);}
.contact svg{width:3.2mm;height:3.2mm;flex:0 0 auto;opacity:.85;}
.hero{margin-bottom:7mm;}
.hero .name{font-size:21pt;}
.section{margin-top:7mm;}
.section:first-child{margin-top:0;}
.section-title{margin:0 0 2.6mm 0;font-size:12pt;font-weight:700;color:#111827;}
.section-title{letter-spacing:.01em;}
.section-presentation-grid{display:grid;grid-template-columns:repeat(var(--cv-section-columns,1),minmax(0,1fr));column-gap:4mm;align-items:start;}
.section-presentation-grid>.section-title{grid-column:1/-1;}
.section-presentation-grid>.entry{min-width:0;}
.section-presentation-compact>.entry{margin-bottom:2.75mm;}
.section-presentation-compact>.bullets li{margin-bottom:0.75mm;}
.section-presentation-bubble>.tags,.section-presentation-bubble>.bullets{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:1.4mm;}
.section-presentation-bubble>.bullets li,.section-presentation-bubble>.tags li{margin:0;border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;}
.section-presentation-bubble>.bullets li::marker{content:"";}
.bullets{margin:0;padding-left:4.5mm;}
.bullets li{margin:0 0 1.6mm 0;}
.bullets li::marker{color:var(--cv-accent-color);}
.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:1.8mm;}
.skills-text{margin:0;overflow-wrap:anywhere;}
.tag{border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;font-size:9.5pt;max-width:100%;overflow-wrap:anywhere;}
.paragraphs p{margin:0 0 1.8mm;white-space:pre-line;}
.skill-groups{display:grid;gap:1.7mm;}
.skill-group{display:grid;grid-template-columns:minmax(24mm,.3fr) minmax(0,1fr);gap:3mm;break-inside:avoid-page;page-break-inside:avoid;}
.skill-group-name{font-family:'Roboto Mono', Consolas, monospace;font-weight:700;color:var(--cv-accent-color);overflow-wrap:anywhere;}
.skill-group-items{display:flex;flex-wrap:wrap;gap:.8mm 3mm;list-style:none;margin:0;padding:0;}
.skill-group-items li{overflow-wrap:anywhere;}
.entry{margin-bottom:5mm;}
.entry:last-child{margin-bottom:0;}
.entry-head{display:flex;justify-content:space-between;gap:1.5mm 4mm;align-items:baseline;flex-wrap:wrap;break-after:avoid-page;page-break-after:avoid;}
.entry-title{font-weight:700;font-size:11pt;min-width:0;flex:1 1 50mm;overflow-wrap:anywhere;}
.entry-meta{color:#6b7280;font-size:9.5pt;white-space:normal;text-align:right;max-width:100%;overflow-wrap:anywhere;}
.entry-subtitle{color:#6b7280;font-size:10pt;margin:.4mm 0 1.2mm 0;}
.entry-tags{margin-top:1.4mm;}
.main{padding:0 16mm 16mm 16mm;}
.header{padding:16mm 16mm 7mm 16mm;display:flex;gap:6mm;align-items:center;}
.header-band{background:#111827;color:#fff;}
.header-band .name,.header-band .headline,.header-band .contact,.header-band .contact-item,.header-band a{color:#fff;}
.header-centered{flex-direction:column;text-align:center;justify-content:center;}
.header-centered .contact{justify-content:center;}
.header-plain{border-bottom:2px solid #111827;}
/* Print quality: keep normal entries whole, but allow intentionally classified long entries and
long list items to flow. An unsplittable block taller than a page is otherwise clipped. */
.entry{break-inside:avoid-page;page-break-inside:avoid;}
.entry-flow{break-inside:auto;page-break-inside:auto;}
.section-title{break-after:avoid-page;page-break-after:avoid;}
.section-title + .entry,.section-title + .bullets,.section-title + .tags,.section-title + .paragraphs,.section-title + .skill-groups{break-before:avoid-page;page-break-before:avoid;}
.section{break-inside:avoid-page;page-break-inside:avoid;}
.section-flow{break-inside:auto;page-break-inside:auto;}
.tag,.contact-item{break-inside:avoid;}
.bullets li{break-inside:avoid-page;page-break-inside:avoid;orphans:2;widows:2;overflow-wrap:anywhere;}
.bullets li.item-flow{break-inside:auto;page-break-inside:auto;}
/* Physical-page margins belong to paged media rather than an individual template box. This makes
the same top/bottom safe area repeat on every page while themes continue to own horizontal
layout and density. Screen preview mirrors these bounds in CvBuilderEditor. */
@media print{
body{background:transparent;}
.page{width:auto;min-height:0;margin:0;}
.cols{min-height:0;}
.header{padding-top:0;}
.main,.sidebar{padding-top:0;padding-bottom:0;}
}
@page{size:210mm 297mm;margin:16mm 0;}
</style>
</head>
<body>
<main class="page"><header class="header header-plain"><div class="head-text"><h1 class="name">&#197;se Fixture</h1><div class="headline">Career platform engineer</div><div class="contact contact-inline"><span class="contact-item"><a href="mailto:ase@example.test">ase@example.test</a></span><span class="contact-item">Oslo, Norge</span></div></div></header><section class="main"><section class="section section-summary section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Summary</span></h2><ul class="bullets"><li>R01 Builds reliable and accessible career software using documented evidence.</li></ul></section><section class="section section-experience section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Experience</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E01 Platform engineer</div></div><div class="entry-subtitle">Nordlys Fixture AS</div><ul class="bullets"><li>B01 Delivered accessible application workflows with documented outcomes.</li><li>B02 Maintained reliable APIs and verified releases.</li></ul></article></section><section class="section section-education section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Education</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E02 Computer science</div></div><div class="entry-subtitle">Fixture University</div></article></section><section class="section section-projects section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Projects</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">P01 Evidence workspace</div></div><ul class="bullets"><li>B03 Created a source-grounded review workflow.</li></ul></article></section><section class="section section-skills section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Skills</span></h2><p class="skills-text">C# · React · Norsk · Accessibility</p></section><section class="section section-languages section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Languages</span></h2><ul class="tags"><li class="tag">Norsk — Native</li></ul></section></section></main>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

@@ -0,0 +1,97 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>&#197;se Fixture — Modern</title>
<style>
*{box-sizing:border-box;}
:root{--cv-accent-color:#2563eb;--cv-accent-ink:#fff;--cv-accent-soft:color-mix(in srgb,#2563eb 28%,transparent);--cv-ink:#111827;--cv-muted:#4b5563;--cv-paper:#ffffff;--cv-page-margin:16mm;}
html,body{min-width:0;}
body{margin:0;background:#e9edf2;color:var(--cv-ink);font-family:'Segoe UI', Roboto, Arial, sans-serif;font-size:10pt;line-height:1.42;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.page{width:210mm;min-height:297mm;margin:0 auto;background:var(--cv-paper);overflow:visible;overflow-wrap:anywhere;word-break:normal;}
h1,h2{font-family:'Segoe UI', Roboto, Arial, sans-serif;}
.name{margin:0;font-size:24pt;color:#111827;line-height:1.1;overflow-wrap:anywhere;}
.kicker{text-transform:uppercase;letter-spacing:.3em;font-size:7.5pt;color:#2563eb;margin-bottom:1.5mm;}
.headline{margin-top:1.5mm;color:#4b5563;font-size:10.5pt;}
.head-text,.main,.sidebar,.cols>*{min-width:0;}
.head-text{flex:1;}
.photo{width:30mm;height:30mm;overflow:hidden;flex:0 0 auto;border:1px solid var(--cv-accent-soft);}
.photo-square{border-radius:2mm;}
.photo-rounded{border-radius:5mm;}
.photo-circle{border-radius:50%;}
.photo img{width:100%;height:100%;object-fit:cover;display:block;}
.contact{display:flex;gap:3mm;flex-wrap:wrap;color:#4b5563;font-size:9.5pt;margin-top:2.5mm;}
.contact-stacked{flex-direction:column;gap:1.8mm;}
.contact-item{display:inline-flex;align-items:center;gap:1.2mm;min-width:0;max-width:100%;overflow-wrap:anywhere;}
.contact a{color:inherit;text-decoration:none;min-width:0;overflow-wrap:anywhere;word-break:break-word;}
.main a{color:var(--cv-accent-color);text-decoration-color:var(--cv-accent-soft);}
.contact svg{width:3.2mm;height:3.2mm;flex:0 0 auto;opacity:.85;}
.hero{margin-bottom:6mm;}
.hero .name{font-size:21pt;}
.section{margin-top:6mm;}
.section:first-child{margin-top:0;}
.section-title{margin:0 0 2.6mm 0;font-size:12pt;font-weight:700;color:#2563eb;}
.section-title{text-transform:uppercase;letter-spacing:.14em;font-size:10.2pt;color:var(--cv-accent-color);border-bottom:1px solid var(--cv-accent-soft);padding-bottom:1.4mm;}
.section-presentation-grid{display:grid;grid-template-columns:repeat(var(--cv-section-columns,1),minmax(0,1fr));column-gap:4mm;align-items:start;}
.section-presentation-grid>.section-title{grid-column:1/-1;}
.section-presentation-grid>.entry{min-width:0;}
.section-presentation-compact>.entry{margin-bottom:2.48mm;}
.section-presentation-compact>.bullets li{margin-bottom:0.75mm;}
.section-presentation-bubble>.tags,.section-presentation-bubble>.bullets{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:1.4mm;}
.section-presentation-bubble>.bullets li,.section-presentation-bubble>.tags li{margin:0;border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;}
.section-presentation-bubble>.bullets li::marker{content:"";}
.bullets{margin:0;padding-left:4.5mm;}
.bullets li{margin:0 0 1.6mm 0;}
.bullets li::marker{color:var(--cv-accent-color);}
.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:1.8mm;}
.skills-text{margin:0;overflow-wrap:anywhere;}
.tag{border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;font-size:9.5pt;max-width:100%;overflow-wrap:anywhere;}
.paragraphs p{margin:0 0 1.8mm;white-space:pre-line;}
.skill-groups{display:grid;gap:1.7mm;}
.skill-group{display:grid;grid-template-columns:minmax(24mm,.3fr) minmax(0,1fr);gap:3mm;break-inside:avoid-page;page-break-inside:avoid;}
.skill-group-name{font-family:'Roboto Mono', Consolas, monospace;font-weight:700;color:var(--cv-accent-color);overflow-wrap:anywhere;}
.skill-group-items{display:flex;flex-wrap:wrap;gap:.8mm 3mm;list-style:none;margin:0;padding:0;}
.skill-group-items li{overflow-wrap:anywhere;}
.entry{margin-bottom:4.5mm;}
.entry:last-child{margin-bottom:0;}
.entry-head{display:flex;justify-content:space-between;gap:1.5mm 4mm;align-items:baseline;flex-wrap:wrap;break-after:avoid-page;page-break-after:avoid;}
.entry-title{font-weight:700;font-size:11pt;min-width:0;flex:1 1 50mm;overflow-wrap:anywhere;}
.entry-meta{color:#4b5563;font-size:9.5pt;white-space:normal;text-align:right;max-width:100%;overflow-wrap:anywhere;}
.entry-subtitle{color:#4b5563;font-size:10pt;margin:.4mm 0 1.2mm 0;}
.entry-tags{margin-top:1.4mm;}
.main{padding:0 16mm 16mm 16mm;}
.header{padding:16mm 16mm 6mm 16mm;display:flex;gap:6mm;align-items:center;}
.header-band{background:#2563eb;color:#fff;}
.header-band .name,.header-band .headline,.header-band .contact,.header-band .contact-item,.header-band a{color:#fff;}
.header-centered{flex-direction:column;text-align:center;justify-content:center;}
.header-centered .contact{justify-content:center;}
.header-plain{border-bottom:2px solid #2563eb;}
/* Print quality: keep normal entries whole, but allow intentionally classified long entries and
long list items to flow. An unsplittable block taller than a page is otherwise clipped. */
.entry{break-inside:avoid-page;page-break-inside:avoid;}
.entry-flow{break-inside:auto;page-break-inside:auto;}
.section-title{break-after:avoid-page;page-break-after:avoid;}
.section-title + .entry,.section-title + .bullets,.section-title + .tags,.section-title + .paragraphs,.section-title + .skill-groups{break-before:avoid-page;page-break-before:avoid;}
.section{break-inside:avoid-page;page-break-inside:avoid;}
.section-flow{break-inside:auto;page-break-inside:auto;}
.tag,.contact-item{break-inside:avoid;}
.bullets li{break-inside:avoid-page;page-break-inside:avoid;orphans:2;widows:2;overflow-wrap:anywhere;}
.bullets li.item-flow{break-inside:auto;page-break-inside:auto;}
/* Physical-page margins belong to paged media rather than an individual template box. This makes
the same top/bottom safe area repeat on every page while themes continue to own horizontal
layout and density. Screen preview mirrors these bounds in CvBuilderEditor. */
@media print{
body{background:transparent;}
.page{width:auto;min-height:0;margin:0;}
.cols{min-height:0;}
.header{padding-top:0;}
.main,.sidebar{padding-top:0;padding-bottom:0;}
}
@page{size:210mm 297mm;margin:16mm 0;}
</style>
</head>
<body>
<main class="page"><header class="header header-band"><div class="head-text"><h1 class="name">&#197;se Fixture</h1><div class="headline">Career platform engineer</div><div class="contact contact-inline"><span class="contact-item"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"><path d="M2 4h12v8H2z M2 4l6 4 6-4"/></svg><a href="mailto:ase@example.test">ase@example.test</a></span><span class="contact-item"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"><path d="M8 1a4 4 0 0 0-4 4c0 3 4 8 4 8s4-5 4-8a4 4 0 0 0-4-4z M8 5v.01"/></svg>Oslo, Norge</span></div></div></header><section class="main"><section class="section section-summary section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Summary</span></h2><ul class="bullets"><li>R01 Builds reliable and accessible career software using documented evidence.</li></ul></section><section class="section section-experience section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Experience</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E01 Platform engineer</div></div><div class="entry-subtitle">Nordlys Fixture AS</div><ul class="bullets"><li>B01 Delivered accessible application workflows with documented outcomes.</li><li>B02 Maintained reliable APIs and verified releases.</li></ul></article></section><section class="section section-education section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Education</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E02 Computer science</div></div><div class="entry-subtitle">Fixture University</div></article></section><section class="section section-projects section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Projects</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">P01 Evidence workspace</div></div><ul class="bullets"><li>B03 Created a source-grounded review workflow.</li></ul></article></section><section class="section section-skills section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Skills</span></h2><ul class="tags"><li class="tag">C#</li><li class="tag">React</li><li class="tag">Norsk</li><li class="tag">Accessibility</li></ul></section><section class="section section-languages section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Languages</span></h2><ul class="tags"><li class="tag">Norsk — Native</li></ul></section></section></main>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

@@ -0,0 +1,98 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>&#197;se Fixture — Nordic</title>
<style>
*{box-sizing:border-box;}
:root{--cv-accent-color:#3b6ea5;--cv-accent-ink:#fff;--cv-accent-soft:color-mix(in srgb,#3b6ea5 28%,transparent);--cv-ink:#1f2937;--cv-muted:#4b5563;--cv-paper:#ffffff;--cv-page-margin:16mm;}
html,body{min-width:0;}
body{margin:0;background:#e9edf2;color:var(--cv-ink);font-family:'Segoe UI', Arial, sans-serif;font-size:10pt;line-height:1.42;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.page{width:210mm;min-height:297mm;margin:0 auto;background:var(--cv-paper);overflow:visible;overflow-wrap:anywhere;word-break:normal;}
h1,h2{font-family:'Segoe UI', Arial, sans-serif;}
.name{margin:0;font-size:24pt;color:#1f2937;line-height:1.1;overflow-wrap:anywhere;}
.kicker{text-transform:uppercase;letter-spacing:.3em;font-size:7.5pt;color:#3b6ea5;margin-bottom:1.5mm;}
.headline{margin-top:1.5mm;color:#4b5563;font-size:10.5pt;}
.head-text,.main,.sidebar,.cols>*{min-width:0;}
.head-text{flex:1;}
.photo{width:30mm;height:30mm;overflow:hidden;flex:0 0 auto;border:1px solid var(--cv-accent-soft);}
.photo-square{border-radius:2mm;}
.photo-rounded{border-radius:5mm;}
.photo-circle{border-radius:50%;}
.photo img{width:100%;height:100%;object-fit:cover;display:block;}
.contact{display:flex;gap:3mm;flex-wrap:wrap;color:#4b5563;font-size:9.5pt;margin-top:2.5mm;}
.contact-stacked{flex-direction:column;gap:1.8mm;}
.contact-item{display:inline-flex;align-items:center;gap:1.2mm;min-width:0;max-width:100%;overflow-wrap:anywhere;}
.contact a{color:inherit;text-decoration:none;min-width:0;overflow-wrap:anywhere;word-break:break-word;}
.main a{color:var(--cv-accent-color);text-decoration-color:var(--cv-accent-soft);}
.contact svg{width:3.2mm;height:3.2mm;flex:0 0 auto;opacity:.85;}
.hero{margin-bottom:6mm;}
.hero .name{font-size:21pt;}
.section{margin-top:6mm;}
.section:first-child{margin-top:0;}
.section-title{margin:0 0 2.6mm 0;font-size:12pt;font-weight:700;color:#3b6ea5;}
.section-title{text-transform:uppercase;letter-spacing:.14em;font-size:10.2pt;color:var(--cv-accent-color);border-bottom:1px solid var(--cv-accent-soft);padding-bottom:1.4mm;}
.section-presentation-grid{display:grid;grid-template-columns:repeat(var(--cv-section-columns,1),minmax(0,1fr));column-gap:4mm;align-items:start;}
.section-presentation-grid>.section-title{grid-column:1/-1;}
.section-presentation-grid>.entry{min-width:0;}
.section-presentation-compact>.entry{margin-bottom:2.48mm;}
.section-presentation-compact>.bullets li{margin-bottom:0.75mm;}
.section-presentation-bubble>.tags,.section-presentation-bubble>.bullets{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:1.4mm;}
.section-presentation-bubble>.bullets li,.section-presentation-bubble>.tags li{margin:0;border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;}
.section-presentation-bubble>.bullets li::marker{content:"";}
.bullets{margin:0;padding-left:4.5mm;}
.bullets li{margin:0 0 1.6mm 0;}
.bullets li::marker{color:var(--cv-accent-color);}
.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:1.8mm;}
.skills-text{margin:0;overflow-wrap:anywhere;}
.tag{border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;font-size:9.5pt;max-width:100%;overflow-wrap:anywhere;}
.paragraphs p{margin:0 0 1.8mm;white-space:pre-line;}
.skill-groups{display:grid;gap:1.7mm;}
.skill-group{display:grid;grid-template-columns:minmax(24mm,.3fr) minmax(0,1fr);gap:3mm;break-inside:avoid-page;page-break-inside:avoid;}
.skill-group-name{font-family:'Roboto Mono', Consolas, monospace;font-weight:700;color:var(--cv-accent-color);overflow-wrap:anywhere;}
.skill-group-items{display:flex;flex-wrap:wrap;gap:.8mm 3mm;list-style:none;margin:0;padding:0;}
.skill-group-items li{overflow-wrap:anywhere;}
.entry{margin-bottom:4.5mm;}
.entry:last-child{margin-bottom:0;}
.entry-head{display:flex;justify-content:space-between;gap:1.5mm 4mm;align-items:baseline;flex-wrap:wrap;break-after:avoid-page;page-break-after:avoid;}
.entry-title{font-weight:700;font-size:11pt;min-width:0;flex:1 1 50mm;overflow-wrap:anywhere;}
.entry-meta{color:#4b5563;font-size:9.5pt;white-space:normal;text-align:right;max-width:100%;overflow-wrap:anywhere;}
.entry-subtitle{color:#4b5563;font-size:10pt;margin:.4mm 0 1.2mm 0;}
.entry-tags{margin-top:1.4mm;}
.cols{display:grid;grid-template-columns:minmax(0,1fr) 62mm;min-height:297mm;}
.sidebar{background:var(--cv-accent-color);color:var(--cv-accent-ink);padding:16mm;}
.sidebar .section-title{color:var(--cv-accent-ink);border-color:color-mix(in srgb,var(--cv-accent-ink) 38%,transparent);}
.sidebar .tag{border-color:color-mix(in srgb,var(--cv-accent-ink) 45%,transparent);}
.sidebar .contact,.sidebar .headline,.sidebar .entry-meta,.sidebar .entry-subtitle{color:var(--cv-accent-ink);}
.sidebar a{color:inherit;}
.main{padding:16mm;}
.hero .name{color:var(--cv-accent-ink);}
/* Print quality: keep normal entries whole, but allow intentionally classified long entries and
long list items to flow. An unsplittable block taller than a page is otherwise clipped. */
.entry{break-inside:avoid-page;page-break-inside:avoid;}
.entry-flow{break-inside:auto;page-break-inside:auto;}
.section-title{break-after:avoid-page;page-break-after:avoid;}
.section-title + .entry,.section-title + .bullets,.section-title + .tags,.section-title + .paragraphs,.section-title + .skill-groups{break-before:avoid-page;page-break-before:avoid;}
.section{break-inside:avoid-page;page-break-inside:avoid;}
.section-flow{break-inside:auto;page-break-inside:auto;}
.tag,.contact-item{break-inside:avoid;}
.bullets li{break-inside:avoid-page;page-break-inside:avoid;orphans:2;widows:2;overflow-wrap:anywhere;}
.bullets li.item-flow{break-inside:auto;page-break-inside:auto;}
/* Physical-page margins belong to paged media rather than an individual template box. This makes
the same top/bottom safe area repeat on every page while themes continue to own horizontal
layout and density. Screen preview mirrors these bounds in CvBuilderEditor. */
@media print{
body{background:transparent;}
.page{width:auto;min-height:0;margin:0;}
.cols{min-height:0;}
.header{padding-top:0;}
.main,.sidebar{padding-top:0;padding-bottom:0;}
}
@page{size:210mm 297mm;margin:16mm 0;}
</style>
</head>
<body>
<main class="page"><div class="cols"><section class="main"><section class="section section-summary section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Summary</span></h2><ul class="bullets"><li>R01 Builds reliable and accessible career software using documented evidence.</li></ul></section><section class="section section-experience section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Experience</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E01 Platform engineer</div></div><div class="entry-subtitle">Nordlys Fixture AS</div><ul class="bullets"><li>B01 Delivered accessible application workflows with documented outcomes.</li><li>B02 Maintained reliable APIs and verified releases.</li></ul></article></section><section class="section section-education section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Education</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E02 Computer science</div></div><div class="entry-subtitle">Fixture University</div></article></section><section class="section section-projects section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Projects</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">P01 Evidence workspace</div></div><ul class="bullets"><li>B03 Created a source-grounded review workflow.</li></ul></article></section></section><aside class="sidebar"><header class="hero"><div class="head-text"><h1 class="name">&#197;se Fixture</h1><div class="headline">Career platform engineer</div></div></header><div class="contact contact-stacked"><span class="contact-item"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"><path d="M2 4h12v8H2z M2 4l6 4 6-4"/></svg><a href="mailto:ase@example.test">ase@example.test</a></span><span class="contact-item"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"><path d="M8 1a4 4 0 0 0-4 4c0 3 4 8 4 8s4-5 4-8a4 4 0 0 0-4-4z M8 5v.01"/></svg>Oslo, Norge</span></div><section class="section section-skills section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Skills</span></h2><ul class="tags"><li class="tag">C#</li><li class="tag">React</li><li class="tag">Norsk</li><li class="tag">Accessibility</li></ul></section><section class="section section-languages section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Languages</span></h2><ul class="tags"><li class="tag">Norsk — Native</li></ul></section></aside></div></main>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

@@ -0,0 +1,98 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>&#197;se Fixture — Technical</title>
<style>
*{box-sizing:border-box;}
:root{--cv-accent-color:#0f4c5c;--cv-accent-ink:#fff;--cv-accent-soft:color-mix(in srgb,#0f4c5c 28%,transparent);--cv-ink:#102a43;--cv-muted:#486581;--cv-paper:#ffffff;--cv-page-margin:16mm;}
html,body{min-width:0;}
body{margin:0;background:#e9edf2;color:var(--cv-ink);font-family:'Roboto', Arial, sans-serif;font-size:9.5pt;line-height:1.36;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.page{width:210mm;min-height:297mm;margin:0 auto;background:var(--cv-paper);overflow:visible;overflow-wrap:anywhere;word-break:normal;}
h1,h2{font-family:'Roboto', Arial, sans-serif;}
.name{margin:0;font-size:24pt;color:#102a43;line-height:1.1;overflow-wrap:anywhere;}
.kicker{text-transform:uppercase;letter-spacing:.3em;font-size:7.5pt;color:#0f4c5c;margin-bottom:1.5mm;}
.headline{margin-top:1.5mm;color:#486581;font-size:10pt;}
.head-text,.main,.sidebar,.cols>*{min-width:0;}
.head-text{flex:1;}
.photo{width:30mm;height:30mm;overflow:hidden;flex:0 0 auto;border:1px solid var(--cv-accent-soft);}
.photo-square{border-radius:2mm;}
.photo-rounded{border-radius:5mm;}
.photo-circle{border-radius:50%;}
.photo img{width:100%;height:100%;object-fit:cover;display:block;}
.contact{display:flex;gap:3mm;flex-wrap:wrap;color:#486581;font-size:9pt;margin-top:2.5mm;}
.contact-stacked{flex-direction:column;gap:1.8mm;}
.contact-item{display:inline-flex;align-items:center;gap:1.2mm;min-width:0;max-width:100%;overflow-wrap:anywhere;}
.contact a{color:inherit;text-decoration:none;min-width:0;overflow-wrap:anywhere;word-break:break-word;}
.main a{color:var(--cv-accent-color);text-decoration-color:var(--cv-accent-soft);}
.contact svg{width:3.2mm;height:3.2mm;flex:0 0 auto;opacity:.85;}
.hero{margin-bottom:6mm;}
.hero .name{font-size:21pt;}
.section{margin-top:6mm;}
.section:first-child{margin-top:0;}
.section-title{margin:0 0 2.6mm 0;font-size:12pt;font-weight:700;color:#0f4c5c;}
.section-title{padding-left:2.5mm;border-left:3px solid #0f4c5c;}
.section-presentation-grid{display:grid;grid-template-columns:repeat(var(--cv-section-columns,1),minmax(0,1fr));column-gap:4mm;align-items:start;}
.section-presentation-grid>.section-title{grid-column:1/-1;}
.section-presentation-grid>.entry{min-width:0;}
.section-presentation-compact>.entry{margin-bottom:2.48mm;}
.section-presentation-compact>.bullets li{margin-bottom:0.75mm;}
.section-presentation-bubble>.tags,.section-presentation-bubble>.bullets{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:1.4mm;}
.section-presentation-bubble>.bullets li,.section-presentation-bubble>.tags li{margin:0;border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;}
.section-presentation-bubble>.bullets li::marker{content:"";}
.bullets{margin:0;padding-left:4.5mm;}
.bullets li{margin:0 0 1.6mm 0;}
.bullets li::marker{color:var(--cv-accent-color);}
.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:1.8mm;}
.skills-text{margin:0;overflow-wrap:anywhere;}
.tag{border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;font-size:9pt;max-width:100%;overflow-wrap:anywhere;}
.paragraphs p{margin:0 0 1.8mm;white-space:pre-line;}
.skill-groups{display:grid;gap:1.7mm;}
.skill-group{display:grid;grid-template-columns:minmax(24mm,.3fr) minmax(0,1fr);gap:3mm;break-inside:avoid-page;page-break-inside:avoid;}
.skill-group-name{font-family:'Roboto Mono', Consolas, monospace;font-weight:700;color:var(--cv-accent-color);overflow-wrap:anywhere;}
.skill-group-items{display:flex;flex-wrap:wrap;gap:.8mm 3mm;list-style:none;margin:0;padding:0;}
.skill-group-items li{overflow-wrap:anywhere;}
.entry{margin-bottom:4.5mm;}
.entry:last-child{margin-bottom:0;}
.entry-head{display:flex;justify-content:space-between;gap:1.5mm 4mm;align-items:baseline;flex-wrap:wrap;break-after:avoid-page;page-break-after:avoid;}
.entry-title{font-weight:700;font-size:10.5pt;min-width:0;flex:1 1 50mm;overflow-wrap:anywhere;}
.entry-meta{color:#486581;font-size:9pt;white-space:normal;text-align:right;max-width:100%;overflow-wrap:anywhere;}
.entry-subtitle{color:#486581;font-size:9.5pt;margin:.4mm 0 1.2mm 0;}
.entry-tags{margin-top:1.4mm;}
.cols{display:grid;grid-template-columns:62mm minmax(0,1fr);min-height:297mm;}
.sidebar{background:var(--cv-accent-color);color:var(--cv-accent-ink);padding:16mm;}
.sidebar .section-title{color:var(--cv-accent-ink);border-color:color-mix(in srgb,var(--cv-accent-ink) 38%,transparent);}
.sidebar .tag{border-color:color-mix(in srgb,var(--cv-accent-ink) 45%,transparent);}
.sidebar .contact,.sidebar .headline,.sidebar .entry-meta,.sidebar .entry-subtitle{color:var(--cv-accent-ink);}
.sidebar a{color:inherit;}
.main{padding:16mm;}
.hero .name{color:var(--cv-accent-ink);}
/* Print quality: keep normal entries whole, but allow intentionally classified long entries and
long list items to flow. An unsplittable block taller than a page is otherwise clipped. */
.entry{break-inside:avoid-page;page-break-inside:avoid;}
.entry-flow{break-inside:auto;page-break-inside:auto;}
.section-title{break-after:avoid-page;page-break-after:avoid;}
.section-title + .entry,.section-title + .bullets,.section-title + .tags,.section-title + .paragraphs,.section-title + .skill-groups{break-before:avoid-page;page-break-before:avoid;}
.section{break-inside:avoid-page;page-break-inside:avoid;}
.section-flow{break-inside:auto;page-break-inside:auto;}
.tag,.contact-item{break-inside:avoid;}
.bullets li{break-inside:avoid-page;page-break-inside:avoid;orphans:2;widows:2;overflow-wrap:anywhere;}
.bullets li.item-flow{break-inside:auto;page-break-inside:auto;}
/* Physical-page margins belong to paged media rather than an individual template box. This makes
the same top/bottom safe area repeat on every page while themes continue to own horizontal
layout and density. Screen preview mirrors these bounds in CvBuilderEditor. */
@media print{
body{background:transparent;}
.page{width:auto;min-height:0;margin:0;}
.cols{min-height:0;}
.header{padding-top:0;}
.main,.sidebar{padding-top:0;padding-bottom:0;}
}
@page{size:210mm 297mm;margin:16mm 0;}
</style>
</head>
<body>
<main class="page"><div class="cols"><aside class="sidebar"><header class="hero"><div class="head-text"><h1 class="name">&#197;se Fixture</h1><div class="headline">Career platform engineer</div></div></header><div class="contact contact-stacked"><span class="contact-item"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"><path d="M2 4h12v8H2z M2 4l6 4 6-4"/></svg><a href="mailto:ase@example.test">ase@example.test</a></span><span class="contact-item"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"><path d="M8 1a4 4 0 0 0-4 4c0 3 4 8 4 8s4-5 4-8a4 4 0 0 0-4-4z M8 5v.01"/></svg>Oslo, Norge</span></div><section class="section section-skills section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Skills</span></h2><ul class="bullets skill-bullets"><li>C#</li><li>React</li><li>Norsk</li><li>Accessibility</li></ul></section><section class="section section-languages section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Languages</span></h2><ul class="tags"><li class="tag">Norsk — Native</li></ul></section></aside><section class="main"><section class="section section-summary section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Summary</span></h2><ul class="bullets"><li>R01 Builds reliable and accessible career software using documented evidence.</li></ul></section><section class="section section-experience section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Experience</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E01 Platform engineer</div></div><div class="entry-subtitle">Nordlys Fixture AS</div><ul class="bullets"><li>B01 Delivered accessible application workflows with documented outcomes.</li><li>B02 Maintained reliable APIs and verified releases.</li></ul></article></section><section class="section section-education section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Education</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E02 Computer science</div></div><div class="entry-subtitle">Fixture University</div></article></section><section class="section section-projects section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Projects</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">P01 Evidence workspace</div></div><ul class="bullets"><li>B03 Created a source-grounded review workflow.</li></ul></article></section></section></div></main>
</body>
</html>
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

@@ -0,0 +1,97 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>&#197;se Fixture — Minimal</title>
<style>
*{box-sizing:border-box;}
:root{--cv-accent-color:#126b55;--cv-accent-ink:#fff;--cv-accent-soft:color-mix(in srgb,#126b55 28%,transparent);--cv-ink:#111827;--cv-muted:#6b7280;--cv-paper:#ffffff;--cv-page-margin:16mm;}
html,body{min-width:0;}
body{margin:0;background:#e9edf2;color:var(--cv-ink);font-family:'Helvetica Neue', Arial, sans-serif;font-size:10pt;line-height:1.42;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.page{width:210mm;min-height:297mm;margin:0 auto;background:var(--cv-paper);overflow:visible;overflow-wrap:anywhere;word-break:normal;}
h1,h2{font-family:'Helvetica Neue', Arial, sans-serif;}
.name{margin:0;font-size:24pt;color:#111827;line-height:1.1;overflow-wrap:anywhere;}
.kicker{text-transform:uppercase;letter-spacing:.3em;font-size:7.5pt;color:#126b55;margin-bottom:1.5mm;}
.headline{margin-top:1.5mm;color:#6b7280;font-size:10.5pt;}
.head-text,.main,.sidebar,.cols>*{min-width:0;}
.head-text{flex:1;}
.photo{width:30mm;height:30mm;overflow:hidden;flex:0 0 auto;border:1px solid var(--cv-accent-soft);}
.photo-square{border-radius:2mm;}
.photo-rounded{border-radius:5mm;}
.photo-circle{border-radius:50%;}
.photo img{width:100%;height:100%;object-fit:cover;display:block;}
.contact{display:flex;gap:3mm;flex-wrap:wrap;color:#6b7280;font-size:9.5pt;margin-top:2.5mm;}
.contact-stacked{flex-direction:column;gap:1.8mm;}
.contact-item{display:inline-flex;align-items:center;gap:1.2mm;min-width:0;max-width:100%;overflow-wrap:anywhere;}
.contact a{color:inherit;text-decoration:none;min-width:0;overflow-wrap:anywhere;word-break:break-word;}
.main a{color:var(--cv-accent-color);text-decoration-color:var(--cv-accent-soft);}
.contact svg{width:3.2mm;height:3.2mm;flex:0 0 auto;opacity:.85;}
.hero{margin-bottom:7mm;}
.hero .name{font-size:21pt;}
.section{margin-top:7mm;}
.section:first-child{margin-top:0;}
.section-title{margin:0 0 2.6mm 0;font-size:12pt;font-weight:700;color:#111827;}
.section-title{letter-spacing:.01em;}
.section-presentation-grid{display:grid;grid-template-columns:repeat(var(--cv-section-columns,1),minmax(0,1fr));column-gap:4mm;align-items:start;}
.section-presentation-grid>.section-title{grid-column:1/-1;}
.section-presentation-grid>.entry{min-width:0;}
.section-presentation-compact>.entry{margin-bottom:2.75mm;}
.section-presentation-compact>.bullets li{margin-bottom:0.75mm;}
.section-presentation-bubble>.tags,.section-presentation-bubble>.bullets{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:1.4mm;}
.section-presentation-bubble>.bullets li,.section-presentation-bubble>.tags li{margin:0;border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;}
.section-presentation-bubble>.bullets li::marker{content:"";}
.bullets{margin:0;padding-left:4.5mm;}
.bullets li{margin:0 0 1.6mm 0;}
.bullets li::marker{color:var(--cv-accent-color);}
.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:1.8mm;}
.skills-text{margin:0;overflow-wrap:anywhere;}
.tag{border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;font-size:9.5pt;max-width:100%;overflow-wrap:anywhere;}
.paragraphs p{margin:0 0 1.8mm;white-space:pre-line;}
.skill-groups{display:grid;gap:1.7mm;}
.skill-group{display:grid;grid-template-columns:minmax(24mm,.3fr) minmax(0,1fr);gap:3mm;break-inside:avoid-page;page-break-inside:avoid;}
.skill-group-name{font-family:'Roboto Mono', Consolas, monospace;font-weight:700;color:var(--cv-accent-color);overflow-wrap:anywhere;}
.skill-group-items{display:flex;flex-wrap:wrap;gap:.8mm 3mm;list-style:none;margin:0;padding:0;}
.skill-group-items li{overflow-wrap:anywhere;}
.entry{margin-bottom:5mm;}
.entry:last-child{margin-bottom:0;}
.entry-head{display:flex;justify-content:space-between;gap:1.5mm 4mm;align-items:baseline;flex-wrap:wrap;break-after:avoid-page;page-break-after:avoid;}
.entry-title{font-weight:700;font-size:11pt;min-width:0;flex:1 1 50mm;overflow-wrap:anywhere;}
.entry-meta{color:#6b7280;font-size:9.5pt;white-space:normal;text-align:right;max-width:100%;overflow-wrap:anywhere;}
.entry-subtitle{color:#6b7280;font-size:10pt;margin:.4mm 0 1.2mm 0;}
.entry-tags{margin-top:1.4mm;}
.main{padding:0 16mm 16mm 16mm;}
.header{padding:16mm 16mm 7mm 16mm;display:flex;gap:6mm;align-items:center;}
.header-band{background:#126b55;color:#fff;}
.header-band .name,.header-band .headline,.header-band .contact,.header-band .contact-item,.header-band a{color:#fff;}
.header-centered{flex-direction:column;text-align:center;justify-content:center;}
.header-centered .contact{justify-content:center;}
.header-plain{border-bottom:2px solid #126b55;}
/* Print quality: keep normal entries whole, but allow intentionally classified long entries and
long list items to flow. An unsplittable block taller than a page is otherwise clipped. */
.entry{break-inside:avoid-page;page-break-inside:avoid;}
.entry-flow{break-inside:auto;page-break-inside:auto;}
.section-title{break-after:avoid-page;page-break-after:avoid;}
.section-title + .entry,.section-title + .bullets,.section-title + .tags,.section-title + .paragraphs,.section-title + .skill-groups{break-before:avoid-page;page-break-before:avoid;}
.section{break-inside:avoid-page;page-break-inside:avoid;}
.section-flow{break-inside:auto;page-break-inside:auto;}
.tag,.contact-item{break-inside:avoid;}
.bullets li{break-inside:avoid-page;page-break-inside:avoid;orphans:2;widows:2;overflow-wrap:anywhere;}
.bullets li.item-flow{break-inside:auto;page-break-inside:auto;}
/* Physical-page margins belong to paged media rather than an individual template box. This makes
the same top/bottom safe area repeat on every page while themes continue to own horizontal
layout and density. Screen preview mirrors these bounds in CvBuilderEditor. */
@media print{
body{background:transparent;}
.page{width:auto;min-height:0;margin:0;}
.cols{min-height:0;}
.header{padding-top:0;}
.main,.sidebar{padding-top:0;padding-bottom:0;}
}
@page{size:210mm 297mm;margin:16mm 0;}
</style>
</head>
<body>
<main class="page"><header class="header header-plain"><div class="head-text"><h1 class="name">&#197;se Fixture</h1><div class="headline">Career platform engineer</div><div class="contact contact-inline"><span class="contact-item"><a href="mailto:ase@example.test">ase@example.test</a></span><span class="contact-item">Oslo, Norge</span></div></div></header><section class="main"><section class="section section-projects section-presentation-grid" style="--cv-section-columns:2"><h2 class="section-title"><span class="section-title-text">Projects</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">P01 Evidence workspace</div></div><ul class="bullets"><li>B03 Created a source-grounded review workflow.</li></ul></article></section><section class="section section-skills section-presentation-bubble" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Skills</span></h2><p class="skills-text">C# · React · Norsk · Accessibility</p></section><section class="section section-experience section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Experience</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E01 Platform engineer</div></div><div class="entry-subtitle">Nordlys Fixture AS</div><ul class="bullets"><li>B01 Delivered accessible application workflows with documented outcomes.</li><li>B02 Maintained reliable APIs and verified releases.</li></ul></article></section><section class="section section-summary section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Professional Summary</span></h2><ul class="bullets"><li>R01 Builds reliable and accessible career software using documented evidence.</li></ul></section><section class="section section-education section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Education</span></h2><article class="entry"><div class="entry-head"><div class="entry-title">E02 Computer science</div></div><div class="entry-subtitle">Fixture University</div></article></section><section class="section section-languages section-presentation-rows" style="--cv-section-columns:1"><h2 class="section-title"><span class="section-title-text">Languages</span></h2><ul class="tags"><li class="tag">Norsk — Native</li></ul></section></section></main>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 408 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 422 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 479 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Some files were not shown because too many files have changed in this diff Show More