:root {
    --app-viewport-width: 100vw;
    --app-viewport-height: 100vh;
    --app-viewport-scale: 1;
    font-family: Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;
    line-height: 1.5;
    font-weight: 400;
    color: #e5e7eb;
    background: #020617;
    font-synthesis: none;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale
}

* {
    box-sizing: border-box
}

html,body,#root {
    height: 100%;
    margin: 0
}

body {
    min-width: 320px;
    min-height: 100vh;
    min-height: var(--app-viewport-height);
    overflow: hidden;
    background: radial-gradient(circle at top,rgba(59,130,246,.25),transparent 30%),linear-gradient(180deg,#0f172a,#020617)
}

button,input,textarea,select {
    font: inherit
}

code,pre {
    font-family: SFMono-Regular,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace
}

.app-shell {
    display: flex;
    align-items: stretch;
    width: 100%;
    min-width: 0;
    height: 100vh;
    height: var(--app-viewport-height);
    min-height: 100vh;
    min-height: var(--app-viewport-height);
    gap: 0;
    overflow: hidden;
    background: #94a3b82e
}

.app-shell--resizing {
    cursor: col-resize
}

.app-shell__panel {
    min-width: 0;
    min-height: 100vh;
    min-height: var(--app-viewport-height);
    overflow: hidden
}

.app-shell__panel--left-dock {
    flex: 0 0 auto;
    min-width: 0;
    transition: width .28s ease
}

.app-shell__left-dock {
    display: flex;
    align-items: stretch;
    height: 100%;
    min-width: 0
}

.app-shell__panel--left {
    flex: 0 0 auto;
    background: #0f172af0;
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
    transition: transform .28s ease,opacity .22s ease
}

.app-shell__panel--left-dock-collapsed .app-shell__panel--left {
    transform: translate(-100%);
    opacity: 0;
    pointer-events: none
}

.app-shell__left-toggle {
    display: inline-flex;
    flex: 0 0 3rem;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    gap: .9rem;
    width: 3rem;
    min-height: 11rem;
    margin-left: auto;
    padding: .9rem .45rem;
    border: 0;
    border-left: 1px solid rgba(96,165,250,.18);
    background: linear-gradient(180deg,#0f172af5,#0f172ad1);
    box-shadow: inset -1px 0 #ffffff08;
    color: #dbeafe;
    cursor: pointer;
    transition: background .18s ease,border-color .18s ease
}

.app-shell__left-toggle:hover {
    border-left-color: #60a5fa5c;
    background: linear-gradient(180deg,#1e293bfa,#0f172ae0)
}

.app-shell__left-toggle-arrow {
    font-size: 1.1rem;
    color: #60a5fa
}

.app-shell__left-toggle-label {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    letter-spacing: .16em;
    font-size: .72rem;
    text-transform: uppercase
}

.app-shell__left-toggle-label--cjk {
    transform: none;
    text-orientation: upright;
    letter-spacing: .08em
}

.app-shell__panel--right {
    flex: 1 1 auto;
    min-width: 0;
    background: #020617
}

.app-shell__resize-handle {
    position: relative;
    flex: 0 0 14px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    background: #94a3b814;
    cursor: col-resize
}

.app-shell__resize-handle:before {
    content: "";
    position: absolute;
    inset: 0
}

.app-shell__resize-grip {
    width: 4px;
    height: 64px;
    border-radius: 999px;
    background: linear-gradient(180deg,#60a5fa33,#60a5facc,#60a5fa33)
}

.panel {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    height: 100%;
    padding: 1.25rem
}

.panel--preview {
    border-right: 1px solid rgba(148,163,184,.08)
}

.panel--embedded-preview {
    height: auto;
    padding: 0;
    border-right: 0
}

.panel__content {
    display: flex;
    flex: 1;
    min-height: 0;
    flex-direction: column;
    gap: 1rem
}

.panel__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem
}

.panel__header-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .75rem
}

.panel__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem
}

.panel__meta span {
    padding: .35rem .75rem;
    border: 1px solid rgba(96,165,250,.18);
    border-radius: 999px;
    background: #0f172aad;
    color: #bfdbfe;
    font-size: .8rem
}

.panel__eyebrow,.viewer-overlay__eyebrow {
    margin: 0 0 .5rem;
    text-transform: uppercase;
    letter-spacing: .1em;
    font-size: .75rem;
    color: #60a5fa
}

.panel__title {
    margin: 0;
    font-size: clamp(1.5rem,3vw,2rem);
    line-height: 1.1
}

.panel__title--compact {
    font-size: clamp(1.15rem,2vw,1.5rem)
}

.panel__copy {
    margin: 0;
    max-width: 40rem;
    color: #cbd5e1
}

.panel__copy code {
    color: #bfdbfe
}

.panel__visibility-button {
    white-space: nowrap
}

.panel__brand-lockup {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .75rem
}

.panel__brand-mark {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .65rem;
    max-width: min(22rem,100%)
}

.panel__brand-copy {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    min-width: 0
}

.panel__brand-title {
    margin: 0;
    font-size: clamp(1.25rem,2vw,1.75rem);
    font-weight: 700;
    letter-spacing: .04em;
    color: #f8fafc
}

.panel__brand-subtitle {
    margin: 0;
    color: #93c5fd;
    font-size: .9rem
}

.panel__brand-logo {
    width: min(19rem,100%);
    margin-bottom: 0
}

.panel__brand-logo svg {
    display: block;
    width: 100%;
    height: auto
}

.panel__alert {
    padding: .875rem 1rem;
    border: 1px solid rgba(248,113,113,.3);
    border-radius: .85rem;
    background: #7f1d1d59;
    color: #fecaca
}

.panel__alert--success {
    border-color: #22c55e57;
    background: #14532d57;
    color: #bbf7d0
}

.panel__alert-list {
    margin: .75rem 0 0;
    padding-left: 1.1rem
}

.panel__alert-list li+li {
    margin-top: .35rem
}

.code-preview {
    flex: 1;
    min-height: 0;
    margin: 0;
    padding: 1rem;
    overflow: auto;
    border: 1px solid rgba(96,165,250,.18);
    border-radius: 1rem;
    background: #020617b8;
    box-shadow: inset 0 1px #ffffff08;
    color: #dbeafe;
    font-size: .82rem;
    line-height: 1.65;
    white-space: pre
}

.viewer-shell {
    position: relative;
    height: 100%;
    min-height: 100vh;
    min-height: var(--app-viewport-height);
    overflow: hidden
}

.viewer-canvas {
    width: 100%;
    height: 100%;
    min-height: 100vh;
    min-height: var(--app-viewport-height)
}

.viewer-canvas canvas {
    display: block
}

.viewer-hud {
    position: absolute;
    z-index: 2;
    pointer-events: none
}

.viewer-hud>* {
    pointer-events: auto
}

.viewer-hud--status {
    top: 1.25rem;
    left: 1.25rem
}

.viewer-hud--dock {
    top: 1.25rem;
    right: 1.25rem;
    bottom: 6.25rem;
    display: flex;
    align-items: stretch;
    justify-content: flex-end;
    max-width: min(32rem,calc(var(--app-viewport-width) - 1.5rem))
}

.viewer-dock {
    display: flex;
    align-items: stretch;
    gap: .8rem;
    width: min(32rem,calc(var(--app-viewport-width) - 1.5rem));
    max-height: 100%;
    transform: translate(calc(100% - 3.75rem));
    transition: transform .28s ease
}

.viewer-hud--dock-open .viewer-dock {
    transform: translate(0)
}

.viewer-dock__panel {
    flex: 1 1 auto;
    min-width: 0;
    max-height: 100%
}

.viewer-dock__toggle {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    gap: .9rem;
    width: 3rem;
    min-height: 11rem;
    padding: .9rem .45rem;
    border: 1px solid rgba(96,165,250,.24);
    border-radius: 1rem;
    background: linear-gradient(180deg,#0f172aeb,#0f172aad);
    box-shadow: 0 16px 40px #02061747;
    color: #dbeafe;
    cursor: pointer;
    transition: transform .18s ease,border-color .18s ease,background .18s ease
}

.viewer-dock__toggle:hover {
    transform: translateY(-1px);
    border-color: #60a5fa70;
    background: linear-gradient(180deg,#1e293bf2,#0f172acc)
}

.viewer-dock__toggle-arrow {
    font-size: 1.1rem;
    color: #60a5fa
}

.viewer-dock__toggle-label {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    letter-spacing: .16em;
    font-size: .72rem;
    text-transform: uppercase
}

.viewer-dock__toggle-label--cjk {
    transform: none;
    text-orientation: upright;
    letter-spacing: .08em
}

.viewer-hud--toolbar {
    top: 1.25rem;
    left: 1.25rem;
    display: flex;
    justify-content: flex-start;
    pointer-events: none
}

.viewer-hud--toolbar-dock-open {
    right: calc(1.25rem + min(32rem,calc(var(--app-viewport-width) - 1.5rem)))
}

.viewer-hud--toolbar-dock-collapsed {
    right: 5.5rem
}

.viewer-status-card {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    padding: .6rem .85rem;
    border: 1px solid rgba(148,163,184,.14);
    border-radius: 999px;
    background: #0f172ab8;
    box-shadow: 0 12px 36px #02061747;
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px)
}

.viewer-toolbar {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    max-width: min(100%,70rem);
    padding: .45rem .55rem;
    border: 1px solid rgba(148,163,184,.16);
    border-radius: 999px;
    background: #0f172ab8;
    box-shadow: 0 12px 36px #02061747;
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    pointer-events: auto
}

.viewer-toolbar__section {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: .45rem
}

.viewer-toolbar__button {
    min-width: 0;
    padding: .42rem .85rem;
    border: 1px solid rgba(148,163,184,.16);
    border-radius: 999px;
    background: #1e293b8f;
    color: #cbd5e1;
    cursor: pointer;
    font-size: .75rem;
    line-height: 1.2;
    white-space: nowrap;
    transition: transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease
}

.viewer-toolbar__button:hover {
    transform: translateY(-1px);
    border-color: #94a3b84d;
    background: #334155b8;
    color: #f8fafc
}

.viewer-toolbar__button--active {
    border-color: #3b82f666;
    background: linear-gradient(135deg,#2563ebeb,#0ea5e9c7);
    color: #eff6ff
}

.viewer-overlay__status {
    margin: 0;
    color: #93c5fd;
    font-size: .85rem;
    white-space: nowrap
}

.panel--editor {
    align-items: stretch;
    min-height: 0
}

.panel__content--scrollable {
    overflow-y: auto;
    padding-right: .35rem
}

.panel__header--stacked-mobile {
    align-items: flex-start
}

.editor-section {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: .9rem 1rem;
    border: 1px solid rgba(148,163,184,.16);
    border-radius: 1rem;
    background: #0f172a85
}

.editor-section--open {
    border-color: #60a5fa47
}

.editor-section__header,.editor-card__header,.editor-card__header--spread {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem
}

.editor-section__header--accordion {
    align-items: stretch
}

.editor-section__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    text-align: left
}

.editor-section__toggle-copy {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    min-width: 0
}

.editor-section__toggle-title,.editor-card h3,.editor-subsection h4 {
    margin: 0;
    font-size: 1rem;
    font-weight: 600
}

.editor-section__toggle-meta {
    display: flex;
    align-items: center;
    gap: .75rem
}

.editor-section__chip {
    padding: .22rem .62rem;
    border-radius: 999px;
    border: 1px solid rgba(96,165,250,.18);
    background: #0f172ab8;
    color: #bfdbfe;
    font-size: .75rem
}

.editor-section__chevron {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 999px;
    background: #60a5fa29;
    color: #dbeafe;
    font-size: 1rem;
    font-weight: 700
}

.editor-section__description,.editor-empty,.leg-list__item span,.editor-card__eyebrow {
    margin: 0;
    color: #94a3b8
}

.editor-section__body,.editor-stack,.editor-subsection {
    display: flex;
    flex-direction: column;
    gap: 1rem
}

.editor-group {
    display: flex;
    flex-direction: column;
    gap: .85rem;
    padding: .85rem .9rem;
    border: 1px solid rgba(148,163,184,.16);
    border-radius: .85rem;
    background: #0f172a6b
}

.editor-group--open {
    border-color: #60a5fa38;
    background: #0f172a8a
}

.editor-group__toggle {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    text-align: left
}

.editor-group__copy,.editor-group__body {
    display: flex;
    flex-direction: column;
    gap: .75rem
}

.editor-group__copy {
    min-width: 0
}

.editor-group__title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem
}

.editor-group__title {
    font-size: .95rem;
    font-weight: 600;
    color: #e2e8f0
}

.editor-group__adornment {
    display: inline-flex;
    align-items: center
}

.editor-group__description {
    color: #94a3b8;
    font-size: .82rem
}

.editor-card {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid rgba(96,165,250,.12);
    border-radius: .9rem;
    background: #02061780
}

.editor-card--joint {
    border-color: #22c55e2e
}

.editor-card--open {
    border-color: #22c55e52
}

.editor-card__header--accordion {
    align-items: stretch
}

.editor-card__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    text-align: left
}

