:root {
    color-scheme: light;
    --font-app: "Segoe UI", Arial, sans-serif;
    --ink: #000;
    --paper: #fff;
    --line: #333;
    --muted: #555;
    --soft: #f7f7f7;
    --locked-paper: #ddd;
    --locked-ink: #333;
    --error: #111;
    --accent: #000;
    --accent-alt: #000;
    --danger: #000;
    --danger-contrast: #fff;
    --icon-mail: #000;
    --icon-calendar: #000;
    --icon-reminders: #000;
    --icon-contacts: #000;
    --icon-weather: #000;
    --icon-calculator: #000;
    --icon-feedback: #000;
    --icon-favorites: #000;
    --icon-settings: #000;
}

html.theme-dark {
    color-scheme: dark;
    --ink: #fff;
    --paper: #000;
    --line: #fff;
    --muted: #ddd;
    --soft: #111;
    --locked-paper: #333;
    --locked-ink: #fff;
    --error: #fff;
    --accent: #fff;
    --accent-alt: #fff;
    --danger: #fff;
    --danger-contrast: #000;
    --icon-mail: #fff;
    --icon-calendar: #fff;
    --icon-reminders: #fff;
    --icon-contacts: #fff;
    --icon-weather: #fff;
    --icon-calculator: #fff;
    --icon-feedback: #fff;
    --icon-favorites: #fff;
    --icon-settings: #fff;
}

* {
    box-sizing: border-box;
}

html {
    font-family: var(--font-app);
    font-size: 20px;
    line-height: 1.55;
    color: var(--ink);
    background: var(--paper);
}

html[lang^="ja"] {
    --font-app: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif CJK JP", "MS Mincho", serif;
    line-height: 1.7;
    line-break: strict;
}

html[lang^="hi"] {
    --font-app: "Noto Serif Devanagari", "Kokila", "Mangal", serif;
    line-height: 1.75;
}

html[lang^="de"],
html[lang^="es"] {
    hyphens: auto;
}

body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
}

a {
    color: var(--ink);
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.16em;
}

a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus {
    outline: 3px solid var(--ink);
    outline-offset: 3px;
}

h1,
h2,
h3,
p,
ol,
ul,
dl,
form {
    margin-top: 0;
}

h1 {
    margin-bottom: 1rem;
    font-size: 2rem;
    line-height: 1.2;
}

h2 {
    margin-bottom: 0.7rem;
    font-size: 1.35rem;
    line-height: 1.25;
}

p,
li,
dd,
dt {
    max-width: 68ch;
}

button,
input,
select,
textarea,
.button-link {
    min-height: 52px;
    border: 2px solid var(--line);
    border-radius: 0;
    font: inherit;
}

button,
.button-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.55rem 0.9rem;
    color: var(--ink);
    background: var(--paper);
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}

.button-link-with-icon {
    gap: 0.5rem;
}

.button-link-with-icon .toolbar-svg {
    width: 1.35rem;
    height: 1.35rem;
}

button {
    width: 100%;
}

html.action-borders-hidden button,
html.action-borders-hidden .button-link,
html.action-borders-hidden .toolbar-icon-button,
html.action-borders-hidden .toolbar-action,
html.action-borders-hidden .page-scroll-button,
html.action-borders-hidden .icon-button,
html.action-borders-hidden .mail-list-tool-button,
html.action-borders-hidden .mail-selection-action,
html.action-borders-hidden .mail-scroll-button,
html.action-borders-hidden .calendar-scroll-button,
html.action-borders-hidden .timezone-result-button {
    border-color: transparent;
}

html.action-borders-hidden .button-link.button-link--required-border {
    border-color: var(--line);
}

input,
select,
textarea {
    width: 100%;
    padding: 0.45rem 0.55rem;
    color: var(--ink);
    background: var(--paper);
}

textarea {
    min-height: 10rem;
    resize: vertical;
}

input[type="radio"],
input[type="checkbox"] {
    width: 1.3rem;
    min-height: 1.3rem;
    margin: 0.2rem 0 0;
    accent-color: var(--ink);
}

pre {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    border: 1px solid var(--line);
    padding: 0.75rem;
    background: var(--soft);
}

.skip-link {
    position: absolute;
    left: 0.5rem;
    top: 0.5rem;
    padding: 0.5rem;
    color: var(--ink);
    background: var(--paper);
    border: 2px solid var(--line);
    transform: translateY(-140%);
}

.skip-link:focus {
    transform: translateY(0);
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.page-shell,
.site-footer {
    width: min(100% - 1.5rem, 42rem);
    max-width: 42rem;
    margin-left: 0.85rem;
    margin-right: 0.85rem;
    margin-inline: auto;
}

.page-shell {
    padding: 5.8rem 1rem 2rem;
}

.page-shell--page-controls {
    padding-bottom: 8rem;
}

.site-footer {
    border-top: 1px solid var(--line);
    padding: 1rem 0 1.5rem;
    color: var(--muted);
}

.home-page {
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 3.25rem);
    padding-bottom: 5rem;
}

.home-landing {
    display: grid;
    gap: 1rem;
    justify-items: center;
    text-align: center;
}

.home-landing h2 {
    margin-bottom: 0;
}

.home-landing .lede {
    margin-bottom: 0;
}

.home-capability-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.65rem;
    padding-left: 0;
    list-style: none;
}

.home-capability-list li {
    display: grid;
    justify-items: center;
    gap: 0.2rem;
    min-width: 4.75rem;
    font-weight: 700;
    font-size: 0.85rem;
    text-align: center;
}

.home-capability-list .launcher-icon {
    width: 2.75rem;
    min-height: 2.75rem;
}

.home-capability-list .toolbar-svg {
    width: 2.35rem;
    height: 2.35rem;
}

.home-action-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
    width: min(100%, 24rem);
    margin-top: 0.2rem;
}

.home-static-footer {
    margin-top: 0;
}

.home-static-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-evenly;
    gap: 0.55rem 1.5rem;
    margin: 0;
    width: 100%;
    text-align: center;
}

.home-static-links a {
    color: var(--ink);
}

.legal-copyright {
    margin: 0.4rem 0 0;
    color: var(--muted);
    font-size: 0.9rem;
    text-align: center;
}

.legal-copyright a {
    color: var(--muted);
}

.library-page {
    padding-bottom: 5rem;
}

.fixed-static-footer {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 6;
    padding: 0.6rem 0 0.8rem;
    border-top: 1px solid var(--line);
    background: var(--paper);
}

.static-page-footer__inner {
    width: min(100% - 1.5rem, 42rem);
    max-width: 42rem;
    margin-inline: auto;
}

.page-scroll-anchor {
    display: block;
    height: 1px;
}

.page-scroll-controls {
    position: fixed;
    right: 0.75rem;
    bottom: 0.75rem;
    z-index: 7;
    display: grid;
    gap: 0.45rem;
    width: min(9rem, calc(100vw - 1.5rem));
}

.page-scroll-button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 0.45rem 0.65rem;
    border: 2px solid var(--line);
    color: var(--ink);
    background: var(--paper);
    font-weight: 700;
    line-height: 1.15;
    text-align: center;
    text-decoration: none;
}

.page-scroll-controls--icon {
    display: flex;
    gap: 0.35rem;
    width: auto;
}

.page-scroll-controls--icon .page-scroll-button {
    width: 3.25rem;
    min-width: 3.25rem;
    min-height: 3.25rem;
    padding: 0.25rem;
}

.page-scroll-controls--icon .toolbar-svg {
    width: 1.75rem;
    height: 1.75rem;
}

.kindle-toolbar {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 10;
    border-bottom: 3px solid var(--line);
    color: var(--ink);
    background: var(--paper);
}

.kindle-toolbar__inner {
    display: grid;
    grid-template-columns: 3.25rem 1.9rem minmax(0, 1fr) auto;
    gap: 0.35rem;
    align-items: center;
    width: 100%;
    min-height: 4.65rem;
    padding: 0.55rem 0.5rem;
}

.kindle-toolbar__nav {
    min-width: 3.25rem;
}

.toolbar-icon-button,
.kindle-toolbar__app-icon,
.toolbar-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    min-width: 3.25rem;
    min-height: 3.25rem;
    color: inherit;
}

.toolbar-icon-button,
.toolbar-action {
    border: 2px solid currentColor;
    background: var(--paper);
    text-decoration: none;
}

.toolbar-icon-static {
    border-color: transparent;
    background: transparent;
}

.kindle-toolbar__app-icon {
    border: 0;
    width: 1.9rem;
    min-width: 1.9rem;
    min-height: 1.9rem;
}

.kindle-toolbar__app-icon .toolbar-svg {
    width: 1.55rem;
    height: 1.55rem;
}

.kindle-toolbar__title {
    margin: 0;
    font-size: 1.25rem;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.kindle-toolbar__actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.35rem;
}

.kindle-toolbar__actions:empty {
    display: block;
    width: 0;
}

.app-notification {
    position: fixed;
    top: 4.65rem;
    right: 0;
    left: 0;
    z-index: 9;
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 3.2rem;
    padding: 0.55rem 0.85rem;
    border-bottom: 2px solid var(--line);
    color: #fff;
    background: #000;
    font-weight: 700;
}

.app-notification__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    min-width: 1.6rem;
}

.app-notification__icon .toolbar-svg {
    width: 1.25rem;
    height: 1.25rem;
    margin-top: 0;
}

.app-notification__message {
    min-width: 0;
    overflow-wrap: anywhere;
}

.view-docked-toolbar {
    position: fixed;
    top: 4.65rem;
    right: 0;
    left: 0;
    z-index: 8;
    border-bottom: 2px solid var(--line);
    color: var(--ink);
    background: var(--paper);
}

.view-docked-toolbar--after-notification {
    top: 7.85rem;
}

.page-shell--notification {
    padding-top: 9rem;
}

.page-shell--docked-toolbar {
    padding-top: 8.95rem;
}

.page-shell--notification.page-shell--docked-toolbar {
    padding-top: 12.1rem;
}

.toolbar-title-centered .kindle-toolbar__inner {
    grid-template-columns: 3.25rem minmax(0, 1fr) 3.25rem;
}

.toolbar-title-centered .kindle-toolbar__app-icon {
    display: none;
}

.toolbar-title-centered .kindle-toolbar__title {
    text-align: center;
}

.toolbar-title-centered .kindle-toolbar__actions:empty {
    width: 3.25rem;
}

.toolbar-action {
    padding: 0.25rem;
    font: inherit;
    cursor: pointer;
}

.toolbar-text-action {
    width: auto;
    min-width: 5rem;
    padding: 0.35rem 0.65rem;
    font-weight: 700;
}

.toolbar-cloud-account,
.toolbar-google-account {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.65rem;
    min-height: 3.25rem;
    max-width: 10.5rem;
    padding: 0.25rem 0.35rem;
    border: 0;
    color: inherit;
    background: transparent;
    line-height: 1.05;
    text-decoration: none;
}

