/* ============================================================
   Tegning 2.0 — modul-stilark (Fase 0–1)
   Revit MEP-aktig arbeidsflate inni Total VVS. Egen .t2-scope
   med lys/mørk tema, uavhengig av appens globale tema.
   ============================================================ */

.t2{
  --t2-bg:#2b2f36; --t2-panel:#33383f; --t2-ribbon:#3a3f47; --t2-border:#22262b;
  --t2-text:#e6e9ee; --t2-muted:#9aa4b1; --t2-tab:#2f343b; --t2-canvas:#23262b;
  --t2-rail:#33383f; --t2-grid:#2c3036; --t2-grid2:#363b43; --t2-accent:#5b9bff;
  --sys-tilluft:#e23b3b; --sys-avtrekk:#e7b418; --sys-inntak:#2f6fe0;
  --sys-avkast:#e8801f; --sys-spesial:#8c46c8; --sys-ovrig:#cfd6df;
  position:relative; width:100%; height:100%; display:flex; flex-direction:column;
  background:var(--t2-bg); color:var(--t2-text);
  font-family:"IBM Plex Sans",system-ui,sans-serif; overflow:hidden;
}
.t2.light{
  --t2-bg:#eceff3; --t2-panel:#f7f8fa; --t2-ribbon:#fbfcfd; --t2-border:#cdd3da;
  --t2-text:#2a3340; --t2-muted:#6a7686; --t2-tab:#e7eaef; --t2-canvas:#fdfdfc;
  --t2-rail:#f1f3f6; --t2-grid:#e9edf2; --t2-grid2:#dde3ea; --t2-accent:#2f6fe0;
  --sys-ovrig:#2a3340;
}
.t2 *{box-sizing:border-box;}

/* title / QAT */
.t2-title{display:flex; align-items:center; gap:10px; padding:5px 10px; background:var(--t2-ribbon); border-bottom:1px solid var(--t2-border); font-size:12px;}
.t2-qat{display:flex; gap:2px; align-items:center;}
.t2-qbtn{width:26px; height:26px; border:0; background:transparent; border-radius:6px; display:grid; place-items:center; color:var(--t2-muted); cursor:pointer;}
.t2-qbtn:hover{background:var(--t2-tab); color:var(--t2-text);}
.t2-qbtn:disabled{opacity:.35; cursor:default;}
.t2-tname{font-weight:600;}
.t2-tsub{color:var(--t2-muted);}
.t2-title .sp{flex:1;}

/* ribbon tabs */
.t2-tabs{display:flex; gap:2px; padding:0 8px; background:var(--t2-ribbon); border-bottom:1px solid var(--t2-border);}
.t2-tab{font-size:12px; padding:8px 14px 7px; color:var(--t2-muted); border:1px solid transparent; border-bottom:none; cursor:pointer; position:relative; top:1px; background:none; font-family:inherit;}
.t2-tab.on{color:var(--t2-text); background:var(--t2-panel); border-color:var(--t2-border); border-radius:6px 6px 0 0; font-weight:600;}
.t2-tab.sys.on{color:var(--t2-accent);}

/* ribbon body — STANDARDISERT KORT-RUTENETT
   Base-kort = --t2-card (bredde) × --t2-cardh (høyde). Ribbon er 2 kort høyt.
   • ikon-knapp (.t2-rbtn)  = 1×1 kort (standard, alle like store)
   • info-kontroll (.t2-card) = sammenslått blokk: 1, 2 (vannrett/loddrett), 4 (2×2) eller 6 (3×2) kort
     — ÉN ramme rundt hele, ingen indre deling. Spenn styres av .cs2/.cs3/.cs4 (kolonner) + .rs2 (begge rader). */
