{
  "id": "v1-w9-6545",
  "long_id": "v1.windows-9x.portal.s06.p05.t04.u05",
  "name": "Desktop grey control panel, plum, 1999",
  "era": {
    "slug": "windows-9x",
    "code": "w9",
    "name": "Desktop grey",
    "years": [
      1995,
      2001
    ],
    "description": "Web pages dressed as the desktop of 1995 to 2001: silver-grey windows with a navy title bar, raised and sunken bevels on every button and field, a small pixel-sized sans, and dialogs, tabs and tree lists borrowed from the operating system."
  },
  "archetype": "portal",
  "mode": "mix",
  "viewport": {
    "width": 800,
    "fluid": false
  },
  "summary": "The member centre of an Internet provider laid out as the control panel of a late 1990s desktop: one window with a bar of flat link keys, an information pane at the left that names the page under a coloured rule and offers related links, and at the right a field of large icons with a line of description each, or the property sheet, list view or statement the icon opens. This pack shows it in a plum scheme: pink-grey windows with a wine title bar that fades toward rose, cushioned edges without a black line, softly shaded keys and bars, a dotted mauve desktop and a text serif throughout. Account pages, intranet settings and hosting panels used this web-view form of the desktop from 1997 to 2001.",
  "url": "https://chrono.skin/s/v1-w9-6545",
  "preview_url": "https://chrono.skin/s/v1-w9-6545/specimen.html",
  "files": {
    "STYLE.md": "# Desktop grey control panel, plum, 1999\n\n## Summary\n\nThe member centre of an Internet provider laid out as the control panel of a late 1990s desktop: one window with a bar of flat link keys, an information pane at the left that names the page under a coloured rule and offers related links, and at the right a field of large icons with a line of description each, or the property sheet, list view or statement the icon opens. This pack shows it in a plum scheme: pink-grey windows with a wine title bar that fades toward rose, cushioned edges without a black line, softly shaded keys and bars, a dotted mauve desktop and a text serif throughout. Account pages, intranet settings and hosting panels used this web-view form of the desktop from 1997 to 2001.\n\n## Layout\n\n- Fixed, not fluid: `--size-page` is 768px, one window (`.ds-page__window`, also a `.ds-window`) centred on the desktop of an 800px screen with a `--space-6` margin above and below.\n- The specimen is one example site, the member centre, of four views. `.ds-nav` (title bar and the bar of link keys) and `.ds-footer` (status bar) are written once, inside the window and outside the views; each view is a `.ds-view` and one shows at a time.\n- Every view is `.ds-page__columns`: the information pane `.ds-page__info` (`--size-info`, 196px, a white well) at the left and the working pane at the right, `--space-2` apart and stretched to the same height.\n- Home view: the information pane holds the `.ds-hero` (large icon, title, lead, one line and the default key, closed by a thick rule in the accent colour), the `.ds-sidebar` block of links and a small note pushed to its foot. The working pane is a `.ds-pane` whose well is the `.ds-grid` of twelve applets, three to a row. Under the columns, `--space-4` apart: the `.ds-stat` row of four read-outs and a `.ds-panel` group box with the `.ds-list` of recent activity.\n- Inner pages keep the title bar, the link keys, the status bar and both panes, and drop the icons, the read-outs and the activity list. The information pane opens with the `.ds-breadcrumb` (small links), then the `.ds-page-header` in the hero's place (large icon, title, one line and one key, closed by the same thick rule), then property rows, a group box or a `.ds-sidebar` of tasks. The working pane is `.ds-page__main`, a column `--space-4` apart; tabs come first in it, after any notices, with their `.ds-sheet`.\n- Views: `home` is the control panel. `account` is a property sheet: two notices, five tabs over a sheet with two group boxes (the form, and three radio buttons), and the row of keys. `users` is the list view of users with status labels, a selected row and a total row, the pagination keys beside the key of status labels, then the confirmation dialog beside the empty state of the invitations pane. `billing` is the list view of statements over an explanation of the plan in a well, with the hours meter in the information pane. The link key of the view that is showing stays pressed and bold; the Control Panel key is marked when the address names no view.\n- Fixed sizes: `--size-ctl` 16px caption button and `--size-glyph` 8px glyph; `--size-icon` 32px and `--size-icon-small` 16px icons; `--size-check` 13px check box and radio button; `--size-label` 104px form label column; `--size-field` 200px text field; `--size-dialog` 316px; `--size-button` 75px least key width; `--size-block` 8px progress block.\n- Spacing scale: `--space-0` 1px is the hairline step (tick inset, row padding in trees); `--space-1` 2px the gap between keys and the padding of bars; `--space-2` 4px the padding of keys, the gap between an icon and its word and between panes; `--space-3` 6px cell and field padding and the gap between keys in a row; `--space-4` 8px the gap between blocks inside a window and the padding of group boxes; `--space-5` 12px the padding of sheets and dialogs; `--space-6` 16px the margin of the desktop round the window and the gutter of two-column sheets.\n\n## Typography and colour roles\n\nThis style combines the parts of different styles of one era. Where a note below names a value that differs from `tokens.css`, the tokens are right.\n\n- Two families and a monospace: `--font-body` and `--font-ui` are a wide humanist sans (Lucida Sans Unicode, then Lucida Grande, Geneva); `--font-heading` is Arial Black at weight 900 for the folder banner, page titles, the brand and the read-outs; `--font-mono` is Lucida Console. The references set their text in Arial and Verdana at 10px to 13px with titles in a black weight; the stacks here are the nearest faces that shipped with the desktops of the time.\n- Sizes: `--text-base` and `--text-ui` 11px for everything; `--text-small` 10px for counts and dates; `--text-large` 12px for a lead line; `--text-h2` 12px and `--text-h3` 11px for headings; `--text-h1` 15px for a page title and a read-out; `--text-display` 20px for the folder banner only. Line height 1.45 in text, 1.25 in keys and bars. Bold is 700, headings 900; keys are regular weight. No transform and no tracking. Links in text are underlined; quiet links are not.\n- Colour: blue-grey `--color-canvas` windows on a dark storm blue `--color-page`, white wells, a slate title bar and slate selection, a mid grey-blue `--color-inverse` for the banner and the rail, ink blue links with violet visited and brick active, near-black blue text. Block colours are pale blue, sea green, lavender and straw. Status colours are deep green, ochre and dark red, all legible on white.\n- Surface: nothing is bevelled. A raised part is one hairline of `--color-border` with a 2px pale edge inside its top and left; a sunken part is the same hairline with a 2px grey shade inside its top and left; a window is a hairline of `--color-border-strong`, and a dialog adds a hard 2px shadow. `--border-width-strong` is 2px. Thin lines (`--border-style`) are dotted: group boxes, rules, the frame of notices and badges, the extra line of the default button. The desktop and the inverse fill carry thin slanting rain lines; the title bar runs from a near-black mix of `--color-bar` at the left to `--color-bar` at the right. A key under the pointer turns paler (`--fill-button-hover`) and its label takes `--color-button-hover-text`.\n- The era's rule for which text sits on which fill, the same in every layout of the era and to be kept by every token set:\n  - The desktop (`--fill-page` over `--color-page`) is always dark enough to carry `--color-bar-text`. Text written straight on the desktop (icon labels, small print) uses `--color-bar-text`.\n  - The window face is `--color-canvas`; raised parts inside a window (sheets, notes, dialogs) are `--fill-panel`. Both carry `--color-text`, `--color-text-muted`, `--color-heading`, `--color-heading-alt` and the link colours.\n  - A sunken well (list view, tree, document, read-out, empty list) is `--color-surface` and carries the same text and link tokens as the window face, so every palette keeps text and links legible on both. `--color-surface-alt` is the alternate row and the fill of inline code and of a pressed toolbar key; `--color-surface-strong` is a group or total row. They carry `--color-text`.\n  - A title bar is `--fill-bar` with `--color-bar-text`; the title bar of a window without the focus is `--fill-inverse` with `--color-inverse-text`.\n  - Menu bar, toolbar and column heads are `--fill-bar-alt` with `--color-bar-alt-text`.\n  - The selection (current tree row, selected table row, open menu, selected list-box row, progress blocks, the plain badge) is `--fill-accent` with `--color-accent-text`. Links and icons inside a selection inherit that colour.\n  - Keys are `--fill-button` with `--color-button-text` (`--color-button-hover-text` under the pointer); the lesser key is `--fill-button-secondary` with `--color-button-secondary-text`; a disabled key is `--color-disabled` with `--color-disabled-text`. The destructive key is `--fill-button` with a bold label in `--color-danger`.\n  - Fields and the path field are `--fill-input` with `--color-input-text`; links inside the path field use the link tokens, so a palette keeps `--color-input` close to `--color-surface`. `--color-input-border` outlines the check box.\n  - `--color-fill-1` to `--color-fill-4` carry `--color-text` (icons drawn on them) and, in the help layout, `--color-link`.\n  - Notices are `--color-notice` with `--color-notice-text` inside a line of `--color-border-strong`; the error notice is `--color-danger` on `--color-danger-surface`.\n  - Status labels print `--color-success`, `--color-warning` and `--color-danger` as text and frame on `--color-surface`, so each status colour must read on the well colour; none of them is used as a fill under text.\n  - Icons are inline SVG painted with `currentColor`: `--color-heading-alt` by default, the surrounding text colour on keys, title bars, block colours and selections.\n- Edges, the same in every layout of the era. Nothing has a border of its own except thin lines; every raised or sunken edge is a `box-shadow` token drawn inside the box:\n  - `--shadow-panel`: the raised frame of a window. `--shadow-dialog`: the frame of a dialog.\n  - `--shadow-control`: every raised key: buttons, toolbar keys, caption buttons, column heads, tabs and their sheet, pagination keys, the brand tile.\n  - `--shadow-control-pressed`: everything sunken: fields, the path field, wells, read-outs, status cells, the check box, the progress bar, a pressed key, the current pagination key. Note that fields take the pressed token, not `--shadow-control`.\n  - `--border-width-strong` is the thickness of those edges: padding that must clear an edge is written `calc(var(--border-width-strong) + var(--space-N))`.\n  - `--border-width`, `--border-style` and `--color-border` draw the thin lines: group boxes, the etched rule (`--color-border` over `--color-border-muted`), toolbar separators, table row lines (`--color-surface-alt`), the frame of notices, badges and the default button (`--color-border-strong`).\n  - `--color-border`, `--color-border-strong` and `--color-border-muted` are the three shades the edge tokens are built from: the mid shadow, the darkest outer line and the light edge. A palette sets them as a bevel set for its window face.\n- Not expressible by a token and written literally in `components.css`: the `dotted` guide lines of the tree (and of topic lists), the `solid` strokes of the caption-button glyphs, and `clip-path` on the current tab, which cuts off its lower edge so that it joins the sheet; and the `dotted` guide lines are written literally whatever `--border-style` is.\n- All radii are 0 and are still applied through `--radius-control`, `--radius-panel`, `--radius-pill` and `--radius-page`. `--shadow-text` is applied to title bars and buttons. `--transition` is `none`; `--backdrop-blur` is `0px`: no surface blurs what lies behind it.\n\n## Components\n\n- `.ds-page`: on `<body>`; the desktop. `.ds-page__window` is the one window at `--size-page`; `.ds-page__body` stacks the blocks of a view; `.ds-page__columns` is the information pane beside the working pane; `.ds-page__info` is the information pane, a white well; `.ds-page__main` is the working column of an inner page.\n- `.ds-nav`: the chrome of the window, written once: the title bar (a `.ds-window__title` holding the `.ds-brand`, the caption and the caption buttons) and `.ds-nav__links`, one bar on `--fill-bar-alt` that starts with `.ds-nav__grip`, a thin raised strip. A `.ds-nav__link` is a flat key, a small icon and a word, that rises under the pointer (`is-hover`); the key of the current view (`is-current`, or one selector per view) stays pressed on `--color-surface-alt` and is bold. `.ds-nav__fill` pushes Help and Sign Out to the right.\n- `.ds-brand`: the site's mark and name at the left of the title bar. `.ds-brand__mark` is the window's icon: a small tile dressed like the default button (`--fill-button`, `--color-button-text`, a line of `--color-border-strong`, `--radius-control`, `--shadow-control`) holding the mark as inline SVG with a 3 unit stroke and square caps. `.ds-brand__name` is the name in `--font-heading` at `--text-ui`, in the bar's text colour. The name `chronoskin` and its mark are placeholders for the installing project's own name and logo.\n- `.ds-hero`: the head of the information pane on the home page, the era's page introduction: a large icon, `.ds-hero__title` at `--text-display` in `--color-heading-alt`, `.ds-hero__lead` at `--text-large`, a muted `.ds-hero__text` line and `.ds-hero__action` with the default key, closed by a rule `--border-width-strong` thick in `--color-accent`.\n- `.ds-page-header`: the same head on an inner page: a large icon, `.ds-page-header__text` with `.ds-page-header__title` (`--text-h1`) and `.ds-page-header__lead`, and `.ds-page-header__action` with one secondary key, closed by the same rule.\n- `.ds-breadcrumb`: the path, small links at `--text-small` at the top of the information pane with a `>` between the `.ds-breadcrumb__item`s; the last is `is-current`, bold and in `--color-text`.\n- `.ds-sidebar`: a block of links in the information pane: `.ds-sidebar__title` in bold `--color-heading-alt` and a `.ds-sidebar__list` of `.ds-sidebar__item`s, each a small icon and a `.ds-link`. `.ds-sidebar__note` is a small muted line pushed to the foot of the pane.\n- `.ds-grid`: the applets: a white well of three columns. Each `.ds-grid__cell` is a link: a `.ds-grid__icon` tile (a 32px icon in `--color-text` on one of the four block colours: `--2`, `--3`, `--4` on the cell) beside `.ds-grid__body` with an underlined `.ds-grid__title` in `--color-link` and a small muted `.ds-grid__text`.\n- `.ds-pane` with `.ds-pane__title`: a raised caption strip, like a column head, over a well.\n- `.ds-list`: rows on the window face: a small icon, `.ds-list__text` (a link and one line) and a right-aligned `.ds-list__meta`. `.ds-list__item` is the row.\n- `.ds-panel`: a group box, the same thing as `.ds-group`: a `<fieldset>` with its `.ds-panel__title` legend cut into the frame and a `.ds-panel__body`.\n- `.ds-footer`: the status bar of the window, a `.ds-status` row: one wide cell with the site line and quiet links, then short cells.\n- `.ds-window`: the raised frame of a window (`--fill-panel`, `--shadow-panel`). `.ds-window__title` is the title bar (`--fill-bar`, bold `--font-ui` in `--color-bar-text`), `.ds-window__title--inactive` the bar of a window without the focus, `.ds-window__caption` the title text, `.ds-window__controls` the group of caption buttons. `.ds-window__ctl` is one caption button, a small raised square with its glyph drawn in CSS: `--min`, `--max`, `--close`. `.ds-window__body` pads plain content.\n- `.ds-view`: one screen of the example site; only the one named in the address shows, and `.ds-view--home` when none is named. No box of its own.\n- `.ds-prose`: running text: styles `h1`, `h2`, `h3`, `p`, `ul`, `ol`, `li`, `strong` and `code`; `.ds-prose__lead` is the lead line at `--text-large`. Used inside a well.\n- `.ds-link`: every link in text, underlined. States `is-visited`, `is-hover`, `is-active`, `is-focus`. `.ds-link--quiet` (`--color-link-quiet`, `--link-decoration-quiet`) for tool and footer links, `.ds-link--strong` for a bold link. `.ds-links` wraps a line of links.\n- `.ds-button`: a raised key at least `--size-button` wide, on a `<button>` or on a link that leads to another view. The plain class is the default button of its window: one more line of `--color-border-strong` round the key. `.ds-button--secondary` is every other key, `.ds-button--danger` the destructive one (bold `--color-danger` label, never a red key), `.ds-button--large` a bigger one. States `is-hover`, `is-pressed` (the edge turns inward), `is-focus` (ring inside the key), `is-disabled` or `disabled`. `.ds-buttons` lays out a row; a `.ds-find__fill` spacer pushes the confirming keys to the right.\n- `.ds-form`: two columns, `.ds-form__label` at the left (`--size-label`) and `.ds-form__field` at the right. Controls: `.ds-form__input` (`--short`, `--wide`), `.ds-form__select`, `.ds-form__textarea`, `.ds-form__check` inside a `.ds-form__option` label, `.ds-form__radio` (the round field with a dot) the same way. All are sunken fields. `.ds-form__hint` is a small muted line under a field, `.ds-form__error` a bold line in `--color-danger` under it (the field itself does not change), `.ds-form__actions` a right-aligned row of keys.\n- `.ds-table`: a list view: a sunken well of `--color-surface` whose column heads (`.ds-table__head`, `--num` for a right-aligned one) are raised keys. Rows are `.ds-table__row`; `.ds-table__row--alt` tints a row, `is-selected` puts it in the selection colours. `.ds-table__cell`, with `--num` for figures and `--group` for a total or group row. `.ds-table__caption` is the small line under the well.\n- `.ds-stat`: the row of summary figures; each `.ds-stat__item` is a sunken read-out with a `.ds-stat__value` (`--text-h1`, `--color-heading-alt`) over a `.ds-stat__label` (`--text-small`, muted). Three or four in a row, never large numerals or cards.\n- `.ds-tabs`: a property sheet. `.ds-tabs__item` holds a `.ds-tabs__tab`, a raised key whose lower edge slides under the sheet; the current tab (`is-current`) is taller, bold and joined to the sheet. `.ds-sheet` is the raised sheet under the tabs and always follows them.\n- `.ds-badge`: a small bold label in the selection colours with a dark line round it. `.ds-badge--count` is a plain muted count. Status: `.ds-badge--success`, `.ds-badge--warning`, `.ds-badge--danger`, the status colour as text and frame on the well colour. `.ds-badges` lays out a row of them.\n- `.ds-notice`: the pale tip box inside a dark line; `.ds-notice__label` is the bold lead word. `.ds-notice--error` is the error form. `.ds-notices` stacks several.\n- `.ds-pagination`: a row of small raised keys: `.ds-pagination__label`, then `.ds-pagination__link` for previous, the page numbers and next; `is-current` is pressed and bold, `is-disabled` greyed.\n- `.ds-dialog`: a small window `--size-dialog` wide, shown in the page flow where it would open. `.ds-dialog__title` is its title bar (with a `.ds-window__ctl--close`), `.ds-dialog__content` holds a large icon and the `.ds-dialog__body` message, `.ds-dialog__actions` centres the keys. No backdrop.\n- `.ds-empty`: an empty well with `.ds-empty__title`, `.ds-empty__text` and one secondary key.\n- `.ds-icon`: a 16px inline SVG pixel icon; `.ds-icon--large` is 32px, `.ds-icon--plain` takes the surrounding text colour.\n- `.ds-well`: a sunken field of `--color-surface` for a document or a list. `.ds-rule`: the etched line. `.ds-group` with `.ds-group__title`: a group box, a `<fieldset>` whose `<legend>` is cut into the thin frame. `.ds-props` with `.ds-props__label` and `.ds-props__value`: rows of a property page. `.ds-progress` with `.ds-progress__block` (`--empty` for the rest): a progress bar made of blocks.\n- `.ds-tree`: the tree list: `.ds-tree__item` rows, `.ds-tree__link` (icon and name, not underlined, `is-current` in the selection colours), nested `.ds-tree__list` joined by a dotted guide line.\n- `.ds-status` is a row of sunken `.ds-status__cell`s (`--wide` takes the free width).\n- `.ds-heading`: a section title at `--text-h2`. `.ds-split`: two equal columns. `.ds-stack`: a column of blocks `--space-4` apart (`.ds-stack--tight` `--space-2` apart, for radio buttons and check boxes). `.ds-find`: a row of labels, fields and a key.\n- `.ds-menu`: a pull-down under a menu-bar entry: an `<li class=\"ds-menu\">` holding a `<details>` whose `<summary class=\"ds-nav__link\">` is the entry and whose `.ds-menu__list` of `.ds-menu__item` links opens on a click, in the selection colours while open. `.ds-menu--up` opens it upward, from a task bar.\n- `.ds-avatar`: the user icon beside the signed-in name: a small raised tile holding one initial.\n\n## Never\n\n- `row-gap <= 8px`: rows of lists and list views touch or sit 1px to 4px apart.\n- `block-gap <= 16px`: blocks inside the window are 8px apart, never more than 16px.\n- `content-width <= 768px`: everything is inside the one 768px window.\n- `font-size >= 10px`: counts and dates are 10px, nothing smaller.\n- `font-size <= 20px`: the folder banner is the largest text; page titles stop at 15px.\n- `font-weight >= 400`: regular, bold and the black weight of headings; nothing light.\n- `font-families <= 3`: the text sans, the black heading face and a monospace.\n- `letter-spacing = 0`: no tracking.\n- `uppercase-text <= 0%`: no text-transform.\n- `border-radius <= 0px`: the desktop had no rounded corner; the radio button is a circle.\n- `box-shadow-blur <= 0px`: every rim is made of hard 1px lines; nothing is blurred.\n- `text-shadow = none`: no text shadow anywhere.\n- `gradient-fills <= 3%`: only the pinstriped title bars, the picture tile and the banded desktop carry a pattern.\n- `border-width <= 2px`: thin lines are 2px grooves, nothing wider.\n- `transition = none`: nothing eases on hover.\n- `animation = none`: no CSS animation.\n\n## Extending\n\nDerive a new component from the nearest one in the specimen and use tokens only. Anything that holds content is a `.ds-window` with a title bar or a `.ds-group` with its caption; anything that lists is a `.ds-table`, a `.ds-tree` or a list in a `.ds-well`; anything pressed or typed into takes `--shadow-control-pressed`, anything pushed takes `--shadow-control`. Clear every edge with `calc(var(--border-width-strong) + ...)` padding, keep text at `--text-base` or `--text-ui`, and never add a radius, a blurred shadow, a gradient outside `--fill-*` tokens, a hover animation or a colour of your own.\n",
    "components.css": "/* Layout tokens (structure part). A member centre laid out as a control\n   panel, 768px wide on an 800px screen: a bar of flat link keys, an\n   information pane at the left and the icons or the working page at the right. */\n:root {\n  --size-page: 768px;\n  --size-info: 196px;\n  --size-ctl: 16px;\n  --size-glyph: 8px;\n  --size-icon: 32px;\n  --size-icon-small: 16px;\n  --size-check: 13px;\n  --size-label: 104px;\n  --size-field: 200px;\n  --size-dialog: 316px;\n  --size-button: 75px;\n  --size-block: 8px;\n  --space-0: 1px;\n  --space-1: 2px;\n  --space-2: 4px;\n  --space-3: 6px;\n  --space-4: 8px;\n  --space-5: 12px;\n  --space-6: 16px;\n}\n\n/* ---------- shell: the desktop and the control panel window ---------- */\n.ds-page {\n  margin: 0;\n  padding: var(--space-6) 0;\n  background: var(--fill-page);\n  color: var(--color-text);\n  font-family: var(--font-body);\n  font-size: var(--text-base);\n  font-weight: var(--weight-body);\n  line-height: var(--line-body);\n}\n.ds-page__window {\n  width: var(--size-page);\n  margin: 0 auto;\n  background: var(--color-canvas);\n  border-radius: var(--radius-page);\n}\n.ds-page__body {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-4);\n  padding: var(--space-1) 0 var(--space-4);\n}\n/* The information pane and the working pane, the same height. */\n.ds-page__columns {\n  display: grid;\n  grid-template-columns: var(--size-info) minmax(0, 1fr);\n  gap: var(--space-2);\n  align-items: stretch;\n}\n/* The information pane: a well that says where you are and what you can do. */\n.ds-page__info {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-4);\n  box-sizing: border-box;\n  min-width: 0;\n  padding: calc(var(--border-width-strong) + var(--space-4));\n  background: var(--color-surface);\n  color: var(--color-text);\n  box-shadow: var(--shadow-control-pressed);\n}\n.ds-page__main {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-4);\n  min-width: 0;\n}\n.ds-split {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n  gap: var(--space-5);\n  align-items: start;\n}\n.ds-stack {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-4);\n  min-width: 0;\n}\n.ds-stack--tight {\n  gap: var(--space-2);\n}\n.ds-heading {\n  margin: 0 0 var(--space-2);\n  color: var(--color-heading);\n  font-family: var(--font-heading);\n  font-size: var(--text-h2);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n}\n\n/* ---------- views: one screen of the example site shows at a time ---------- */\n.ds-view { display: none; }\n.ds-view:target, .ds-page:not(:has(.ds-view:target)) .ds-view--home { display: block; }\n.ds-view:target { scroll-margin-top: 100vh; }\n/* ---------- window: a raised frame with a title bar ---------- */\n.ds-window {\n  box-sizing: border-box;\n  min-width: 0;\n  padding: calc(var(--border-width-strong) + var(--space-1));\n  background: var(--fill-panel);\n  color: var(--color-text);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-panel);\n}\n.ds-window__title {\n  display: flex;\n  align-items: center;\n  gap: var(--space-2);\n  margin: 0;\n  padding: var(--space-1) var(--space-1) var(--space-1) var(--space-2);\n  background: var(--fill-bar);\n  color: var(--color-bar-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n  text-shadow: var(--shadow-text);\n}\n/* A window that does not have the focus. */\n.ds-window__title--inactive {\n  background: var(--fill-inverse);\n  color: var(--color-inverse-text);\n}\n.ds-window__caption {\n  flex: 1;\n  min-width: 0;\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n.ds-window__controls {\n  display: flex;\n  flex: none;\n  gap: var(--space-1);\n}\n/* Caption buttons: small raised squares, the glyph drawn in CSS. */\n.ds-window__ctl {\n  position: relative;\n  box-sizing: border-box;\n  width: var(--size-ctl);\n  height: calc(var(--size-ctl) - var(--space-1));\n  background: var(--fill-button);\n  color: var(--color-button-text);\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control);\n}\n.ds-window__ctl::before,\n.ds-window__ctl::after {\n  content: \"\";\n  position: absolute;\n  box-sizing: border-box;\n}\n.ds-window__ctl--min::before {\n  left: var(--space-2);\n  bottom: calc(var(--space-1) + var(--space-0));\n  width: calc(var(--size-glyph) - var(--space-1));\n  height: var(--space-1);\n  background: currentColor;\n}\n.ds-window__ctl--max::before {\n  left: calc(50% - var(--size-glyph) / 2);\n  top: calc(50% - var(--size-glyph) / 2);\n  width: var(--size-glyph);\n  height: var(--size-glyph);\n  border: var(--space-0) solid currentColor;\n  border-top-width: var(--space-1);\n}\n.ds-window__ctl--close::before,\n.ds-window__ctl--close::after {\n  left: calc(50% - var(--size-glyph) / 2 - var(--space-0));\n  top: calc(50% - var(--space-0));\n  width: calc(var(--size-glyph) + var(--space-1));\n  height: var(--space-1);\n  background: currentColor;\n  transform: rotate(45deg);\n}\n.ds-window__ctl--close::after {\n  transform: rotate(-45deg);\n}\n.ds-window__body {\n  padding: var(--space-4);\n}\n/* ---------- small things used everywhere ---------- */\n/* Etched line: a dark rule over a light one. */\n.ds-rule {\n  height: 0;\n  margin: var(--space-4) 0;\n  border: 0;\n  border-top: var(--border-width) var(--border-style) var(--color-border);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border-muted);\n}\n/* Pixel icon: inline SVG painted with the text colour of its place. */\n.ds-icon {\n  display: inline-block;\n  flex: none;\n  width: var(--size-icon-small);\n  height: var(--size-icon-small);\n  vertical-align: text-bottom;\n  color: var(--color-heading-alt);\n}\n.ds-icon svg {\n  display: block;\n  width: 100%;\n  height: 100%;\n}\n.ds-icon--large {\n  width: var(--size-icon);\n  height: var(--size-icon);\n}\n.ds-icon--plain {\n  color: inherit;\n}\n/* Sunken well: the white field that holds lists, trees and documents. */\n.ds-well {\n  box-sizing: border-box;\n  min-width: 0;\n  padding: calc(var(--border-width-strong) + var(--space-3));\n  background: var(--color-surface);\n  color: var(--color-text);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-control-pressed);\n}\n/* Progress bar made of blocks. */\n.ds-progress {\n  display: inline-flex;\n  gap: var(--space-1);\n  box-sizing: border-box;\n  padding: calc(var(--border-width-strong) + var(--space-0));\n  background: var(--color-surface);\n  box-shadow: var(--shadow-control-pressed);\n  vertical-align: middle;\n}\n.ds-progress__block {\n  width: var(--size-block);\n  height: calc(var(--size-block) + var(--space-2));\n  background: var(--fill-accent);\n}\n.ds-progress__block--empty {\n  background: transparent;\n}\n/* Status bar: sunken cells. */\n.ds-status {\n  display: flex;\n  gap: var(--space-1);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n}\n.ds-status__cell {\n  padding: calc(var(--border-width-strong) + var(--space-0)) var(--space-3);\n  box-shadow: var(--shadow-control-pressed);\n  white-space: nowrap;\n}\n.ds-status__cell--wide {\n  flex: 1;\n  min-width: 0;\n  white-space: normal;\n}\n/* Group box: a thin frame with its caption cut into the top edge. */\n.ds-group {\n  box-sizing: border-box;\n  min-width: 0;\n  margin: 0;\n  padding: var(--space-2) var(--space-4) var(--space-4);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n}\n.ds-group__title {\n  padding: 0 var(--space-2);\n  color: var(--color-heading-alt);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n}\n/* Property rows: a label column and a value column. */\n.ds-props {\n  display: grid;\n  grid-template-columns: max-content minmax(0, 1fr);\n  column-gap: var(--space-5);\n  row-gap: var(--space-2);\n  align-items: center;\n  margin: 0;\n}\n.ds-props__label {\n  color: var(--color-text-muted);\n}\n.ds-props__value {\n  margin: 0;\n}\n/* Tree list: nested rows joined by dotted guide lines. */\n.ds-tree {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  font-family: var(--font-body);\n  font-size: var(--text-base);\n}\n.ds-tree__list {\n  margin: 0 0 0 calc(var(--size-icon-small) / 2);\n  padding: 0 0 0 var(--space-4);\n  list-style: none;\n  border-left: var(--border-width) dotted var(--color-border);\n}\n.ds-tree__item {\n  padding: var(--space-0) 0;\n}\n.ds-tree__link {\n  display: inline-flex;\n  align-items: center;\n  gap: var(--space-2);\n  padding: 0 var(--space-1);\n  color: var(--color-text);\n  text-decoration: none;\n}\n.ds-tree__link:hover,\n.ds-tree__link.is-hover {\n  color: var(--color-link-hover);\n}\n.ds-tree__link.is-current {\n  background: var(--fill-accent);\n  color: var(--color-accent-text);\n}\n.ds-tree__link.is-current .ds-icon {\n  color: inherit;\n}\n/* ---------- links ---------- */\n.ds-link {\n  color: var(--color-link);\n  text-decoration: var(--link-decoration);\n  transition: var(--transition);\n}\n.ds-link:visited,\n.ds-link.is-visited {\n  color: var(--color-link-visited);\n}\n.ds-link:hover,\n.ds-link.is-hover {\n  color: var(--color-link-hover);\n  text-decoration: var(--link-decoration-hover);\n}\n.ds-link:active,\n.ds-link.is-active {\n  color: var(--color-link-active);\n}\n.ds-link:focus-visible,\n.ds-link.is-focus {\n  outline: var(--focus-ring);\n}\n.ds-link--quiet,\n.ds-link--quiet:visited,\n.ds-link--quiet.is-visited {\n  color: var(--color-link-quiet);\n  text-decoration: var(--link-decoration-quiet);\n}\n.ds-link--strong {\n  font-weight: var(--weight-bold);\n}\n.ds-links {\n  margin: 0;\n}\n/* ---------- prose ---------- */\n.ds-prose {\n  color: var(--color-text);\n  font-family: var(--font-body);\n  font-size: var(--text-base);\n  line-height: var(--line-body);\n}\n.ds-prose h1,\n.ds-prose h2,\n.ds-prose h3 {\n  margin: var(--space-5) 0 var(--space-2);\n  color: var(--color-heading);\n  font-family: var(--font-heading);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n}\n.ds-prose h1 {\n  margin-top: 0;\n  font-size: var(--text-h1);\n}\n.ds-prose h2 {\n  font-size: var(--text-h2);\n}\n.ds-prose h3 {\n  font-size: var(--text-h3);\n  color: var(--color-heading-alt);\n}\n.ds-prose p {\n  margin: 0 0 var(--space-4);\n}\n.ds-prose ul,\n.ds-prose ol {\n  margin: 0 0 var(--space-4);\n  padding: 0 0 0 calc(var(--space-6) + var(--space-4));\n}\n.ds-prose li {\n  padding: 0 0 var(--space-1);\n}\n.ds-prose strong {\n  font-weight: var(--weight-bold);\n}\n.ds-prose code {\n  padding: 0 var(--space-1);\n  background: var(--color-surface-alt);\n  font-family: var(--font-mono);\n  font-size: var(--text-base);\n}\n.ds-prose__lead {\n  font-size: var(--text-large);\n}\n/* ---------- buttons ---------- */\n.ds-buttons {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--space-3);\n}\n/* The primary button is the default button of a dialog: the same raised key\n   as every other, inside one more dark line. */\n.ds-button {\n  display: inline-block;\n  box-sizing: border-box;\n  min-width: var(--size-button);\n  margin: 0;\n  padding: var(--space-2) var(--space-5);\n  background: var(--fill-button);\n  color: var(--color-button-text);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-ui);\n  line-height: var(--line-heading);\n  text-align: center;\n  text-transform: var(--ui-transform);\n  text-decoration: none;\n  text-shadow: var(--shadow-text);\n  white-space: nowrap;\n  transition: var(--transition);\n  cursor: default;\n}\n.ds-button:hover,\n.ds-button.is-hover {\n  background: var(--fill-button-hover);\n  color: var(--color-button-hover-text);\n  box-shadow: var(--shadow-control-hover);\n}\n.ds-button:active,\n.ds-button.is-pressed {\n  box-shadow: var(--shadow-control-pressed);\n}\n.ds-button:focus-visible,\n.ds-button.is-focus {\n  outline: var(--focus-ring);\n  outline-offset: calc(var(--space-2) * -1);\n}\n.ds-button--secondary,\n.ds-button--secondary:hover,\n.ds-button--secondary.is-hover {\n  background: var(--fill-button-secondary);\n  background-clip: padding-box;\n  color: var(--color-button-secondary-text);\n  border-color: transparent;\n}\n.ds-button--large {\n  padding: var(--space-3) var(--space-6);\n  font-size: var(--text-large);\n}\n/* Destructive action: the same key, the label in the bold danger colour. */\n.ds-button--danger,\n.ds-button--danger:hover,\n.ds-button--danger.is-hover {\n  background: var(--fill-button);\n  background-clip: padding-box;\n  color: var(--color-danger);\n  border-color: transparent;\n  font-weight: var(--weight-bold);\n}\n.ds-button:disabled,\n.ds-button.is-disabled {\n  background: var(--color-disabled);\n  background-clip: padding-box;\n  color: var(--color-disabled-text);\n  border-color: transparent;\n}\n/* ---------- form ---------- */\n.ds-form {\n  display: grid;\n  grid-template-columns: var(--size-label) minmax(0, 1fr);\n  column-gap: var(--space-4);\n  row-gap: var(--space-3);\n  align-items: baseline;\n  margin: 0;\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n}\n.ds-form__label {\n  color: var(--color-text);\n}\n.ds-form__field {\n  min-width: 0;\n}\n.ds-form__input,\n.ds-form__select,\n.ds-form__textarea {\n  box-sizing: border-box;\n  max-width: 100%;\n  margin: 0;\n  padding: calc(var(--border-width-strong) + var(--space-1)) calc(var(--border-width-strong) + var(--space-2));\n  background: var(--fill-input);\n  color: var(--color-input-text);\n  border: 0;\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control-pressed);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-body);\n  line-height: var(--line-heading);\n  transition: var(--transition);\n}\n.ds-form__input {\n  width: var(--size-field);\n}\n.ds-form__input--short {\n  width: calc(var(--size-field) / 3);\n}\n.ds-form__textarea {\n  display: block;\n  width: 100%;\n  resize: none;\n}\n.ds-form__input:focus-visible,\n.ds-form__select:focus-visible,\n.ds-form__textarea:focus-visible,\n.ds-form__input.is-focus {\n  outline: var(--focus-ring);\n  outline-offset: calc(var(--border-width-strong) * -1 - var(--space-0));\n}\n.ds-form__input:disabled,\n.ds-form__input.is-disabled {\n  background: var(--color-disabled);\n  color: var(--color-disabled-text);\n}\n.ds-form__option {\n  display: inline-flex;\n  align-items: center;\n  margin: 0 var(--space-5) 0 0;\n}\n.ds-form__check {\n  appearance: none;\n  box-sizing: border-box;\n  flex: none;\n  width: var(--size-check);\n  height: var(--size-check);\n  margin: 0 var(--space-3) 0 0;\n  padding: calc(var(--border-width-strong) + var(--space-0));\n  background: var(--fill-input);\n  border: 0;\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control-pressed);\n  outline: var(--border-width) var(--border-style) var(--color-input-border);\n  outline-offset: calc(var(--border-width) * -1);\n}\n/* The tick is a block of the field's text colour inside the field's fill. */\n.ds-form__check:checked::before,\n.ds-form__check.is-checked::before {\n  content: \"\";\n  display: block;\n  width: 100%;\n  height: 100%;\n  background: var(--color-input-text);\n}\n.ds-form__hint {\n  display: block;\n  padding: var(--space-1) 0 0;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n}\n.ds-form__error {\n  display: block;\n  padding: var(--space-1) 0 0;\n  color: var(--color-danger);\n  font-weight: var(--weight-bold);\n}\n.ds-form__actions {\n  grid-column: 1 / -1;\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: flex-end;\n  gap: var(--space-3);\n  padding: var(--space-2) 0 0;\n}\n/* ---------- table: a list view in a sunken well, raised column heads ---------- */\n.ds-table {\n  box-sizing: border-box;\n  width: 100%;\n  padding: var(--border-width-strong);\n  border-collapse: separate;\n  border-spacing: 0;\n  background: var(--color-surface);\n  color: var(--color-text);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-control-pressed);\n  font-family: var(--font-body);\n  font-size: var(--text-base);\n}\n.ds-table__head {\n  padding: calc(var(--border-width-strong) + var(--space-0)) var(--space-3);\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\n  box-shadow: var(--shadow-control);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-ui);\n  text-align: left;\n  white-space: nowrap;\n}\n.ds-table__head--num {\n  text-align: right;\n}\n.ds-table__cell {\n  padding: var(--space-1) var(--space-3);\n  border-bottom: var(--border-width) var(--border-style) var(--color-surface-alt);\n  text-align: left;\n  vertical-align: baseline;\n}\n.ds-table__cell--num {\n  text-align: right;\n  white-space: nowrap;\n}\n.ds-table__cell--group {\n  background: var(--color-surface-strong);\n  font-weight: var(--weight-bold);\n}\n.ds-table__row--alt .ds-table__cell {\n  background: var(--color-surface-alt);\n}\n/* The selected row of a list view. */\n.ds-table__row.is-selected .ds-table__cell {\n  background: var(--fill-accent);\n  color: var(--color-accent-text);\n}\n.ds-table__row.is-selected .ds-link,\n.ds-table__row.is-selected .ds-icon {\n  color: inherit;\n}\n.ds-table__caption {\n  caption-side: bottom;\n  padding: var(--space-2) 0 0;\n  color: var(--color-text);\n  font-size: var(--text-small);\n  text-align: left;\n}\n/* ---------- stats: sunken read-outs ---------- */\n.ds-stat {\n  display: flex;\n  gap: var(--space-2);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-stat__item {\n  flex: 1;\n  min-width: 0;\n  padding: calc(var(--border-width-strong) + var(--space-1)) calc(var(--border-width-strong) + var(--space-3));\n  background: var(--color-surface);\n  box-shadow: var(--shadow-control-pressed);\n}\n.ds-stat__value {\n  display: block;\n  color: var(--color-heading-alt);\n  font-family: var(--font-heading);\n  font-size: var(--text-h1);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n}\n.ds-stat__label {\n  display: block;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n}\n/* ---------- tabs: a property sheet ---------- */\n.ds-tabs {\n  display: flex;\n  align-items: flex-end;\n  margin: 0;\n  padding: 0 var(--space-1);\n  list-style: none;\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  text-transform: var(--ui-transform);\n}\n.ds-tabs__item {\n  display: flex;\n  align-items: flex-end;\n}\n/* A tab is a raised key whose lower edge slides under the sheet. */\n.ds-tabs__tab {\n  display: block;\n  margin: 0 0 calc(var(--border-width-strong) * -1);\n  padding: var(--space-2) var(--space-4) calc(var(--space-2) + var(--border-width-strong));\n  background: var(--fill-panel);\n  color: var(--color-text);\n  box-shadow: var(--shadow-control);\n  line-height: var(--line-heading);\n  text-decoration: none;\n  white-space: nowrap;\n}\n.ds-tabs__tab:hover,\n.ds-tabs__tab.is-hover {\n  color: var(--color-link-hover);\n}\n/* The current tab is taller, stands in front of the sheet and loses its own\n   lower edge, so it reads as one piece with the sheet. */\n.ds-tabs__tab.is-current {\n  position: relative;\n  z-index: 1;\n  margin: 0 0 calc(var(--border-width-strong) * -2);\n  padding: var(--space-3) var(--space-4) calc(var(--space-2) + var(--border-width-strong) * 2);\n  color: var(--color-text);\n  font-weight: var(--weight-bold);\n  clip-path: inset(0 0 var(--border-width-strong) 0);\n}\n.ds-sheet {\n  box-sizing: border-box;\n  min-width: 0;\n  padding: calc(var(--border-width-strong) + var(--space-5));\n  background: var(--fill-panel);\n  color: var(--color-text);\n  box-shadow: var(--shadow-control);\n}\n/* ---------- badge ---------- */\n.ds-badge {\n  display: inline-block;\n  padding: 0 var(--space-2);\n  background: var(--fill-accent);\n  color: var(--color-accent-text);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-pill);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n  white-space: nowrap;\n}\n.ds-badge--count {\n  padding: 0;\n  background: transparent;\n  color: var(--color-text-muted);\n  border-color: transparent;\n  font-weight: var(--weight-body);\n}\n/* Status labels: the status colour as text and frame on the well colour. */\n.ds-badge--success,\n.ds-badge--warning,\n.ds-badge--danger {\n  background: var(--color-surface);\n  border-color: currentColor;\n}\n.ds-badge--success {\n  color: var(--color-success);\n}\n.ds-badge--warning {\n  color: var(--color-warning);\n}\n.ds-badge--danger {\n  color: var(--color-danger);\n}\n.ds-badges {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--space-2);\n}\n/* ---------- notice: the pale tip box with a dark line round it ---------- */\n.ds-notices {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-3);\n}\n.ds-notice {\n  margin: 0;\n  padding: var(--space-2) var(--space-4);\n  background: var(--color-notice);\n  color: var(--color-notice-text);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-panel);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n}\n.ds-notice--error {\n  background: var(--color-danger-surface);\n  color: var(--color-danger);\n  border-color: var(--color-danger);\n}\n.ds-notice__label {\n  font-weight: var(--weight-bold);\n}\n/* ---------- pagination: a row of small keys ---------- */\n.ds-pagination {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--space-1);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n}\n.ds-pagination__label {\n  padding: 0 var(--space-3) 0 0;\n}\n.ds-pagination__link {\n  display: block;\n  padding: calc(var(--border-width-strong) + var(--space-0)) calc(var(--border-width-strong) + var(--space-3));\n  background: var(--fill-button);\n  color: var(--color-button-text);\n  box-shadow: var(--shadow-control);\n  line-height: var(--line-heading);\n  text-decoration: none;\n  cursor: default;\n}\n.ds-pagination__link:hover,\n.ds-pagination__link.is-hover {\n  color: var(--color-button-hover-text);\n}\n.ds-pagination__link.is-current {\n  box-shadow: var(--shadow-control-pressed);\n  font-weight: var(--weight-bold);\n}\n.ds-pagination__link.is-disabled {\n  color: var(--color-disabled-text);\n}\n/* ---------- dialog: a small window with an icon, a message and keys ---------- */\n.ds-dialog {\n  position: static;\n  box-sizing: border-box;\n  width: var(--size-dialog);\n  max-width: 100%;\n  margin: var(--space-5) auto var(--space-2);\n  padding: calc(var(--border-width-strong) + var(--space-1));\n  background: var(--fill-panel);\n  color: var(--color-text);\n  border-radius: var(--radius-panel);\n  box-shadow: var(--shadow-dialog);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n}\n.ds-dialog__title {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: var(--space-2);\n  margin: 0;\n  padding: var(--space-1) var(--space-1) var(--space-1) var(--space-2);\n  background: var(--fill-bar);\n  color: var(--color-bar-text);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n  text-shadow: var(--shadow-text);\n}\n.ds-dialog__content {\n  display: flex;\n  align-items: flex-start;\n  gap: var(--space-5);\n  padding: var(--space-5);\n}\n.ds-dialog__body {\n  flex: 1;\n  min-width: 0;\n  margin: 0;\n}\n.ds-dialog__actions {\n  display: flex;\n  justify-content: center;\n  gap: var(--space-3);\n  padding: 0 var(--space-5) var(--space-5);\n}\n/* ---------- empty state: a message in an empty well ---------- */\n.ds-empty {\n  padding: var(--space-6) var(--space-5);\n  background: var(--color-surface);\n  color: var(--color-text);\n  box-shadow: var(--shadow-control-pressed);\n  text-align: center;\n  font-size: var(--text-base);\n}\n.ds-empty__title {\n  margin: 0 0 var(--space-2);\n  color: var(--color-heading);\n  font-family: var(--font-heading);\n  font-size: var(--text-h2);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n}\n.ds-empty__text {\n  margin: 0 0 var(--space-4);\n  color: var(--color-text-muted);\n}\n\n/* ---------- nav: the title bar and one bar of flat link keys ---------- */\n.ds-nav {\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n}\n.ds-brand {\n  display: inline-flex;\n  align-items: center;\n  gap: var(--space-2);\n  color: inherit;\n  text-decoration: none;\n}\n/* The mark is the window's icon: a small key dressed like the default button. */\n.ds-brand__mark {\n  display: flex;\n  flex: none;\n  box-sizing: border-box;\n  width: calc(var(--size-ctl) + var(--space-2));\n  height: calc(var(--size-ctl) + var(--space-2));\n  padding: var(--border-width-strong);\n  background: var(--fill-button);\n  color: var(--color-button-text);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-control);\n}\n.ds-brand__mark svg {\n  display: block;\n  width: 100%;\n  height: 100%;\n}\n.ds-brand__name {\n  font-family: var(--font-heading);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-heading);\n  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n}\n.ds-nav__links {\n  display: flex;\n  align-items: stretch;\n  gap: var(--space-1);\n  margin: 0;\n  padding: var(--space-1);\n  list-style: none;\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\n  border-bottom: var(--border-width) var(--border-style) var(--color-border);\n}\n/* The grip at the left end of the bar: a thin raised strip. */\n.ds-nav__grip {\n  flex: none;\n  width: calc(var(--border-width-strong) + var(--space-0));\n  margin: 0 var(--space-1) 0 0;\n  box-shadow: var(--shadow-control);\n}\n.ds-nav__fill {\n  flex: 1;\n}\n/* A link key is flat until the pointer is over it. */\n.ds-nav__link {\n  display: flex;\n  align-items: center;\n  gap: var(--space-2);\n  padding: calc(var(--border-width-strong) + var(--space-1)) var(--space-4);\n  color: var(--color-bar-alt-text);\n  line-height: var(--line-heading);\n  text-decoration: none;\n  text-transform: var(--ui-transform);\n  white-space: nowrap;\n}\n.ds-nav__link .ds-icon {\n  color: inherit;\n}\n.ds-nav__link:hover,\n.ds-nav__link.is-hover {\n  background: var(--fill-button);\n  color: var(--color-button-text);\n  box-shadow: var(--shadow-control);\n}\n/* The key of the page that is showing stays pressed. */\n.ds-nav__link.is-current,\n.ds-page:not(:has(.ds-view:target)) .ds-nav__link[href=\"#home\"],\n.ds-page:has(#home:target) .ds-nav__link[href=\"#home\"],\n.ds-page:has(#account:target) .ds-nav__link[href=\"#account\"],\n.ds-page:has(#users:target) .ds-nav__link[href=\"#users\"],\n.ds-page:has(#billing:target) .ds-nav__link[href=\"#billing\"] {\n  background: var(--color-surface-alt);\n  color: var(--color-text);\n  box-shadow: var(--shadow-control-pressed);\n  font-weight: var(--weight-bold);\n}\n\n/* ---------- hero: the head of the information pane on the home page ---------- */\n.ds-hero,\n.ds-page-header {\n  display: flex;\n  flex-direction: column;\n  align-items: flex-start;\n  gap: var(--space-3);\n  padding: 0 0 var(--space-5);\n  border-bottom: var(--border-width-strong) var(--border-style) var(--color-accent);\n}\n.ds-hero__title {\n  margin: 0;\n  color: var(--color-heading-alt);\n  font-family: var(--font-heading);\n  font-size: var(--text-display);\n  font-weight: var(--weight-display);\n  line-height: var(--line-display);\n  letter-spacing: var(--display-tracking);\n  text-transform: var(--heading-transform);\n}\n.ds-hero__lead {\n  margin: 0;\n  font-size: var(--text-large);\n  line-height: var(--line-heading);\n}\n.ds-hero__text {\n  margin: 0;\n  color: var(--color-text-muted);\n}\n.ds-hero__action {\n  display: flex;\n  flex-wrap: wrap;\n  gap: var(--space-3);\n  padding: var(--space-1) 0 0;\n}\n\n/* ---------- breadcrumb: the path, small links at the top of the information pane ---------- */\n.ds-breadcrumb {\n  display: flex;\n  flex-wrap: wrap;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  color: var(--color-text-muted);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  line-height: var(--line-heading);\n}\n.ds-breadcrumb__item + .ds-breadcrumb__item::before {\n  content: \"\\003E\";\n  padding: 0 var(--space-2);\n}\n.ds-breadcrumb__item.is-current {\n  color: var(--color-text);\n  font-weight: var(--weight-bold);\n}\n\n/* ---------- page header: the head of the information pane on an inner page ---------- */\n.ds-page-header__text {\n  min-width: 0;\n}\n.ds-page-header__title {\n  margin: 0;\n  color: var(--color-heading);\n  font-family: var(--font-heading);\n  font-size: var(--text-h1);\n  font-weight: var(--weight-heading);\n  line-height: var(--line-heading);\n  letter-spacing: var(--heading-tracking);\n  text-transform: var(--heading-transform);\n}\n.ds-page-header__lead {\n  margin: var(--space-2) 0 0;\n}\n.ds-page-header__action {\n  display: flex;\n  flex-wrap: wrap;\n  gap: var(--space-3);\n}\n\n/* ---------- sidebar: a block of links in the information pane ---------- */\n.ds-sidebar {\n  min-width: 0;\n}\n.ds-sidebar__title {\n  margin: 0 0 var(--space-2);\n  color: var(--color-heading-alt);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n  line-height: var(--line-heading);\n}\n.ds-sidebar__list {\n  display: flex;\n  flex-direction: column;\n  gap: var(--space-2);\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-sidebar__item {\n  display: flex;\n  align-items: flex-start;\n  gap: var(--space-3);\n}\n.ds-sidebar__note {\n  margin: auto 0 0;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n}\n\n/* ---------- panes: a raised caption strip over a well ---------- */\n.ds-pane {\n  display: flex;\n  flex-direction: column;\n  min-width: 0;\n}\n.ds-pane__title {\n  margin: 0;\n  padding: calc(var(--border-width-strong) + var(--space-0)) var(--space-3);\n  background: var(--fill-bar-alt);\n  color: var(--color-bar-alt-text);\n  box-shadow: var(--shadow-control);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-ui);\n  line-height: var(--line-heading);\n}\n\n/* ---------- grid: the applets of the control panel, three to a row ---------- */\n.ds-grid {\n  display: grid;\n  flex: 1;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n  align-content: start;\n  gap: var(--space-5) var(--space-4);\n  padding: calc(var(--border-width-strong) + var(--space-5)) calc(var(--border-width-strong) + var(--space-4));\n  background: var(--color-surface);\n  color: var(--color-text);\n  box-shadow: var(--shadow-control-pressed);\n}\n.ds-grid__cell {\n  display: flex;\n  align-items: flex-start;\n  gap: var(--space-4);\n  min-width: 0;\n  color: var(--color-text);\n  text-decoration: none;\n}\n/* The icon stands on a small tile of one of the four block colours. */\n.ds-grid__icon {\n  display: flex;\n  flex: none;\n  align-items: center;\n  justify-content: center;\n  box-sizing: border-box;\n  width: calc(var(--size-icon) + var(--space-4));\n  height: calc(var(--size-icon) + var(--space-4));\n  background: var(--color-fill-1);\n  color: var(--color-text);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-page);\n}\n.ds-grid__cell--2 .ds-grid__icon {\n  background: var(--color-fill-2);\n}\n.ds-grid__cell--3 .ds-grid__icon {\n  background: var(--color-fill-3);\n}\n.ds-grid__cell--4 .ds-grid__icon {\n  background: var(--color-fill-4);\n}\n.ds-grid__body {\n  display: flex;\n  flex-direction: column;\n  min-width: 0;\n}\n.ds-grid__title {\n  color: var(--color-link);\n  text-decoration: var(--link-decoration);\n}\n.ds-grid__text {\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n}\n\n/* ---------- list: rows with a small icon, a line of text and a date ---------- */\n.ds-list {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.ds-list__item {\n  display: flex;\n  align-items: baseline;\n  gap: var(--space-3);\n  padding: var(--space-1) 0;\n}\n.ds-list__item .ds-icon {\n  align-self: center;\n}\n.ds-list__text {\n  flex: 1;\n  min-width: 0;\n}\n.ds-list__meta {\n  flex: none;\n  color: var(--color-text-muted);\n  font-size: var(--text-small);\n  white-space: nowrap;\n}\n\n/* ---------- panel: a group box ---------- */\n.ds-panel {\n  box-sizing: border-box;\n  min-width: 0;\n  margin: 0;\n  padding: var(--space-2) var(--space-4) var(--space-4);\n  background: var(--fill-panel);\n  border: var(--border-width) var(--border-style) var(--color-border);\n  border-radius: var(--radius-panel);\n}\n.ds-panel__title {\n  padding: 0 var(--space-2);\n  color: var(--color-heading-alt);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  font-weight: var(--weight-bold);\n}\n.ds-panel__body {\n  margin: 0;\n}\n\n/* ---------- search row ---------- */\n.ds-find {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--space-3);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n}\n.ds-find__fill {\n  flex: 1;\n}\n\n/* ---------- radio button: the round sunken field ---------- */\n.ds-form__radio {\n  appearance: none;\n  box-sizing: border-box;\n  flex: none;\n  width: var(--size-check);\n  height: var(--size-check);\n  margin: 0 var(--space-3) 0 0;\n  padding: calc(var(--border-width-strong) + var(--space-0));\n  background: var(--fill-input);\n  border: 0;\n  border-radius: 50%;\n  box-shadow: var(--shadow-control-pressed);\n  outline: var(--border-width) var(--border-style) var(--color-input-border);\n  outline-offset: calc(var(--border-width) * -1);\n}\n.ds-form__radio:checked::before,\n.ds-form__radio.is-checked::before {\n  content: \"\";\n  display: block;\n  width: 100%;\n  height: 100%;\n  background: var(--color-input-text);\n  border-radius: 50%;\n}\n\n/* ---------- footer: the status bar of the window ---------- */\n.ds-footer {\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n}\n\n/* ---------- menu: a pull-down under a menu-bar entry (details), opened by a click ---------- */\n.ds-menu {\n  position: relative;\n}\n.ds-menu summary {\n  list-style: none;\n  cursor: default;\n}\n.ds-menu summary::-webkit-details-marker {\n  display: none;\n}\n.ds-menu details[open] > summary {\n  background: var(--fill-accent);\n  color: var(--color-accent-text);\n}\n.ds-menu__list {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 30;\n  box-sizing: border-box;\n  min-width: 100%;\n  margin: 0;\n  padding: var(--space-1);\n  list-style: none;\n  background: var(--fill-panel);\n  color: var(--color-text);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-control);\n  box-shadow: var(--shadow-dialog);\n  font-family: var(--font-ui);\n  font-size: var(--text-ui);\n  text-transform: none;\n  white-space: nowrap;\n}\n/* A menu at the right end of a bar opens from its right edge. */\n.ds-menu--end .ds-menu__list {\n  left: auto;\n  right: 0;\n}\n.ds-menu--up .ds-menu__list {\n  top: auto;\n  bottom: 100%;\n}\n.ds-menu__item {\n  display: block;\n  padding: var(--space-1) var(--space-5);\n  color: inherit;\n  text-decoration: none;\n}\n.ds-menu__item:hover,\n.ds-menu__item:focus {\n  background: var(--fill-accent);\n  color: var(--color-accent-text);\n}\n\n/* ---------- avatar: the user icon of the signed-in name, a raised tile with an initial ---------- */\n.ds-avatar {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  box-sizing: border-box;\n  width: var(--size-ctl);\n  height: var(--size-ctl);\n  margin-right: var(--space-1);\n  background: var(--color-accent);\n  color: var(--color-accent-text);\n  border: var(--border-width) var(--border-style) var(--color-border-strong);\n  border-radius: var(--radius-control);\n  font-family: var(--font-ui);\n  font-size: var(--text-small);\n  font-weight: var(--weight-bold);\n  line-height: 1;\n  text-transform: uppercase;\n  vertical-align: middle;\n}\n",
    "specimen.html": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>chronoskin Online Member Centre: desktop grey control panel, specimen</title>\n<link rel=\"stylesheet\" href=\"tokens.css\">\n<link rel=\"stylesheet\" href=\"components.css\">\n</head>\n<body class=\"ds-page\" data-component=\"shell\">\n\n<div class=\"ds-page__window ds-window\">\n\n  <header class=\"ds-nav\" data-component=\"nav\">\n    <div class=\"ds-window__title\">\n      <a class=\"ds-brand\" data-component=\"brand\" href=\"#home\">\n        <span class=\"ds-brand__mark\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><rect x=\"4\" y=\"3\" width=\"16\" height=\"2\"/><rect x=\"6\" y=\"5\" width=\"12\" height=\"2\"/><rect x=\"8\" y=\"7\" width=\"8\" height=\"2\"/><rect x=\"10\" y=\"9\" width=\"4\" height=\"2\"/><rect x=\"11\" y=\"11\" width=\"2\" height=\"2\"/><rect x=\"10\" y=\"13\" width=\"4\" height=\"2\"/><rect x=\"8\" y=\"15\" width=\"8\" height=\"2\"/><rect x=\"6\" y=\"17\" width=\"12\" height=\"2\"/><rect x=\"4\" y=\"19\" width=\"16\" height=\"2\"/></svg></span>\n        <span class=\"ds-brand__name\">chronoskin</span>\n      </a>\n      <span class=\"ds-window__caption\">Online Member Centre</span>\n      <span class=\"ds-window__controls\" aria-hidden=\"true\">\n        <span class=\"ds-window__ctl ds-window__ctl--min\"></span>\n        <span class=\"ds-window__ctl ds-window__ctl--max\"></span>\n        <span class=\"ds-window__ctl ds-window__ctl--close\"></span>\n      </span>\n    </div>\n    <ul class=\"ds-nav__links\">\n      <li class=\"ds-nav__grip\" aria-hidden=\"true\"></li>\n      <li><a class=\"ds-nav__link\" href=\"#home\"><span class=\"ds-icon ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 2l7 6h-2v6H9v-4H7v4H3V8H1z\"/></svg></span>Control Panel</a></li>\n      <li><a class=\"ds-nav__link\" href=\"#account\"><span class=\"ds-icon ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 2a3 3 0 1 0 0 6a3 3 0 0 0 0-6z M3 14c0-3 2-5 5-5s5 2 5 5z\"/></svg></span>My Account</a></li>\n      <li><a class=\"ds-nav__link\" href=\"#users\"><span class=\"ds-icon ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M5.5 3a2.5 2.5 0 1 0 0 5a2.5 2.5 0 0 0 0-5z M11 4a2 2 0 1 0 0 4a2 2 0 0 0 0-4z M1 14c0-3 2-5 4.5-5S10 11 10 14z M11 9c2.2 0 4 1.8 4 5h-4c0-2-.6-3.6-1.6-4.6.5-.3 1-.4 1.6-.4z\"/></svg></span>Users</a></li>\n      <li><a class=\"ds-nav__link\" href=\"#billing\"><span class=\"ds-icon ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M1 3h14v10H1z M2 4v2h12V4z M2 8v4h12V8z M3 10h4v1H3z\"/></svg></span>Billing</a></li>\n      <li class=\"ds-nav__fill\"></li>\n      <li class=\"ds-menu ds-menu--end\"><details><summary class=\"ds-nav__link\"><span class=\"ds-icon ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1z M7 10h2v2H7z M5.4 6a2.6 2.6 0 1 1 4.2 2c-.5.5-.6.7-.6 1.4H7c0-1.2.3-1.7 1-2.3a.8.8 0 1 0-1.3-.6z\"/></svg></span>Help</summary><ul class=\"ds-menu__list\"><li><a class=\"ds-menu__item\" href=\"#account\">Ask the Help Desk</a></li><li><a class=\"ds-menu__item\" href=\"#billing\">Hours Meter</a></li><li><a class=\"ds-menu__item\" href=\"#users\">Family Controls</a></li><li><a class=\"ds-menu__item\" href=\"#home\">Sign Out</a></li></ul></details></li>\n    </ul>\n  </header>\n\n  <section class=\"ds-view ds-view--home\" id=\"home\">\n    <div class=\"ds-page__body\">\n      <div class=\"ds-page__columns\">\n\n        <div class=\"ds-page__info\">\n          <section class=\"ds-hero\" data-component=\"hero\">\n            <span class=\"ds-icon ds-icon--large\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M2 2h12v9H2z M3 3v7h10V3z M5 12h6v1h2v1H3v-1h2z\"/></svg></span>\n            <h1 class=\"ds-hero__title\">Control Panel</h1>\n            <p class=\"ds-hero__lead\">Everything about your chronoskin Online membership, in one window.</p>\n            <p class=\"ds-hero__text\">Choose an icon to see or change its settings. Signed in as <strong>quartey</strong>.</p>\n            <div class=\"ds-hero__action\">\n              <a class=\"ds-button\" href=\"#account\">My Account</a>\n            </div>\n          </section>\n          <aside class=\"ds-sidebar\" data-component=\"sidebar\">\n            <h2 class=\"ds-sidebar__title\">See also</h2>\n            <ul class=\"ds-sidebar__list\">\n              <li class=\"ds-sidebar__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M5.5 3a2.5 2.5 0 1 0 0 5a2.5 2.5 0 0 0 0-5z M11 4a2 2 0 1 0 0 4a2 2 0 0 0 0-4z M1 14c0-3 2-5 4.5-5S10 11 10 14z M11 9c2.2 0 4 1.8 4 5h-4c0-2-.6-3.6-1.6-4.6.5-.3 1-.4 1.6-.4z\"/></svg></span><a class=\"ds-link\" href=\"#users\">Add a family member</a></li>\n              <li class=\"ds-sidebar__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M1 3h14v10H1z M2 4v2h12V4z M2 8v4h12V8z M3 10h4v1H3z\"/></svg></span><a class=\"ds-link\" href=\"#billing\">This month's statement</a></li>\n              <li class=\"ds-sidebar__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M2 6h12v6H2z M3 7v4h10V7z M4 8h1v1H4z M6 8h1v1H6z M8 8h1v1H8z M11 8h1v2h-1z M5 3h1v3H5z\"/></svg></span><a class=\"ds-link is-visited\" href=\"#account\">Local access numbers</a></li>\n              <li class=\"ds-sidebar__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1z M7 10h2v2H7z M5.4 6a2.6 2.6 0 1 1 4.2 2c-.5.5-.6.7-.6 1.4H7c0-1.2.3-1.7 1-2.3a.8.8 0 1 0-1.3-.6z\"/></svg></span><a class=\"ds-link\" href=\"#account\">Ask the help desk</a></li>\n            </ul>\n          </aside>\n          <p class=\"ds-sidebar__note\">Last sign-in: Friday 13 March 1998, 21:40, from Dublin.</p>\n        </div>\n\n        <section class=\"ds-pane\">\n          <h2 class=\"ds-pane__title\">12 object(s)</h2>\n          <div class=\"ds-grid\" data-component=\"grid\">\n            <a class=\"ds-grid__cell\" href=\"#account\"><span class=\"ds-grid__icon\"><span class=\"ds-icon ds-icon--large ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 2a3 3 0 1 0 0 6a3 3 0 0 0 0-6z M3 14c0-3 2-5 5-5s5 2 5 5z\"/></svg></span></span><span class=\"ds-grid__body\"><span class=\"ds-grid__title\">My Account</span><span class=\"ds-grid__text\">Name, address and membership plan</span></span></a>\n            <a class=\"ds-grid__cell ds-grid__cell--2\" href=\"#users\"><span class=\"ds-grid__icon\"><span class=\"ds-icon ds-icon--large ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M5.5 3a2.5 2.5 0 1 0 0 5a2.5 2.5 0 0 0 0-5z M11 4a2 2 0 1 0 0 4a2 2 0 0 0 0-4z M1 14c0-3 2-5 4.5-5S10 11 10 14z M11 9c2.2 0 4 1.8 4 5h-4c0-2-.6-3.6-1.6-4.6.5-.3 1-.4 1.6-.4z\"/></svg></span></span><span class=\"ds-grid__body\"><span class=\"ds-grid__title\">Users</span><span class=\"ds-grid__text\">5 of 8 sign-in names in use</span></span></a>\n            <a class=\"ds-grid__cell ds-grid__cell--3\" href=\"#billing\"><span class=\"ds-grid__icon\"><span class=\"ds-icon ds-icon--large ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M1 3h14v10H1z M2 4v2h12V4z M2 8v4h12V8z M3 10h4v1H3z\"/></svg></span></span><span class=\"ds-grid__body\"><span class=\"ds-grid__title\">Billing</span><span class=\"ds-grid__text\">Statements and how you pay</span></span></a>\n            <a class=\"ds-grid__cell ds-grid__cell--4\" href=\"#users\"><span class=\"ds-grid__icon\"><span class=\"ds-icon ds-icon--large ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M1 3h14v10H1z M2.6 4L8 8.4 13.4 4z M2 5v7h12V5L8 9.8z\"/></svg></span></span><span class=\"ds-grid__body\"><span class=\"ds-grid__title\">Mailboxes</span><span class=\"ds-grid__text\">Addresses, size and forwarding</span></span></a>\n            <a class=\"ds-grid__cell ds-grid__cell--3\" href=\"#account\"><span class=\"ds-grid__icon\"><span class=\"ds-icon ds-icon--large ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1z M8 2.2a5.8 5.8 0 0 1 2 .4L9 5H6L5 3.2A5.8 5.8 0 0 1 8 2.2z M2.3 7l2.2-.6L7 8l-1 3 1.5 2.7A5.8 5.8 0 0 1 2.3 7z M13.7 7.5a5.8 5.8 0 0 1-3 5.5L10 10l1.2-2.5z\"/></svg></span></span><span class=\"ds-grid__body\"><span class=\"ds-grid__title\">Web Space</span><span class=\"ds-grid__text\">2.4 of 5 MB used by your pages</span></span></a>\n            <a class=\"ds-grid__cell ds-grid__cell--4\" href=\"#account\"><span class=\"ds-grid__icon\"><span class=\"ds-icon ds-icon--large ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M2 6h12v6H2z M3 7v4h10V7z M4 8h1v1H4z M6 8h1v1H6z M8 8h1v1H8z M11 8h1v2h-1z M5 3h1v3H5z\"/></svg></span></span><span class=\"ds-grid__body\"><span class=\"ds-grid__title\">Dial-Up Numbers</span><span class=\"ds-grid__text\">Find the number nearest you</span></span></a>\n            <a class=\"ds-grid__cell\" href=\"#account\"><span class=\"ds-grid__icon\"><span class=\"ds-icon ds-icon--large ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M5 7V5a3 3 0 0 1 6 0v2h1v7H4V7z M6.5 7h3V5a1.5 1.5 0 0 0-3 0z\"/></svg></span></span><span class=\"ds-grid__body\"><span class=\"ds-grid__title\">Passwords</span><span class=\"ds-grid__text\">Change yours or reset another</span></span></a>\n            <a class=\"ds-grid__cell ds-grid__cell--2\" href=\"#users\"><span class=\"ds-grid__icon\"><span class=\"ds-icon ds-icon--large ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M5 1h6l4 4v6l-4 4H5l-4-4V5z M4.3 5.7L6.6 8 4.3 10.3l1.4 1.4L8 9.4l2.3 2.3 1.4-1.4L9.4 8l2.3-2.3-1.4-1.4L8 6.6 5.7 4.3z\"/></svg></span></span><span class=\"ds-grid__body\"><span class=\"ds-grid__title\">Family Controls</span><span class=\"ds-grid__text\">Hours and sites for each user</span></span></a>\n            <a class=\"ds-grid__cell ds-grid__cell--2\" href=\"#billing\"><span class=\"ds-grid__icon\"><span class=\"ds-icon ds-icon--large ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1z M8 3a5 5 0 1 1 0 10A5 5 0 0 1 8 3z M7.3 4.5h1.4v3.2l2.3 1.4-.7 1.2-3-1.8z\"/></svg></span></span><span class=\"ds-grid__body\"><span class=\"ds-grid__title\">Hours Meter</span><span class=\"ds-grid__text\">31 of 40 hours used this month</span></span></a>\n            <a class=\"ds-grid__cell ds-grid__cell--3\" href=\"#users\"><span class=\"ds-grid__icon\"><span class=\"ds-icon ds-icon--large ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M1 2h12v2h2v10H1z M2 3v10h10V3z M3 4h8v2H3z M3 7h3v4H3z M7 7h4v1H7z M7 9h4v1H7z\"/></svg></span></span><span class=\"ds-grid__body\"><span class=\"ds-grid__title\">Newsgroups</span><span class=\"ds-grid__text\">Which groups each user may read</span></span></a>\n            <a class=\"ds-grid__cell ds-grid__cell--4\" href=\"#account\"><span class=\"ds-grid__icon\"><span class=\"ds-icon ds-icon--large ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M2 2h10l2 2v10H2z M4 3v4h7V3z M9 4h1v2H9z M4 9v4h8V9z M5 10h6v1H5z\"/></svg></span></span><span class=\"ds-grid__body\"><span class=\"ds-grid__title\">Software</span><span class=\"ds-grid__text\">The dialler and browser on disk</span></span></a>\n            <a class=\"ds-grid__cell\" href=\"#account\"><span class=\"ds-grid__icon\"><span class=\"ds-icon ds-icon--large ds-icon--plain\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1z M7 10h2v2H7z M5.4 6a2.6 2.6 0 1 1 4.2 2c-.5.5-.6.7-.6 1.4H7c0-1.2.3-1.7 1-2.3a.8.8 0 1 0-1.3-.6z\"/></svg></span></span><span class=\"ds-grid__body\"><span class=\"ds-grid__title\">Help Desk</span><span class=\"ds-grid__text\">Open 8 to 22 every day</span></span></a>\n          </div>\n        </section>\n\n      </div>\n\n      <ul class=\"ds-stat\" data-component=\"stats\">\n        <li class=\"ds-stat__item\"><span class=\"ds-stat__value\">31 h 20</span> <span class=\"ds-stat__label\">on line this month, of 40 hours</span></li>\n        <li class=\"ds-stat__item\"><span class=\"ds-stat__value\">5</span> <span class=\"ds-stat__label\">users with a mailbox</span></li>\n        <li class=\"ds-stat__item\"><span class=\"ds-stat__value\">2.4 MB</span> <span class=\"ds-stat__label\">of web space in use</span></li>\n        <li class=\"ds-stat__item\"><span class=\"ds-stat__value\">14.95</span> <span class=\"ds-stat__label\">due on 1 April</span></li>\n      </ul>\n\n      <fieldset class=\"ds-panel\" data-component=\"panel\">\n        <legend class=\"ds-panel__title\">Recent activity on this account</legend>\n        <div class=\"ds-panel__body\">\n          <ul class=\"ds-list\" data-component=\"list\">\n            <li class=\"ds-list__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M5 7V5a3 3 0 0 1 6 0v2h1v7H4V7z M6.5 7h3V5a1.5 1.5 0 0 0-3 0z\"/></svg></span><span class=\"ds-list__text\"><a class=\"ds-link\" href=\"#users\">Password changed</a> for the user finn.</span> <span class=\"ds-list__meta\">Fri 13 Mar, 18:02</span></li>\n            <li class=\"ds-list__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M1 3h14v10H1z M2 4v2h12V4z M2 8v4h12V8z M3 10h4v1H3z\"/></svg></span><span class=\"ds-list__text\"><a class=\"ds-link\" href=\"#billing\">Statement for February</a> paid by direct debit.</span> <span class=\"ds-list__meta\">Mon 2 Mar, 6:00</span></li>\n            <li class=\"ds-list__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1z M8 2.2a5.8 5.8 0 0 1 2 .4L9 5H6L5 3.2A5.8 5.8 0 0 1 8 2.2z M2.3 7l2.2-.6L7 8l-1 3 1.5 2.7A5.8 5.8 0 0 1 2.3 7z M13.7 7.5a5.8 5.8 0 0 1-3 5.5L10 10l1.2-2.5z\"/></svg></span><span class=\"ds-list__text\"><a class=\"ds-link is-visited\" href=\"#account\">Web space</a> passed 2 MB. <span class=\"ds-badge\">New</span></span> <span class=\"ds-list__meta\">Sat 28 Feb, 15:44</span></li>\n            <li class=\"ds-list__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M5.5 3a2.5 2.5 0 1 0 0 5a2.5 2.5 0 0 0 0-5z M11 4a2 2 0 1 0 0 4a2 2 0 0 0 0-4z M1 14c0-3 2-5 4.5-5S10 11 10 14z M11 9c2.2 0 4 1.8 4 5h-4c0-2-.6-3.6-1.6-4.6.5-.3 1-.4 1.6-.4z\"/></svg></span><span class=\"ds-list__text\"><a class=\"ds-link\" href=\"#users\">New user lena.jr</a> added by quartey.</span> <span class=\"ds-list__meta\">Sun 22 Feb, 11:15</span></li>\n          </ul>\n        </div>\n      </fieldset>\n\n    </div>\n  </section>\n\n  <section class=\"ds-view\" id=\"account\">\n    <div class=\"ds-page__body\">\n      <div class=\"ds-page__columns\">\n\n        <div class=\"ds-page__info\">\n          <ol class=\"ds-breadcrumb\" data-component=\"breadcrumb\">\n            <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#home\">Control Panel</a></li>\n            <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#account\">My Account</a></li>\n            <li class=\"ds-breadcrumb__item is-current\">General</li>\n          </ol>\n          <header class=\"ds-page-header\" data-component=\"page-header\">\n            <span class=\"ds-icon ds-icon--large\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 2a3 3 0 1 0 0 6a3 3 0 0 0 0-6z M3 14c0-3 2-5 5-5s5 2 5 5z\"/></svg></span>\n            <div class=\"ds-page-header__text\">\n              <h1 class=\"ds-page-header__title\">My Account Properties</h1>\n              <p class=\"ds-page-header__lead\">Who the account belongs to and how to reach you.</p>\n            </div>\n            <div class=\"ds-page-header__action\">\n              <a class=\"ds-button ds-button--secondary\" href=\"#account\">Change Password...</a>\n            </div>\n          </header>\n          <dl class=\"ds-props\">\n            <dt class=\"ds-props__label\">Member:</dt>\n            <dd class=\"ds-props__value\">No. 104471</dd>\n            <dt class=\"ds-props__label\">Since:</dt>\n            <dd class=\"ds-props__value\">June 1996</dd>\n            <dt class=\"ds-props__label\">Plan:</dt>\n            <dd class=\"ds-props__value\">Family 40</dd>\n          </dl>\n          <aside class=\"ds-sidebar\">\n            <h2 class=\"ds-sidebar__title\">Related</h2>\n            <ul class=\"ds-sidebar__list\">\n              <li class=\"ds-sidebar__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M5.5 3a2.5 2.5 0 1 0 0 5a2.5 2.5 0 0 0 0-5z M11 4a2 2 0 1 0 0 4a2 2 0 0 0 0-4z M1 14c0-3 2-5 4.5-5S10 11 10 14z M11 9c2.2 0 4 1.8 4 5h-4c0-2-.6-3.6-1.6-4.6.5-.3 1-.4 1.6-.4z\"/></svg></span><a class=\"ds-link\" href=\"#users\">Users of this account</a></li>\n              <li class=\"ds-sidebar__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M1 3h14v10H1z M2 4v2h12V4z M2 8v4h12V8z M3 10h4v1H3z\"/></svg></span><a class=\"ds-link\" href=\"#billing\">Billing and statements</a></li>\n            </ul>\n          </aside>\n        </div>\n\n        <div class=\"ds-page__main\">\n          <div class=\"ds-notices\" data-component=\"notice\">\n            <p class=\"ds-notice\"><span class=\"ds-notice__label\">Note:</span> a change of plan takes effect on the first day of next month.</p>\n            <p class=\"ds-notice ds-notice--error\"><span class=\"ds-notice__label\">Not saved.</span> The post code does not match the town. Correct it and choose Apply again.</p>\n          </div>\n          <div>\n            <ul class=\"ds-tabs\" data-component=\"tabs\">\n              <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab is-current\" href=\"#account\">General</a></li>\n              <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#account\">Dial-Up</a></li>\n              <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#account\">Web Space</a></li>\n              <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#account\">Passwords</a></li>\n              <li class=\"ds-tabs__item\"><a class=\"ds-tabs__tab\" href=\"#account\">Privacy</a></li>\n            </ul>\n            <div class=\"ds-sheet\">\n              <div class=\"ds-stack\">\n                <fieldset class=\"ds-group\">\n                  <legend class=\"ds-group__title\">Account holder</legend>\n                  <form class=\"ds-form\" data-component=\"form\" action=\"#account\">\n                    <label class=\"ds-form__label\" for=\"f-name\">Full name:</label>\n                    <div class=\"ds-form__field\">\n                      <input class=\"ds-form__input\" id=\"f-name\" type=\"text\" value=\"Lena Quartey\">\n                    </div>\n                    <label class=\"ds-form__label\" for=\"f-town\">Town:</label>\n                    <div class=\"ds-form__field\">\n                      <input class=\"ds-form__input\" id=\"f-town\" type=\"text\" value=\"Dublin\">\n                    </div>\n                    <label class=\"ds-form__label\" for=\"f-code\">Post code:</label>\n                    <div class=\"ds-form__field\">\n                      <input class=\"ds-form__input ds-form__input--short\" id=\"f-code\" type=\"text\" value=\"BT7\">\n                      <span class=\"ds-form__error\">This post code belongs to another town.</span>\n                    </div>\n                    <label class=\"ds-form__label\" for=\"f-plan\">Plan:</label>\n                    <div class=\"ds-form__field\">\n                      <select class=\"ds-form__select\" id=\"f-plan\">\n                        <option>Family 40 (40 hours, 8 users)</option>\n                        <option>Light 10 (10 hours, 2 users)</option>\n                        <option>Unmetered evenings</option>\n                      </select>\n                      <span class=\"ds-form__hint\">extra hours are charged by the minute</span>\n                    </div>\n                    <span class=\"ds-form__label\">Send me:</span>\n                    <div class=\"ds-form__field\">\n                      <label class=\"ds-form__option\"><input class=\"ds-form__check\" type=\"checkbox\" checked>The monthly statement</label>\n                      <label class=\"ds-form__option\"><input class=\"ds-form__check\" type=\"checkbox\">Service news</label>\n                    </div>\n                    <label class=\"ds-form__label\" for=\"f-note\">Note for the help desk:</label>\n                    <div class=\"ds-form__field\">\n                      <textarea class=\"ds-form__textarea\" id=\"f-note\" rows=\"3\">Please ring after six in the evening.</textarea>\n                    </div>\n                  </form>\n                </fieldset>\n                <fieldset class=\"ds-group\">\n                  <legend class=\"ds-group__title\">When the monthly hours run out</legend>\n                  <div class=\"ds-stack ds-stack--tight\">\n                    <label class=\"ds-form__option\"><input class=\"ds-form__radio\" type=\"radio\" name=\"over\" checked>Ask the account holder before going on</label>\n                    <label class=\"ds-form__option\"><input class=\"ds-form__radio\" type=\"radio\" name=\"over\">Go on and charge by the minute</label>\n                    <label class=\"ds-form__option\"><input class=\"ds-form__radio\" type=\"radio\" name=\"over\">Sign every user out until next month</label>\n                  </div>\n                </fieldset>\n              </div>\n            </div>\n          </div>\n          <div class=\"ds-buttons\" data-component=\"buttons\">\n            <button class=\"ds-button ds-button--danger\" type=\"button\">Close Account...</button>\n            <span class=\"ds-find__fill\"></span>\n            <a class=\"ds-button\" href=\"#home\">OK</a>\n            <a class=\"ds-button ds-button--secondary\" href=\"#home\">Cancel</a>\n            <button class=\"ds-button\" type=\"button\" disabled>Apply</button>\n          </div>\n        </div>\n\n      </div>\n    </div>\n  </section>\n\n  <section class=\"ds-view\" id=\"users\">\n    <div class=\"ds-page__body\">\n      <div class=\"ds-page__columns\">\n\n        <div class=\"ds-page__info\">\n          <ol class=\"ds-breadcrumb\">\n            <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#home\">Control Panel</a></li>\n            <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#users\">Users</a></li>\n            <li class=\"ds-breadcrumb__item is-current\">All users</li>\n          </ol>\n          <header class=\"ds-page-header\">\n            <span class=\"ds-icon ds-icon--large\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M5.5 3a2.5 2.5 0 1 0 0 5a2.5 2.5 0 0 0 0-5z M11 4a2 2 0 1 0 0 4a2 2 0 0 0 0-4z M1 14c0-3 2-5 4.5-5S10 11 10 14z M11 9c2.2 0 4 1.8 4 5h-4c0-2-.6-3.6-1.6-4.6.5-.3 1-.4 1.6-.4z\"/></svg></span>\n            <div class=\"ds-page-header__text\">\n              <h1 class=\"ds-page-header__title\">Users</h1>\n              <p class=\"ds-page-header__lead\">5 of 8 sign-in names are in use. Each has its own mailbox.</p>\n            </div>\n            <div class=\"ds-page-header__action\">\n              <a class=\"ds-button ds-button--secondary\" href=\"#users\">New User...</a>\n            </div>\n          </header>\n          <p class=\"ds-links\">Select a user to see what you can do. <strong>finn</strong> is selected.</p>\n          <aside class=\"ds-sidebar\">\n            <h2 class=\"ds-sidebar__title\">User tasks</h2>\n            <ul class=\"ds-sidebar__list\">\n              <li class=\"ds-sidebar__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M5 7V5a3 3 0 0 1 6 0v2h1v7H4V7z M6.5 7h3V5a1.5 1.5 0 0 0-3 0z\"/></svg></span><a class=\"ds-link\" href=\"#users\">Reset the password</a></li>\n              <li class=\"ds-sidebar__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1z M8 3a5 5 0 1 1 0 10A5 5 0 0 1 8 3z M7.3 4.5h1.4v3.2l2.3 1.4-.7 1.2-3-1.8z\"/></svg></span><a class=\"ds-link\" href=\"#users\">Set hours on line</a></li>\n              <li class=\"ds-sidebar__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M1 3h14v10H1z M2.6 4L8 8.4 13.4 4z M2 5v7h12V5L8 9.8z\"/></svg></span><a class=\"ds-link\" href=\"#users\">Forward the mail</a></li>\n              <li class=\"ds-sidebar__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M6 2h4v1h3v2H3V3h3z M4 6h8v8H4z M6 7v6h1V7z M9 7v6h1V7z\"/></svg></span><a class=\"ds-link\" href=\"#users\">Remove this user</a></li>\n            </ul>\n          </aside>\n        </div>\n\n        <div class=\"ds-page__main\">\n          <table class=\"ds-table\" data-component=\"table\">\n            <caption class=\"ds-table__caption\">5 object(s), 1 selected. Space is the mail waiting in each mailbox.</caption>\n            <thead>\n              <tr>\n                <th class=\"ds-table__head\" scope=\"col\">Sign-in name</th>\n                <th class=\"ds-table__head\" scope=\"col\">Full name</th>\n                <th class=\"ds-table__head\" scope=\"col\">Status</th>\n                <th class=\"ds-table__head\" scope=\"col\">Last sign-in</th>\n                <th class=\"ds-table__head ds-table__head--num\" scope=\"col\">Space</th>\n              </tr>\n            </thead>\n            <tbody>\n              <tr class=\"ds-table__row\">\n                <td class=\"ds-table__cell\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 2a3 3 0 1 0 0 6a3 3 0 0 0 0-6z M3 14c0-3 2-5 5-5s5 2 5 5z\"/></svg></span> <a class=\"ds-link\" href=\"#account\">quartey</a></td>\n                <td class=\"ds-table__cell\">Lena Quartey</td>\n                <td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--success\">On line</span></td>\n                <td class=\"ds-table__cell\">Today 9:02</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">1,204 KB</td>\n              </tr>\n              <tr class=\"ds-table__row\">\n                <td class=\"ds-table__cell\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 2a3 3 0 1 0 0 6a3 3 0 0 0 0-6z M3 14c0-3 2-5 5-5s5 2 5 5z\"/></svg></span> <a class=\"ds-link\" href=\"#users\">bram</a></td>\n                <td class=\"ds-table__cell\">Bram Quartey</td>\n                <td class=\"ds-table__cell\">Signed out</td>\n                <td class=\"ds-table__cell\">Fri 13 Mar</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">388 KB</td>\n              </tr>\n              <tr class=\"ds-table__row is-selected\">\n                <td class=\"ds-table__cell\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 2a3 3 0 1 0 0 6a3 3 0 0 0 0-6z M3 14c0-3 2-5 5-5s5 2 5 5z\"/></svg></span> <a class=\"ds-link\" href=\"#users\">finn</a></td>\n                <td class=\"ds-table__cell\">Finn Quartey</td>\n                <td class=\"ds-table__cell\">Hours used up</td>\n                <td class=\"ds-table__cell\">Thu 12 Mar</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">96 KB</td>\n              </tr>\n              <tr class=\"ds-table__row\">\n                <td class=\"ds-table__cell\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 2a3 3 0 1 0 0 6a3 3 0 0 0 0-6z M3 14c0-3 2-5 5-5s5 2 5 5z\"/></svg></span> <a class=\"ds-link is-visited\" href=\"#users\">lena.jr</a></td>\n                <td class=\"ds-table__cell\">Lena Quartey (junior)</td>\n                <td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--warning\">Hours nearly used</span></td>\n                <td class=\"ds-table__cell\">Wed 11 Mar</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">52 KB</td>\n              </tr>\n              <tr class=\"ds-table__row\">\n                <td class=\"ds-table__cell\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 2a3 3 0 1 0 0 6a3 3 0 0 0 0-6z M3 14c0-3 2-5 5-5s5 2 5 5z\"/></svg></span> <a class=\"ds-link\" href=\"#users\">shop</a></td>\n                <td class=\"ds-table__cell\">Harbour Road Seeds</td>\n                <td class=\"ds-table__cell\"><span class=\"ds-badge ds-badge--danger\">Locked</span></td>\n                <td class=\"ds-table__cell\">2 Feb</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">2,210 KB</td>\n              </tr>\n              <tr class=\"ds-table__row\">\n                <td class=\"ds-table__cell ds-table__cell--group\" colspan=\"4\">Total for the account, of 10 MB</td>\n                <td class=\"ds-table__cell ds-table__cell--num ds-table__cell--group\">3,950 KB</td>\n              </tr>\n            </tbody>\n          </table>\n          <div class=\"ds-find\">\n            <ol class=\"ds-pagination\" data-component=\"pagination\">\n              <li class=\"ds-pagination__label\">Page 1 of 2:</li>\n              <li><a class=\"ds-pagination__link is-disabled\" href=\"#users\">&lt; Previous</a></li>\n              <li><a class=\"ds-pagination__link is-current\" href=\"#users\">1</a></li>\n              <li><a class=\"ds-pagination__link\" href=\"#users\">2</a></li>\n              <li><a class=\"ds-pagination__link\" href=\"#users\">Next &gt;</a></li>\n            </ol>\n            <span class=\"ds-find__fill\"></span>\n            <span class=\"ds-badges\" data-component=\"badge\"><span class=\"ds-badge\">5 users</span> <span class=\"ds-badge ds-badge--success\">On line</span> <span class=\"ds-badge ds-badge--warning\">Nearly used</span> <span class=\"ds-badge ds-badge--danger\">Locked</span></span>\n          </div>\n          <div class=\"ds-split\">\n            <section class=\"ds-dialog\" data-component=\"dialog\" role=\"dialog\" aria-labelledby=\"d-title\">\n              <h2 class=\"ds-dialog__title\" id=\"d-title\">Confirm User Remove <span class=\"ds-window__ctl ds-window__ctl--close\" aria-hidden=\"true\"></span></h2>\n              <div class=\"ds-dialog__content\">\n                <span class=\"ds-icon ds-icon--large\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 1l7 13H1z M7 6h2v4H7z M7 11h2v2H7z\"/></svg></span>\n                <p class=\"ds-dialog__body\">Are you sure you want to remove <strong>finn</strong>? The mailbox and its 96 KB of mail are deleted with the user.</p>\n              </div>\n              <div class=\"ds-dialog__actions\">\n                <a class=\"ds-button ds-button--danger\" href=\"#users\">Yes, Remove</a>\n                <a class=\"ds-button\" href=\"#users\">No</a>\n              </div>\n            </section>\n            <section class=\"ds-pane\">\n              <h2 class=\"ds-pane__title\">Invitations waiting for an answer</h2>\n              <div class=\"ds-empty\" data-component=\"empty\">\n                <h3 class=\"ds-empty__title\">There are no items to show.</h3>\n                <p class=\"ds-empty__text\">Nobody has been invited. Three sign-in names are still free.</p>\n                <a class=\"ds-button ds-button--secondary\" href=\"#users\">New User...</a>\n              </div>\n            </section>\n          </div>\n        </div>\n\n      </div>\n    </div>\n  </section>\n\n  <section class=\"ds-view\" id=\"billing\">\n    <div class=\"ds-page__body\">\n      <div class=\"ds-page__columns\">\n\n        <div class=\"ds-page__info\">\n          <ol class=\"ds-breadcrumb\">\n            <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#home\">Control Panel</a></li>\n            <li class=\"ds-breadcrumb__item\"><a class=\"ds-link\" href=\"#billing\">Billing</a></li>\n            <li class=\"ds-breadcrumb__item is-current\">Statements</li>\n          </ol>\n          <header class=\"ds-page-header\">\n            <span class=\"ds-icon ds-icon--large\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M1 3h14v10H1z M2 4v2h12V4z M2 8v4h12V8z M3 10h4v1H3z\"/></svg></span>\n            <div class=\"ds-page-header__text\">\n              <h1 class=\"ds-page-header__title\">Billing</h1>\n              <p class=\"ds-page-header__lead\">Statements, the hours meter and how the plan is charged.</p>\n            </div>\n            <div class=\"ds-page-header__action\">\n              <a class=\"ds-button ds-button--secondary\" href=\"#billing\">Print Statement</a>\n            </div>\n          </header>\n          <fieldset class=\"ds-group\">\n            <legend class=\"ds-group__title\">Hours this month</legend>\n            <div class=\"ds-stack ds-stack--tight\">\n              <span class=\"ds-progress\"><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span><span class=\"ds-progress__block ds-progress__block--empty\"></span></span>\n              <span>31 h 20 of 40 hours used. The meter starts again on 1 April.</span>\n            </div>\n          </fieldset>\n          <aside class=\"ds-sidebar\">\n            <h2 class=\"ds-sidebar__title\">Related</h2>\n            <ul class=\"ds-sidebar__list\">\n              <li class=\"ds-sidebar__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 2a3 3 0 1 0 0 6a3 3 0 0 0 0-6z M3 14c0-3 2-5 5-5s5 2 5 5z\"/></svg></span><a class=\"ds-link\" href=\"#account\">Change the plan</a></li>\n              <li class=\"ds-sidebar__item\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1z M8 3a5 5 0 1 1 0 10A5 5 0 0 1 8 3z M7.3 4.5h1.4v3.2l2.3 1.4-.7 1.2-3-1.8z\"/></svg></span><a class=\"ds-link\" href=\"#users\">Hours for each user</a></li>\n            </ul>\n          </aside>\n        </div>\n\n        <div class=\"ds-page__main\">\n          <table class=\"ds-table\">\n            <thead>\n              <tr>\n                <th class=\"ds-table__head\" scope=\"col\">Statement</th>\n                <th class=\"ds-table__head\" scope=\"col\">Paid by</th>\n                <th class=\"ds-table__head ds-table__head--num\" scope=\"col\">Hours</th>\n                <th class=\"ds-table__head ds-table__head--num\" scope=\"col\">Extra</th>\n                <th class=\"ds-table__head ds-table__head--num\" scope=\"col\">Amount</th>\n              </tr>\n            </thead>\n            <tbody>\n              <tr class=\"ds-table__row is-selected\">\n                <td class=\"ds-table__cell\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M3 1h7l3 3v11H3z M4 2v12h8V5H9V2z M5 7h6v1H5z M5 9h6v1H5z M5 11h4v1H5z\"/></svg></span> <a class=\"ds-link\" href=\"#billing\">March 1998, so far</a></td>\n                <td class=\"ds-table__cell\">Due 1 April</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">31:20</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">0.00</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">14.95</td>\n              </tr>\n              <tr class=\"ds-table__row\">\n                <td class=\"ds-table__cell\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M3 1h7l3 3v11H3z M4 2v12h8V5H9V2z M5 7h6v1H5z M5 9h6v1H5z M5 11h4v1H5z\"/></svg></span> <a class=\"ds-link\" href=\"#billing\">February 1998</a></td>\n                <td class=\"ds-table__cell\">Direct debit</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">43:05</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">2.78</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">17.73</td>\n              </tr>\n              <tr class=\"ds-table__row\">\n                <td class=\"ds-table__cell\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M3 1h7l3 3v11H3z M4 2v12h8V5H9V2z M5 7h6v1H5z M5 9h6v1H5z M5 11h4v1H5z\"/></svg></span> <a class=\"ds-link is-visited\" href=\"#billing\">January 1998</a></td>\n                <td class=\"ds-table__cell\">Direct debit</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">38:40</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">0.00</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">14.95</td>\n              </tr>\n              <tr class=\"ds-table__row\">\n                <td class=\"ds-table__cell\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" shape-rendering=\"crispEdges\" aria-hidden=\"true\"><path d=\"M3 1h7l3 3v11H3z M4 2v12h8V5H9V2z M5 7h6v1H5z M5 9h6v1H5z M5 11h4v1H5z\"/></svg></span> <a class=\"ds-link is-visited\" href=\"#billing\">December 1997</a></td>\n                <td class=\"ds-table__cell\">Cheque</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">51:12</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">10.08</td>\n                <td class=\"ds-table__cell ds-table__cell--num\">25.03</td>\n              </tr>\n              <tr class=\"ds-table__row\">\n                <td class=\"ds-table__cell ds-table__cell--group\" colspan=\"2\">Four statements</td>\n                <td class=\"ds-table__cell ds-table__cell--num ds-table__cell--group\">164:17</td>\n                <td class=\"ds-table__cell ds-table__cell--num ds-table__cell--group\">12.86</td>\n                <td class=\"ds-table__cell ds-table__cell--num ds-table__cell--group\">72.66</td>\n              </tr>\n            </tbody>\n          </table>\n\n          <article class=\"ds-well ds-prose\" data-component=\"typography\">\n            <h1>How the Family 40 plan is charged</h1>\n            <p class=\"ds-prose__lead\">One price covers 40 hours on line each month, shared by up to 8 users.</p>\n            <p>The meter counts from the moment the modem answers until you sign out. Time spent reading mail <strong>off line</strong> is not counted.</p>\n            <h2>Extra hours</h2>\n            <p>After 40 hours each minute is charged at the rate on your statement, shown in the column <code>Extra</code>.</p>\n            <ul>\n              <li>Hours you do not use are not carried over.</li>\n              <li>The account holder can stop extra hours altogether.</li>\n            </ul>\n            <h3>Where to read more</h3>\n            <p class=\"ds-links\" data-component=\"links\">\n              <a class=\"ds-link\" href=\"#account\">Compare the three plans</a>,\n              <a class=\"ds-link is-visited\" href=\"#billing\">a statement you have opened</a>,\n              <a class=\"ds-link is-hover\" href=\"#billing\">a link under the pointer</a>,\n              <a class=\"ds-link is-active\" href=\"#billing\">a link as you click it</a> and\n              <a class=\"ds-link ds-link--quiet\" href=\"#users\">hours for each user</a>.\n            </p>\n          </article>\n        </div>\n\n      </div>\n    </div>\n  </section>\n\n  <footer class=\"ds-footer\" data-component=\"footer\">\n    <ul class=\"ds-status\">\n      <li class=\"ds-status__cell ds-status__cell--wide\">chronoskin Online, 1998. <a class=\"ds-link ds-link--quiet\" href=\"#account\">My account</a>, <a class=\"ds-link ds-link--quiet\" href=\"#users\">users</a>, <a class=\"ds-link ds-link--quiet\" href=\"#billing\">billing</a> and <a class=\"ds-link ds-link--quiet\" href=\"#billing\">terms of membership</a>.</li>\n      <li class=\"ds-status__cell\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M5 7V5a3 3 0 0 1 6 0v2h1v7H4V7z M6.5 7h3V5a1.5 1.5 0 0 0-3 0z\"/></svg></span> <span class=\"ds-avatar\" aria-hidden=\"true\">q</span>Signed in: quartey</li>\n      <li class=\"ds-status__cell\"><span class=\"ds-icon\"><svg viewBox=\"0 0 16 16\" fill=\"currentColor\" fill-rule=\"evenodd\" aria-hidden=\"true\"><path d=\"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1z M8 2.2a5.8 5.8 0 0 1 2 .4L9 5H6L5 3.2A5.8 5.8 0 0 1 8 2.2z M2.3 7l2.2-.6L7 8l-1 3 1.5 2.7A5.8 5.8 0 0 1 2.3 7z M13.7 7.5a5.8 5.8 0 0 1-3 5.5L10 10l1.2-2.5z\"/></svg></span> Member zone</li>\n    </ul>\n  </footer>\n\n</div>\n</body>\n</html>\n",
    "style.json": "{\n  \"id\": \"v1.windows-9x.portal.s06.p05.t04.u05\",\n  \"library\": \"2026.10.09-1346\",\n  \"era\": {\n    \"slug\": \"windows-9x\",\n    \"years\": [\n      1995,\n      2001\n    ]\n  },\n  \"archetype\": \"portal\",\n  \"mode\": \"mix\",\n  \"markup\": \"modern\",\n  \"viewport\": {\n    \"width\": 800,\n    \"fluid\": false\n  },\n  \"source\": \"https://chrono.skin/s/v1-w9-6545\",\n  \"short\": \"v1-w9-6545\"\n}\n",
    "tokens.css": "/* @part palette */\n:root {\n  --color-page: #8a4a2e;\n  --color-canvas: #d2bf90;\n  --color-surface: #f6ecca;\n  --color-surface-alt: #eadcb0;\n  --color-surface-strong: #c9b47e;\n  --color-bar: #5c3a1a;\n  --color-bar-text: #fff6dc;\n  --color-bar-alt: #d2bf90;\n  --color-bar-alt-text: #2a1c0c;\n  --color-inverse: #86724e;\n  --color-inverse-text: #fff6dc;\n  --color-text: #2a1c0c;\n  --color-text-muted: #5a4628;\n  --color-heading: #4a2c10;\n  --color-heading-alt: #1a5c58;\n  --color-link: #8a2c0a;\n  --color-link-quiet: #2a1c0c;\n  --color-link-visited: #5a3a6a;\n  --color-link-hover: #b84400;\n  --color-link-active: #b00020;\n  --color-border: #8f7c52;\n  --color-border-strong: #2a1c0c;\n  --color-border-muted: #efe3bd;\n  --color-accent: #1f6f6a;\n  --color-accent-text: #fff6dc;\n  --color-accent-alt: #b03a10;\n  --color-fill-1: #f0d48a;\n  --color-fill-2: #c9d6a8;\n  --color-fill-3: #e6b99a;\n  --color-fill-4: #b9d2cc;\n  --color-button: #d2bf90;\n  --color-button-text: #2a1c0c;\n  --color-button-hover-text: #2a1c0c;\n  --color-button-secondary: #c9b47e;\n  --color-button-secondary-text: #2a1c0c;\n  --color-input: #f6ecca;\n  --color-input-text: #2a1c0c;\n  --color-input-border: #8f7c52;\n  --color-disabled: #d2bf90;\n  --color-disabled-text: #8f7c52;\n  --color-danger: #9a1a10;\n  --color-danger-surface: #f8dcc8;\n  --color-success: #2a6a2a;\n  --color-warning: #8a5200;\n  --color-notice: #fff2a8;\n  --color-notice-text: #2a1c0c;\n  --color-focus: #2a1c0c;\n  --color-shadow: #2a1c0c;\n  --color-overlay: rgba(42, 28, 12, 0.4);\n}\n\n/* @part type */\n:root {\n  --font-body: \"Lucida Sans Unicode\", \"Lucida Grande\", \"Lucida Sans\", Geneva, sans-serif;\n  --font-heading: \"Arial Black\", \"Arial Bold\", Arial, Helvetica, sans-serif;\n  --font-ui: \"Lucida Sans Unicode\", \"Lucida Grande\", \"Lucida Sans\", Geneva, sans-serif;\n  --font-mono: \"Lucida Console\", \"Courier New\", monospace;\n  --text-base: 11px;\n  --text-small: 10px;\n  --text-ui: 11px;\n  --text-large: 12px;\n  --text-display: 20px;\n  --text-h1: 15px;\n  --text-h2: 12px;\n  --text-h3: 11px;\n  --line-body: 1.45;\n  --line-heading: 1.25;\n  --line-display: 1.15;\n  --weight-body: 400;\n  --weight-bold: 700;\n  --weight-heading: 900;\n  --weight-display: 900;\n  --weight-ui: 400;\n  --heading-transform: none;\n  --heading-tracking: 0;\n  --display-tracking: 0;\n  --figure-shift: 0em;\n  --ui-transform: none;\n  --link-decoration: underline;\n  --link-decoration-hover: underline;\n  --link-decoration-quiet: none;\n}\n\n/* @part surface */\n:root {\n  --border-width: 2px;\n  --border-width-strong: 3px;\n  --border-style: groove;\n  --radius-control: 0;\n  --radius-panel: 0;\n  --radius-pill: 0;\n  --radius-page: 0;\n  --shadow-panel: inset 0 0 0 1px var(--color-border-strong), inset 2px 2px color-mix(in srgb, var(--color-border-muted) 25%, white), inset -2px -2px var(--color-border), inset 3px 3px color-mix(in srgb, var(--color-border-muted), var(--color-border)), inset -3px -3px color-mix(in srgb, var(--color-border-muted), var(--color-border));\n  --shadow-control: inset 1px 1px color-mix(in srgb, var(--color-border-muted) 25%, white), inset -1px -1px var(--color-border), inset 2px 2px color-mix(in srgb, var(--color-border-muted), var(--color-border)), inset -2px -2px color-mix(in srgb, var(--color-border-muted), var(--color-border)), inset 3px 3px var(--color-border), inset -3px -3px color-mix(in srgb, var(--color-border-muted) 25%, white);\n  --shadow-control-hover: inset 1px 1px color-mix(in srgb, var(--color-border-muted) 25%, white), inset -1px -1px var(--color-border-strong), inset 2px 2px color-mix(in srgb, var(--color-border-muted), var(--color-border)), inset -2px -2px color-mix(in srgb, var(--color-border-muted), var(--color-border)), inset 3px 3px var(--color-border), inset -3px -3px color-mix(in srgb, var(--color-border-muted) 25%, white);\n  --shadow-control-pressed: inset 1px 1px var(--color-border), inset -1px -1px color-mix(in srgb, var(--color-border-muted) 25%, white), inset 2px 2px color-mix(in srgb, var(--color-border-muted), var(--color-border)), inset -2px -2px color-mix(in srgb, var(--color-border-muted), var(--color-border)), inset 3px 3px color-mix(in srgb, var(--color-border-muted) 25%, white), inset -3px -3px var(--color-border);\n  --shadow-dialog: inset 0 0 0 1px var(--color-border-strong), inset 2px 2px color-mix(in srgb, var(--color-border-muted) 25%, white), inset -2px -2px var(--color-border), inset 3px 3px color-mix(in srgb, var(--color-border-muted), var(--color-border)), inset -3px -3px color-mix(in srgb, var(--color-border-muted), var(--color-border)), 0 0 0 2px var(--color-border);\n  --shadow-text: none;\n  --fill-page: repeating-linear-gradient(0deg, var(--color-page) 0 3px, color-mix(in srgb, var(--color-page), black 14%) 3px 4px);\n  --fill-bar: repeating-linear-gradient(0deg, var(--color-bar) 0 1px, color-mix(in srgb, var(--color-bar), white 16%) 1px 2px);\n  --fill-bar-alt: var(--color-bar-alt);\n  --fill-inverse: repeating-linear-gradient(0deg, var(--color-inverse) 0 1px, color-mix(in srgb, var(--color-inverse), white 16%) 1px 2px);\n  --fill-accent: var(--color-accent);\n  --fill-panel: var(--color-canvas);\n  --fill-button: var(--color-button);\n  --fill-button-hover: var(--color-button);\n  --fill-button-secondary: var(--color-button-secondary);\n  --fill-input: var(--color-input);\n  --focus-ring: 2px dotted var(--color-focus);\n  --transition: none;\n  --backdrop-blur: 0px;\n}\n"
  }
}
