Files
hy2-panel/app/globals.css
T

1339 lines
24 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@import "tailwindcss";
:root {
--background: #ffffff;
--foreground: #18181b;
--card: #ffffff;
--card-foreground: #18181b;
--popover: #ffffff;
--popover-foreground: #18181b;
--primary: #18181b;
--primary-foreground: #ffffff;
--secondary: #f4f4f5;
--secondary-foreground: #18181b;
--muted: #71717a;
--muted-foreground: #71717a;
--accent: #f4f4f5;
--accent-foreground: #18181b;
--destructive: #dc2626;
--border: #e4e4e7;
--input: #e4e4e7;
--ring: #a1a1aa;
--radius: 0.375rem;
--panel-strong: #fafafa;
--border-strong: #d4d4d8;
--accent-deep: #18181b;
--success: #15803d;
--danger: #b91c1c;
}
@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
--color-card: var(--card);
--color-card-foreground: var(--card-foreground);
--color-popover: var(--popover);
--color-popover-foreground: var(--popover-foreground);
--color-primary: var(--primary);
--color-primary-foreground: var(--primary-foreground);
--color-secondary: var(--secondary);
--color-secondary-foreground: var(--secondary-foreground);
--color-muted: #f4f4f5;
--color-muted-foreground: var(--muted-foreground);
--color-accent: var(--accent);
--color-accent-foreground: var(--accent-foreground);
--color-destructive: var(--destructive);
--color-border: var(--border);
--color-input: var(--input);
--color-ring: var(--ring);
--radius-sm: calc(var(--radius) - 2px);
--radius-md: var(--radius);
--radius-lg: calc(var(--radius) + 2px);
--radius-xl: calc(var(--radius) + 6px);
--font-sans: Arial, "PingFang SC", "Microsoft YaHei", sans-serif;
--font-mono: ui-monospace, "SFMono-Regular", Consolas, monospace;
}
@layer base {
* {
box-sizing: border-box;
border-color: var(--border);
}
body {
margin: 0;
color: var(--foreground);
background: var(--background);
font-family: var(--font-sans);
font-size: 13px;
line-height: 1.5;
}
h1,
h2,
h3,
h4,
p {
margin: 0;
}
h1 {
font-size: 18px;
font-weight: 650;
}
h2 {
font-size: 22px;
font-weight: 650;
letter-spacing: -0.5px;
}
h3 {
font-size: 14px;
font-weight: 600;
}
h4,
strong {
font-weight: 600;
}
a {
color: inherit;
text-decoration: none;
}
button,
input,
select,
textarea {
font: inherit;
}
button,
summary {
cursor: pointer;
}
button:disabled {
cursor: not-allowed;
opacity: 0.5;
}
input:not([type="checkbox"]):not([type="hidden"]),
select,
textarea {
width: 100%;
min-width: 0;
border: 1px solid var(--input);
border-radius: 6px;
padding: 6px 10px;
background: white;
color: var(--foreground);
}
input[type="checkbox"] {
accent-color: var(--primary);
width: 15px;
height: 15px;
}
textarea {
resize: vertical;
}
:focus-visible {
outline: 2px solid var(--ring);
outline-offset: 2px;
}
::selection {
background: #dbeafe;
}
}
.admin-shell {
min-height: 100vh;
display: grid;
grid-template-columns: 208px minmax(0, 1fr);
}
.sidebar {
position: sticky;
top: 0;
height: 100dvh;
padding: 24px 12px 16px;
background: #fafafa;
border-right: 1px solid var(--border);
display: flex;
flex-direction: column;
gap: 24px;
}
.brand-block {
padding: 0 10px;
display: grid;
gap: 8px;
}
.eyebrow {
font-size: 10px;
letter-spacing: 1.5px;
color: var(--muted);
font-weight: 600;
}
.sidebar > form {
margin-top: auto;
}
.nav-list {
display: grid;
gap: 4px;
}
.nav-link {
display: flex;
align-items: center;
gap: 10px;
padding: 9px 10px;
color: #52525b;
border-radius: 6px;
}
.nav-link:hover {
background: #f0f0f1;
}
.nav-link.is-active {
background: #eaeaed;
color: #18181b;
font-weight: 600;
}
.content-shell {
min-width: 0;
padding: 28px 32px;
}
.content-frame {
max-width: 1600px;
margin: auto;
}
.page-stack,
.stack-lg,
.stack-md,
.stack-tight {
display: grid;
}
.page-stack {
gap: 24px;
}
.stack-lg {
gap: 16px;
}
.stack-md {
gap: 12px;
}
.stack-tight {
gap: 3px;
}
.hero-panel {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
padding-bottom: 16px;
border-bottom: 1px solid var(--border);
}
.hero-copy {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 12px;
}
.hero-copy > .eyebrow {
display: none;
}
.hero-aside {
display: flex;
gap: 24px;
}
.stat-tile {
display: flex;
align-items: baseline;
gap: 8px;
}
.stat-tile span {
color: var(--muted);
font-size: 12px;
}
.stat-tile strong {
font-size: 16px;
}
.management-page .hero-aside {
display: none;
}
.panel-card {
min-width: 0;
padding: 0;
}
.section-title,
.action-row,
.list-row,
.page-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.section-title {
margin-bottom: 12px;
}
.section-title--top {
align-items: flex-start;
}
.action-row--end {
justify-content: flex-end;
}
.badge-row {
display: flex;
flex-wrap: wrap;
gap: 5px;
}
.status-pill {
display: inline-flex;
align-items: center;
white-space: nowrap;
font-size: 11px;
line-height: 1.5;
padding: 2px 7px;
border: 1px solid var(--border);
border-radius: 4px;
color: #52525b;
background: #fafafa;
}
.status-pill--ok,
.status-pill--sage {
color: #15803d;
border-color: #bbf7d0;
background: #f0fdf4;
}
.status-pill--danger {
color: #b91c1c;
border-color: #fecaca;
background: #fef2f2;
}
.status-pill--neutral {
color: #1d4ed8;
border-color: #dbeafe;
background: #eff6ff;
}
.muted {
color: var(--muted);
}
.mono,
code,
pre {
font-family: var(--font-mono);
font-size: 12px;
}
.break-all {
overflow-wrap: anywhere;
}
.align-right {
text-align: right;
}
.full-width {
width: 100%;
}
.full-span {
grid-column: 1/-1;
}
.metrics-grid,
.dashboard-glance-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
border-block: 1px solid var(--border);
}
.metric-card {
padding: 12px 16px;
border-right: 1px solid var(--border);
display: grid;
gap: 3px;
}
.metric-card:first-child {
padding-left: 0;
}
.metric-card:last-child {
border-right: 0;
}
.metric-card > span,
.metric-card small {
color: var(--muted);
font-size: 12px;
}
.metric-card strong {
font-size: 24px;
font-variant-numeric: tabular-nums;
}
.panel-grid,
.form-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 24px;
}
.panel-grid > article {
border-top: 1px solid var(--border);
padding-top: 16px;
}
.list-row--card {
padding: 10px 0;
border-bottom: 1px solid var(--border);
}
.list-row p {
margin-top: 2px;
font-size: 12px;
}
.panel-grid .stack-md {
gap: 0;
}
.field {
display: grid;
gap: 5px;
align-content: start;
}
.field > span {
font-size: 12px;
font-weight: 500;
color: #52525b;
}
.checkbox {
display: flex;
align-items: center;
gap: 8px;
}
.inline-form,
.inline-button {
display: inline-flex;
gap: 8px;
flex-wrap: wrap;
}
.compact-create-panel {
border: 1px solid var(--border);
border-radius: 6px;
}
.compact-create-summary {
padding: 10px 12px;
display: flex;
align-items: center;
justify-content: space-between;
list-style: none;
}
.compact-create-summary::-webkit-details-marker,
.entity-table__summary::-webkit-details-marker {
display: none;
}
.compact-create-summary::after {
content: "+";
font-size: 18px;
color: var(--muted);
}
details[open] > .compact-create-summary::after {
content: "−";
}
.compact-create-summary .status-pill {
display: none;
}
.dense-form-grid {
display: grid;
gap: 12px;
padding: 16px 0;
}
.compact-create-panel .dense-form-grid {
padding: 16px;
border-top: 1px solid var(--border);
}
.dense-form-grid--users {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.dense-form-grid--nodes {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.dense-field-wide {
grid-column: span 2;
}
.dense-form-grid > button {
align-self: end;
justify-self: start;
}
.dense-panel {
display: grid;
gap: 8px;
}
.instruction-block {
border-top: 1px solid var(--border);
padding: 12px 0;
}
.proxy-group-card {
padding: 16px 0;
}
.proxy-group-builder {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
}
.proxy-group-builder--main {
grid-template-columns: 1fr;
}
.proxy-group-panel {
min-width: 0;
display: grid;
align-content: start;
gap: 10px;
}
.proxy-group-panel__header {
display: flex;
justify-content: space-between;
align-items: center;
gap: 10px;
flex-wrap: wrap;
}
.proxy-group-toolbar {
display: flex;
gap: 8px;
flex: 1;
justify-content: flex-end;
}
.proxy-group-search {
max-width: 220px;
}
.proxy-node-grid,
.proxy-sort-list {
display: grid;
gap: 0;
margin: 0;
padding: 0;
list-style: none;
max-height: 380px;
overflow: auto;
border: 1px solid var(--border);
border-radius: 6px;
}
.proxy-node-chip,
.proxy-sort-item {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
min-height: 48px;
padding: 6px 10px;
border: 0;
border-bottom: 1px solid var(--border);
background: white;
text-align: left;
}
.proxy-node-chip:last-child,
.proxy-sort-item:last-child {
border-bottom: 0;
}
.proxy-node-chip:hover,
.proxy-sort-item:hover {
background: #fafafa;
}
.proxy-node-chip__copy,
.proxy-sort-item__meta {
display: flex;
align-items: center;
gap: 10px;
min-width: 0;
}
.proxy-node-chip__copy {
flex-wrap: wrap;
gap: 4px 10px;
}
.proxy-node-chip__copy span,
.proxy-sort-item__sub {
color: var(--muted);
font-size: 11px;
overflow-wrap: anywhere;
}
.proxy-node-chip__action {
color: var(--muted);
font-size: 12px;
flex: none;
}
.proxy-sort-item__index {
color: #a1a1aa;
font-size: 11px;
font-variant-numeric: tabular-nums;
}
.proxy-sort-item__actions {
margin-left: auto;
}
.drag-handle {
touch-action: none;
cursor: grab;
flex: none;
}
.drag-handle:active {
cursor: grabbing;
}
.proxy-group-empty,
.empty-state {
padding: 24px 12px;
text-align: center;
color: var(--muted);
border: 1px dashed var(--border);
border-radius: 6px;
}
.group-summary {
display: flex;
align-items: center;
gap: 10px;
padding: 12px 0;
list-style: none;
}
.group-summary::before {
content: "›";
font-size: 18px;
}
details[open] > .group-summary::before {
transform: rotate(90deg);
}
.group-summary span:last-child {
margin-left: auto;
color: var(--muted);
font-size: 12px;
}
.group-disclosure {
border-bottom: 1px solid var(--border);
}
.group-disclosure > .proxy-group-card {
border: 0;
padding-top: 0;
}
.list-toolbar {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 12px;
flex-wrap: wrap;
}
.list-search {
position: relative;
width: min(320px, 100%);
}
.list-search svg {
position: absolute;
left: 10px;
top: 9px;
color: var(--muted);
}
.list-search input {
padding-left: 32px !important;
}
.list-toolbar select {
width: auto;
}
.copy-line {
display: flex;
align-items: center;
gap: 12px;
min-width: 0;
}
.copy-line code {
flex: 1;
min-width: 0;
overflow-wrap: anywhere;
}
.copy-line button {
flex: none;
}
.error-banner,
.error-text {
color: var(--danger);
}
.error-banner {
padding: 10px;
border-radius: 6px;
background: #fef2f2;
}
.login-shell {
min-height: 100dvh;
display: grid;
place-items: center;
padding: 24px;
background: #fafafa;
}
.login-stage {
width: min(380px, 100%);
}
.login-card {
background: white;
border: 1px solid var(--border);
border-radius: 8px;
padding: 28px;
}
.login-card h1 {
font-size: 24px;
}
.login-form {
margin-top: 24px;
}
.login-card .section-title {
align-items: flex-start;
}
.me-shell {
min-height: 100dvh;
padding: 32px 24px;
}
.me-stage {
max-width: 1040px;
margin: auto;
display: grid;
gap: 24px;
}
.me-panel {
padding: 16px 0;
border-bottom: 1px solid var(--border);
}
.me-hero {
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
}
.me-hero-copy,
.me-identity-card {
display: grid;
gap: 8px;
}
.me-hero h1 {
font-size: 24px;
}
.me-grid {
display: grid;
grid-template-columns: 1.3fr 1fr;
gap: 32px;
}
.me-action-row {
display: flex;
gap: 8px;
flex-wrap: wrap;
margin: 16px 0;
}
.me-action-button {
display: inline-flex;
align-items: center;
justify-content: center;
}
.me-link-card {
margin-top: 16px;
display: grid;
gap: 8px;
}
.me-metrics-grid {
display: grid;
}
.me-metric-card {
display: flex;
justify-content: space-between;
padding: 10px 0;
border-bottom: 1px solid var(--border);
}
.feature-kicker {
font-size: 11px;
color: var(--muted);
}
.me-support-card {
display: grid;
gap: 12px;
}
.entity-table {
overflow: auto;
border: 1px solid var(--border);
border-radius: 6px;
background: var(--background);
}
.entity-table__head,
.entity-table__summary {
display: grid;
align-items: center;
gap: 0.7rem;
min-width: 56rem;
}
.entity-table__head {
position: sticky;
top: 0;
z-index: 1;
padding: 0.52rem 0.75rem;
border-bottom: 1px solid var(--border);
background: var(--panel-strong);
color: var(--foreground);
font-size: 0.76rem;
font-weight: 800;
letter-spacing: 0;
text-transform: uppercase;
}
.entity-table__item {
border-bottom: 1px solid var(--border);
}
.entity-table__item:last-child {
border-bottom: 0;
}
.entity-table__summary {
padding: 0.62rem 0.75rem;
cursor: pointer;
list-style: none;
background: var(--background);
}
.entity-table__summary:hover {
background: var(--background);
}
.entity-table__details {
min-width: 56rem;
padding: 0 0.75rem 0.75rem;
background: var(--background);
}
.user-row-grid {
grid-template-columns:
minmax(12rem, 1.25fr) minmax(11rem, 1.1fr) minmax(8.5rem, 0.85fr)
minmax(8rem, 0.8fr) minmax(4.5rem, 0.45fr) minmax(4rem, 0.35fr);
}
.node-row-grid {
grid-template-columns:
minmax(10rem, 1fr) minmax(8rem, 0.75fr) minmax(10rem, 0.95fr)
minmax(12rem, 1.15fr) minmax(5.5rem, 0.55fr) minmax(9rem, 0.9fr) minmax(
4rem,
0.35fr
);
}
.audit-row-grid {
grid-template-columns:
minmax(4.5rem, 0.45fr) minmax(11rem, 1fr) minmax(10rem, 0.95fr)
minmax(6.5rem, 0.65fr) minmax(10rem, 1fr) minmax(10rem, 0.8fr);
}
.entity-main-cell,
.entity-number-cell,
.entity-code-cell,
.entity-muted-cell {
display: grid;
gap: 0.12rem;
min-width: 0;
}
.entity-main-cell strong,
.entity-number-cell strong {
font-size: 0.94rem;
color: var(--foreground);
}
.entity-main-cell span,
.entity-number-cell span,
.entity-number-cell small,
.entity-code-cell small,
.entity-muted-cell,
.entity-muted-cell small {
color: var(--muted);
font-size: 0.79rem;
font-weight: 650;
}
.entity-code-cell {
font-family: var(--font-mono);
font-size: 0.78rem;
color: #202b35;
font-weight: 650;
}
.entity-status-cell {
gap: 0.28rem;
}
.entity-expand-label {
justify-self: end;
color: var(--accent-deep);
font-size: 0.8rem;
font-weight: 800;
}
.entity-table__item[open] .entity-expand-label {
color: var(--muted);
}
.dense-code-grid {
display: grid;
gap: 0.45rem;
grid-template-columns: repeat(2, minmax(0, 1fr));
padding-top: 0.65rem;
}
.dense-code-line {
display: grid;
gap: 0.25rem;
padding: 0.55rem 0.65rem;
border: 1px solid var(--border);
border-radius: 6px;
background: var(--background);
}
.dense-code-line span {
color: var(--muted);
font-size: 0.76rem;
font-weight: 700;
}
.dense-code-line code {
overflow-wrap: anywhere;
font-family: var(--font-mono);
font-size: 0.78rem;
color: #202b35;
font-weight: 650;
}
.entity-action-strip {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.65rem;
flex-wrap: wrap;
padding-top: 0.65rem;
}
.inline-form--compact {
align-items: center;
gap: 0.5rem;
}
.inline-form--compact input:not([type="hidden"]) {
width: min(16rem, 100%);
}
.config-collapse {
margin-top: 0.65rem;
border: 1px solid var(--border);
border-radius: 6px;
background: var(--background);
}
.config-collapse summary {
padding: 0.58rem 0.65rem;
cursor: pointer;
color: var(--accent-deep);
font-weight: 800;
list-style: none;
}
.config-collapse pre {
overflow: auto;
margin: 0;
padding: 0.75rem;
border-top: 1px solid var(--border);
background: #1a1f25;
color: #f7eadf;
font-family: var(--font-mono);
font-size: 0.78rem;
}
.config-collapse .inline-button {
margin: 0.65rem;
}
.dashboard-analytics {
display: grid;
gap: 0.65rem;
}
.dashboard-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.65rem;
flex-wrap: wrap;
}
.chart-filter {
display: grid;
gap: 0.25rem;
min-width: min(100%, 15rem);
}
.chart-filter label {
color: var(--muted);
font-size: 0.82rem;
font-weight: 700;
letter-spacing: 0;
text-transform: uppercase;
}
.dashboard-glance-grid,
.dashboard-chart-grid {
display: grid;
gap: 0.65rem;
}
.dashboard-glance-grid {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.dashboard-chart-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.dashboard-glance-card,
.dashboard-chart-card {
display: grid;
gap: 0.5rem;
padding: 0.68rem 0.75rem;
border-radius: 6px;
border: 1px solid var(--border);
}
.dashboard-glance-card {
min-height: 5.6rem;
}
.dashboard-glance-card span {
color: var(--muted);
font-size: 0.8rem;
font-weight: 700;
}
.dashboard-glance-card strong {
font-size: 1.28rem;
line-height: 1.1;
}
.dashboard-glance-card small {
color: var(--muted);
font-size: 0.8rem;
font-weight: 650;
}
.dashboard-glance-card--warm {
background: var(--background);
}
.dashboard-glance-card--ink {
background: var(--background);
}
.dashboard-glance-card--sage {
background: var(--background);
}
.dashboard-glance-card--paper {
background: var(--background);
}
.dashboard-chart-card {
background: var(--background);
}
.dashboard-chart-card--wide {
grid-column: 1 / -1;
}
.dashboard-chart-card__head {
display: grid;
gap: 0.45rem;
}
.dashboard-chart-card h4 {
margin: 0;
font-size: 0.95rem;
}
.chart-note {
margin: 0;
color: var(--muted);
font-size: 0.9rem;
line-height: 1.5;
}
.chart-shell,
.chart-empty {
height: 14rem;
}
.chart-shell--wide {
height: 17rem;
}
.chart-empty {
display: grid;
place-items: center;
padding: 0.75rem;
border-radius: 6px;
border: 1px dashed var(--border-strong);
background: var(--background);
color: var(--muted);
font-size: 0.9rem;
text-align: center;
}
.node-line-toggles {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 0.35rem;
}
.node-line-toggle {
display: inline-flex;
align-items: center;
gap: 0.35rem;
min-height: 1.7rem;
padding: 0.22rem 0.45rem;
border: 1px solid var(--border);
border-radius: 6px;
background: var(--background);
color: var(--foreground);
font-size: 0.78rem;
}
.node-line-toggle small {
color: var(--muted);
font-size: 0.72rem;
}
.node-line-toggle.is-hidden {
opacity: 0.45;
background: transparent;
}
.node-line-toggle__swatch {
width: 0.55rem;
height: 0.55rem;
border-radius: 6px;
flex: none;
}
/* Charts share the same flat surfaces as the rest of the console. */
.dashboard-chart-card {
border-radius: 0;
border: 0;
border-top: 1px solid var(--border);
padding: 16px 0;
}
.dashboard-glance-grid {
gap: 0;
}
.dashboard-glance-card {
border: 0;
border-right: 1px solid var(--border);
border-radius: 0;
min-height: 0;
padding: 10px 14px;
}
.dashboard-glance-card:last-child {
border-right: 0;
}
.dashboard-chart-grid {
gap: 20px;
}
.entity-table {
border-radius: 6px;
}
.entity-table__summary:hover {
background: #fafafa;
}
.entity-table__item[open] > summary {
background: #f4f4f5;
}
.entity-table__details {
padding: 12px;
background: #fafafa;
}
.entity-table__head {
color: #71717a;
font-weight: 500;
}
.entity-main-cell strong,
.entity-number-cell strong {
font-size: 13px;
}
.entity-main-cell span,
.entity-number-cell span,
.entity-muted-cell {
font-weight: 400;
font-size: 11px;
}
@media (max-width: 1100px) {
.content-shell {
padding: 24px 20px;
}
.dense-form-grid--nodes,
.dense-form-grid--users {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 760px) {
.admin-shell {
grid-template-columns: 1fr;
}
.sidebar {
position: static;
height: auto;
padding: 12px;
gap: 12px;
border-right: 0;
border-bottom: 1px solid var(--border);
}
.brand-block {
display: flex;
align-items: center;
gap: 10px;
padding: 0;
}
.brand-block .eyebrow {
display: none;
}
.sidebar > form {
position: absolute;
top: 10px;
right: 12px;
}
.nav-list {
display: flex;
overflow-x: auto;
gap: 4px;
}
.nav-link {
flex: none;
padding: 8px;
font-size: 12px;
gap: 6px;
}
.content-shell {
padding: 20px 12px;
}
.hero-panel,
.me-hero {
align-items: flex-start;
flex-direction: column;
}
.hero-aside {
display: none;
}
.panel-grid,
.proxy-group-builder,
.me-grid,
.dashboard-chart-grid {
grid-template-columns: 1fr;
}
.metrics-grid,
.dashboard-glance-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.metric-card {
padding: 10px;
}
.metric-card:first-child {
padding-left: 10px;
}
.proxy-group-panel__header {
align-items: flex-start;
}
.proxy-group-toolbar {
justify-content: flex-start;
}
.section-title {
flex-wrap: wrap;
}
.entity-table__details {
min-width: 0;
}
.entity-table__head,
.entity-table__summary {
min-width: 800px;
}
.entity-table {
max-width: 100%;
}
.copy-line {
align-items: flex-start;
}
.me-shell {
padding: 20px 16px;
}
}
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}
.proxy-node-chip {
height: auto;
white-space: normal;
border-radius: 0;
}
.entity-table > div[hidden] {
display: none;
}
.entity-table > div:not([hidden]) > .entity-table__item {
border-bottom: 1px solid var(--border);
}
.entity-code-cell {
overflow-wrap: anywhere;
font-weight: 400;
}
.entity-code-cell small,
.entity-muted-cell small {
font-weight: 400;
}
.entity-table__summary {
padding-block: 8px;
}
/* Let nested grids shrink; wide data rows scroll inside their list. */
.page-stack > *,
.dense-panel > *,
.sidebar,
.nav-list {
min-width: 0;
}
.when-open {
display: none;
}
.entity-table__item[open] .when-open {
display: inline;
}
.entity-table__item[open] .when-closed {
display: none;
}
.mobile-table-hint {
display: none;
}
.me-panel h2 {
font-size: 16px;
}
@media (max-width: 760px) {
.admin-shell {
grid-template-rows: auto 1fr;
}
.sidebar {
align-self: start;
}
.mobile-table-hint {
display: block;
color: var(--muted);
font-size: 11px;
margin-bottom: 8px;
}
}
.chart-empty {
height: auto;
min-height: 80px;
}
.mono-textarea {
font-family: var(--font-mono);
font-size: 12px;
line-height: 1.65;
tab-size: 2;
}
/* Compact certificate and installation lists. */
.provision-row { display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.provision-row > div:first-child { flex:1; min-width:220px; overflow-wrap:anywhere; }
.provision-row p { margin:4px 0; }
.provision-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.provision-row form { max-width:100%; }
.provision-row form p { max-width:360px; }
.provision-form { grid-template-columns:repeat(3,minmax(0,1fr)); }
.provision-form button[type="submit"] { justify-self:start; }
@media (max-width:760px) { .provision-form { grid-template-columns:1fr; } }