.toolbar-profile-actions .kindle-toolbar__inner {
    grid-template-columns: 3.25rem 1.9rem minmax(0, 1fr) auto;
}

.toolbar-library-title-left .kindle-toolbar__inner {
    grid-template-columns: minmax(0, 1fr) auto;
    width: min(100% - 1.5rem, 42rem);
    max-width: 42rem;
    margin-inline: auto;
    padding-right: 1rem;
    padding-left: 1rem;
}

.toolbar-library-title-left .kindle-toolbar__nav,
.toolbar-library-title-left .kindle-toolbar__app-icon {
    display: none;
}

.toolbar-library-title-left .kindle-toolbar__title {
    text-align: left;
}

.toolbar-title-centered.toolbar-profile-actions .kindle-toolbar__inner {
    grid-template-columns: minmax(8rem, 10.5rem) minmax(0, 1fr) minmax(8rem, 10.5rem);
}

.toolbar-cloud-account__identity,
.toolbar-google-account__identity {
    display: grid;
    min-width: 0;
    gap: 0.08rem;
    justify-items: end;
}

.toolbar-cloud-account__name,
.toolbar-google-account__name {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    color: currentColor;
    font-size: 0.82rem;
    font-weight: 700;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.toolbar-cloud-account__provider,
.toolbar-google-account__provider {
    max-width: 100%;
    overflow: hidden;
    color: currentColor;
    font-size: 0.68rem;
    font-weight: 400;
    line-height: 1.05;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.toolbar-cloud-account__avatar,
.toolbar-cloud-account__fallback,
.toolbar-google-account__avatar,
.toolbar-google-account__fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    min-width: 2.35rem;
    height: 2.35rem;
    border: 1px solid currentColor;
    border-radius: 50%;
    background: var(--paper);
    color: inherit;
    font-size: 1.15rem;
    font-weight: 700;
    overflow: hidden;
}

.toolbar-cloud-account__avatar,
.toolbar-google-account__avatar {
    object-fit: cover;
}

html.palette-color .kindle-toolbar .toolbar-google-account,
html.palette-color .kindle-toolbar .toolbar-cloud-account {
    color: inherit;
    background: transparent;
    border-color: transparent;
}

html.palette-color .kindle-toolbar .toolbar-cloud-account__fallback,
html.palette-color .kindle-toolbar .toolbar-cloud-account__avatar,
html.palette-color .kindle-toolbar .toolbar-google-account__fallback,
html.palette-color .kindle-toolbar .toolbar-google-account__avatar {
    color: inherit;
    background: transparent;
    border-color: currentColor;
}

.toolbar-form {
    margin: 0;
    background: inherit;
}

.toolbar-actions-compact .kindle-toolbar__actions {
    gap: 0.18rem;
}

.toolbar-actions-compact .toolbar-action {
    width: 2.6rem;
    min-width: 2.6rem;
}

.toolbar-actions-compact .toolbar-action .toolbar-svg {
    width: 1.55rem;
    height: 1.55rem;
}

.toolbar-svg {
    width: 2rem;
    height: 2rem;
    fill: currentColor;
    stroke: none;
}

.launcher-icon .toolbar-svg {
    width: 2.7rem;
    height: 2.7rem;
}

.kindle-toolbar .kindle-toolbar__app-icon.launcher-icon {
    width: 1.9rem;
    min-width: 1.9rem;
    min-height: 1.9rem;
    font-size: 1rem;
}

.kindle-toolbar .kindle-toolbar__app-icon.launcher-icon .toolbar-svg {
    width: 1.45rem;
    height: 1.45rem;
}

.reading-section + .reading-section {
    margin-top: 2rem;
    padding-top: 1.4rem;
    border-top: 1px solid var(--line);
}

.lede {
    font-size: 1.15rem;
}

.plain-list {
    padding-left: 1.25rem;
}

.plain-list li + li {
    margin-top: 0.35rem;
}

.action-list {
    display: grid;
    gap: 0.65rem;
    margin-top: 1rem;
}

.action-list form {
    margin: 0;
}

.action-list button {
    width: 100%;
}

.link-list {
    padding-left: 0;
    list-style: none;
}

.link-list li + li {
    margin-top: 0.6rem;
}

.link-list a {
    display: block;
    min-height: 52px;
    padding: 0.55rem 0.7rem;
    border: 2px solid var(--line);
    color: var(--ink);
    text-decoration: none;
}

.settings-menu {
    display: grid;
    gap: 0.65rem;
    padding-left: 0;
    list-style: none;
}

.settings-menu a,
.account-summary {
    display: grid;
    gap: 0.15rem;
    min-height: 52px;
    padding: 0.6rem 0.7rem;
    border: 2px solid var(--line);
    color: var(--ink);
    text-decoration: none;
}

.settings-action-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.settings-action-grid > li {
    display: flex;
}

.settings-action-grid a {
    grid-template-rows: 3.5rem auto;
    align-content: center;
    justify-items: center;
    width: 100%;
    min-height: 7rem;
    padding: 0.7rem 0.55rem;
    text-align: center;
}

.settings-action-grid strong {
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.settings-action-grid span {
    line-height: 1.25;
}

.settings-action-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    min-height: 3.25rem;
    color: var(--ink);
}

.settings-action-icon .toolbar-svg {
    width: 2.75rem;
    height: 2.75rem;
}

.account-summary {
    grid-template-columns: 4.4rem minmax(0, 1fr);
    align-items: center;
    gap: 0.75rem;
}

.account-summary__media {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4.1rem;
    min-width: 4.1rem;
    min-height: 3.4rem;
}

.account-summary__provider {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.7rem;
    min-width: 1.7rem;
    min-height: 1.7rem;
    border: 2px solid var(--line);
    background: var(--paper);
}

.account-summary__provider .toolbar-svg {
    width: 1.1rem;
    height: 1.1rem;
}

.account-summary__avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    min-width: 3.25rem;
    height: 3.25rem;
    border: 2px solid var(--line);
    border-radius: 50%;
    background: var(--soft);
    color: var(--ink);
    font: inherit;
    font-size: 1.3rem;
    font-weight: 700;
    object-fit: cover;
    overflow: hidden;
}

.account-summary__avatar-fallback {
    text-transform: uppercase;
}

.account-summary__body {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
}

.account-summary__body > span,
.account-summary__body > strong {
    overflow-wrap: anywhere;
}

.settings-menu span,
.account-summary span {
    color: var(--muted);
}

.settings-menu .settings-action-icon {
    color: var(--ink);
}

.account-summary__body strong,
.account-summary__provider,
.account-summary__avatar,
.account-summary__avatar-fallback {
    color: var(--ink);
}

.settings-signout-form {
    margin-top: 0.8rem;
}

.settings-panel {
    margin-top: 1rem;
    padding-top: 0.8rem;
    border-top: 1px solid var(--line);
}

.setup-intro {
    margin: 1rem 0;
}

.setup-process-list {
    padding-left: 1.45rem;
}

.setup-process-list li + li {
    margin-top: 0.55rem;
}

.setup-process-list li::marker {
    font-weight: 700;
}

.setup-process-list p {
    margin-bottom: 0;
}

.setup-cloud-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
}

.setup-cloud-table td {
    vertical-align: top;
}

.setup-cloud-table td + td {
    padding-left: 1.25rem;
}

.setup-cloud-table__instructions {
    width: 42%;
}

.setup-cloud-table__code {
    width: 58%;
}

.setup-cloud-status-list,
.setup-cloud-detail-list {
    margin-top: 0.9rem;
}

.setup-cloud-detail-list dd {
    word-wrap: break-word;
    overflow-wrap: anywhere;
}

.qr-panel.setup-cloud-qr {
    width: 320px;
    height: 320px;
    max-width: 100%;
    margin: 0 0 0.9rem auto;
    padding: 0;
    border: 0;
}

.setup-cloud-bottom-action {
    margin-top: 1.25rem;
}

.setup-cloud-bottom-action .button-link {
    width: 100%;
}

.timezone-result-list {
    display: grid;
    gap: 0.65rem;
    padding-left: 0;
    list-style: none;
}

.timezone-result-form {
    margin-bottom: 0;
}

.timezone-result-button {
    display: grid;
    gap: 0.15rem;
    width: 100%;
    min-height: 52px;
    padding: 0.6rem 0.7rem;
    border: 2px solid var(--line);
    text-align: left;
}

.timezone-result-button span {
    display: block;
    color: var(--muted);
}

.settings-task-page h1 {
    margin-bottom: 0.8rem;
}

.settings-task-form {
    margin-bottom: 1rem;
}

.compact-choice-group {
    margin-bottom: 0.75rem;
    padding: 0.65rem;
}

.compact-choice-group .choice-option {
    padding: 0.45rem 0;
}

.inline-action-grid {
    display: grid;
    gap: 0.6rem;
}

.inline-action-grid .plain-form,
.account-action-form {
    margin-bottom: 0;
}

.license-summary {
    margin-bottom: 0.75rem;
    padding: 0.85rem;
}

.license-summary h2 {
    margin-bottom: 0.35rem;
}

.license-summary p {
    margin-bottom: 0;
}

.license-action-grid {
    margin-bottom: 0.8rem;
}

.license-meta-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    margin: 0.8rem 0 0;
}

.license-meta-grid div {
    min-width: 0;
    padding: 0.5rem;
    border: 1px solid var(--line);
}

.license-meta-grid dt {
    margin-bottom: 0.1rem;
    font-weight: 700;
    line-height: 1.25;
}

.license-meta-grid dd {
    margin: 0;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.account-inline-action {
    gap: 0.55rem;
}

.account-inline-action .toolbar-svg {
    width: 1.35rem;
    height: 1.35rem;
}

.provider-connect-button {
    gap: 0.55rem;
}

.provider-connect-button .toolbar-svg {
    width: 1.35rem;
    height: 1.35rem;
}

.account-list {
    padding-left: 0;
    list-style: none;
}

.account-card-list {
    display: grid;
    gap: 0.75rem;
}

.account-item {
    padding: 0.45rem 0;
}

.account-card-list .account-item {
    padding: 0;
}

.account-card {
    border: 2px solid var(--line);
}

.account-card--current {
    border-width: 3px;
}

.account-card .account-summary {
    border: 0;
}

.account-current-indicator strong {
    color: var(--ink);
}

.account-card-actions {
    display: grid;
    gap: 0.6rem;
    align-items: stretch;
    padding: 0.65rem 0.7rem 0.7rem;
    border-top: 2px solid var(--line);
}

.account-card-actions p {
    margin: 0;
    align-self: center;
}

.account-item h3 {
    margin: 0 0 0.6rem;
    font-size: 1.15rem;
}

.connected-app-icons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

.connected-app-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    min-width: 2.35rem;
    height: 2.35rem;
    border: 2px solid var(--line);
    background: var(--paper);
    color: var(--ink);
}

