:root{--blue:#0f62fe;--blue2:#eaf2ff;--border:#dfe3ea;--text:#172033;--muted:#687085;--bg:#f7f9fc;--card:#fff;--green:#e8f8ee;--shadow:0 10px 25px rgba(15,32,60,.08)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--text);background:var(--bg)}button,select,input,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--border);background:#fff;border-radius:8px;padding:9px 12px}button:hover{border-color:#b7c1d2}.primary{background:var(--blue);border-color:var(--blue);color:#fff}.outline{border-color:var(--blue);color:var(--blue);background:#fff}.ghost{border:0;background:transparent;padding:5px}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 18px;gap:34px}.brand{display:flex;align-items:center;gap:10px;line-height:1.05}.logo{width:34px;height:34px;border-radius:9px;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:19px}.topbar nav{display:flex;gap:24px;flex:1;height:100%;align-items:center}.topbar nav a{height:100%;display:flex;align-items:center;border-bottom:2px solid transparent;color:#111;text-decoration:none}.topbar nav a.active{border-bottom-color:var(--blue);color:var(--blue);font-weight:600}.user{display:flex;align-items:center;gap:12px}.help,.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--border)}.avatar{background:#315ca8;color:#fff;border:0;font-size:12px}.app{display:flex;height:calc(100vh - 64px);min-height:780px}.sidebar{width:245px;background:#fff;border-right:1px solid var(--border);padding:18px 12px;display:flex;flex-direction:column}.sidebar h2{font-size:20px;margin:6px 4px 22px}.side{border:0;text-align:left;background:transparent;margin:2px 0;padding:12px;border-radius:8px;color:#1f2937}.side.active,.side:hover{background:var(--blue2);color:var(--blue)}.sidebar hr{width:100%;border:0;border-top:1px solid var(--border);margin:20px 0}.spacer{flex:1}.workspace{flex:1;padding:18px 16px 8px;overflow:hidden}.toolbar{display:grid;grid-template-columns:250px 96px 220px 44px 230px 90px 1fr 142px;gap:12px;align-items:end;margin-bottom:14px}.toolbar label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:6px}.toolbar select,.toolbar input{height:42px;border:1px solid var(--border);border-radius:8px;background:#fff;padding:0 12px}.canvasWrap{height:calc(100% - 300px);min-height:450px;display:grid;grid-template-columns:1fr 260px 1fr 330px;gap:12px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 1px 2px rgba(0,0,0,.02);overflow:hidden}.cardTitle{height:48px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 16px}.treeCard{min-width:0}.tree{height:calc(100% - 48px);overflow:auto;padding:12px 10px 30px}.node{position:relative;margin:2px 0 2px calc(var(--level)*18px);padding:8px 8px;border-radius:8px;display:grid;grid-template-columns:18px 20px 78px 1fr 22px;gap:6px;align-items:center;white-space:nowrap}.node:hover{background:#f4f7fb}.node.selected{background:#dfeaff}.node .code{font-family:Consolas,monospace;color:#24324a}.node .name{overflow:hidden;text-overflow:ellipsis}.node .dot{width:9px;height:9px;border-radius:50%;background:#9ca3af;justify-self:center}.node.selected .dot{background:var(--blue)}.node .arrow{color:#374151}.nodeAction{border:0;background:transparent;padding:0}.relationCanvas{position:relative;display:flex;align-items:center;justify-content:center;color:var(--muted)}#linkSvg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.hint{text-align:center;line-height:1.45}.relationCanvas .outline{position:absolute;bottom:30px}.inspector{display:flex;flex-direction:column;min-width:0}.tabs{display:flex;border-bottom:1px solid var(--border);overflow:auto}.tab{border:0;border-radius:0;background:#fff;padding:12px 10px}.tab.active{border-bottom:2px solid var(--blue);color:var(--blue)}.form{padding:14px;overflow:auto}.form label{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:12px;color:#4b5563}.form input,.form select,.form textarea{border:1px solid var(--border);border-radius:8px;padding:9px 10px;background:#fff;color:var(--text)}.form textarea{min-height:58px;resize:vertical}.form .row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.status{display:inline-block;background:var(--green);color:#08783f;padding:7px 10px;border-radius:7px;border:1px solid #bce8ce;width:max-content}.quick{border-top:1px solid var(--border);padding:16px;margin-top:auto}.quick p{display:flex;justify-content:space-between;font-size:13px}.relationsPanel{height:205px;margin:14px 0 6px}.relationsPanel table{width:100%;border-collapse:collapse;font-size:13px}.relationsPanel th,.relationsPanel td{padding:10px 12px;border-bottom:1px solid #edf0f5;text-align:left;white-space:nowrap}.relationsPanel tbody tr:hover{background:#f8fafc}.relationsPanel .outline{margin:10px 14px}.badge{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:12px;background:#eef2f7;color:#374151;margin-left:8px;font-size:12px}footer{font-size:12px;color:#596276}dialog{border:0;border-radius:14px;padding:0;box-shadow:var(--shadow);width:480px}dialog::backdrop{background:rgba(15,23,42,.25)}.dialogForm{padding:22px;display:flex;flex-direction:column;gap:12px}.dialogForm label{display:flex;flex-direction:column;gap:6px;color:#4b5563}.dialogForm input,.dialogForm select,.dialogForm textarea{border:1px solid var(--border);border-radius:8px;padding:10px}.dialogForm textarea{height:90px}.dialogForm menu{display:flex;justify-content:flex-end;gap:10px;padding:0;margin:8px 0 0}.wide{width:760px}.wide textarea{height:420px;font-family:Consolas,monospace;font-size:12px}.empty{color:var(--muted);padding:20px}.invalid{outline:2px solid #ef4444}@media(max-width:1350px){.canvasWrap{grid-template-columns:1fr 200px 1fr 300px}.toolbar{grid-template-columns:240px 220px 44px 220px 90px 1fr 130px}.sidebar{width:220px}}
.relationMode{display:flex;align-items:center;justify-content:space-between;background:#fff7d6;border:1px solid #f2d16b;border-radius:10px;padding:10px 14px;margin:-4px 0 12px;color:#614a00}.relationMode[hidden]{display:none}.node{user-select:none}.node.dragging{opacity:.45}.node.dropTarget,.dropRoot.dropTarget{outline:2px solid var(--blue);background:#eef5ff}.node.relationSource{box-shadow:inset 0 0 0 2px #f59e0b;background:#fff7ed}.dropRoot{margin:0 0 8px;padding:8px 10px;border:1px dashed var(--border);border-radius:8px;color:var(--muted);font-size:12px;background:#fbfcff}.hideInspector .canvasWrap{grid-template-columns:1fr 260px 1fr}.hideInspector .inspector{display:none}.form .outline{margin-top:0}
.modelNote{background:#eef5ff;border:1px solid #cfe0ff;color:#25406b;border-radius:8px;padding:9px 10px;margin:0 0 12px;font-size:12px}.soft{border:0;border-top:1px solid var(--border);margin:8px 0 12px}.full{width:100%;margin-top:4px}.node small{color:var(--muted);font-size:11px}.node em{font-style:normal;font-size:11px;color:#0f62fe;background:#eaf2ff;border-radius:10px;padding:2px 6px;margin-left:4px}.relationsPanel small{color:var(--muted)}

.domainSummary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 12px}.summaryBox{background:#fff;border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;justify-content:space-between;align-items:center}.summaryBox b{font-size:13px}.summaryBox span{font-family:Consolas,monospace;color:var(--blue)}.contextGrid{display:grid;grid-template-columns:180px 1fr 110px;gap:8px;align-items:center}.contextRow{display:contents}.contextRow>div{padding:9px;border-bottom:1px solid #edf0f5}.registerTable{width:100%;border-collapse:collapse;font-size:13px}.registerTable th,.registerTable td{padding:9px 10px;border-bottom:1px solid #edf0f5;text-align:left}.registerTable tbody tr:hover{background:#f8fafc}.svgLabel{font-size:11px;fill:#334155;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}.aspectPills{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}.aspectPills button{padding:6px 8px;font-size:12px}.toolbar #newDomainBtn{height:42px;align-self:end}@media(max-width:1350px){.domainSummary{grid-template-columns:repeat(2,1fr)}}
.muted{color:var(--muted)}

.summaryLine{background:#f6f8fb;border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px;margin:10px 0 14px}
.issue{display:inline-block;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:700}
.issue.error{background:#fee4e2;color:#b42318}
.issue.warning{background:#fef0c7;color:#93370d}
.docList{margin:8px 0 12px;max-height:170px;overflow:auto;border:1px solid #edf0f5;border-radius:10px;padding:6px;background:#fbfcff}
.registerTable.compact td{padding:6px 7px;font-size:12px}
#documentDialog .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.metaTable{margin:8px 0 12px;background:#fbfcff;border:1px solid #edf0f5;border-radius:10px;overflow:hidden}
.metaTable td:last-child{white-space:nowrap;text-align:right}
#propertyList{margin-bottom:10px}

/* v1.8: funktionella knappar och grova UI-flöden */
.topbar nav a,.help{cursor:pointer}.sidebarCollapsed .sidebar{width:54px;overflow:hidden}.sidebarCollapsed .sidebar h2,.sidebarCollapsed .side{white-space:nowrap;color:transparent}.sidebarCollapsed .side::first-letter{color:var(--text)}.sidebarCollapsed .workspace{padding-left:12px}.overviewGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:8px 0 18px}.filterGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0 16px}.tagCloud{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 16px}.tagCloud button{padding:6px 9px}.dialogForm ul,.dialogForm ol{margin-top:0;line-height:1.55}.dialogForm h4{margin:12px 0 6px}.tabs .tab{cursor:pointer}.tabs .tab:focus-visible,.topbar nav a:focus-visible,.help:focus-visible{outline:2px solid var(--blue);outline-offset:2px}@media(max-width:1350px){.overviewGrid{grid-template-columns:repeat(2,1fr)}}
.bulkBar{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 14px}.bulkForm{background:#f8fafc;border:1px solid #dbe3ef;border-radius:14px;padding:12px}.registerTable input[type="checkbox"]{width:16px;height:16px}.filterGrid button{min-height:36px}

/* v2.2 layoutfix: större arbetsytor, bättre inspektor, huvudvyer och fungerande kollaps */
.workspace{overflow:auto;min-width:0}.canvasWrap{height:calc(100% - 300px);min-height:520px;grid-template-columns:minmax(360px,1fr) 190px minmax(360px,1fr) minmax(420px,460px);align-items:stretch}.inspector{min-width:420px;overflow:hidden}.inspector .cardTitle{flex:0 0 48px}.inspector .tabs{flex:0 0 auto}.inspector .form{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:14px 16px}.inspector .form .row{grid-template-columns:1fr;gap:0}.inspector input,.inspector select,.inspector textarea{width:100%;min-width:0}.quick{flex:0 0 auto}.quick p{gap:12px}.node .arrow{border:0;background:transparent;padding:0;width:18px;height:18px;border-radius:4px;display:grid;place-items:center;color:#374151}.node .arrow:hover{background:#dbeafe;color:var(--blue)}.mainView{height:calc(100% - 110px);min-height:560px;margin-bottom:14px}.mainViewContent{padding:18px;overflow:auto;height:calc(100% - 48px)}.mainViewContent .registerTable{background:#fff}.mainViewContent h4{margin:18px 0 8px}.mainViewContent .summaryBox{text-align:left}dialog{width:min(1100px,calc(100vw - 64px));max-height:calc(100vh - 64px);overflow:hidden}.dialogForm{max-height:calc(100vh - 64px);overflow:auto}.dialogForm.wide,.wide{width:min(1200px,calc(100vw - 64px))}.dialogForm .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dialogForm input,.dialogForm select,.dialogForm textarea{width:100%;min-width:0}.wide textarea{height:260px}.filterGrid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.contextGrid{grid-template-columns:220px 1fr 140px}@media(max-width:1500px){.canvasWrap{grid-template-columns:minmax(320px,1fr) 160px minmax(320px,1fr) minmax(390px,430px)}.inspector{min-width:390px}}@media(max-width:1200px){.canvasWrap{grid-template-columns:1fr}.relationCanvas{min-height:180px}.inspector{min-width:0}.domainSummary{grid-template-columns:1fr 1fr}.toolbar{grid-template-columns:1fr 1fr;}.mainView{height:auto;min-height:520px}}

/* v2.4 layout and register fixes */
#listContent{max-height:calc(100vh - 210px);overflow:auto;padding-right:4px;}
dialog{width:min(1280px,calc(100vw - 40px));max-height:calc(100vh - 40px);}
.dialogForm{max-height:calc(100vh - 40px);overflow:auto;}
.dialogForm menu{position:sticky;bottom:-22px;background:#fff;border-top:1px solid var(--border);padding-top:12px;z-index:2;}
.registerTable{width:100%;border-collapse:collapse;table-layout:auto;}
.registerTable th,.registerTable td{vertical-align:top;}
.refTable tbody tr{cursor:pointer;}
.refTable tbody tr:hover{background:#f4f7fb;}
.classLegend{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px;}
.classLegend span{background:#eef4ff;border:1px solid #cfe0ff;border-radius:999px;padding:5px 10px;font-size:12px;color:#244a8f;}
.classTree{display:flex;flex-direction:column;gap:8px;}
.classTree details{border:1px solid var(--border);border-radius:10px;background:#fff;overflow:hidden;}
.classTree details details{margin:8px 0 8px 18px;border-color:#e7ebf2;}
.classTree summary{cursor:pointer;padding:10px 12px;list-style:revert;background:#f8fafc;}
.classTree details[open] > summary{border-bottom:1px solid var(--border);}
.classLeaf{display:grid;grid-template-columns:80px 1fr;gap:8px;align-items:start;}
.classLeaf b{font-family:Consolas,monospace;color:#163b77;}
.classLeaf small{grid-column:2;color:var(--muted);}
.classLevel2,.classLevel3{padding:8px 12px;}
.smallPad{padding:8px 12px;}
.quick p span{max-width:230px;text-align:right;overflow-wrap:anywhere;font-family:Consolas,monospace;}
@media(max-width:900px){.classLeaf{grid-template-columns:64px 1fr}.dialogForm .row{grid-template-columns:1fr!important;}}
.classSection{border:1px solid var(--border);border-radius:12px;background:#fff;margin:12px 0;overflow:hidden;}
.classSection > summary{cursor:pointer;padding:14px 16px;background:#f8fafc;border-bottom:1px solid var(--border);}
.classSection > summary small{color:var(--muted);margin-left:8px;font-weight:400;}
.classLevel1{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px;padding:12px;}
.classLevel2,.classLevel3{padding:10px 12px;}
.classLevel3{margin-left:18px;border-left:2px solid #e8eef7;}
/* v2.6 layout and class library refinements */
#listDialog .dialogForm{height:calc(100vh - 40px);}
#listContent{overflow:auto;min-height:0;}
.classTabs{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 14px;position:sticky;top:0;background:#fff;z-index:3;padding:8px 0;border-bottom:1px solid var(--border)}
.classTabs button{display:flex;align-items:center;gap:6px}
.classTree details{margin:5px 0;border-left:2px solid #eef2f7;padding-left:8px}
.classTree summary{cursor:pointer;padding:6px 0;list-style-position:inside}
.classLevel1,.classLevel2,.classLevel3{display:flex;flex-direction:column;gap:4px}
.classLevel3{margin-left:16px}
.classLeaf{display:grid;grid-template-columns:84px minmax(260px,1fr) minmax(220px,.7fr);gap:10px;align-items:start;border:1px solid #eef2f7;background:#fff;border-radius:8px;padding:8px 10px;margin:3px 0}
.classLeaf b{font-family:Consolas,monospace;color:#1d4ed8}.classLeaf small{color:var(--muted)}
@media(max-width:900px){.classLeaf{grid-template-columns:70px 1fr}.classLeaf small{grid-column:2}}

.classLeaf.selectable{width:100%;text-align:left;cursor:pointer;background:#fff;border:1px solid var(--border);border-radius:8px;margin:2px 0;}
.classLeaf.selectable:hover{background:#f4f7fb;border-color:#b7c1d2;}
.classLeaf.selectable.selected{background:#dfeaff;border-color:var(--blue);}
.pickerFooter{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--border);padding:12px;display:flex;justify-content:space-between;align-items:center;gap:12px;z-index:3;}
.full{width:100%;}
#listDialog .classTree details{margin:4px 0;}
#listDialog .classTree summary{cursor:pointer;list-style:revert;}

/* v2.8 object inspector cleanup */
.inspectorTopActions,.inspectorBottomActions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:14px;position:sticky;background:#fff;z-index:2;padding:0 0 10px}
.inspectorTopActions{top:0;border-bottom:1px solid var(--border)}
.inspectorBottomActions{bottom:0;border-top:1px solid var(--border);padding-top:10px;margin-top:18px;margin-bottom:0;grid-template-columns:1fr 1fr}
.inspectorBottomActions .danger{border-color:#f1b8b8;color:#b42318;background:#fff7f7}
.sectionHeader{padding:4px 0 14px;margin-bottom:12px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:4px}
.sectionHeader b{font-size:16px}.sectionHeader span{font-size:12px;color:var(--muted)}
.inspectorTableWrap{overflow:auto;max-height:360px;border:1px solid var(--border);border-radius:10px;margin-bottom:12px}
.inspectorTableWrap .registerTable{margin:0;border:0}.full{width:100%}
.inspector .form>label{margin-bottom:14px}
.inspector .modelNote{margin-bottom:12px}
.inspector .aspectPills{margin-bottom:14px}


/* v2.8.1 object inspector polish from uploaded v2.8 base */
.inspectorBottomActions{position:static;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--border);padding-top:12px;margin-top:18px;margin-bottom:0;background:#fff;z-index:1}
.inspectorBottomActions .danger{min-width:170px}
.relationsPanel{height:auto;max-height:none;margin:14px 0 6px;overflow:visible}
.relationsPanel table{display:table;width:100%}
.relationsPanel tbody{display:table-row-group}
.relationsPanel tr{display:table-row}
.relationsPanel td,.relationsPanel th{white-space:normal;vertical-align:top}

/* Relation highlighting between bottom list and visual links */
.relationsPanel tbody tr[data-relation-id]{cursor:pointer}
.relationsPanel tbody tr.relationRowHover td{background:#fff7ed}
.relationsPanel tbody tr.relationRowSelected td{background:#ffedd5;border-bottom-color:#fed7aa}
.relationLine{cursor:pointer;transition:stroke .12s ease, stroke-width .12s ease}
.relationLineFocused{filter:drop-shadow(0 0 3px rgba(249,115,22,.45))}
.svgLabel{pointer-events:auto;cursor:pointer}
.svgLabelFocused{fill:#c2410c;font-weight:700}


/* v2.8.4 toolbar adjustments */
.toolbar{grid-template-columns:250px 142px 220px 44px 230px 90px 320px minmax(260px,1fr)!important;}
#savedViewsBtn{max-width:320px;min-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#search{min-width:260px;}
#newDomainBtn{white-space:normal;line-height:1.15;text-align:center;}
@media(max-width:1500px){.toolbar{grid-template-columns:240px 135px 210px 44px 210px 84px 260px minmax(240px,1fr)!important;}}
@media(max-width:1200px){.toolbar{grid-template-columns:1fr 1fr!important;}#savedViewsBtn,#search{min-width:0;max-width:none;}}
