.omc-auth {
    min-height: 100vh;
    background: radial-gradient(circle at 15% 10%, #dbeafe 0, transparent 32rem), #f8fafc;
}

.omc-auth-main {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 1.5rem;
}

.omc-auth-card {
    width: min(100%, 28rem);
    border-radius: 1rem;
}

.omc-mark {
    width: 3rem;
    height: 3rem;
    display: grid;
    place-items: center;
    margin-bottom: 2rem;
    border-radius: .75rem;
    color: #fff;
    background: #2563eb;
    font-weight: 700;
    letter-spacing: .06em;
}

.omc-topbar {
    min-height: 4.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .75rem max(1.25rem, calc((100vw - 1140px) / 2));
    background: #172554;
}

.omc-brand {
    color: #fff;
    font-size: 1.125rem;
    font-weight: 700;
    text-decoration: none;
}

.omc-brand span {
    color: #93c5fd;
    font-size: .75rem;
    letter-spacing: .08em;
}

.omc-dashboard { background: #f8fafc; }
.omc-panel { border-radius: .875rem; }

.omc-product-logo {
    color: #fff;
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-decoration: none;
}

.omc-product-logo small {
    color: #93c5fd;
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .12em;
}

.navbar-custom,
.navbar-custom .topbar {
    min-height: 52px;
    height: 52px;
}

.navbar-custom { margin-left: 0; padding: 0; }

.navbar-custom .topbar {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 1.25rem;
    padding-top: 0;
    padding-bottom: 0;
}

.content-page { margin-left: 0 !important; }
.content-page .content { min-height: calc(100vh - 111px); padding-top: 1rem; }
.page-title-box { padding-bottom: .5rem; }

.omc-product-logo { flex-shrink: 0; white-space: nowrap; }
.omc-primary-nav { display: flex; align-self: stretch; }
.omc-nav-menu,
.omc-nav-children { margin: 0; padding: 0; list-style: none; }
.omc-nav-menu { display: flex; align-items: stretch; gap: .2rem; }
.omc-nav-item { position: relative; }
.omc-nav-link { display: flex; height: 100%; align-items: center; gap: .3rem; padding: 0 .7rem; border: 0; border-radius: 0; color: rgba(255,255,255,.72); background: transparent; font-size: .82rem; white-space: nowrap; text-decoration: none; }
.omc-nav-link:hover,
.omc-nav-link:focus,
.omc-nav-link.active { color: #fff; background: rgba(255,255,255,.1); }
.omc-nav-link.active { box-shadow: inset 0 -2px #93c5fd; font-weight: 600; }
.omc-nav-group {
    cursor: pointer;
}
.omc-nav-icon {
    width: 1rem;
    font-size: .95rem;
    text-align: center;
}
.omc-nav-chevron { transition: transform .15s ease; }
.omc-nav-group[aria-expanded="true"] .omc-nav-chevron { transform: rotate(180deg); }
.omc-nav-children { position: absolute; z-index: 1050; top: calc(100% + .35rem); left: 0; display: none; min-width: 11rem; padding: .4rem; border: 1px solid #e7eaed; border-radius: .5rem; background: #fff; box-shadow: 0 .5rem 1.5rem rgba(18,38,63,.16); }
.omc-nav-group[aria-expanded="true"] + .omc-nav-children { display: block; }
.omc-nav-children .omc-nav-item { width: 100%; }
.omc-nav-children .omc-nav-link { min-height: 2.25rem; padding: .45rem .65rem; border-radius: .35rem; color: #5c6672; }
.omc-nav-children .omc-nav-link:hover,
.omc-nav-children .omc-nav-link:focus { color: #313a46; background: #f4f6f9; }
.omc-nav-children .omc-nav-link.active { color: #4b57d1; background: rgba(114,124,245,.11); box-shadow: none; }
.omc-nav-toggle { display: none; align-items: center; gap: .35rem; padding: .35rem .55rem; border: 1px solid rgba(255,255,255,.28); border-radius: .35rem; color: #fff; background: rgba(255,255,255,.08); font-size: .8rem; }
.omc-user-actions { min-width: 0; margin-left: auto; }
.omc-user-actions > span { max-width: 12rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.omc-user-actions > form { flex-shrink: 0; }

.omc-logout {
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .7);
    background: rgba(255, 255, 255, .12);
}

.omc-logout:hover,
.omc-logout:focus {
    color: #172554;
    border-color: #fff;
    background: #fff;
}

@media (max-width: 991.98px) {
    .navbar-custom .topbar { gap: .65rem; }
    .omc-nav-toggle { display: inline-flex; }
    .omc-primary-nav { position: absolute; z-index: 1040; top: 52px; right: .75rem; left: .75rem; display: none; height: auto; padding: .45rem; border: 1px solid #e7eaed; border-radius: 0 0 .6rem .6rem; background: #fff; box-shadow: 0 .75rem 1.5rem rgba(18,38,63,.16); }
    .omc-primary-nav.show { display: block; }
    .omc-nav-menu { display: block; height: auto; }
    .omc-nav-link { width: 100%; min-height: 2.5rem; justify-content: flex-start; padding: .5rem .7rem; border-radius: .35rem; color: #5c6672; text-align: left; }
    .omc-nav-link:hover,
    .omc-nav-link:focus { color: #313a46; background: #f4f6f9; }
    .omc-nav-link.active { color: #4b57d1; background: rgba(114,124,245,.11); box-shadow: none; }
    .omc-nav-group .omc-nav-chevron { margin-left: auto; }
    .omc-nav-children { position: static; min-width: 0; margin: .15rem 0 .3rem 1rem; padding: 0 0 0 .45rem; border: 0; border-left: 1px solid #e2e6ea; border-radius: 0; box-shadow: none; }
    .omc-nav-children .omc-nav-link { min-height: 2.25rem; }
}

@media (max-width: 575.98px) {
    .omc-product-logo { font-size: 1rem; }
    .omc-nav-toggle span { display: none; }
    .omc-user-actions { gap: .4rem !important; }
}

#jsoneditor { height: 640px; }
#jsoneditor .cm-editor { height: 100%; border: 1px solid #dee2e6; border-radius: .375rem; overflow: hidden; }
#jsoneditor .cm-scroller { overflow: auto; }

.omc-topology { padding: .25rem 0 1rem; }
.omc-overview-loading { padding: 4rem 1rem; color: #8391a2; text-align: center; }
.omc-topology-section { position: relative; padding: 1rem 0 1.75rem; }
.omc-topology-section + .omc-topology-section { border-top: 1px dashed #dbe1e8; }
.omc-topology-label { margin-bottom: 1rem; color: #8391a2; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-align: center; text-transform: uppercase; }
.omc-topology-label span { padding: .25rem .75rem; border-radius: 2rem; background: #eef2f7; }
.omc-node-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 1rem; }
.omc-tier-single .omc-node-grid { grid-template-columns: minmax(16rem, 23rem); justify-content: center; }
.omc-node-card { position: relative; margin: 0; overflow: hidden; border: 1px solid #e7eaed; box-shadow: 0 .25rem 1.25rem rgba(18, 38, 63, .06); }
.omc-node-card .card-body { display: flex; flex-direction: column; }
.omc-node-card::before { position: absolute; inset: 0 auto 0 0; width: 4px; content: ''; background: #0acf97; }
.omc-node-warning::before { background: #ffbc00; }
.omc-node-danger::before { background: #fa5c7c; }
.omc-node-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.omc-node-heading h5 { margin: 0 0 .2rem; font-size: 1rem; }
.omc-node-heading p { margin: 0; color: #8391a2; font-size: .78rem; }
.omc-health { flex: 0 0 auto; color: #0a8f6a; font-size: .76rem; font-weight: 700; }
.omc-health i { display: inline-block; width: .5rem; height: .5rem; margin-right: .35rem; border-radius: 50%; background: #0acf97; box-shadow: 0 0 0 3px rgba(10, 207, 151, .13); }
.omc-node-warning .omc-health { color: #a57900; }
.omc-node-warning .omc-health i { background: #ffbc00; box-shadow: 0 0 0 3px rgba(255, 188, 0, .14); }
.omc-node-danger .omc-health { color: #d94564; }
.omc-node-danger .omc-health i { background: #fa5c7c; box-shadow: 0 0 0 3px rgba(250, 92, 124, .14); }
.omc-node-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem 1rem; }
.omc-node-metrics div { min-width: 0; }
.omc-node-metrics span { display: block; margin-bottom: .1rem; color: #98a6ad; font-size: .7rem; text-transform: uppercase; }
.omc-node-metrics strong { display: block; overflow: hidden; color: #313a46; font-size: .88rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.omc-node-error { grid-column: 1 / -1; margin: .25rem 0 0; color: #d94564; font-size: .82rem; }
.omc-upgrade-panel { margin-top: auto; padding-top: 1rem; }
.omc-upgrade-details { font-size: .8rem; }
.omc-upgrade-details summary { color: #a57900; cursor: pointer; font-weight: 600; }
.omc-upgrade-details ul { margin: .65rem 0 0; padding: 0; list-style: none; }
.omc-upgrade-details li { display: grid; grid-template-columns: 4rem minmax(0, 1fr) auto; gap: .5rem; padding: .4rem 0; border-top: 1px solid #eef2f7; }
.omc-upgrade-details li span,
.omc-upgrade-details li small { color: #8391a2; }
.omc-upgrade-details li strong { overflow-wrap: anywhere; }
.omc-upgrade-status { margin-top: 1rem; }
.omc-summary-icon { display: grid; flex: 0 0 auto; width: 2.75rem; height: 2.75rem; place-items: center; border-radius: .7rem; color: #727cf5; background: rgba(114, 124, 245, .12); font-size: 1.3rem; }
.omc-history-card { overflow: hidden; }
.omc-history-chart { width: 100%; min-height: 19rem; overflow-x: auto; border: 1px solid #eef2f7; border-radius: .5rem; background: #fff; }
.omc-history-chart svg { display: block; width: 100%; min-width: 42rem; height: auto; }
.omc-history-grid line { stroke: #edf0f3; stroke-width: 1; }
.omc-history-grid text { fill: #8391a2; font-size: 10px; }
.omc-history-lines path { vector-effect: non-scaling-stroke; }
.omc-history-meta { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; color: #8391a2; font-size: .78rem; }
.omc-history-meta strong { margin-right: .25rem; color: #313a46; font-size: 1rem; }
.omc-history-legend { display: flex; flex-wrap: wrap; gap: .45rem 1rem; color: #65717e; font-size: .75rem; }
.omc-history-legend span { display: inline-flex; align-items: center; gap: .35rem; }
.omc-history-legend i { display: inline-block; width: .7rem; height: .2rem; border-radius: 1rem; }
.omc-history-empty { display: flex; min-height: 19rem; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; color: #98a6ad; }
.omc-history-empty i { font-size: 2rem; }

@media (max-width: 575.98px) {
    .omc-node-metrics { grid-template-columns: 1fr 1fr; }
    .omc-summary-icon { display: none; }
}

.omc-account-search { width: min(100%, 22rem); }
.omc-account-table { min-height: 24rem; }
.omc-account-table th { color: #8391a2; font-size: .72rem; font-weight: 700; letter-spacing: .03em; white-space: nowrap; text-transform: uppercase; }
.omc-account-table td { min-width: 9rem; }
.omc-account-table td:first-child { min-width: 15rem; }
.omc-account-table .form-select { min-width: 6.2rem; }
.omc-character-list { min-width: 28rem !important; }
.omc-character-entry { display: grid; grid-template-columns: minmax(9rem, 1fr) minmax(8rem, auto) auto; gap: .75rem; align-items: center; padding: .5rem 0; }
.omc-character-entry + .omc-character-entry { border-top: 1px solid #eef2f7; }
.omc-character-identity { min-width: 0; }
.omc-character-identity > div { min-width: 0; }
.omc-character-identity strong,
.omc-character-identity small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.omc-online-dot { display: inline-block; flex: 0 0 auto; width: .55rem; height: .55rem; border-radius: 50%; background: #ced4da; }
.omc-online-dot.online { background: #0acf97; box-shadow: 0 0 0 3px rgba(10,207,151,.14); }

@media (max-width: 767.98px) {
    .omc-account-search { width: 100%; }
}

/* Map editor: Hyper-compatible cards and controls, with a dependency-free canvas. */
body:has(.omc-full-editor) .content-page { padding-bottom: 0; }
body:has(.omc-full-editor) .content-page .content { padding-top: .4rem; min-height: 0; }
body:has(.omc-full-editor) .footer { display: none; }
.omc-full-editor { height: calc(100dvh - 60px); min-height: 360px; display: flex; flex-direction: column; gap: .35rem; }
.omc-full-editor-toolbar { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; min-height: 36px; }
.omc-full-editor-toolbar h4 { margin: 0 auto 0 0; font-size: 1rem; }
.omc-full-editor-toolbar select { width: auto; max-width: 16rem; }
.omc-full-editor-toolbar label { margin: 0; font-size: .8rem; }
#entity-message { margin: 0; font-size: .8rem; }
#entity-message:empty { display: none; }
#entity-form { display: flex; flex-direction: column; flex: 1; min-height: 0; }
#entity-form[hidden] { display: none; }
.omc-entity-placement { padding: .25rem .5rem; font-size: .8rem; }
.omc-entity-placement[hidden] { display: none; }
.omc-entity-placement summary { cursor: pointer; }
.omc-entity-placement input { padding: .2rem .4rem; font-size: .8rem; }
.omc-full-editor-panels { position: relative; display: flex; flex-direction: column; flex: 1; min-height: 0; }
.omc-full-editor-panels > .card { display: flex; flex-direction: column; flex: 1; min-height: 0; min-width: 0; overflow: hidden; margin: 0; }
.omc-full-editor-panels .card-header { position: absolute; right: 0; top: -32px; height: 30px; padding: 0; border: 0; background: transparent; }
.omc-full-editor-panels > .card { position: static; }
.omc-full-editor #entity-form > .omc-editor-tabs { min-height: 32px; padding-right: 180px; }
.omc-full-editor-panels > [hidden] { display: none; }
.omc-full-editor-panels .omc-entity-json { flex: 1; min-height: 0; overflow: hidden; }
.omc-editor-hint { margin: .2rem 0 0; font-size: .7rem; }
.omc-full-editor .omc-events-mode { padding: .25rem .5rem; }
.omc-full-editor .omc-events-toolbar { padding: .25rem .5rem; }
.omc-full-editor .omc-event-description { display: none; }
.omc-entity-code { height: 100%; min-height: 0; }
.omc-entity-json:has(.omc-events-mode:not([hidden])) { display: flex; flex-direction: column; }
.omc-entity-json [hidden] { display: none !important; }
.omc-events-mode { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; padding: .6rem; border-bottom: 1px solid #e2e6ea; }
.omc-events-mode select { margin-left: .5rem; padding: .25rem; border: 1px solid #dee2e6; border-radius: .3rem; background: white; }
.omc-events-workspace { display: grid; grid-template-columns: 13rem minmax(0, 1fr); flex: 1; min-height: 0; }
.omc-events-list { padding: .65rem; overflow: auto; border-right: 1px solid #e2e6ea; }
.omc-events-list label { display: block; margin-bottom: .4rem; font-size: .78rem; }
.omc-events-list > button { margin-bottom: .8rem; }
.omc-event-item { display: block; width: 100%; padding: .5rem; border: 0; border-radius: .3rem; background: transparent; text-align: left; overflow-wrap: anywhere; }
.omc-event-item.active { color: #4b57d1; background: #eef0ff; }
.omc-events-source { display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.omc-events-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; padding: .6rem; }
.omc-events-toolbar select { width: auto; margin-left: auto; }
.omc-event-check { margin: 0; padding: 0 .6rem .35rem; }
.omc-event-check:empty { display: none; }
.omc-event-description { margin: 0; padding: 0 .6rem .5rem; }
.omc-event-body { display: flex; flex: 1; min-width: 0; min-height: 0; position: relative; }
.omc-event-code { flex: 1; min-width: 0; min-height: 0; }
.omc-api-help { flex: 0 0 auto; border-left: 1px solid #e2e6ea; background: #fff; min-width: 0; }
.omc-api-help > summary { padding: .5rem; cursor: pointer; font-size: .78rem; }
.omc-api-help[open] { width: min(20rem, 32%); display: flex; flex-direction: column; }
.omc-api-tree { padding: .5rem; overflow: auto; max-height: 40%; flex-shrink: 0; border-bottom: 1px solid #e2e6ea; }
.omc-api-tree details details { margin-left: .75rem; }
.omc-api-tree summary { cursor: pointer; padding: .25rem 0; font-size: .8rem; }
.omc-api-doc { overflow: auto; min-height: 0; flex: 1; }
.omc-api-doc pre { white-space: pre-wrap; overflow-wrap: anywhere; margin: 0; }
@media (max-width: 991.98px) {
    .omc-api-help[open] { position: absolute; right: 0; top: 0; bottom: 0; width: min(20rem, 90%); z-index: 10; box-shadow: -.25rem 0 .75rem #0002; }
}
@media (max-width: 575.98px) {
    .omc-events-workspace { grid-template-columns: minmax(0, 1fr); overflow: auto; }
    .omc-events-list { max-height: 8rem; border-right: 0; border-bottom: 1px solid #e2e6ea; }
    .omc-event-code { min-height: 300px; }
}
#entity-placement input { width: 7rem; }
.omc-map-layout { display: grid; grid-template-columns: 15rem minmax(32rem, 1fr) 21rem; gap: 1rem; align-items: start; }
.omc-map-layout.omc-map-selector-collapsed { grid-template-columns: minmax(0, 1fr) 21rem; }
.omc-map-sidebar[hidden] { display: none; }
.omc-map-layout > .card { min-width: 0; margin-bottom: 1rem; overflow: hidden; }
.omc-map-sidebar,
.omc-map-inspector { position: sticky; top: 4.25rem; max-height: calc(100vh - 5.5rem); }
.omc-map-sidebar .card-body { overflow: auto; }
.omc-map-pane-title { display: flex; min-height: 3.4rem; align-items: center; justify-content: space-between; padding: .75rem 1rem; color: #313a46; font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.omc-area-tree { padding: 0 .55rem .85rem; }
.omc-area-tree ul { margin: 0; padding: 0; list-style: none; }
.omc-area-tree ul ul { margin-left: 1rem; padding-left: .45rem; border-left: 1px solid #e6e9ee; }
.omc-tree-toggle { flex: 0 0 1.25rem; width: 1.25rem; padding: 0; border: 0; color: #5c6672; background: transparent; }
.omc-tree-item { min-width: 0; display: grid; width: 100%; grid-template-columns: 1.25rem minmax(0,1fr) auto; gap: .35rem; align-items: center; padding: .42rem .55rem; border: 0; border-radius: .35rem; color: #5c6672; background: transparent; font-size: .82rem; text-align: left; }
.omc-tree-item:hover { color: #313a46; background: #f4f6f9; }
.omc-tree-item.active { color: #4b57d1; background: rgba(114,124,245,.12); font-weight: 600; }
.omc-tree-item span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.omc-tree-item small { color: #98a6ad; font-size: .65rem; }
.omc-room-search { width: calc(100% - 1.5rem); margin: 0 .75rem .5rem; }
.omc-room-index { padding: 0 .5rem .75rem; }
.omc-room-index > button { display: grid; width: 100%; grid-template-columns: 2rem minmax(0,1fr); gap: .55rem; align-items: center; padding: .5rem; border: 0; border-radius: .4rem; background: transparent; text-align: left; }
.omc-room-index > button:hover { background: #f4f6f9; }
.omc-room-index strong,
.omc-room-index small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.omc-room-index strong { color: #39404a; font-size: .78rem; }
.omc-room-index small { color: #98a6ad; font-size: .66rem; }
.omc-index-icon { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: .45rem; color: #727cf5; background: rgba(114,124,245,.12); }
.omc-index-icon.room { color: #0a8f6a; background: rgba(10,207,151,.12); }
.omc-map-empty { display: flex; min-height: 8rem; flex-direction: column; gap: .65rem; align-items: center; justify-content: center; padding: 1rem; color: #98a6ad; font-size: .78rem; text-align: center; }
.omc-map-empty i { font-size: 1.8rem; }
.omc-map-main { min-height: 46rem; }
.omc-map-toolbar { display: flex; min-height: 4rem; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .65rem 1rem; border-bottom: 1px solid #eef2f7; background: #fff; }
.omc-map-toolbar > .min-w-0 { min-width: 0; flex: 1 1 10rem; }
.omc-map-tools { flex: 0 0 auto; margin-left: auto; white-space: nowrap; }
.omc-map-toolbar .form-select { width: 4.5rem; }
.omc-zoom-value { width: 3.7rem; }
.omc-map-breadcrumb { display: flex; min-width: 0; align-items: center; gap: .15rem; }
.omc-map-breadcrumb button { max-width: 10rem; overflow: hidden; padding: 0; border: 0; color: #313a46; background: none; font-size: .9rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.omc-map-breadcrumb button:hover { color: #727cf5; }
.omc-map-breadcrumb i { color: #98a6ad; }
.omc-map-viewport { position: relative; height: 42rem; overflow: auto; background-color: #f8fafc; background-image: linear-gradient(rgba(135,146,158,.13) 1px, transparent 1px), linear-gradient(90deg, rgba(135,146,158,.13) 1px, transparent 1px); background-size: 23px 23px; }
.omc-map-stage { position: relative; }
.omc-map-world { position: absolute; width: 1800px; height: 1200px; transform-origin: 0 0; }
.omc-map-world::before,
.omc-map-world::after { position: absolute; z-index: 0; content: ''; background: rgba(114,124,245,.2); pointer-events: none; }
.omc-map-world::before { top: 600px; left: 0; width: 100%; height: 1px; }
.omc-map-world::after { top: 0; left: 900px; width: 1px; height: 100%; }
.omc-map-links { position: absolute; z-index: 1; inset: 0; width: 1800px; height: 1200px; overflow: visible; pointer-events: none; }
.omc-map-links line { stroke: #8490a0; stroke-width: 2; stroke-dasharray: 5 4; opacity: .72; }
.omc-map-links marker path { fill: #8490a0; }
.omc-map-node { position: absolute; z-index: 2; display: flex; width: 7.25rem; min-height: 4.1rem; flex-direction: column; align-items: center; justify-content: center; padding: .5rem .65rem; border: 2px solid #727cf5; border-radius: .65rem; color: #344054; background: #fff; box-shadow: 0 .35rem 1rem rgba(49,58,70,.12); text-align: center; touch-action: none; transform: translate(-50%,-50%); cursor: grab; user-select: none; }
.omc-map-node:active { cursor: grabbing; }
.omc-map-node:hover,
.omc-map-node.selected { z-index: 3; border-color: #4b57d1; box-shadow: 0 0 0 4px rgba(114,124,245,.16), 0 .5rem 1.2rem rgba(49,58,70,.15); }
.omc-map-node strong { display: block; width: 100%; overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.omc-map-node small { margin-top: .15rem; color: #8391a2; font-size: .6rem; }
.omc-node-type { position: absolute; top: -.6rem; padding: .1rem .4rem; border-radius: 1rem; color: #fff; background: #727cf5; font-size: .55rem; font-weight: 700; letter-spacing: .04em; }
.omc-map-node.area { width: 8.4rem; min-height: 4.7rem; border-style: dashed; border-radius: 1.15rem .35rem 1.15rem .35rem; border-color: #39afd1; background: #f1fbfd; }
.omc-map-node.area .omc-node-type { background: #39afd1; }
.omc-map-node.external { opacity: .78; cursor: pointer; }
.omc-map-node.terrain-outdoor,
.omc-map-node.terrain-forest { border-color: #0acf97; background: #f0fcf8; }
.omc-map-node.terrain-outdoor .omc-node-type,
.omc-map-node.terrain-forest .omc-node-type { background: #0acf97; }
.omc-map-node.terrain-water { border-color: #39afd1; background: #f1fbfd; }
.omc-map-node.terrain-water .omc-node-type { background: #39afd1; }
.omc-map-node.terrain-road,
.omc-map-node.terrain-desert { border-color: #ffbc00; background: #fffaf0; }
.omc-map-node.terrain-road .omc-node-type,
.omc-map-node.terrain-desert .omc-node-type { background: #d99f00; }
.omc-map-node.terrain-mountain { border-color: #8391a2; background: #f4f6f8; }
.omc-map-node.terrain-mountain .omc-node-type { background: #8391a2; }
.omc-map-canvas-empty { position: absolute; top: 600px; left: 900px; color: #98a6ad; transform: translate(-50%,-50%); }
.omc-map-table { height: 42rem; overflow: auto; }
.omc-map-table tbody tr { cursor: pointer; }
.omc-map-inspector { overflow: auto !important; }
.omc-map-inspector .form-label { margin-bottom: .2rem; color: #8391a2; font-size: .68rem; font-weight: 600; text-transform: uppercase; }
.omc-editor-tabs { display: flex; gap: .25rem; }
.omc-editor-tabs button { padding: .4rem .65rem; border: 0; border-radius: .35rem .35rem 0 0; color: #8391a2; background: #f2f4f7; font-size: .72rem; font-weight: 600; }
.omc-editor-tabs button.active { color: #4b57d1; background: rgba(114,124,245,.13); }
.omc-map-json { min-height: 18rem; border-top-left-radius: 0; font-size: .72rem; line-height: 1.5; resize: vertical; }
.omc-map-context { position: fixed; z-index: 1060; width: min(21rem, calc(100vw - 1.5rem)); padding: .9rem; border: 1px solid #e7eaed; border-radius: .65rem; background: #fff; box-shadow: 0 .75rem 2.5rem rgba(31,41,55,.2); }
.omc-context-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: .8rem; }
.omc-context-exits { margin-top: .75rem; border-top: 1px solid #eef2f7; }
.omc-context-exits > div { display: flex; align-items: center; justify-content: space-between; padding: .45rem 0; border-bottom: 1px solid #f2f4f7; }
.omc-context-exits span,
.omc-context-exits small { display: block; }
.omc-context-exits small { color: #98a6ad; font-size: .65rem; }

@media (max-width: 1399.98px) {
    .omc-map-layout { grid-template-columns: 14rem minmax(30rem,1fr); }
    .omc-map-layout.omc-map-selector-collapsed { grid-template-columns: minmax(0, 1fr); }
    .omc-map-inspector { position: relative; top: 0; grid-column: 1 / -1; max-height: none; }
}

@media (max-width: 991.98px) {
    .omc-map-layout { grid-template-columns: 1fr; }
    .omc-map-sidebar { position: relative; top: 0; max-height: 24rem; }
    .omc-map-inspector { grid-column: auto; }
    .omc-map-toolbar { align-items: flex-start; flex-direction: column; }
    .omc-map-tools { width: 100%; flex-wrap: wrap; margin-left: 0; }
    .omc-map-viewport,
    .omc-map-table { height: 36rem; }
}

.omc-description-terminal {
    --description-columns: 60ch;
    position: relative;
    overflow: auto;
    background: #171b20;
    color: #e4e8ed;
    font-family: "Sarasa Mono SC", "Noto Sans Mono CJK SC", "Microsoft YaHei Mono", monospace;
    font-size: 16px;
    line-height: 1.6;
    font-variant-ligatures: none;
    border-radius: .3rem;
}
.omc-description-terminal::after {
    content: "";
    position: absolute;
    top: 1rem;
    bottom: 1rem;
    left: calc(var(--description-columns) + 1rem);
    border-left: 1px dashed #73808c;
    pointer-events: none;
}
.omc-description-terminal textarea {
    display: block;
    width: 100%;
    min-width: calc(var(--description-columns) + 2rem + 2px);
    height: 24rem;
    padding: 1rem;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    resize: vertical;
    white-space: pre;
    tab-size: 4;
}

.omc-account-settings { max-width: 860px; margin: 0 auto; }
.omc-security-row { display: flex; align-items: center; gap: 16px; padding: 20px 24px; }
.omc-security-row + .omc-security-row { border-top: 1px solid var(--ct-border-color, #eef2f7); }
.omc-security-row > .btn { flex-shrink: 0; }
.omc-security-icon { font-size: 24px; color: var(--ct-secondary-color, #8a969c); }
.omc-security-history-summary { padding: 18px 24px; cursor: pointer; }
@media (max-width: 575px) {
    .omc-security-row { padding: 16px; gap: 12px; }
    .omc-security-icon { display: none; }
    .omc-security-history-summary { padding: 16px; }
    .omc-security-history-summary > .text-muted { display: block; margin: 4px 0 0 !important; }
}