.connected-app-icon .toolbar-svg {
    width: 1.35rem;
    height: 1.35rem;
}

.connected-app-icons-empty {
    color: var(--muted);
}

.account-provider-group + .account-provider-group {
    margin-top: 1.25rem;
}

.account-provider-group h3 {
    margin: 0 0 0.65rem;
    font-size: 1.05rem;
}

.account-picker-item {
    padding: 0.75rem 0;
}

.account-picker-actions {
    display: grid;
    gap: 0.65rem;
    margin-top: 0.75rem;
}

.account-picker-actions p {
    margin: 0;
}

.account-action-list {
    padding-left: 0;
    list-style: none;
}

.account-action-list li + li {
    margin-top: 0.55rem;
}

.account-action-list p {
    margin-bottom: 0;
    padding: 0.5rem 0;
    border-top: 1px solid var(--line);
}

.account-access-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.account-access-table td {
    width: 50%;
    min-height: 52px;
    padding: 0.65rem 0.7rem;
    border: 2px solid var(--line);
    vertical-align: top;
}

.account-access-table strong,
.account-access-table span {
    display: block;
}

.account-access-table span {
    margin-top: 0.25rem;
}

.account-access-form {
    margin-top: 0.45rem;
    margin-bottom: 0;
}

.account-access-form button {
    width: 100%;
    min-height: 52px;
}

.account-metadata-list,
.account-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem 1rem;
    margin-bottom: 1.5rem;
}

.account-metadata-list div {
    min-width: 0;
    padding-top: 0.65rem;
    border-top: 1px solid var(--line);
}

.account-metadata-list div:nth-child(-n + 2) {
    padding-top: 0;
    border-top: 0;
}

.account-detail-grid {
    gap: 0;
    border: 2px solid var(--line);
}

.account-detail-grid div {
    min-width: 0;
    padding: 0.65rem 0.7rem;
    border-top: 2px solid var(--line);
}

.account-detail-grid div:nth-child(odd) {
    border-right: 2px solid var(--line);
}

.account-detail-grid div:nth-child(-n + 2) {
    border-top: 0;
}

.account-detail-grid .account-detail-grid__wide {
    grid-column: 1 / -1;
    border-right: 0;
}

.account-metadata-list dt,
.account-detail-grid dt {
    font-weight: 700;
}

.account-metadata-list dd,
.account-detail-grid dd {
    margin: 0.25rem 0 0;
    overflow-wrap: anywhere;
}

.account-detail-select-form {
    margin-bottom: 1rem;
}

.account-detail-actions {
    margin-top: 0.8rem;
}

.account-detail-actions .inline-action-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.compact-detail-list dd {
    margin-bottom: 0.45rem;
}

.qr-panel {
    width: min(100%, 17rem);
    aspect-ratio: 1 / 1;
    margin: 1rem auto;
    padding: 0.7rem;
    border: 2px solid var(--line);
    background: #fff;
}

.qr-panel svg {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    overflow: visible;
}

.ordered-flow li {
    margin-bottom: 0.25rem;
}

.search-form,
.plain-form {
    margin-bottom: 1.5rem;
}

.search-form {
    display: grid;
    gap: 0.6rem;
}

.form-field {
    margin-bottom: 1rem;
}

.form-icon-row .form-field {
    margin-bottom: 0;
}

.form-icon-row {
    display: grid;
    grid-template-columns: 2.35rem minmax(0, 1fr);
    gap: 0.75rem;
    align-items: start;
    margin-bottom: 1rem;
}

.form-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
}

.form-icon .toolbar-svg {
    width: 1.6rem;
    height: 1.6rem;
}

.form-field label,
.search-form label {
    display: block;
    margin-bottom: 0.3rem;
    font-weight: 700;
}

.form-help {
    margin-bottom: 0.45rem;
    color: var(--muted);
}

.email-code-input {
    text-align: center;
    letter-spacing: 0.08em;
}

fieldset {
    min-width: 0;
    margin: 0 0 1.25rem;
    padding: 0.85rem;
    border: 2px solid var(--line);
}

legend {
    padding: 0 0.35rem;
    font-weight: 700;
}

.choice-option {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.65rem;
    align-items: start;
    min-height: 52px;
    padding: 0.65rem 0;
    border-top: 1px solid var(--line);
}

.choice-option:first-of-type {
    border-top: 0;
}

.choice-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.choice-row .choice-option {
    border-top: 0;
}

.choice-row .choice-option + .choice-option {
    padding-left: 0.65rem;
    border-left: 1px solid var(--line);
}

.mail-page-size-options {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.choice-option strong,
.choice-option span span {
    display: block;
}

.choice-option span span {
    color: var(--muted);
}

.field-validation,
.validation-summary {
    display: block;
    margin-top: 0.35rem;
    font-weight: 700;
}

html.palette-color .field-validation,
html.palette-color .validation-summary {
    color: var(--danger);
}

.validation-summary:not(:empty),
.notice-error {
    border-width: 3px;
}

.notice {
    margin: 1rem 0;
    padding: 1rem;
    border: 2px solid var(--line);
}

.notice-warning {
    border-width: 3px;
}

.warning-label {
    margin-bottom: 0.25rem;
    font-weight: 700;
}

.danger-action {
    border-width: 3px;
    border-color: var(--danger);
    color: var(--danger-contrast);
    background: var(--danger);
    font-weight: 700;
}

.loading-view {
    max-width: 40rem;
}

.loading-view .notice {
    border-width: 3px;
}

.loading-status-message {
    display: inline-grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.45rem;
    align-items: center;
}

.loading-status-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.loading-status-icon .toolbar-svg {
    width: 1.15rem;
    height: 1.15rem;
}

.result-count,
.metadata {
    color: var(--muted);
}

.library-list {
    padding-left: 0;
    list-style: none;
}

.library-item {
    padding: 1rem 0;
    border-top: 1px solid var(--line);
}

.library-list li:last-child .library-item {
    border-bottom: 1px solid var(--line);
}

.launcher-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    gap: 0.75rem;
    padding-left: 0;
    list-style: none;
}

.launcher-grid > li {
    display: flex;
}

.launcher-link {
    display: grid;
    grid-template-rows: 3.5rem auto;
    gap: 0.3rem;
    align-items: center;
    justify-items: center;
    width: 100%;
    height: 100%;
    min-height: 6.4rem;
    padding: 0.45rem 0.4rem;
    border: 2px solid var(--line);
    color: var(--ink);
    text-align: center;
    text-decoration: none;
}

.launcher-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.45rem;
    min-height: 3.45rem;
    font-weight: 700;
    font-size: 1.45rem;
    line-height: 1;
}

.launcher-icon-large {
    width: 5rem;
    min-height: 5rem;
    font-size: 1.8rem;
}

.launcher-name {
    display: inline-flex;
    gap: 0.25rem;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.launcher-lock-icon {
    display: inline-flex;
    width: 0.95rem;
    min-height: 0.95rem;
}

.launcher-lock-icon .toolbar-svg {
    width: 0.95rem;
    height: 0.95rem;
}

.launcher-link-locked {
    color: var(--locked-ink);
    background: var(--locked-paper);
    border-color: var(--locked-ink);
}

.launcher-link-action {
    border-width: 3px;
}

.launcher-weather-current,
.launcher-calendar-current {
    display: grid;
    align-content: center;
    justify-items: center;
    width: 100%;
    min-width: 0;
    min-height: 3.45rem;
    line-height: 1.08;
    text-align: center;
}

.launcher-weather-current {
    gap: 0.15rem;
}

.launcher-calendar-current {
    gap: 0;
}

.favorites-page {
    display: grid;
    gap: 1rem;
}

.favorites-first-run {
    display: grid;
    gap: 1rem;
}

.favorites-launcher-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
    padding-left: 0;
    list-style: none;
}

.favorite-launcher-tile {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-width: 0;
    border: 2px solid var(--line);
    background: var(--paper);
}

.favorite-launcher-link {
    display: grid;
    grid-template-rows: 4.25rem auto;
    gap: 0.45rem;
    align-items: center;
    justify-items: center;
    min-height: 7.25rem;
    padding: 0.65rem 0.45rem;
    color: var(--ink);
    text-align: center;
    text-decoration: none;
}

.favorite-launcher-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    min-height: 4rem;
}

.favorite-launcher-icon .toolbar-svg {
    width: 3.2rem;
    height: 3.2rem;
}

.favorite-site-icon {
    display: block;
    width: 2.35rem;
    height: 2.35rem;
    object-fit: contain;
}

.favorite-launcher-icon .favorite-site-icon {
    width: 3.2rem;
    height: 3.2rem;
}

.favorite-launcher-name {
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.favorite-link-list,
.favorite-icon-results {
    display: grid;
    gap: 0.75rem;
    padding-left: 0;
    list-style: none;
}

.favorite-link-list li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.55rem;
    align-items: stretch;
    padding: 0.7rem;
    border: 2px solid var(--line);
}

.favorite-icon-results li {
    display: grid;
    gap: 0.55rem;
    padding: 0.7rem;
    border: 2px solid var(--line);
}

.favorite-list-open,
.favorite-icon-choice {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr);
    gap: 0.7rem;
    align-items: center;
    color: var(--ink);
    text-decoration: none;
    min-width: 0;
}

.favorite-list-open strong,
.favorite-icon-choice strong,
.favorite-list-open span span,
.favorite-icon-choice span span {
    display: block;
    overflow-wrap: anywhere;
}

.favorite-list-icon,
.favorite-action-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    min-height: 3rem;
    border: 2px solid var(--line);
    color: var(--ink);
}

.favorite-list-icon .toolbar-svg,
.favorite-action-icon .toolbar-svg {
    width: 2rem;
    height: 2rem;
    color: currentColor;
}

.favorite-list-action {
    width: 3.25rem;
    min-width: 3.25rem;
    min-height: 3.25rem;
    padding: 0.35rem;
    align-self: stretch;
}

.favorite-list-action .toolbar-svg {
    width: 1.75rem;
    height: 1.75rem;
}

.favorite-list-actions {
    display: grid;
    grid-template-columns: repeat(3, 3.25rem);
    gap: 0.4rem;
    justify-content: end;
    align-items: stretch;
}

.favorite-list-reorder-form {
    margin: 0;
    display: flex;
}

.favorite-action-header {
    display: grid;
    grid-template-columns: 3.5rem minmax(0, 1fr);
    gap: 0.8rem;
    align-items: center;
    padding: 0.75rem;
    border: 2px solid var(--line);
    color: var(--ink);
    text-decoration: none;
}

.favorite-action-header h2,
.favorite-action-header p {
    margin: 0;
    overflow-wrap: anywhere;
}

.favorites-action-menu {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.7rem;
}

