body {
    font-family: system-ui, sans-serif;
    max-width: 980px;
    margin: 0 auto;
    padding: 0 20px 40px;
    background: #f7f7f7;
    color: #202020;
}

a {
    color: inherit;
}

.site-header,
.site-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 24px 0;
}

.brand {
    font-weight: 700;
    text-decoration: none;
}

.site-nav {
    display: flex;
    gap: 16px;
}

.site-nav a {
    color: #444;
    text-decoration: none;
}

.site-nav a:hover {
    text-decoration: underline;
}

.site-footer {
    color: #666;
    font-size: 14px;
}

.panel,
.sentence {
    padding: 20px;
    background: white;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .08);
}

.sentence-block {
    margin-bottom: 20px;
}

.builder-username {
    margin: -8px 4px 12px;
    color: #555;
    font-size: 15px;
}

.builder-username strong {
    color: #202020;
}

.free-articles-count {
    margin: 0 4px 8px;
    color: #5a5a5a;
    font-size: 14px;
    text-align: right;
}

.generation-credit-banner,
.plan-alert {
    margin: 12px 0 16px;
    padding: 12px 14px;
    border: 1px solid #f0d17a;
    border-radius: 8px;
    color: #3d2d03;
    background: #fff6d9;
    line-height: 1.45;
}

.generation-credit-banner a,
.generation-credit-inline-action,
.plan-alert a {
    font-weight: 700;
}

.generation-credit-inline-form {
    display: inline;
}

.generation-credit-inline-action {
    border: 0;
    margin: 0;
    padding: 0;
    color: inherit;
    background: transparent;
    font: inherit;
    text-decoration: underline;
    cursor: pointer;
}

.plan-alert-ok {
    border-color: #9ed3aa;
    color: #153d20;
    background: #e9f8ed;
}

.plan-alert-error {
    border-color: #e0a1a1;
    color: #5c1717;
    background: #fdecec;
}

.plan-alert-note {
    border-color: #b8cadf;
    color: #16324f;
    background: #eef6ff;
}

.sentence-block .sentence {
    margin-bottom: 0;
}

.sentence {
    min-height: 48px;
    font-size: 24px;
    line-height: 1.7;
    margin-bottom: 20px;
}

.sentence-slot {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    margin: 2px 1px;
    padding: 3px 8px;
    border: 1px solid #d7d7d7;
    border-radius: 7px;
    color: inherit;
    font: inherit;
    line-height: 1.25;
    text-align: left;
    text-decoration: none;
    background: #eeeeee;
    cursor: pointer;
    transition: background-color .35s ease, border-color .35s ease;
}

.sentence-slot:hover,
.sentence-slot:focus {
    background: #e2e2e2;
}

.sentence-slot.sentence-slot-selected {
    border-color: #b9b9b9;
    background: #d8d8d8;
}

.sentence-slot:focus {
    outline: 2px solid #116a7b;
    outline-offset: 2px;
}

.controls {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
}

.options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.pill,
.control {
    display: inline-flex;
    align-items: center;
    border: 0;
    border-radius: 999px;
    padding: 10px 16px;
    font-size: 16px;
    color: white;
    background: #222;
    text-decoration: none;
}

.pill:hover,
.control:hover {
    opacity: .85;
}

.control.back {
    background: #9b1c1c;
}

.control.reset {
    background: #555;
}

.control.random {
    background: #116a7b;
}

.control.random-next {
    background: #6b5b13;
}

.sentence-random-next {
    font-size: 16px;
    margin-left: 10px;
    vertical-align: middle;
}

.slot-overlay {
    position: fixed;
    inset: 0;
    z-index: 30;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.slot-overlay.active {
    display: flex;
}

.slot-overlay[hidden] {
    display: none;
}

.slot-overlay-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 15, 15, .52);
}

.slot-overlay-panel {
    position: relative;
    z-index: 1;
    width: min(560px, 100%);
    max-height: min(680px, calc(100vh - 40px));
    overflow: auto;
    padding: 22px;
    border-radius: 8px;
    background: white;
    box-shadow: 0 12px 40px rgba(0, 0, 0, .22);
}

