svg.ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
svg.ph{width:16px;height:16px;fill:currentColor;flex:none}
.pmm-nav-item .navn{margin-left:auto;font:600 10px var(--font-mono);color:var(--cl-amber)}
.lockflag{font:600 10px var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--th-textm);display:inline-flex;align-items:center;gap:4px}
.pmm-viewer .av16{width:16px;height:16px;border-radius:50%;background:var(--cl-teal);color:#fff;font:700 8px var(--font);display:inline-flex;align-items:center;justify-content:center}
.dgm-viewtitle .sp{flex:1}
.dfo-chipgrp .glbl{font:600 9px var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--th-textm);margin-right:2px}
.chip .ch-n{opacity:.75;font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:10px}
.btn.ghost{background:transparent;border-color:transparent;color:var(--th-text2)}
.btn.accent{background:transparent;border-color:var(--cl-purple);color:var(--cl-purple)}
table.dgm th .thl{display:flex;align-items:center;gap:4px;cursor:pointer}
th.dfo-ckcol,td.dfo-ckcol{width:26px;padding-left:8px;padding-right:0}
td.num,th.num{text-align:right;font-family:var(--font-mono);white-space:nowrap}
.idcell{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.idbox{width:30px;height:22px;border:1px solid var(--th-borders);border-radius:4px;background:var(--th-bg3);display:inline-flex;align-items:center;justify-content:center;color:var(--th-textm)}
.idbox svg{width:13px;height:13px}
.rim{font:700 12px var(--font-mono);color:var(--th-accent);cursor:pointer;user-select:none}
.dgm-hint{font:400 10px var(--font);color:var(--th-textm);padding:6px 2px}
.rp-pillwrap{display:inline-flex;align-items:center;cursor:pointer;position:relative}
.rp-pillwrap .badge{font-size:11px;padding:4px 10px}
.rp-pillcaret{margin-left:4px;font-size:10px}
.rp-stmenu{position:absolute;top:28px;left:50%;transform:translateX(-50%);min-width:220px;background:var(--th-bg);border:1px solid var(--th-border);border-radius:var(--r-lg);box-shadow:0 10px 30px rgba(0,0,0,.25);padding:6px;z-index:70}
.rp-stmenu .row{padding:7px 10px;border-radius:4px;font:400 12px var(--font);cursor:pointer;display:flex;gap:8px;align-items:center;color:var(--th-text)}
.rp-stmenu .row:hover{background:var(--th-hover)}
.rp-stmenu .hd{font:600 9px var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--th-textm);padding:4px 10px}
.kpirow{display:flex;align-items:stretch;gap:8px;margin-bottom:12px}
.kpitog{width:20px;border:0;background:none;color:var(--th-textm);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.kpitog svg{transition:transform var(--t)}
.kpirow.closed .kpitog svg{transform:rotate(-90deg)}
.kpirow.closed .dfo-kpis{display:none}
.kpirow.closed::after{content:attr(data-sum);font:400 11px var(--font-mono);color:var(--th-textm);align-self:center}
.dfo-kpi.alert{border-color:var(--cl-red)}
.dfo-kpi.alert .v{color:var(--cl-red)}
.dgm-sec{border:1px solid var(--th-border);border-radius:var(--r-lg);margin-bottom:10px;background:var(--th-bg)}
.dgm-sechead{display:flex;align-items:center;gap:8px;padding:8px 12px;font:700 10px var(--font);letter-spacing:.5px;text-transform:uppercase;color:var(--th-textm);cursor:pointer;user-select:none}
.dgm-sechead svg{transition:transform var(--t)}
.dgm-sec.closed .dgm-sechead svg{transform:rotate(-90deg)}
.dgm-sec.closed .dgm-secbody{display:none}
.dgm-secbody{padding:0 12px 10px}
.today-chip{height:21px;padding:3px 10px;border-radius:14px;font:500 11px var(--font);border:1px solid var(--cl-blue);color:var(--th-accent);background:var(--th-bg);cursor:pointer}
.ganttscale{display:flex;margin-left:190px;font:600 9px var(--font-mono);color:var(--th-textm);border:1px solid var(--th-border);border-radius:var(--r-lg);background:var(--th-bg2);padding:6px 0;margin-bottom:8px}
.ganttscale span{flex:1;text-align:center;border-left:1px solid var(--th-border)}
.rp-wide{grid-column:1/-1}
.dgm-stepper{display:flex;flex-wrap:wrap;align-items:center;gap:6px 0;margin-bottom:4px}
.dgm-step{display:flex;align-items:center;gap:6px;padding:4px 8px 4px 4px;border-radius:14px;font:500 11px var(--font);color:var(--th-text2)}
.dgm-step .n{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font:700 10px var(--font-mono);border:1.5px solid currentColor}
.dgm-step.done{color:var(--cl-green)}
.dgm-step.current{color:var(--cl-blue);font-weight:700;background:color-mix(in srgb,var(--cl-blue) 12%,transparent)}
.dgm-step.blocked{color:var(--cl-red)}
.dgm-step.pending{color:var(--th-textm)}
.dgm-step.done .n{background:color-mix(in srgb,var(--cl-green) 15%,transparent)}
.dgm-conn{width:18px;height:2px;background:var(--th-borders)}
.dgm-step .lnk{font-family:var(--font-mono);font-weight:700}
.modal.form{width:760px}
.modal.narrow{width:440px}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
.fgrid .wide{grid-column:1/-1}
.ff{display:flex;flex-direction:column;gap:4px;min-width:0}
.ff input:focus,.ff select:focus,.ff textarea:focus{border-color:var(--cl-blue);outline:none}
.ff[aria-invalid=true] input,.ff[aria-invalid=true] select{border-color:var(--cl-red)}
.ff .err{font-size:11px;color:var(--cl-red)}
td input.cellin,td select.cellin{width:100%;min-width:0;height:24px;border:1px solid var(--th-inputB);border-radius:3px;background:var(--th-input);color:var(--th-text);font:400 12px var(--font);padding:0 6px}
.tgl{display:inline-flex;border:1px solid var(--th-borders);border-radius:4px;overflow:hidden}
.tgl button{border:0;background:var(--th-bg);color:var(--th-text2);font:600 10px var(--font);letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;cursor:pointer;display:inline-flex;gap:4px;align-items:center}
.tgl button.on{background:color-mix(in srgb,var(--cl-blue) 12%,transparent);color:var(--cl-blue)}
.chartbox{position:relative;height:280px}
.swatches{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.swatch .chips{display:flex;gap:2px;margin-top:6px}
.swatch .chips i{flex:1;height:12px;border-radius:2px;display:block}
.aawarn{font-size:11px;color:var(--cl-amber);margin-top:8px}
.gate{border:1px solid var(--cl-red);background:color-mix(in srgb,var(--cl-red) 8%,transparent);color:var(--th-text)}