.favorites-action-menu a {
    display: grid;
    grid-template-columns: 2.2rem minmax(0, 1fr);
    gap: 0.45rem;
    align-items: center;
    min-height: 3.8rem;
    padding: 0.55rem;
}

.favorites-action-menu .toolbar-svg {
    width: 1.6rem;
    height: 1.6rem;
}

.favorites-action-menu strong {
    overflow-wrap: anywhere;
}

.favorite-delete-form {
    display: grid;
    gap: 0.7rem;
}

.favorite-delete-form .button-link {
    width: 100%;
}

.favorite-folder-node {
    display: grid;
    gap: 0.75rem;
    padding: 0.75rem 0 0.75rem 0.75rem;
    border-left: 2px solid var(--line);
}

.favorite-folder-node h3 {
    margin: 0;
}

.favorite-folder-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.75rem;
    align-items: center;
}

.favorite-folder-heading h2,
.favorite-folder-heading h3 {
    margin: 0;
}

.favorite-folder-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.45rem;
    text-align: right;
}

.favorite-tree-action-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    min-width: 3.25rem;
    min-height: 3.25rem;
    border: 2px solid var(--line);
    color: var(--ink);
    background: var(--paper);
    text-decoration: none;
}

.favorite-tree-action-button .toolbar-svg {
    width: 1.75rem;
    height: 1.75rem;
}

.favorite-color-field {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.7rem;
    margin: 0;
    padding: 0;
    border: 0;
}

.favorite-color-field legend {
    font-weight: 700;
}

.favorite-color-option {
    display: block;
    min-height: 3.25rem;
}

.favorite-color-option input {
    min-height: auto;
}

.favorite-color-swatch {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 3.25rem;
    border: 2px solid var(--line);
    background: var(--paper);
    color: var(--ink);
    font-weight: 700;
    line-height: 1;
}

.favorite-color-option input:checked + .favorite-color-swatch::after {
    content: "\2713";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.7rem;
    min-height: 1.7rem;
    border: 2px solid currentColor;
    background: var(--paper);
    color: var(--ink);
}

.favorite-icon-picker-action {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr);
    gap: 0.7rem;
    align-items: center;
    justify-items: start;
    width: 100%;
    text-align: left;
}

.favorite-icon-picker-action span span,
.favorite-icon-picker-action strong {
    display: block;
    overflow-wrap: anywhere;
}

.favorite-icon-picker-action .favorite-list-icon {
    background: var(--paper);
    color: var(--ink);
}

.favorite-icon-picker-action .favorite-list-icon .toolbar-svg {
    color: currentColor;
}

.favorites-search-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.75rem;
    align-items: end;
}

.favorites-search-form .form-field {
    margin: 0;
}

.favorites-search-form button {
    width: auto;
    min-width: 6.5rem;
}

html.palette-color .favorite-launcher-tile {
    background: var(--favorite-color);
    color: #fff;
}

html.palette-color .favorite-launcher-link {
    color: #fff;
}

html.palette-color .favorite-list-icon,
html.palette-color .favorite-action-icon,
html.palette-color .favorite-color-swatch {
    background: var(--favorite-color);
    color: #fff;
}

html.palette-color .favorite-icon-results .favorite-list-icon {
    background: var(--paper);
    color: var(--ink);
}

html.palette-color .favorite-icon-picker-action .favorite-list-icon {
    background: var(--paper);
    color: var(--ink);
}

html.palette-color .launcher-icon-favorites {
    color: var(--icon-favorites);
}

.launcher-weather-condition {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.launcher-weather-condition .toolbar-svg {
    width: 2.45rem;
    height: 2.45rem;
}

.launcher-weather-temp {
    font-size: 1.05rem;
    font-weight: 700;
}

.launcher-calendar-mark {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.7rem;
    min-width: 2.7rem;
}

.launcher-calendar-mark .toolbar-svg {
    width: 2.7rem;
    height: 2.7rem;
}

.launcher-calendar-date {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0.58rem;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1;
    text-align: center;
}

.app-heading {
    display: grid;
    grid-template-columns: 5rem minmax(0, 1fr) 3.25rem;
    gap: 0.75rem;
    align-items: center;
    min-height: 6.5rem;
    margin-bottom: 1.25rem;
    padding: 0.75rem;
    border: 2px solid var(--line);
    background: var(--soft);
    color: var(--ink);
}

.app-heading h1 {
    margin-bottom: 0;
    text-align: center;
}

.library-grid-button {
    display: grid;
    grid-template-columns: repeat(3, 0.38rem);
    grid-template-rows: repeat(3, 0.38rem);
    gap: 0.18rem;
    align-content: center;
    justify-content: center;
    justify-self: end;
    width: 3.25rem;
    min-height: 3.25rem;
    border: 2px solid currentColor;
    color: inherit;
    background: transparent;
    text-decoration: none;
}

.library-grid-button span[aria-hidden="true"] {
    display: block;
    width: 0.38rem;
    height: 0.38rem;
    background: currentColor;
}

.detail-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.25rem;
}

.detail-list dt {
    font-weight: 700;
}

.detail-list dd {
    margin: 0 0 0.9rem;
}

.file-detail-sheet {
    display: grid;
    gap: 1rem;
}

.file-detail-header {
    display: grid;
    grid-template-columns: 2.75rem minmax(0, 1fr);
    gap: 0.8rem;
    align-items: start;
}

.file-detail-type-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    min-height: 2.75rem;
    border: 2px solid var(--line);
}

.file-detail-type-icon .toolbar-svg {
    width: 1.65rem;
    height: 1.65rem;
}

.file-detail-title {
    margin-bottom: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.file-detail-actions {
    display: grid;
    gap: 0.6rem;
}

.file-detail-panel {
    padding-top: 1rem;
    border-top: 1px solid var(--line);
}

.file-detail-panel h2 {
    margin-bottom: 0.55rem;
}

.file-detail-notice {
    margin-bottom: 0;
}

.file-detail-list {
    margin-bottom: 0;
}

.pdf-preview {
    display: grid;
    gap: 1rem;
}

.image-preview {
    display: grid;
    gap: 1rem;
}

.image-preview-frame {
    margin: 0;
    padding: 0.5rem;
    border: 2px solid var(--line);
    background: var(--paper);
}

.image-preview-frame img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
}

.pdf-preview-page {
    padding-top: 1rem;
    border-top: 1px solid var(--line);
}

.pdf-preview-page pre {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 0.95rem;
    line-height: 1.55;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.simple-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.simple-list li {
    margin: 0 0 18px;
    padding: 16px;
    border: 2px solid var(--border);
    background: var(--paper);
}

.view-title {
    text-align: center;
}

.calendar-view {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 7.8rem);
    min-height: 18rem;
    overflow: hidden;
}

.calendar-day-heading {
    flex: 0 0 auto;
    margin-bottom: 1.2rem;
}

.calendar-nav {
    display: grid;
    grid-template-columns: 3.25rem minmax(0, 1fr) 3.25rem;
    gap: 0.7rem;
    align-items: center;
    margin-bottom: 1rem;
}

.calendar-nav p {
    margin-bottom: 0;
    text-align: center;
    font-weight: 700;
}

.calendar-date-form {
    display: grid;
    gap: 0.35rem;
}

.calendar-date-strip {
    margin-bottom: 1rem;
}

.calendar-date-form input[type="date"] {
    min-height: 3.25rem;
    text-align: center;
}

.calendar-date-time-stack {
    display: grid;
    gap: 0.5rem;
}

.calendar-form-action,
.calendar-all-day-action {
    width: 100%;
    justify-content: flex-start;
    gap: 0.55rem;
    text-align: left;
}

.calendar-form-action .toolbar-svg,
.calendar-all-day-action .toolbar-svg {
    width: 1.35rem;
    height: 1.35rem;
}

.attendee-list {
    margin-top: 1rem;
}

.attendee-search-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 3.25rem;
    gap: 0.35rem;
    align-items: stretch;
}

.attendee-search-results {
    margin-top: 0.65rem;
}

.attendee-search-result {
    width: 100%;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    text-align: left;
    background: var(--paper);
}

.attendee-search-result span {
    overflow-wrap: anywhere;
}

.attendee-row-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 3.25rem;
    gap: 0.65rem;
    align-items: center;
    padding: 0.55rem 0;
    border-top: 1px solid var(--line);
}

.attendee-list li:last-child .attendee-row-form {
    border-bottom: 1px solid var(--line);
}

.attendee-row-form span {
    overflow-wrap: anywhere;
}

.attendee-remove-action {
    width: 3.25rem;
    min-width: 3.25rem;
}

.calendar-event-list-shell {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    border-top: 1px solid var(--line);
}

.calendar-event-list {
    height: 100%;
    margin: 0;
    padding-bottom: 4.8rem;
    overflow-y: auto;
}

.calendar-event-link {
    display: grid;
    grid-template-columns: minmax(5.4rem, 6.7rem) minmax(0, 1fr) 2rem;
    gap: 0.65rem;
    align-items: start;
    padding: 0.7rem 0;
    color: var(--ink);
    text-decoration: none;
}

.calendar-event-list li:not(.calendar-scroll-anchor) + li .calendar-event-link {
    border-top: 1px solid var(--line);
}

.calendar-event-list li:last-child .calendar-event-link {
    border-bottom: 1px solid var(--line);
}

.calendar-event-list li:nth-last-child(2) .calendar-event-link {
    border-bottom: 1px solid var(--line);
}

.calendar-scroll-anchor {
    display: block;
    height: 1px;
}

.calendar-event-time,
.calendar-event-main {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.calendar-event-time {
    font-size: 0.82rem;
    line-height: 1.2;
}

.calendar-event-time strong,
.calendar-event-main strong {
    color: var(--ink);
}

.calendar-event-time span,
.calendar-event-main span {
    color: var(--muted);
}

.calendar-event-main {
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.calendar-event-main strong {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem;
}

.calendar-event-meeting-icon {
    display: inline-flex;
    align-items: center;
    color: var(--ink);
}

.calendar-event-meeting-icon .toolbar-svg {
    width: 1rem;
    height: 1rem;
}

.calendar-event-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    justify-self: end;
    width: 1.8rem;
    min-height: 1.8rem;
    color: var(--ink);
}

.calendar-event-status .toolbar-svg {
    width: 1.25rem;
    height: 1.25rem;
}

.calendar-attendee-item {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.2rem;
}

.calendar-attendee-status {
    display: inline-flex;
    align-items: baseline;
    gap: 0.25rem;
}

.calendar-attendee-status-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.2rem;
    min-width: 1.2rem;
    color: var(--ink);
}

.calendar-attendee-status-icon .toolbar-svg {
    width: 0.95rem;
    height: 0.95rem;
}

