/* Object Context UI 2.0: one token-driven identity strip outside Workspace canvas. */
:root{
  --object-header-bg:var(--color-surface-primary,var(--panel));
  --object-header-border:var(--color-border-soft,var(--border));
  --object-header-shadow:var(--shadow-xs,0 3px 12px rgba(0,0,0,.08));
  --object-card-bg:var(--color-surface-primary,var(--panel));
  --object-card-bg-hover:var(--color-surface-hover,var(--panel2));
  --object-card-bg-selected:var(--color-surface-selected,var(--panel2));
  --object-card-border:var(--color-border-default,var(--border));
  --object-selection-ring:var(--color-accent,var(--blue));
  --object-status-bg:var(--color-surface-secondary,var(--panel2));
  --object-status-text:var(--color-text-primary,var(--text));
}
.content.object-context-active{position:relative;padding-top:5px!important}
.content.object-context-active .oc-source-header{display:none!important}
.content.object-context-active .oc-context{position:sticky;top:64px;z-index:93;min-width:0;max-width:100%;margin:0 0 8px;background:var(--object-header-bg);border:1px solid var(--object-header-border);border-radius:11px;box-shadow:var(--object-header-shadow);color:var(--color-text-primary,var(--text));transition:box-shadow .18s ease,border-radius .18s ease}
.oc-breadcrumb{display:flex;gap:6px;align-items:center;min-width:0;padding:4px 12px 0;font-size:10px;line-height:14px;color:var(--color-text-secondary,var(--muted))}
.oc-breadcrumb>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-breadcrumb>span:last-child{max-width:min(600px,55vw)}
.oc-context-main{display:flex;align-items:center;gap:8px;min-height:43px;padding:3px 10px}
.oc-context .oc-object-identity,.oc-object-identity{display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:100%;vertical-align:middle;color:var(--color-text-primary,var(--text))}
.oc-type-icon{flex:0 0 29px;height:29px;width:29px;display:inline-grid;place-items:center;border:1px solid var(--color-border-soft,var(--border));border-radius:8px;background:var(--color-accent-soft,var(--color-surface-secondary,var(--panel2)));color:var(--color-accent,var(--blue));font-size:17px}
.oc-object-copy{display:flex;flex-direction:column;gap:0;min-width:0}.oc-object-copy strong{font-size:13px;font-weight:680;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:clamp(160px,33vw,660px)}.oc-object-copy small{font-size:10px;line-height:1.2;color:var(--color-text-secondary,var(--muted));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.oc-inline-status{flex:0 0 auto}.oc-status{display:inline-flex;align-items:center;white-space:nowrap;max-width:165px;overflow:hidden;text-overflow:ellipsis;border-radius:999px;border:1px solid var(--color-border-soft,var(--border));padding:3px 8px;background:var(--object-status-bg);color:var(--object-status-text);font-size:10px}
.oc-tone-success{background:var(--color-success-bg,var(--object-status-bg));color:var(--color-success,var(--object-status-text))}.oc-tone-warning{background:var(--color-warning-bg,var(--object-status-bg));color:var(--color-warning,var(--object-status-text))}
.oc-key-fields{display:flex;align-items:center;min-width:0;gap:10px;overflow:hidden}.oc-key-field{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;color:var(--color-text-primary,var(--text))}.oc-key-field em{font-style:normal;color:var(--color-text-secondary,var(--muted))}
.oc-context-actions{display:flex;align-items:center;gap:5px;margin-left:auto;flex:0 0 auto}.oc-context-actions button{min-width:30px;white-space:nowrap}.oc-context-actions .oc-info-button,.oc-inspector-close{border:1px solid var(--color-border-default,var(--border));color:var(--color-text-primary,var(--text));background:var(--color-surface-secondary,var(--panel2));border-radius:8px;font:inherit;font-size:11px;padding:6px 9px;cursor:pointer}.oc-context-actions .oc-info-button:hover{background:var(--color-surface-hover,var(--panel2))}
.oc-back-host{display:flex;align-items:center;flex:0 0 auto}.oc-back-host:empty{display:none}.oc-back-host .mini{margin:0!important;position:static!important;font-size:11px;padding:5px 7px!important}
.oc-legacy-actions{display:flex;gap:4px;align-items:center;max-width:32vw;overflow-x:auto}.oc-legacy-actions .pill{white-space:nowrap}.oc-legacy-actions .mini{font-size:10px;padding:5px 7px}
.oc-context.oc-scrolled .oc-breadcrumb,.oc-context.oc-scrolled .oc-key-fields{display:none}.oc-context.oc-scrolled{border-radius:0 0 10px 10px;box-shadow:var(--shadow-md,var(--object-header-shadow))}.oc-context.oc-scrolled .oc-context-main{min-height:39px}
.oc-inspector[hidden]{display:none!important}.oc-inspector{position:absolute;right:0;top:calc(100% + 5px);z-index:1010;width:min(375px,calc(100vw - 30px));max-height:min(75vh,650px);overflow-y:auto;padding:14px;border:1px solid var(--color-border-default,var(--border));border-radius:13px;background:var(--color-surface-elevated,var(--object-header-bg));box-shadow:var(--shadow-lg,0 18px 46px rgba(0,0,0,.2));color:var(--color-text-primary,var(--text))}.oc-inspector-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.oc-inspector-close{font-size:20px;line-height:1;padding:3px 8px}.oc-inspector>.oc-status{display:flex;width:max-content;margin:10px 0}.oc-inspector dl,.oc-object-card dl{margin:12px 0 0}.oc-inspector dl>div,.oc-object-card dl>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--color-border-soft,var(--border))}.oc-inspector dt,.oc-object-card dt{color:var(--color-text-secondary,var(--muted));font-size:11px}.oc-inspector dd,.oc-object-card dd{margin:0;text-align:right;overflow-wrap:anywhere;font-size:11px}
/* Existing universal card shells keep their drag targets, ports, resize and saved geometry. */
.content.object-context-active .oc-existing-card{transition:box-shadow .18s ease,border-color .18s ease,background-color .18s ease}
.content.object-context-active .oc-existing-card:hover{border-color:var(--color-accent,var(--blue))!important}
.content.object-context-active .oc-existing-card.oc-is-selected{border-color:var(--object-selection-ring)!important;box-shadow:0 0 0 1px var(--object-selection-ring),var(--shadow-sm,0 7px 18px rgba(0,0,0,.12))!important}
.oc-object-card{background:var(--object-card-bg);color:var(--color-text-primary,var(--text));border:1px solid var(--object-card-border);border-radius:12px;padding:12px;min-width:0;max-width:400px}.oc-object-card:hover{background:var(--object-card-bg-hover);border-color:var(--color-accent,var(--blue))}.oc-object-card.is-selected{background:var(--object-card-bg-selected);border-color:var(--object-selection-ring)}.oc-object-card-head{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700}.oc-object-card .oc-type-icon{width:25px;height:25px;flex-basis:25px;font-size:15px}.oc-object-card h3{margin:7px 0;font-size:13px;overflow-wrap:anywhere}.oc-object-code{display:block;margin-top:6px;color:var(--color-text-secondary,var(--muted));font-size:10px}
/* Never consume graph space with the old ribbon's negative margin. */
.content.object-context-active .workspace-stage-wrap{margin-top:0!important}
.content.object-context-active .workspace-stage-wrap>.workspace-canvas,.content.object-context-active .workspace-stage-wrap>.tw-canvas,.content.object-context-active .workspace-stage-wrap>.records-ws-canvas,.content.object-context-active .workspace-stage-wrap>.record-ws-canvas,.content.object-context-active .workspace-stage-wrap>#objectRuntimeCanvas{min-height:620px;height:calc(100vh - 130px)}
@media(max-width:920px){.oc-key-fields{display:none}.oc-legacy-actions{max-width:28vw}.oc-object-copy strong{max-width:38vw}}
@media(max-width:650px){.content.object-context-active .oc-context{top:64px}.oc-context-main{padding:3px 7px;gap:5px}.oc-breadcrumb{font-size:9px}.oc-object-copy strong{max-width:35vw;font-size:12px}.oc-inline-status{display:none}.oc-context-actions .oc-info-button{font-size:0}.oc-context-actions .oc-info-button span{font-size:13px}.oc-legacy-actions{max-width:25vw}.oc-legacy-actions .pill{display:none}.oc-object-copy small{max-width:38vw}}
@media(prefers-reduced-motion:reduce){.content.object-context-active .oc-context,.content.object-context-active .oc-existing-card{transition:none!important}}