.editor-card__hint {
    padding: .75rem .85rem;
    border: 1px solid rgba(96,165,250,.16);
    border-radius: .75rem;
    background: #0f172a94;
    color: #cbd5e1
}

.editor-card__hint code {
    color: #bfdbfe
}

.editor-validation-list {
    display: grid;
    gap: .35rem;
    margin-top: .65rem;
    color: #fbbf24;
    font-size: .85rem
}

.editor-field input[readonly] {
    color: #e2e8f0;
    background: #0f172ad9;
    cursor: default
}

.editor-card__eyebrow,.editor-field__label,.editor-fieldset__label {
    font-size: .75rem;
    letter-spacing: .04em;
    text-transform: uppercase
}

.editor-subsection__header--with-actions {
    align-items: flex-start
}

.editor-subsection__description {
    margin: .3rem 0 0;
    color: #94a3b8;
    font-size: .85rem
}

.editor-grid {
    display: grid;
    gap: .85rem
}

.editor-grid--single {
    grid-template-columns: 1fr
}

.editor-grid--dual {
    grid-template-columns: repeat(2,minmax(0,1fr))
}

.editor-grid--triple {
    grid-template-columns: repeat(3,minmax(0,1fr))
}

.editor-grid--quad {
    grid-template-columns: repeat(4,minmax(0,1fr))
}