.slot-overlay-panel h2 {
    margin: 0 42px 16px 0;
    font-size: 22px;
    line-height: 1.25;
}

.slot-overlay-close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 50%;
    color: #333;
    font-size: 24px;
    line-height: 1;
    background: #eeeeee;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
}

.slot-overlay-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 16px;
}

.slot-options {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    gap: 10px;
    max-height: 92px;
    overflow: hidden;
}

.slot-option {
    display: inline-flex;
    align-items: center;
    padding: 9px 13px;
    border: 1px solid #d3d3d3;
    border-radius: 7px;
    color: #202020;
    font-size: 16px;
    line-height: 1.25;
    text-decoration: none;
    background: #f1f1f1;
}

.slot-option:hover,
.slot-option:focus {
    background: #e4e4e4;
}

.slot-option.current {
    border-color: #8f8f8f;
    background: #e1e1e1;
}

.slot-option[hidden] {
    display: none;
}

.slot-overlay-status {
    margin: 0;
    color: #555;
}

.control.create-news {
    background: #1f7a3a;
}

.control.disabled {
    cursor: not-allowed;
    opacity: .45;
}

.control:disabled {
    cursor: not-allowed;
    opacity: .45;
}

button.control {
    cursor: pointer;
    font-family: inherit;
}

button.control:disabled {
    cursor: not-allowed;
}

.plans-page h1,
.buy-generations-page h1 {
    margin-top: 0;
}

.plans-intro {
    max-width: 680px;
    color: #555;
    line-height: 1.55;
}

.plan-grid,
.purchase-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 22px;
}

.plan-card,
.purchase-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 12px;
    padding: 18px;
    border: 1px solid #dedede;
    border-radius: 8px;
    background: #fff;
}

.plan-card-highlight {
    border-color: #1f7a3a;
    box-shadow: inset 0 0 0 1px #1f7a3a;
}

.plan-title-row {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    justify-content: space-between;
}

.plan-title-row h2,
.purchase-card h2 {
    margin: 0;
    font-size: 21px;
    line-height: 1.15;
}

.purchase-card h2 {
    font-size: 42px;
}

.plan-current-badge,
.plan-current-note {
    flex: 0 0 auto;
    padding: 4px 8px;
    border-radius: 999px;
    color: #1f7a3a;
    background: #e9f8ed;
    font-size: 13px;
    font-weight: 700;
}

.plan-tagline,
.purchase-card p {
    margin: 0;
    color: #555;
}

.plan-features {
    margin: 0;
    padding-left: 20px;
    color: #333;
    line-height: 1.45;
}

.plan-card-footer {
    margin-top: auto;
}

.plan-action {
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
    text-align: center;
}

.plan-card-footer form {
    margin: 0;
}

.purchase-card {
    text-align: center;
}

.plans-secondary-action {
    margin: 18px 0 0;
    color: #555;
}

.complete {
    margin-top: 20px;
    font-weight: bold;
    color: #138a36;
}

.error {
    color: #9b1c1c;
    font-weight: 700;
}

.auth-panel {
    max-width: 520px;
    margin: 0 auto;
}

.auth-panel h1 {
    margin: 18px 0;
}

.account-credit-summary {
    margin: 0 0 22px;
}

.account-credit-summary h2 {
    margin: 0 0 12px;
    font-size: 20px;
}

.account-credit-summary dl {
    display: grid;
    gap: 0;
    margin: 0;
    border: 1px solid #e2e2e2;
    border-radius: 8px;
    overflow: hidden;
}

.account-credit-summary dl > div {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 11px 14px;
    background: #fff;
    border-bottom: 1px solid #e8e8e8;
}

.account-credit-summary dl > div:last-child {
    border-bottom: 0;
}

.account-credit-summary dt,
.account-credit-summary dd {
    margin: 0;
}

.account-credit-summary dd {
    font-weight: 800;
}

.account-credit-summary .is-muted {
    color: #888;
    background: #f4f4f4;
}

