NODEDC_DESIGN_GUIDELINE/packages/ui-core/styles.css

2188 lines
52 KiB
CSS

@import "@nodedc/tokens/tokens.css";
@import "@nodedc/tokens/themes.css";
:where([data-nodedc-ui], .nodedc-ui-root) {
color: var(--nodedc-text-primary);
font-family: var(--nodedc-font-family);
font-synthesis: none;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
}
:where([data-nodedc-ui], .nodedc-ui-root) *,
:where([data-nodedc-ui], .nodedc-ui-root) *::before,
:where([data-nodedc-ui], .nodedc-ui-root) *::after {
box-sizing: border-box;
}
:where(.nodedc-button, .nodedc-icon-button, .nodedc-checker, .nodedc-select-trigger, .nodedc-select__toggle, .nodedc-dropdown-option, .nodedc-segmented__item, .nodedc-header__nav-item, .nodedc-inspector__section-trigger, .nodedc-window__close) {
border: 0;
outline: 0;
font: inherit;
}
:where(.nodedc-button, .nodedc-icon-button, .nodedc-checker, .nodedc-select-trigger, .nodedc-select__toggle, .nodedc-dropdown-option, .nodedc-segmented__item, .nodedc-header__nav-item, .nodedc-inspector__section-trigger, .nodedc-window__close):focus-visible {
background-color: var(--nodedc-focus-surface);
box-shadow: var(--nodedc-glass-control-shadow), inset 0 0 0 1px rgba(var(--nodedc-accent-rgb), 0.22);
}
.nodedc-material-rim {
position: relative;
isolation: isolate;
}
.nodedc-material-rim::after {
position: absolute;
z-index: 2;
inset: 0;
padding: 1px;
border-radius: inherit;
background: var(--nodedc-glass-rim);
content: "";
pointer-events: none;
-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
}
.nodedc-glass {
position: relative;
isolation: isolate;
min-width: 0;
border: 0;
border-radius: var(--nodedc-radius-card);
background: var(--nodedc-glass-panel-surface);
color: var(--nodedc-text-primary);
box-shadow: var(--nodedc-glass-panel-shadow);
backdrop-filter: blur(var(--nodedc-blur-panel)) saturate(1.24) brightness(1.04);
-webkit-backdrop-filter: blur(var(--nodedc-blur-panel)) saturate(1.24) brightness(1.04);
}
.nodedc-glass[data-tone="strong"] {
background: var(--nodedc-glass-panel-surface-strong);
}
.nodedc-glass[data-tone="soft"] {
background: var(--nodedc-glass-panel-bg-soft);
box-shadow: var(--nodedc-glass-control-shadow);
}
.nodedc-glass[data-radius="panel"] {
border-radius: var(--nodedc-radius-panel);
}
.nodedc-glass[data-radius="modal"] {
border-radius: var(--nodedc-radius-modal);
}
.nodedc-glass[data-padding="sm"] {
padding: var(--nodedc-space-3);
}
.nodedc-glass[data-padding="md"] {
padding: var(--nodedc-space-4);
}
.nodedc-glass[data-padding="lg"] {
padding: var(--nodedc-space-6);
}
.nodedc-button {
--nodedc-button-bg: var(--nodedc-glass-control-bg);
--nodedc-button-color: var(--nodedc-text-primary);
display: inline-flex;
min-height: var(--nodedc-control-height);
align-items: center;
justify-content: center;
gap: var(--nodedc-space-2);
border-radius: var(--nodedc-radius-control);
background: var(--nodedc-button-bg);
color: var(--nodedc-button-color);
padding: 0.25rem 1.25rem;
box-shadow: var(--nodedc-glass-control-shadow);
font-size: var(--nodedc-font-size-md);
font-weight: var(--nodedc-font-weight-strong);
line-height: 1;
cursor: pointer;
transition: background var(--nodedc-duration-normal) var(--nodedc-ease-standard), color var(--nodedc-duration-normal) var(--nodedc-ease-standard), opacity var(--nodedc-duration-normal) var(--nodedc-ease-standard), transform var(--nodedc-duration-fast) var(--nodedc-ease-standard);
}
.nodedc-button:hover:not(:disabled) {
background: var(--nodedc-glass-control-hover);
}
.nodedc-button:active:not(:disabled) {
transform: translateY(1px);
}
.nodedc-button[data-size="compact"] {
min-height: var(--nodedc-control-height-compact);
border-radius: var(--nodedc-radius-control-compact);
padding-inline: 1rem;
font-size: var(--nodedc-font-size-sm);
}
.nodedc-button[data-width="full"] {
width: 100%;
}
.nodedc-button[data-shape="pill"] {
border-radius: var(--nodedc-radius-circle);
}
.nodedc-button[data-shape="rounded"] {
border-radius: var(--nodedc-inspector-button-radius);
}
.nodedc-button[data-variant="primary"],
.nodedc-button[data-variant="accent"] {
--nodedc-button-bg: rgb(var(--nodedc-accent-rgb));
--nodedc-button-color: rgb(var(--nodedc-on-accent-rgb));
box-shadow: none;
}
.nodedc-button[data-variant="primary"]:hover:not(:disabled),
.nodedc-button[data-variant="accent"]:hover:not(:disabled) {
background: color-mix(in srgb, rgb(var(--nodedc-accent-rgb)) 84%, white);
}
.nodedc-button[data-variant="ghost"] {
background: transparent;
box-shadow: none;
color: var(--nodedc-text-secondary);
}
.nodedc-button[data-variant="danger"] {
background: transparent;
box-shadow: none;
color: rgb(var(--nodedc-danger-rgb));
}
.nodedc-button[data-variant="danger"]:hover:not(:disabled) {
background: rgba(var(--nodedc-danger-rgb), 0.12);
}
.nodedc-button:disabled,
.nodedc-icon-button:disabled,
.nodedc-checker:disabled,
.nodedc-select-trigger:disabled,
.nodedc-dropdown-option:disabled {
opacity: 0.42;
cursor: not-allowed;
}
.nodedc-button__icon {
display: inline-grid;
flex: 0 0 auto;
place-items: center;
}
.nodedc-button__icon > svg {
width: 1rem;
height: 1rem;
}
.nodedc-icon-button {
display: inline-grid;
width: var(--nodedc-icon-button-size);
height: var(--nodedc-icon-button-size);
flex: 0 0 var(--nodedc-icon-button-size);
place-items: center;
border-radius: var(--nodedc-radius-circle);
background: var(--nodedc-glass-control-bg);
color: var(--nodedc-text-secondary);
box-shadow: var(--nodedc-glass-control-shadow);
cursor: pointer;
transition: background var(--nodedc-duration-normal) var(--nodedc-ease-standard), color var(--nodedc-duration-normal) var(--nodedc-ease-standard), transform var(--nodedc-duration-fast) var(--nodedc-ease-standard);
}
.nodedc-icon-button:hover:not(:disabled),
.nodedc-icon-button[aria-expanded="true"] {
background: var(--nodedc-glass-control-hover);
color: var(--nodedc-text-primary);
}
.nodedc-icon-button:active:not(:disabled) {
transform: translateY(1px);
}
.nodedc-icon-button[data-shape="rounded"] {
border-radius: var(--nodedc-radius-control-compact);
}
.nodedc-icon-button > svg {
width: 1rem;
height: 1rem;
}
.nodedc-field {
display: grid;
min-width: 0;
gap: 0.45rem;
}
.nodedc-field__label-row {
display: flex;
min-width: 0;
align-items: baseline;
justify-content: space-between;
gap: var(--nodedc-space-2);
padding-inline: 0.15rem;
}
.nodedc-field__label {
color: var(--nodedc-text-secondary);
font-size: var(--nodedc-font-size-sm);
font-weight: var(--nodedc-font-weight-medium);
}
.nodedc-field__hint,
.nodedc-field__description {
color: var(--nodedc-text-muted);
font-size: var(--nodedc-font-size-xs);
line-height: 1.35;
}
.nodedc-field__control {
width: 100%;
min-height: var(--nodedc-control-height);
border: 0;
outline: 0;
border-radius: var(--nodedc-radius-control);
background: var(--nodedc-field-bg);
color: var(--nodedc-text-primary);
padding: 0.25rem 1rem;
box-shadow: var(--nodedc-glass-control-shadow);
font: inherit;
font-size: var(--nodedc-font-size-md);
transition: background var(--nodedc-duration-normal) var(--nodedc-ease-standard), box-shadow var(--nodedc-duration-normal) var(--nodedc-ease-standard);
}
.nodedc-field__control::placeholder {
color: var(--nodedc-text-muted);
}
.nodedc-field__control:hover:not(:disabled) {
background: var(--nodedc-glass-control-hover);
}
.nodedc-field__control:focus-visible {
background: var(--nodedc-focus-surface);
box-shadow: var(--nodedc-glass-control-shadow), inset 0 0 0 1px rgba(var(--nodedc-accent-rgb), 0.22);
}
textarea.nodedc-field__control {
min-height: 6rem;
padding-block: 0.85rem;
resize: vertical;
}
.nodedc-media-field {
display: grid;
min-width: 0;
gap: 0.42rem;
}
.nodedc-media-field__label-row {
display: flex;
min-width: 0;
align-items: baseline;
justify-content: space-between;
gap: var(--nodedc-space-2);
padding-inline: 0.15rem;
}
.nodedc-media-field__label,
.nodedc-media-field__kind {
color: var(--nodedc-text-secondary);
font-size: var(--nodedc-font-size-sm);
font-weight: var(--nodedc-font-weight-medium);
}
.nodedc-media-field__kind {
border-radius: var(--nodedc-radius-circle);
background: rgba(255, 255, 255, 0.07);
padding: 0.16rem 0.56rem;
color: var(--nodedc-text-muted);
font-size: 0.62rem;
font-weight: 800;
letter-spacing: 0.05em;
line-height: 1;
text-transform: uppercase;
}
.nodedc-media-control {
display: grid;
min-height: 3.35rem;
min-width: 0;
grid-template-columns: minmax(0, 1fr) auto auto;
align-items: center;
gap: 0.22rem;
overflow: hidden;
border-radius: var(--nodedc-radius-circle);
background: var(--nodedc-field-bg);
padding: 0.25rem;
box-shadow: var(--nodedc-glass-control-shadow);
}
.nodedc-media-file {
display: flex;
min-width: 0;
height: 100%;
align-items: center;
gap: 0.7rem;
padding-left: 0.15rem;
}
.nodedc-media-file[hidden],
.nodedc-media-url[hidden] {
display: none;
}
.nodedc-media-file input {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
}
.nodedc-media-file__button {
display: inline-flex;
min-height: 2.78rem;
flex: 0 0 auto;
align-items: center;
justify-content: center;
border-radius: var(--nodedc-radius-circle);
background: rgba(255, 255, 255, 0.92);
color: rgba(8, 8, 10, 0.96);
padding: 0 1rem;
font-size: 0.78rem;
font-weight: 850;
white-space: nowrap;
cursor: pointer;
}
.nodedc-media-file__button:hover {
background: #fff;
}
.nodedc-media-file__name {
min-width: 0;
overflow: hidden;
color: var(--nodedc-text-muted);
font-size: 0.78rem;
font-weight: 650;
text-overflow: ellipsis;
white-space: nowrap;
}
.nodedc-media-url {
min-width: 0;
height: 100%;
border: 0;
border-radius: var(--nodedc-radius-circle);
outline: 0;
background: transparent;
color: var(--nodedc-text-primary);
padding: 0 0.82rem;
font: inherit;
font-size: 0.78rem;
}
.nodedc-media-url::placeholder {
color: var(--nodedc-text-muted);
}
.nodedc-media-source-switch {
display: inline-flex;
align-items: center;
gap: 0.12rem;
}
.nodedc-media-source-button {
display: grid;
width: 2.78rem;
height: 2.78rem;
place-items: center;
border: 1px solid rgba(255, 255, 255, 0.18);
border-radius: var(--nodedc-radius-circle);
background: transparent;
color: var(--nodedc-text-secondary);
font: inherit;
font-size: 0.68rem;
font-weight: 800;
cursor: pointer;
}
.nodedc-media-source-button:hover {
background: var(--nodedc-glass-control-hover);
color: var(--nodedc-text-primary);
}
.nodedc-media-source-button[data-active="true"] {
border-color: rgba(255, 255, 255, 0.92);
background: rgba(255, 255, 255, 0.92);
color: rgba(8, 8, 10, 0.96);
}
.nodedc-media-preview {
position: relative;
display: grid;
width: 2.78rem;
min-width: 2.78rem;
height: 2.78rem;
place-items: center;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.16);
border-radius: var(--nodedc-radius-circle);
background:
linear-gradient(45deg, rgba(255, 255, 255, 0.16) 25%, transparent 25% 75%, rgba(255, 255, 255, 0.16) 75%),
linear-gradient(45deg, rgba(255, 255, 255, 0.16) 25%, transparent 25% 75%, rgba(255, 255, 255, 0.16) 75%),
rgba(18, 18, 20, 0.92);
background-position: 0 0, 6px 6px, 0 0;
background-size: 12px 12px, 12px 12px, auto;
color: var(--nodedc-text-secondary);
}
.nodedc-media-preview img,
.nodedc-media-preview video {
position: absolute;
inset: 0;
display: block;
width: 100%;
height: 100%;
border-radius: inherit;
object-fit: cover;
}
.nodedc-media-field__path,
.nodedc-media-field__hint,
.nodedc-media-field__error {
color: var(--nodedc-text-muted);
font-size: var(--nodedc-font-size-xs);
line-height: 1.35;
}
.nodedc-media-field__error {
color: rgb(var(--nodedc-danger-rgb));
}
.nodedc-settings-card {
display: grid;
min-width: 0;
gap: 1rem;
border-radius: var(--nodedc-radius-card);
background: var(--nodedc-glass-control-bg);
padding: 1rem;
}
.nodedc-settings-card__head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 1rem;
}
.nodedc-settings-card__titles {
display: grid;
min-width: 0;
gap: 0.22rem;
}
.nodedc-settings-card__titles > span {
color: var(--nodedc-text-muted);
font-size: 0.66rem;
font-weight: 800;
letter-spacing: 0.07em;
text-transform: uppercase;
}
.nodedc-settings-card__titles h2,
.nodedc-settings-card__titles p {
margin: 0;
}
.nodedc-settings-card__titles h2 {
color: var(--nodedc-text-primary);
font-size: 1rem;
line-height: 1.25;
}
.nodedc-settings-card__titles p {
color: var(--nodedc-text-muted);
font-size: 0.75rem;
line-height: 1.4;
}
.nodedc-settings-card__actions {
display: flex;
flex: 0 0 auto;
align-items: center;
gap: 0.4rem;
}
.nodedc-settings-card__body {
display: grid;
min-width: 0;
gap: 0.8rem;
}
.nodedc-switch {
display: inline-flex;
width: max-content;
align-items: center;
gap: 0.48rem;
border: 0;
background: transparent;
color: var(--nodedc-text-secondary);
font: inherit;
font-size: var(--nodedc-font-size-sm);
font-weight: var(--nodedc-font-weight-strong);
cursor: pointer;
}
.nodedc-switch__track {
display: flex;
width: 2rem;
height: 1.12rem;
align-items: center;
border-radius: var(--nodedc-radius-circle);
background: rgba(255, 255, 255, 0.14);
padding: 0.14rem;
transition: background var(--nodedc-duration-normal) var(--nodedc-ease-standard);
}
.nodedc-switch__track > span {
width: 0.84rem;
height: 0.84rem;
border-radius: var(--nodedc-radius-circle);
background: var(--nodedc-text-primary);
transition: transform var(--nodedc-duration-normal) var(--nodedc-ease-standard);
}
.nodedc-switch[aria-checked="true"] .nodedc-switch__track {
background: rgb(var(--nodedc-accent-rgb));
}
.nodedc-switch[aria-checked="true"] .nodedc-switch__track > span {
transform: translateX(0.88rem);
}
.nodedc-checker {
display: grid;
width: 100%;
min-height: var(--nodedc-control-height);
grid-template-columns: minmax(0, 1fr) 1.625rem;
align-items: center;
gap: var(--nodedc-space-3);
border-radius: var(--nodedc-radius-circle);
background: var(--nodedc-field-bg);
color: var(--nodedc-text-primary);
padding: 0.5rem 0.7rem 0.5rem 1rem;
box-shadow: var(--nodedc-glass-control-shadow);
text-align: left;
cursor: pointer;
transition: background var(--nodedc-duration-normal) var(--nodedc-ease-standard);
}
.nodedc-checker:hover:not(:disabled) {
background: var(--nodedc-glass-control-hover);
}
.nodedc-checker__copy {
display: grid;
min-width: 0;
gap: 0.18rem;
}
.nodedc-checker__label {
overflow: hidden;
font-size: var(--nodedc-font-size-md);
font-weight: var(--nodedc-font-weight-strong);
line-height: 1.2;
text-overflow: ellipsis;
white-space: nowrap;
}
.nodedc-checker__description {
color: var(--nodedc-text-muted);
font-size: var(--nodedc-font-size-xs);
font-weight: var(--nodedc-font-weight-regular);
line-height: 1.25;
}
.nodedc-checker__indicator {
width: 1.625rem;
height: 1.625rem;
border-radius: var(--nodedc-radius-circle);
background: color-mix(in srgb, var(--nodedc-canvas) 68%, transparent);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(255, 255, 255, 0.035);
}
.nodedc-checker[aria-checked="true"] .nodedc-checker__indicator {
background: rgb(var(--nodedc-accent-rgb));
box-shadow: none;
}
.nodedc-range {
--nodedc-range-progress: 50%;
position: relative;
width: 100%;
height: var(--nodedc-control-height);
overflow: hidden;
border-radius: var(--nodedc-radius-circle);
background: var(--nodedc-field-bg);
box-shadow: var(--nodedc-glass-control-shadow);
}
.nodedc-range::before {
position: absolute;
inset: 0 auto 0 0;
width: var(--nodedc-range-progress);
border-radius: inherit;
background: rgb(var(--nodedc-accent-rgb));
content: "";
}
.nodedc-range input[type="range"] {
position: absolute;
z-index: 4;
inset: 0;
width: 100%;
height: 100%;
margin: 0;
appearance: none;
border: 0;
outline: 0;
background: transparent;
opacity: 0;
cursor: pointer;
}
.nodedc-range__label,
.nodedc-range__value {
position: absolute;
z-index: 2;
top: 50%;
color: var(--nodedc-text-primary);
font-size: var(--nodedc-font-size-sm);
font-weight: var(--nodedc-font-weight-medium);
line-height: 1;
pointer-events: none;
transform: translateY(-50%);
}
.nodedc-range__label {
left: 1rem;
max-width: calc(100% - 7rem);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.nodedc-range__value {
right: 1rem;
}
.nodedc-range__fill-text {
position: absolute;
z-index: 3;
inset: 0;
overflow: hidden;
clip-path: inset(0 calc(100% - var(--nodedc-range-progress)) 0 0);
pointer-events: none;
}
.nodedc-range__fill-text .nodedc-range__label,
.nodedc-range__fill-text .nodedc-range__value {
color: rgb(var(--nodedc-on-accent-rgb));
}
.nodedc-color-field {
display: grid;
min-height: var(--nodedc-control-height);
grid-template-columns: 1.625rem minmax(0, 1fr);
align-items: center;
gap: var(--nodedc-space-2);
border-radius: var(--nodedc-radius-circle);
background: var(--nodedc-field-bg);
padding: 0.35rem 0.8rem 0.35rem 0.45rem;
box-shadow: var(--nodedc-glass-control-shadow);
}
.nodedc-color-field__picker {
position: relative;
width: 1.625rem;
height: 1.625rem;
overflow: hidden;
border-radius: var(--nodedc-radius-circle);
background: var(--nodedc-color-value, #000);
}
.nodedc-color-field__picker input {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
opacity: 0;
cursor: pointer;
}
.nodedc-color-field__text {
width: 100%;
border: 0;
outline: 0;
background: transparent;
color: var(--nodedc-text-secondary);
font: inherit;
font-size: var(--nodedc-font-size-sm);
text-align: center;
}
.nodedc-status {
display: inline-flex;
min-height: 2.08rem;
align-items: center;
justify-content: center;
border-radius: var(--nodedc-radius-circle);
background: rgba(255, 255, 255, 0.075);
color: var(--nodedc-text-secondary);
padding: 0.35rem 0.85rem;
font-size: var(--nodedc-font-size-sm);
font-weight: var(--nodedc-font-weight-medium);
line-height: 1;
white-space: nowrap;
}
.nodedc-status[data-tone="success"] {
background: rgba(var(--nodedc-success-rgb), 0.1);
color: color-mix(in srgb, rgb(var(--nodedc-success-rgb)) 74%, var(--nodedc-text-primary));
}
.nodedc-status[data-tone="warning"] {
background: rgba(var(--nodedc-warning-rgb), 0.1);
color: color-mix(in srgb, rgb(var(--nodedc-warning-rgb)) 74%, var(--nodedc-text-primary));
}
.nodedc-status[data-tone="danger"] {
background: rgba(var(--nodedc-danger-rgb), 0.1);
color: color-mix(in srgb, rgb(var(--nodedc-danger-rgb)) 74%, var(--nodedc-text-primary));
}
.nodedc-status[data-tone="accent"] {
background: rgba(var(--nodedc-accent-rgb), 0.1);
color: color-mix(in srgb, rgb(var(--nodedc-accent-rgb)) 76%, var(--nodedc-text-primary));
}
.nodedc-segmented {
display: inline-flex;
min-height: var(--nodedc-header-pill-height);
align-items: center;
gap: 0.18rem;
border-radius: var(--nodedc-radius-circle);
background: var(--nodedc-glass-panel-bg-soft);
padding: 0.32rem;
box-shadow: var(--nodedc-glass-control-shadow);
backdrop-filter: blur(var(--nodedc-blur-control)) saturate(1.2);
-webkit-backdrop-filter: blur(var(--nodedc-blur-control)) saturate(1.2);
}
.nodedc-segmented__item {
display: inline-flex;
min-height: calc(var(--nodedc-header-pill-height) - 0.64rem);
align-items: center;
justify-content: center;
gap: 0.45rem;
border-radius: var(--nodedc-radius-circle);
background: transparent;
color: var(--nodedc-text-secondary);
padding: 0.2rem 1.15rem;
font-size: var(--nodedc-font-size-sm);
font-weight: var(--nodedc-font-weight-strong);
line-height: 1;
white-space: nowrap;
cursor: pointer;
transition: background var(--nodedc-duration-normal) ease, color var(--nodedc-duration-normal) ease;
}
.nodedc-segmented__item:hover:not(:disabled) {
background: var(--nodedc-glass-control-hover);
color: var(--nodedc-text-primary);
}
.nodedc-segmented__item[data-active="true"] {
background: var(--nodedc-glass-control-active);
color: var(--nodedc-glass-control-active-text);
}
.nodedc-header-shell {
position: relative;
z-index: var(--nodedc-layer-header);
width: min(100%, calc(100vw - 18px));
margin-inline: auto;
padding: 1rem var(--nodedc-page-padding) 0.75rem;
}
.nodedc-header-shell[data-fixed="true"] {
position: fixed;
top: 0;
left: 50%;
margin-inline: 0;
transform: translateX(-50%);
}
.nodedc-header {
display: flex;
min-height: 4.25rem;
width: 100%;
flex-direction: column;
}
.nodedc-header__row {
display: grid;
min-height: var(--nodedc-header-row-height);
width: 100%;
grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
align-items: center;
gap: var(--nodedc-space-4);
}
.nodedc-header__left,
.nodedc-header__center,
.nodedc-header__right {
display: flex;
min-width: 0;
align-items: center;
gap: var(--nodedc-space-3);
}
.nodedc-header__left {
justify-content: flex-start;
}
.nodedc-header__center {
justify-content: center;
}
.nodedc-header__right {
justify-content: flex-end;
}
.nodedc-header__brand {
display: inline-flex;
width: var(--nodedc-header-logo-width);
height: var(--nodedc-header-logo-height);
flex: 0 0 auto;
align-items: center;
color: var(--nodedc-text-primary);
line-height: 0;
}
.nodedc-header__brand img,
.nodedc-header__brand svg {
display: block;
width: 100%;
height: 100%;
object-fit: contain;
}
.nodedc-header__profile {
display: inline-flex;
height: var(--nodedc-header-pill-height);
min-height: var(--nodedc-header-pill-height);
align-items: center;
gap: 0.2rem;
border-radius: var(--nodedc-radius-circle);
background: var(--nodedc-header-pill-bg);
padding: 0.32rem;
box-shadow: var(--nodedc-glass-control-shadow);
}
.nodedc-header__profile .nodedc-icon-button {
width: var(--nodedc-header-control-height);
height: var(--nodedc-header-control-height);
flex-basis: var(--nodedc-header-control-height);
background: transparent;
box-shadow: none;
}
.nodedc-header__profile-button {
display: inline-flex;
min-height: var(--nodedc-header-control-height);
align-items: center;
justify-content: center;
gap: 0.45rem;
border: 0;
border-radius: var(--nodedc-radius-circle);
outline: 0;
background: transparent;
color: var(--nodedc-text-secondary);
padding: 0.2rem 1.2rem;
font: inherit;
font-size: var(--nodedc-font-size-sm);
font-weight: 700;
cursor: pointer;
}
.nodedc-header__profile-button:hover,
.nodedc-header__profile-button:focus-visible {
background: var(--nodedc-glass-control-hover);
color: var(--nodedc-text-primary);
}
.nodedc-header__avatar {
display: grid;
width: var(--nodedc-header-row-height);
height: var(--nodedc-header-row-height);
flex: 0 0 var(--nodedc-header-row-height);
place-items: center;
overflow: hidden;
border-radius: var(--nodedc-radius-circle);
background:
radial-gradient(circle at 70% 18%, rgba(255, 255, 255, 0.8), transparent 24%),
linear-gradient(135deg, #c8c9cb, #8d8f96 55%, #f1f1f1);
color: rgba(8, 8, 10, 0.96);
font-size: 0.72rem;
font-weight: 800;
}
.nodedc-header__avatar img {
width: 100%;
height: 100%;
object-fit: cover;
}
.nodedc-header__workspace {
display: inline-grid;
width: var(--nodedc-header-row-height);
height: var(--nodedc-header-row-height);
flex: 0 0 var(--nodedc-header-row-height);
place-items: center;
overflow: hidden;
border-radius: var(--nodedc-radius-circle);
background: transparent;
color: var(--nodedc-text-primary);
font-size: var(--nodedc-font-size-sm);
font-weight: var(--nodedc-font-weight-strong);
}
.nodedc-header__workspace img {
display: block;
width: 1.75rem;
height: 1.75rem;
object-fit: contain;
}
.nodedc-header__workspace[data-kind="avatar"] img {
width: 100%;
height: 100%;
border-radius: inherit;
object-fit: cover;
}
.nodedc-header__nav {
display: contents;
}
.nodedc-header-navigation {
display: inline-flex;
min-height: var(--nodedc-header-pill-height);
align-items: center;
gap: 0.18rem;
border-radius: var(--nodedc-radius-circle);
background: var(--nodedc-header-pill-bg);
padding: 0.32rem;
box-shadow: none;
}
.nodedc-header__nav-item {
display: inline-flex;
min-height: var(--nodedc-header-control-height);
align-items: center;
justify-content: center;
border-radius: var(--nodedc-radius-circle);
background: transparent;
color: var(--nodedc-text-secondary);
padding: 0.2rem 1.2rem;
font-size: var(--nodedc-font-size-sm);
font-weight: var(--nodedc-font-weight-strong);
cursor: pointer;
}
.nodedc-header__nav-item:hover {
background: var(--nodedc-glass-control-hover);
color: var(--nodedc-text-primary);
}
.nodedc-header__nav-item[data-active="true"] {
background: var(--nodedc-glass-control-active);
color: var(--nodedc-glass-control-active-text);
}
.nodedc-app-shell {
--nodedc-app-header-height: 6rem;
--nodedc-app-page-pad: 1.25rem;
--nodedc-app-panel-gap: 1.25rem;
--nodedc-app-nav-width: clamp(20.75rem, 19.5vw, 22rem);
--nodedc-app-content-width: calc(
100vw - (var(--nodedc-app-page-pad) * 2) - (var(--nodedc-app-panel-gap) * 2) - (var(--nodedc-app-nav-width) * 2)
);
min-height: 100vh;
overflow: hidden;
background: var(--nodedc-canvas);
}
.nodedc-app-shell__main {
position: relative;
height: calc(100vh - var(--nodedc-app-header-height));
min-height: 0;
margin-top: var(--nodedc-app-header-height);
overflow: hidden;
}
.nodedc-app-shell__stage {
position: absolute;
inset: 0;
overflow: hidden;
padding: 0 var(--nodedc-app-page-pad) var(--nodedc-app-page-pad);
transition: padding 440ms cubic-bezier(0.22, 1, 0.36, 1), transform 440ms cubic-bezier(0.22, 1, 0.36, 1);
}
.nodedc-app-shell__stage > * {
width: 100%;
height: 100%;
}
.nodedc-app-shell__navigation,
.nodedc-app-shell__content {
position: absolute;
z-index: var(--nodedc-layer-panel);
top: 0;
bottom: var(--nodedc-app-page-pad);
min-height: 0;
}
.nodedc-app-shell__navigation {
left: var(--nodedc-app-page-pad);
width: var(--nodedc-app-nav-width);
}
.nodedc-app-shell__content {
left: calc(var(--nodedc-app-page-pad) + var(--nodedc-app-nav-width) + var(--nodedc-app-panel-gap));
width: max(32rem, var(--nodedc-app-content-width));
transition: width 500ms cubic-bezier(0.22, 1, 0.36, 1), right 500ms cubic-bezier(0.22, 1, 0.36, 1);
}
.nodedc-app-shell[data-navigation-open="true"] .nodedc-app-shell__stage {
padding-left: calc(var(--nodedc-app-page-pad) + var(--nodedc-app-nav-width) + var(--nodedc-app-panel-gap));
}
.nodedc-app-shell[data-content-open="true"]:not([data-content-expanded="true"]) .nodedc-app-shell__stage {
padding-left: calc(
var(--nodedc-app-page-pad) + var(--nodedc-app-nav-width) + var(--nodedc-app-panel-gap) +
max(32rem, var(--nodedc-app-content-width)) + var(--nodedc-app-panel-gap)
);
}
.nodedc-app-shell[data-content-open="true"][data-content-expanded="true"] .nodedc-app-shell__content {
right: var(--nodedc-app-page-pad);
width: auto;
}
.nodedc-app-shell[data-content-open="true"][data-content-expanded="true"] .nodedc-app-shell__stage {
pointer-events: none;
transform: translateX(calc(100vw + var(--nodedc-app-page-pad)));
}
.nodedc-application-panel {
display: grid;
width: 100%;
height: 100%;
min-height: 0;
grid-template-rows: auto minmax(0, 1fr);
gap: 0.75rem;
overflow: hidden;
border: 0;
border-radius: var(--nodedc-radius-card);
background:
linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012)),
rgba(10, 10, 13, 0.9);
color: var(--nodedc-text-primary);
padding: 1rem;
box-shadow: 0 34px 110px rgba(0, 0, 0, 0.42);
backdrop-filter: blur(28px);
-webkit-backdrop-filter: blur(28px);
animation: nodedc-application-panel-in 460ms cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes nodedc-application-panel-in {
from { opacity: 0; transform: translateX(-1.1rem); }
to { opacity: 1; transform: translateX(0); }
}
.nodedc-application-panel__head {
display: flex;
min-height: 3.55rem;
align-items: flex-start;
justify-content: space-between;
gap: 1rem;
}
.nodedc-application-panel__titles {
display: grid;
min-width: 0;
gap: 0.24rem;
padding: 0.2rem 0.25rem;
}
.nodedc-application-panel__titles span {
color: var(--nodedc-text-muted);
font-size: 0.68rem;
font-weight: 800;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.nodedc-application-panel__titles h1,
.nodedc-application-panel__titles p {
margin: 0;
}
.nodedc-application-panel__titles h1 {
font-size: 1.15rem;
font-weight: 780;
line-height: 1.15;
}
.nodedc-application-panel__titles p {
max-width: 42rem;
color: var(--nodedc-text-muted);
font-size: 0.75rem;
line-height: 1.35;
}
.nodedc-application-panel__actions {
display: flex;
flex: 0 0 auto;
align-items: center;
gap: 0.45rem;
}
.nodedc-application-panel__action {
display: grid;
width: 2.92rem;
height: 2.92rem;
place-items: center;
border: 1px solid rgba(255, 255, 255, 0.22);
border-radius: var(--nodedc-radius-circle);
outline: 0;
background: transparent;
color: var(--nodedc-text-secondary);
cursor: pointer;
}
.nodedc-application-panel__action:hover,
.nodedc-application-panel__action:focus-visible {
border-color: rgba(255, 255, 255, 0.3);
background: var(--nodedc-glass-control-hover);
color: var(--nodedc-text-primary);
}
.nodedc-application-panel[data-expanded="true"] .nodedc-application-panel__action:first-child {
border-color: transparent;
background: var(--nodedc-glass-control-active);
color: var(--nodedc-glass-control-active-text);
}
.nodedc-application-panel__body {
min-height: 0;
overflow: auto;
overscroll-behavior: contain;
scrollbar-width: thin;
scrollbar-color: rgba(255, 255, 255, 0.15) transparent;
}
.nodedc-admin-panel {
position: relative;
display: grid;
width: min(22rem, calc(100vw - 2.5rem));
height: 100%;
min-height: 0;
grid-template-rows: auto auto minmax(0, 1fr) auto;
gap: 1.05rem;
overflow: hidden;
border: 0;
border-radius: var(--nodedc-radius-card);
background:
linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012)),
rgba(10, 10, 13, 0.9);
color: var(--nodedc-text-primary);
padding: 1.1rem;
box-shadow: 0 34px 110px rgba(0, 0, 0, 0.52);
backdrop-filter: blur(28px);
-webkit-backdrop-filter: blur(28px);
animation: nodedc-admin-panel-in 420ms cubic-bezier(0.22, 1, 0.36, 1) both;
}
.nodedc-admin-panel:not([data-has-contexts="true"]) {
grid-template-rows: auto minmax(0, 1fr) auto;
}
@keyframes nodedc-admin-panel-in {
from { opacity: 0; transform: translateX(-1.6rem); }
to { opacity: 1; transform: translateX(0); }
}
.nodedc-admin-panel__head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 3.05rem;
}
.nodedc-admin-panel__head p,
.nodedc-admin-panel__head h2 {
margin: 0;
}
.nodedc-admin-panel__head p {
color: var(--nodedc-text-muted);
font-size: 0.68rem;
font-weight: 850;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.nodedc-admin-panel__head h2 {
margin-top: 0.55rem;
font-size: 1.15rem;
font-weight: 780;
line-height: 1.1;
}
.nodedc-admin-panel__close {
position: absolute;
top: 5px;
right: 5px;
display: grid;
width: 2.92rem;
height: 2.92rem;
place-items: center;
border: 1px solid rgba(255, 255, 255, 0.22);
border-radius: var(--nodedc-radius-circle);
outline: 0;
background: transparent;
color: var(--nodedc-text-secondary);
cursor: pointer;
}
.nodedc-admin-panel__close:hover {
border-color: rgba(255, 255, 255, 0.3);
background: var(--nodedc-glass-control-hover);
color: var(--nodedc-text-primary);
}
.nodedc-admin-panel__contexts,
.nodedc-admin-panel__context-group {
display: grid;
gap: 0.48rem;
}
.nodedc-admin-panel__context-group {
gap: 0.28rem;
}
.nodedc-admin-panel__group-label {
padding-inline: 0.35rem;
color: var(--nodedc-text-muted);
font-size: 0.68rem;
font-weight: 850;
letter-spacing: 0.12em;
text-transform: uppercase;
}
.nodedc-admin-context {
display: grid;
width: calc(100% + 2.2rem);
min-height: 3.55rem;
margin-inline: -1.1rem;
grid-template-columns: minmax(0, 1fr);
overflow: hidden;
border-radius: var(--nodedc-radius-circle);
background: rgba(255, 255, 255, 0.04);
color: var(--nodedc-text-secondary);
opacity: 0.72;
}
.nodedc-admin-context[data-active="true"] {
background: rgba(74, 74, 74, 0.5);
color: var(--nodedc-text-primary);
opacity: 1;
}
.nodedc-admin-context--split {
grid-template-columns: minmax(0, 1fr) 2.92rem;
}
.nodedc-admin-context__main,
.nodedc-admin-context__toggle {
border: 0;
outline: 0;
background: transparent;
color: inherit;
font: inherit;
cursor: pointer;
}
.nodedc-admin-context__main {
display: flex;
min-width: 0;
min-height: 3.55rem;
align-items: center;
gap: 0.65rem;
padding: 5px 0 5px 5px;
text-align: left;
}
.nodedc-admin-context__toggle {
display: grid;
width: 2.92rem;
place-items: center;
border-radius: var(--nodedc-radius-circle);
color: var(--nodedc-text-muted);
}
.nodedc-admin-context__toggle:hover {
background: var(--nodedc-glass-control-hover);
color: var(--nodedc-text-primary);
}
.nodedc-admin-context__icon,
.nodedc-admin-panel__nav-icon {
display: grid;
width: 2.92rem;
height: 2.92rem;
flex: 0 0 2.92rem;
place-items: center;
border-radius: var(--nodedc-radius-circle);
background: rgba(255, 255, 255, 0.06);
color: var(--nodedc-text-secondary);
}
.nodedc-admin-context__body {
display: grid;
min-width: 0;
gap: 0.12rem;
}
.nodedc-admin-context__body strong,
.nodedc-admin-context__body small {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.nodedc-admin-context__body strong {
font-size: 0.92rem;
font-weight: 800;
}
.nodedc-admin-context__body small {
color: var(--nodedc-text-muted);
font-size: 0.72rem;
font-weight: 750;
}
.nodedc-admin-panel__nav {
display: grid;
width: calc(100% + 2.2rem);
min-height: 0;
margin-inline: -1.1rem;
align-content: start;
gap: 0.22rem;
overflow-y: auto;
scrollbar-width: none;
}
.nodedc-admin-panel__nav::-webkit-scrollbar {
display: none;
}
.nodedc-admin-panel__nav-item,
.nodedc-admin-panel__footer {
position: relative;
display: flex;
width: 100%;
min-height: 3.55rem;
align-items: center;
gap: 0.86rem;
border: 0;
border-radius: var(--nodedc-radius-circle);
background: rgba(255, 255, 255, 0.04);
color: var(--nodedc-text-secondary);
padding: 5px 0.9rem 5px calc(5px + 2.92rem + 0.86rem);
font: inherit;
font-size: 0.91rem;
font-weight: 570;
text-align: left;
opacity: 0.66;
}
.nodedc-admin-panel__nav-item {
outline: 0;
cursor: pointer;
transition: background 160ms ease, color 160ms ease, opacity 160ms ease, transform 160ms ease;
}
.nodedc-admin-panel__nav-item:hover {
background: rgba(255, 255, 255, 0.085);
color: var(--nodedc-text-primary);
opacity: 0.92;
transform: translateY(-1px);
}
.nodedc-admin-panel__nav-item[data-active="true"] {
background: rgba(255, 255, 255, 0.115);
color: var(--nodedc-text-primary);
opacity: 1;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.048), 0 10px 22px rgba(0, 0, 0, 0.12);
}
.nodedc-admin-panel__nav-item:focus-visible {
outline: 0;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08), 0 10px 22px rgba(0, 0, 0, 0.12);
}
.nodedc-app-shell__navigation > .nodedc-admin-panel {
width: 100%;
}
.nodedc-admin-panel__nav-icon {
position: absolute;
top: 50%;
left: 5px;
background: rgba(255, 255, 255, 0.045);
transform: translateY(-50%);
}
.nodedc-admin-panel__nav-item[data-active="true"] .nodedc-admin-panel__nav-icon {
background: rgba(247, 248, 244, 0.96);
color: rgb(var(--nodedc-on-accent-rgb));
}
.nodedc-admin-panel__footer {
width: calc(100% + 2.2rem);
margin-inline: -1.1rem;
opacity: 0.82;
}
.nodedc-dropdown-anchor {
display: inline-flex;
}
.nodedc-dropdown-anchor.nodedc-select-anchor {
display: block;
width: 100%;
}
.nodedc-dropdown-surface {
position: fixed;
z-index: var(--nodedc-layer-popover);
display: grid;
gap: 0.2rem;
min-width: 11.25rem;
max-width: calc(100vw - 1rem);
overflow: auto;
border: 0;
border-radius: var(--nodedc-radius-control);
background: var(--nodedc-glass-panel-surface-strong);
color: var(--nodedc-text-primary);
padding: 0.45rem;
box-shadow: var(--nodedc-glass-dropdown-shadow);
backdrop-filter: blur(var(--nodedc-blur-dropdown)) saturate(1.2) brightness(1.02);
-webkit-backdrop-filter: blur(var(--nodedc-blur-dropdown)) saturate(1.2) brightness(1.02);
animation: nodedc-popover-in var(--nodedc-duration-fast) var(--nodedc-ease-standard);
}
@keyframes nodedc-popover-in {
from {
opacity: 0;
transform: translateY(-3px) scale(0.99);
}
to {
opacity: 1;
transform: translateY(0) scale(1);
}
}
.nodedc-dropdown-search {
display: flex;
min-height: var(--nodedc-control-height-compact);
align-items: center;
gap: var(--nodedc-space-2);
border-radius: var(--nodedc-radius-control-compact);
background: var(--nodedc-field-bg);
padding: 0 0.8rem;
color: var(--nodedc-text-muted);
}
.nodedc-dropdown-search input {
min-width: 0;
flex: 1 1 auto;
border: 0;
outline: 0;
background: transparent;
color: var(--nodedc-text-primary);
font: inherit;
font-size: var(--nodedc-font-size-sm);
}
.nodedc-dropdown-option {
display: grid;
width: 100%;
min-height: 2.625rem;
grid-template-columns: auto minmax(0, 1fr) auto;
align-items: center;
gap: var(--nodedc-space-2);
border-radius: var(--nodedc-radius-option);
background: transparent;
color: var(--nodedc-text-secondary);
padding: 0.5rem 0.75rem;
text-align: left;
cursor: pointer;
}
.nodedc-dropdown-option:hover:not(:disabled),
.nodedc-dropdown-option[data-selected="true"] {
background: var(--nodedc-glass-control-hover);
color: var(--nodedc-text-primary);
}
.nodedc-dropdown-option[data-selected="true"] {
background: rgba(var(--nodedc-accent-rgb), 0.14);
}
.nodedc-dropdown-option__icon,
.nodedc-dropdown-option__check {
display: inline-grid;
place-items: center;
}
.nodedc-dropdown-option__body {
display: grid;
min-width: 0;
gap: 0.18rem;
}
.nodedc-dropdown-option__label {
overflow: hidden;
font-size: var(--nodedc-font-size-md);
font-weight: var(--nodedc-font-weight-medium);
text-overflow: ellipsis;
white-space: nowrap;
}
.nodedc-dropdown-option__description {
color: var(--nodedc-text-muted);
font-size: var(--nodedc-font-size-xs);
line-height: 1.25;
}
.nodedc-select {
position: relative;
width: 100%;
min-width: 0;
}
.nodedc-select__control {
display: grid;
width: 100%;
grid-template-columns: minmax(0, 1fr) var(--nodedc-select-toggle-width);
gap: var(--nodedc-select-gap);
}
.nodedc-select__value {
display: flex;
height: var(--nodedc-control-height);
min-width: 0;
align-items: center;
gap: var(--nodedc-space-2);
overflow: hidden;
border: 0;
border-radius: var(--nodedc-radius-control-compact);
background: var(--nodedc-field-bg);
color: var(--nodedc-text-primary);
padding: 0 0.95rem;
box-shadow: var(--nodedc-glass-control-shadow);
font-size: var(--nodedc-font-size-md);
font-weight: var(--nodedc-font-weight-medium);
line-height: 1;
text-overflow: ellipsis;
white-space: nowrap;
}
.nodedc-select__value > span:last-child {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.nodedc-select__toggle {
display: inline-grid;
width: var(--nodedc-select-toggle-width);
height: var(--nodedc-control-height);
place-items: center;
border: 0;
border-radius: var(--nodedc-radius-control-compact);
outline: 0;
background: var(--nodedc-glass-control-bg);
color: var(--nodedc-text-primary);
padding: 0;
box-shadow: var(--nodedc-glass-control-shadow);
cursor: pointer;
}
.nodedc-select__toggle:hover:not(:disabled),
.nodedc-select__toggle[aria-expanded="true"] {
background: var(--nodedc-glass-control-hover);
}
.nodedc-select__toggle:focus-visible {
background: var(--nodedc-focus-surface);
box-shadow: var(--nodedc-glass-control-shadow), inset 0 0 0 1px rgba(var(--nodedc-accent-rgb), 0.22);
}
.nodedc-dropdown-surface.nodedc-select__menu {
gap: 0.125rem;
border-radius: var(--nodedc-radius-control);
background: var(--nodedc-field-bg);
padding: 0.4375rem;
}
.nodedc-select__menu .nodedc-dropdown-option {
min-height: 2.625rem;
border-radius: var(--nodedc-radius-control-compact);
}
.nodedc-select-trigger {
display: grid;
width: 100%;
min-height: var(--nodedc-control-height);
grid-template-columns: auto minmax(0, 1fr) auto;
align-items: center;
gap: var(--nodedc-space-2);
border-radius: var(--nodedc-radius-control);
background: var(--nodedc-field-bg);
color: var(--nodedc-text-primary);
padding: 0.25rem 0.9rem 0.25rem 1rem;
box-shadow: var(--nodedc-glass-control-shadow);
text-align: left;
cursor: pointer;
}
.nodedc-select-trigger:hover:not(:disabled),
.nodedc-select-trigger[aria-expanded="true"] {
background: var(--nodedc-glass-control-hover);
}
.nodedc-select-trigger__label {
overflow: hidden;
font-size: var(--nodedc-font-size-md);
font-weight: var(--nodedc-font-weight-medium);
text-overflow: ellipsis;
white-space: nowrap;
}
.nodedc-select-trigger__chevron {
width: 0.5rem;
height: 0.5rem;
border-right: 1.5px solid currentColor;
border-bottom: 1.5px solid currentColor;
opacity: 0.72;
transform: translateY(-2px) rotate(45deg);
transition: transform var(--nodedc-duration-fast) ease;
}
.nodedc-select-trigger[aria-expanded="true"] .nodedc-select-trigger__chevron {
transform: translateY(2px) rotate(225deg);
}
.nodedc-select__toggle[aria-expanded="true"] .nodedc-select-trigger__chevron {
transform: translateY(2px) rotate(225deg);
}
.nodedc-overlay {
position: fixed;
z-index: var(--nodedc-layer-overlay);
inset: 0;
display: grid;
place-items: center;
overflow: auto;
background: var(--nodedc-overlay-bg);
padding: var(--nodedc-space-5);
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
animation: nodedc-overlay-in var(--nodedc-duration-normal) ease;
}
.nodedc-overlay[data-placement="end"] {
place-items: end;
padding: 5.75rem 1.5rem 1.5rem;
background: transparent;
backdrop-filter: none;
-webkit-backdrop-filter: none;
pointer-events: none;
}
@keyframes nodedc-overlay-in {
from { opacity: 0; }
to { opacity: 1; }
}
.nodedc-window {
position: relative;
isolation: isolate;
display: grid;
width: min(35rem, calc(100vw - 2rem));
max-height: min(48rem, calc(100vh - 2rem));
grid-template-rows: auto minmax(0, 1fr) auto;
overflow: hidden;
border: 0;
border-radius: var(--nodedc-radius-modal);
background: var(--nodedc-glass-panel-surface-strong);
color: var(--nodedc-text-primary);
box-shadow: var(--nodedc-glass-panel-shadow);
backdrop-filter: blur(var(--nodedc-blur-modal)) saturate(1.35) brightness(1.04);
-webkit-backdrop-filter: blur(var(--nodedc-blur-modal)) saturate(1.35) brightness(1.04);
animation: nodedc-window-in var(--nodedc-duration-normal) var(--nodedc-ease-standard);
}
.nodedc-window[data-size="sm"] {
width: min(28rem, calc(100vw - 2rem));
}
.nodedc-window[data-size="lg"] {
width: min(58rem, calc(100vw - 2rem));
}
.nodedc-window[data-placement="end"] {
width: min(var(--nodedc-inspector-width), calc(100vw - 3rem));
max-height: calc(100vh - 7.25rem);
border-radius: var(--nodedc-radius-panel);
pointer-events: auto;
}
.nodedc-window[data-placement="end"] .nodedc-window__head {
min-height: 4.875rem;
padding: 1.125rem 0.75rem 0.875rem 1.625rem;
}
.nodedc-window[data-placement="end"] .nodedc-window__body {
padding: 0 0.75rem 1.125rem;
}
.nodedc-window[data-placement="end"] .nodedc-window__close {
border-radius: var(--nodedc-inspector-button-radius);
}
@keyframes nodedc-window-in {
from {
opacity: 0;
transform: translateY(8px) scale(0.99);
}
to {
opacity: 1;
transform: translateY(0) scale(1);
}
}
.nodedc-window__head {
display: grid;
min-height: 4.75rem;
grid-template-columns: minmax(0, 1fr) var(--nodedc-icon-button-size);
align-items: center;
gap: var(--nodedc-space-3);
padding: 1rem 1rem 0.75rem 1.5rem;
}
.nodedc-window__titles {
display: grid;
min-width: 0;
gap: 0.25rem;
}
.nodedc-window__title {
margin: 0;
overflow: hidden;
color: var(--nodedc-text-primary);
font-size: var(--nodedc-font-size-title);
font-weight: var(--nodedc-font-weight-strong);
line-height: 1.2;
text-overflow: ellipsis;
white-space: nowrap;
}
.nodedc-window__subtitle {
margin: 0;
overflow: hidden;
color: var(--nodedc-text-muted);
font-size: var(--nodedc-font-size-xs);
font-weight: var(--nodedc-font-weight-medium);
line-height: 1.25;
text-overflow: ellipsis;
white-space: nowrap;
}
.nodedc-window__close {
position: relative;
display: inline-grid;
width: var(--nodedc-icon-button-size);
height: var(--nodedc-icon-button-size);
place-items: center;
border-radius: var(--nodedc-radius-control-compact);
background: var(--nodedc-glass-control-bg);
color: var(--nodedc-text-secondary);
box-shadow: var(--nodedc-glass-control-shadow);
cursor: pointer;
}
.nodedc-window__close:hover {
background: var(--nodedc-glass-control-hover);
color: var(--nodedc-text-primary);
}
.nodedc-close-mark {
position: relative;
display: block;
width: 0.8rem;
height: 0.8rem;
}
.nodedc-close-mark::before,
.nodedc-close-mark::after {
position: absolute;
top: 50%;
left: 50%;
width: 0.8rem;
height: 1.2px;
border-radius: var(--nodedc-radius-circle);
background: currentColor;
content: "";
}
.nodedc-close-mark::before {
transform: translate(-50%, -50%) rotate(45deg);
}
.nodedc-close-mark::after {
transform: translate(-50%, -50%) rotate(-45deg);
}
.nodedc-window__body {
min-height: 0;
overflow: auto;
padding: 0.75rem 1.5rem 1.5rem;
scrollbar-width: thin;
scrollbar-color: rgba(255, 255, 255, 0.14) transparent;
}
.nodedc-window__footer {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--nodedc-space-3);
padding: 0.9rem 1.5rem 1.25rem;
}
.nodedc-window__footer-actions {
display: flex;
align-items: center;
justify-content: flex-end;
gap: var(--nodedc-space-2);
}
.nodedc-confirmation {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
align-items: start;
gap: var(--nodedc-space-4);
}
.nodedc-confirmation__icon {
display: inline-grid;
width: 2.75rem;
height: 2.75rem;
place-items: center;
border-radius: var(--nodedc-radius-control-compact);
background: rgba(var(--nodedc-danger-rgb), 0.1);
color: rgb(var(--nodedc-danger-rgb));
}
.nodedc-confirmation__copy {
display: grid;
gap: var(--nodedc-space-2);
color: var(--nodedc-text-secondary);
font-size: var(--nodedc-font-size-md);
line-height: 1.45;
}
.nodedc-inspector {
display: grid;
width: min(var(--nodedc-inspector-inner-width), 100%);
gap: 1px;
}
.nodedc-inspector__group {
display: grid;
gap: 1px;
}
.nodedc-inspector__section {
display: grid;
min-width: 0;
gap: 1px;
}
.nodedc-inspector__section-trigger {
display: grid;
width: 100%;
min-height: 3.125rem;
align-content: center;
gap: 0.2rem;
border-radius: var(--nodedc-inspector-section-radius);
background: var(--nodedc-glass-control-bg);
color: var(--nodedc-text-secondary);
padding: 0.55rem 0.75rem;
box-shadow: var(--nodedc-glass-control-shadow);
text-align: left;
cursor: pointer;
}
.nodedc-inspector__section-trigger:hover,
.nodedc-inspector__section-trigger[data-open="true"] {
background: var(--nodedc-glass-control-hover);
color: var(--nodedc-text-primary);
}
.nodedc-inspector__section-trigger[data-active="true"],
.nodedc-inspector__section-trigger[data-tone="accent"] {
background: rgb(var(--nodedc-accent-rgb));
color: rgb(var(--nodedc-on-accent-rgb));
}
.nodedc-inspector__section-label {
overflow: hidden;
font-size: var(--nodedc-font-size-md);
font-weight: var(--nodedc-font-weight-strong);
text-overflow: ellipsis;
white-space: nowrap;
}
.nodedc-inspector__section-description {
font-size: var(--nodedc-font-size-xs);
font-weight: var(--nodedc-font-weight-medium);
opacity: 0.62;
}
.nodedc-inspector__section-content {
display: grid;
gap: var(--nodedc-space-3);
padding: var(--nodedc-space-3) 0 var(--nodedc-space-2);
animation: nodedc-section-in var(--nodedc-duration-fast) ease;
}
@keyframes nodedc-section-in {
from { opacity: 0; transform: translateY(-3px); }
to { opacity: 1; transform: translateY(0); }
}
.nodedc-control-row {
display: grid;
width: min(var(--nodedc-inspector-inner-width), 100%);
min-height: var(--nodedc-control-height);
grid-template-columns: var(--nodedc-inspector-label-width) var(--nodedc-inspector-control-width);
align-items: center;
gap: var(--nodedc-inspector-control-gap);
}
.nodedc-control-row[data-layout="stack"] {
grid-template-columns: 1fr;
align-items: stretch;
gap: var(--nodedc-space-2);
}
.nodedc-control-row__label {
color: var(--nodedc-text-secondary);
font-size: var(--nodedc-font-size-sm);
font-weight: var(--nodedc-font-weight-regular);
line-height: 1.3;
}
.nodedc-control-row__control {
min-width: 0;
}
.nodedc-empty-state {
display: grid;
min-height: 12rem;
place-items: center;
align-content: center;
gap: var(--nodedc-space-2);
color: var(--nodedc-text-muted);
text-align: center;
}
.nodedc-empty-state strong {
color: var(--nodedc-text-primary);
font-size: var(--nodedc-font-size-lg);
}
@media (max-width: 1100px) {
.nodedc-app-shell[data-content-open="true"] .nodedc-app-shell__content {
right: var(--nodedc-app-page-pad);
width: auto;
}
.nodedc-app-shell[data-content-open="true"] .nodedc-app-shell__stage {
pointer-events: none;
transform: translateX(calc(100vw + var(--nodedc-app-page-pad)));
}
}
@media (max-width: 760px) {
.nodedc-header-shell {
width: 100%;
padding: 0.85rem 1rem 0.65rem;
background: var(--nodedc-canvas);
}
.nodedc-header {
min-height: 8.6rem;
}
.nodedc-header__row {
min-height: 8.6rem;
grid-template-columns: minmax(0, 1fr) auto;
align-content: start;
row-gap: 0.65rem;
}
.nodedc-header__center {
order: 3;
grid-column: 1 / -1;
justify-content: stretch;
overflow-x: auto;
}
.nodedc-header__center .nodedc-segmented,
.nodedc-header__center .nodedc-header-navigation {
min-width: max-content;
}
.nodedc-app-shell {
--nodedc-app-header-height: 10.25rem;
--nodedc-app-page-pad: 0.7rem;
--nodedc-app-panel-gap: 0.7rem;
}
.nodedc-app-shell__stage {
padding: 0 var(--nodedc-app-page-pad) var(--nodedc-app-page-pad);
}
.nodedc-app-shell__navigation,
.nodedc-app-shell__content {
right: var(--nodedc-app-page-pad);
bottom: var(--nodedc-app-page-pad);
left: var(--nodedc-app-page-pad);
width: auto;
}
.nodedc-app-shell[data-navigation-open="true"] .nodedc-app-shell__stage,
.nodedc-app-shell[data-content-open="true"] .nodedc-app-shell__stage {
padding-left: var(--nodedc-app-page-pad);
pointer-events: none;
transform: translateX(calc(100vw + var(--nodedc-app-page-pad)));
}
.nodedc-app-shell[data-content-open="true"] .nodedc-app-shell__navigation {
opacity: 0;
pointer-events: none;
}
.nodedc-application-panel,
.nodedc-admin-panel {
width: 100%;
max-width: none;
}
.nodedc-application-panel {
padding: 0.75rem;
}
.nodedc-application-panel__titles p {
display: none;
}
.nodedc-application-panel__action:first-child {
display: none;
}
.nodedc-window[data-placement="end"] {
width: calc(100vw - 1.75rem);
max-height: calc(100vh - 1.75rem);
}
.nodedc-overlay[data-placement="end"] {
padding: 0.875rem;
}
.nodedc-window[data-placement="end"] .nodedc-window__body {
padding-inline: 0.75rem;
}
.nodedc-control-row {
grid-template-columns: 1fr;
align-items: stretch;
gap: var(--nodedc-space-2);
}
.nodedc-media-control {
grid-template-columns: minmax(0, 1fr) auto;
border-radius: var(--nodedc-radius-card);
}
.nodedc-media-file,
.nodedc-media-url {
grid-column: 1 / -1;
min-height: 2.78rem;
}
.nodedc-media-source-switch {
justify-self: start;
}
}
@media (prefers-reduced-motion: reduce) {
.nodedc-dropdown-surface,
.nodedc-overlay,
.nodedc-window,
.nodedc-application-panel,
.nodedc-inspector__section-content {
animation: none;
}
.nodedc-button,
.nodedc-icon-button,
.nodedc-checker,
.nodedc-media-source-button,
.nodedc-switch,
.nodedc-select-trigger,
.nodedc-segmented__item {
transition: none;
}
}