Files
miem_workers/app/static/admin.css
T
codex 508aae4f8a
CI / Fingerprint diagnostics (production deployment temporarily disabled) (pull_request) Canceled after 0s
CI / test (pull_request) Canceled after 10m43s
feat: add council user role and restrict crawl runs
2026-11-12 09:35:26 +00:00

1087 lines
26 KiB
CSS

.admin {
--admin-gutter: 32px;
margin: 0;
min-height: 100vh;
display: flex;
flex-direction: column;
color: #1f2937;
background: #f6f7f9;
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.admin__skip-link {
position: absolute;
top: 8px;
left: -999px;
z-index: 100;
padding: 8px 12px;
color: #ffffff;
background: #0f766e;
}
.admin__skip-link:focus-visible {
left: 8px;
}
.admin__header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
padding: 18px var(--admin-gutter);
background: #ffffff;
border-bottom: 1px solid #d9dee7;
flex-wrap: wrap;
}
.admin__brand {
margin: 0;
font-size: 20px;
}
.admin__brand-link {
color: inherit;
text-decoration: none;
}
.admin__nav {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 14px;
}
.admin__link {
color: #0f766e;
text-decoration: none;
font-weight: 700;
}
.admin__link[aria-current="page"] {
text-decoration: underline;
text-underline-offset: 4px;
}
:is(a, button, input, select, summary):focus-visible {
outline: 3px solid #0f766e;
outline-offset: 2px;
}
:is(.directory__filters, .council__search) :is(input, select):focus {
outline: 2px solid #0f766e;
outline-offset: 0;
}
.admin__main {
flex: 1;
margin: 28px var(--admin-gutter);
}
.admin__footer {
padding: 20px 32px;
color: #6b7280;
border-top: 1px solid #d9dee7;
background: #ffffff;
}
.admin__grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
gap: 16px;
}
.metric {
display: block;
padding: 18px;
background: #ffffff;
border: 1px solid #d9dee7;
border-radius: 8px;
}
.metric--link {
color: inherit;
text-decoration: none;
}
.metric--link:hover {
border-color: #0f766e;
}
.metric__label {
display: block;
color: #6b7280;
font-size: 13px;
}
.metric__value {
display: block;
margin-top: 8px;
font-size: 28px;
font-weight: 700;
}
.panel {
margin-top: 22px;
padding: 20px;
background: #ffffff;
border: 1px solid #d9dee7;
border-radius: 8px;
}
.panel__title {
margin: 0 0 16px;
font-size: 18px;
}
.table {
width: 100%;
border-collapse: collapse;
}
.table__row:hover {
background: #f0fdfa;
}
.table__cell,
.table__head {
padding: 10px 8px;
border-bottom: 1px solid #e5e7eb;
text-align: left;
vertical-align: top;
}
.badge {
display: inline-block;
padding: 3px 8px;
border-radius: 999px;
background: #e0f2fe;
color: #075985;
font-size: 12px;
}
.badge--dismissed {
background: #fee2e2;
color: #991b1b;
}
.badge--verification {
background: #fef3c7;
color: #92400e;
}
.form {
display: grid;
gap: 12px;
max-width: 380px;
}
.form__label {
display: grid;
gap: 6px;
font-weight: 700;
}
.form__input,
.form__select {
padding: 10px 12px;
border: 1px solid #cbd5e1;
border-radius: 6px;
}
.button {
box-sizing: border-box;
min-height: 40px;
padding: 10px 14px;
border: 0;
border-radius: 6px;
color: #ffffff;
background: #0f766e;
font-weight: 700;
cursor: pointer;
}
.button--ghost {
color: #0f766e;
background: transparent;
}
.button--compact {
padding: 8px 12px;
}
.button:hover {
filter: brightness(0.9);
}
.button:active {
filter: brightness(0.8);
}
.button:disabled {
cursor: wait;
opacity: 0.65;
}
.code {
overflow-x: auto;
padding: 14px;
background: #111827;
color: #f9fafb;
border-radius: 8px;
white-space: pre-wrap;
}
.employee-card {
display: grid;
gap: 18px;
}
.employee-card__header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 18px;
padding: 22px;
background: #ffffff;
border: 1px solid #d9dee7;
border-radius: 8px;
}
.employee-card__identity {
display: grid;
gap: 10px;
}
.employee-card__actions {
display: grid;
justify-items: end;
gap: 10px;
}
.employee-card__title {
margin: 0;
font-size: 24px;
}
.employee-card__notice {
margin: 0;
padding: 12px 14px;
border-radius: 8px;
font-weight: 700;
}
.employee-card__notice--success {
color: #065f46;
background: #d1fae5;
}
.employee-card__notice--error {
color: #991b1b;
background: #fee2e2;
}
.employee-card__section {
padding: 20px;
background: #ffffff;
border: 1px solid #d9dee7;
border-radius: 8px;
}
.employee-card__news-toggle {
min-height: 44px;
align-content: center;
cursor: pointer;
}
.employee-card__news-toggle .employee-section__title {
display: inline;
}
.employee-card__section--news[open] .employee-card__news-toggle {
margin-bottom: 12px;
}
.employee-card__meta {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 14px;
margin: 0;
}
.employee-card__meta-item {
min-width: 0;
}
.employee-card__meta-item--wide {
grid-column: 1 / -1;
}
.employee-card__meta-label {
margin-bottom: 5px;
color: #6b7280;
font-size: 12px;
font-weight: 700;
text-transform: uppercase;
}
.employee-card__meta-value {
margin: 0;
color: #1f2937;
line-height: 1.45;
}
.employee-card__list {
display: grid;
gap: 8px;
margin: 0;
padding-left: 18px;
}
.employee-card__list-item {
line-height: 1.45;
}
.employee-card__sections {
display: grid;
gap: 14px;
}
.employee-section {
padding: 16px;
background: #f9fafb;
border: 1px solid #e5e7eb;
border-radius: 8px;
}
.employee-section__header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 12px;
margin-bottom: 12px;
}
.employee-section__title {
margin: 0;
font-size: 17px;
}
.employee-section__type {
flex: 0 0 auto;
padding: 3px 8px;
color: #475569;
background: #e2e8f0;
border-radius: 999px;
font-size: 12px;
}
.employee-section__note {
margin: 0 0 10px;
color: #4b5563;
font-weight: 700;
}
.employee-section__text {
margin: 0 0 10px;
line-height: 1.55;
}
.employee-section__meta {
display: flex;
flex-wrap: wrap;
gap: 8px 12px;
color: #4b5563;
font-size: 13px;
}
.employee-section__meta-item {
line-height: 1.4;
}
.employee-section__table-wrap {
overflow-x: auto;
}
.employee-section__table {
width: 100%;
border-collapse: collapse;
background: #ffffff;
}
.employee-section__head,
.employee-section__cell {
padding: 10px;
border-bottom: 1px solid #e5e7eb;
text-align: left;
vertical-align: top;
}
.employee-section__head {
color: #374151;
background: #f3f4f6;
font-size: 13px;
}
.employee-section__links {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 12px;
}
.employee-section__link {
padding: 5px 9px;
color: #0f766e;
background: #ccfbf1;
border-radius: 999px;
font-size: 12px;
font-weight: 700;
text-decoration: none;
}
.stats-strip {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 14px;
margin-top: 16px;
}
.stats-strip__item {
display: block;
padding: 14px 16px;
background: #ffffff;
border: 1px solid #d9dee7;
border-radius: 8px;
}
.stats-strip__item--link {
color: inherit;
text-decoration: none;
}
.stats-strip__item--link:hover {
border-color: #0f766e;
}
.stats-strip__label {
display: block;
color: #6b7280;
font-size: 12px;
text-transform: uppercase;
}
.stats-strip__value {
display: block;
margin-top: 6px;
color: #1f2937;
font-weight: 700;
}
.progress-panel {
display: grid;
gap: 12px;
}
.progress-panel__header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
}
.progress-panel__actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.button--secondary {
color: #0f766e;
background: #ccfbf1;
}
.progress-panel__body {
display: grid;
gap: 10px;
}
.progress-panel__meta {
display: flex;
flex-wrap: wrap;
gap: 12px;
color: #4b5563;
font-size: 14px;
}
.progress-panel__percent {
color: #0f766e;
font-weight: 700;
}
.progress-panel__empty {
margin: 0;
color: #6b7280;
}
.progress-panel__error {
margin: 0;
color: #991b1b;
font-weight: 700;
}
.progress-bar {
height: 12px;
overflow: hidden;
background: #e5e7eb;
border-radius: 999px;
}
.progress-bar__fill {
height: 100%;
width: 0;
background: #0f766e;
}
.directory {
display: grid;
gap: 18px;
}
.directory__header {
display: flex;
align-items: end;
justify-content: space-between;
gap: 16px;
}
.directory__title {
margin: 0;
font-size: 24px;
}
.directory__summary {
margin: 6px 0 0;
color: #6b7280;
}
.directory__filter-panel > summary {
width: fit-content;
min-height: 44px;
align-content: center;
cursor: pointer;
font-weight: 600;
}
.directory__filters {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 10px;
padding: 16px;
background: #ffffff;
border: 1px solid #d9dee7;
border-radius: 8px;
}
.directory__filter-group {
display: grid;
grid-template-columns: 1fr;
align-content: start;
gap: 8px;
min-width: 0;
margin: 0;
padding: 0;
border: 0;
}
.directory__filter-group--search {
grid-template-columns: 1fr;
}
.directory__filter-legend {
grid-column: 1 / -1;
margin-bottom: 2px;
color: #374151;
font-size: 12px;
font-weight: 700;
}
.directory__field {
display: grid;
gap: 5px;
min-width: 0;
color: #4b5563;
font-size: 12px;
font-weight: 700;
}
.directory__filter-hint {
color: #4b5563;
}
.directory__input {
box-sizing: border-box;
width: 100%;
font: inherit;
font-size: 16px;
font-weight: 400;
min-width: 0;
padding: 10px 12px;
border: 1px solid #cbd5e1;
border-radius: 6px;
}
.directory__checkbox {
display: flex;
align-items: center;
gap: 8px;
min-height: 44px;
font-size: 14px;
cursor: pointer;
}
.directory__filter-actions {
display: flex;
align-items: end;
flex-wrap: wrap;
gap: 8px;
grid-column: 1 / -1;
}
.directory__table-wrap {
overflow-x: auto;
background: #ffffff;
border: 1px solid #d9dee7;
border-radius: 8px;
}
.directory__pagination {
display: flex;
align-items: center;
justify-content: center;
gap: 16px;
}
.directory__page {
color: #4b5563;
font-weight: 700;
}
.directory__help {
color: #4b5563;
line-height: 1.5;
}
.directory__help summary {
cursor: pointer;
}
.directory-table {
width: 100%;
min-width: 640px;
border-collapse: collapse;
}
.directory-table__head {
padding: 12px 10px;
color: #374151;
background: #f9fafb;
border-bottom: 1px solid #e5e7eb;
font-size: 13px;
text-align: left;
white-space: nowrap;
}
.directory-table__cell {
overflow-wrap: anywhere;
max-width: 280px;
padding: 12px 10px;
border-bottom: 1px solid #e5e7eb;
vertical-align: top;
}
.directory-table .badge {
white-space: nowrap;
}
.directory-table__row {
cursor: default;
}
.directory-table__row:hover {
background: #f0fdfa;
}
.directory-table__empty {
padding: 28px;
color: #6b7280;
text-align: center;
}
.directory-table__empty span,
.directory-table__empty a {
display: block;
margin-top: 8px;
}
.directory-table__cell--hidden,
.directory-table__head--hidden {
display: none;
}
.columns-modal {
width: min(620px, calc(100% - 40px));
max-height: min(720px, calc(100vh - 40px));
margin: auto;
padding: 0;
border: 0;
background: transparent;
}
.columns-modal::backdrop {
background: rgba(17, 24, 39, 0.54);
}
.columns-modal__panel {
position: relative;
max-height: min(720px, calc(100vh - 40px));
overflow: auto;
padding: 20px;
background: #ffffff;
border-radius: 8px;
box-shadow: 0 24px 80px rgba(15, 23, 42, 0.22);
}
.columns-modal__header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.columns-modal__title {
margin: 0;
font-size: 18px;
}
.columns-modal__grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
gap: 10px;
margin-top: 18px;
}
.columns-modal__option {
display: flex;
align-items: center;
gap: 8px;
padding: 10px;
background: #f9fafb;
border: 1px solid #e5e7eb;
border-radius: 6px;
}
.columns-modal__checkbox {
width: 16px;
height: 16px;
}
.columns-modal__presets {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 8px;
margin-top: 18px;
padding: 0;
border: 0;
}
.columns-modal__preset-label {
color: #4b5563;
font-size: 13px;
font-weight: 700;
}
@media (max-width: 1100px) {
.directory__filters {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
@media (max-width: 920px) {
.directory__filters {
grid-template-columns: 1fr 1fr;
}
.directory__filter-group--search,
.directory__filter-actions {
grid-column: 1 / -1;
}
.progress-panel__header,
.directory__header,
.employee-card__header {
align-items: stretch;
flex-direction: column;
}
}
@media (max-width: 620px) {
.admin {
--admin-gutter: 16px;
}
.directory-table [data-column="full_name"] {
position: sticky;
left: 0;
z-index: 1;
min-width: 130px;
max-width: 160px;
background: #ffffff;
}
.admin__header {
align-items: flex-start;
padding-block: 16px;
}
.admin__nav {
width: 100%;
}
.admin__main {
margin-block: 20px;
}
.directory__filters {
grid-template-columns: 1fr;
}
.directory__filter-group,
.directory__filter-group--search,
.directory__filter-actions {
grid-column: 1;
}
.directory__field {
font-size: 13px;
}
}
.council {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 24px;
color: #25313a;
}
.council__hero {
padding: clamp(24px, 4vw, 48px);
color: #f9f6f0;
background: #263640;
border-radius: 16px;
}
.council__title { margin: 0; font-family: Georgia, serif; font-size: clamp(29px, 4vw, 48px); line-height: 1.12; letter-spacing: -0.025em; }
.council__intro { margin: 16px 0 0; color: #e3e8e5; line-height: 1.55; }
.council__total { margin: 0; min-width: 160px; color: #e3e8e5; font-size: 14px; line-height: 1.4; }
.council__total strong { display: block; color: #f6d49b; font-size: 42px; font-variant-numeric: tabular-nums; line-height: 1; }
.council__criteria {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
padding-block: 6px 22px;
border-bottom: 1px solid #cdd4d5;
}
.council__criteria p { display: grid; align-content: start; gap: 5px; margin: 0; }
.council__criteria strong { font-size: 18px; font-variant-numeric: tabular-nums; }
.council__criteria span { color: #4c5b64; font-size: 13px; }
.council__notice { padding: 16px 20px; background: #f6efe2; border-radius: 10px; line-height: 1.55; }
.council__notice strong { color: #593b20; }
.council__list-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.council__list-heading h3 { margin: 0; font-family: Georgia, serif; font-size: 27px; }
.council__list-heading p { margin: 0; color: #4c5b64; font-size: 14px; }
.council__list { display: grid; gap: 10px; }
.council__candidate { overflow: hidden; background: #fff; border: 1px solid #d6dddc; border-radius: 12px; }
.council__candidate[open] { border-color: #8fa8a5; }
.council__candidate-summary { display: grid; grid-template-columns: minmax(0, 1fr) auto 18px; align-items: center; gap: 20px; min-height: 76px; padding: 14px 20px; cursor: pointer; list-style: none; }
.council__candidate-summary::-webkit-details-marker { display: none; }
.council__candidate-summary:hover { background: #f3f7f5; }
.council__candidate-identity { display: grid; gap: 4px; min-width: 0; }
.council__candidate-identity strong { font-size: 17px; overflow-wrap: anywhere; }
.council__candidate-identity small, .council__candidate-count small { color: #4c5b64; font-size: 12px; }
.council__candidate-count { display: grid; gap: 2px; text-align: end; }
.council__candidate-count strong { font-size: 25px; font-variant-numeric: tabular-nums; line-height: 1; }
.council__candidate-cue { width: 9px; height: 9px; border-inline-end: 2px solid #345e59; border-bottom: 2px solid #345e59; transform: rotate(45deg); }
.council__candidate[open] .council__candidate-cue { transform: rotate(225deg); }
.council__candidate-body { padding: 20px; border-top: 1px solid #e4e9e8; }
.council__articles { display: grid; gap: 0; margin: 16px 0 0; padding-inline-start: 22px; }
.council__article { padding: 14px 4px; border-top: 1px solid #e7ebea; }
.council__article::marker { color: #5e746f; font-variant-numeric: tabular-nums; }
.council__article-heading { display: flex; justify-content: space-between; gap: 16px; line-height: 1.45; }
.council__article-heading strong { font-weight: 600; overflow-wrap: anywhere; }
.council__article-heading span { color: #4c5b64; font-variant-numeric: tabular-nums; }
.council__article-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 12px; margin-top: 9px; color: #4c5b64; font-size: 12px; }
.council__source { padding: 4px 8px; color: #244b46; background: #e7f0eb; border-radius: 4px; font-weight: 700; overflow-wrap: anywhere; }
.council__message { padding: 28px; background: #fff; border-radius: 12px; }
.council__message h3, .council__message h4 { margin: 0 0 8px; font-size: 19px; }
.council__message p { margin: 0; color: #4c5b64; line-height: 1.5; }
@media (max-width: 700px) {
.council__list-heading { align-items: start; flex-direction: column; }
.council__total strong { display: inline; margin-inline-end: 8px; font-size: 28px; }
.council__criteria { grid-template-columns: 1fr; gap: 14px; }
.council__candidate-summary { grid-template-columns: minmax(0, 1fr) auto 14px; gap: 10px; padding: 14px; }
.council__candidate-summary .council__candidate-identity { grid-column: 1; }
.council__candidate-cue { grid-column: 2; grid-row: 1; }
.council__candidate-summary { grid-template-columns: minmax(0, 1fr) 14px; }
.council__counts { grid-column: 1 / -1; justify-content: space-between; }
.council__candidate-count { text-align: start; }
.council__candidate-body { padding: 14px; }
}
.council__search { display: flex; align-items: end; flex-wrap: wrap; gap: 12px; }
.council__search .directory__field { flex: 1 1 240px; max-width: 520px; }
.council__notice summary { cursor: pointer; padding-block: 6px; }
.council__notice p { margin-bottom: 0; }
.council__counts { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(8px, 1.5vw, 20px); }
@media (max-width: 700px) {
.council__counts { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 14px; }
}
.council__candidate-count small { max-width: 105px; line-height: 1.4; }
.council__hint { margin: 0; color: #4c5b64; font-size: 14px; line-height: 1.5; }
.council__candidate-body .council__hint { margin-top: 12px; }
.council__evidence { display: flex; flex-wrap: wrap; gap: 4px 20px; padding-inline-start: 18px; margin: 10px 0 0; color: #4c5b64; font-size: 13px; line-height: 1.5; }
.council__article-heading span { flex-shrink: 0; }
.council ::selection { background: #ccfbf1; color: #25313a; }
.council input { caret-color: #0f766e; }
.council a { text-underline-offset: 3px; }
.council__article { overflow-wrap: anywhere; }
@media (max-width: 400px) {
.council__title { font-size: clamp(23px, 7vw, 29px); overflow-wrap: anywhere; }
.council__article-heading { flex-direction: column; gap: 4px; }
}
.council__article[data-council-article] { position: relative; padding-inline-end: 60px; cursor: pointer; }
.council__article[data-council-article]:hover { background: #f3f7f5; }
.council__article--active { background: #e7f0eb; }
.council__article[data-council-article]:focus-visible { outline: 3px solid #0f766e; outline-offset: 2px; }
.council__edit { position: absolute; inset-inline-end: 4px; top: 12px; min-width: 44px; min-height: 44px; visibility: hidden; display: inline-flex; align-items: center; justify-content: center; }
.council__article--active > .council__edit,
.council__article:focus-within > .council__edit { visibility: visible; }
.council__articles--editor { padding: 20px 20px 20px 42px; background: #fff; border: 1px solid #d6dddc; border-radius: 12px; }
.council__articles--editor .council__hint { margin-block: 8px; }
.council-editor { display: grid; gap: 16px; margin-top: 20px; }
.council-editor .directory__field { min-width: 0; }
.council-editor textarea { resize: vertical; min-height: 90px; font: inherit; }
.council-editor__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.council-editor__error { margin: 0; color: #991b1b; line-height: 1.5; }
@media (max-width: 600px) {
.council__articles--editor { padding-inline: 28px 12px; }
.council-editor .directory__input { font-size: 16px; }
}
.council-editor__specialties { min-width: 0; }
.council-editor__specialties summary { cursor: pointer; min-height: 44px; align-content: center; }
.council-editor__specialties fieldset { min-width: 0; margin: 0; padding: 12px; border: 1px solid #d6dddc; border-radius: 8px; }
.council-editor__specialties .columns-modal__grid { grid-template-columns: 1fr; margin-block: 12px; }
.council__criteria-list { line-height: 1.55; }
.council__warning { display: inline-block; vertical-align: middle; }
.council__warning-button { display: inline-flex; justify-content: center; align-items: center; min-width: 40px; min-height: 40px; padding: 0; border: 0; border-radius: 4px; color: #991b1b; background: transparent; cursor: pointer; vertical-align: middle; }
.council__warning-button:hover { background: #fee2e2; }
.council__tooltip { position: fixed; z-index: 30; width: min(360px, calc(100vw - 24px)); padding: 12px; box-sizing: border-box; border: 1px solid #d6dddc; border-radius: 8px; color: #1f2937; background: #fff; box-shadow: 0 6px 20px rgba(15, 23, 42, .18); font: 14px/1.5 system-ui, sans-serif; max-height: min(360px, calc(100vh - 24px)); overflow: auto; text-align: start; overflow-wrap: anywhere; }
.council__tooltip[hidden] { display: none; }
.council__load-status--done { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 600px) { .council__warning-button { min-width: 44px; min-height: 44px; } }
.users__table-wrap { overflow-x: auto; margin-block: 20px; }
.users__table-wrap .table { min-width: 720px; }
.users__table-wrap .table__cell { vertical-align: top; overflow-wrap: anywhere; max-width: 420px; }
.users__controls { display: grid; gap: 8px; min-width: 160px; }
.users__controls label { display: grid; gap: 4px; }
.users__create { margin-block: 24px; }
.users__create summary { cursor: pointer; padding-block: 10px; font-weight: 600; }
.users__create-form, .users__password-form { max-width: 520px; }
.users__hint { color: #4c5b64; font-size: 14px; line-height: 1.5; }
.users__error { color: #991b1b; line-height: 1.5; }
.users__temporary { padding: 16px; background: #e7f0eb; border: 1px solid #8fa8a5; border-radius: 8px; }
.users__temporary .form__input { max-width: 240px; font-family: monospace; font-size: 20px; }
.users__account-meta { display: flex; gap: 20px; flex-wrap: wrap; }
.users__account-meta dt { color: #4c5b64; font-size: 14px; }
.users__account-meta dd { margin: 4px 0 0; }
.users__change { margin-top: 6px; }
@media (max-width: 600px) { .users .form__input { font-size: 16px; } }
.users__history-table .table__cell:nth-child(2) { min-width: 100px; white-space: nowrap; }
.guide {
margin-block: 16px;
padding: clamp(12px, 2vw, 20px);
border: 1px solid #99d5ce;
border-radius: 12px;
background: #f0fdfa;
color: #164e49;
scroll-margin-block: 16px;
}
.guide__header {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 12px 20px;
}
.guide__progress { margin: 0 0 4px; color: #35615b; font-size: 13px; font-variant-numeric: tabular-nums; }
.guide__heading { margin: 0; font-size: 18px; }
.guide--page .guide__heading { margin-block: 20px 12px; }
.guide__heading:focus-visible { outline: 2px solid #0f766e; outline-offset: 4px; border-radius: 2px; }
.guide__intro { max-width: 66ch; margin: 8px 0 0; line-height: 1.5; }
.guide__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.guide__actions .button { min-height: 44px; }
.guide__field { display: grid; justify-items: start; min-width: 0; }
.guide__tip {
position: relative;
display: block;
box-sizing: border-box;
min-width: 0;
max-width: 44ch;
margin-block: 7px 2px;
padding: 7px 10px;
border-radius: 8px;
background: #e0f5f1;
color: #164e49;
font-size: 13px;
font-weight: 500;
line-height: 1.4;
text-align: start;
overflow-wrap: anywhere;
}
.guide__tip::before {
position: absolute;
inset-block-start: -4px;
inset-inline-start: 13px;
width: 8px;
height: 8px;
background: inherit;
content: "";
transform: rotate(45deg);
}
.council__candidate-count .guide__tip { padding-inline: 6px; }
.council__search:has(.guide__tip) > .directory__field { align-self: start; }
@media (min-width: 701px) {
.council__candidate-summary:has(.guide__tip) {
grid-template-columns: minmax(0, 1fr) minmax(0, 3fr) 18px;
}
}
@media (max-width: 420px) {
.council__counts:has(.guide__tip) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.directory__checkbox:has(.guide__tip) { flex-wrap: wrap; }
.directory__checkbox .guide__tip { flex-basis: 100%; }
.guide__fields { margin-block: 16px; }
.guide__fields dt { margin-block-start: 14px; font-weight: 600; }
.guide__fields dd { margin: 4px 0 0; overflow-wrap: anywhere; }
.guide--page { max-width: 75ch; }
.guide--page .guide__step + .guide__step { margin-block-start: 32px; }