.calendar-meeting-source {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.calendar-meeting-source .toolbar-svg,
.calendar-rsvp-check .toolbar-svg {
    width: 0.95rem;
    height: 0.95rem;
}

.calendar-meeting-context div {
    display: grid;
    gap: 0.2rem;
}

.calendar-rsvp-panel {
    margin-top: 1rem;
}

.calendar-rsvp-panel p {
    margin-top: 0;
}

.calendar-rsvp-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.35rem;
}

.calendar-rsvp-actions form {
    margin: 0;
}

.calendar-rsvp-actions button {
    gap: 0.25rem;
    min-height: 52px;
    padding: 0.45rem 0.35rem;
}

.calendar-scroll-controls {
    position: absolute;
    right: 0.35rem;
    bottom: 0.35rem;
    z-index: 2;
    display: flex;
    gap: 0.35rem;
}

.calendar-scroll-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    min-width: 3.25rem;
    min-height: 3.25rem;
    padding: 0.25rem;
    border: 2px solid var(--line);
    color: var(--ink);
    background: var(--paper);
    text-decoration: none;
}

.calendar-scroll-button .toolbar-svg {
    width: 1.75rem;
    height: 1.75rem;
}

.icon-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 3.25rem;
    border: 2px solid var(--line);
    color: var(--ink);
    background: var(--paper);
    font-weight: 700;
    font-size: 1.35rem;
    line-height: 1;
    text-decoration: none;
}

.action-row,
.pagination {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.7rem;
    margin-top: 1.2rem;
}

.secondary {
    background: var(--soft);
}

.button-link-disabled {
    color: var(--muted);
    border-color: #777;
    background: var(--soft);
}

.mock-list {
    padding-left: 0;
    list-style: none;
}

.mock-item {
    display: grid;
    gap: 0.2rem;
    padding: 0.75rem 0;
    border-top: 1px solid var(--line);
}

a.mock-item {
    text-decoration: none;
}

.mock-list li:last-child .mock-item,
.mock-list > .mock-item:last-child {
    border-bottom: 1px solid var(--line);
}

.recent-file-group {
    margin-top: 1.25rem;
}

.recent-file-group-title {
    margin-bottom: 0.35rem;
    font-size: 1.1rem;
}

.recent-file-row {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr) auto;
    gap: 0.55rem;
    align-items: center;
    min-height: 3.25rem;
    padding: 0.45rem 0;
    border-top: 1px solid var(--line);
    color: var(--ink);
    text-decoration: none;
}

button.recent-file-row {
    width: 100%;
    font: inherit;
    text-align: left;
    background: var(--paper);
    border-right: 0;
    border-left: 0;
    border-bottom: 0;
    appearance: none;
}

.file-browser-row {
    grid-template-columns: 2rem minmax(0, 1fr);
}

.recent-files-list li:last-child .recent-file-row {
    border-bottom: 1px solid var(--line);
}

.recent-file-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    color: var(--ink);
}

.recent-file-icon .toolbar-svg {
    width: 1.45rem;
    height: 1.45rem;
}

.recent-file-name {
    overflow: hidden;
    font-weight: 700;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.recent-file-date {
    color: var(--muted);
    white-space: nowrap;
}

.reminder-list-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.75rem;
    align-items: center;
    border-top: 1px solid var(--line);
}

.reminder-list-row:last-child {
    border-bottom: 1px solid var(--line);
}

.reminder-list-row .mock-item {
    border-top: 0;
}

.reminder-list-row:last-child .mock-item {
    border-bottom: 0;
}

.reminder-list-edit-action,
.reminder-status-action,
.reminder-date-action {
    gap: 0.55rem;
}

.reminder-list-edit-action .toolbar-svg,
.reminder-status-action .toolbar-svg,
.reminder-date-action .toolbar-svg {
    width: 1.35rem;
    height: 1.35rem;
}

.reminder-status-action {
    width: 100%;
    margin-bottom: 1rem;
    justify-content: flex-start;
}

.task-detail-action-form {
    margin-bottom: 0.6rem;
}

.task-detail-action-form .reminder-status-action {
    margin-bottom: 0;
}

.task-detail-action-form-last {
    margin-bottom: 1.1rem;
}

.calendar-all-day-toggle input[type="checkbox"] {
    flex: 0 0 auto;
}

.reminder-date-action {
    min-height: 52px;
    justify-content: flex-start;
}

.task-toolbar {
    display: grid;
    grid-template-columns: minmax(5rem, auto) repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    align-items: center;
    min-height: 4.25rem;
    padding: 0.55rem 1rem;
    background: var(--paper);
}

.task-toolbar-count {
    display: inline-flex;
    gap: 0.35rem;
    align-items: baseline;
    margin: 0;
    white-space: nowrap;
}

.task-toolbar-count strong {
    font-size: 1.2rem;
}

.task-toolbar-action {
    gap: 0.45rem;
    min-height: 3.15rem;
    padding-right: 0.6rem;
    padding-left: 0.6rem;
}

.task-toolbar-action .toolbar-svg {
    width: 1.25rem;
    height: 1.25rem;
}

.task-list {
    padding-left: 0;
    list-style: none;
}

.task-row {
    display: grid;
    grid-template-columns: 3.25rem minmax(0, 1fr) 3.25rem;
    gap: 0.45rem;
    align-items: start;
    padding: 0.7rem 0;
    border-top: 1px solid var(--line);
}

.task-list li:last-child .task-row {
    border-bottom: 1px solid var(--line);
}

.task-row-action {
    margin-bottom: 0;
}

.task-icon-button {
    width: 3.25rem;
    min-width: 3.25rem;
    min-height: 3.25rem;
    border-color: transparent;
    padding: 0;
    background: transparent;
}

.task-icon-button .toolbar-svg {
    width: 1.45rem;
    height: 1.45rem;
}

.task-row-main {
    display: grid;
    gap: 0.35rem;
    min-height: 3.25rem;
    align-content: center;
    color: var(--ink);
    text-decoration: none;
}

.task-row-main strong {
    overflow-wrap: anywhere;
}

.task-due-date {
    display: inline-flex;
    gap: 0.4rem;
    align-items: center;
    color: var(--muted);
}

.task-due-date .toolbar-svg {
    width: 1.15rem;
    height: 1.15rem;
}

.toolbar-labeled-action {
    gap: 0.45rem;
}

.review-field-list {
    display: grid;
    gap: 1rem;
}

.review-title-value {
    display: grid;
    gap: 0.2rem;
    padding-bottom: 0.8rem;
    border-bottom: 1px solid var(--line);
}

.review-field-list .form-icon-row {
    margin-bottom: 0;
    padding-bottom: 0.8rem;
    border-bottom: 1px solid var(--line);
}

.review-field-list .form-icon-row > div {
    display: grid;
    gap: 0.15rem;
}

.date-select-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.7rem;
}

.time-select-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.7rem;
    margin-bottom: 1rem;
}

.calendar-time-fields-disabled label {
    color: var(--muted);
}

.calendar-time-fields-disabled select,
select:disabled {
    color: var(--muted);
    border-color: var(--muted);
    background: var(--soft);
}

.contacts-search-form {
    margin-bottom: 1.4rem;
}

.files-search-form {
    margin-bottom: 0.7rem;
}

.files-search-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 3.25rem;
    gap: 0.35rem;
    align-items: stretch;
}

.file-type-shortcuts {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.35rem;
    margin: 0 0 1.5rem;
}

.file-type-shortcuts form {
    margin: 0;
}

.file-type-button {
    width: 100%;
    gap: 0.25rem;
    padding: 0.35rem 0.25rem;
    font-size: 0.9rem;
    line-height: 1.15;
}

.file-type-button .toolbar-svg {
    width: 1.15rem;
    height: 1.15rem;
    flex: 0 0 auto;
}

.contacts-search-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 3.25rem;
    gap: 0.35rem;
    align-items: stretch;
}

.contacts-search-row--with-clear {
    grid-template-columns: minmax(0, 1fr) 3.25rem 3.25rem;
}

.contacts-icon-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 3.25rem;
    min-height: 52px;
    padding: 0.35rem;
    border: 2px solid var(--line);
    color: var(--ink);
    background: var(--paper);
    text-decoration: none;
}

.contacts-icon-button .toolbar-svg {
    width: 1.3rem;
    height: 1.3rem;
}

.alphabet-control {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(2.6rem, 1fr));
    gap: 0.35rem;
    margin: 0.75rem 0 1rem;
}

.alphabet-control a,
.alphabet-control span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    border: 2px solid var(--line);
    color: var(--ink);
    background: var(--paper);
    font-weight: 700;
    text-align: center;
    text-decoration: none;
}

.alphabet-control a.is-current {
    border-width: 3px;
    background: var(--soft);
}

.alphabet-control span {
    color: var(--muted);
    border-color: #777;
    background: var(--soft);
}

.contacts-letter-anchor {
    padding-top: 0.35rem;
}

.contacts-letter-anchor h3 {
    margin: 0;
    padding: 0.45rem 0 0.25rem;
    border-top: 2px solid var(--line);
    font-size: 1.05rem;
}

.contacts-load-more {
    width: 100%;
    margin-top: 1rem;
}

.mail-body {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.mail-search-form {
    margin-bottom: 1.5rem;
}

.mail-search-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 2.85rem 2.85rem;
    gap: 0.35rem;
    align-items: stretch;
}

.mail-search-row input {
    width: 100%;
    min-width: 0;
}

.mail-search-icon-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 0;
    min-height: 52px;
    padding: 0.25rem;
    border: 2px solid var(--line);
    color: var(--ink);
    background: var(--paper);
    text-decoration: none;
}

.mail-search-icon-button .toolbar-svg {
    width: 1.35rem;
    height: 1.35rem;
}

.mail-list-toolbar {
    display: grid;
    grid-template-columns: max-content repeat(4, minmax(0, 1fr));
    align-items: stretch;
    gap: 0.35rem;
    min-height: 3.35rem;
    padding: 0.35rem 0.85rem;
    overflow: hidden;
}

.mail-selection-toolbar {
    grid-template-columns: minmax(5.4rem, 1fr) repeat(8, minmax(2.6rem, 2.8rem));
    gap: 0.25rem;
    padding-right: 1.25rem;
}

.mail-list-count {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    padding: 0 0.25rem 0 0.15rem;
    color: var(--muted);
    font-size: 0.9rem;
    font-weight: 700;
    white-space: nowrap;
}

.mail-list-count-compact {
    display: none;
}

.mail-selection-count {
    font-size: 0.78rem;
}

.mail-list-tool-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    min-width: 0;
    min-height: 2.65rem;
    padding: 0.2rem 0.35rem;
    border: 2px solid var(--line);
    color: var(--ink);
    background: var(--paper);
    font: inherit;
    font-size: 0.68rem;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
    overflow: hidden;
    white-space: nowrap;
}

.mail-selection-icon-button {
    min-width: 2.6rem;
    padding-inline: 0.2rem;
}