.account-credit-summary .account-credit-total {
    font-weight: 800;
    background: #f0f7f2;
}

.register-banner {
    padding: 14px 16px;
    border-radius: 8px;
    color: #123f21;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.35;
    background: #dff3df;
}

.auth-form {
    display: grid;
    gap: 16px;
}

.form-field {
    display: grid;
    gap: 7px;
}

.form-field label {
    font-weight: 700;
}

.form-field input {
    width: 100%;
    box-sizing: border-box;
    padding: 11px 12px;
    border: 1px solid #cfcfcf;
    border-radius: 8px;
    color: #202020;
    font: inherit;
    background: white;
}

.form-field input:focus {
    border-color: #116a7b;
    outline: 2px solid rgba(17, 106, 123, .2);
}

.form-field input[aria-invalid="true"] {
    border-color: #9b1c1c;
}

.form-error-summary,
.field-error {
    margin: 0;
    color: #9b1c1c;
    font-weight: 700;
}

.field-error {
    font-size: 14px;
}

.auth-submit {
    justify-content: center;
}

.admin-shell {
    display: grid;
    gap: 16px;
}

.admin-kicker {
    margin: 0 0 5px;
    color: #47636a;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.admin-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 20px;
}

.admin-header h1,
.admin-report h2,
.admin-message h1 {
    margin: 0;
}

.admin-title-mark {
    position: relative;
    display: inline-block;
}

.admin-ip-whitelist-dot {
    position: absolute;
    top: 0;
    right: -14px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #e53935;
    box-shadow: 0 0 0 2px #fff;
}

.admin-env-suffix {
    margin-left: 10px;
    color: #fbb10f;
    font-size: 0.85em;
    font-weight: 600;
}

.admin-header-actions {
    display: flex;
    align-items: center;
    gap: 16px;
}

.admin-cross-env-link {
    color: #116a7b;
    font-weight: 600;
    white-space: nowrap;
}

.admin-cross-env-link:hover {
    color: #0d5563;
}

.admin-header-actions form {
    margin: 0;
}

.admin-workspace {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.admin-menu {
    padding: 10px;
}

.admin-menu nav {
    display: grid;
    gap: 4px;
}

.admin-menu a {
    display: block;
    padding: 10px 11px;
    border-radius: 6px;
    color: #383838;
    font-weight: 700;
    text-decoration: none;
}

.admin-menu a:hover,
.admin-menu a:focus,
.admin-menu a.is-active {
    color: #102f36;
    background: #dff0f3;
}

.admin-report {
    min-width: 0;
}

.admin-login {
    margin-top: 20px;
}

.admin-login code,
.admin-report code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

.admin-compare {
    display: grid;
    gap: 18px;
}

.admin-compare-intro {
    display: grid;
    gap: 8px;
}

.admin-compare-intro p {
    margin: 0;
    color: #555;
    line-height: 1.5;
}

.admin-compare-path {
    display: block;
    overflow-wrap: anywhere;
    color: #333;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 13px;
}

.admin-compare-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.admin-compare-stat {
    min-width: 88px;
    padding: 10px 12px;
    border: 1px solid #d8e1e4;
    border-radius: 8px;
    background: #f3f8f9;
}

.admin-compare-stat span,
.admin-compare-stat strong {
    display: block;
}

.admin-compare-stat span {
    margin-bottom: 3px;
    color: #555;
    font-size: 13px;
}

.admin-compare-stat strong {
    font-size: 20px;
}

.admin-compare-section {
    display: grid;
    gap: 9px;
}

.admin-compare-section h3 {
    margin: 0;
    font-size: 19px;
}

.admin-table-wrap {
    overflow: auto;
    border: 1px solid #dedede;
    border-radius: 8px;
    background: #fff;
}

.admin-table {
    width: 100%;
    min-width: 560px;
    border-collapse: collapse;
}

.admin-table th,
.admin-table td {
    padding: 9px 10px;
    border-bottom: 1px solid #ececec;
    text-align: left;
    vertical-align: top;
}

.admin-table th {
    color: #4a4a4a;
    font-size: 13px;
}

.admin-table tbody tr:last-child td {
    border-bottom: 0;
}

.admin-table-path {
    overflow-wrap: anywhere;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 13px;
}

.admin-table-path a {
    color: #145d6a;
}

.admin-table-nowrap {
    white-space: nowrap;
}

.admin-table-actions-head,
.admin-table-actions {
    text-align: right;
}

.admin-table-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.admin-empty-note {
    margin: 0;
    color: #666;
}

.admin-generation-failures,
.admin-generation-detail,
.admin-generation-cell {
    display: grid;
    gap: 5px;
}

.admin-generation-failures,
.admin-generation-detail {
    gap: 14px;
}

.admin-generation-cell {
    min-width: 150px;
}

.admin-generation-cell small {
    color: #5a5a5a;
    overflow-wrap: anywhere;
}

.admin-generation-cell span,
.admin-generation-cell a {
    overflow-wrap: anywhere;
}

.admin-report-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: end;
}

