/* Builder layout only. Header, font and accent tokens are shared with teaching. */
html.spfb-active,body.spfb-active{overflow:hidden!important}
.sp-forloeb-builder{--spfb-gutter:25px;--spf-ink:#20242b;--spf-muted:#626c78;--spf-line:#d9dfe5;--spf-primary:#20242b;--spf-hover:#3a4652;position:fixed;inset:0;z-index:999998;width:100%;height:100dvh;display:flex;flex-direction:column;overflow:hidden;margin:0;padding:0;background:var(--spf-page-surface);color:var(--spf-ink);font:400 14px/1.5 "Geist",system-ui,sans-serif;letter-spacing:.015em}
.sp-forloeb-builder *,.sp-forloeb-builder *::before,.sp-forloeb-builder *::after{box-sizing:border-box}
.sp-forloeb-builder [hidden],.sp-forloeb-builder .is-filtered{display:none!important}
.sp-forloeb-builder :where(button,input,select,textarea,h1,h2,h3){font-family:inherit;letter-spacing:inherit}
.sp-forloeb-builder :where(h1,h2,h3,p){margin:0;color:inherit}
.sp-forloeb-builder :where(button,a){-webkit-tap-highlight-color:transparent}
.sp-forloeb-builder :where(button,a,input,select):focus-visible{outline:2px solid var(--spf-accent);outline-offset:3px}
.sp-forloeb-builder button{cursor:pointer;text-transform:none;box-shadow:none}
.sp-forloeb-builder button:disabled{cursor:default;opacity:.45}
.sp-forloeb-builder svg{flex:0 0 auto;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sp-forloeb-builder .screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.sp-forloeb-builder .spfb-btn:where(:not(.spf-header-action)),.sp-forloeb-builder .spfb-tool-btn:where(:not(.spf-header-action)){appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;max-width:100%;height:auto;margin:0;padding:8px 11px;border:1px solid var(--spf-line);border-radius:6px;background:#fff;color:var(--spf-ink)!important;font-size:12px;font-weight:580;line-height:1.35;letter-spacing:.025em;text-decoration:none!important;white-space:normal;text-align:left;transition:background-color 140ms ease,border-color 140ms ease}
.sp-forloeb-builder .spfb-btn:where(:not(.spf-header-action)):hover,.sp-forloeb-builder .spfb-tool-btn:where(:not(.spf-header-action)):hover{background:var(--spf-accent-soft);border-color:var(--spf-accent-line);color:var(--spf-ink)!important}
.sp-forloeb-builder .spfb-card-add,.sp-forloeb-builder .spfb-btn-start-confirm{background:var(--spf-primary);border-color:var(--spf-primary);color:#fff!important}
.sp-forloeb-builder .spfb-card-add:hover,.sp-forloeb-builder .spfb-btn-start-confirm:hover{background:var(--spf-hover);border-color:var(--spf-hover);color:#fff!important}
.sp-forloeb-builder .spfb-tool-btn svg{width:16px;height:16px}
.sp-forloeb-builder .spfb-more-menu{position:absolute;right:0;top:calc(100% + 8px);width:280px;padding:7px;border:1px solid var(--spf-line);border-radius:8px;background:#fff;box-shadow:0 14px 40px #20242b29}
.sp-forloeb-builder .spfb-more-item{display:flex;width:100%;align-items:center;gap:11px;min-height:44px;padding:10px;margin:0;border:0;border-radius:6px;background:transparent;color:var(--spf-ink)!important;text-align:left;text-decoration:none!important;font-size:13px;font-weight:550;line-height:1.4}
.sp-forloeb-builder .spfb-more-item:hover{background:var(--spf-accent-soft)}
.sp-forloeb-builder .spfb-sessions-count{margin-left:auto;font-size:12px}
/* Exactly two scroll owners: selected plan + reserves, and the complete library. */
.sp-forloeb-builder .spfb-workspace{position:relative;flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(310px,1fr);gap:22px;overflow:hidden;padding:25px var(--spfb-gutter)}
.sp-forloeb-builder .spfb-selected,.sp-forloeb-builder .spfb-section-fravalgt{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--spf-scroll-thumb) transparent;padding:17px;border:1px solid var(--spf-line);border-radius:9px}
.sp-forloeb-builder .spfb-selected{background:var(--spf-work-surface);border-color:var(--spf-work-border)}
.sp-forloeb-builder .spfb-section-fravalgt{background:#fff}
.sp-forloeb-builder .spfb-section{min-width:0}
.sp-forloeb-builder .spfb-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:83px;margin-bottom:14px}
.sp-forloeb-builder .spfb-section-copy{min-width:0;flex:1}
.sp-forloeb-builder .spfb-section-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--spf-accent);font-weight:600;margin-bottom:4px}
.sp-forloeb-builder .spfb-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}
.sp-forloeb-builder .spfb-section-head h2{font-size:19px;font-weight:640;line-height:1.4;letter-spacing:.025em}
.sp-forloeb-builder .spfb-section-head p{font-size:12px;line-height:1.5;color:var(--spf-muted);margin-top:4px}
.sp-forloeb-builder .spfb-count{font-size:12px;color:var(--spf-muted);font-weight:400}
.sp-forloeb-builder .spfb-count:empty{display:none}
.sp-forloeb-builder .spfb-builder-tools{display:flex;align-items:center}
.sp-forloeb-builder .spfb-undo{background:transparent}
.sp-forloeb-builder .spfb-section-ekstra{border-top:1px solid var(--spf-work-border);margin-top:23px;padding-top:19px}
.sp-forloeb-builder .spfb-section-ekstra .spfb-section-head{min-height:0;margin-bottom:13px}
.sp-forloeb-builder .spfb-section-ekstra h2{font-size:16px}
.sp-forloeb-builder .spfb-filterbar{margin-bottom:14px}
.sp-forloeb-builder .spfb-filter-field{display:block;margin:0}
.sp-forloeb-builder :is(.spfb-library-search,.spfb-start-input,.spfb-hold-input){appearance:none;width:100%;min-width:0;min-height:42px;padding:10px 12px;border:1px solid #d2d9e0;border-radius:6px;background:#f6f7f9;color:var(--spf-ink);font-size:13px;font-weight:400;line-height:1.4}
.sp-forloeb-builder input::placeholder{color:#737e89;font-weight:400;opacity:1}
.sp-forloeb-builder .spfb-library{display:block}
.sp-forloeb-builder .spfb-lib-group{border-top:1px solid #e3e7ec}
.sp-forloeb-builder .spfb-lib-toggle{display:flex;align-items:center;gap:9px;width:100%;min-width:0;min-height:46px;padding:12px 0;border:0;border-radius:0;background:transparent;color:var(--spf-ink);text-align:left;font-size:13px;font-weight:580;line-height:1.4}
.sp-forloeb-builder .spfb-lib-toggle:hover,.sp-forloeb-builder .spfb-lib-toggle[aria-expanded=true]{color:var(--spf-accent-strong)}
.sp-forloeb-builder .spfb-lib-name{min-width:0;flex:1;overflow-wrap:break-word}
.sp-forloeb-builder .spfb-lib-count{color:var(--spf-muted);font-size:12px;font-weight:400}
.sp-forloeb-builder .spfb-lib-caret{display:flex;color:var(--spf-muted)}
.sp-forloeb-builder .spfb-lib-caret svg{width:15px;height:15px}
.sp-forloeb-builder .spfb-lib-toggle[aria-expanded=true] .spfb-lib-caret{transform:rotate(90deg)}
.sp-forloeb-builder .spfb-library-footer{padding-top:14px;border-top:1px solid var(--spf-line);margin-top:8px}
.sp-forloeb-builder .spfb-library-footer .spfb-btn{width:100%}
.sp-forloeb-builder .spfb-filter-empty{padding:14px 0;font-size:13px;color:var(--spf-muted)}
/* A single card structure in every placement; text always retains the full central column. */
.sp-forloeb-builder .spfb-zone{display:flex;flex-direction:column;gap:9px;min-height:60px;min-width:0;padding:0;overflow:visible;background:transparent;border:0}
.sp-forloeb-builder .spfb-zone:empty::after{content:"Tilføj en opgave fra Flere opgaver.";display:block;min-height:65px;padding:20px 12px;border:1px dashed #bdc9d3;border-radius:6px;color:var(--spf-muted);font-size:13px}
.sp-forloeb-builder .spfb-section-ekstra .spfb-zone:empty::after{content:"Flyt en opgave hertil via Tilpas, hvis den skal være en reserve."}
.sp-forloeb-builder .spfb-lib-list:empty::after{content:"Alle opgaver i denne fase er valgt.";border:0}
.sp-forloeb-builder .spfb-lib-list{padding-bottom:12px}
.sp-forloeb-builder .spfb-card{position:relative;flex:0 0 auto;display:grid;grid-template-columns:17px minmax(0,1fr);column-gap:11px;align-content:start;align-items:center;width:100%;min-width:0;padding:15px 13px 12px;border:1px solid #d5dce3;border-radius:7px;background:#fff;color:var(--spf-ink);transition:border-color 130ms ease,background-color 130ms ease}
.sp-forloeb-builder .spfb-card:hover,.sp-forloeb-builder .spfb-card:focus-within{border-color:#aebfcd}
.sp-forloeb-builder .spfb-section-fravalgt .spfb-card{background:var(--spf-secondary-surface)}
.sp-forloeb-builder .spfb-section-ekstra .spfb-card{background:var(--spf-secondary-surface)}
.sp-forloeb-builder .spfb-drag{grid-column:1;grid-row:1;align-self:center;cursor:grab;color:#89939f;user-select:none;touch-action:none}
.sp-forloeb-builder .spfb-drag svg{width:16px;height:23px}
.sp-forloeb-builder .spfb-card-main{grid-column:2;min-width:0}
.sp-forloeb-builder .spfb-card-sub{display:flex;gap:7px;align-items:center;flex-wrap:wrap;font-size:11.5px;line-height:1.4;color:var(--spf-muted);margin-bottom:5px}
.sp-forloeb-builder .spfb-card-sub:empty{display:none}
.sp-forloeb-builder .spfb-card-index{font-size:12px;font-weight:650;color:var(--spf-accent);min-width:15px}
.sp-forloeb-builder .spfb-card-index:empty{display:none}
.sp-forloeb-builder .spfb-card-title{font-size:15px;font-weight:580;line-height:1.5;letter-spacing:.015em;white-space:normal;overflow-wrap:break-word}
.sp-forloeb-builder .spfb-card-detail{grid-column:2;min-width:0;padding-top:13px;font-size:13px;line-height:1.7;color:#596470}
.sp-forloeb-builder .spfb-card-workform{grid-column:2;display:flex;align-items:flex-end;gap:11px;flex-wrap:wrap;margin-top:12px;color:#485663;font-size:12px}
.sp-forloeb-builder .spfb-workform-part{display:inline-flex;align-items:flex-end;gap:7px;line-height:1.15}
.sp-forloeb-builder .spfb-workform-part svg{display:block;width:21px;height:21px;color:var(--spf-accent)}
.sp-forloeb-builder .spfb-card-actions{grid-column:2;display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:13px;min-width:0}
.sp-forloeb-builder .spfb-card-toggle,.sp-forloeb-builder .spfb-adjust{border-color:transparent;background:transparent;color:var(--spf-muted)!important}
.sp-forloeb-builder .spfb-adjust{margin-left:auto}
.sp-forloeb-builder .spfb-adjust[aria-expanded=true]{background:#dce5ed;border-color:#a9bbc9;color:var(--spf-accent-strong)!important}
.sp-forloeb-builder .spfb-card-caret,.sp-forloeb-builder .spfb-menu-caret{width:13px!important;height:13px!important}
.sp-forloeb-builder .spfb-card-toggle[aria-expanded=true] .spfb-card-caret{transform:rotate(180deg)}
.sp-forloeb-builder .spfb-material-count{font-size:11px;min-width:17px;text-align:center;border-radius:4px;background:#e7ecf1;color:#3a566d;padding:1px 3px}
.sp-forloeb-builder .spfb-section-fravalgt .spfb-card-toggle{display:none}
.sp-forloeb-builder .spfb-section-fravalgt .spfb-card-detail{display:block!important}
.sp-forloeb-builder .spfb-section-fravalgt .spfb-card-title{font-size:14px}
.sp-forloeb-builder .spfb-section-fravalgt .spfb-card-actions{grid-column:1/-1}
.sp-forloeb-builder .spfb-section-fravalgt .spfb-card-add{margin-left:auto}
.sp-forloeb-builder .spfb-section-fravalgt .spfb-adjust{order:3;margin-left:0}
.sp-forloeb-builder .spfb-card-settings{grid-column:1/-1;margin-top:12px;padding:13px 0 0;border-top:1px solid var(--spf-line);display:flex;gap:8px;flex-wrap:wrap}
.sp-forloeb-builder .spfb-workform-fields{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sp-forloeb-builder .spfb-workform-fields label{display:grid;gap:5px;font-size:12px;font-weight:500;color:#53616e;min-width:0;margin:0}
.sp-forloeb-builder .spfb-workform-select{width:100%;min-width:0;min-height:39px;padding:8px;border:1px solid #b7c6d2;border-radius:6px;background:#f1f4f7;color:var(--spf-ink);font-size:13px;font-weight:400}
.sp-forloeb-builder .spfb-position-actions{display:flex;gap:7px;flex-wrap:wrap;width:100%}
.sp-forloeb-builder .spfb-settings-close{margin-left:auto}
.sp-forloeb-builder .spfb-quick-remove:hover,.sp-forloeb-builder .spfb-custom-delete:hover{background:#faeae5;color:#853e2e!important;border-color:#e0bcb0}
/* Portaled material menu stays outside the scrolling panels, but next to its trigger. */
.sp-forloeb-builder .spfb-menu-wrap{display:inline-flex}
.sp-forloeb-builder>.spfb-card-menu{position:fixed;z-index:25;width:360px;overflow:auto;padding:6px;border:1px solid #b7c6d2;border-radius:7px;background:#fff;box-shadow:0 12px 34px #20242b26;scrollbar-width:thin}
.sp-forloeb-builder .spfb-card-menu :is(a,button){display:flex;align-items:flex-start;gap:12px;width:100%;margin:0;padding:12px;border:0;border-radius:4px;background:transparent;color:var(--spf-ink)!important;font-size:13px;line-height:1.5;text-align:left;text-decoration:none!important}
.sp-forloeb-builder .spfb-card-menu :is(a,button):hover,.sp-forloeb-builder .spfb-card-menu :is(a,button):focus-visible{background:var(--spf-accent-soft)}
.sp-forloeb-builder .spfb-material-type{flex:0 0 62px;font-size:11px;color:var(--spf-accent-strong);padding-top:2px}
.sp-forloeb-builder .spfb-material-name{min-width:0;overflow-wrap:anywhere;font-weight:500}
.sp-forloeb-builder .spfb-feedback{display:flex;align-items:center;justify-content:center;gap:14px;flex:0 0 auto;padding:9px 18px;border-top:1px solid var(--spf-line);background:#e7ecf1;color:#3a566d;font-size:13px}
.sp-forloeb-builder .spfb-sort-placeholder{flex:0 0 auto;box-sizing:border-box;border:2px dashed #8fa5b8;border-radius:7px;background:#dbe5ed}
.sp-forloeb-builder .ui-sortable-helper{box-shadow:0 10px 24px #20242b24;opacity:.95}
.sp-forloeb-builder .is-just-moved{animation:spfb-moved 1s ease-out}
@keyframes spfb-moved{from{background:#dce6ef}to{background:#fff}}
@media(max-width:1050px){.sp-forloeb-builder{--spfb-gutter:18px}.sp-forloeb-builder .spfb-workspace{padding:18px var(--spfb-gutter);gap:16px;grid-template-columns:minmax(0,1.5fr) minmax(290px,1fr)}.sp-forloeb-builder .spfb-selected,.sp-forloeb-builder .spfb-section-fravalgt{padding:14px}.sp-forloeb-builder .spfb-card-actions{grid-column:1/-1}.sp-forloeb-builder .spfb-section-head{min-height:102px}}
@media(max-width:760px){.sp-forloeb-builder{--spfb-gutter:14px}.sp-forloeb-builder .spfb-workspace{display:flex;flex-direction:column;overflow:auto;padding:14px var(--spfb-gutter)}.sp-forloeb-builder .spfb-selected,.sp-forloeb-builder .spfb-section-fravalgt{flex:0 0 auto;overflow:visible;scrollbar-gutter:auto}.sp-forloeb-builder .spfb-section-head{min-height:0}.sp-forloeb-builder .spfb-section-fravalgt{margin-top:0}.sp-forloeb-builder .spfb-more-menu{left:0;right:auto}.sp-forloeb-builder .spfb-card-actions{gap:5px}.sp-forloeb-builder .spfb-workform-fields{grid-template-columns:1fr}.sp-forloeb-builder .spfb-feedback{flex-wrap:wrap}.sp-forloeb-builder .spfb-tool-btn{min-height:42px}}
@media(pointer:coarse){.sp-forloeb-builder .spfb-tool-btn{min-height:44px}.sp-forloeb-builder :is(input,select){font-size:16px}}
@media(prefers-reduced-motion:reduce){.sp-forloeb-builder *{animation:none!important;transition:none!important}}

/* Hold dialogs retain their existing behavior and dimensions. */
/* Hold context belongs to the plan; retention information belongs to hold selection. */
.sp-forloeb-builder .spfb-session-context { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; padding: 0 0 12px; color: #4d565e; font-size: 12px; }
.sp-forloeb-builder .spfb-session-save-status.is-error { color: #963d2f; }
.sp-forloeb-builder .spfb-context-action { padding: 3px 5px; border: 0; border-radius: 4px; background: #dde0e4; color: #2d3843; font-size: 12px; }
.sp-forloeb-builder .spfb-start { position: fixed; inset: 0; z-index: 30; display: grid; place-items: center; padding: 24px; background: #152e3b66; }
.sp-forloeb-builder .spfb-start-dialog { width: min(740px,100%); max-height: calc(100dvh - 48px); overflow: auto; border-radius: 14px; border: 1px solid #c6cacd; background: #f9fbfa; box-shadow: 0 24px 80px #122d3e33; }
.sp-forloeb-builder .spfb-start-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 24px; border-bottom: 1px solid #dee0e3; }
.sp-forloeb-builder .spfb-start-head h2 { color: var(--spf-ink); font-size: 24px; font-weight: 650; }
.sp-forloeb-builder .spfb-start-close { display: grid; place-items: center; flex: 0 0 auto; width: 36px; height: 36px; padding: 0; border: 1px solid #ced2d6; border-radius: 7px; background: #ebedef; color: #404851; }
.sp-forloeb-builder .spfb-start-close:hover { background: #dee1e4; }
.sp-forloeb-builder .spfb-start-inner { display: grid; gap: 24px; padding: 24px; }
.sp-forloeb-builder .spfb-start h3 { color: var(--spf-ink); font-size: 16px; font-weight: 650; margin: 0 0 12px; }
.sp-forloeb-builder .spfb-start-label { display: block; margin-bottom: 6px; color: #495058; font-size: 12px; font-weight: 600; }
.sp-forloeb-builder .spfb-start-row { display: flex; align-items: stretch; gap: 10px; }
.sp-forloeb-builder .spfb-start-help, .sp-forloeb-builder .spfb-sessions-state { margin-top: 10px; color: var(--spf-muted); font-size: 12px; }
.sp-forloeb-builder .spfb-local-notice { padding: 18px 24px; border-top: 1px solid #dee0e3; color: #565c63; background: #eef0f2; font-size: 12px; line-height: 1.6; }
.sp-forloeb-builder .spfb-local-notice strong { display: block; margin-bottom: 3px; color: #3d454e; }
.sp-forloeb-builder .spfb-start-error { padding: 12px; border-radius: 6px; background: #fcebe7; color: #8d3a2a; }
.sp-forloeb-builder .spfb-start-list { display: grid; gap: 9px; }
.sp-forloeb-builder .spfb-session-row { display: flex; align-items: center; gap: 12px; padding: 14px; border: 1px solid #d2d6da; border-radius: 8px; background: #fff; }
.sp-forloeb-builder .spfb-session-row.is-selected { border-color: #84909c; background: #f2f3f5; }
.sp-forloeb-builder .spfb-session-copy { flex: 1; min-width: 0; }
.sp-forloeb-builder .spfb-session-name { font-size: 14px; font-weight: 650; overflow-wrap: break-word; }
.sp-forloeb-builder .spfb-session-meta { color: var(--spf-muted); font-size: 11px; margin-top: 3px; }
.sp-forloeb-builder .spfb-session-actions { display: flex; gap: 6px; }
.sp-forloeb-builder .spfb-session-action { min-height: 34px; padding: 7px 11px; border: 1px solid #c5cace; border-radius: 6px; background: #eff0f2; color: #323b45; font-size: 12px; font-weight: 600; }
.sp-forloeb-builder .spfb-session-action:hover { background: #e0e3e7; }
.sp-forloeb-builder .spfb-btn-resume { background: var(--spf-primary); border-color: var(--spf-primary); color: #fff; }
.sp-forloeb-builder .spfb-btn-resume:hover { background: var(--spf-hover); color: #fff; }
.sp-forloeb-builder .spfb-session-delete { width: 30px; height: 30px; padding: 0; background: transparent; border: 0; border-radius: 5px; color: #707579; font-size: 20px; }
.sp-forloeb-builder .spfb-session-delete:hover { background: #faeae5; color: #853e2e; }

.sp-forloeb-builder .spfb-current-hold{display:inline-flex;align-items:center;gap:6px;background:transparent;border:0;border-radius:4px;color:var(--spf-ink);padding:4px 0;font-size:13px;font-weight:550}
.sp-forloeb-builder .spfb-hold-pen{width:14px;height:14px;color:var(--spf-muted)}
@media(max-width:520px){.sp-forloeb-builder .spfb-start{padding:12px}.sp-forloeb-builder .spfb-start-dialog{max-height:calc(100dvh - 24px)}.sp-forloeb-builder .spfb-start-row{flex-direction:column}.sp-forloeb-builder .spfb-session-row{flex-wrap:wrap}.sp-forloeb-builder .spfb-session-copy{flex-basis:calc(100% - 42px)}.sp-forloeb-builder .spfb-start-head,.sp-forloeb-builder .spfb-start-inner,.sp-forloeb-builder .spfb-local-notice{padding:18px}}
