Ctrl K
ComunidadGuías…

src/ui/hosting.css

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
/* Hosting options. Page layout only; components come from relmio-ui.css. */

.hosting-shell {
  display: flex;
  flex-direction: column;
  gap: var(--rm-space-3);
  width: min(100% - 2 * var(--rm-gutter), var(--rm-content-width));
  margin-inline: auto;
  padding-block: var(--rm-space-4);
}

.hosting-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--rm-space-2) var(--rm-space-6);
}

.hosting-head__title {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--rm-space-1) var(--rm-space-4);
  min-width: 0;
}

.hosting-head__state {
  max-width: 34rem;
  min-width: 0;
}

.hosting-status,
.hosting-error {
  line-height: 1.45;
}

.hosting-status {
  color: var(--rm-ink-muted);
  font-size: var(--rm-text-sm);
}

/* A failure replaces the progress line in the same slot. */
.hosting-head__state:has(> .hosting-error:not([hidden])) > .hosting-status {
  display: none;
}

.hosting-error::before {
  flex: none;
  width: 1rem;
  height: 1rem;
  margin-top: 0.125rem;
  background-color: currentColor;
  content: "";
  -webkit-mask: var(--rm-icon-alert) center / contain no-repeat;
  mask: var(--rm-icon-alert) center / contain no-repeat;
}

.hosting-form {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.hosting-page[data-hosting-view="review"] .hosting-form {
  display: none;
}

.hosting-view .rm-panel__header {
  padding-top: var(--rm-space-4);
  padding-bottom: var(--rm-space-3);
}

.hosting-view .rm-panel__footer {
  justify-content: flex-end;
}

.hosting-footer-hint {
  flex: 1 1 16rem;
  min-width: 0;
  color: var(--rm-ink-muted);
  font-size: var(--rm-text-sm);
  line-height: 1.4;
}

.hosting-footer-hint:empty {
  display: none;
}

/* Step 1: the chooser beside a compact availability matrix. */
.hosting-compare {
  display: grid;
  grid-template-columns: minmax(15rem, 17rem) minmax(0, 1fr);
  align-items: start;
  gap: var(--rm-space-4) var(--rm-space-6);
}

.hosting-compare__matrix,
.hosting-compare__chooser {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--rm-space-3);
  min-width: 0;
}

/* Contains the visually hidden cell text so it scrolls with the table. */
.hosting-matrix-wrap {
  position: relative;
}

.hosting-matrix {
  font-size: var(--rm-text-sm);
}

.hosting-matrix :is(th, td) {
  padding: 0.4375rem 0.625rem;
  vertical-align: middle;
  white-space: nowrap;
}

.hosting-matrix td {
  text-align: center;
}

.hosting-matrix thead th:not(:first-child) {
  text-align: center;
}

/* Experimental badges wrap under the host name instead of widening the table. */
.hosting-matrix tbody th {
  color: var(--rm-ink);
  font-weight: 600;
  white-space: normal;
}

.hosting-matrix tbody tr[data-selected="true"] > * {
  background: var(--rm-accent-soft);
}

.hosting-matrix__count {
  color: var(--rm-ink-subtle);
  font-family: var(--rm-font-mono);
  font-size: var(--rm-text-xs);
  font-weight: 500;
}

.hosting-mark {
  display: inline-grid;
  place-items: center;
  width: 1.25rem;
  height: 1.25rem;
  color: var(--rm-ink);
  vertical-align: middle;
}

.hosting-mark + .hosting-mark,
.hosting-mark + .rm-visually-hidden + .hosting-mark {
  margin-inline-start: var(--rm-space-1);
}

.hosting-mark[data-mode="managed"] {
  color: var(--rm-accent-ink);
}

.hosting-mark[data-mode="external"] {
  color: var(--rm-ink-muted);
}

.hosting-mark[data-mode="unavailable"] {
  color: var(--rm-ink-subtle);
}

.hosting-mark[data-mode="unavailable"]::before {
  width: 0.625rem;
  height: 2px;
  border-radius: 1px;
  background: currentColor;
  content: "";
}

.hosting-legend {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rm-space-1) var(--rm-space-4);
  margin: 0;
  color: var(--rm-ink-muted);
  font-size: var(--rm-text-xs);
  line-height: 1.4;
}

.hosting-legend > div {
  display: flex;
  align-items: center;
  gap: var(--rm-space-1);
}

.hosting-legend dt {
  display: inline-flex;
  align-items: center;
  gap: var(--rm-space-1);
  color: var(--rm-ink);
  font-weight: 600;
}

.hosting-legend dd {
  margin: 0;
}