.mail-list-tool-button .toolbar-svg {
    width: 1.05rem;
    height: 1.05rem;
}

.mail-list-tool-button--active {
    color: var(--paper);
    background: var(--ink);
}

.mail-list-tool-label {
    min-width: 0;
    overflow: hidden;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 760px) {
    .mail-list-toolbar {
        gap: 0.25rem;
        padding-right: 0.6rem;
        padding-left: 0.6rem;
    }

    .mail-list-count {
        font-size: 0.82rem;
    }

    .mail-list-count-full {
        display: none;
    }

    .mail-list-count-compact {
        display: inline;
    }

    .mail-list-tool-button {
        padding-right: 0.25rem;
        padding-left: 0.25rem;
    }
}

.mail-message-list {
    padding-left: 0;
    padding-bottom: 4.8rem;
    list-style: none;
}

.mail-message-row {
    border-top: 1px solid var(--line);
}

.mail-message-row:last-child {
    border-bottom: 1px solid var(--line);
}

.mail-message-group {
    display: grid;
    grid-template-columns: 1.1rem minmax(0, 1fr);
    gap: 0.35rem;
    align-items: center;
    padding: 0.65rem 0 0.25rem;
    border-top: 2px solid var(--line);
    color: var(--ink);
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.2;
}

.mail-message-group-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.mail-message-group-icon .toolbar-svg {
    width: 0.9rem;
    height: 0.9rem;
}

.mail-message-link {
    display: grid;
    grid-template-columns: 1.45rem minmax(0, 1fr);
    gap: 0.45rem;
    align-items: start;
    padding: 0.7rem 0;
    color: var(--ink);
    text-decoration: none;
}

.mail-message-select-label {
    cursor: pointer;
}

.mail-message-status,
.mail-message-selection {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.2rem;
    min-height: 1.2rem;
    margin-top: 0.05rem;
}

.mail-message-status {
    color: var(--ink);
}

.mail-message-status .toolbar-svg,
.mail-message-selection .toolbar-svg {
    width: 1rem;
    height: 1rem;
}

.mail-message-selection {
    visibility: hidden;
}

.mail-message-selection--active {
    visibility: visible;
}

.mail-message-selection-control {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.45rem;
    min-height: 1.45rem;
}

.mail-message-checkbox {
    width: 1.15rem;
    height: 1.15rem;
    margin: 0;
    accent-color: var(--ink);
}

.mail-message-main {
    display: grid;
    gap: 0.08rem;
    min-width: 0;
}

.mail-read-status-line {
    display: inline-grid;
    grid-template-columns: 1.2rem auto;
    gap: 0.25rem;
    align-items: center;
    width: max-content;
    max-width: 100%;
    color: var(--muted);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    white-space: nowrap;
}

.mail-list-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.5rem;
    align-items: baseline;
    min-width: 0;
}

.mail-list-sender,
.mail-list-date,
.mail-list-subject-text,
.mail-preview {
    display: block;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow-wrap: normal;
}

.mail-list-subject-line {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    min-width: 0;
    max-width: 100%;
}

.mail-list-subject-line--flagged {
    display: flex;
}

.mail-list-calendar-icon,
.mail-list-flag-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 0.95rem;
    min-height: 0.95rem;
    color: var(--ink);
}

.mail-list-calendar-icon .toolbar-svg,
.mail-list-flag-icon .toolbar-svg {
    width: 0.85rem;
    height: 0.85rem;
}

.mail-list-sender {
    color: var(--ink);
    font-weight: 700;
}

.mail-list-date,
.mail-preview {
    color: var(--muted);
}

.mail-list-date {
    justify-self: end;
    max-width: 8.5rem;
    font-size: 0.78rem;
    line-height: 1.2;
    text-align: right;
}

.mail-list-subject-text {
    font-size: 1rem;
    line-height: 1.15;
}

.mail-preview {
    font-size: 0.88rem;
    line-height: 1.25;
}

.mail-scroll-controls {
    position: fixed;
    right: 0.85rem;
    bottom: 0.85rem;
    z-index: 7;
    display: flex;
    gap: 0.35rem;
    align-items: center;
}

.mail-scroll-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    min-width: 2.8rem;
    min-height: 2.8rem;
    padding: 0.25rem 0.45rem;
    border: 2px solid var(--line);
    color: var(--ink);
    background: var(--paper);
    font: inherit;
    font-size: 0.78rem;
    font-weight: 700;
    text-decoration: none;
}

.mail-scroll-button .toolbar-svg {
    width: 1.15rem;
    height: 1.15rem;
}

.mail-more-action {
    min-width: 7.5rem;
    padding-inline: 0.7rem;
}

.mail-scroll-enhanced:not(.mail-list-at-bottom) .mail-more-action {
    display: none;
}

.mail-status-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.15rem;
    min-height: 1.15rem;
    color: currentColor;
}

.mail-status-icon .toolbar-svg {
    width: 1.05rem;
    height: 1.05rem;
}

.mail-read-status {
    display: inline-grid;
    grid-template-columns: 1.35rem auto;
    gap: 0.35rem;
    align-items: center;
}

.mail-flag-status {
    display: inline-grid;
    grid-template-columns: 1.35rem auto;
    gap: 0.35rem;
    align-items: center;
    color: var(--ink);
    font-weight: 700;
}

.mail-detail-status-form {
    margin: 0;
}

.mail-read-status-button {
    min-height: 2.75rem;
    padding: 0.25rem 0.45rem;
    border: 2px solid var(--line);
    color: var(--ink);
    background: var(--paper);
    font: inherit;
    font-weight: 700;
    text-align: left;
}

.mail-read-status .mail-status-icon {
    margin-top: 0;
}

.mail-selection-panel {
    display: grid;
    justify-items: stretch;
    gap: 0.8rem;
    max-width: 40rem;
    margin: 0.4rem 0 0;
    text-align: left;
}

.mail-selection-panel h2 {
    margin: 0;
    font-size: 1.3rem;
    line-height: 1.2;
}

.mail-selection-title {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.4rem;
}

.mail-selection-title-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.mail-selection-title-icon .toolbar-svg {
    width: 1.05rem;
    height: 1.05rem;
}

.mail-selection-actions,
.mail-folder-choice-list {
    display: grid;
    gap: 0.45rem;
    width: 100%;
    margin-top: 0.35rem;
}

.mail-folder-choice-item {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.7rem;
    align-items: center;
}

.mail-folder-count {
    color: var(--ink);
    font-weight: 700;
    text-align: right;
    white-space: nowrap;
}

.mail-selection-action {
    display: flex;
    justify-content: flex-start;
    gap: 0.65rem;
    align-items: center;
    width: 100%;
    min-height: 52px;
    padding: 0.65rem 0.7rem;
    border: 2px solid var(--line);
    color: var(--ink);
    background: var(--paper);
    font: inherit;
    font-weight: 700;
    text-align: left;
    text-decoration: none;
}

.mail-selection-action .toolbar-svg {
    flex: 0 0 auto;
    width: 1.25rem;
    height: 1.25rem;
}

.mail-selection-action span {
    min-width: 0;
    line-height: 1.2;
}

.mail-selection-action small {
    display: block;
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 400;
}

.mail-selection-divider {
    display: block;
    width: 100%;
    height: 2px;
    margin: 0.55rem 0;
    background: var(--line);
}

.mail-jump-panel {
    display: grid;
    justify-items: stretch;
    gap: 0.8rem;
    max-width: 40rem;
    margin: 0.4rem 0 0;
    text-align: left;
}

.mail-jump-panel h2 {
    margin: 0;
    font-size: 1.3rem;
    line-height: 1.2;
}

.mail-jump-options {
    display: grid;
    gap: 0.45rem;
}

.mail-jump-custom {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.45rem;
    align-items: end;
}

.mail-jump-custom input,
.mail-jump-custom button {
    min-height: 2.65rem;
}

.mail-jump-cancel {
    margin-top: 0.35rem;
}

.mail-message-toolbar {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.6rem;
    margin-bottom: 0.85rem;
}

.mail-detail-preview {
    display: grid;
    gap: 1.05rem;
}

.mail-detail-subject-card {
    padding: 0;
}

.mail-detail-subject-card h2 {
    margin: 0;
    font-size: 1.25rem;
    line-height: 1.15;
}

.mail-detail-message-card {
    display: grid;
    gap: 1.05rem;
    padding: 0;
}

.mail-detail-header {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr);
    gap: 0.55rem;
    align-items: start;
}

.mail-detail-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.7rem;
    min-width: 2.7rem;
    min-height: 2.7rem;
    border: 2px solid var(--line);
    border-radius: 50%;
    color: var(--ink);
    background: var(--soft);
    font-weight: 700;
}

.mail-detail-addresses {
    min-width: 0;
}

.mail-detail-from,
.mail-detail-to,
.mail-detail-date {
    margin: 0;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mail-detail-from {
    font-weight: 700;
}

.mail-detail-to,
.mail-detail-date {
    color: var(--muted);
    font-size: 0.9rem;
}

.mail-detail-date {
    grid-column: 2;
}

.mail-detail-status-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.8rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid var(--line);
}

.mail-meeting-request {
    padding: 0.8rem;
}

.mail-meeting-title {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.55rem;
}

.mail-meeting-title-icon,
.mail-meeting-response-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.mail-meeting-title-icon .toolbar-svg {
    width: 1.15rem;
    height: 1.15rem;
}

.mail-meeting-facts {
    display: grid;
    gap: 0.3rem;
    margin: 0 0 0.75rem;
}

.mail-meeting-facts div {
    display: grid;
    grid-template-columns: 4rem minmax(0, 1fr);
    gap: 0.45rem;
}

.mail-meeting-facts dt,
.mail-meeting-facts dd {
    margin: 0;
}

.mail-meeting-facts dt {
    font-weight: 700;
}

.mail-meeting-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.35rem;
}

.mail-meeting-actions-single {
    grid-template-columns: 1fr;
}

.mail-meeting-actions form {
    margin: 0;
}

.mail-meeting-actions button {
    gap: 0.25rem;
    min-height: 52px;
    padding: 0.45rem 0.35rem;
}

.mail-meeting-response-check .toolbar-svg {
    width: 0.9rem;
    height: 0.9rem;
}

.mail-message-type {
    margin-left: auto;
    color: var(--muted);
    font-size: 0.9rem;
    text-align: right;
}

.mail-message-meta {
    width: 100%;
    margin: 0 0 1.2rem;
    border-collapse: collapse;
}

.mail-message-meta th,
.mail-message-meta td {
    padding: 0.3rem 0.45rem 0.3rem 0;
    border: 1px solid var(--paper);
    text-align: left;
    vertical-align: top;
}

.mail-message-meta th {
    width: 8rem;
    font-weight: 700;
}

.mail-read-form {
    margin-top: 0.6rem;
}