.admin-report-filters label {
    display: grid;
    gap: 5px;
    min-width: 180px;
    color: #4a4a4a;
    font-size: 13px;
    font-weight: 700;
}

.admin-report-filters select {
    min-height: 40px;
    padding: 8px 10px;
    border: 1px solid #c8d5d9;
    border-radius: 6px;
    color: #252525;
    font: inherit;
    background: #fff;
}

.admin-compare-error,
.admin-fragment-error {
    padding: 14px;
    border: 1px solid #e4b7b7;
    border-radius: 8px;
    color: #591717;
    background: #fff0f0;
}

.admin-compare-error pre,
.admin-fragment-error pre {
    margin: 10px 0 0;
    overflow: auto;
    white-space: pre-wrap;
}

.admin-inline-action {
    padding: 7px 10px;
    border: 1px solid #c8d5d9;
    border-radius: 6px;
    color: #153d45;
    font: inherit;
    font-weight: 700;
    background: #edf5f6;
    cursor: pointer;
}

.admin-inline-action:hover,
.admin-inline-action:focus {
    background: #dcecef;
}

.admin-diff-overlay {
    position: fixed;
    inset: 0;
    z-index: 40;
    display: none;
    padding: min(5vh, 42px) min(4vw, 42px);
}

.admin-diff-overlay.is-open {
    display: block;
}

.admin-diff-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(18, 20, 24, .72);
}

.admin-diff-panel {
    position: relative;
    display: grid;
    width: 100%;
    height: 100%;
    grid-template-rows: auto minmax(0, 1fr) auto;
    overflow: hidden;
    border: 1px solid #d5d5d5;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 20px 72px rgba(0, 0, 0, .35);
}

.admin-diff-header,
.admin-diff-actions {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    padding: 12px 14px;
}

.admin-diff-header {
    border-bottom: 1px solid #e4e4e4;
}

.admin-diff-header h3 {
    margin: 0 0 3px;
}

.admin-diff-meta {
    margin: 0;
    color: #666;
    font-size: 13px;
}

.admin-diff-body {
    overflow: auto;
    padding: 12px 14px;
}

.admin-diff-actions {
    flex-wrap: wrap;
    justify-content: flex-start;
    border-top: 1px solid #e4e4e4;
}

.control.admin-sync-muted {
    color: #202020;
    background: #e8e8e8;
}

.control.admin-sync-muted:hover,
.control.admin-sync-muted:focus {
    opacity: 1;
    background: #d8d8d8;
}

.admin-diff-status {
    flex: 1 1 180px;
    min-width: 180px;
    color: #555;
    font-size: 13px;
}

.admin-diff {
    color: #222;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 12px;
    line-height: 1.45;
}

.admin-diff.admin-diff--swap-columns table.diff {
    display: block;
}

.admin-diff.admin-diff--swap-columns table.diff thead,
.admin-diff.admin-diff--swap-columns table.diff tbody {
    display: block;
}

