/* Homie kundeportal — design from Homie's developer package (Homie_Kundesider_Privat_og_Sildeben.html),
   reused as-is; only the demo-toolbar rules are removed. Additions at the end. */

:root{--blue:#4c7ff3;--action:#315fcf;--pale:#e9eef8;--paper:#f7f7f3;--card:#fff;--ink:#17202d;--soft:#5e6672;--line:#dfe3e8;--navy:#1f2b47;--green:#246248;--greenbg:#eaf5ef;--amber:#866328;--amberbg:#faf3e3;color-scheme:light;font-family:var(--hm-font,Avenir Next,Segoe UI,Helvetica,Arial,sans-serif);color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.6}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,summary{touch-action:manipulation}button{cursor:pointer}a{color:var(--action)}button:disabled{opacity:.58;cursor:default}:focus-visible{outline:3px solid var(--blue);outline-offset:3px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1{font-size:38px;font-weight:550;line-height:1.16;letter-spacing:-1.1px}h2{font-size:25px;line-height:1.3;letter-spacing:-.5px;font-weight:550}h3{font-size:17px;line-height:1.45;font-weight:600}strong{font-weight:600}button svg,span>svg{vertical-align:middle}.icon{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.shell{max-width:1128px;margin:auto}.top{padding:23px 24px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:20px}.logo{width:124px;height:auto;display:block}.nordic-logo{font-size:30px;letter-spacing:-1.2px;line-height:.95;font-weight:550}.nordic-logo span{display:block}.nordic-logo small{display:block;font-size:9px;line-height:1.4;letter-spacing:2.4px;margin-top:12px;font-weight:500}.top-contact{display:flex;gap:10px;align-items:center}.avatar{width:40px;height:40px;border-radius:50%;background:#dce7ff;display:grid;place-items:center;color:var(--action);font-size:17px}.small{font-size:13px;color:var(--soft)}.link{border:0;background:transparent;padding:0;text-decoration:underline;text-underline-offset:4px;color:var(--action);font-size:14px}.page{padding:32px 24px 0}.identity{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:30px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:1.8px;color:var(--soft);font-weight:600;margin-bottom:10px}.customer{margin-top:16px;font-size:15px;line-height:1.55}.customer .address{color:var(--soft);font-size:14px;margin-top:2px}.case-pill{white-space:nowrap;background:#fff;border:1px solid var(--line);padding:7px 13px;border-radius:20px;font-size:13px;color:var(--soft)}
.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:30px}.step{border:0;background:transparent;border-radius:9px;display:flex;align-items:center;justify-content:center;gap:9px;padding:12px 5px;font-size:14px;min-height:49px;color:var(--soft)}.step.active{background:var(--blue);color:#0c1b38;font-weight:600}.step b{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;font-size:11px;font-weight:500;background:var(--pale)}.step.active b{background:#fff;color:var(--action)}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:26px;align-items:start}.intro{margin-bottom:24px}.intro p{color:var(--soft);margin-top:9px;font-size:15px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px;margin-bottom:18px}.card.tint{background:var(--pale);border-color:var(--pale)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.tag{font-size:12px;display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:7px;background:var(--pale);color:var(--action);white-space:nowrap}.tag.complete{background:var(--greenbg);color:var(--green)}.tag.planned{background:var(--paper);color:var(--soft)}.tag.warn{background:var(--amberbg);color:var(--amber)}
.job{display:grid;grid-template-columns:28px minmax(0,1fr) auto;column-gap:12px;padding:18px 0;border-top:1px solid var(--line)}.job:first-child{border-top:0;padding-top:0}.job:last-child{padding-bottom:0}.job-num{font-size:12px;color:var(--blue);font-weight:600;padding-top:3px}.job h3{font-size:17px;letter-spacing:-.2px}.job p{font-size:14px;color:var(--soft);grid-column:2/-1;margin-top:6px;line-height:1.6}.price{font-weight:600;font-size:16px;white-space:nowrap}.unit{grid-column:2/-1;font-size:12px;color:var(--soft);margin-top:7px}.option{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:17px 0;border-top:1px solid var(--line);cursor:pointer}.option:first-of-type{border-top:0}.option strong{display:block;font-size:15px}.option small{display:block;color:var(--soft);font-size:13px;margin-top:4px}.option-right{display:flex;align-items:center;gap:12px;flex-shrink:0}.option-right span{font-size:14px}input[type=checkbox],input[type=radio]{accent-color:var(--action);width:20px;height:20px;margin:0;flex-shrink:0}
.summary{background:var(--navy);color:#fff}.summary .eyebrow{color:#b9c8e6}.summary h2{font-size:35px;letter-spacing:-1px;margin-bottom:2px}.summary .small{color:#c3cde0}.summary-lines{margin-top:22px;padding-top:13px;border-top:1px solid #ffffff2b}.summary-line{display:flex;justify-content:space-between;gap:15px;font-size:14px;padding:5px 0;color:#dae2f3}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;border-radius:10px;border:1px solid var(--line);padding:11px 16px;background:#fff;text-decoration:none;font-size:14px;font-weight:550}.btn.primary{background:var(--action);border-color:var(--action);color:#fff}.btn.wide{width:100%}.btn.quiet{background:transparent;color:var(--soft)}.summary .btn{margin-top:19px;background:#fff;border-color:#fff;color:var(--navy)}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.note{padding:15px 17px;background:var(--pale);border-radius:10px;color:var(--soft);font-size:14px;margin-top:18px}.note b{color:var(--ink)}.aside-note{font-size:14px;color:var(--soft);margin-top:9px}.facts{list-style:none;margin:15px 0 0;padding:0}.facts li{display:flex;justify-content:space-between;gap:14px;border-top:1px solid var(--line);padding:11px 0;font-size:14px}.facts span{color:var(--soft)}.facts strong{text-align:right;font-weight:500}.aside .card{padding:22px}.aside .btn{margin-top:16px;width:100%}.aside .card-head{margin-bottom:10px}
details.terms{border-top:1px solid var(--line);padding:15px 0}details.terms:last-child{padding-bottom:0}details.terms summary{cursor:pointer;font-size:15px;font-weight:500;list-style:none;display:flex;justify-content:space-between;gap:15px}details.terms summary:after{content:'+';color:var(--action);font-size:19px;line-height:1.25}details.terms[open] summary:after{content:'−'}details.terms p{font-size:14px;color:var(--soft);margin-top:11px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{display:flex;flex-direction:column;gap:6px;font-size:14px}.field.full{grid-column:1/-1}.field input,.field select,.field textarea{width:100%;min-width:0;padding:11px 12px;border-radius:8px;border:1px solid var(--line);background:#fff;font-size:16px}.field textarea{resize:vertical}.field small{font-size:12px;color:var(--soft)}.check{display:flex;gap:11px;align-items:flex-start;font-size:14px;color:var(--soft);padding:12px 0}.check input{margin-top:2px}.meter{height:5px;border-radius:6px;background:var(--pale);overflow:hidden;margin:17px 0}.meter>span{display:block;height:100%;background:var(--blue)}
.choice{display:flex;align-items:flex-start;gap:13px;border:1px solid var(--line);background:var(--paper);border-radius:11px;padding:16px;margin-top:12px;cursor:pointer}.choice input{margin-top:3px}.choice strong{font-size:15px;display:block}.choice small{font-size:13px;color:var(--soft);display:block;margin-top:4px}.choice:has(input:checked){border-color:var(--blue);background:#f3f6ff}.doc{padding:17px 0;border-top:1px solid var(--line);display:flex;gap:13px;align-items:center}.doc:first-of-type{border-top:0}.doc-icon{display:grid;place-items:center;background:var(--pale);width:35px;height:42px;border-radius:7px;color:var(--action);flex-shrink:0}.doc-info{flex:1;min-width:0}.doc-info strong{display:block;font-size:14px}.doc-info small{display:block;font-size:12px;color:var(--soft);overflow-wrap:anywhere}.doc .btn{font-size:13px;min-height:40px;padding:8px 12px}.status-list{list-style:none;margin:0;padding:0}.status-list li{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:12px;align-items:center;padding:17px 0;border-bottom:1px solid var(--line)}.status-list li:last-child{border-bottom:0;padding-bottom:0}.status-mark{background:var(--paper);border-radius:8px;width:30px;height:32px;display:grid;place-items:center;font-size:14px;color:var(--soft)}.status-mark.complete{background:var(--greenbg);color:var(--green)}.status-mark.active{background:var(--pale);color:var(--action)}.status-list strong{font-size:15px;font-weight:500}.status-list small{grid-column:2/-1;font-size:12px;color:var(--soft);margin-top:-4px}.qc{display:flex;gap:12px;align-items:flex-start}.qc>.icon{color:var(--action);margin-top:4px}.qc p{font-size:14px;color:var(--soft);margin-top:7px}.review-list{padding-left:20px;margin:12px 0 0;font-size:14px;color:var(--soft)}.review-list li{margin:8px 0}.footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin:25px 24px 0;padding:22px 0 28px;font-size:12px;color:var(--soft)}.sticky{position:sticky;top:22px}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--navy);color:white;padding:13px 20px;border-radius:12px;box-shadow:0 8px 40px #17202d20;width:max-content;max-width:calc(100% - 32px);font-size:14px;z-index:6}
dialog{border:1px solid var(--line);border-radius:18px;padding:0;max-width:560px;width:calc(100% - 30px);max-height:85vh;box-shadow:0 15px 70px #17202d26;color:var(--ink)}dialog::backdrop{background:#17202d70}.modal-head{display:flex;justify-content:space-between;gap:20px;padding:24px 24px 14px;align-items:flex-start}.modal-close{border:0;background:var(--paper);border-radius:50%;width:33px;height:33px;display:grid;place-items:center;flex-shrink:0}.modal-body{padding:0 24px 24px}.modal-body>p{color:var(--soft);font-size:14px;margin-bottom:17px}.modal-body .form-grid{margin-top:16px}.modal-body .actions .btn{flex:1}.total-review{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:13px;margin-top:16px;font-size:17px}.party{border:1px solid var(--line);border-radius:10px;padding:15px;margin:14px 0}.party legend{font-size:13px;color:var(--soft);padding:0 5px}.party .link{margin-top:10px;font-size:12px}.empty-note{font-size:14px;color:var(--soft);padding:10px 0}.section-note{font-size:14px;color:var(--soft);margin:9px 0 15px}
.step-name-short{display:none}@media(max-width:420px){.step-name-long{display:none}.step-name-short{display:inline}}
@media(max-width:850px){.layout{grid-template-columns:minmax(0,1fr) 260px;gap:18px}.card{padding:20px}.page{padding:26px 20px 0}h1{font-size:33px}.step{font-size:12px;gap:6px}.job{grid-template-columns:22px minmax(0,1fr) auto;gap:8px}.job h3{font-size:16px}.price{font-size:15px}}
@media(max-width:680px){.top{padding:18px 18px}.logo{width:112px}.nordic-logo{font-size:27px}.top-contact .avatar{display:none}.top-contact{font-size:13px}.top-contact .small{font-size:12px}.page{padding:24px 16px 0}.identity{display:block;margin-bottom:23px}.case-pill{display:none}h1{font-size:31px;letter-spacing:-.9px}.customer{font-size:14px;margin-top:13px}.customer .address{font-size:13px}.steps{padding:5px;gap:2px;margin-bottom:24px}.step{flex-direction:column;gap:5px;font-size:10px;padding:9px 1px}.step b{width:22px;height:22px}.layout{grid-template-columns:1fr;gap:0}.intro{margin-bottom:20px}.intro p{font-size:14px}.card,.aside .card{padding:19px 17px}.card-head{gap:8px}h2{font-size:23px}h3{font-size:16px}.job{grid-template-columns:20px minmax(0,1fr) auto}.job p{font-size:13px}.job h3{font-size:15px}.price{font-size:14px}.option{gap:9px}.option strong{font-size:14px}.option small{font-size:12px}.option-right{gap:8px}.option-right span{font-size:13px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.sticky{position:static}.footer{margin:18px 16px 0;font-size:11px;align-items:flex-end}.footer>span{max-width:210px}.summary h2{font-size:34px}.status-list li{gap:9px;grid-template-columns:28px minmax(0,1fr) auto}.status-list strong{font-size:14px}.tag{font-size:12px;padding:4px 7px}.modal-head{padding:22px 18px 14px}.modal-body{padding:0 18px 22px}.doc{gap:9px}.doc-info strong{font-size:13px}.doc .btn{padding:8px;font-size:12px}}
@media(prefers-reduced-motion:no-preference){button,a{transition:background-color .15s,border-color .15s}.btn:hover{filter:brightness(.97)}}

/* Nordisk Sildeben palette + shared layout (from the same package) */

/* Shared Homie layout, with Nordisk's warm palette. */
:root{--summary-soft:#c3cde0;--summary-line:#dae2f3;--select-bg:#f3f6ff}
body.nordic{--blue:#876344;--action:#755136;--pale:#ede3d7;--paper:#f7f3ed;--card:#fffdf9;--ink:#31281f;--soft:#74685e;--line:#ded3c5;--navy:#443329;--summary-soft:#e3d5c7;--summary-line:#eee3d7;--select-bg:#f7eee2;background:var(--paper)}

.logo{width:148px}.nordic .top #brand{order:2}.nordic .top-contact{order:1}.nordic-brand{background:var(--navy);border-radius:12px;padding:12px 19px;display:inline-flex;align-items:center;justify-content:center}.nordic-brand img{width:90px;height:100px;object-fit:contain;display:block}
.avatar{background:var(--pale)}.step.active{background:var(--action);color:#fff}.step.active b{color:var(--action)}.steps,.case-pill{background:var(--card)}
.language-shortcut{color:var(--action)}#homie-language-card{background:var(--pale);border-color:var(--line);color:var(--ink)}#homie-language-card h3{color:var(--ink)}.language-description,.language-demo,.language-saved{color:var(--soft)!important}.language-field select{border-color:var(--line)!important}
.summary .eyebrow,.summary .small{color:var(--summary-soft)}.summary-line{color:var(--summary-line)}.choice:has(input:checked){background:var(--select-bg);border-color:var(--action)}.summary h2{font-size:32px;overflow-wrap:anywhere}.unit-summary{margin-top:13px}.review-unit{display:block;font-size:12px;color:var(--soft);margin-top:4px}.job-num{color:var(--action)}
.job{border:0;background:var(--paper);padding:18px;border-radius:12px;margin-bottom:10px;grid-template-columns:22px minmax(0,1fr) auto}.job:first-child{padding-top:18px}.job:last-child{padding-bottom:18px;margin-bottom:0}.unit{font-size:14px}.job p{font-size:14px}
.wood-config .form-grid{align-items:start}.wood-config .field:last-child{grid-column:1/-1}.number-wrap{position:relative;display:flex;align-items:center}.number-wrap input{padding-right:68px}.number-wrap>span{position:absolute;right:12px;color:var(--soft);font-size:13px;pointer-events:none}.sub-area{margin:17px 0;max-width:250px}.wood-extra{display:grid;grid-template-columns:minmax(0,1fr) 115px;gap:20px;padding:21px 0;border-bottom:1px solid var(--line);align-items:center}.wood-extra:last-of-type{border-bottom:0}.wood-extra h3{font-size:16px}.wood-extra p{font-size:14px;line-height:1.55;color:var(--soft);margin-top:5px}.extra-rate{font-size:14px;font-weight:600;color:var(--action);display:block;margin-top:8px}.wood-extra .wood-number>span:first-child{position:absolute;overflow:hidden;width:1px;height:1px;clip-path:inset(50%)}.wood-extra .number-wrap input{padding:10px 7px;width:100%;text-align:center}.wood-extra .number-wrap{flex-direction:column;gap:3px}.wood-extra .number-wrap>span{position:static;font-size:12px}.nordic .identity h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:41px;letter-spacing:-1px}.nordic .eyebrow{color:var(--action)}.nordic .summary .eyebrow{color:var(--summary-soft)}
@media(max-width:680px){.logo{width:132px}.nordic-brand{padding:10px 15px}.nordic-brand img{width:73px;height:82px}.nordic .identity h1{font-size:33px}.wood-extra{grid-template-columns:minmax(0,1fr) 83px;gap:15px}.job{grid-template-columns:20px minmax(0,1fr);padding:16px 13px}.job .price{grid-column:2;font-size:16px;margin-top:6px}.job p,.job .unit{grid-column:2}.step{font-size:12px}.intro p,.option small,.choice small,.field small{font-size:14px}.summary h2{font-size:34px}.wood-config .field:last-child{grid-column:auto}}


.layout>section,.aside,.party{min-width:0}.facts li>*{min-width:0;overflow-wrap:anywhere}.facts li>span,.facts li>strong{max-width:58%}@media(max-width:680px){.layout{grid-template-columns:minmax(0,1fr)}.card-head{flex-wrap:wrap}.step-name-short{overflow-wrap:anywhere}.party{margin-inline:0}.card .form-grid{min-width:0}}

.step{transition:none}.mobile-quote{display:none}@media(max-width:680px){body.nordic:has(.mobile-quote){padding-bottom:85px}.mobile-quote{position:fixed;bottom:0;left:0;right:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--card);border-top:1px solid var(--line);padding:10px 16px max(10px,env(safe-area-inset-bottom));box-shadow:0 -3px 18px #4433290d}.mobile-quote span{display:block;font-size:12px;color:var(--soft)}.mobile-quote strong{display:block;font-size:21px}.mobile-quote .btn{min-height:44px}}

/* ── Additions for the live portal (not in the design demo) ── */
.lang-link{border:0;background:transparent;color:var(--action);font-size:13px;text-decoration:underline;text-underline-offset:3px;padding:4px 0;margin-left:14px}
.step.locked{opacity:.55}
.step.locked b{background:var(--paper)}
.step:not(.active):not(.locked):hover{background:var(--pale)}
.state{max-width:560px;margin:90px auto;padding:0 24px;text-align:center}
.state .card{padding:34px 28px}
.state h1{font-size:28px;margin:6px 0 10px}
.state p{color:var(--soft)}
.spinner{width:26px;height:26px;border:3px solid var(--pale);border-top-color:var(--action);border-radius:50%;display:inline-block;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.locked-card{text-align:left}
.locked-card .icon{color:var(--action)}
.sign-list{list-style:none;padding:0;margin:14px 0 0}
.sign-list li{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:10px 0;font-size:14px}
.sign-list li:first-child{border-top:0}
.decision-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.decision-row .btn{flex:1 1 150px;min-height:42px;font-size:13px}
.option.disabled{cursor:default}
.chat-log{display:flex;flex-direction:column;gap:10px;max-height:min(46vh,380px);overflow-y:auto;padding:4px 2px 12px}
.chat-msg{max-width:86%;padding:10px 13px;border-radius:13px;font-size:14px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.chat-msg.user{align-self:flex-end;background:var(--action);color:#fff;border-bottom-right-radius:4px}
.chat-msg.assistant{align-self:flex-start;background:var(--paper);border:1px solid var(--line);border-bottom-left-radius:4px}
.chat-msg .escalated{display:block;margin-top:6px;font-size:12px;color:var(--soft)}
.chat-empty{font-size:14px;color:var(--soft);padding:8px 0}
.chat-form{display:flex;gap:8px;align-items:flex-end;border-top:1px solid var(--line);padding-top:12px}
.chat-form textarea{flex:1;min-width:0;padding:10px 12px;border-radius:10px;border:1px solid var(--line);resize:none;font-size:16px;max-height:120px}
.chat-form .btn{min-height:44px}
.fab-chat{position:fixed;right:18px;bottom:18px;z-index:5;border:0;border-radius:999px;background:var(--action);color:#fff;padding:13px 18px;font-weight:600;font-size:14px;box-shadow:0 8px 30px #17202d33;display:flex;gap:8px;align-items:center}
@media(max-width:680px){.fab-chat{bottom:12px;right:12px;width:52px;height:52px;padding:0;justify-content:center}.fab-chat span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.fab-chat .icon{width:22px;height:22px}body:has(.mobile-quote) .fab-chat{bottom:84px}}
/* Extended offer (Homie's offer draft: what we saw, caveats, payment, decisions) */
.validity{margin:-6px 0 16px}
.observations{font-size:15px;line-height:1.65;white-space:pre-line;margin:0}
.photo-link{margin-top:14px;border-top:1px solid var(--line);text-decoration:none;color:inherit}
.photo-link .doc-info small{font-size:13px;line-height:1.5}
.caveat{grid-column:2/-1;margin-top:12px;background:var(--amberbg);border-radius:10px;padding:11px 14px}
.caveat strong{display:block;font-size:13px;color:var(--amber)}
.caveat p{margin:4px 0 0;color:var(--ink)}
.option small.diy{color:var(--action)}
.pay-model{border:1px solid var(--line);border-radius:14px;padding:15px 18px;margin-top:10px}
.pay-model h3{font-size:15px;margin:0}
.pay-model p{font-size:13px;color:var(--soft);margin:4px 0 0;line-height:1.55}
.pay-model .tag{margin-bottom:8px}
.decisions{display:flex;flex-direction:column;gap:9px;margin-top:4px}
.decision{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid transparent;border-radius:14px;padding:16px 20px;background:var(--paper);color:var(--ink);text-align:left;font:inherit;cursor:pointer}
.decision strong{display:block;font-size:16px;font-weight:600}
.decision small{display:block;font-size:13px;color:var(--soft);margin-top:3px}
.decision .arrow{color:var(--action);font-size:18px;flex-shrink:0}
.decision:hover{border-color:var(--line)}
.decision.primary{background:var(--action);color:#fff}
.decision.primary small{color:#ffffffc7}
.decision.primary .arrow{color:#fff}
.decision.quiet{background:transparent;border-color:var(--line)}
@media(max-width:680px){.decision{padding:14px 16px}.decision strong{font-size:15px}}

/* E-102: svar fra Homies medarbejdere i "Spørg om din sag" */
.chat-msg.staff{border-left:3px solid var(--accent,#0755ec)}.chat-msg .chat-from{display:block;font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;opacity:.7;margin-bottom:3px}