.mail-html-frame {
    display: block;
    width: 100%;
    min-height: 42rem;
    border: 1px solid var(--line);
    background: #fff;
    overflow: hidden;
}

.mail-html-body {
    max-width: 100%;
    overflow-x: auto;
    overflow-wrap: anywhere;
}

.mail-html-body p,
.mail-html-body div,
.mail-html-body blockquote,
.mail-html-body ul,
.mail-html-body ol,
.mail-html-body table,
.mail-html-body pre {
    max-width: 100%;
}

.mail-html-body blockquote {
    margin: 1rem 0;
    padding-left: 0.8rem;
    border-left: 2px solid var(--line);
}

.mail-html-body table {
    width: 100%;
    border-collapse: collapse;
}

.mail-html-body th,
.mail-html-body td {
    padding: 0.35rem;
    border: 1px solid var(--line);
    vertical-align: top;
}

.mail-html-body img,
.mail-html-body video,
.mail-html-body iframe {
    max-width: 100%;
}

.mail-html-body img,
.mail-html-body video {
    height: auto;
}

.calculator-shell {
    display: block;
    margin-bottom: 1.5rem;
}

.calculator-form {
    width: 100%;
}

.calculator-display {
    display: block;
    min-height: 4.5rem;
    margin-bottom: 0.75rem;
    padding: 0.55rem 0.75rem;
    border: 2px solid var(--line);
    font-size: 2.2rem;
    line-height: 1.2;
    text-align: right;
    overflow-wrap: anywhere;
    background: var(--paper);
}

.calculator-expression {
    display: block;
    min-height: 2.3rem;
    margin-bottom: 0.75rem;
    padding: 0.35rem 0.55rem;
    border: 2px solid var(--line);
    font-size: 1rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
    background: var(--paper);
}

.calculator-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
}

.calculator-grid button {
    min-width: 0;
    min-height: 68px;
    padding: 0.45rem 0.2rem;
    font-size: 1.55rem;
}

.calculator-zero {
    grid-column: span 2;
}

.calculator-ledger {
    border: 2px solid var(--line);
    padding: 0.8rem;
}

.calculator-history {
    max-width: 34rem;
}

.calculator-ledger h2 {
    margin-bottom: 0.6rem;
}

.calculator-ledger ol {
    display: grid;
    gap: 0.5rem;
    margin-bottom: 0;
    padding-left: 0;
    list-style: none;
}

.calculator-ledger button {
    display: grid;
    gap: 0.15rem;
    justify-items: end;
    width: 100%;
    min-height: 64px;
    padding: 0.45rem 0.55rem;
    text-align: right;
}

.calculator-ledger button span,
.calculator-ledger button strong {
    display: block;
    max-width: 100%;
    overflow-wrap: anywhere;
}

.calculator-ledger button span {
    font-size: 0.9rem;
    color: var(--muted);
}

.calculator-ledger button strong {
    font-size: 1.15rem;
}

.weather-layout {
    display: grid;
    gap: 1rem;
}

.weather-current {
    padding: 0;
}

.weather-current-summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.8rem;
    align-items: center;
    margin-bottom: 0;
}

.weather-current-top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(8rem, 12rem);
    gap: 0.8rem;
    align-items: start;
    margin-bottom: 0.75rem;
}

.weather-condition-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    min-height: 4rem;
}

.weather-condition-icon .toolbar-svg {
    width: 3.4rem;
    height: 3.4rem;
}

.weather-temp {
    margin-bottom: 0;
    font-size: 3rem;
    line-height: 1;
}

.weather-current-condition {
    grid-column: 1 / -1;
    margin: 0;
    font-size: 1.2rem;
    font-weight: 700;
}

.weather-detail-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 0;
}

.weather-detail-list div {
    min-width: 0;
    padding-top: 0.65rem;
    border-top: 1px solid var(--line);
}

.weather-detail-list dt {
    font-weight: 700;
}

.weather-detail-list dd {
    margin: 0.25rem 0 0;
    overflow-wrap: anywhere;
}

.weather-day-chart {
    margin: 0;
    min-width: 0;
    justify-self: end;
    width: 100%;
    max-width: 12rem;
}

.weather-day-chart figcaption {
    margin-bottom: 0.2rem;
    font-weight: 700;
}

.weather-day-chart svg {
    display: block;
    width: 100%;
    min-height: 0;
    max-height: 5rem;
    border: 1px solid var(--line);
}

.weather-chart-legend {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.6rem 1.2rem;
    margin-top: 0.25rem;
    font-size: 0.75rem;
    line-height: 1.2;
}

.weather-chart-legend span {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.weather-legend-line {
    width: 1.4rem;
    border-top: 3px solid var(--line);
}

.weather-legend-wind {
    border-top-style: dashed;
}

.weather-chart-axis,
.weather-chart-now,
.weather-chart-temp,
.weather-chart-wind {
    fill: none;
    stroke: var(--line);
    stroke-width: 4;
}

.weather-chart-now {
    stroke-width: 3;
}

.weather-chart-wind {
    stroke-dasharray: 8 6;
}

html.palette-color .weather-chart-temp {
    stroke: var(--accent);
}

html.palette-color .weather-legend-temp {
    border-top-color: var(--accent);
}

html.palette-color .weather-chart-wind {
    stroke: var(--accent-alt);
}

html.palette-color .weather-legend-wind {
    border-top-color: var(--accent-alt);
}

.weather-hourly {
    margin-top: 1rem;
}

.weather-hourly h3 {
    margin-bottom: 0.4rem;
}

.weather-hourly-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 0.82rem;
}

.weather-hourly-table th,
.weather-hourly-table td {
    padding: 0.3rem 0.2rem;
    border-top: 1px solid var(--line);
    text-align: center;
    vertical-align: middle;
    overflow-wrap: anywhere;
}

.weather-hourly-table th[scope="row"] {
    width: 4.8rem;
    text-align: left;
}

.weather-row-metric {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    white-space: nowrap;
}

.weather-row-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    min-height: 1.6rem;
}

.weather-row-icon .toolbar-svg {
    width: 1.35rem;
    height: 1.35rem;
}

.weather-row-unit {
    color: var(--muted);
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1;
}

.weather-hourly-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    min-height: 2rem;
}

.weather-hourly-icon .toolbar-svg {
    width: 1.75rem;
    height: 1.75rem;
}

.weather-forecast {
    min-width: 0;
}

.weather-forecast-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
}

.weather-forecast-grid .mock-item {
    min-width: 0;
    padding: 0.65rem;
    border: 1px solid var(--line);
}

.weather-forecast-grid li:last-child .mock-item,
.weather-forecast-grid > .mock-item:last-child {
    border-bottom: 1px solid var(--line);
}

.weather-forecast-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    min-height: 2.25rem;
}

.weather-forecast-icon .toolbar-svg {
    width: 2rem;
    height: 2rem;
}

html.palette-color .mock-item strong,
html.palette-color .mail-list-subject-text,
html.palette-color .weather-temp {
    color: var(--accent);
}

html.palette-color .calculator-grid .calculator-operator {
    color: #fff;
    background: var(--accent);
    border-color: var(--accent);
}

html.palette-color .calculator-grid .calculator-equals {
    background: var(--accent-alt);
    border-color: var(--accent-alt);
}