.admin-diff.admin-diff--swap-columns table.diff thead tr,
.admin-diff.admin-diff--swap-columns table.diff tbody.change tr {
    display: flex;
    width: 100%;
}

.admin-diff.admin-diff--swap-columns table.diff thead tr > th:nth-child(1) {
    order: 2;
    flex: 1 1 50%;
}

.admin-diff.admin-diff--swap-columns table.diff thead tr > th:nth-child(2) {
    order: 1;
    flex: 1 1 50%;
}

.admin-diff.admin-diff--swap-columns table.diff tbody.change tr > th.n-new {
    order: 1;
    flex: 0 0 auto;
}

.admin-diff.admin-diff--swap-columns table.diff tbody.change tr > td.new {
    order: 2;
    flex: 1 1 0;
    min-width: 0;
}

.admin-diff.admin-diff--swap-columns table.diff tbody.change tr > th.n-old {
    order: 3;
    flex: 0 0 auto;
}

.admin-diff.admin-diff--swap-columns table.diff tbody.change tr > td.old {
    order: 4;
    flex: 1 1 0;
    min-width: 0;
}

.admin-diff table.diff {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
}

.admin-diff table.diff th,
.admin-diff table.diff td {
    vertical-align: top;
}

.admin-diff table.diff thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 7px;
    border-bottom: 1px solid #d8d8d8;
    background: #f4f4f4;
}

.admin-diff .n-old,
.admin-diff .n-new,
.admin-diff tbody.change th:empty {
    width: 1px;
    padding: 0 5px;
    color: #707070;
    text-align: right;
    white-space: nowrap;
    background: #f5f5f5;
}

.admin-diff td.old,
.admin-diff td.new {
    padding: 0;
    border-left: 1px solid #e3e3e3;
}

.admin-diff td.old pre,
.admin-diff td.new pre {
    margin: 0;
    padding: 2px 8px;
    overflow: visible;
    white-space: pre;
}

.admin-diff .change-ins td.new,
.admin-diff .change-ins th.n-new {
    background: #e8f7ee;
}

.admin-diff .change-del td.old,
.admin-diff .change-del th.n-old {
    background: #fdeaea;
}

.admin-diff .change-rep td.old,
.admin-diff .change-rep td.new,
.admin-diff .change-rep th.n-old,
.admin-diff .change-rep th.n-new {
    background: #fff5dc;
}

.admin-diff ins {
    border-radius: 3px;
    text-decoration: none;
    background: #bde8cb;
}

.admin-diff del {
    border-radius: 3px;
    text-decoration: none;
    background: #f5bcbc;
}

.news-overlay {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(15, 15, 15, .58);
    z-index: 20;
}

.news-overlay.active {
    display: flex;
}

.news-overlay-panel {
    width: min(420px, 100%);
    padding: 28px;
    text-align: center;
    background: white;
    border-radius: 12px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, .2);
}