.editor-field {
    display: flex;
    flex-direction: column;
    gap: .35rem
}

.numeric-field {
    display: grid;
    grid-template-columns: minmax(0,1fr);
    gap: .35rem;
    align-items: stretch
}

.numeric-field input {
    font-variant-numeric: tabular-nums
}

.editor-fieldset {
    margin: 0;
    padding: 0;
    border: 0;
    min-width: 0
}

.editor-fieldset--geometry[disabled] {
    opacity: .62
}

.editor-field input,.editor-field select,.editor-field textarea,.leg-list__item,.primary-button,.secondary-button,.ghost-button {
    border-radius: .8rem
}

.editor-field input,.editor-field select,.editor-field textarea {
    width: 100%;
    padding: .7rem .8rem;
    border: 1px solid rgba(148,163,184,.22);
    background: #0f172adb;
    color: #e2e8f0
}

.code-editor {
    min-height: 18rem;
    resize: vertical;
    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;
    line-height: 1.6
}

.editor-field input[type=color] {
    min-height: 3rem;
    padding: .35rem;
    cursor: pointer
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0
}

.editor-actions-row,.editor-section__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem
}

.editor-actions-row--workspace {
    justify-content: flex-end
}

.editor-card--workspace {
    gap: 1rem
}

.editor-card__header--workspace {
    align-items: flex-start
}

