/* Classic MDI workspace, scoped to the ROM tool. */
.rom-desktop-route main { padding:8px;max-width:none; }
.rom-desktop-route .shell > footer { display:none; }
.rom-focus .sidebar,.rom-focus .topbar,.rom-focus .scrim { display:none; }
.rom-focus .shell { margin-left:0; }
.rom-focus main { padding:0; }
.rom-desktop { --desk-font:11px;display:flex;flex-direction:column;height:calc(100dvh - 98px);min-height:620px;background:#efefed;color:#111;border:1px solid #aaa;font:12px/1.3 Tahoma,Arial,sans-serif;isolation:isolate; }
.rom-focus .rom-desktop { height:100dvh;min-height:480px; }
.rom-desktop button,.rom-desktop input,.rom-desktop select,.rom-desktop textarea,.rom-desktop summary { font:inherit;color:inherit; }
.rom-desktop button { background:#f6f5f3;border:1px solid #aaa;border-radius:2px;padding:3px 7px;cursor:pointer;white-space:nowrap; }
.rom-desktop button:hover { background:#fff;border-color:#ed0000; }
.rom-desktop button:focus-visible,.rom-desktop summary:focus-visible { outline:2px solid #ed0000;outline-offset:-2px; }
.rom-desktop button:disabled { color:#999;cursor:default; }
.desk-title { display:flex;gap:14px;align-items:center;padding:4px 9px;background:#dddcd9;border-bottom:1px solid #b2b2b2;min-height:26px; }
.desk-title strong { font-size:12px; }.desk-title span { color:#555; }.desk-title a { margin-left:auto;color:#9c0000; }
.desk-menubar { display:flex;gap:1px;position:relative;z-index:10000;border-bottom:1px solid #bdbdbd;background:#f6f5f3; }
.desk-menu { position:relative; }.desk-menu summary { list-style:none;padding:4px 10px;cursor:pointer; }.desk-menu summary::-webkit-details-marker { display:none; }.desk-menu[open] summary,.desk-menu summary:hover { background:#e1e0de; }
.desk-menu > div { position:absolute;top:100%;left:0;width:280px;max-height:75vh;overflow-y:auto;background:#f6f5f3;border:1px solid #888;box-shadow:2px 3px 6px #0003;padding:3px; }
.desk-menu button { display:flex;width:100%;justify-content:space-between;gap:20px;border:0;background:transparent;text-align:left;padding:5px 10px; }
.desk-menu button:hover { background:#e7dada; }.desk-menu kbd { font:11px Tahoma,Arial,sans-serif;color:#666; }
.desk-toolbar { display:flex;align-items:center;gap:4px;min-height:34px;padding:4px 6px;border-bottom:1px solid #aaa;flex-wrap:wrap; }.desk-toolbar button { padding:3px 7px; }.desk-toolbar span { margin-left:auto;font-size:11px;color:#555; }
.desk-layout { flex:1;min-height:0;display:grid;grid-template-columns:245px minmax(0,1fr); }
.desk-sidebar { display:flex;flex-direction:column;overflow:hidden;min-width:160px;resize:horizontal;border-right:3px ridge #c5c4c2;background:white; }
.desk-pane-title { font-size:11px;text-align:center;background:#9d9c99;color:white;min-height:18px;padding:1px 4px;border-bottom:1px solid #eee;display:flex;justify-content:center;align-items:center;gap:5px; }
.desk-pane-title button { font-size:10px;padding:0 4px;line-height:13px;color:#222;margin-left:5px; }
#desk-documents { min-height:50px;max-height:160px;overflow:auto;resize:vertical; }.desk-document { display:flex; }.desk-document button { border:0;text-align:left;overflow:hidden;text-overflow:ellipsis;background:transparent;padding:3px 5px; }.desk-document button:first-child { flex:1;min-width:0; }.desk-document.active { background:#1682b8;color:#fff; }.desk-document.active button { color:#fff; }
#desk-search { border:1px solid #aaa;margin:5px;padding:4px;width:calc(100% - 10px);border-radius:0;background:#fff; }
#desk-definition { padding:2px 5px; }.desk-info-button { width:100%;text-align:left; }#desk-definition select { max-width:100%;font-size:11px; }#desk-definition label { display:block; }
#desk-tree { flex:1;min-height:0;overflow:auto;padding:4px; }.desk-category { margin:0; }.desk-category summary { cursor:pointer;white-space:nowrap;font-size:12px;font-weight:normal;padding:2px 0; }.desk-tree-item { display:flex;align-items:center;gap:4px;padding:1px 1px 1px 10px;font-size:11px;white-space:nowrap;cursor:pointer; }.desk-tree-item span { overflow:hidden;text-overflow:ellipsis; }.desk-tree-item input { appearance:auto;width:11px;height:11px;min-height:0;flex:none;margin:0;accent-color:#333; }.desk-tree-item.unavailable { color:#aaa; }.desk-tree-item.modified { background:#ffe0e7; }.desk-tree-item.compared { color:#004ccd; }.desk-tree-item small { margin-left:auto;color:#004ccd; }
.desk-right { display:flex;flex-direction:column;min-width:0;min-height:0; }.desk-canvas { flex:1;min-height:200px;position:relative;overflow:auto;background:#fff; }.desk-empty { color:#666;max-width:510px;margin:65px auto;text-align:center;padding:20px; }.desk-empty strong { font-size:17px; }.desk-empty p { font-size:13px;line-height:1.7; }.desk-empty button { margin:6px; }
.desk-console { flex:0 0 150px;min-height:50px;max-height:45vh;resize:vertical;border-top:3px ridge #ccc;overflow:hidden;background:#fff; }.desk-console[hidden] { display:none; }.desk-console pre { height:calc(100% - 20px);overflow:auto;margin:0;padding:3px;font:10px/1.4 Consolas,'Courier New',monospace;white-space:pre-wrap;overflow-wrap:anywhere;background:white;color:#111; }
.desk-statusbar { display:flex;gap:10px;justify-content:space-between;padding:3px 6px;border-top:1px solid #aaa;font-size:11px;min-height:21px; }.desk-statusbar span:first-child { white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }.desk-statusbar span:last-child { flex:none;color:#666; }
.desk-map-window { position:absolute;display:flex;flex-direction:column;min-width:300px;min-height:190px;background:#eeedeb;border:1px solid #aaa;box-shadow:3px 4px 7px #0003;resize:both;overflow:hidden; }.desk-map-window.active { border-color:#777;box-shadow:3px 4px 8px #0004; }.desk-map-window.minimized { height:24px!important;min-height:24px;resize:none;width:280px!important; }
.desk-window-title { display:flex;align-items:center;min-height:23px;padding:1px 3px 1px 6px;background:#deddda;border-bottom:1px solid #aaa;cursor:move;touch-action:none; }.desk-map-window.active .desk-window-title { background:#ecdadd; }.desk-window-title strong { font-weight:normal;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;user-select:none; }.desk-window-title button { width:18px;height:18px;border:1px solid #c4c2bf;padding:0;line-height:14px;font-size:11px; }.desk-window-title button:last-child { background:#bf4c55;color:white; }
.desk-window-menu { display:flex;gap:1px;padding:1px 4px;border-bottom:1px solid #ccc; }.desk-window-menu button { border:0;background:transparent;padding:1px 4px;font-size:10px; }.desk-window-settings { display:flex;align-items:center;gap:8px;padding:1px 5px;color:#555;font-size:10px;min-height:21px; }.desk-window-settings label { display:flex;align-items:center;gap:3px; }.desk-window-settings select { font-size:10px;padding:0;border:1px solid #bbb;border-radius:0;max-width:120px; }.desk-window-settings span { margin-left:auto; }
.desk-alias { font-size:9px;color:#6d2230;background:#f9eff0;padding:2px 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.desk-map-scroll { flex:1;min-height:0;overflow:auto;padding:0 5px 5px;background:#ededeb; }.desk-map { width:100%;border-collapse:separate;border-spacing:0;table-layout:auto;font:var(--desk-font)/1.05 Tahoma,Arial,sans-serif;user-select:none; }.desk-map th { position:sticky;top:0;z-index:2;background:#c3c2bf;font-weight:normal;padding:2px 4px;border:1px solid #ddd;text-align:right;white-space:nowrap;font-size:var(--desk-font); }.desk-map tbody th { left:0;background:#bfc1c7; }.desk-map td { border:1px solid #d0c3aa;padding:0;min-width:33px;max-width:90px;position:relative; }.desk-map input,.desk-map select { display:block;border:0;border-radius:0;outline:0;background:transparent;color:#080808;width:100%;min-width:33px;padding:1px 2px;text-align:right;font:inherit;box-shadow:none; }.desk-map td.selected { box-shadow:inset 0 0 0 2px #111; }.desk-map td.modified input,.desk-map td.modified select { outline:1px solid #cf0038;outline-offset:-2px; }.desk-map td.compared { border-color:#005bff;border-width:2px; }.desk-map input[readonly] { cursor:default; }.desk-map input[aria-invalid=true] { outline:2px solid #ed0000; }.desk-map input:focus { outline:1px solid #111;outline-offset:-1px; }
.desk-window-footer { display:flex;justify-content:space-between;background:#999895;color:white;font-size:10px;padding:1px 5px;min-height:16px; }.desk-window-footer span { font-size:9px; }
.desk-graph { width:100%;min-height:230px;display:block;cursor:grab;touch-action:none; }.desk-angle { display:flex;align-items:center;justify-content:center;font-size:11px; }.desk-angle input { max-width:160px; }
.desk-dialog { width:min(820px,94vw);max-height:90dvh;border:1px solid #888;border-radius:2px;box-shadow:4px 7px 20px #0005;padding:18px;background:#f4f3f1;color:#111;font:13px/1.6 Tahoma,Arial,sans-serif; }.desk-dialog h2 { font-size:17px;font-weight:500;margin:0 0 14px; }.desk-dialog label { display:block;margin:10px 0;font-size:12px; }.desk-dialog label input:not([type=checkbox]),.desk-dialog select,.desk-dialog textarea { display:block;background:white;border:1px solid #aaa;border-radius:0;padding:5px;font:12px/1.4 Consolas,monospace;width:100%; }.desk-dialog input[type=checkbox] { appearance:auto; }.desk-dialog textarea { white-space:pre; }.desk-dialog p { font-size:12px; }.desk-dialog pre { overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;max-height:180px; }.desk-dialog-buttons { display:flex;justify-content:flex-end;gap:8px;margin-top:15px; }.desk-dialog-buttons button { padding:5px 16px; }.desk-dialog-error,#desk-dialog-error { color:#a80000;font-size:12px; }.desk-rom-info { display:grid;grid-template-columns:130px minmax(0,1fr);font-size:12px; }.desk-rom-info dt,.desk-rom-info dd { margin:0;padding:2px 4px;border-bottom:1px solid #ddd;overflow-wrap:anywhere; }.desk-rom-info dt { font-weight:bold; }.desk-note { color:#666;font-size:11px;padding:5px; }
@media(max-width:700px){.desk-layout{grid-template-columns:180px minmax(0,1fr)}.desk-toolbar{gap:2px}.desk-toolbar button{font-size:10px;padding:3px}.desk-statusbar span:last-child{display:none}.desk-title span{display:none}.desk-map-window{min-width:280px}.desk-menubar summary{padding:4px 8px}.desk-dialog{padding:12px}.rom-focus .rom-desktop{min-height:600px}}
.definition-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.definition-form label{margin:0}.scaling-catalog{max-height:38vh;overflow:auto;border:1px solid #bbb;margin:12px 0}.scaling-catalog table{border-collapse:collapse;font:12px Arial,sans-serif;white-space:nowrap}.scaling-catalog th,.scaling-catalog td{padding:5px 8px;text-align:left;border-bottom:1px solid #ddd}.scaling-catalog th{position:sticky;top:0;background:#eee}.scaling-catalog tbody tr:nth-child(even){background:#f4f4f4}.scaling-catalog button{font:inherit}.desk-tree-item.unavailable{opacity:1;color:#666;cursor:pointer}

/* Use the same content metrics for initial window size and actual cell layout. */
.desk-map-window{min-width:190px;min-height:180px;box-sizing:border-box}.desk-window-title{height:24px;min-height:24px;flex-shrink:0}.desk-window-menu{height:22px;min-height:22px;flex-shrink:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;white-space:nowrap}.desk-window-menu::-webkit-scrollbar{display:none}.desk-window-menu button{flex:none}.desk-window-settings{height:26px;min-height:26px;flex-shrink:0;overflow:hidden;white-space:nowrap}.desk-window-settings label{flex:none;margin:0}.desk-window-settings span{overflow:hidden;text-overflow:ellipsis;min-width:0}.desk-alias{height:18px;min-height:18px;box-sizing:border-box;flex-shrink:0}.desk-window-footer{height:20px;min-height:20px;flex-shrink:0;white-space:nowrap;overflow:hidden;align-items:center;gap:8px}.desk-window-footer span{min-width:0;overflow:hidden;text-overflow:ellipsis}.desk-table-frame{flex:1;min-height:0;min-width:0;display:grid;grid-template-columns:var(--desk-axis-width,22px) minmax(0,1fr);grid-template-rows:var(--desk-x-height,20px) minmax(0,1fr) 20px;background:#aaa9a6}.desk-x-axis{grid-column:2;grid-row:1;text-align:center;align-self:center;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.desk-y-axis{grid-column:1;grid-row:2;writing-mode:vertical-rl;transform:rotate(180deg);text-align:center;align-self:stretch;justify-self:stretch;font-size:10px;line-height:22px;white-space:nowrap;overflow:hidden}.desk-value-axis{grid-column:2;grid-row:3;text-align:center;align-self:center;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.desk-table-frame>.desk-map-scroll{grid-column:2;grid-row:2;padding:0 5px 5px;min-width:0}.desk-map{table-layout:fixed;max-width:none;line-height:1.1}.desk-map th,.desk-map td{box-sizing:border-box;height:var(--desk-row-height,18px);max-width:none;min-width:0;overflow:hidden}.desk-map th{padding:1px 3px;font-size:var(--desk-font)}.desk-map input,.desk-map select{box-sizing:border-box;min-width:0;width:100%;height:calc(var(--desk-row-height,18px) - 2px);min-height:0;line-height:1.1;padding:0 3px;font:inherit}.desk-map td.compared{border-width:1px;box-shadow:inset 0 0 0 1px #005bff}.desk-map td.compared.selected{box-shadow:inset 0 0 0 2px #111}.desk-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(max-width:700px){.desk-map-window{min-width:190px}}