.news-progress {
    --news-progress-deg: 0deg;
    width: 42px;
    height: 42px;
    margin: 0 auto 18px;
    border-radius: 50%;
    background: conic-gradient(#1f7a3a var(--news-progress-deg), #d8d8d8 0deg);
    position: relative;
}

.news-progress::after {
    content: "";
    position: absolute;
    inset: 5px;
    background: white;
    border-radius: 50%;
}

.news-progress.overrun {
    background: conic-gradient(#1f7a3a 90deg, #d8d8d8 0deg);
    animation: news-spin .8s linear infinite;
}

.news-overlay-message {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.news-overlay-close {
    display: none;
    margin: 20px auto 0;
}

.news-overlay-retry {
    display: none;
    margin: 20px auto 0;
}

.news-overlay.failed .news-progress {
    display: none;
}

.news-overlay.failed .news-overlay-close {
    display: inline-flex;
}

.news-overlay.failed.can-retry .news-overlay-retry {
    display: inline-flex;
}

.news-article {
    display: grid;
    gap: 20px;
}

.news-image {
    width: 100%;
    height: auto;
    object-fit: contain;
    border-radius: 8px;
}

.news-previous {
    margin: -8px 0 0;
    color: #555;
    font-size: 16px;
    line-height: 1.45;
}

.news-previous span {
    font-weight: 700;
}

.news-previous a {
    color: #222;
    text-decoration: underline;
}

.news-body {
    font-size: 18px;
    line-height: 1.6;
    white-space: normal;
}

.news-sequel-links {
    margin: -8px 0 0;
    color: #555;
    font-size: 16px;
    line-height: 1.45;
}

.news-sequel-links span,
.news-sequel-links p {
    font-weight: 700;
}

.news-sequel-links p {
    margin: 0 0 6px;
}

.news-sequel-links ul {
    margin: 0;
    padding-left: 1.25rem;
}

.news-sequel-links a {
    color: #222;
    text-decoration: underline;
}

.news-related-headlines {
    margin: 0;
    padding-left: 1.25rem;
    font-size: 17px;
    line-height: 1.5;
}

.news-related-headlines li {
    margin: 0.35em 0;
}

.news-related-link {
    color: inherit;
    text-decoration: underline;
}

.news-related-create-form {
    display: inline;
}

.news-related-create {
    margin-left: 0.35rem;
    font-size: 0.92em;
    vertical-align: baseline;
}

.news-author {
    margin: 0;
    color: #555;
    font-size: 16px;
    line-height: 1.45;
}

.news-author strong {
    color: #222;
}

.news-author-claim {
    display: inline-block;
    margin-left: 0.35rem;
}

.news-author-claim a {
    color: #222;
    text-decoration: underline;
}

.share-tools {
    margin: 18px 0 0;
    padding: 14px;
    border: 1px solid #dedede;
    border-radius: 12px;
    background: #fff;
}

.share-title {
    margin: 0 0 10px;
    color: #444;
    font-weight: 700;
}

.share-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.share-control {
    justify-content: center;
    min-height: 44px;
    background: #3b3b3b;
}

.share-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.1rem;
    height: 1.1rem;
    flex: 0 0 1.1rem;
}

.share-icon svg {
    display: block;
    width: 100%;
    height: 100%;
}

.news-create-another {
    margin: 18px 0 0;
}

.history-page h1 {
    margin: 0 0 18px;
}

.history-empty {
    margin: 0;
    color: #555;
    font-size: 17px;
    line-height: 1.5;
}

.history-list {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.history-item {
    padding: 10px;
    border-radius: 6px;
    background-color: #f0f0f0;
}

.history-link {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    min-height: 72px;
    color: inherit;
    text-decoration: none;
}

.history-link:hover .history-headline {
    text-decoration: underline;
}

.history-thumb {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: 8px;
    background: #e8e8e8;
}

.history-thumb-placeholder {
    display: block;
    border: 1px dashed #b8b8b8;
    background:
        linear-gradient(135deg, transparent 48%, #cfcfcf 49%, #cfcfcf 51%, transparent 52%),
        #eeeeee;
}

.history-headline {
    min-width: 0;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.35;
}

.history-child-summary {
    display: grid;
    gap: 10px;
    margin: 10px 0 0 86px;
}

.history-child-section h2 {
    margin: 0 0 4px;
    color: #555;
    font-size: 15px;
}

.history-child-section ul {
    margin: 0;
    padding-left: 1.15rem;
    font-size: 15px;
    line-height: 1.45;
}

.history-child-section li {
    margin: 0.25em 0;
}

.history-child-section a,
.history-show-all a {
    color: inherit;
    text-decoration: underline;
}

.history-show-all {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
}

.history-back {
    margin: 0 0 14px;
    font-size: 16px;
}

.history-back a {
    color: #444;
    text-decoration: underline;
}

.history-tree {
    margin: 0;
    padding-left: 0;
    list-style: none;
}

.history-tree ul {
    margin: 10px 0 0 24px;
    padding-left: 18px;
    border-left: 2px solid #e1e1e1;
    list-style: none;
}

.history-tree-item {
    margin: 10px 0;
}

.history-tree-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: baseline;
}

.history-tree-row-main {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    min-height: 72px;
}

.history-tree-main-text {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: baseline;
    min-width: 0;
}

.history-tree-row a {
    color: inherit;
    font-weight: 700;
    line-height: 1.35;
    text-decoration: underline;
}

.history-tree-type {
    flex: 0 0 auto;
    padding: 2px 8px;
    border-radius: 999px;
    color: #555;
    background: #eeeeee;
    font-size: 13px;
    font-weight: 700;
}

.news-sequel-card {
    margin-top: 18px;
}

.news-sequel-card h2 {
    margin: 0 0 14px;
    font-size: 22px;
}

.news-sequel-controls {
    display: flex;
    gap: 12px;
    align-items: center;
}

.news-sequel-select {
    min-width: 0;
    flex: 1;
    padding: 10px 12px;
    border: 1px solid #cfcfcf;
    border-radius: 8px;
    font: inherit;
    background: white;
}

.news-sequel-create {
    flex: 0 0 auto;
}

button.control.news-sequel-create:disabled {
    cursor: pointer;
    opacity: .75;
}

@media (min-width: 640px) {
    .share-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .site-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .site-nav {
        flex-wrap: wrap;
    }

    .plan-grid,
    .purchase-grid {
        grid-template-columns: 1fr;
    }

    .admin-header {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-workspace {
        grid-template-columns: 1fr;
    }

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

    .admin-diff-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .news-sequel-controls {
        align-items: stretch;
        flex-direction: column;
    }

    .news-sequel-create {
        justify-content: center;
    }
}

@keyframes news-spin {
    to {
        transform: rotate(360deg);
    }
}

.request-profile {
    margin: 2rem auto 0;
    max-width: 72rem;
    padding: 1rem 1.25rem;
    border: 1px solid #cbd5e1;
    border-radius: 0.75rem;
    background: #f8fafc;
    color: #0f172a;
    font-size: 0.875rem;
}

.request-profile h2,
.request-profile h3 {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

.request-profile h3 {
    margin-top: 1.25rem;
    font-size: 0.95rem;
}

.request-profile-total {
    margin: 0 0 0.5rem;
}

.request-profile-hint {
    margin: 0 0 1rem;
    color: #475569;
}

.request-profile-table {
    width: 100%;
    border-collapse: collapse;
}

.request-profile-table th,
.request-profile-table td {
    padding: 0.35rem 0.5rem;
    border-bottom: 1px solid #e2e8f0;
    text-align: left;
    vertical-align: top;
}

.request-profile-table th {
    font-weight: 600;
    background: #eef2ff;
}

.request-profile-routines .request-profile-metric-self {
    font-weight: 700;
    color: #166534;
}

.request-profile-routines .request-profile-metric-nested {
    color: #64748b;
}

.request-profile-routines .request-profile-metric-total {
    color: #334155;
}

.request-profile-row-hot {
    background: #ecfdf5;
}

.request-profile-row-hot .request-profile-metric-self {
    color: #15803d;
}

.request-profile-row-delegator {
    color: #64748b;
}

.request-profile-row-delegator .request-profile-metric-self {
    font-weight: 400;
}

.request-profile-split {
    display: flex;
    width: 5.5rem;
    height: 0.65rem;
    overflow: hidden;
    border-radius: 999px;
    background: #e2e8f0;
}

.request-profile-split-self {
    display: block;
    height: 100%;
    background: #22c55e;
}

.request-profile-split-nested {
    display: block;
    height: 100%;
    background: #94a3b8;
}

.request-profile-legend {
    margin: 0.75rem 0 0;
    padding-left: 1.1rem;
    color: #475569;
}

.request-profile-legend li {
    margin: 0.2rem 0;
}

.request-profile-legend-swatch {
    display: inline-block;
    width: 0.75rem;
    height: 0.65rem;
    margin-right: 0.35rem;
    border-radius: 999px;
    vertical-align: middle;
}

.request-profile-legend-self {
    background: #22c55e;
}

.request-profile-legend-nested {
    background: #94a3b8;
}