.t2-ribbon{display:flex; gap:0; padding:7px 6px 3px; background:var(--t2-panel); border-bottom:1px solid var(--t2-border); overflow-x:auto; --t2-card:58px; --t2-cardh:50px; --t2-gap:5px;}
.t2-pnl{display:flex; flex-direction:column; align-items:center; padding:0 9px; border-right:1px solid var(--t2-border);}
.t2-pnl:last-child{border-right:none;}
.t2-prow{display:grid; grid-auto-flow:column dense; grid-template-rows:repeat(2, var(--t2-cardh)); grid-auto-columns:var(--t2-card); gap:var(--t2-gap); align-items:stretch; justify-items:stretch;}
/* spenn-hjelpere — slå sammen kort */
.t2-prow>.cs2{grid-column:span 2;} .t2-prow>.cs3{grid-column:span 3;} .t2-prow>.cs4{grid-column:span 4;}
.t2-prow>.rs2{grid-row:span 2;}
/* info-kontroll = sammenslått kort med ÉN ramme */
.t2-card{box-sizing:border-box; display:flex; flex-direction:column; justify-content:center; gap:4px; padding:5px 8px; border:1px solid var(--t2-border); border-radius:8px; background:var(--t2-ribbon); min-width:0; overflow:hidden;}
.t2-card .ck{font-size:9px; color:var(--t2-muted); line-height:1.15; white-space:nowrap;}
.t2-card .crow{display:flex; gap:5px; align-items:center;}
.t2-card select,.t2-card input{max-width:100%; box-sizing:border-box;}
/* nedtrekksmenyer i ribbon: hvit bakgrunn + svart tekst (lesbar liste, også i mørk modus) */
.t2-ribbon select{background:#fff !important; color:#111 !important; border:1px solid var(--t2-border); border-radius:5px; padding:2px 4px; font-family:inherit;}
.t2-ribbon select option{background:#fff; color:#111;}
/* Tilpass-layout-modus: synlige dra-affordanser */
.t2.lz-arrange .t2-ribbon > .t2-pnl{outline:1px dashed var(--t2-accent); outline-offset:2px; border-radius:6px;}
.t2.lz-arrange .t2-plabel{cursor:grab; color:var(--t2-accent);}
.t2.lz-arrange .t2-ribbon .t2-rbtn,.t2.lz-arrange .t2-rail .t2-tbtn{cursor:grab; outline:1px dashed rgba(127,127,127,.35); outline-offset:1px; position:relative;}
/* Tilpass-modus: forstørr grep-treffflaten på hvert ikon (usynlig pad rundt) + tydeligere ramme på panel-håndtak */
.t2.lz-arrange .t2-rail .t2-tbtn::after,.t2.lz-arrange .t2-ribbon .t2-rbtn::after{content:""; position:absolute; inset:-4px; z-index:3; border-radius:8px; cursor:grab;}
.t2.lz-arrange .t2-plabel{padding:3px 8px; outline:1px dashed var(--t2-accent); outline-offset:1px; border-radius:5px;}
.t2.lz-arrange .t2-rail{outline:1px dashed var(--t2-accent); outline-offset:2px;}
.t2.lz-arrange .t2-canvas{pointer-events:none;}
.t2-qbtn.on{background:var(--t2-accent); color:#fff;}
.t2-qbtn.t2-qbtn-wide{width:auto; min-width:26px; padding:0 9px; gap:5px; display:inline-flex; align-items:center;}
.t2-plabel{font-size:10px; color:var(--t2-muted); margin-top:5px;}
.t2-rbtn{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; box-sizing:border-box; padding:4px 2px; border-radius:7px; cursor:pointer; color:var(--t2-text); border:1px solid transparent; background:none; font-family:inherit; min-width:0;}
.t2-rbtn:hover{background:var(--t2-tab);}
.t2-rbtn.on{background:#34507e; border-color:#4a6da8;}
.t2.light .t2-rbtn.on{background:#dbe7ff; border-color:#b9d2ff;}
.t2-rbtn .rl{font-size:9.5px; line-height:1.1; text-align:center; color:var(--t2-muted); max-width:54px;}
.t2-rbtn.sm{width:34px;}

/* dropdown menu */
.t2-menu{position:absolute; z-index:60; background:var(--t2-panel); border:1px solid var(--t2-border); border-radius:8px; box-shadow:0 8px 28px rgba(0,0,0,.35); padding:5px; min-width:170px;}
.t2-mi{display:flex; align-items:center; gap:9px; padding:7px 9px; border-radius:6px; font-size:12.5px; color:var(--t2-text); cursor:pointer;}
.t2-mi:hover{background:var(--t2-tab);}
.t2-mi.on{background:#34507e; color:#bcd5ff;}
.t2.light .t2-mi.on{background:#dbe7ff; color:#2f6fe0;}
.t2-mi .dot{width:12px; height:12px; border-radius:3px; flex:0 0 12px;}
.t2-menu-scroll{max-height:360px; overflow-y:auto;}
.t2-mhd{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:7px 9px 3px; font-size:9.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--t2-muted);}
.t2-mhd:not(:first-child){margin-top:3px; border-top:1px solid var(--t2-border); padding-top:8px;}
.t2-mhd .t2-mtag{font-size:9px; font-weight:700; padding:1px 5px; border-radius:4px; background:var(--t2-tab); color:var(--t2-muted); letter-spacing:.02em;}
/* modify-verktøy popup (Endre) */
.t2-modmenu{min-width:188px; padding:9px;}
.t2-mhd2{font-size:11px; font-weight:700; color:var(--t2-text); padding:0 0 2px;}
.t2-msub{font-size:10px; color:var(--t2-muted); padding:0 0 7px;}
.t2-mf{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:3px 0; font-size:11.5px; color:var(--t2-text);}
.t2-mf input{width:76px; background:var(--t2-canvas); color:var(--t2-text); border:1px solid var(--t2-border); border-radius:5px; padding:3px 6px; font-family:inherit; font-size:11.5px; text-align:right;}
.t2-mf input:focus{outline:none; border-color:#2f6fe0; box-shadow:0 0 0 3px rgba(47,111,224,0.30); background:var(--t2-panel);}
.t2-mf input::selection{background:#2f6fe0; color:#fff;}
.t2-mf input::placeholder{color:var(--t2-muted); opacity:.7;}
.t2-mquick{display:flex; gap:5px; padding:6px 0 2px;}
.t2-mquick button{flex:1; background:var(--t2-canvas); color:var(--t2-text); border:1px solid var(--t2-border); border-radius:5px; padding:4px 0; font-family:inherit; font-size:11px; cursor:pointer;}
.t2-mquick button:hover{background:var(--t2-tab);}
.t2-mquick.wide{flex-direction:column; gap:5px;}
.t2-mquick.wide button,.t2-mquick.wide button{padding:6px 8px; text-align:left;}
.t2-mbruk{display:block; width:100%; margin-top:8px; background:#2f6fe0; color:#fff; border:none; border-radius:6px; padding:7px 0; font-family:inherit; font-size:11.5px; font-weight:600; cursor:pointer;}
.t2-mbruk:hover{background:#2560c8;}
.t2-mavbryt{display:block; width:100%; margin-top:5px; background:transparent; color:var(--t2-muted); border:1px solid var(--t2-border); border-radius:6px; padding:6px 0; font-family:inherit; font-size:11px; cursor:pointer;}
.t2-mavbryt:hover{background:var(--t2-tab); color:var(--t2-text);}
.t2-mgrid{display:grid; grid-template-columns:1fr 1fr 1fr; gap:5px; padding:5px 0 0;}
.t2-mgrid button{background:var(--t2-canvas); color:var(--t2-text); border:1px solid var(--t2-border); border-radius:5px; padding:5px 4px; font-family:inherit; font-size:10.5px; cursor:pointer; white-space:nowrap;}
.t2-mgrid button:hover{background:var(--t2-tab);}

/* workspace */
.t2-work{display:flex; flex:1; min-height:0;}
.t2-rail{width:46px; flex:0 0 46px; background:var(--t2-rail); border-right:1px solid var(--t2-border); display:flex; flex-direction:column; align-items:center; padding:6px 0; gap:3px; overflow-y:auto;}
.t2-tbtn{width:34px; height:34px; border-radius:7px; display:grid; place-items:center; color:var(--t2-text); position:relative; cursor:pointer; border:0; background:none;}
.t2-tbtn:hover{background:var(--t2-tab);}
.t2-tbtn.on{background:var(--t2-accent); color:#fff;}
.t2-rail .sep{width:24px; height:1px; background:var(--t2-border); margin:4px 0; flex:0 0 1px;}

.t2-canvas{flex:1; position:relative; background:var(--t2-canvas); overflow:hidden; cursor:crosshair; user-select:none; -webkit-user-select:none; -moz-user-select:none;}
.t2-canvas.pan{cursor:grab;}
.t2-canvas.panning{cursor:grabbing;}
.t2-canvas.sel{cursor:default;}
.t2-readout{position:absolute; z-index:20; pointer-events:none; background:var(--t2-panel); border:1px solid var(--t2-accent); border-radius:5px; padding:3px 8px; font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--t2-text); white-space:nowrap; box-shadow:0 2px 8px rgba(0,0,0,.3);}
.t2-textedit{z-index:30; user-select:text; -webkit-user-select:text; background:#fff; color:#15202e; border:2px solid var(--t2-accent); border-radius:5px; padding:5px 8px; font-family:"IBM Plex Sans",sans-serif; font-size:13px; line-height:1.3; resize:none; min-height:46px; box-shadow:0 4px 14px rgba(0,0,0,.28); outline:none;}

.t2-props{width:194px; flex:0 0 194px; background:var(--t2-panel); border-left:1px solid var(--t2-border); overflow-y:auto; transition:width .16s ease, flex-basis .16s ease;}
.t2-props.wide{width:388px; flex:0 0 388px;}
.t2-ph{font-size:11px; font-weight:700; padding:8px 12px; border-bottom:1px solid var(--t2-border); background:var(--t2-ribbon); display:flex; align-items:center; gap:7px; border-left:3px solid var(--t2-muted);}
.t2-pg{font-size:9.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--t2-muted); padding:7px 12px 3px; background:var(--t2-tab);}
/* Kollapsbar/uthevet seksjonsoverskrift i egenskapspanelet */
.t2-pgh{display:flex; align-items:center; gap:7px; font-size:11.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--t2-text); padding:9px 12px; background:var(--t2-ribbon); border-top:1px solid var(--t2-border); border-bottom:1px solid var(--t2-border); cursor:pointer; user-select:none;}
.t2-pgh:hover:not(.static){background:var(--t2-tab);}
.t2-pgh.static{cursor:default;}
/* Kategori-accent: farget venstrekant + tonet header-bakgrunn per seksjon (Balanse/Mengde/Rom/Varsler) */
.t2-pgh.cat{border-left:3px solid var(--acc,transparent); background:color-mix(in srgb, var(--acc,transparent) 13%, var(--t2-ribbon));}
.t2-pgh.cat:hover:not(.static){background:color-mix(in srgb, var(--acc,transparent) 22%, var(--t2-ribbon));}
.t2-pgh.cat .ttl{color:var(--acc);}
.t2-pgh.cat .chev{color:var(--acc);}
.t2-pgh .chev{font-size:10px; color:var(--t2-muted); width:10px; flex:0 0 auto;}
.t2-pgh .ttl{flex:1;}
.t2-pgh .cnt{font-size:10.5px; font-weight:600; color:var(--t2-muted); letter-spacing:0;}
.t2-pgh .cnt.danger{color:#e0483a;}
.t2.light .t2-pgh .cnt.danger{color:#c0392b;}
.t2-prow2{display:flex; justify-content:space-between; gap:8px; font-size:11px; padding:6px 12px; border-bottom:1px solid var(--t2-border); align-items:center;}
.t2-prow2 .k{color:var(--t2-muted);}
.t2-prow2 .v{font-weight:600; text-align:right;}
.t2-prow2 select,.t2-prow2 input{background:var(--t2-canvas); color:var(--t2-text); border:1px solid var(--t2-border); border-radius:5px; padding:3px 6px; font-family:inherit; font-size:11px; max-width:108px;}
.t2-empty{padding:16px 12px; font-size:12px; color:var(--t2-muted); line-height:1.5;}
.t2-mini{font-size:9.5px; color:var(--t2-muted); padding:4px 12px 7px; font-style:italic;}

/* Valgte objekter — multivalg-liste i egenskapspanelet */
.t2-sellist{max-height:208px; overflow-y:auto; border-bottom:1px solid var(--t2-border);}
.t2-selrow{display:flex; align-items:center; gap:7px; padding:5px 12px; font-size:11px; border-bottom:1px solid var(--t2-border); cursor:default;}
.t2-selrow:last-child{border-bottom:none;}
.t2-selrow.hov{background:rgba(25,195,255,0.14);}
.t2-selrow .dot{width:9px; height:9px; border-radius:2px; flex:0 0 auto;}
.t2-selrow .lab{flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.t2-selrow .x{flex:0 0 auto; width:18px; height:18px; line-height:1; border:none; border-radius:4px; background:none; color:var(--t2-muted); cursor:pointer; font-size:15px; font-family:inherit; display:flex; align-items:center; justify-content:center;}
.t2-selrow .x:hover{background:rgba(224,72,58,0.18); color:#e0483a;}

/* Tilbudsbrev — koblingsmål-chips («Knyttet til») med × / gjenopprett */
.t2-linkchip{display:inline-flex; align-items:center; gap:5px; font-size:10.5px; background:rgba(47,111,224,0.14); color:var(--t2-text); border-radius:5px; padding:2px 3px 2px 7px; max-width:160px;}
.t2-linkchip .lab{white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.t2-linkchip .x{flex:0 0 auto; width:16px; height:16px; line-height:1; border:none; border-radius:4px; background:none; color:var(--t2-muted); cursor:pointer; font-size:13px; font-family:inherit; display:flex; align-items:center; justify-content:center;}
.t2-linkchip .x:hover{background:rgba(224,72,58,0.2); color:#e0483a;}
.t2-linkchip.off{background:rgba(127,127,127,0.12); color:var(--t2-muted); text-decoration:line-through;}
.t2-linkchip.off .x:hover{background:rgba(54,163,91,0.2); color:#36a35b;}

/* status bar */
.t2-status{display:flex; align-items:center; gap:12px; padding:4px 12px; background:var(--t2-ribbon); border-top:1px solid var(--t2-border); font-size:10.5px; color:var(--t2-muted); flex:0 0 auto;}
.t2-status .sp{flex:1;}
.t2-schip{padding:2px 8px; border-radius:4px; border:1px solid var(--t2-border); cursor:pointer; background:none; color:var(--t2-muted); font-family:inherit; font-size:10.5px;}
.t2-schip.on{background:#34507e; color:#bcd5ff; border-color:#4a6da8;}
.t2.light .t2-schip.on{background:#dbe7ff; color:#2f6fe0; border-color:#b9d2ff;}
.t2-status .mono{font-family:"IBM Plex Mono",monospace;}
/* loader mens tegningsdata hentes fra IndexedDB/sky (Fase 2) */
.t2-loading{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:60vh;background:var(--t2-bg,#1b1f24);color:var(--t2-muted,#9aa3ad);}
.t2-loading-inner{display:flex;flex-direction:column;align-items:center;gap:14px;font-size:13px;letter-spacing:.02em;}
.t2-loading-spin{width:26px;height:26px;border-radius:50%;border:2.5px solid rgba(150,160,170,0.25);border-top-color:#74a8ff;animation:t2spin .8s linear infinite;}
@keyframes t2spin{to{transform:rotate(360deg);}}
/* pil-tast presisjons-input (retning + lengde) */
.t2-dirin{position:fixed;z-index:60;background:var(--t2-panel,#23282e);border:1px solid var(--t2-border,#3a424b);border-radius:9px;box-shadow:0 6px 22px rgba(0,0,0,.4);padding:7px 9px;}
.t2-dirin-row{display:flex;align-items:center;gap:7px;}
.t2-dirin-glyph{font-size:18px;line-height:1;color:#74a8ff;width:20px;text-align:center;font-weight:700;}
.t2-dirin-inp{width:88px;font-family:"IBM Plex Mono",monospace;font-size:15px;padding:5px 8px;border-radius:6px;border:1px solid var(--t2-border,#3a424b);background:var(--t2-bg,#15181c);color:var(--t2-text,#e6eaee);outline:none;}
.t2-dirin-inp:focus{border-color:#74a8ff;}
.t2-dirin-mm{font-size:12px;color:var(--t2-muted,#9aa3ad);}
.t2-dirin-hint{font-size:10px;color:var(--t2-muted,#9aa3ad);margin-top:5px;max-width:230px;line-height:1.35;}
.t2.light .t2-dirin{background:#fff;border-color:#d8dde3;}
.t2.light .t2-dirin-inp{background:#f4f6f8;color:#1c2024;border-color:#d8dde3;}
/* Sky-status for underlag (Fase 1) */
.t2-cloud{padding:2px 9px; border-radius:999px; font-size:10.5px; font-weight:600; letter-spacing:.01em; white-space:nowrap; border:1px solid transparent;}
.t2-cloud--synced{background:rgba(31,138,91,0.14); color:#3fcf8e; border-color:rgba(63,207,142,0.35);}
.t2-cloud--uploading{background:rgba(42,111,219,0.14); color:#74a8ff; border-color:rgba(116,168,255,0.35);}
.t2-cloud--offline{background:rgba(224,168,46,0.14); color:#e0a82e; border-color:rgba(224,168,46,0.4);}
.t2-cloud--local{background:rgba(150,160,170,0.12); color:var(--t2-muted); border-color:var(--t2-border);}
.t2.light .t2-cloud--synced{background:#e7f4ed; color:#1f8a5b;}
.t2.light .t2-cloud--uploading{background:#eaf1fc; color:#2a6fdb;}
.t2.light .t2-cloud--offline{background:#fbf0df; color:#9a6b10;}
.t2-warnrow{font-size:10.5px; color:#c98a14; padding:5px 12px; border-bottom:1px solid var(--t2-border); line-height:1.35; background:rgba(224,168,46,0.08);}
.t2.light .t2-warnrow{color:#9a6b10;}
/* Fase 0 — synlig varsel når lokal lagring er full */
.t2-quota-warn{position:absolute; top:14px; left:50%; transform:translateX(-50%); z-index:60; display:flex; gap:10px; align-items:flex-start; max-width:440px; padding:11px 15px; border-radius:10px; cursor:pointer; background:#3a1113; color:#ffd9d5; border:1px solid rgba(224,72,72,0.55); box-shadow:0 10px 30px rgba(0,0,0,0.4);}
.t2-quota-warn .ic{font-size:15px; line-height:1.2;}
.t2-quota-warn b{font-size:12.5px; font-weight:600;}
.t2-quota-warn .sub{font-size:11px; opacity:.88; margin-top:3px; line-height:1.4;}
.t2.light .t2-quota-warn{background:#fdecea; color:#8a1c14; border-color:rgba(192,57,43,0.4); box-shadow:0 10px 30px rgba(0,0,0,0.12);}
.t2-warnrow.clk{cursor:pointer;}
.t2-warnrow.clk:hover{background:rgba(224,168,46,0.18);}
.t2-warnrow.err{color:#e0483a; background:rgba(224,72,58,0.10);}
.t2.light .t2-warnrow.err{color:#c0392b;}
.t2-warnrow.err.clk:hover{background:rgba(224,72,58,0.20);}
.t2-presrow{display:flex; gap:7px; align-items:flex-start; font-size:10.5px; color:var(--t2-text); padding:7px 12px; line-height:1.35; cursor:pointer; border-bottom:1px solid var(--t2-border);}
.t2-presrow input{margin-top:1px; flex:0 0 auto;}

/* utstyr-veiviser (aggregat/varmepumpe) */
.t2-wizov{position:fixed; inset:0; z-index:200; background:rgba(0,0,0,.45); display:flex; align-items:center; justify-content:center;}
.t2-wiz{width:440px; max-width:92vw; max-height:88vh; overflow:auto; background:var(--t2-panel); border:1px solid var(--t2-border); border-radius:12px; box-shadow:0 18px 60px rgba(0,0,0,.5); color:var(--t2-text); font-size:12.5px;}
.t2-wizhd{display:flex; align-items:center; justify-content:space-between; padding:13px 16px; border-bottom:1px solid var(--t2-border); font-weight:700; font-size:14px;}
.t2-wizx{background:none; border:none; color:var(--t2-muted); font-size:16px; cursor:pointer; line-height:1;}
.t2-wizbody{padding:8px 16px 14px;}
.t2-wizrow{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:6px 0; border-bottom:1px solid var(--t2-border);}
.t2-wizrow .k{color:var(--t2-muted);}
.t2-wizrow .v{display:flex; align-items:center; gap:6px;}
.t2-wizrow input,.t2-wizrow select,.t2-wizbattrow input,.t2-wizbattrow select{background:var(--t2-canvas); color:var(--t2-text); border:1px solid var(--t2-border); border-radius:6px; padding:4px 7px; font-family:inherit; font-size:12px;}
.t2-wizgrp{font-size:9.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--t2-muted); padding:10px 0 4px;}
.t2-wizbattrow{display:flex; align-items:center; gap:5px; padding:4px 0;}
.t2-wizbattrow select{flex:1; min-width:0;}
.t2-wizwarn{margin-top:10px; padding:9px 11px; border-radius:8px; background:rgba(224,168,46,.12); border:1px solid rgba(224,168,46,.4); color:#d8a13a; font-size:11.5px; line-height:1.4;}
.t2-wizfoot{display:flex; justify-content:flex-end; gap:8px; padding:12px 16px; border-top:1px solid var(--t2-border);}
.t2-wizok{background:#34507e; color:#dce8ff; border:1px solid #4a6da8; border-radius:6px; padding:6px 14px; font-family:inherit; font-size:12.5px; font-weight:600; cursor:pointer;}
.t2.light .t2-wizok{background:#2f6fe0; color:#fff; border-color:#2f6fe0;}

/* ============================================================
   Modulær drag-layout (ribbon + venstre-rail)
   ============================================================ */
/* radbrekk i ribbon-seksjon (horisontal flex-wrap) */
.t2-prow > .t2-lbreak{flex-basis:100%; width:100%; height:0; margin:0; padding:0; pointer-events:none;}
/* kolonnebrekk i rail (vertikal column-wrap) — KUN når brukeren har laget et brekk,
   ellers skal rail scrolle som normalt (unngå auto-wrap ved overflyt) */
.t2-rail:has(> .t2-lbreak){flex:0 0 auto; flex-wrap:wrap; align-content:flex-start; height:100%; width:auto; min-width:46px; overflow:visible;}
.t2-rail > .t2-lbreak{flex-basis:100%; height:100%; width:0; margin:0; padding:0; pointer-events:none;}
/* dra-modus: signaliser at ting kan flyttes */
.t2.lz-active{cursor:grabbing;}
.t2.lz-active .t2-plabel{cursor:grab;}
.lz-src{opacity:.32 !important; outline:1.5px dashed var(--t2-accent); outline-offset:1px;}
.lz-ghost{position:fixed; z-index:9999; pointer-events:none; opacity:.92; box-shadow:0 6px 18px rgba(0,0,0,.35); border-radius:7px; background:var(--t2-panel); display:flex; flex-direction:column; align-items:center; justify-content:center; overflow:hidden;}
.lz-marker{position:fixed; z-index:9998; background:var(--t2-accent); border-radius:2px; box-shadow:0 0 0 1px rgba(255,255,255,.4); pointer-events:none; display:none;}
/* håndtak-hint: liten prikk-rad over panel-etiketten ved hover i dra-modus */
.t2-plabel{position:relative;}

/* Universell tydelig markering + fokus for ALLE felter i Tegning 2.0 */
.t2 input::selection,.t2 textarea::selection{background:#2f6fe0; color:#fff;}
.t2 input::-moz-selection,.t2 textarea::-moz-selection{background:#2f6fe0; color:#fff;}
.t2 input:focus,.t2 textarea:focus,.t2 select:focus{outline:none; border-color:#2f6fe0 !important; box-shadow:0 0 0 3px rgba(47,111,224,0.32); background:var(--t2-panel);}
.t2 input::placeholder,.t2 textarea::placeholder{color:var(--t2-muted); opacity:.7;}

.t2-ic{display:inline-block; vertical-align:middle; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;}

/* ============================================================
   R1 (Revit/Bluebeam-forslag): handlingsstripe + hurtigtast-oversikt
   ============================================================ */
.t2-selacts{display:flex; flex-wrap:wrap; gap:4px; padding:9px 10px 7px; border-bottom:1px solid var(--t2-border); background:var(--t2-ribbon);}
.t2-help{position:fixed; inset:0; z-index:3000; background:rgba(10,14,20,.45); display:flex; align-items:center; justify-content:center;}
.t2-help-card{background:var(--t2-panel); color:var(--t2-text); border:1px solid var(--t2-border); border-radius:12px; box-shadow:0 18px 50px rgba(0,0,0,.5); width:min(880px,94vw); max-height:86vh; overflow:auto; padding:16px 18px;}
.t2-help-hd{display:flex; align-items:center; justify-content:space-between; font-size:14px; font-weight:700; margin-bottom:12px;}
.t2-help-cols{display:grid; grid-template-columns:repeat(auto-fit,minmax(185px,1fr)); gap:16px;}
.t2-help-grp h6{margin:0 0 7px; font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--t2-muted); font-weight:600;}
.t2-help-row{display:flex; gap:8px; align-items:baseline; font-size:12px; margin-bottom:5px; line-height:1.35;}
.t2-help-row kbd{font-family:"IBM Plex Mono",monospace; font-size:10.5px; background:var(--t2-tab); border:1px solid var(--t2-border); border-radius:4px; padding:1px 6px; white-space:nowrap; flex:none;}
.t2-help-ft{margin-top:14px; font-size:11px; color:var(--t2-muted); line-height:1.5; border-top:1px solid var(--t2-border); padding-top:10px;}

/* ============================================================
   E1 — mengdetabell-dokk (bred QA-tabell nederst)
   ============================================================ */
.t2-dock{flex:0 0 auto; height:288px; display:flex; flex-direction:column; background:var(--t2-panel); border-top:2px solid var(--t2-accent); min-height:0;}
.t2-dockhd{display:flex; align-items:center; gap:10px; padding:6px 10px; background:var(--t2-ribbon); border-bottom:1px solid var(--t2-border); flex:0 0 auto; flex-wrap:wrap;}
.t2-docktitle{display:flex; align-items:center; gap:6px; font-size:12px; font-weight:700; color:var(--t2-text);}
.t2-dockcount{font-size:11px; color:var(--t2-muted);}
.t2-dockgrp{display:flex; gap:3px;}
.t2-docksearch{background:var(--t2-canvas); color:var(--t2-text); border:1px solid var(--t2-border); border-radius:5px; padding:3px 8px; font-family:inherit; font-size:11.5px; width:150px;}
.t2-docksearch:focus{outline:none; border-color:#2f6fe0; box-shadow:0 0 0 3px rgba(47,111,224,0.28);}
.t2-dockqa{font-size:11px; color:#e0a82e; font-weight:600; white-space:nowrap;}
.t2-dockbody{flex:1; overflow:auto; min-height:0;}
.t2-docktbl{width:100%; border-collapse:collapse; font-size:11.5px;}
.t2-docktbl thead th{position:sticky; top:0; z-index:1; background:var(--t2-ribbon); text-align:left; padding:6px 8px; font-size:10px; text-transform:uppercase; letter-spacing:.04em; color:var(--t2-muted); border-bottom:1px solid var(--t2-border); white-space:nowrap; cursor:pointer; user-select:none;}
.t2-docktbl thead th.srt:hover{color:var(--t2-text);}
.t2-docktbl thead th.srt.on{color:var(--t2-accent);}
.t2-docktbl td{padding:5px 8px; border-bottom:1px solid var(--t2-border); color:var(--t2-text); vertical-align:middle;}
.t2-docktbl td.num{text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; font-weight:600;}
.t2-docktbl td.ic{color:var(--t2-muted); width:26px; text-align:center;}
.t2-docktbl tr.grp td{background:var(--t2-tab); font-weight:700; font-size:11px; color:var(--t2-text); text-transform:uppercase; letter-spacing:.03em; padding:6px 8px; position:sticky; top:27px;}
.t2-docktbl tr.drow.clk{cursor:pointer;}
.t2-docktbl tr.drow.clk:hover td{background:var(--t2-tab);}
.t2-docktbl tr.drow.qa td{background:rgba(224,168,46,.09);}
.t2-docktbl .qaflag{color:#e0a82e;}

/* ============================================================
   C1/C2 (R2) — synlighet: skjul/isolér + synlighetsfilter-panel
   ============================================================ */
.t2-work{position:relative;}
.t2-vispanel{position:absolute; top:8px; right:202px; z-index:40; width:238px; max-height:calc(100% - 16px); overflow-y:auto; background:var(--t2-panel); border:1px solid var(--t2-border); border-radius:10px; box-shadow:0 10px 30px rgba(0,0,0,.38); padding:8px 10px 10px; font-size:12px;}
.t2.light .t2-vispanel{box-shadow:0 10px 30px rgba(30,50,90,.18);}
.t2-vishd{display:flex; align-items:center; gap:5px; padding:1px 0 8px; border-bottom:1px solid var(--t2-border);}
.t2-vissec{font-size:9.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--t2-muted); padding:9px 0 4px;}
.t2-visrow{display:flex; align-items:center; gap:7px; padding:3px 0;}
.t2-visdot{width:10px; height:10px; border-radius:3px; flex:0 0 10px; border:1px solid var(--t2-border);}
.t2-vislbl{flex:1; font-size:12px; color:var(--t2-text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.t2-viscount{font-size:11px; color:var(--t2-muted); min-width:20px; text-align:right;}
.t2-visseg{display:flex; border:1px solid var(--t2-border); border-radius:5px; overflow:hidden; flex:0 0 auto;}
.t2-visbtn{font-size:10px; padding:3px 6px; border:0; border-left:1px solid var(--t2-border); background:none; color:var(--t2-muted); cursor:pointer; font-family:inherit;}
.t2-visbtn:first-child{border-left:0;}
.t2-visbtn:hover{color:var(--t2-text);}
.t2-visbtn.on{background:#34507e; color:#bcd5ff;}
.t2-visbtn.on.v-dim{background:#6b5a1e; color:#ffe6a3;}
.t2-visbtn.on.v-hide{background:#7a2d2d; color:#ffd6d1;}
.t2.light .t2-visbtn.on{background:#dbe7ff; color:#2f6fe0;}
.t2.light .t2-visbtn.on.v-dim{background:#f6e6b8; color:#8a6d12;}
.t2.light .t2-visbtn.on.v-hide{background:#f6cfca; color:#9a2f26;}
.t2-visempty{font-size:11px; color:var(--t2-muted); padding:4px 0 6px;}
.t2-visfoot{font-size:10px; color:var(--t2-muted); line-height:1.45; padding:8px 0 1px; border-top:1px solid var(--t2-border); margin-top:8px;}

/* B5 — visningskontrollinje (grupper i statuslinja) */
.t2-statlbl{font-size:8.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--t2-muted); opacity:.7; margin-right:1px;}
.t2-statsep{width:1px; align-self:stretch; background:var(--t2-border); margin:2px 4px;}
.t2-schip.act{border-color:var(--t2-accent); color:var(--t2-accent);}
.t2-statscale{font-size:10.5px; color:var(--t2-text); padding:1px 6px; border:1px solid var(--t2-border); border-radius:4px;}

/* B4 — system-leser (rader i høyremenyen) */
.t2-sysrow{cursor:pointer; border-radius:5px;}
.t2-sysrow:hover{background:var(--t2-tab);}
.t2-sysrow.warn .k{color:#e0a82e;}
.t2-sysrow .v{color:var(--t2-muted); white-space:nowrap;}

/* A6 — «aktiv type»-kort (Type Selector) øverst i props-panelet */
.t2-typesel{border-bottom:1px solid var(--t2-border); background:var(--t2-ribbon); padding:8px 12px 10px;}
.t2-typehd{display:flex; align-items:center; gap:7px; font-size:12.5px; font-weight:700; color:var(--t2-text);}
.t2-typehd .tl{flex:1;}
.t2-typehd .dim{font-size:11px; font-weight:600; color:var(--t2-muted);}
.t2-typedot{width:11px; height:11px; border-radius:3px; flex:0 0 11px;}
.t2-typerow{display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:7px; font-size:12px;}
.t2-typerow .tk{color:var(--t2-muted); font-size:11px;}
.t2-typerow select{background:#fff !important; color:#111 !important; border:1px solid var(--t2-border); border-radius:5px; padding:2px 4px; font-family:inherit; font-size:12px;}
.t2-typerow input{background:var(--t2-canvas); color:var(--t2-text); border:1px solid var(--t2-border); border-radius:5px; padding:2px 5px; font-family:inherit; font-size:12px;}
.t2-typefoot{font-size:10px; color:var(--t2-muted); line-height:1.4; margin-top:8px;}

/* B1 — kontekstuell «Endre»-fane + kontekstpanel i ribbon */
.t2-tab.ctx.on{color:#e8801f; background:var(--t2-panel); border-color:var(--t2-border); border-radius:6px 6px 0 0; font-weight:700;}
.t2-ctxpnl{outline:1px solid rgba(232,128,31,.55); outline-offset:-2px; border-radius:7px; background:rgba(232,128,31,.07);}
.t2-ctxpnl .t2-plabel{color:#e8801f; font-weight:700;}

/* G9 — søk i tegningen (topplinje) */
.t2-search{position:relative; display:inline-flex; align-items:center; gap:5px; margin-left:12px; background:var(--t2-canvas); border:1px solid var(--t2-border); border-radius:6px; padding:2px 7px;}
.t2-searchinput{background:none; border:0; outline:none; color:var(--t2-text); font-family:inherit; font-size:12px; width:150px;}
.t2-searchinput::placeholder{color:var(--t2-muted);}
.t2-searchx{border:0; background:none; color:var(--t2-muted); cursor:pointer; font-size:12px; line-height:1; padding:0 2px;}
.t2-searchres{position:absolute; top:calc(100% + 4px); left:0; z-index:70; min-width:230px; max-height:320px; overflow-y:auto; background:var(--t2-panel); border:1px solid var(--t2-border); border-radius:8px; box-shadow:0 10px 30px rgba(0,0,0,.4); padding:4px;}
.t2-searchhit{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:6px 9px; border-radius:6px; cursor:pointer; font-size:12.5px; color:var(--t2-text);}
.t2-searchhit:hover{background:var(--t2-tab);}
.t2-searchhit .hs{font-size:10px; color:var(--t2-muted); text-transform:uppercase; letter-spacing:.03em; flex:0 0 auto;}
.t2-searchempty{padding:8px 10px; font-size:12px; color:var(--t2-muted);}

/* E5 — Mine verktøy (favoritt-chips i ribbon) */
.t2-mvchip{display:flex; align-items:center; gap:6px; padding:3px 6px; border-radius:5px; border:1px solid var(--t2-border); background:var(--t2-ribbon); color:var(--t2-text); font-size:11px; cursor:pointer; white-space:nowrap;}
.t2-mvchip:hover{background:var(--t2-tab);}
.t2-mvchip .x{color:var(--t2-muted); font-size:11px; padding:0 1px;}
.t2-mvchip .x:hover{color:#e0483a;}

/* Primær handlingsknapp — der brukeren tar et aktivt valg (tydelig ramme + aksentfarge + hover) */
.t2-actbtn{display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:9px 14px; border-radius:8px; border:1px solid var(--t2-accent); background:var(--t2-accent); color:#fff; font-family:inherit; font-size:12.5px; font-weight:700; cursor:pointer; box-shadow:0 1px 4px rgba(0,0,0,.28); transition:filter .12s ease, transform .06s ease, box-shadow .12s ease;}
.t2-actbtn:hover{filter:brightness(1.09); box-shadow:0 2px 8px rgba(47,111,224,.4);}
.t2-actbtn:active{transform:translateY(1px);}
.t2-actbtn.on{background:#1f8a5b; border-color:#1f8a5b; box-shadow:0 1px 4px rgba(31,138,91,.35);}
.t2-actbtn.on:hover{box-shadow:0 2px 8px rgba(31,138,91,.45);}
/* sekundær variant: tydelig ramme, men ikke fylt (for mindre dominerende valg) */
.t2-actbtn.sec{background:transparent; color:var(--t2-accent); box-shadow:none;}
.t2-actbtn.sec:hover{background:color-mix(in srgb, var(--t2-accent) 12%, transparent); box-shadow:none;}