.editor-card__header--workspace>:first-child {
    flex: 1;
    min-width: 0
}

.language-switch {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem
}

.language-switch__button {
    min-width: 7rem
}

.language-switch__button--active {
    background: linear-gradient(135deg,#2563eb57,#0ea5e93d);
    border-color: #60a5fa80
}

.template-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(min(180px,100%),1fr));
    gap: .75rem
}

.template-card {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    width: 100%;
    padding: .95rem 1rem;
    border: 1px solid rgba(96,165,250,.18);
    border-radius: .9rem;
    background: linear-gradient(180deg,#0f172ad1,#0f172a99);
    color: #e2e8f0;
    cursor: pointer;
    text-align: left;
    transition: transform .15s ease,border-color .15s ease,background .15s ease
}

.template-card:hover {
    transform: translateY(-1px);
    border-color: #60a5fa61;
    background: linear-gradient(180deg,#1e293be6,#0f172aad)
}

.template-card__title {
    font-weight: 600;
    color: #dbeafe
}

.template-card__description {
    color: #94a3b8;
    font-size: .9rem
}

.primary-button,.secondary-button,.ghost-button {
    padding: .7rem .95rem;
    border: 1px solid transparent;
    color: #e2e8f0;
    cursor: pointer;
    transition: background .15s ease,border-color .15s ease,transform .15s ease
}

.primary-button:disabled,.secondary-button:disabled,.ghost-button:disabled {
    opacity: .55;
    cursor: not-allowed;
    transform: none
}

.primary-button {
    background: linear-gradient(135deg,#2563eb,#0ea5e9)
}

.secondary-button {
    background: #2563eb2e;
    border-color: #60a5fa3d
}

.ghost-button {
    background: #0f172ab3;
    border-color: #94a3b833
}

.ghost-button--active {
    border-color: #60a5fa73;
    background: #2563eb29;
    color: #dbeafe
}

.ghost-button--danger {
    border-color: #f871713d;
    color: #fecaca
}

.primary-button:hover,.secondary-button:hover,.ghost-button:hover,.leg-list__item:hover {
    transform: translateY(-1px)
}

.leg-list {
    display: grid;
    gap: .65rem
}

.leg-list__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    width: 100%;
    padding: .85rem 1rem;
    border: 1px solid rgba(148,163,184,.18);
    background: #0f172a8c;
    color: #e2e8f0;
    cursor: pointer;
    text-align: left
}

.leg-list__item--active {
    border-color: #22c55e73;
    background: #14b8a61f
}

.modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 30;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background: #020617b8;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px)
}

.modal-card {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    width: min(960px,100%);
    max-height: calc(var(--app-viewport-height) - 3rem);
    padding: 1.25rem;
    overflow: hidden;
    border: 1px solid rgba(96,165,250,.2);
    border-radius: 1rem;
    background: #0f172af5;
    box-shadow: 0 24px 80px #02061773
}

.modal-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem
}