.hosting-capability {
  color: var(--rm-ink-muted);
  font-size: var(--rm-text-sm);
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.hosting-capability > .rm-badge {
  margin-inline-end: var(--rm-space-1);
}

/* The root sign-in note reads as a warning through its words; color supports it. */
.hosting-capability__root {
  color: var(--rm-warning);
  font-weight: 600;
}

.hosting-notes-trigger {
  justify-self: start;
  margin-inline-start: -0.75rem;
}

/* Native popover: provider login notes open above the page, so the chooser
   keeps its height and the view still fits one screen. */
.hosting-notes {
  width: min(36rem, 100% - 2 * var(--rm-gutter));
  max-height: calc(100% - 2 * var(--rm-gutter));
  padding: var(--rm-space-4) var(--rm-space-5) var(--rm-space-5);
  overflow: auto;
  border: 1px solid var(--rm-line);
  border-radius: var(--rm-radius-xl);
  background: var(--rm-surface);
  box-shadow: var(--rm-shadow-lg);
  color: var(--rm-ink);
  font-size: var(--rm-text-md);
  line-height: var(--rm-leading-body);
}

.hosting-notes:popover-open {
  display: grid;
  gap: var(--rm-space-3);
}

.hosting-notes::backdrop {
  background: var(--rm-overlay);
}

.hosting-notes__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--rm-space-3);
}

.hosting-sources {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rm-space-1) var(--rm-space-4);
}

.hosting-sources > a {
  overflow-wrap: anywhere;
}

/* Step 2: plan details. */
.hosting-fields {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 13rem), 1fr));
  align-items: start;
  gap: var(--rm-space-3) var(--rm-space-4);
}

.hosting-inputs {
  display: contents;
}

/* Optional plan details may scroll the panel body once opened. */
.hosting-review__layout {
  display: grid;
  align-content: start;
  gap: var(--rm-space-4);
  min-width: 0;
}

.hosting-review__side {
  display: grid;
  align-content: start;
  gap: var(--rm-space-4);
  min-width: 0;
}

.hosting-zip-note,
.hosting-files-note {
  color: var(--rm-ink-muted);
  font-size: var(--rm-text-sm);
  line-height: 1.5;
}

.hosting-review__doc {
  gap: var(--rm-space-4);
  min-width: 0;
  padding-top: var(--rm-space-3);
  font-size: var(--rm-text-md);
  line-height: 1.55;
}

.hosting-review__doc > section {
  display: grid;
  gap: var(--rm-space-2);
  min-width: 0;
}

.hosting-review__doc h3 {
  font-size: var(--rm-text-md);
  font-weight: 650;
}

.hosting-review__doc :is(ol, ul) {
  display: grid;
  gap: var(--rm-space-2);
  margin: 0;
  padding-inline-start: 1.25rem;
}

.hosting-review__doc li {
  overflow-wrap: anywhere;
}

.hosting-code {
  margin: 0;
  padding: var(--rm-space-3) var(--rm-space-4);
  border-radius: var(--rm-radius-md);
  background: var(--rm-terminal-bg);
  color: var(--rm-terminal-fg);
  font-size: var(--rm-text-sm);
  line-height: 1.55;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.hosting-files {
  display: grid;
  gap: var(--rm-space-4);
}

.hosting-file {
  display: grid;
  gap: var(--rm-space-2);
  min-width: 0;
}

.hosting-file__header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--rm-space-2) var(--rm-space-4);
}

.hosting-file__name {
  font-family: var(--rm-font-mono);
  font-size: var(--rm-text-sm);
  font-weight: 600;
  overflow-wrap: anywhere;
}

/* One-screen shell: the active view fills the window below the heading. */
@media (min-width: 64rem) and (min-height: 37.5rem) {
  .rm-app--fit .hosting-shell {
    height: 100%;
  }

  .rm-app--fit :is(.hosting-form, .hosting-review, .hosting-form > .hosting-view) {
    flex: 1 1 auto;
  }

  .rm-app--fit .hosting-review__layout {
    flex: 1 1 auto;
  }
}

@media (max-width: 63.99rem) {
  .hosting-compare {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* From 1024 to 1279px wide, and in windows under 768px tall such as
   1280 x 720: a tighter shell keeps long plan forms, and step 1 with its
   longest capability note, on one screen. */
@media (min-width: 64rem) and (max-width: 79.99rem),
  (min-width: 64rem) and (min-height: 37.5rem) and (max-height: 47.99rem) {
  .hosting-shell {
    gap: var(--rm-space-2);
    padding-block: var(--rm-space-1);
  }

  .hosting-view .rm-panel__header {
    padding-top: var(--rm-space-2);
    padding-bottom: var(--rm-space-2);
  }
}

/* From 1024 to 1279px: five narrower field columns, and slimmer matrix cells
   so the availability table fits its column without scrolling sideways. */
@media (min-width: 64rem) and (max-width: 79.99rem) {
  .hosting-fields {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 11rem), 1fr));
    gap: var(--rm-space-2) var(--rm-space-3);
  }

  .hosting-matrix :is(th, td) {
    padding-inline: 0.5rem;
  }
}