@media (min-width: 900px) {
    html {
        font-size: 22px;
    }

    .page-shell,
    .site-footer {
        width: min(100% - 3rem, 58rem);
        max-width: 58rem;
        margin-left: 1.5rem;
        margin-right: 1.5rem;
    }

    .static-page-footer__inner {
        width: min(100% - 3rem, 58rem);
        max-width: 58rem;
    }

    .page-shell {
        padding-top: 6.25rem;
    }

    .page-shell--notification {
        padding-top: 9.7rem;
    }

    .page-shell--docked-toolbar {
        padding-top: 9.8rem;
    }

    .page-shell--notification.page-shell--docked-toolbar {
        padding-top: 13.2rem;
    }

    .kindle-toolbar__inner {
        grid-template-columns: 3.25rem 2.05rem minmax(0, 1fr) auto;
        min-height: 4.95rem;
        padding-right: 1.5rem;
        padding-left: 1.5rem;
    }

    .toolbar-library-title-left .kindle-toolbar__inner {
        width: min(100% - 3rem, 58rem);
        max-width: 58rem;
        padding-right: 1rem;
        padding-left: 1rem;
    }

    .kindle-toolbar__title {
        font-size: 1.45rem;
    }

    .kindle-toolbar__app-icon {
        width: 2.05rem;
        min-width: 2.05rem;
        min-height: 2.05rem;
    }

    .kindle-toolbar__app-icon .toolbar-svg {
        width: 1.7rem;
        height: 1.7rem;
    }

    .app-notification {
        top: 4.95rem;
        min-height: 3.35rem;
        padding-right: 1.5rem;
        padding-left: 1.5rem;
    }

    .view-docked-toolbar {
        top: 4.95rem;
    }

    .task-toolbar {
        padding-right: 1.5rem;
        padding-left: 1.5rem;
    }

    .view-docked-toolbar--after-notification {
        top: 8.3rem;
    }

    .mail-list-toolbar {
        min-height: 3.65rem;
        padding-right: 1.5rem;
        padding-left: 1.5rem;
    }

    .mail-detail-header {
        grid-template-columns: 3rem minmax(0, 1fr) auto;
    }

    .mail-detail-date {
        grid-column: 3;
        justify-self: end;
        max-width: 14rem;
    }

    .kindle-toolbar .kindle-toolbar__app-icon.launcher-icon {
        width: 2.05rem;
        min-width: 2.05rem;
        min-height: 2.05rem;
    }

    .kindle-toolbar .kindle-toolbar__app-icon.launcher-icon .toolbar-svg {
        width: 1.6rem;
        height: 1.6rem;
    }

    .search-form {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: end;
    }

    .search-form label {
        grid-column: 1 / -1;
    }

    .search-form button {
        width: auto;
        min-width: 8rem;
    }

    .action-row,
    .pagination {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .settings-menu {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .settings-action-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .inline-action-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .license-meta-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .launcher-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1rem;
    }

    .launcher-link {
        min-height: 7rem;
    }

    .favorites-launcher-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1rem;
    }

    .favorite-launcher-tile {
        min-height: 8rem;
    }

    .favorites-search-form {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: end;
    }

    .favorites-search-form .form-field {
        margin: 0;
    }

    .launcher-name {
        font-size: 1.1rem;
    }

    button {
        width: auto;
    }

    .detail-list {
        grid-template-columns: 12rem minmax(0, 1fr);
        column-gap: 1.2rem;
    }

    .detail-list dd {
        margin-bottom: 0.65rem;
    }

    .weather-current-top {
        grid-template-columns: minmax(0, 20rem) minmax(11rem, 14rem);
        gap: 1.2rem;
    }

    .weather-forecast-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (color) {
    html.palette-color.theme-light {
        --paper: #fffefa;
        --line: #101010;
        --muted: #333;
        --soft: #f2f2f2;
        --accent: #0057d9;
        --accent-alt: #c2410c;
        --danger: #b00020;
        --danger-contrast: #fff;
        --brand-header: #111827;
        --brand-header-ink: #f9fafb;
        --brand-header-line: #111827;
        --icon-mail: #0057d9;
        --icon-calendar: #c2410c;
        --icon-reminders: #b00020;
        --icon-contacts: #334155;
        --icon-files: #0f766e;
        --icon-weather: #00798c;
        --icon-calculator: #1f7a1f;
        --icon-feedback: #6d28d9;
        --icon-favorites: #7c3aed;
        --icon-settings: #5b21b6;
        --weather-icon-clear: #b45309;
        --weather-icon-cloudy: #475569;
        --weather-icon-rain: #0057d9;
        --weather-icon-generic: #00798c;
    }

    html.palette-color.theme-dark {
        --paper: #050809;
        --line: #e8f4f1;
        --muted: #cbd8d5;
        --soft: #101716;
        --accent: #2f80ff;
        --accent-alt: #f97316;
        --danger: #ff3b4f;
        --danger-contrast: #000;
        --brand-header: #111827;
        --brand-header-ink: #f9fafb;
        --brand-header-line: #f9fafb;
        --icon-mail: #4d94ff;
        --icon-calendar: #ff8a1f;
        --icon-reminders: #ff3b4f;
        --icon-contacts: #dbe4ef;
        --icon-files: #2dd4bf;
        --icon-weather: #00b7c7;
        --icon-calculator: #38a838;
        --icon-feedback: #a78bfa;
        --icon-favorites: #c4b5fd;
        --icon-settings: #8b5cf6;
        --weather-icon-clear: #fbbf24;
        --weather-icon-cloudy: #dbe4ef;
        --weather-icon-rain: #5aa2ff;
        --weather-icon-generic: #00b7c7;
    }

    html.palette-color .weather-icon-weather-clear {
        color: var(--weather-icon-clear);
    }

    html.palette-color .weather-icon-weather-cloudy {
        color: var(--weather-icon-cloudy);
    }

    html.palette-color .weather-icon-weather-rain {
        color: var(--weather-icon-rain);
    }

    html.palette-color .weather-icon-weather {
        color: var(--weather-icon-generic);
    }

    html.palette-color .launcher-icon-mail {
        color: var(--icon-mail);
    }

    html.palette-color .launcher-icon-calendar {
        color: var(--icon-calendar);
    }

    html.palette-color .launcher-icon-reminders {
        color: var(--icon-reminders);
    }

    html.palette-color .launcher-icon-contacts {
        color: var(--icon-contacts);
    }

    html.palette-color .launcher-icon-folder {
        color: var(--icon-files);
    }

    html.palette-color .launcher-icon-weather {
        color: var(--icon-weather);
    }

    html.palette-color .launcher-icon-calculator {
        color: var(--icon-calculator);
    }

    html.palette-color .launcher-icon-feedback {
        color: var(--icon-feedback);
    }

    html.palette-color .launcher-icon-settings {
        color: var(--icon-settings);
    }

    html.palette-color .launcher-link .launcher-icon,
    html.palette-color .app-heading .launcher-icon {
        color: currentColor;
    }

    html.palette-color .kindle-toolbar .launcher-icon {
        color: currentColor;
    }

    html.palette-color .kindle-toolbar {
        color: var(--ink);
    }

    html.palette-color .kindle-toolbar .toolbar-icon-button,
    html.palette-color .kindle-toolbar .toolbar-action {
        color: inherit;
        background: transparent;
        border-color: currentColor;
    }

    html.palette-color .app-notification-info {
        color: #fff;
        background: var(--accent);
        border-bottom-color: var(--accent);
    }

    html.palette-color .app-notification-success {
        color: #fff;
        background: #1f7a1f;
        border-bottom-color: #1f7a1f;
    }

    html.palette-color .app-notification-error {
        color: var(--danger-contrast);
        background: var(--danger);
        border-bottom-color: var(--danger);
    }

    html.palette-color .mail-list-tool-button--active {
        color: #fff;
        background: var(--accent);
        border-color: var(--accent);
    }

    html.palette-color .mail-selection-action {
        color: var(--ink);
        border-color: var(--line);
    }

    html.palette-color .notice-warning {
        border-color: var(--danger);
    }

    html.palette-color .notice-warning h2,
    html.palette-color .warning-label {
        color: var(--danger);
    }

    html.palette-color .danger-action {
        color: var(--danger-contrast);
        background: var(--danger);
        border-color: var(--danger);
    }

    html.palette-color.theme-light .launcher-tile-mail,
    html.palette-color.theme-light .app-heading-mail,
    html.palette-color.theme-light .toolbar-app-mail {
        color: #fff;
        background: #0057d9;
        border-color: #002b6b;
    }

    html.palette-color.theme-light .launcher-tile-calendar,
    html.palette-color.theme-light .app-heading-calendar,
    html.palette-color.theme-light .toolbar-app-calendar {
        color: #fff;
        background: #c2410c;
        border-color: #5f1d04;
    }

    html.palette-color.theme-light .launcher-tile-reminders,
    html.palette-color.theme-light .app-heading-reminders,
    html.palette-color.theme-light .toolbar-app-reminders {
        color: #fff;
        background: #b00020;
        border-color: #53000f;
    }

    html.palette-color.theme-light .launcher-tile-contacts,
    html.palette-color.theme-light .app-heading-contacts,
    html.palette-color.theme-light .toolbar-app-contacts {
        color: #fff;
        background: #334155;
        border-color: #111827;
    }

    html.palette-color.theme-light .launcher-tile-folder,
    html.palette-color.theme-light .app-heading-folder,
    html.palette-color.theme-light .toolbar-app-files {
        color: #fff;
        background: #0f766e;
        border-color: #134e4a;
    }

    html.palette-color.theme-light .launcher-tile-weather,
    html.palette-color.theme-light .app-heading-weather,
    html.palette-color.theme-light .toolbar-app-weather {
        color: #fff;
        background: #00798c;
        border-color: #003b45;
    }

    html.palette-color.theme-light .launcher-tile-calculator,
    html.palette-color.theme-light .app-heading-calculator,
    html.palette-color.theme-light .toolbar-app-calculator {
        color: #fff;
        background: #1f7a1f;
        border-color: #0b3d0b;
    }

    html.palette-color.theme-light .launcher-tile-feedback,
    html.palette-color.theme-light .app-heading-feedback,
    html.palette-color.theme-light .toolbar-app-feedback {
        color: #fff;
        background: #6d28d9;
        border-color: #37106f;
    }

    html.palette-color.theme-light .launcher-tile-favorites,
    html.palette-color.theme-light .app-heading-favorites,
    html.palette-color.theme-light .toolbar-app-favorites {
        color: #fff;
        background: #7c3aed;
        border-color: #3b0764;
    }

    html.palette-color.theme-light .launcher-tile-settings,
    html.palette-color.theme-light .app-heading-settings,
    html.palette-color.theme-light .toolbar-app-settings,
    html.palette-color.theme-light .toolbar-app-home,
    html.palette-color.theme-light .toolbar-app-library {
        color: #fff;
        background: #5b21b6;
        border-color: #2e1065;
    }

    html.palette-color.theme-dark .launcher-tile-mail,
    html.palette-color.theme-dark .app-heading-mail,
    html.palette-color.theme-dark .toolbar-app-mail {
        color: #fff;
        background: #0046c7;
        border-color: #78a7ff;
    }

    html.palette-color.theme-dark .launcher-tile-calendar,
    html.palette-color.theme-dark .app-heading-calendar,
    html.palette-color.theme-dark .toolbar-app-calendar {
        color: #fff;
        background: #b7350b;
        border-color: #ff9b54;
    }

    html.palette-color.theme-dark .launcher-tile-reminders,
    html.palette-color.theme-dark .app-heading-reminders,
    html.palette-color.theme-dark .toolbar-app-reminders {
        color: #fff;
        background: #ad001f;
        border-color: #ff9aaa;
    }

    html.palette-color.theme-dark .launcher-tile-contacts,
    html.palette-color.theme-dark .app-heading-contacts,
    html.palette-color.theme-dark .toolbar-app-contacts {
        color: #fff;
        background: #273449;
        border-color: #dbe4ef;
    }

    html.palette-color.theme-dark .launcher-tile-folder,
    html.palette-color.theme-dark .app-heading-folder,
    html.palette-color.theme-dark .toolbar-app-files {
        color: #fff;
        background: #0f766e;
        border-color: #99f6e4;
    }

    html.palette-color.theme-dark .launcher-tile-weather,
    html.palette-color.theme-dark .app-heading-weather,
    html.palette-color.theme-dark .toolbar-app-weather {
        color: #fff;
        background: #00768a;
        border-color: #71ecff;
    }

    html.palette-color.theme-dark .launcher-tile-calculator,
    html.palette-color.theme-dark .app-heading-calculator,
    html.palette-color.theme-dark .toolbar-app-calculator {
        color: #fff;
        background: #1d741d;
        border-color: #9df29d;
    }

    html.palette-color.theme-dark .launcher-tile-feedback,
    html.palette-color.theme-dark .app-heading-feedback,
    html.palette-color.theme-dark .toolbar-app-feedback {
        color: #fff;
        background: #5b21b6;
        border-color: #ddd6fe;
    }

    html.palette-color.theme-dark .launcher-tile-favorites,
    html.palette-color.theme-dark .app-heading-favorites,
    html.palette-color.theme-dark .toolbar-app-favorites {
        color: #fff;
        background: #5b21b6;
        border-color: #ddd6fe;
    }

    html.palette-color.theme-dark .launcher-tile-settings,
    html.palette-color.theme-dark .app-heading-settings,
    html.palette-color.theme-dark .toolbar-app-settings,
    html.palette-color.theme-dark .toolbar-app-home,
    html.palette-color.theme-dark .toolbar-app-library {
        color: #fff;
        background: #5b21b6;
        border-color: #c4b5fd;
    }

    html.palette-color.theme-light .launcher-link.launcher-link-locked,
    html.palette-color.theme-dark .launcher-link.launcher-link-locked {
        color: var(--locked-ink);
        background: var(--locked-paper);
        border-color: var(--locked-ink);
    }

    html.palette-color .kindle-toolbar.toolbar-app-library,
    html.palette-color .kindle-toolbar.toolbar-app-settings {
        color: var(--brand-header-ink);
        background: var(--brand-header);
        border-color: var(--brand-header-line);
    }
}

html.action-borders-hidden .kindle-toolbar .toolbar-icon-button,
html.action-borders-hidden .kindle-toolbar .toolbar-action {
    border-color: transparent !important;
}