.modal-card .panel {
    min-height: 0;
    padding: 0
}

.modal-card .code-preview {
    max-height: calc(var(--app-viewport-height) - 18rem)
}

@media(max-width: 1200px) {
    .editor-grid--quad {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
}

.app-shell--compact .panel {
    padding: clamp(.85rem,1.5vw,1.05rem)
}

.app-shell--compact .panel__meta {
    gap: .4rem
}

.app-shell--compact .panel__meta span,.app-shell--compact .viewer-toolbar__button,.app-shell--compact .workspace-dock__tab {
    font-size: .74rem
}

.app-shell--compact .viewer-toolbar {
    max-width: min(100%,44rem)
}

@media(max-width: 900px) {
    body {
        overflow:auto
    }

    .app-shell {
        flex-direction: column;
        height: auto;
        min-height: var(--app-viewport-height)
    }

    .app-shell__panel--left-dock,.app-shell__panel--left,.app-shell__panel--right {
        width: 100%!important;
        min-height: auto
    }

    .app-shell__left-dock {
        flex-direction: column-reverse
    }

    .app-shell__panel--left-dock-collapsed {
        width: 100%!important
    }

    .app-shell__panel--left-dock-collapsed .app-shell__panel--left {
        display: none
    }

    .app-shell__left-toggle {
        flex-direction: row;
        justify-content: space-between;
        width: 100%;
        min-height: auto;
        padding: .7rem .9rem;
        border-left: 0;
        border-top: 1px solid rgba(96,165,250,.18)
    }

    .app-shell__left-toggle-label {
        writing-mode: initial;
        transform: none;
        letter-spacing: .06em
    }

    .app-shell__resize-handle {
        display: none
    }

    .panel {
        min-height: 50vh;
        padding: 1rem
    }

    .panel__header,.panel__header--stacked-mobile,.editor-section__header--accordion,.editor-card__header,.editor-card__header--spread,.modal-card__header {
        flex-direction: column
    }

    .panel__brand-lockup {
        align-items: stretch
    }

    .editor-actions-row--workspace {
        justify-content: flex-start
    }

    .viewer-shell,.viewer-canvas {
        min-height: 60vh
    }

    .viewer-hud--status {
        top: 1rem;
        left: 1rem
    }

    .viewer-hud--dock {
        top: auto;
        right: 1rem;
        bottom: 5.75rem;
        left: 1rem;
        max-width: none;
        justify-content: stretch
    }

    .viewer-hud--toolbar,.viewer-hud--toolbar-dock-open,.viewer-hud--toolbar-dock-collapsed {
        top: 1rem;
        right: 1rem;
        left: 1rem;
        justify-content: center
    }

    .viewer-toolbar {
        width: 100%;
        max-width: none;
        border-radius: 1.25rem
    }

    .viewer-toolbar__section {
        width: 100%
    }
}

@media(max-width: 720px) {
    .editor-grid--dual,.editor-grid--triple,.editor-grid--quad {
        grid-template-columns:1fr
    }

    .editor-section__toggle-meta {
        width: 100%;
        justify-content: space-between
    }
}

.workspace-dock {
    --workspace-dock-accent: #020617;
    display: flex;
    flex-direction: column;
    gap: .8rem;
    width: 100%;
    height: 100%;
    max-height: 100%;
    padding: .8rem;
    border: 1px solid color-mix(in srgb,var(--workspace-dock-accent) 38%,#7dd3fc 28%);
    border-radius: 1rem;
    background: linear-gradient(180deg,color-mix(in srgb,var(--workspace-dock-accent) 78%,rgba(15,23,42,.9) 22%),#0f172ae0),radial-gradient(circle at top right,color-mix(in srgb,var(--workspace-dock-accent) 46%,rgba(56,189,248,.24) 54%),transparent 55%);
    box-shadow: 0 18px 48px #02061752;
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    overflow: hidden
}

.workspace-dock__topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem
}

.workspace-dock__tab-row {
    display: inline-flex;
    gap: .65rem;
    align-self: flex-start;
    flex-wrap: wrap
}

.workspace-dock__tab {
    padding: .65rem 1rem;
    border: 1px solid rgba(96,165,250,.16);
    border-radius: 999px;
    background: #0f172ab8;
    color: #cbd5e1;
    cursor: pointer;
    transition: background .15s ease,border-color .15s ease,transform .15s ease
}

.workspace-dock__tab:hover {
    transform: translateY(-1px);
    border-color: #60a5fa4d
}

.workspace-dock__tab--active {
    background: linear-gradient(135deg,#2563eb57,#0ea5e93d);
    border-color: #60a5fa80;
    color: #eff6ff
}

.workspace-dock__content {
    display: grid;
    flex: 1 1 auto;
    align-content: start;
    gap: .8rem;
    overflow: auto;
    min-height: 0;
    padding-right: .2rem
}

.workspace-dock__content--urdf {
    grid-template-rows: minmax(0,1fr)
}

.workspace-dock__card {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    padding: .95rem 1rem;
    border: 1px solid color-mix(in srgb,var(--workspace-dock-accent) 26%,rgba(148,163,184,.26) 74%);
    border-radius: .9rem;
    background: color-mix(in srgb,var(--workspace-dock-accent) 22%,rgba(15,23,42,.68) 78%);
    box-shadow: inset 0 1px #ffffff08
}

.workspace-dock__card--urdf {
    min-height: 0;
    height: 100%
}

.workspace-dock__card--urdf .editor-field {
    flex: 1 1 auto;
    min-height: 0
}

.workspace-dock__card--urdf .urdf-editor {
    flex: 1 1 auto;
    min-height: 26rem
}

.workspace-dock__download-button {
    background: linear-gradient(135deg,#0f9f6e,#22c55e);
    box-shadow: 0 10px 24px #22c55e2e
}

.workspace-dock__simready-button {
    border-color: #34d39973;
    background: linear-gradient(135deg,#059669,#22c55e);
    box-shadow: 0 10px 24px #22c55e33;
    color: #ecfdf5;
    font-weight: 700
}

.workspace-dock__simready-button:hover {
    border-color: #86efac9e;
    background: linear-gradient(135deg,#047857,#16a34a)
}

.workspace-dock__editor-actions {
    justify-content: flex-start
}

.workspace-dock__visibility-button {
    padding-inline:.85rem;white-space: nowrap
}

.urdf-editor {
    min-height: 180px;
    border: 1px solid rgba(125,211,252,.32);
    border-radius: .95rem;
    background: linear-gradient(180deg,#020617fa,#030a1cfa);
    box-shadow: inset 0 1px #ffffff0a,0 18px 42px #02061747;
    overflow: hidden
}

.urdf-editor__host {
    min-height: inherit;
    height: 100%
}

.urdf-editor__host .cm-editor {
    height: 100%
}

.urdf-editor__host .cm-scroller {
    min-height: inherit
}

.urdf-editor__host .cm-focused {
    outline: none
}

.urdf-editor__host .cm-lineNumbers {
    color: #64748b
}

.urdf-editor__host .cm-foldPlaceholder {
    background: #1e293bb8;
    border: 1px solid rgba(148,163,184,.18);
    color: #cbd5e1
}

.workspace-dock__card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem
}

.workspace-dock__eyebrow {
    margin: 0 0 .2rem;
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #60a5fa
}

.workspace-dock__hint {
    margin: 0;
    color: #94a3b8;
    font-size: .92rem;
    line-height: 1.5
}

.workspace-dock__button-grid,.workspace-dock__color-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(min(140px,100%),1fr));
    gap: .75rem
}

.template-grid--dock {
    grid-template-columns: repeat(auto-fit,minmax(min(170px,100%),1fr))
}

.workspace-dock__code-editor {
    min-height: 180px;
    max-height: min(calc(var(--app-viewport-height) * .48),520px)
}

.workspace-dock__alert {
    margin: 0
}

.workspace-dock__service-box {
    display: grid;
    gap: .85rem;
    padding: .85rem;
    border: 1px solid rgba(125,211,252,.2);
    border-radius: .75rem;
    background: #02061759
}

.workspace-dock__service-section {
    display: grid;
    gap: .35rem
}

.workspace-dock__service-section h4,.workspace-dock__service-section p {
    margin: 0
}

.workspace-dock__service-section h4 {
    color: #e2e8f0;
    font-size: .92rem
}

.workspace-dock__service-section p,.workspace-dock__service-section li {
    color: #cbd5e1;
    line-height: 1.5;
    font-size: .88rem
}

.workspace-dock__service-group {
    display: inline-flex;
    flex-wrap: wrap;
    gap: .35rem
}

.workspace-dock__service-section ul {
    margin: 0;
    padding-left: 1.15rem;
    display: grid;
    gap: .2rem
}

@media(max-width: 900px) {
    .viewer-hud--dock {
        max-width:calc(100vw - 1rem)
    }

    .viewer-dock {
        gap: .55rem;
        width: min(28rem,calc(100vw - 1rem));
        transform: translate(calc(100% - 3.25rem))
    }

    .viewer-dock__toggle {
        min-height: 9.5rem
    }

    .workspace-dock {
        max-height: min(28rem,calc(var(--app-viewport-height) - 9rem))
    }
}

@media(max-width: 720px) {
    .viewer-toolbar {
        grid-template-columns:1fr
    }

    .workspace-dock__topbar {
        align-items: stretch;
        flex-direction: column
    }

    .workspace-dock__button-grid,.workspace-dock__color-grid,.template-grid--dock {
        grid-template-columns: 1fr
    }
}

@media(max-width: 1180px) {
    .app-shell {
        flex-direction:column;
        height: auto;
        min-height: var(--app-viewport-height)
    }

    .app-shell__panel {
        min-height: 0
    }

    .app-shell__panel--left-dock,.app-shell__panel--left,.app-shell__panel--right {
        width: 100%!important
    }

    .app-shell__left-dock {
        flex-direction: column-reverse
    }

    .app-shell__panel--left-dock-collapsed {
        width: 100%!important
    }

    .app-shell__panel--left-dock-collapsed .app-shell__panel--left {
        display: none
    }

    .app-shell__left-toggle {
        flex-direction: row;
        justify-content: space-between;
        width: 100%;
        min-height: auto;
        padding: .7rem .9rem;
        border-left: 0;
        border-top: 1px solid rgba(96,165,250,.18)
    }

    .app-shell__left-toggle-label {
        writing-mode: initial;
        transform: none;
        letter-spacing: .06em
    }

    .app-shell__panel--left {
        min-height: auto
    }

    .app-shell__panel--right {
        min-height: max(30rem,58vh)
    }

    .panel {
        min-height: auto
    }
}

@media(max-width: 900px) {
    .panel {
        padding:.9rem
    }

    .viewer-hud--dock {
        top: auto;
        right: .75rem;
        bottom: 4.75rem;
        left: .75rem;
        max-width: none;
        justify-content: stretch
    }

    .viewer-dock {
        align-items: flex-end;
        gap: .55rem;
        width: 100%;
        max-width: none;
        transform: translate(calc(100% - 3.25rem))
    }

    .viewer-dock__toggle {
        min-height: 9.5rem
    }

    .workspace-dock {
        max-height: min(32rem,calc(var(--app-viewport-height) - 8rem))
    }
}

@media(max-width: 640px) {
    .panel {
        padding:.8rem
    }

    .panel__meta {
        width: 100%
    }

    .panel__meta span {
        flex: 1 1 8rem;
        justify-content: center;
        text-align: center
    }

    .viewer-shell,.viewer-canvas {
        min-height: max(28rem,calc(var(--app-viewport-height) * .56))
    }

    .viewer-hud--toolbar,.viewer-hud--toolbar-dock-open,.viewer-hud--toolbar-dock-collapsed {
        top: auto;
        bottom: .75rem;
        right: .75rem;
        left: .75rem;
        justify-content: stretch
    }

    .viewer-toolbar {
        border-radius: 1rem
    }

    .viewer-toolbar__section {
        display: grid;
        grid-template-columns: repeat(2,minmax(0,1fr))
    }

    .viewer-toolbar__button {
        min-height: 2.75rem;
        white-space: normal
    }

    .viewer-hud--dock {
        right: .5rem;
        bottom: 5.5rem;
        left: .5rem
    }

    .viewer-dock {
        flex-direction: column-reverse;
        align-items: stretch;
        transform: translateY(calc(100% - 3rem))
    }

    .viewer-hud--dock-open .viewer-dock {
        transform: translateY(0)
    }

    .viewer-dock__panel {
        width: 100%
    }

    .viewer-dock__toggle {
        flex-direction: row;
        justify-content: space-between;
        width: 100%;
        min-height: auto;
        padding: .7rem .9rem
    }

    .viewer-dock__toggle-label,.viewer-dock__toggle-label--cjk {
        writing-mode: initial;
        text-orientation: mixed;
        transform: none;
        letter-spacing: .06em
    }

    .workspace-dock {
        max-height: min(32rem,calc(var(--app-viewport-height) - 10rem));
        padding: .75rem
    }

    .workspace-dock__tab {
        flex: 1 1 calc(50% - .5rem);
        min-width: 0
    }

    .workspace-dock__visibility-button,.workspace-dock__button-grid>*,.workspace-dock__color-grid>*,.template-grid--dock>* {
        width: 100%
    }
}

@media(max-width: 420px) {
    .viewer-toolbar__section {
        grid-template-columns:1fr
    }

    .workspace-dock {
        max-height: min(30rem,calc(var(--app-viewport-height) - 9rem));
        border-radius: .9rem
    }

    .workspace-dock__card,.editor-section,.editor-group,.editor-card,.leg-list__item {
        padding-inline:.8rem}
}

