/* Website application stylesheet */
:root{--ink:#06182b;--navy:#08233e;--deep:#041322;--blue:#176fd1;--blue-2:#278cf4;--aqua:#31d2c8;--lime:#a8e063;--paper:#f4f8fc;--surface:#fff;--line:#d7e3ee;--muted:#5f7183;--danger:#c7354f;--warning:#a86706;--shadow:0 18px 45px rgba(5,34,61,.14);--radius:18px;--focus:0 0 0 4px rgba(49,210,200,.22)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5}.skip-link{position:fixed;left:1rem;top:-4rem;z-index:1000;background:#fff;color:var(--ink);padding:.8rem 1rem;border-radius:9px}.skip-link:focus{top:1rem}.site-shell{min-height:100vh;overflow:hidden}.container{width:min(1180px,calc(100% - 2.5rem));margin:0 auto}.site-header{position:sticky;top:0;z-index:30;background:rgba(4,19,34,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(159,193,216,.2)}.header-row{height:82px;display:flex;align-items:center;justify-content:space-between;gap:1.2rem}.brand{display:inline-flex;align-items:center;min-width:180px}.brand img{width:184px;height:auto}.main-nav{display:flex;align-items:center;gap:.25rem}.main-nav a{color:#d8e7f0;text-decoration:none;padding:.55rem .75rem;border-radius:8px;font-size:.94rem;font-weight:650}.main-nav a:hover,.main-nav a:focus-visible{background:rgba(255,255,255,.1);color:#fff}.header-actions{display:flex;align-items:center;gap:.7rem}.phone-link{color:#fff;text-decoration:none;font-weight:700;white-space:nowrap}.phone-link i{color:var(--aqua);margin-right:.35rem}.menu-toggle{display:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;border:0;border-radius:10px;padding:.82rem 1.1rem;font:inherit;font-weight:800;line-height:1.1;cursor:pointer;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.button:hover{transform:translateY(-1px)}.button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--focus)}.button-primary,.button-secondary,.button-outline{border:1px solid transparent;background:var(--aqua);color:#04243a;box-shadow:0 6px 14px rgba(49,210,200,.25)}.button-primary:hover,.button-secondary:hover,.button-outline:hover{background:#5fe0d7}.button-dark{background:var(--navy);color:#fff}.button-danger{background:var(--danger);color:#fff}.button-sm{padding:.58rem .75rem;font-size:.88rem}/* First-screen top spacing is deliberately compact: 50% of the previous header-to-content offset. */
.hero{background:radial-gradient(circle at 76% 29%,rgba(49,210,200,.24),transparent 21%),radial-gradient(circle at 66% 64%,rgba(32,113,220,.36),transparent 29%),linear-gradient(125deg,#041628 0%,#0a3155 52%,#052440 100%);color:#fff;padding:clamp(2.4rem,4.5vw,4.15rem) 0 5.4rem;position:relative}.hero:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(175,225,249,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(175,225,249,.05) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to right,#000,transparent 80%);pointer-events:none}.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);align-items:center;gap:3.5rem}.eyebrow{display:inline-flex;align-items:center;gap:.45rem;color:var(--aqua);font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem}.hero h1{font-size:clamp(2.55rem,5.2vw,4.7rem);line-height:1.02;letter-spacing:-.045em;margin:.8rem 0 1.25rem;max-width:800px}.hero h1 em{font-style:normal;color:var(--aqua)}.hero-copy{max-width:600px;font-size:1.12rem;color:#d5e5ef;margin:0 0 1.8rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem}.trust-list{display:flex;flex-wrap:wrap;gap:1rem;margin:1.6rem 0 0;padding:0;list-style:none;color:#c9dce9;font-size:.9rem;font-weight:650}.trust-list i{color:var(--aqua);margin-right:.35rem}.device-art{position:relative;min-height:390px}.orbit{position:absolute;border:1px solid rgba(150,231,230,.24);border-radius:50%;inset:5% 2% 5% 2%;transform:rotate(-14deg)}.orbit:after{content:"";position:absolute;width:18px;height:18px;background:var(--aqua);box-shadow:0 0 25px var(--aqua);border-radius:50%;left:3%;top:47%}.laptop{position:absolute;width:76%;right:4%;top:13%;background:linear-gradient(150deg,#143d5c,#071421);border:9px solid #b7cfdb;border-bottom-width:12px;border-radius:16px 16px 8px 8px;box-shadow:0 35px 45px rgba(0,0,0,.34);transform:rotate(-8deg)}.laptop:before{content:"";display:block;padding-top:61%;background:linear-gradient(132deg,#0a1c31,#143d5b 55%,#0c7593);border-radius:7px}.laptop:after{content:"";position:absolute;left:-14%;right:-14%;bottom:-25px;height:21px;background:linear-gradient(#d5e2e8,#778f9f);border-radius:2px 2px 20px 20px}.screen-icons{position:absolute;inset:15% 10%;display:grid;grid-template-columns:repeat(3,1fr);place-items:center;color:#c7f8f0;font-size:2.45rem;text-shadow:0 5px 15px rgba(0,0,0,.3)}.phone-art{position:absolute;right:4%;bottom:9%;height:180px;width:95px;border:7px solid #d7e5e9;border-radius:17px;background:linear-gradient(150deg,#166dd1,#082546);box-shadow:0 24px 38px rgba(0,0,0,.32);transform:rotate(13deg)}.phone-art:before{content:"";position:absolute;width:33px;height:4px;border-radius:4px;background:#d7e5e9;top:8px;left:24px}.hero-card{position:absolute;left:-3%;bottom:1%;width:45%;padding:1rem 1.1rem;background:rgba(8,31,52,.86);border:1px solid rgba(159,220,237,.28);border-radius:14px;box-shadow:var(--shadow);backdrop-filter:blur(8px)}.hero-card b{display:block;font-size:1.18rem}.hero-card span{display:block;color:#b9d3e2;font-size:.86rem}.quick-grid{position:relative;z-index:3;margin-top:-47px;display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-radius:18px;box-shadow:var(--shadow);overflow:hidden}.quick-item{padding:1.25rem 1.2rem;border-right:1px solid var(--line);display:flex;align-items:center;gap:.85rem}.quick-item:last-child{border:0}.quick-item i{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#e7f7f5;color:#087b78;font-size:1.25rem}.quick-item b{display:block;font-size:.96rem}.quick-item span{display:block;color:var(--muted);font-size:.82rem}.section{padding:5.5rem 0}.section-alt{background:#fff}.section-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.1rem}.kicker{color:#147d81;text-transform:uppercase;font-size:.78rem;font-weight:850;letter-spacing:.1em;margin:0 0 .45rem}.section h2{font-size:clamp(2rem,3.5vw,3rem);letter-spacing:-.035em;line-height:1.08;margin:0}.section-lead{max-width:620px;color:var(--muted);margin:.8rem 0 0}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.service-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.55rem;box-shadow:0 8px 25px rgba(5,34,61,.05);position:relative;overflow:hidden}.service-card:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;background:linear-gradient(130deg,rgba(49,210,200,.11),transparent);right:-42px;top:-49px}.service-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--navy);color:var(--aqua);font-size:1.25rem;margin-bottom:1.05rem}.service-card h3{font-size:1.17rem;margin:0 0 .5rem}.service-card p{color:var(--muted);margin:0}.about-grid{display:grid;grid-template-columns:1fr .92fr;gap:3.6rem;align-items:center}.check-list{display:grid;gap:.8rem;padding:0;margin:1.55rem 0;list-style:none}.check-list li{display:flex;gap:.7rem}.check-list i{color:#148d83;margin-top:.2rem}.promise-card{padding:2.1rem;border-radius:22px;background:linear-gradient(150deg,#08233e,#0c4970);color:#fff;box-shadow:var(--shadow)}.promise-card h3{font-size:1.7rem;letter-spacing:-.03em;margin:.1rem 0 1.15rem}.promise-card p{color:#d0e2eb}.promise-card .stat-row{display:flex;gap:1.2rem;margin-top:1.5rem}.stat{flex:1;border-top:1px solid rgba(255,255,255,.2);padding-top:.9rem}.stat strong{display:block;color:var(--aqua);font-size:1.45rem}.stat span{display:block;color:#c5dce7;font-size:.85rem}.booking-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow);background:#fff}.booking-intro{padding:2.3rem;background:linear-gradient(160deg,#08233e,#0b3a60);color:#fff}.booking-intro h2{font-size:2.2rem}.booking-intro p{color:#d2e3ef}.price-box{margin:1.5rem 0;padding:1.1rem;border:1px solid rgba(155,220,231,.27);border-radius:14px;background:rgba(4,19,34,.25)}.price-box strong{display:block;color:var(--aqua);font-size:1.35rem}.price-box small{color:#c0d9e4}.visit-list{display:grid;gap:.8rem;margin-top:1.2rem}.visit{display:flex;gap:.7rem}.visit i{color:var(--aqua);margin-top:.2rem}.booking-form{padding:2.2rem}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.form-group{display:grid;gap:.38rem}.form-group.full{grid-column:1/-1}.form-group label{font-weight:750;font-size:.9rem}.form-group input,.form-group select,.form-group textarea{width:100%;border:1px solid #bdcdda;border-radius:9px;background:#fff;padding:.75rem .82rem;font:inherit;color:var(--ink)}.form-group textarea{min-height:105px;resize:vertical}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#42adae}.field-hint{font-size:.78rem;color:var(--muted)}.slot-wrap{border:1px solid var(--line);border-radius:12px;padding:.85rem;min-height:86px}.slots{display:flex;flex-wrap:wrap;gap:.55rem}.slot-button{border:1px solid var(--aqua);background:var(--aqua);color:#04243a;box-shadow:0 4px 10px rgba(49,210,200,.2);font:inherit;font-weight:800;padding:.52rem .65rem;border-radius:8px;cursor:pointer;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}.slot-button:hover,.slot-button[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:none}.slot-status{margin:0;color:var(--muted);font-size:.88rem}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.2rem}.form-message{font-size:.89rem;margin:0}.form-message.success{color:#087c58}.booking-success-message.success{font-size:1.2rem;font-weight:700;line-height:1.4}.form-message.error{color:#b02c42}.contact-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:3rem}.contact-cards{display:grid;gap:.85rem;margin-top:1.5rem}.contact-card{display:flex;gap:.85rem;padding:1rem;border:1px solid var(--line);border-radius:12px;background:#fff}.contact-card i{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#e8f7f6;color:#087b78}.contact-card b,.contact-card a{display:block;color:var(--ink);font-size:.95rem}.contact-card a{text-decoration:none}.contact-card span{display:block;color:var(--muted);font-size:.82rem}.contact-form{padding:1.6rem;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 8px 25px rgba(5,34,61,.05)}.site-footer{background:#041322;color:#d1e0e8;padding:3.5rem 0 1.5rem}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .9fr;gap:2.5rem}.footer-brand img{width:190px}.footer-brand p{color:#a9c0ce;max-width:360px}.footer-title{font-size:.88rem;text-transform:uppercase;letter-spacing:.1em;color:var(--aqua);font-weight:850;margin:.5rem 0 .85rem}.footer-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.footer-list a{color:#d1e0e8;text-decoration:none}.footer-bottom{border-top:1px solid rgba(210,234,245,.14);margin-top:2.3rem;padding-top:1.2rem;display:flex;justify-content:space-between;gap:1rem;font-size:.84rem;color:#a1b9c7}.footer-bottom a{color:#bdeee8;text-decoration:none}.modal{display:none;position:fixed;inset:0;z-index:100;background:rgba(3,17,29,.65);padding:1.25rem;align-items:center;justify-content:center}.modal.is-open{display:flex}.modal-dialog{width:min(620px,100%);max-height:calc(100vh - 2.5rem);overflow:auto;background:#fff;border-radius:18px;box-shadow:0 30px 70px rgba(0,0,0,.38);padding:1.55rem;position:relative}.modal-header{display:flex;align-items:start;justify-content:space-between;gap:1rem;margin-bottom:.8rem}.modal-header h2{font-size:1.45rem;margin:0}.modal-close{border:0;border-radius:9px;background:#edf3f7;color:var(--navy);width:36px;height:36px;font-size:1.05rem;cursor:pointer}.modal-body{color:var(--muted)}.notice{border:1px solid #b9e2dd;background:#edfcfa;color:#075c5e;border-radius:12px;padding:.9rem 1rem}.admin-body{background:#edf3f8}.admin-layout{min-height:100vh;display:grid;grid-template-columns:265px minmax(0,1fr)}.admin-sidebar{background:var(--deep);padding:1.55rem 1rem;color:#dbe8ef;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.admin-sidebar .brand img{width:185px}.admin-sidebar nav{display:grid;gap:.3rem;margin-top:2.2rem}.admin-nav-button{display:flex;align-items:center;gap:.75rem;border:0;background:transparent;color:#c5d5df;padding:.78rem .75rem;border-radius:9px;font:inherit;font-weight:650;text-align:left;cursor:pointer}.admin-nav-button:hover,.admin-nav-button[aria-selected="true"]{background:#0c3455;color:#fff}.admin-nav-button[aria-selected="true"] i{color:var(--aqua)}.sidebar-bottom{margin-top:auto;border-top:1px solid rgba(221,237,247,.12);padding-top:1rem}.admin-main{min-width:0}.admin-topbar{min-height:80px;background:#fff;border-bottom:1px solid var(--line);padding:0 clamp(1.25rem,4vw,3.2rem);display:flex;align-items:center;justify-content:space-between;gap:1rem}.admin-topbar h1{font-size:1.25rem;margin:0}.admin-topbar p{margin:.1rem 0 0;color:var(--muted);font-size:.87rem}.admin-topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:.7rem;flex-wrap:wrap}.admin-topbar-actions .button{white-space:nowrap}.admin-content{padding:clamp(1.3rem,4vw,3rem);max-width:1500px}.admin-section{display:none}.admin-section.is-active{display:block}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.metric{background:#fff;border:1px solid var(--line);padding:1.15rem;border-radius:15px}.metric .metric-icon{float:right;color:#087b78;background:#e8f7f6;padding:.6rem;border-radius:10px}.metric span{display:block;color:var(--muted);font-size:.82rem}.metric strong{display:block;font-size:1.75rem;letter-spacing:-.04em;margin-top:.25rem}.admin-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.35rem;margin-top:1.25rem}.admin-card h2{font-size:1.18rem;margin:0 0 .3rem}.admin-card .subtext{margin:0 0 1.15rem;color:var(--muted);font-size:.9rem}.split-card{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.data-table{width:100%;border-collapse:collapse;font-size:.87rem;min-width:780px}.data-table th,.data-table td{padding:.78rem .85rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.data-table th{background:#f6f9fb;color:#40566b;white-space:nowrap;position:relative;user-select:none}.data-table th button{border:0;background:transparent;padding:0;font:inherit;font-weight:800;color:inherit;cursor:pointer}.data-table tr:last-child td{border-bottom:0}.col-resizer{position:absolute;right:-3px;top:0;height:100%;width:6px;cursor:col-resize}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:.22rem .55rem;font-size:.75rem;font-weight:800}.badge-pending{background:#fff0cf;color:#885a00}.badge-confirmed,.badge-read{background:#dff7f3;color:#066d69}.badge-cancelled,.badge-unread{background:#fde2e8;color:#a31d3c}.badge-declined{background:#e8edf2;color:#536575}.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.admin-form-grid .full{grid-column:1/-1}.form-separator{border:0;border-top:1px solid var(--line);margin:1.4rem 0}.form-check{display:flex;align-items:center;gap:.55rem;font-size:.93rem}.form-check input{width:18px;height:18px}.admin-action-row{display:flex;justify-content:flex-end;gap:.7rem;margin-top:1.25rem}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top right,rgba(49,210,200,.22),transparent 22%),linear-gradient(135deg,#041322,#0b3d62);padding:1.2rem}.login-card{width:min(470px,100%);background:#fff;border-radius:20px;padding:2rem;box-shadow:0 30px 70px rgba(0,0,0,.28)}.login-card .brand-dark img{width:210px;filter:brightness(.25) saturate(1.6)}.login-card h1{font-size:1.7rem;margin:1.65rem 0 .35rem}.login-card p{color:var(--muted);margin:.2rem 0 1.4rem}.login-links{display:flex;justify-content:space-between;gap:1rem;margin-top:1rem;font-size:.87rem}.login-links a{color:#0b6686}.install-layout{min-height:100vh;background:#eef5f8;padding:3rem 0}.install-card{width:min(860px,calc(100% - 2.2rem));margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:20px;padding:2rem;box-shadow:var(--shadow)}.install-card .brand-dark img{width:220px;filter:brightness(.25) saturate(1.6)}.install-steps{display:flex;gap:.5rem;list-style:none;padding:0;margin:1.35rem 0}.install-steps li{flex:1;font-size:.8rem;border-radius:999px;background:#e9f1f5;color:#587082;padding:.45rem .65rem;text-align:center}.install-steps li.active{background:#0b4466;color:#fff}.diagnostic-list{display:grid;gap:.55rem;padding:0;list-style:none}.diagnostic-list li{padding:.68rem .8rem;border-radius:9px;background:#f6f9fb}.diagnostic-list .ok{border-left:4px solid #168b78}.diagnostic-list .fail{border-left:4px solid var(--danger)}.hidden{display:none!important}.empty-state{padding:2rem;text-align:center;color:var(--muted)}.toast-stack{position:fixed;right:1rem;bottom:1rem;z-index:150;display:grid;gap:.65rem}.toast{max-width:360px;padding:.9rem 1rem;background:#fff;border-radius:10px;box-shadow:var(--shadow);border-left:4px solid #168b78;font-size:.9rem}.toast.error{border-color:var(--danger)}@media(max-width:1000px){.header-actions .phone-link{display:none}.hero-grid,.about-grid,.booking-panel,.contact-grid{grid-template-columns:1fr}.device-art{max-width:560px;width:100%;margin:0 auto}.quick-grid{grid-template-columns:repeat(2,1fr)}.quick-item:nth-child(2){border-right:0}.quick-item:nth-child(-n+2){border-bottom:1px solid var(--line)}.service-grid{grid-template-columns:repeat(2,1fr)}.admin-layout{grid-template-columns:1fr}.admin-sidebar{position:static;height:auto;display:block}.admin-sidebar nav{grid-template-columns:repeat(3,1fr);margin-top:1rem}.sidebar-bottom{margin-top:1rem}.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.container{width:min(100% - 1.45rem,1180px)}.site-header{position:relative}.header-row{height:72px}.brand img{width:150px}.menu-toggle{display:inline-grid;place-items:center;width:41px;height:41px;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:9px}.main-nav{position:absolute;left:0;right:0;top:72px;background:#061c31;padding:.7rem;display:none;box-shadow:0 16px 30px rgba(0,0,0,.25);flex-direction:column;align-items:stretch}.main-nav.is-open{display:flex}.main-nav a{padding:.8rem}.hero{padding-top:2rem}.hero h1{font-size:2.75rem}.device-art{min-height:300px}.hero-card{left:0;width:55%;bottom:0}.quick-grid{margin-top:-22px;grid-template-columns:1fr}.quick-item{border-right:0;border-bottom:1px solid var(--line)}.quick-item:nth-child(2){border-bottom:1px solid var(--line)}.quick-item:last-child{border-bottom:0}.section{padding:3.8rem 0}.section-head{display:block}.service-grid,.form-grid,.footer-grid,.split-card,.admin-form-grid{grid-template-columns:1fr}.form-group.full,.admin-form-grid .full{grid-column:auto}.section-head .button{margin-top:1rem}.form-actions{align-items:stretch;flex-direction:column}.footer-bottom{display:block}.footer-bottom span,.footer-bottom a{display:block;margin:.25rem 0}.admin-sidebar nav{grid-template-columns:repeat(2,1fr)}.admin-topbar{padding:1rem 1.15rem;align-items:flex-start;flex-direction:column}.admin-topbar-actions{width:100%;justify-content:stretch}.admin-topbar-actions .button{flex:1;justify-content:center;padding:.6rem}.metrics{grid-template-columns:1fr 1fr}.metric strong{font-size:1.35rem}.admin-content{padding:1.1rem}.login-card,.install-card{padding:1.4rem}.modal{padding:.7rem}.modal-dialog{padding:1.2rem}.phone-link{display:none}.hide-mobile{display:none}}

/* Public subpages */
.main-nav a[aria-current="page"]{background:rgba(49,210,200,.17);color:#fff}
.page-hero{position:relative;overflow:hidden;background:radial-gradient(circle at 76% 26%,rgba(49,210,200,.18),transparent 20%),linear-gradient(125deg,#041628 0%,#0a3155 58%,#052440 100%);color:#fff;padding:clamp(1.75rem,3.5vw,2.9rem) 0 clamp(3.5rem,7vw,5.8rem)}.page-hero:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(175,225,249,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(175,225,249,.06) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to right,#000,transparent 80%);pointer-events:none}.page-hero-grid{grid-template-columns:minmax(0,1fr);gap:0}.page-hero-inner{position:relative;z-index:1;width:100%;max-width:none}.page-hero h1{font-size:clamp(2.4rem,5vw,4.25rem);line-height:1.04;letter-spacing:-.045em;margin:.7rem 0 1rem}.page-hero h1 em{font-style:normal;color:var(--aqua)}.page-hero p:not(.eyebrow){max-width:700px;color:#d5e5ef;font-size:1.08rem;margin:0}.home-route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}.home-route-card{display:flex;min-height:260px;flex-direction:column;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.45rem;text-decoration:none;color:var(--ink);box-shadow:0 8px 22px rgba(5,34,61,.05);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.home-route-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#8edbd5}.home-route-card>i{display:grid;place-items:center;width:50px;height:50px;border-radius:14px;background:#e8f7f6;color:#087b78;font-size:1.35rem;margin-bottom:1.35rem}.home-route-card>span{font-size:.77rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:#0b6686}.home-route-card strong{font-size:1.3rem;line-height:1.22;margin:.5rem 0 auto}.home-route-card small{font-weight:750;color:#0b6686;margin-top:1.5rem}.home-route-card small i{margin-left:.35rem}.cta-band{display:flex;align-items:center;justify-content:space-between;gap:2rem}.cta-band h2{margin:.25rem 0 .65rem;font-size:clamp(1.85rem,3vw,2.6rem);letter-spacing:-.035em}.cta-band p:not(.kicker){max-width:700px;margin:0;color:var(--muted)}.cta-actions{display:flex;gap:.7rem;flex-wrap:wrap}.split-feature{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:3rem;align-items:center}.plain-list{list-style:none;margin:1.25rem 0;padding:0;display:grid;gap:.7rem}.plain-list li{display:flex;gap:.65rem;align-items:flex-start}.plain-list i{color:#0c908a;margin-top:.2rem}.process-grid{display:grid;gap:1.6rem}.process-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;list-style:none;margin:0;padding:0}.process-list li{display:grid;gap:1rem;padding:1.4rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.process-list span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--navy);color:var(--aqua);font-size:.86rem;font-weight:850}.process-list h3{font-size:1.1rem;margin:0 0 .35rem}.process-list p{color:var(--muted);font-size:.93rem;margin:0}
@media(max-width:1000px){.home-route-grid,.process-list{grid-template-columns:1fr}.split-feature{grid-template-columns:1fr}.home-route-card{min-height:0}.cta-band{display:grid;grid-template-columns:1fr;gap:1.2rem}}
@media(max-width:700px){.page-hero{padding:1.65rem 0 3.3rem}.page-hero h1{font-size:2.4rem}.cta-actions{width:100%}.cta-actions .button{flex:1}.home-route-grid{gap:.9rem}}

/* Central content management */
.content-editor{max-width:1220px}.content-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem}.content-editor-head h2{margin-bottom:.3rem}.content-token-note{display:flex;align-items:flex-start;gap:.65rem;margin:1.2rem 0;padding:.85rem 1rem;border:1px solid #b9ddeb;border-radius:12px;background:#f0f8fb;color:#31586d;font-size:.9rem;line-height:1.5}.content-token-note>i{color:#0b6686;margin-top:.22rem}.content-token-note code{padding:.08rem .3rem;border-radius:4px;background:#dcecf3;color:#17445e;font-size:.88em}.content-editor-tabs{display:flex;gap:.55rem;overflow:auto;margin:1.35rem 0 1.1rem;padding-bottom:.2rem;border-bottom:1px solid var(--line)}.content-editor-tab{flex:0 0 auto;border:1px solid var(--line);border-radius:9px 9px 0 0;background:#f7fafb;color:#476173;padding:.7rem .85rem;font:inherit;font-size:.87rem;font-weight:800;cursor:pointer}.content-editor-tab i{margin-right:.45rem}.content-editor-tab:hover,.content-editor-tab.is-active{border-color:#74cec8;background:#e8f7f6;color:#056a68}.content-editor-pane{display:none}.content-editor-pane.is-active{display:block}.content-pane-intro{margin:0 0 1rem}.content-pane-intro h3{margin:0 0 .25rem;font-size:1.05rem}.content-pane-intro p{margin:0;color:var(--muted);font-size:.9rem}.content-form-grid{align-items:start}.content-form-grid textarea{min-height:90px;resize:vertical}.content-save-row{position:sticky;bottom:1rem;padding:.8rem 0 0;background:linear-gradient(to top,#fff 78%,rgba(255,255,255,0))}.content-save-row .button{box-shadow:0 9px 20px rgba(8,123,120,.22)}
@media(max-width:700px){.content-editor-head{display:block}.content-editor-head .button{margin-top:.85rem}.content-editor-tabs{margin-left:-.2rem;margin-right:-.2rem}.content-editor-tab{font-size:.8rem;padding:.65rem .75rem}.content-token-note{font-size:.84rem}.content-save-row{bottom:.35rem}}




/* Navigation order editor */
.navigation-order-editor{margin-top:.15rem}.navigation-order-editor>.field-hint{display:block;margin:.35rem 0 .75rem}.navigation-order-list{display:grid;gap:.55rem;margin:0;padding:0;list-style:none}.navigation-order-item{display:flex;align-items:center;gap:.8rem;min-height:52px;padding:.55rem .6rem .55rem .8rem;border:1px solid var(--line);border-radius:10px;background:#f8fbfc;box-shadow:0 2px 7px rgba(5,34,61,.035);cursor:grab}.navigation-order-item.is-dragging{opacity:.48}.navigation-order-item:focus-within{border-color:#74cec8;box-shadow:0 0 0 3px rgba(49,210,200,.16)}.navigation-order-grip{display:grid;place-items:center;width:1.1rem;color:#6d8392;cursor:grab}.navigation-order-name{min-width:0;flex:1;font-weight:800;color:var(--ink)}.navigation-order-actions{display:flex;gap:.4rem;flex:0 0 auto}.navigation-order-actions .button{display:grid;place-items:center;min-width:36px;padding:.48rem .55rem;font-size:1rem;line-height:1}.navigation-order-actions .button:disabled{opacity:.45;cursor:not-allowed}.navigation-order-arrow{display:block;font-size:1rem;font-weight:800;line-height:1;color:currentColor}.navigation-order-actions .button:disabled .navigation-order-arrow{opacity:.85}@media(max-width:700px){.navigation-order-item{gap:.55rem;padding:.5rem}.navigation-order-actions .button{min-width:40px;padding:.55rem}.navigation-order-grip{display:none}}

/* Dynamic company wordmark. The mark is a static PNG; the name is rendered
   from the validated Company settings so no old name remains baked into art. */
.brand{min-width:0;text-decoration:none}.header-row .brand{flex:0 1 250px}.brand-logo{display:inline-flex;align-items:center;gap:.6rem;min-width:0;max-width:100%}.brand-logo__mark{display:block;width:42px!important;height:42px!important;flex:0 0 42px;filter:none!important}.brand-logo__name{display:block;min-width:0;max-width:min(19ch,22vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;font-size:clamp(1.02rem,1.65vw,1.35rem);font-weight:900;letter-spacing:.045em;line-height:1.05}.brand-logo__name-main{color:inherit}.brand-logo__name-accent{color:var(--aqua)}.footer-brand .brand-logo{margin-bottom:.8rem}.footer-brand .brand-logo__name{max-width:28ch;font-size:1.34rem}.admin-sidebar .brand-logo{padding:.1rem .25rem}.admin-sidebar .brand-logo__name{max-width:16ch;font-size:1.22rem}.brand-logo--auth .brand-logo__name{max-width:30ch;color:var(--navy);font-size:1.45rem}.login-card .brand-dark .brand-logo__mark,.install-card .brand-dark .brand-logo__mark{filter:none!important;width:46px!important;height:46px!important;flex-basis:46px}.login-card .brand-dark .brand-logo,.install-card .brand-dark .brand-logo{gap:.7rem}.login-card .brand-dark .brand-logo__name,.install-card .brand-dark .brand-logo__name{color:var(--navy)}
@media(max-width:1024px){.header-row .brand{flex-basis:210px}.brand-logo__name{max-width:13ch}.admin-sidebar .brand-logo__name{max-width:21ch}}
@media(max-width:700px){.header-row .brand{flex:0 1 auto}.brand-logo{gap:.45rem}.brand-logo__mark{width:35px!important;height:35px!important;flex-basis:35px}.header-row .brand-logo__name{font-size:1rem;max-width:12ch}.footer-brand .brand-logo__name{max-width:23ch}.brand-logo--auth .brand-logo__name{font-size:1.22rem;max-width:22ch}}


/* Contact message details and reply workflow */
.modal-dialog--message{width:min(1066px,100%);background:var(--paper)}.modal-kicker{margin:0 0 .2rem;color:#0b6686;font-size:.75rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.message-modal-status-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1.1rem;color:var(--muted);font-size:.88rem}.message-detail-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:0 0 1.1rem}.message-detail-list>div{min-width:0;padding:.8rem .9rem;border:1px solid var(--line);border-radius:10px;background:#f8fbfc}.message-detail-list dt{margin:0 0 .25rem;color:#5f7183;font-size:.74rem;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.message-detail-list dd{margin:0;min-width:0;overflow-wrap:anywhere;color:var(--ink);font-size:.92rem}.message-original,.message-reply-history{margin:1.1rem 0;padding:1rem 1.05rem;border:1px solid var(--line);border-radius:12px;background:#fff}.message-original h3,.message-reply-history h3,.modal-dialog--message form h3{margin:0 0 .65rem;font-size:1rem}.message-original p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.62;color:#273f53}.message-replies{display:grid;gap:.75rem}.message-reply-entry{padding:.85rem .9rem;border-radius:10px;background:#f7fafb;border-left:4px solid #42adae}.message-reply-entry.is-failed{border-left-color:var(--danger);background:#fff6f7}.message-reply-entry.is-sending{border-left-color:#d8a229;background:#fffaf0}.message-reply-entry-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.45rem}.message-reply-entry h4{margin:0;font-size:.94rem}.message-reply-entry small{display:block;color:var(--muted);font-size:.78rem;text-align:right}.message-reply-entry p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:#30495d;font-size:.91rem;line-height:1.55}.message-reply-empty{margin:0;color:var(--muted);font-size:.9rem}.booking-task-preview{display:-webkit-box;width:100%;max-width:100%;overflow:hidden;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.45}.message-preview{display:-webkit-box;max-width:480px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.45}.message-actions{white-space:nowrap}.message-actions .button+.button{margin-left:.35rem}@media(max-width:700px){.message-detail-list{grid-template-columns:1fr}.message-modal-status-row{align-items:flex-start;flex-direction:column}.message-reply-entry-head{display:block}.message-reply-entry small{text-align:left;margin-top:.3rem}.message-actions .button{margin:.15rem 0}.message-actions .button+.button{margin-left:0}}

/* Contact message rows open directly from the table. */
.message-row{cursor:pointer;transition:background-color .16s ease}.message-row:hover td{background:#f0fbfa}.message-row:focus-visible{outline:2px solid #0b8e8a;outline-offset:-2px}.message-row:focus-visible td{background:#e8f7f6}

/* Public return-link conversation modal. */
.modal-dialog--thread{width:min(900px,100%);background:var(--paper)}
.contact-thread-history{margin:1.1rem 0;padding:1rem 1.05rem;border:1px solid var(--line);border-radius:12px;background:#fff}
.contact-thread-history h3{margin:0 0 .75rem;font-size:1rem}
.contact-thread-entries{display:grid;gap:.75rem;max-height:min(46vh,520px);overflow:auto;padding-right:.2rem}
.contact-thread-loading{margin:0;color:var(--muted);font-size:.92rem}
.contact-thread-loading.is-error{color:var(--danger)}
.contact-thread-entry{padding:.88rem .95rem;border-radius:11px;border-left:4px solid #42adae;background:#f5fbfb}
.contact-thread-entry.is-business{border-left-color:#176fd1;background:#f1f7ff}
.contact-thread-entry-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.45rem}
.contact-thread-entry h4{margin:0;font-size:.94rem;color:var(--ink)}
.contact-thread-entry small{display:block;color:var(--muted);font-size:.78rem;text-align:right}
.contact-thread-entry p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:#30495d;font-size:.92rem;line-height:1.58}
.modal-dialog--thread input[readonly]{background:#f5f8fa;color:#40566b}
.message-reply-entry.is-customer{border-left-color:#176fd1;background:#f1f7ff}
@media(max-width:700px){.contact-thread-entry-head{display:block}.contact-thread-entry small{text-align:left;margin-top:.3rem}.contact-thread-entries{max-height:40vh}}

/* Contact-message history disclosure and safe thread deletion. */
.message-reply-history{padding:0}.message-reply-history>summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:3.3rem;padding:.88rem 1.05rem;cursor:pointer;font-size:1rem;font-weight:800;color:var(--ink);list-style:none}.message-reply-history>summary::-webkit-details-marker{display:none}.message-reply-history>summary::after{content:'›';display:inline-block;color:#476173;font-size:1.3rem;line-height:1;transition:transform .16s ease}.message-reply-history[open]>summary{border-bottom:1px solid var(--line)}.message-reply-history[open]>summary::after{transform:rotate(90deg)}.message-reply-history>summary:focus-visible{outline:none;box-shadow:var(--focus);border-radius:10px}.message-history-count{margin-left:auto;color:var(--muted);font-size:.82rem;font-weight:700}.message-reply-history .message-replies{padding:0 1.05rem 1.05rem}.message-reply-actions{align-items:center;justify-content:space-between}.message-reply-actions__primary{display:flex;align-items:center;justify-content:flex-end;gap:.7rem}.modal--confirm{z-index:210}.modal-dialog--confirm{width:min(540px,100%)}.message-delete-confirm-actions{margin-top:1.3rem}.message-delete-confirm-actions .button-danger{min-width:152px}@media(max-width:700px){.message-reply-actions{align-items:stretch;flex-direction:column}.message-reply-actions__primary{width:100%;align-items:stretch;flex-direction:column}.message-reply-actions .button,.message-reply-actions__primary .button,.message-delete-confirm-actions .button{width:100%}}

/* SMTP diagnostics and private runtime log. */
.optional-label{color:var(--muted);font-size:.82em;font-weight:600}.mail-diagnostics-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.mail-diagnostics-head h2{margin-bottom:.35rem}.mail-diagnostics-head .subtext{margin:0}.mail-diagnostics-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.55rem}.mail-diagnostics-head .button{flex:0 0 auto}.mail-diagnostics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:1.15rem 0}.mail-diagnostics-grid>div{min-width:0;padding:.85rem .9rem;border:1px solid var(--line);border-radius:10px;background:#f8fbfc}.mail-diagnostics-grid>div.full{grid-column:1/-1}.mail-diagnostics-grid dt{margin:0 0 .3rem;color:#5f7183;font-size:.74rem;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.mail-diagnostics-grid dd{margin:0;overflow-wrap:anywhere;color:var(--ink);font-size:.92rem;line-height:1.5}.mail-runtime-log{display:grid;gap:.7rem;max-height:430px;overflow:auto;padding-right:.15rem}.mail-runtime-log .subtext{margin:0}.mail-log-entry{padding:.85rem .9rem;border:1px solid var(--line);border-left:4px solid #42adae;border-radius:10px;background:#fff}.mail-log-entry.is-warning{border-left-color:#d8a229;background:#fffaf0}.mail-log-entry.is-error,.mail-log-entry.is-critical{border-left-color:var(--danger);background:#fff6f7}.mail-log-entry-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin:0 0 .42rem}.mail-log-entry strong{font-size:.9rem;color:var(--ink)}.mail-log-entry time{color:var(--muted);font-size:.78rem;text-align:right}.mail-log-entry p{margin:.35rem 0 0;white-space:pre-wrap;overflow-wrap:anywhere;color:#40566b;font-size:.87rem;line-height:1.48}.mail-log-entry details{margin-top:.55rem}.mail-log-entry summary{cursor:pointer;color:#0b6686;font-size:.84rem;font-weight:800}.mail-log-entry pre{margin:.45rem 0 0;padding:.65rem;border-radius:7px;background:#f6f8fa;white-space:pre-wrap;overflow-wrap:anywhere;color:#40566b;font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace}@media(max-width:850px){.mail-diagnostics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mail-diagnostics-head{flex-direction:column}.mail-diagnostics-actions{width:100%;align-items:stretch;flex-direction:column}.mail-diagnostics-head .button{width:100%}}@media(max-width:520px){.mail-diagnostics-grid{grid-template-columns:1fr}.mail-diagnostics-grid>div.full{grid-column:auto}.mail-log-entry-head{display:block}.mail-log-entry time{display:block;margin-top:.25rem;text-align:left}}

/* Shared send-message dispatch feedback: no external media or tracking assets. */
.send-message-button{position:relative;isolation:isolate;overflow:hidden}
.send-message-button .send-plane-icon{display:inline-block;transform-origin:50% 50%;will-change:transform,opacity}
.send-message-button::after{content:"";position:absolute;z-index:-1;top:50%;left:18%;width:58%;height:2px;border-radius:999px;background:currentColor;opacity:0;transform:translateY(-50%) scaleX(.25);transform-origin:left center}
.send-message-button.is-sending .send-plane-icon{animation:send-plane-dispatch .78s cubic-bezier(.18,.82,.28,1) both}
.send-message-button.is-sending::after{animation:send-plane-trail .78s ease-out both}
@keyframes send-plane-dispatch{0%{transform:translate(0,0) rotate(0);opacity:1}28%{transform:translate(4px,-3px) rotate(-10deg)}100%{transform:translate(76px,-32px) rotate(-18deg);opacity:0}}
@keyframes send-plane-trail{0%,18%{opacity:0;transform:translateY(-50%) scaleX(.15)}42%{opacity:.55;transform:translateY(-50%) scaleX(.9)}100%{opacity:0;transform:translateY(-50%) scaleX(1.18)}}
@media(prefers-reduced-motion:reduce){.send-message-button.is-sending .send-plane-icon,.send-message-button.is-sending::after{animation:none}}

/* Contact: keep the action row anchored to the card bottom on desktop.
   The message field grows into the available height beside the contact details. */
@media (min-width:701px){
  .contact-grid{align-items:stretch}
  .contact-form{display:flex;flex-direction:column;min-height:100%}
  .contact-form .form-grid{flex:1 1 auto;grid-template-rows:auto auto minmax(0,1fr)}
  .contact-form .contact-message-group{min-height:0;grid-template-rows:auto minmax(0,1fr)}
  .contact-form .contact-message-group textarea{height:100%;min-height:0;resize:none}
  .contact-form .form-actions{flex:0 0 auto}
}

/* Administration table refresh controls. */
.admin-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.admin-card-heading .subtext{margin:0}.admin-card-heading .refresh-button{flex:0 0 auto}.refresh-button{position:relative}.refresh-icon{display:inline-block;transform-origin:50% 50%}.refresh-button.is-refreshing .refresh-icon{animation:refresh-symbol .78s linear infinite}@keyframes refresh-symbol{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.refresh-button.is-refreshing .refresh-icon{animation:none}}@media(max-width:700px){.admin-card-heading{align-items:stretch;flex-direction:column}.admin-card-heading .refresh-button{width:100%}}

/* Mail settings: grouped by the decisions an administrator actually makes. */
.mail-setup-card{display:grid;gap:1.15rem}.mail-setup-head,.mail-test-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.mail-setup-head h2,.mail-test-head h2{margin:.12rem 0 .38rem}.mail-setup-head .subtext,.mail-test-head .subtext{margin:0}.mail-setup-status{display:inline-flex;align-items:center;gap:.45rem;flex:0 0 auto;margin-top:.2rem;padding:.48rem .68rem;border:1px solid var(--line);border-radius:999px;font-size:.82rem;font-weight:800;white-space:nowrap}.mail-setup-status.is-ready{border-color:#9ad7c5;background:#edf9f4;color:#126246}.mail-setup-status.is-attention{border-color:#edcf8b;background:#fff8e8;color:#815c00}.mail-setup-group{min-inline-size:0;margin:0;padding:1rem 1.05rem 1.1rem;border:1px solid var(--line);border-radius:14px;background:#fbfdfd}.mail-setup-group legend{padding:0 .4rem;color:var(--ink);font-size:1rem;font-weight:850}.mail-setup-group>.field-hint,.mail-provider-note{display:block;margin:0 0 .9rem;color:#587084;font-size:.88rem;line-height:1.5}.mail-provider-note{min-height:2.7rem;padding:.7rem .8rem;border:1px solid #c8e9e6;border-radius:10px;background:#f0fbfa;color:#275c64}.mail-advanced-settings{border:1px solid var(--line);border-radius:12px;background:#fff}.mail-advanced-settings>summary{display:flex;align-items:center;min-height:3.25rem;padding:.78rem 1rem;cursor:pointer;color:var(--ink);font-weight:850;list-style:none}.mail-advanced-settings>summary::-webkit-details-marker{display:none}.mail-advanced-settings>summary::after{content:'›';margin-left:auto;color:#476173;font-size:1.35rem;line-height:1;transition:transform .16s ease}.mail-advanced-settings[open]>summary{border-bottom:1px solid var(--line)}.mail-advanced-settings[open]>summary::after{transform:rotate(90deg)}.mail-advanced-settings>.admin-form-grid{padding:1rem}.mail-test-card{display:grid;gap:1rem}.mail-test-head>i{display:grid;flex:0 0 auto;place-items:center;width:2.55rem;height:2.55rem;border-radius:11px;background:#eefaf8;color:#0b8e8a;font-size:1.05rem}.booking-row{cursor:pointer;transition:background-color .16s ease}.booking-row:hover td{background:#f0fbfa}.booking-row:focus-visible{outline:2px solid #0b8e8a;outline-offset:-2px}.booking-row:focus-visible td{background:#e8f7f6}.modal-dialog--booking{width:min(880px,100%)}.booking-detail-list>div:last-child{grid-column:1/-1}.booking-modal-actions{align-items:center;justify-content:space-between}.booking-modal-actions>.message-reply-actions__primary{display:flex;align-items:center;gap:.7rem}.booking-modal-actions .button[disabled]{opacity:.6;cursor:not-allowed}.booking-modal-actions .button[hidden]{display:none!important}@media(max-width:700px){.mail-setup-head,.mail-test-head{align-items:stretch;flex-direction:column}.mail-setup-status{align-self:flex-start}.mail-advanced-settings>.admin-form-grid{padding:.9rem}.booking-modal-actions,.booking-modal-actions>.message-reply-actions__primary{align-items:stretch;flex-direction:column}.booking-modal-actions .button{width:100%}.booking-detail-list>div:last-child{grid-column:auto}}

/* Shared modal scroll lock is toggled by the modal controller; no inline page styles. */
body.modal-open{overflow:hidden}
.audit-row{cursor:pointer;transition:background-color .16s ease}.audit-row:hover td{background:#f0fbfa}.audit-row:focus-visible{outline:2px solid #0b8e8a;outline-offset:-2px}.audit-row:focus-visible td{background:#e8f7f6}.modal-dialog--audit{width:min(820px,100%)}.audit-modal-context{max-height:min(46vh,460px);margin:0;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font:500 .82rem/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ink)}
/* Administration login: primary action occupies the complete card width; secondary actions intentionally share one link treatment. */
.login-card .login-submit{width:100%}.login-card>.form-group+.form-group{margin-top:.9rem}.login-card [data-login-otp-group][hidden]{display:none!important}
.login-links a,.login-links .login-link{appearance:none;background:transparent;border:0;border-radius:0;box-shadow:none;color:#0b6686;cursor:pointer;display:inline;font:inherit;line-height:inherit;margin:0;padding:0;text-decoration:underline;text-underline-offset:.12em;transition:color .18s ease}
.login-links a:hover,.login-links .login-link:hover{color:#064c66}
.login-links a:focus-visible,.login-links .login-link:focus-visible{border-radius:2px;box-shadow:var(--focus);outline:none}

/* Administration: a single contextual refresh action and tables that remain within their cards. */
.admin-topbar-actions .refresh-button[hidden]{display:none!important}
.table-wrap--fit{max-width:100%;overflow-x:hidden;overflow-y:auto}
.data-table--fit{width:100%;max-width:100%;min-width:0;table-layout:fixed}
.data-table--fit th,.data-table--fit td{min-width:0;overflow-wrap:anywhere;word-break:normal}
.data-table--fit th button{max-width:100%;text-align:left;white-space:normal}
.data-table--fit .message-preview{max-width:none}
.data-table--fit .form-actions{min-width:0;justify-content:flex-start;flex-wrap:wrap;gap:.35rem;margin-top:0}
.data-table--fit .form-actions .button{min-width:0;max-width:100%;flex:1 1 4.5rem;white-space:normal}
.data-table--fit .message-actions{white-space:normal}
.data-table--fit .message-actions .button{max-width:100%;white-space:normal}
@media(max-width:700px){.data-table--fit{font-size:.75rem}.data-table--fit th,.data-table--fit td{padding:.55rem .42rem}.data-table--fit .form-actions .button{padding:.45rem .48rem;font-size:.75rem}}

/* Booking overview: each lifecycle table can be expanded independently. */
.booking-table-card .admin-card-heading--collapsible{align-items:flex-start}.booking-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;flex:0 0 auto}
.booking-section-toggle{align-items:center;aspect-ratio:1;display:inline-flex;flex:0 0 2.75rem;justify-content:center;min-inline-size:2.75rem;padding:.55rem;white-space:nowrap}
.booking-section-toggle i{width:1rem;text-align:center}
.booking-table-content{margin-top:1.1rem;min-width:0}
.booking-table-content[hidden]{display:none!important}
@media(max-width:700px){.booking-table-card .admin-card-heading--collapsible{align-items:stretch}.booking-heading-actions{width:100%;justify-content:flex-end}.booking-section-toggle{align-self:flex-end}.booking-table-content{margin-top:.9rem}}

/* Booking lifecycle: open work, confirmed appointments and completed history stay separate. */
.badge-completed{background:#e4eef8;color:#285777}
.confirmed-bookings-card,.completed-bookings-card{margin-top:1.25rem}
.confirmed-bookings-group th,.completed-bookings-group th{padding:.62rem .85rem;background:#edf4f8;color:#31536b;font-size:.79rem;font-weight:850;letter-spacing:.055em;text-transform:uppercase}
.confirmed-bookings-table .confirmed-bookings-group th,.completed-bookings-table .completed-bookings-group th{white-space:normal}
.booking-action-buttons{min-width:0;flex-wrap:wrap}
.booking-action-buttons .button[hidden]{display:none!important}
.booking-decision-description{margin-bottom:1rem}
#booking-decision-message{min-height:8.4rem;resize:vertical}
@media(max-width:700px){.confirmed-bookings-group th,.completed-bookings-group th{padding:.55rem .42rem}.booking-action-buttons{width:100%}.booking-action-buttons .button{flex:1 1 5.25rem}}

/* Booking tables: all available actions remain in one row. The Action column is
   intentionally allocated a larger fit weight in admin.php; this rule keeps the
   controls compact without creating horizontal scrolling or word-broken labels. */
.data-table--fit .booking-action-buttons{
  display:flex;
  width:100%;
  min-width:0;
  flex-wrap:nowrap;
  justify-content:stretch;
  gap:.25rem;
}
.data-table--fit .booking-action-buttons .button{
  flex:1 1 0;
  min-width:0;
  max-width:none;
  min-inline-size:0;
  justify-content:center;
  gap:.32rem;
  padding:.48rem .4rem;
  font-size:.78rem;
  line-height:1.12;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.data-table--fit .booking-action-buttons .button > i{flex:0 0 auto}
.data-table--fit .booking-action-buttons .button > span{min-width:0;overflow:hidden;text-overflow:ellipsis}
@media(max-width:700px){
  .data-table--fit .booking-action-buttons{gap:.18rem}
  .data-table--fit .booking-action-buttons .button{padding:.45rem .32rem;font-size:.75rem}
}



/* Booking availability guidance and calendar reservations. */
.booking-slot-guidance{display:flex;align-items:flex-start;gap:.42rem;margin-top:-.05rem;line-height:1.45}
.booking-slot-guidance i{flex:0 0 auto;margin-top:.14rem;color:#0b8e8a}
.booking-date-group{align-self:start}
.booking-date-group .booking-date-input{height:auto;min-height:0}
.booking-settings-form #available-times{min-height:10.4rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;line-height:1.55;resize:vertical}
.booking-weekday-options{justify-content:flex-start;flex-wrap:wrap;margin-top:0}
.booking-reservations{min-inline-size:0;margin:1.25rem 0 0;padding:1rem 1.05rem 1.1rem;border:1px solid var(--line);border-radius:14px;background:#fbfdfd}
.booking-reservations legend{padding:0 .4rem;color:var(--ink);font-size:1rem;font-weight:850}
.booking-reservations>.field-hint{display:block;margin:0 0 .95rem;line-height:1.5}
.booking-reservations-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.booking-reservation-card{display:grid;gap:.95rem;min-width:0;padding:1rem;border:1px solid var(--line);border-radius:12px;background:#fff}
.booking-reservation-card h3{margin:0 0 .3rem;font-size:.98rem}
.booking-reservation-card p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.5}
.booking-reservation-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.7rem}
.booking-reservation-controls--slot{grid-template-columns:minmax(10rem,.82fr) minmax(18rem,2fr) auto}
.booking-reservation-controls .form-group{min-width:0}
.booking-reservation-controls .button{min-height:42px;margin:0;white-space:nowrap}
.booking-slot-picker{display:grid;gap:.6rem;align-content:start}
.booking-slot-picker[hidden]{display:none}
.booking-slot-picker-head{display:flex;align-items:center;justify-content:space-between;gap:.65rem;min-width:0}
.booking-slot-picker-title{margin:0;font-weight:800;color:var(--ink)}
.booking-slot-picker-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.4rem}
.booking-slot-picker-actions .button{min-height:34px;padding:.35rem .55rem;font-size:.78rem}
.booking-slot-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.48rem}
.booking-slot-choice{display:flex;align-items:center;gap:.45rem;min-width:0;min-height:42px;padding:.48rem .58rem;border:1px solid #bfd5df;border-radius:9px;background:#f8fcfd;color:var(--ink);font-size:.9rem;font-weight:750;cursor:pointer;transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}
.booking-slot-choice:hover{border-color:#28aeb5;background:#effbfa}
.booking-slot-choice input{inline-size:1rem;block-size:1rem;flex:0 0 auto;accent-color:var(--accent)}
.booking-slot-choice input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.booking-slot-choice__time{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.booking-slot-choice__state{margin-left:auto;color:var(--muted);font-size:.72rem;font-weight:700;white-space:nowrap}
.booking-slot-choice.is-reserved{border-style:dashed;background:#f1f5f7;color:#5d7180;cursor:not-allowed}
.booking-slot-choice.is-reserved input{cursor:not-allowed}
.booking-reservation-list{display:grid;gap:.5rem;min-height:2.75rem;margin:0;padding:0;list-style:none}
.booking-reservation-item{display:flex;align-items:center;justify-content:space-between;gap:.7rem;min-width:0;padding:.52rem .62rem;border:1px solid #d5e5ea;border-radius:9px;background:#f6fafb;color:#344f61;font-size:.86rem}
.booking-reservation-item>span{min-width:0;overflow-wrap:anywhere}
.booking-reservation-item .button{flex:0 0 auto;padding:.35rem .48rem;font-size:.76rem}
.booking-reservation-empty{align-self:center;margin:0;color:var(--muted);font-size:.85rem;font-style:italic}
@media(max-width:920px){.booking-reservation-controls--slot{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.booking-reservation-controls--slot>.button{grid-column:1/-1;width:100%}.booking-slot-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.booking-reservations{padding:.9rem}.booking-reservations-grid{grid-template-columns:1fr}.booking-reservation-controls,.booking-reservation-controls--slot{grid-template-columns:1fr}.booking-reservation-controls .button{width:100%}.booking-slot-picker-head{align-items:flex-start;flex-direction:column}.booking-slot-picker-actions{justify-content:flex-start}.booking-slot-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Booking reservation workflow: date first, then times, then one clear action. */
.booking-reservations-grid{grid-template-columns:minmax(0,1fr);gap:1rem}
.booking-reservation-card--slot{grid-column:auto;gap:1.05rem;padding:1.15rem;background:linear-gradient(180deg,#fff 0%,#fbfdfd 100%)}
.booking-reservation-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;min-width:0}
.booking-reservation-card__title-group{min-width:0}
.booking-reservation-card__title-group h3{margin:0 0 .28rem;font-size:1.05rem}
.booking-reservation-card__title-group p{max-width:66ch}
.booking-slot-reservation-layout{display:grid;grid-template-columns:minmax(12.5rem,.62fr) minmax(0,1.45fr);gap:1rem;align-items:stretch;min-width:0}
.booking-slot-date-panel{display:grid;align-content:start;gap:.72rem;min-width:0;padding:1rem;border:1px solid #cfe1e8;border-radius:12px;background:#f6fafc}
.booking-slot-date-panel .form-group{margin:0}
.booking-slot-date-panel input{min-height:46px}
.booking-slot-date-help{margin:0;color:var(--muted);font-size:.82rem;line-height:1.45}
.booking-slot-step-label{display:block;color:#0c758b;font-size:.76rem;font-weight:850;letter-spacing:.055em;line-height:1.2;text-transform:uppercase}
.booking-slot-placeholder{display:flex;align-items:center;gap:.8rem;min-width:0;padding:1rem;border:1px dashed #b9d3de;border-radius:12px;background:#fbfdfd;color:var(--muted)}
.booking-slot-placeholder[hidden]{display:none}
.booking-slot-placeholder>i{display:grid;place-items:center;flex:0 0 auto;width:2.4rem;height:2.4rem;border-radius:50%;background:#e7f5f6;color:#0c758b;font-size:1.05rem}
.booking-slot-placeholder>div{display:grid;gap:.12rem;min-width:0}
.booking-slot-placeholder strong{color:var(--ink);font-size:.9rem}
.booking-slot-placeholder span{font-size:.82rem;line-height:1.42}
.booking-slot-picker{display:grid;gap:.8rem;align-content:start;min-width:0;padding:1rem;border:1px solid #cfe1e8;border-radius:12px;background:#fff}
.booking-slot-picker[hidden]{display:none}
.booking-slot-picker-head{align-items:flex-start;gap:.9rem}
.booking-slot-picker-heading{display:grid;gap:.2rem;min-width:0}
.booking-slot-picker-title{font-size:1rem;line-height:1.25}
.booking-slot-picker-actions{flex:0 0 auto;gap:.45rem}
.booking-slot-picker-actions .button{border-color:#bcd7e1;background:#fff;box-shadow:none}
.booking-slot-picker-actions .button:hover:not(:disabled){border-color:#20b9b1;background:#effbfa}
.booking-slot-choice-grid{grid-template-columns:repeat(auto-fit,minmax(7.35rem,1fr));gap:.55rem}
.booking-slot-choice{min-height:46px;justify-content:flex-start;padding:.55rem .65rem;border-color:#bdd5df;background:#f9fcfd;font-size:.95rem}
.booking-slot-choice:hover{box-shadow:0 0 0 3px rgba(49,210,200,.14)}
.booking-slot-choice.is-selected:not(.is-reserved){border-color:#25b9b1;background:#e8fbf8;box-shadow:0 0 0 3px rgba(49,210,200,.12)}
.booking-slot-action-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-width:0;padding:.9rem 1rem;border:1px solid #cfe1e8;border-radius:12px;background:#eff9f9}
.booking-slot-action-row[hidden]{display:none}
.booking-slot-action-row .field-hint{min-width:0;margin:0;line-height:1.45}
.booking-slot-action-row .button{flex:0 0 auto;min-height:46px;white-space:nowrap}
.booking-reservation-saved{display:grid;gap:.62rem;padding-top:.95rem;border-top:1px solid var(--line)}
.booking-reservation-saved__head{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;min-width:0}
.booking-reservation-saved__head h4{margin:0;color:var(--ink);font-size:.9rem}
.booking-reservation-saved__head span{color:var(--muted);font-size:.8rem;line-height:1.35;text-align:right}
.booking-reservation-card--slot .booking-reservation-list{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));min-height:2.5rem}
.booking-reservation-card--slot .booking-reservation-empty{grid-column:1/-1}
@media(max-width:860px){.booking-slot-reservation-layout{grid-template-columns:1fr}.booking-slot-date-panel{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end}.booking-slot-date-panel .booking-slot-step-label,.booking-slot-date-panel .booking-slot-date-help{grid-column:1/-1}.booking-slot-action-row{align-items:stretch;flex-direction:column}.booking-slot-action-row .button{width:100%;justify-content:center}.booking-reservation-saved__head{align-items:flex-start;flex-direction:column;gap:.25rem}.booking-reservation-saved__head span{text-align:left}}
@media(max-width:700px){.booking-reservation-card--slot{padding:.95rem}.booking-slot-date-panel{grid-template-columns:1fr}.booking-slot-picker{padding:.9rem}.booking-slot-picker-head{flex-direction:column}.booking-slot-picker-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.booking-slot-picker-actions .button{justify-content:center}.booking-slot-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-reservation-card--slot .booking-reservation-list{grid-template-columns:1fr}.booking-slot-action-row{padding:.85rem}.booking-slot-action-row .button{white-space:normal}}

/* Booking lifecycle and mail-delivery feedback. */
.booking-delivery-state{display:block;margin-top:.35rem;color:var(--muted);font-size:.75rem;font-weight:700;line-height:1.3}
.booking-delivery-state.is-error{color:#a42d42}
.booking-delivery-state.is-warning{color:#815c00}
.booking-action-status{display:inline-flex;align-items:center;min-height:2.3rem;color:var(--muted);font-size:.78rem;font-weight:750;line-height:1.25;white-space:nowrap}
.booking-modal-delivery{margin:.75rem 0 0;padding:.7rem .85rem;border:1px solid #cfe1e8;border-radius:10px;background:#f7fbfc;color:#486175;font-size:.9rem;line-height:1.45}
.booking-modal-delivery.is-error{border-color:#e7b8c1;background:#fff4f6;color:#942b3c}
.booking-modal-delivery.is-warning{border-color:#edcf8b;background:#fff8e8;color:#815c00}
.archived-bookings-group th{padding:.68rem .85rem;background:#f6f8f9;color:#506575;font-size:.85rem;text-align:left}
.booking-row--archived td{color:#5b6b78;background:#fcfdfd}
.data-table--fit .booking-action-buttons{flex-wrap:nowrap;align-items:center;justify-content:flex-end}
.data-table--fit .booking-action-buttons .booking-action-status{min-width:0;overflow:hidden;text-overflow:ellipsis}
.message-reply-actions__secondary{display:flex;align-items:center;gap:.7rem;min-width:0}
.message-reply-actions .button[hidden]{display:none!important}
.message-thread-link-status{margin-top:1rem;padding:1rem 1.05rem;border:1px solid var(--line);border-radius:12px;background:#f8fbfc}
.message-thread-link-status h3{margin:0 0 .35rem;font-size:1rem}
.message-thread-link-status p{margin:0;line-height:1.5}
@media(max-width:700px){
  .message-reply-actions__secondary{width:100%;align-items:stretch;flex-direction:column}
  .message-reply-actions__secondary .button{width:100%}
  .booking-action-status{white-space:normal;text-align:center}
  .archived-bookings-group th{padding:.55rem .42rem}
}

/* Administration navigation notifications */
.admin-nav-button{justify-content:flex-start;width:100%}.admin-nav-button__label{display:inline-flex;align-items:center;gap:.75rem;min-width:0}.admin-nav-button__label>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-nav-notification-badge[hidden]{display:none!important}.admin-nav-notification-badge{display:inline-grid;place-items:center;flex:0 0 auto;min-width:1.42rem;height:1.42rem;margin-left:auto;padding:0 .36rem;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:#c92542;color:#fff;font-size:.72rem;font-weight:850;line-height:1;box-shadow:0 2px 7px rgba(0,0,0,.2)}.admin-nav-button:hover .admin-nav-notification-badge,.admin-nav-button[aria-selected="true"] .admin-nav-notification-badge{background:#dc3152}@media(max-width:700px){.admin-nav-button{min-width:0}.admin-nav-button__label{min-width:0;gap:.5rem}.admin-nav-notification-badge{min-width:1.3rem;height:1.3rem;padding:0 .3rem;font-size:.68rem}}

/* Durable mail delivery states in the contact-thread history. */
.message-reply-entry.is-warning{border-left:4px solid #d8a229;background:#fffaf0}
.message-reply-entry.is-sending{border-left:4px solid #42adae;background:#f7fbfc}

/* Home quick facts: the icon tile must never shrink when neighbouring copy wraps. */
.quick-item > i {
  flex: 0 0 42px;
}
.quick-item > div {
  min-width: 0;
}

/* Mobile performance: reserve icon width before Font Awesome is activated and
   keep the first render independent of the external icon stylesheet. */
.fa-solid,.fa-regular,.fa-brands{display:inline-block;width:1.25em;text-align:center}
.brand-logo__picture{display:block;flex:0 0 42px;width:42px;height:42px}
.brand-logo__picture .brand-logo__mark{width:100%!important;height:100%!important;flex:0 0 auto}
.login-card .brand-logo__picture,.install-card .brand-logo__picture{flex-basis:46px;width:46px;height:46px}
/* The illustration overlay intentionally exceeds the decorative canvas on
   desktop. Paint containment clips that overflow and cuts off the left-hand
   rounded corners of the hero information card on small screens. Layout
   containment keeps the rendering optimisation without clipping the card. */
.device-art{contain:layout;overflow:visible}
.hero-card{z-index:2}
.render-deferred{content-visibility:auto;contain-intrinsic-size:auto 760px}

@media(max-width:700px){
  .hero:after,.page-hero:after{display:none}
  .hero-card{backdrop-filter:none}
  .orbit:after{box-shadow:none}
  .laptop,.phone-art,.hero-card{box-shadow:0 12px 24px rgba(0,0,0,.22)}
  .brand-logo__picture{flex-basis:35px;width:35px;height:35px}
}


/* Responsive hardening: public site and administration.
   These rules are intentionally appended so the mobile behaviour remains
   centralised and can safely override older, component-specific breakpoints. */
:root{
  --mobile-header-height:4.5rem;
  --mobile-safe-bottom:max(.85rem,env(safe-area-inset-bottom));
}

html,body{max-width:100%}
body{overflow-x:clip}
img{max-width:100%}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
body.menu-open,body.admin-menu-open{overflow:hidden;overscroll-behavior:none}
.main-nav__links{display:flex;align-items:center;gap:.25rem}
.main-nav__meta{display:none}
.menu-toggle__close-icon,.admin-menu-toggle,.admin-nav-backdrop,.admin-sidebar-close{display:none}

@media(max-width:900px){
  .site-header{
    position:sticky;
    top:0;
    padding-top:env(safe-area-inset-top);
    background:#041322;
    backdrop-filter:none;
  }
  .header-row{
    height:var(--mobile-header-height);
    min-height:var(--mobile-header-height);
    gap:.75rem;
  }
  .header-actions{display:none}
  .menu-toggle{
    display:inline-grid;
    place-items:center;
    flex:0 0 44px;
    width:44px;
    height:44px;
    margin-left:auto;
    border:1px solid rgba(209,233,242,.32);
    border-radius:11px;
    background:rgba(255,255,255,.05);
    color:#fff;
    font-size:1.1rem;
  }
  .menu-toggle:hover{background:rgba(255,255,255,.12)}
  /* The public trigger intentionally remains a hamburger in both states.
     The accessible label still changes to "Luk menu" while the menu is open. */
  .menu-toggle__close-icon{display:none}
  .main-nav{
    position:fixed;
    z-index:31;
    top:calc(var(--mobile-header-height) + env(safe-area-inset-top));
    right:0;
    bottom:0;
    left:0;
    display:none;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:1rem max(1rem,env(safe-area-inset-right)) calc(1.25rem + env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));
    background:#061c31;
    box-shadow:0 18px 34px rgba(0,0,0,.28);
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:1.2rem;
  }
  .main-nav.is-open{display:flex}
  .main-nav__links{display:grid;width:100%;gap:.38rem}
  .main-nav a{
    display:flex;
    align-items:center;
    min-height:48px;
    padding:.85rem .95rem;
    border:1px solid transparent;
    font-size:1rem;
  }
  .main-nav a:hover,.main-nav a:focus-visible,.main-nav a[aria-current="page"]{
    border-color:rgba(103,225,215,.34);
    background:rgba(49,210,200,.13);
  }
  .main-nav__meta{
    display:grid;
    gap:.5rem;
    width:100%;
    padding-top:1rem;
    border-top:1px solid rgba(197,220,233,.16);
  }
  .mobile-nav-phone{
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    gap:.55rem;
    min-height:48px;
    border:1px solid rgba(197,220,233,.26)!important;
    background:rgba(255,255,255,.05);
    color:#e5f3f8!important;
    font-weight:800!important;
  }
  .mobile-nav-phone i{color:var(--aqua)}

  .admin-layout{display:block;min-height:100dvh}
  .admin-sidebar{
    position:fixed;
    z-index:220;
    top:0;
    bottom:0;
    left:0;
    display:flex;
    width:min(21rem,calc(100vw - 2.75rem));
    height:100dvh;
    overflow-y:auto;
    padding:max(1rem,env(safe-area-inset-top)) 1rem max(1rem,env(safe-area-inset-bottom));
    transform:translate3d(-105%,0,0);
    transition:transform .2s ease;
    will-change:transform;
  }
  .admin-sidebar.is-open{transform:translate3d(0,0,0)}
  .admin-sidebar-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
  .admin-sidebar-heading .brand{min-width:0;min-height:48px}
  .admin-sidebar-close{
    display:inline-grid;
    place-items:center;
    flex:0 0 44px;
    width:44px;
    height:44px;
    padding:0;
    border:1px solid rgba(209,233,242,.32);
    border-radius:11px;
    background:rgba(255,255,255,.05);
    color:#fff;
    font-size:1.08rem;
  }
  .admin-sidebar nav{
    display:grid;
    grid-template-columns:1fr;
    gap:.32rem;
    margin-top:1.5rem;
  }
  .admin-sidebar .brand{min-height:48px}
  .admin-sidebar .brand-logo__name{max-width:18ch}
  .admin-nav-button{min-height:48px;padding:.8rem .85rem;font-size:1rem}
  .sidebar-bottom{margin-top:auto;padding-top:1rem}
  .admin-nav-backdrop{
    position:fixed;
    z-index:210;
    inset:0;
    display:block;
    width:100%;
    height:100%;
    margin:0;
    padding:0;
    border:0;
    opacity:0;
    pointer-events:none;
    background:rgba(3,17,29,.58);
    transition:opacity .2s ease;
  }
  .admin-nav-backdrop.is-open{opacity:1;pointer-events:auto}
  .admin-topbar{
    position:sticky;
    z-index:20;
    top:0;
    min-height:72px;
    padding:.8rem clamp(1rem,3vw,1.4rem);
    background:#fff;
  }
  .admin-topbar-heading{display:flex;align-items:center;min-width:0;gap:.75rem}
  .admin-topbar-heading>div{min-width:0}
  .admin-topbar h1{overflow-wrap:anywhere}
  .admin-menu-toggle{
    display:inline-grid;
    place-items:center;
    flex:0 0 44px;
    width:44px;
    height:44px;
    padding:0;
    border:1px solid var(--line);
    border-radius:11px;
    background:#f8fbfc;
    color:var(--navy);
    font-size:1.08rem;
  }
  .admin-menu-toggle__close-icon{display:none}
  .admin-menu-toggle[aria-expanded="true"] .admin-menu-toggle__open-icon{display:none}
  .admin-menu-toggle[aria-expanded="true"] .admin-menu-toggle__close-icon{display:inline-block}
}

@media(max-width:700px){
  .container{width:min(1180px,calc(100% - 2rem))}
  .hero{padding:1.75rem 0 3.6rem}
  .hero-grid{gap:1.7rem}
  .hero h1{font-size:clamp(2.35rem,11vw,3rem);line-height:1.04}
  .hero-copy{font-size:1rem;margin-bottom:1.4rem}
  .hero-actions{display:grid;grid-template-columns:1fr;gap:.65rem}
  .hero-actions .button{width:100%;min-height:48px}
  .trust-list{display:grid;gap:.55rem;margin-top:1.3rem}
  .device-art{min-height:250px;max-width:430px}
  .hero-card{width:min(66%,235px);padding:.85rem .9rem}
  .hero-card b{font-size:1rem}
  .quick-grid{margin-top:-1.1rem;border-radius:15px}
  .quick-item{min-height:76px;padding:.95rem 1rem;gap:.75rem}
  .quick-item b{font-size:.92rem}
  .quick-item span{font-size:.8rem;line-height:1.4}
  .section{padding:3.25rem 0}
  .section-head{margin-bottom:1.45rem}
  .section h2{font-size:clamp(1.78rem,8vw,2.25rem)}
  .section-lead{font-size:.98rem}
  .service-card,.promise-card,.booking-intro,.booking-form,.contact-form{padding:1.25rem}
  .booking-panel{border-radius:16px}
  .promise-card .stat-row{gap:.8rem}
  .form-group input,.form-group select,.form-group textarea{min-height:46px;font-size:1rem}
  .form-group textarea{min-height:126px}
  .slot-button{min-height:44px}
  .form-actions,.admin-action-row{gap:.7rem}
  .form-actions>.button,.admin-action-row>.button{width:100%;min-height:46px}
  .site-footer{padding:2.6rem 0 calc(1.25rem + env(safe-area-inset-bottom))}
  .footer-grid{gap:1.8rem}
  .footer-bottom{margin-top:1.7rem}
  .toast-stack{right:.75rem;bottom:calc(.75rem + env(safe-area-inset-bottom));left:.75rem}
  .toast{max-width:none}
  .modal{padding:max(.5rem,env(safe-area-inset-top)) .5rem max(.5rem,env(safe-area-inset-bottom));align-items:flex-end}
  .modal-dialog{width:100%;max-height:calc(100dvh - 1rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:1.05rem;border-radius:16px}
  .modal-header{align-items:flex-start;gap:.75rem}
  .modal-header h2{font-size:1.24rem;line-height:1.2}
  .modal-close{flex:0 0 42px;width:42px;height:42px}

  .admin-topbar{align-items:stretch;gap:.75rem}
  .admin-topbar-heading{width:100%}
  .admin-topbar h1{font-size:1.05rem;line-height:1.25}
  .admin-topbar p{font-size:.8rem;overflow-wrap:anywhere}
  .admin-topbar-actions{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
  .admin-topbar-actions .button{min-height:44px;padding:.55rem .6rem;font-size:.82rem}
  .admin-content{padding:1rem}
  .admin-card{padding:1rem;border-radius:14px;margin-top:1rem}
  .admin-card h2{font-size:1.08rem}
  .admin-card .subtext{line-height:1.48}
  .metrics{gap:.75rem}
  .metric{min-width:0;padding:1rem;border-radius:13px}
  .metric .metric-icon{margin-left:.5rem}
  .metric strong{font-size:1.45rem;overflow-wrap:anywhere}
  .admin-form-grid{gap:.85rem}
  .admin-action-row{align-items:stretch;flex-direction:column}
  .content-editor-tabs{scrollbar-width:thin;scroll-padding-inline:.25rem}
  .content-editor-tab{min-height:42px}
  .table-wrap{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .data-table th,.data-table td{padding:.62rem .56rem}
  .data-table--fit{font-size:.76rem}
  .data-table--fit th,.data-table--fit td{padding:.52rem .36rem}
  .data-table--fit .booking-task-preview,.data-table--fit .message-preview{-webkit-line-clamp:1}
  .col-resizer{right:-9px;width:18px;touch-action:none}
  .booking-section-toggle{flex-basis:44px;min-inline-size:44px;min-height:44px}
  .booking-table-card .admin-card-heading--collapsible{gap:.65rem}
  .message-detail-list>div,.booking-detail-list>div{padding:.75rem .8rem}
}

@media(min-width:481px) and (max-width:700px){
  .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quick-item{align-items:flex-start;border-bottom:1px solid var(--line)}
  .quick-item:nth-child(odd){border-right:1px solid var(--line)}
  .quick-item:nth-child(2){border-bottom:1px solid var(--line)}
  .quick-item:nth-last-child(-n+2){border-bottom:0}
}

@media(max-width:520px){
  .main-nav{padding-top:.8rem}
  .main-nav a{font-size:.96rem}
  .hero{padding-top:1.45rem}
  .eyebrow{font-size:.73rem;letter-spacing:.065em}
  .device-art{min-height:226px}
  .laptop{width:80%;right:1%}
  .phone-art{right:3%;height:154px;width:81px}
  .hero-card{width:70%;left:0}
  .home-route-card{padding:1.2rem}
  .service-card,.promise-card,.booking-intro,.booking-form,.contact-form{padding:1.05rem}
  .booking-intro h2{font-size:1.75rem}
  .modal-dialog{padding:.95rem;border-radius:14px 14px 0 0}
  .admin-topbar-actions{grid-template-columns:1fr}
  .admin-topbar-actions .button{width:100%}
  .admin-sidebar{width:min(20rem,calc(100vw - 2rem))}
  .admin-sidebar .brand-logo__name{max-width:15ch}
  .mail-setup-group,.booking-reservations,.booking-reservation-card{padding:.85rem}
}

@media(max-width:380px){
  .header-row{gap:.55rem}
  .header-row .brand-logo__name{max-width:10ch}
  .menu-toggle{flex-basis:42px;width:42px;height:42px}
  .metrics{grid-template-columns:1fr}
  .quick-item{padding:.9rem}
}

@media(prefers-reduced-motion:reduce){
  .admin-sidebar,.admin-nav-backdrop{transition:none}
}

/* Booking work-time registration */
.button-success{border-color:var(--aqua);background:var(--aqua);color:var(--navy);box-shadow:0 6px 14px rgba(49,210,200,.25)}.button-success:hover,.button-success:focus-visible{border-color:#5fe0d7;background:#5fe0d7;color:var(--navy)}.button-danger--muted{border-color:#bd6670;background:#fff;color:#9e2634}.button-danger--muted:hover,.button-danger--muted:focus-visible{border-color:#a83240;background:#fff2f3;color:#81202b}.booking-time-state{display:inline-flex;align-items:center;gap:.42rem;color:#587084;font-size:.82rem;font-weight:800;white-space:nowrap}.booking-time-state.is-running{color:#0f7046}.booking-time-summary{margin:.9rem 0;padding:1rem;border:1px solid #b9e3d0;border-radius:14px;background:#f1fbf6}.booking-time-summary h3{margin:0 0 .75rem}.booking-time-summary dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin:0}.booking-time-summary dl>div{padding:.7rem;border:1px solid #d8ece2;border-radius:10px;background:#fff}.booking-time-summary dt{color:#587084;font-size:.75rem;font-weight:800;text-transform:uppercase}.booking-time-summary dd{margin:.22rem 0 0;color:var(--ink);font-weight:850}.booking-time-summary p{margin:.75rem 0 0;color:#587084;font-size:.82rem}.completed-bookings-table td strong{white-space:nowrap}@media(max-width:700px){.booking-time-summary dl{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Bookingmodal: arbejdsnoter og mobilopkald */
.booking-modal-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,38%);gap:1rem;align-items:stretch}.booking-modal-main{min-width:0}.booking-work-items{display:flex;min-width:0;min-height:0;flex-direction:column;padding:1rem;border:1px solid var(--line);border-radius:14px;background:#f8fbfc}.booking-work-items__header h3{margin:0 0 .35rem}.booking-work-items__header p{margin:0 0 .8rem;color:var(--muted);font-size:.86rem;line-height:1.45}.booking-work-items textarea{width:100%;min-height:330px;flex:1;resize:none;padding:.85rem;border:1px solid #bdd0d9;border-radius:10px;background:#fff;font:inherit;line-height:1.5}.booking-work-items textarea:focus{outline:2px solid rgba(11,142,138,.22);border-color:#0b8e8a}.booking-work-items__footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.8rem}.booking-work-items__footer>span{min-height:1.2em;color:var(--muted);font-size:.82rem}.booking-phone-value{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.booking-phone-call{flex:0 0 auto;text-decoration:none}.booking-phone-call[hidden]{display:none!important}@media(max-width:800px){.booking-modal-layout{grid-template-columns:1fr}.booking-work-items textarea{min-height:220px;resize:vertical}.booking-work-items__footer{align-items:stretch;flex-direction:column}.booking-work-items__footer .button{width:100%}.booking-phone-call{display:inline-flex}}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.modal-dialog--booking{width:min(1180px,100%)}

/* Booking date groups */
.booking-date-group th { padding: 0 !important; background: #f3f7f8; }
.booking-date-group__toggle { box-sizing: border-box; width: 100%; min-height: 2rem; border: 0; background: transparent; color: #102d3f; display: flex; align-items: center; gap: .7rem; padding-block: 1rem; padding-inline: 1.5rem !important; font: inherit; font-weight: 800; text-align: left; cursor: pointer; }
.booking-date-group__toggle i { margin-left: auto; }
.booking-date-group__count { min-width: 1.8rem; justify-content: center; background: #31D2C8; color: #102D3F; }
.booking-row--settled { opacity: .94; }

/* SMTP password preview: keep the visibility control inside the password field. */
.password-input-control{position:relative;display:flex;align-items:stretch;min-width:0}
.password-input-control>input{width:100%;padding-right:3.25rem}
.password-visibility-toggle{position:absolute;top:50%;right:.42rem;display:inline-grid;place-items:center;width:2.35rem;height:2.35rem;padding:0;transform:translateY(-50%);border:0;border-radius:8px;background:transparent;color:#52697a;cursor:pointer}
.password-visibility-toggle:hover{background:#edf5f7;color:#0b6686}
.password-visibility-toggle:focus-visible{outline:3px solid rgba(66,173,174,.32);outline-offset:1px}
.password-visibility-toggle i{pointer-events:none}

/* Bookingmodal: gendannede kumulative layoutrettelser */
.booking-detail-list{align-items:stretch;grid-auto-rows:1fr}
.booking-detail-list>div,
.booking-detail-list>div:last-child{display:flex;min-height:4.65rem;grid-column:auto;flex-direction:column;justify-content:flex-start}
.booking-detail-list dd{display:flex;min-height:2.35rem;align-items:center}
.booking-detail-list .booking-phone-value{width:100%}
@media(max-width:700px){
  .booking-detail-list{grid-auto-rows:auto}
  .booking-detail-list>div,
  .booking-detail-list>div:last-child{min-height:4.65rem}
}
@media(min-width:801px){
  .booking-modal-layout{--booking-work-items-width:clamp(276px,27.6%,360px);position:relative;display:block}
  .booking-modal-main{width:calc(100% - var(--booking-work-items-width) - 1rem);height:auto}
  .booking-work-items{position:absolute;inset-block:0;right:0;width:var(--booking-work-items-width);height:auto;max-height:100%;overflow:hidden}
  .booking-work-items textarea{min-height:0;height:100%}
  #booking-modal .booking-modal-main>.message-original{min-height:11rem}
}
.booking-work-items__header{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}
.booking-work-items__header h3{margin:0}
.booking-work-items__header>span{min-height:1.2em;color:var(--muted);font-size:.82rem;text-align:right}
.booking-work-items__footer{display:block}
.booking-work-items__footer .button{width:100%;justify-content:center}
.booking-detail-list>div{position:relative}
.booking-detail-list .booking-phone-value{width:100%;padding-right:3.85rem}
.booking-detail-list .booking-phone-call{position:absolute;top:.55rem;right:.55rem;bottom:.55rem;width:3.55rem;min-width:3.55rem;height:auto;min-height:0;padding:0;align-items:center;justify-content:center}
@media(max-width:800px){
  .booking-detail-list .booking-phone-value{padding-right:3.65rem}
  .booking-detail-list .booking-phone-call{top:.5rem;right:.5rem;bottom:.5rem;width:3.35rem;min-width:3.35rem}
}
#booking-modal-location{column-gap:.42rem;row-gap:.2rem;flex-wrap:wrap}
#booking-modal-address-separator{margin-inline:.02rem}

/* Administration > Virksomhed: all single-line controls use identical dimensions. */
#business .admin-form-grid>.form-group:not(.full)>input,
#business .admin-form-grid>.form-group:not(.full)>select{min-height:46px;height:46px}

/* Booking payment confirmation: wider dialog and compact task preview. */
#booking-payment-modal .modal-dialog--confirm{width:min(730px,100%)}
#booking-payment-task{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3}

/* Administration > Bookinger: vis kun Dato, Tid og Kunde på mobil. */
@media (max-width:700px) {
  [data-booking-table] col:nth-child(n+4),
  [data-confirmed-booking-table] col:nth-child(n+4),
  [data-completed-booking-table] col:nth-child(n+4),
  [data-settled-booking-table] col:nth-child(n+4),
  [data-booking-table] thead th:nth-child(n+4),
  [data-confirmed-booking-table] thead th:nth-child(n+4),
  [data-completed-booking-table] thead th:nth-child(n+4),
  [data-settled-booking-table] thead th:nth-child(n+4),
  [data-booking-table] tbody td:nth-child(n+4),
  [data-confirmed-booking-table] tbody td:nth-child(n+4),
  [data-completed-booking-table] tbody td:nth-child(n+4),
  [data-settled-booking-table] tbody td:nth-child(n+4) {
    display:none;
  }

  [data-booking-table] col:nth-child(1),
  [data-confirmed-booking-table] col:nth-child(1),
  [data-completed-booking-table] col:nth-child(1),
  [data-settled-booking-table] col:nth-child(1),
  [data-booking-table] thead th:nth-child(1),
  [data-confirmed-booking-table] thead th:nth-child(1),
  [data-completed-booking-table] thead th:nth-child(1),
  [data-settled-booking-table] thead th:nth-child(1) {
    width:30%!important;
    max-width:30%!important;
  }

  [data-booking-table] col:nth-child(2),
  [data-confirmed-booking-table] col:nth-child(2),
  [data-completed-booking-table] col:nth-child(2),
  [data-settled-booking-table] col:nth-child(2),
  [data-booking-table] thead th:nth-child(2),
  [data-confirmed-booking-table] thead th:nth-child(2),
  [data-completed-booking-table] thead th:nth-child(2),
  [data-settled-booking-table] thead th:nth-child(2) {
    width:20%!important;
    max-width:20%!important;
  }

  [data-booking-table] col:nth-child(3),
  [data-confirmed-booking-table] col:nth-child(3),
  [data-completed-booking-table] col:nth-child(3),
  [data-settled-booking-table] col:nth-child(3),
  [data-booking-table] thead th:nth-child(3),
  [data-confirmed-booking-table] thead th:nth-child(3),
  [data-completed-booking-table] thead th:nth-child(3),
  [data-settled-booking-table] thead th:nth-child(3) {
    width:50%!important;
    max-width:50%!important;
  }
}

/* Bookingoversigt: placér sektions-toggle på samme linje som titlen i mobilvisning. */
@media (max-width:700px){
  .booking-table-card .admin-card-heading--collapsible{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:.65rem;
  }
  .booking-table-card .admin-card-heading--collapsible>div:first-child{
    min-width:0;
  }
  .booking-table-card .admin-card-heading--collapsible>div:first-child h2{
    margin:0;
  }
  .booking-table-card .admin-card-heading--collapsible>.booking-section-toggle{
    align-self:center;
    grid-column:2;
    grid-row:1;
  }
  .booking-table-card--pending .booking-heading-actions{
    display:contents;
  }
  .booking-table-card--pending .booking-heading-actions>.booking-section-toggle{
    align-self:center;
    grid-column:2;
    grid-row:1;
  }
}

/* Bookingoversigt: dynamisk antal-badge efter hver sektionstitel. */
.booking-table-card .admin-card-heading--collapsible h2{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.5rem;
}
.booking-count-badge{
  justify-content:center;
  min-width:1.75rem;
  padding:.2rem .5rem;
  background:#31D2C8;
  color:#102D3F;
  text-align:center;
  font-size:.78rem;
  line-height:1.2;
}

@media (max-width:700px){
  .booking-table-card--pending.booking-table-card--empty,
  .booking-table-card--settled{
    display:none;
  }
}
/* Bookingmodal: relevante primærhandlinger placeres over kundeoplysningerne på mobil. */
.booking-modal-mobile-primary-actions{display:none}
@media(max-width:700px){
  .booking-modal-mobile-primary-actions{display:grid;gap:.65rem;margin:0 0 .85rem}
  .booking-modal-mobile-primary-actions:empty{display:none}
  .booking-modal-mobile-primary-actions>.button{width:100%}
  .booking-modal-mobile-primary-actions>.button[hidden]{display:none!important}
}

/* Ensure status-controlled booking work-item actions stay hidden in every responsive layout. */
[data-booking-work-items-save][hidden]{display:none!important}

/* Mobile administration navigation: keep only operational booking/message items visible. */
@media (max-width: 700px) {
  .admin-nav-button[data-admin-tab="dashboard"],
  .admin-nav-button[data-admin-tab="business"],
  .admin-nav-button[data-admin-tab="website-content"],
  .admin-nav-button[data-admin-tab="booking-settings"],
  .admin-nav-button[data-admin-tab="mail-security"] {
    display: none;
  }
}
/* Contact messages: compact mobile table with only received time, sender and actions. */
@media(max-width:700px){
  #messages [data-table-key="messages"] th:nth-child(3),
  #messages [data-table-key="messages"] td:nth-child(3),
  #messages [data-table-key="messages"] th:nth-child(4),
  #messages [data-table-key="messages"] td:nth-child(4){display:none}
  #messages [data-table-key="messages"] .message-actions .button{display:inline-grid;place-items:center;width:2.25rem;min-width:2.25rem;height:2.25rem;padding:0}
}


/* Kontaktbeskeder: kompakt dato og automatisk kolonnebredde på mobil. */
.message-received-mobile{display:none}
@media(max-width:700px){
  #messages [data-table-key="messages"]{table-layout:auto!important}
  #messages [data-table-key="messages"] col,
  #messages [data-table-key="messages"] th,
  #messages [data-table-key="messages"] td{width:auto!important;max-width:none!important}
  #messages [data-table-key="messages"] .message-received-full{display:none}
  #messages [data-table-key="messages"] .message-received-mobile{display:inline}
  #messages [data-table-key="messages"] .message-received-cell{white-space:nowrap}
  #messages [data-table-key="messages"] th:last-child,
  #messages [data-table-key="messages"] td:last-child{width:1%!important;white-space:nowrap}
}

/* Booking address: street uses half the row; postal code and city share the remainder. */
.booking-address-grid{grid-column:1/-1;display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem;min-width:0}
.booking-address-grid>.form-group{min-width:0}
@media(max-width:700px){.booking-address-grid{grid-column:auto;grid-template-columns:1fr}.booking-address-grid>.form-group{grid-column:auto}}

/* Booking work-items: an untouched form must make the save action visibly unavailable. */
[data-booking-work-items-save]:disabled,
[data-booking-work-items-save][aria-disabled="true"] {
  border-color: #c8d0d6;
  background: #e4e8eb;
  color: #77838d;
  box-shadow: none;
  cursor: not-allowed;
  opacity: 1;
}
[data-booking-work-items-save]:disabled:hover,
[data-booking-work-items-save][aria-disabled="true"]:hover {
  border-color: #c8d0d6;
  background: #e4e8eb;
  color: #77838d;
  transform: none;
}

/* Tilbudsmodul */
.offer-groups{display:grid;gap:1.25rem}.offer-table-card .admin-card-heading{margin-bottom:.75rem}.modal-dialog--wide{width:min(1100px,calc(100vw - 2rem));max-width:1100px}.offer-lines-section{margin:1.25rem 0;padding:1rem;border:1px solid var(--line,#d7e3ee);border-radius:14px}.offer-line{display:grid;grid-template-columns:110px minmax(220px,1fr) 150px 150px 44px;gap:.75rem;align-items:end;margin-bottom:.75rem}.offer-line__total output{display:flex;align-items:center;min-height:44px;font-weight:700}.offer-line__remove{margin-bottom:2px}.offer-total-row{display:flex;justify-content:flex-end;gap:2rem;padding-top:1rem;border-top:1px solid var(--line,#d7e3ee);font-size:1.15rem}.offer-actions>div{display:flex;gap:.75rem}.public-offer-body{min-height:100vh;background:#eef4f8;padding:2rem}.public-offer-card{width:min(980px,100%);margin:auto;background:#fff;border-radius:18px;padding:clamp(1rem,3vw,2.5rem);box-shadow:0 16px 50px rgba(8,35,62,.12)}.public-offer-actions{display:flex;gap:1rem;justify-content:space-between;align-items:center;margin-top:1.5rem}.public-offer-actions form{margin:0}.public-offer-pdf-button{background:#0b6686;color:#fff;box-shadow:0 6px 14px rgba(11,102,134,.24)}.public-offer-pdf-button:hover{background:#084f69;color:#fff}
@media(max-width:800px){.offer-line{grid-template-columns:1fr 1fr}.offer-line__text{grid-column:1/-1}.offer-line__remove{align-self:end}.public-offer-body{padding:.75rem}.public-offer-actions{align-items:stretch;flex-direction:column}.public-offer-actions .button{width:100%}}

/* Tilbud: kompakt adresselinje, tydelig rækkehandling og responsiv modal. */
.offer-address-row{display:grid;grid-template-columns:minmax(280px,12fr) minmax(95px,3fr) minmax(150px,5fr);gap:1rem;align-items:end}
.offer-customer-grid{grid-template-columns:minmax(0,6fr) minmax(0,6fr) minmax(0,3fr) minmax(0,5fr)}.offer-customer-grid .offer-address-row{grid-column:1/-1}
.offer-row{cursor:pointer;transition:background-color .16s ease}.offer-row:hover td{background:#f0fbfa}.offer-row:focus-visible{outline:2px solid #0b8e8a;outline-offset:-2px}.offer-row:focus-visible td{background:#e8f7f6}
.offer-row-actions{align-items:center;justify-content:flex-end}
@media(max-width:760px){.offer-customer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.offer-address-row{grid-template-columns:minmax(0,12fr) minmax(90px,3fr) minmax(130px,5fr);gap:.75rem}}
@media(max-width:560px){.offer-customer-grid{grid-template-columns:1fr}.offer-address-row{grid-template-columns:1fr 1fr}.offer-address-row__address{grid-column:1/-1}}

/* Tilbud/faktura: selvstændig kundevælger uden browserens native datalist-popup. */
.offer-customer-combobox{position:relative}
.offer-customer-combobox>input{width:100%;padding-right:2.75rem}
.offer-customer-combobox>input[type="search"]::-webkit-search-cancel-button,
.offer-customer-combobox>input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}
.offer-customer-toggle{position:absolute;top:0;right:0;width:2.75rem;height:100%;display:flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--text,#12213a);cursor:pointer;border-radius:0 12px 12px 0}
.offer-customer-toggle:hover,.offer-customer-toggle:focus-visible{background:rgba(11,102,134,.08)}
.offer-customer-options{position:absolute;z-index:60;top:calc(100% + .35rem);left:0;right:0;max-height:320px;overflow:auto;border:1px solid var(--line,#d7e3ee);border-radius:12px;background:#fff;box-shadow:0 16px 36px rgba(8,35,62,.16)}
.offer-customer-options[hidden]{display:none!important}
.offer-customer-option{display:grid;width:100%;gap:.2rem;padding:.7rem .85rem;border:0;border-bottom:1px solid var(--line,#e3ebf2);background:#fff;color:var(--text,#12213a);text-align:left;cursor:pointer}
.offer-customer-option:last-child{border-bottom:0}
.offer-customer-option:hover,.offer-customer-option.is-active{background:#f0fbfa}
.offer-customer-option:focus{outline:none}
.offer-customer-option__title{font-weight:750}
.offer-customer-option__meta{font-size:.82rem;color:var(--muted,#66758a);line-height:1.35}

/* Tilbud: genafsendelse skal adskille sig tydeligt fra første afsendelse. */
.button-resend{border:1px solid #123f68;background:#123f68;color:#fff;box-shadow:0 6px 14px rgba(18,63,104,.22)}
.button-resend:hover,.button-resend:focus-visible{background:#0b3154;color:#fff}

/* Tilbudsmodal: alle redigerbare formularfelter bruger samme blå baggrund. */
#offer-form input,
#offer-form select,
#offer-form textarea {
  background-color: #e8f0fe;
}

/* Bevar den blå feltbaggrund ved browserens autofyldning. */
#offer-form input:-webkit-autofill,
#offer-form input:-webkit-autofill:hover,
#offer-form input:-webkit-autofill:focus,
#offer-form select:-webkit-autofill,
#offer-form textarea:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px #e8f0fe inset;
  -webkit-text-fill-color: var(--ink);
  caret-color: var(--ink);
}

/* Tilbudsmodal: tydelig venstre/højre handlingsfordeling. */
.offer-actions{width:100%;justify-content:space-between}
.offer-actions__left,.offer-actions__right{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.offer-actions__left{justify-content:flex-start}
.offer-actions__right{justify-content:flex-end;margin-left:auto;align-items:flex-end}
.offer-valid-until-footer{min-width:168px;margin:0;gap:.3rem}
.offer-valid-until-footer label{margin:0;font-size:.82rem;line-height:1.15}
.offer-valid-until-footer input{min-height:44px}
.offer-valid-until-footer[hidden]{display:none!important}
.offer-confirm-actions{justify-content:flex-end}
@media(max-width:700px){
  .offer-actions{align-items:stretch}
  .offer-actions__left,.offer-actions__right{width:100%;display:grid;grid-template-columns:1fr;gap:.7rem;margin-left:0}
  .offer-actions__left .button,.offer-actions__right .button{width:100%;min-height:46px}
  .offer-valid-until-footer{width:100%;min-width:0}
}

.public-offer-decision-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;margin-left:auto}.public-offer-decision-actions form{margin:0}.badge-rejected{background:#f8d7da;color:#842029;border-color:#f1aeb5}@media(max-width:800px){.public-offer-decision-actions{width:100%;align-items:stretch;flex-direction:column}.public-offer-decision-actions .button{width:100%}}

/* Tilbudsmodal: ens pris- og totalfelter med højrestillede beløb. */
.offer-line > .form-group:nth-child(3) input,
.offer-line__total output {
  min-height: 44px;
  width: 100%;
  padding: .75rem .82rem;
  border: 1px solid #bdcdda;
  border-radius: 9px;
  background: #e6eefb;
  color: var(--ink);
  text-align: right;
  font: inherit;
}
.offer-line__total output {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  font-weight: 700;
}

/* Tilbudsmodal: højrestillede kolonneoverskrifter for beløb. */
.offer-line > .form-group:nth-child(3) > label,
.offer-line__total > label {
  display: block;
  width: 100%;
  text-align: right;
}

/* Offer send history and temporary resend confirmation. */
.offer-status-badges {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
}

.badge-offer-send-count {
  background: var(--aqua);
  color: #062b3a;
  cursor: help;
  min-width: 1.75rem;
  justify-content: center;
  font-weight: 800;
}

.button.button-sent-feedback,
.button.button-sent-feedback:hover,
.button.button-sent-feedback:focus-visible {
  background: var(--aqua);
  border-color: var(--aqua);
  color: #062b3a;
  opacity: 1;
}

.badge-offer-send-count {
  position: relative;
}

.badge-offer-send-count::after {
  content: attr(data-tooltip);
  position: absolute;
  z-index: 250;
  left: 50%;
  bottom: calc(100% + 0.55rem);
  width: max-content;
  max-width: min(22rem, 80vw);
  padding: 0.65rem 0.75rem;
  border-radius: 0.65rem;
  background: var(--navy);
  color: #fff;
  box-shadow: var(--shadow);
  font-size: 0.78rem;
  font-weight: 650;
  line-height: 1.45;
  text-align: left;
  white-space: pre-line;
  transform: translate(-50%, 0.2rem);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
}

.badge-offer-send-count:hover::after,
.badge-offer-send-count:focus-visible::after {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}

/* Prisliste: overskuelig produktmodal */
#price-modal .modal-dialog {
  max-width: 760px;
}
.price-product-form {
  display: grid;
  gap: 18px;
}
.price-product-card {
  border: 1px solid var(--border-color, #c8d8e8);
  border-radius: 18px;
  background: #f8fbfe;
  padding: 22px;
}
.price-product-card__heading {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border-color, #d8e3ed);
}
.price-product-card__heading h3 {
  margin: 0 0 3px;
  font-size: 1.05rem;
}
.price-product-card__heading p {
  margin: 0;
  color: var(--muted-color, #65778a);
  font-size: .92rem;
}
.price-product-card__icon {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 12px;
  background: #d8f7f3;
  color: #047a78;
  font-size: 1.05rem;
}
.price-product-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(150px, .34fr);
  gap: 18px;
  align-items: end;
}
.price-product-fields__description {
  grid-column: 1 / -1;
}
.price-product-fields textarea {
  min-height: 132px;
  resize: vertical;
}
.price-product-fields small {
  display: block;
  margin-top: 7px;
  color: var(--muted-color, #65778a);
}
.price-input-wrap {
  position: relative;
}
.price-input-wrap input {
  width: 100%;
  padding-right: 48px;
  text-align: right;
}
.price-input-wrap span {
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted-color, #65778a);
  pointer-events: none;
  font-weight: 700;
}
.price-product-actions {
  justify-content: flex-end;
}
@media (max-width: 680px) {
  .price-product-card {
    padding: 16px;
  }
  .price-product-fields {
    grid-template-columns: 1fr;
  }
  .price-product-fields__description {
    grid-column: auto;
  }
  .price-product-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .price-product-actions .button {
    width: 100%;
  }
}
.offer-send-tooltip {
  position: fixed;
  z-index: 10000;
  width: max-content;
  max-width: min(22rem, calc(100vw - 20px));
  padding: 0.65rem 0.75rem;
  border-radius: 0.65rem;
  background: var(--navy);
  color: #fff;
  box-shadow: var(--shadow);
  font-size: 0.78rem;
  font-weight: 650;
  line-height: 1.45;
  text-align: left;
  white-space: pre-line;
  pointer-events: none;
}

.offer-send-tooltip[hidden] {
  display: none !important;
}

/* Tilbud: accepteret status skal fremstå tydeligt grøn. */
.badge-accepted {
  background: #dff7e8;
  border-color: #a9e5bf;
  color: #176b38;
}

/* Tilbud: respekter hidden-attributten på statusafhængige modalhandlinger. */
[data-offer-modal] [data-offer-send][hidden],
[data-offer-modal] [data-offer-save][hidden],
[data-offer-modal] [data-offer-complete][hidden] {
  display: none !important;
}

/* Tilbud: accepteret status skal altid være tydeligt grøn i statuskolonnen. */
.offer-status-badges .badge.badge-accepted {
  background: #dff7e8 !important;
  border: 1px solid #a9e5bf !important;
  color: #176b38 !important;
}


/* Tilbud: statusafhængige modalhandlinger må aldrig genvises af generelle knapregler. */
[data-offer-modal] [data-offer-send][aria-hidden="true"],
[data-offer-modal] [data-offer-save][aria-hidden="true"],
[data-offer-modal] [data-offer-complete][aria-hidden="true"] {
  display: none !important;
}

/* Tilbud: accepteret-status i Accepterede-tabellen. */
[data-offer-table="accepted"] .badge-accepted {
  background: #dff7e8 !important;
  border: 1px solid #a9e5bf !important;
  color: #176b38 !important;
}

/* Afregnede tilbud: vis registreringsdato som mintgrøn statusbadge. */
.badge-offer-settlement-date {
  background: var(--aqua);
  border: 1px solid color-mix(in srgb, var(--aqua) 72%, #062b3a 28%);
  color: #062b3a;
  min-width: 6.7rem;
  justify-content: center;
  font-weight: 800;
  white-space: nowrap;
}

/* System: kontrolleret nulstilling af driftsdata */
.sidebar-bottom{display:grid;gap:.5rem}.system-reset-card__icon{font-size:2rem;color:#a82b3c}.system-reset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.25rem 0}.system-reset-grid>section{padding:1rem;border:1px solid var(--line);border-radius:14px;background:#f8fbfc}.system-reset-grid h3{margin:0 0 .75rem}.system-data-list{display:grid;gap:.65rem;margin:0;padding:0;list-style:none}.system-data-list li{display:flex;align-items:flex-start;gap:.55rem;line-height:1.45}.system-data-list i{margin-top:.2rem}.system-data-list--removed i{color:#a82b3c}.system-data-list--kept i{color:#16724b}.system-schema-note{display:flex;align-items:flex-start;gap:.8rem;padding:1rem;border:1px solid #c8dce5;border-radius:14px;background:#f3f8fa}.system-schema-note>i{margin-top:.15rem;color:#0b6686;font-size:1.2rem}.system-schema-note div{display:grid;gap:.35rem}.system-schema-note span{color:var(--muted);line-height:1.5}.system-schema-note code{padding:.08rem .3rem;border-radius:5px;background:#e3edf2;color:#17384b}@media(max-width:800px){.system-reset-grid{grid-template-columns:1fr}}

/* Overview: keep the latest operational log collapsed until explicitly opened. */
.dashboard-audit-log{padding:0;overflow:hidden}.dashboard-audit-log>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.35rem 1.45rem;cursor:pointer;list-style:none}.dashboard-audit-log>summary::-webkit-details-marker{display:none}.dashboard-audit-log__heading{display:grid;gap:.3rem;min-width:0}.dashboard-audit-log__title{color:var(--ink);font-size:1.25rem;font-weight:850;line-height:1.25}.dashboard-audit-log>summary .subtext{margin:0}.dashboard-audit-log__icon{flex:0 0 auto;color:#476173;transition:transform .16s ease}.dashboard-audit-log[open] .dashboard-audit-log__icon{transform:rotate(180deg)}.dashboard-audit-log>summary:focus-visible{outline:none;box-shadow:inset var(--focus)}.dashboard-audit-log__content{padding:0 1.45rem 1.45rem;border-top:1px solid var(--line)}.dashboard-audit-log__content .table-wrap{margin-top:1.15rem}@media(max-width:700px){.dashboard-audit-log>summary{padding:1.15rem}.dashboard-audit-log__content{padding:0 1.15rem 1.15rem}}
/* Offer creation actions stay grouped in visual order. */
.offer-create-actions{justify-content:flex-start}

/* Regnskab */
#accounting.admin-section { min-height: calc(100vh - 7rem); margin-top: calc(-1 * clamp(1.3rem, 4vw, 3rem)); }
.accounting-page { margin: 0; background: #f4f1e9; color: #0b2743; }
.accounting-shell { gap: 1.25rem; }
.accounting-shell.is-active, .accounting-page .accounting-shell { display: grid; }
.accounting-page .accounting-shell { max-width: 1500px; margin: 0 auto; padding: 1.5rem; }
.accounting-header,.card-heading-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.accounting-header h1 { margin: 0; }
.accounting-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:1rem;flex-wrap:nowrap}.accounting-year-control{display:flex;align-items:center;gap:.65rem;min-width:0;white-space:nowrap}.accounting-year-control label{color:#52697b;font-size:.76rem;font-weight:800;letter-spacing:.02em}.accounting-toolbar select{min-width:8.5rem;height:44px;padding:.65rem 2.4rem .65rem .8rem;border:1px solid #c8d5de;border-radius:10px;background-color:#fff;color:#0b2743;font:inherit;font-weight:750;line-height:1.2;box-shadow:0 1px 2px rgba(8,35,62,.05);cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.accounting-toolbar select:hover{border-color:#8fa9bb;background-color:#fbfdfe}.accounting-toolbar select:focus{outline:none;border-color:#128b91;box-shadow:0 0 0 3px rgba(18,139,145,.16)}.accounting-toolbar .button{white-space:nowrap}.accounting-year-add{align-self:center;white-space:nowrap}
.accounting-metrics { margin: 0; }
.accounting-summary { margin:0; display:grid; gap:.65rem; }
.accounting-summary > div { display:flex; justify-content:space-between; gap:1rem; padding:.65rem 0; border-bottom:1px solid rgba(8,35,62,.12); }
.accounting-summary dt,.accounting-summary dd { margin:0; }
@media (max-width: 760px) {
  .accounting-header { align-items:flex-start; }
  .accounting-toolbar { width:100%; display:grid; grid-template-columns:1fr 1fr; }
  .accounting-year-control{display:grid;gap:.3rem;min-width:0}.accounting-toolbar .button,.accounting-toolbar select { width:100%; }
  .accounting-year-add{align-self:end}
}
.accounting-stripe-actions { display:flex; gap:.65rem; flex-wrap:wrap; }
.accounting-stripe-summary { grid-template-columns:repeat(3,minmax(0,1fr)); display:grid; column-gap:1.5rem; }
.accounting-stripe-summary > div { min-width:0; }
#accounting-stripe-table td:nth-child(2),#accounting-stripe-table td:nth-child(4){font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.86rem;word-break:break-all}
@media (max-width:760px){.accounting-page .accounting-shell{padding:.85rem}.accounting-stripe-summary{grid-template-columns:1fr}.accounting-stripe-actions{width:100%}.accounting-stripe-actions .button{flex:1 1 100%}}

/* Administration sidebar: keep the footer controls visible and let only the
   navigation list scroll on short viewports. */
.admin-sidebar-heading,
.sidebar-bottom{flex:0 0 auto}
.admin-sidebar nav{
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding-right:.2rem;
}
.admin-sidebar nav::-webkit-scrollbar{width:.45rem}
.admin-sidebar nav::-webkit-scrollbar-thumb{border-radius:999px;background:rgba(213,232,242,.28)}
.admin-sidebar nav::-webkit-scrollbar-track{background:transparent}
.sidebar-bottom{
  margin-top:.75rem;
  padding-top:.75rem;
  background:var(--deep);
}
@media(min-width:1001px){
  .admin-sidebar{
    height:100dvh;
    max-height:100dvh;
    overflow:hidden;
  }
  .admin-sidebar nav{flex:1 1 auto}
}
@media(max-width:900px){
  .admin-sidebar{
    height:100dvh;
    max-height:100dvh;
    overflow:hidden;
  }
  .admin-sidebar nav{flex:1 1 auto;margin-top:1rem}
  .sidebar-bottom{margin-top:.75rem;padding-bottom:env(safe-area-inset-bottom)}
}


/* Kundekartotek */
.customer-section-heading{align-items:flex-end}.customer-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.customer-search-group{flex:1;margin:0}.customer-search-wrap{position:relative}.customer-search-wrap>i{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.customer-search-wrap input{padding-left:2.65rem}.customer-count{margin:0 0 .75rem;color:var(--muted);white-space:nowrap}.customer-type-badge{display:inline-flex;margin-left:.55rem;padding:.14rem .45rem;border-radius:999px;background:#e4eef3;color:#17384b;font-size:.72rem;font-weight:700;vertical-align:middle}
[data-customer-open]{cursor:pointer;transition:background-color .16s ease}[data-customer-open]:hover td{background:#e8f5f7}[data-customer-open]:focus-visible{outline:2px solid #0b8e8a;outline-offset:-2px}[data-customer-open]:focus-visible td{background:#e1f1f3}
.modal-dialog--customer{width:min(980px,calc(100vw - 2rem));max-width:980px;max-height:calc(100vh - 2rem);overflow:auto;padding:0}
.customer-modal-header{margin:0;padding:1.05rem 1.35rem .95rem;border-bottom:1px solid #dce5ea;background:#fff}.customer-modal-header h2{font-size:1.4rem}.customer-form{padding:0}.customer-form-body{display:grid;gap:0;padding:.2rem 1.35rem .1rem}
.customer-form-section{min-width:0;margin:0;padding:.8rem 0;border:0;border-bottom:1px solid #e2e9ed}.customer-form-section--notes{border-bottom:0;padding-bottom:.85rem}
.customer-grid{display:grid;gap:.72rem .85rem;align-items:start}.customer-grid--identity{grid-template-columns:1.15fr 2.15fr 2fr 1fr}.customer-grid--contact{grid-template-columns:1.25fr 1.25fr .8fr}.customer-grid--address{grid-template-columns:2.6fr .75fr 1.35fr}
.customer-form .form-group{margin:0;align-content:start}.customer-form .form-group label{margin-bottom:.34rem;font-size:.84rem}.customer-form .form-group input,.customer-form .form-group select{height:42px;min-height:42px;padding:.58rem .72rem}.customer-form .form-group textarea{min-height:68px;padding:.65rem .72rem;resize:vertical}.customer-form .field-hint{display:block;margin-top:.28rem;color:var(--muted);font-size:.75rem;line-height:1.25}
.customer-actions{justify-content:space-between;margin:0;padding:.85rem 1.35rem;border-top:1px solid #dce5ea;background:#f7f9fa}.customer-actions__right{display:flex;gap:.65rem}.customer-form .form-message{margin:0;padding:0 1.35rem}.form-group.is-muted{opacity:.58}.form-group.is-muted input{background:#eef2f4}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:900px){.customer-grid--identity{grid-template-columns:1fr 2fr}.customer-grid--contact{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-grid--contact>.form-group:last-child{grid-column:1/2}.customer-grid--address{grid-template-columns:2fr .7fr 1.2fr}}
@media(max-width:700px){.customer-section-heading,.customer-toolbar{align-items:stretch;flex-direction:column}.customer-section-heading .button{width:100%}.customer-count{margin:0}.modal-dialog--customer{width:calc(100vw - 1rem);max-height:calc(100vh - 1rem)}.customer-modal-header{padding:1rem}.customer-form-body{padding:.1rem 1rem}.customer-form-section{padding:.9rem 0}.customer-grid--identity,.customer-grid--contact,.customer-grid--address{grid-template-columns:1fr}.customer-grid--contact>.form-group:last-child{grid-column:auto}.customer-actions{align-items:stretch;flex-direction:column-reverse;padding:.8rem 1rem}.customer-actions__right{display:grid}.customer-actions__right .button,.customer-actions>.button{width:100%}.customer-form .form-message{padding:0 1rem}}

/* Professional accounting workspace */
.accounting-tabs{display:flex;gap:.5rem;overflow-x:auto;padding:.25rem 0 .35rem;scrollbar-width:thin}.accounting-tabs button{border:1px solid rgba(8,35,62,.16);background:#fff;color:#0b2743;border-radius:999px;padding:.65rem .9rem;font:inherit;font-weight:700;white-space:nowrap;cursor:pointer}.accounting-tabs button:hover,.accounting-tabs button.is-active{background:#0b2743;color:#fff;border-color:#0b2743}.accounting-tabs i{margin-right:.35rem}.accounting-shell [data-accounting-panel]{display:grid;gap:1.25rem}.accounting-shell [data-accounting-panel][hidden]{display:none}.compliance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.8rem}.compliance-item{display:flex;align-items:flex-start;gap:.7rem;padding:.9rem;border:1px solid rgba(8,35,62,.12);border-radius:12px;background:#fff}.compliance-item i{margin-top:.15rem}.compliance-item span{display:grid;gap:.2rem}.compliance-item small{color:#5e6d79}.compliance-item.is-ok i{color:#137a52}.compliance-item.is-warning i{color:#a86400}.voucher-detail-head{display:flex;justify-content:space-between;gap:1rem;padding:1rem;border-radius:12px;background:#f4f1e9;margin-bottom:1rem}.voucher-detail-head>div{display:grid;gap:.25rem}.document-link{display:flex;align-items:flex-start;gap:.7rem;padding:.8rem;border:1px solid rgba(8,35,62,.14);border-radius:10px;text-decoration:none;color:inherit;margin:.5rem 0}.document-link span{display:grid;gap:.2rem}.document-link small{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem;word-break:break-all;color:#61717e}.modal-dialog-wide{width:min(900px,calc(100vw - 2rem))}.accounting-shell tbody tr[tabindex]{cursor:pointer}.accounting-shell tbody tr[tabindex]:hover{background:rgba(15,111,140,.08)}
@media(max-width:760px){.accounting-tabs{margin-inline:-.2rem}.voucher-detail-head{flex-direction:column}.accounting-shell .table-wrap{overflow:auto}.accounting-shell .admin-table{min-width:680px}}
.annual-report-card{background:#fff}.annual-report{display:grid;gap:1.25rem}.annual-report-header{padding:1.25rem;border:1px solid rgba(8,35,62,.14);border-radius:14px;background:#f7f8fa}.annual-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.annual-report-section{border:1px solid rgba(8,35,62,.12);border-radius:12px;padding:1rem}.annual-report-section h3{margin-top:0}.accounting-report-line{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0;border-bottom:1px solid rgba(8,35,62,.08)}.accounting-report-line.total{font-weight:800;border-top:2px solid #0b2743;border-bottom:0;margin-top:.4rem}.accounting-ledger{display:grid;gap:1rem}.ledger-account{border:1px solid rgba(8,35,62,.12);border-radius:12px;overflow:hidden}.ledger-account h3{margin:0;padding:.8rem 1rem;background:#f4f1e9}.accounting-adjustment-delete{white-space:nowrap}@media(max-width:800px){.annual-report-grid{grid-template-columns:1fr}}@media print{body *{visibility:hidden!important}.accounting-shell,.accounting-shell *{visibility:visible!important}.accounting-shell{position:absolute;inset:0;padding:0!important}.accounting-header,.accounting-tabs,[data-accounting-panel]:not([data-accounting-panel="reports"]),#accounting-message,#accounting-print-report,#accounting-adjustment-new,#accounting-ledger-load,.accounting-adjustment-delete{display:none!important}[data-accounting-panel="reports"]{display:block!important}.annual-report-card{box-shadow:none;border:0}.annual-report-grid{grid-template-columns:1fr 1fr}}

/* Regnskab: ensartet panelbredde og tabel-layout på alle underfaner. */
.accounting-shell [data-accounting-panel] {
  width: 100%;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}
.accounting-shell [data-accounting-panel] > .admin-card,
.accounting-shell [data-accounting-panel] > .split-card,
.accounting-shell [data-accounting-panel] .admin-card,
.accounting-shell [data-accounting-panel] .table-wrap {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.accounting-shell [data-accounting-panel] > .admin-card {
  margin-top: 0;
}
.accounting-shell [data-accounting-panel] .card-heading-row > div:first-child {
  min-width: 0;
}
.accounting-shell [data-accounting-panel] .admin-table {
  width: 100%;
}
.accounting-shell [data-accounting-panel="journal"] .admin-table,
.accounting-shell [data-accounting-panel="documents"] .admin-table,
.accounting-shell [data-accounting-panel="bank"] .admin-table,
.accounting-shell [data-accounting-panel="vat"] .admin-table,
.accounting-shell [data-accounting-panel="stripe"] .admin-table,
.accounting-shell [data-accounting-panel="audit"] .admin-table {
  min-width: 760px;
}
@media (max-width: 760px) {
  .accounting-shell [data-accounting-panel] > .admin-card {
    padding: 1rem;
  }
}

/* Regnskab: undgå at grid-rækker og faneknapper strækkes på korte underfaner. */
.accounting-shell {
  align-content: start;
  grid-auto-rows: max-content;
}
.accounting-tabs {
  align-items: center;
  align-self: start;
}
.accounting-tabs button {
  align-self: center;
  height: auto;
}

/* Regnskab: højrestillet værktøjslinje med 24 px afstand over sektionen. */
.accounting-header .accounting-toolbar {
  margin-left: auto;
  padding-top: 24px;
}

@media (max-width: 760px) {
  .accounting-header .accounting-toolbar {
    margin-left: 0;
  }
}

/* Indstillingssider: det øverste kort flugter med sidens top uden ekstra afstand. */
#business > .admin-card:first-child,
#website-content > .admin-card:first-child,
#booking-settings > .admin-card:first-child,
#mail-security > .admin-card:first-child {
  margin-top: 0;
}

/* Beskeder og Bookinger: det øverste kort flugter med sidens top. */
#messages > .admin-card:first-child,
#bookings > .admin-card:first-child {
  margin-top: 0;
}

/* Tilbud & Faktura: ingen ekstra topafstand over oprettelsesknapperne. */
#offers > .section-heading,
#offers .offer-create-actions {
  margin-top: 0;
}
.diagnostic-list .warning{border-left:4px solid #b7791f}

/* Regnskab > Kontoplan: venstrestil alle kolonneoverskrifter. */
#accounting-accounts-table thead th {
  text-align: left;
}

/* Regnskab: kontovisning i bogføringsjournal og venstrestillede kolonneoverskrifter. */
#accounting-table th {
  text-align: left;
}
#accounting-table .accounting-account-lines {
  display: grid;
  gap: .2rem;
  min-width: 250px;
}
#accounting-table .accounting-account-lines div {
  white-space: nowrap;
}
#accounting-table .accounting-account-lines strong {
  display: inline-block;
  width: 1.2rem;
}
#accounting-table .accounting-account-lines span {
  color: var(--muted);
  margin-left: .35rem;
}


/* Regnskab > Bogføring: design 4 – kort stil rækker med mintgrøn bilag-badge. */
.accounting-journal-card {
  background: #fff;
  border-color: var(--line);
  box-shadow: 0 12px 30px rgba(5, 34, 61, .05);
}
.accounting-journal-card .card-heading-row {
  align-items: flex-start;
  gap: 1rem;
}
.accounting-journal-heading {
  display: flex;
  align-items: flex-start;
  gap: .8rem;
  min-width: 0;
}
.accounting-journal-card {
  padding: .9rem;
}
.accounting-journal-icon {
  width: 2.45rem;
  height: 2.45rem;
  flex: 0 0 2.45rem;
  display: inline-grid;
  place-items: center;
  border-radius: 12px;
  background: #0b3d62;
  color: #fff;
  font-size: 1.05rem;
  box-shadow: 0 10px 22px rgba(11, 61, 98, .18);
}
.accounting-journal-list {
  display: grid;
  gap: 4px;
  margin-top: .65rem;
}
.accounting-journal-entry {
  display: grid;
  grid-template-columns: 62px minmax(0, 1.35fr) minmax(210px, .78fr) minmax(150px, .55fr) minmax(120px, .45fr);
  gap: .55rem;
  align-items: center;
  padding: .5rem .6rem;
  border: 1px solid #dbe5ec;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(5, 34, 61, .06);
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.accounting-journal-entry:hover,
.accounting-journal-entry:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(5, 34, 61, .1);
  border-color: #c6d7e1;
  outline: none;
}
.accounting-journal-badge {
  display: grid;
  place-items: center;
  width: 62px;
  aspect-ratio: 1;
  align-self: center;
  justify-self: start;
  border-radius: 12px;
  background: var(--aqua);
  color: #08233e;
  padding: .28rem;
  text-align: center;
  box-shadow: inset 0 0 0 1px rgba(8, 35, 62, .12);
}
.accounting-journal-badge__label {
  display: block;
  font-size: .74rem;
  font-weight: 800;
  line-height: 1;
  opacity: .86;
  text-transform: none;
}
.accounting-journal-badge strong {
  display: block;
  margin-top: .12rem;
  font-size: 1.6rem;
  line-height: 1;
  letter-spacing: -.04em;
}
.accounting-journal-main {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 0;
}
.accounting-journal-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .2rem;
  margin: 0;
  color: var(--muted);
  font-size: .84rem;
  font-weight: 700;
}
.accounting-journal-meta i {
  margin-right: .35rem;
}
.accounting-journal-main h3 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.25;
  color: var(--ink);
}
.accounting-journal-main p {
  margin: 0;
  color: var(--muted);
  font-size: .84rem;
  line-height: 1.2;
}
.accounting-journal-accounts {
  align-self: stretch;
  padding: .32rem .7rem;
  border-radius: 12px;
  background: #f5f8fb;
}
.accounting-journal-accounts h4 {
  margin: 0 0 .18rem;
  font-size: .71rem;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #496176;
}
#accounting-table .accounting-account-lines,
.accounting-journal-accounts .accounting-account-lines {
  display: grid;
  gap: .14rem;
  min-width: 0;
}
.accounting-journal-accounts .accounting-account-lines div {
  display: grid;
  grid-template-columns: 1.1rem minmax(0, 1fr) auto;
  gap: .26rem;
  align-items: baseline;
}
.accounting-journal-accounts .accounting-account-lines strong {
  display: inline-block;
  width: auto;
  color: #0b4466;
}
.accounting-journal-accounts .accounting-account-text {
  min-width: 0;
  color: var(--ink);
}
.accounting-journal-accounts .accounting-account-amount {
  color: var(--muted);
  white-space: nowrap;
}
.accounting-account-lines--empty {
  color: var(--muted);
}

.accounting-journal-document-column {
  display: grid;
  align-content: center;
  gap: .18rem;
  min-width: 0;
  padding: .32rem .45rem;
}
.accounting-journal-column-label {
  color: #496176;
  font-size: .71rem;
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.accounting-journal-documents {
  display: grid;
  gap: .18rem;
  min-width: 0;
}
.accounting-journal-documents a {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  min-width: 0;
  color: #0b6686;
  font-size: .82rem;
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.accounting-journal-documents a span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.accounting-journal-documents a i {
  flex: 0 0 auto;
  color: #b33b4a;
}
.accounting-journal-document-empty {
  color: var(--muted);
}
.accounting-journal-side {
  display: grid;
  justify-items: end;
  gap: .18rem;
  align-self: center;
  padding-left: 0;
}
.accounting-journal-amount {
  display: block;
  font-size: 1.42rem;
  line-height: 1;
  letter-spacing: -.04em;
  color: var(--ink);
  white-space: nowrap;
}
.accounting-status-chip {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .24rem .58rem;
  border-radius: 999px;
  border: 1px solid #d6e0e7;
  background: #f3f7fa;
  color: #2b5365;
  font-size: .75rem;
  font-weight: 800;
  line-height: 1.15;
  white-space: nowrap;
}
.accounting-status-chip i {
  font-size: .7rem;
}
.accounting-status-chip--posted,
.accounting-status-chip--paid,
.accounting-status-chip--matched,
.accounting-status-chip--filed {
  background: rgba(28, 164, 97, .18);
  border-color: rgba(28, 164, 97, .3);
  color: #157347;
}
.accounting-status-chip--reversed {
  background: rgba(176, 44, 66, .1);
  border-color: rgba(176, 44, 66, .18);
  color: #a31d3c;
}
.accounting-status-chip--draft,
.accounting-status-chip--manual {
  background: rgba(11, 68, 102, .08);
  border-color: rgba(11, 68, 102, .16);
  color: #0b4466;
}
.accounting-status-chip--unmatched,
.accounting-status-chip--ignored {
  background: rgba(183, 121, 31, .1);
  border-color: rgba(183, 121, 31, .18);
  color: #8d5c12;
}
@media (max-width: 980px) {
  .accounting-journal-entry {
    grid-template-columns: 62px minmax(0, 1fr) minmax(160px, .82fr);
    grid-template-areas:
      "badge main side"
      "badge accounts side"
      "badge document side";
  }
  .accounting-journal-badge { grid-area: badge; }
  .accounting-journal-main { grid-area: main; }
  .accounting-journal-accounts { grid-area: accounts; }
  .accounting-journal-document-column { grid-area: document; }
  .accounting-journal-side { grid-area: side; }
}
@media (max-width: 760px) {
  .accounting-journal-card .card-heading-row {
    flex-direction: column;
  }
  .accounting-journal-card #accounting-close-year {
    align-self: flex-end;
  }
  .accounting-journal-entry {
    grid-template-columns: 1fr;
    grid-template-areas: none;
    padding: .55rem;
  }
  .accounting-journal-badge,
  .accounting-journal-main,
  .accounting-journal-accounts,
  .accounting-journal-document-column,
  .accounting-journal-side {
    grid-area: auto;
  }
  .accounting-journal-badge {
    width: 62px;
    justify-items: center;
    text-align: center;
    padding: .28rem;
  }
  .accounting-journal-badge strong {
    font-size: 1.3rem;
  }
  .accounting-journal-side {
    justify-items: start;
    padding-left: 0;
  }
  .accounting-journal-amount {
    font-size: 1.22rem;
  }
}


/* Projektstandard: alle kolonneoverskrifter i alle tabeller venstrestilles. */
table thead th,
table thead td {
  text-align: left !important;
}

/* Regnskab > Bogføring: optimeret Bilagsdetaljer-modal. */
.modal-dialog--voucher-detail {
  width: min(980px, calc(100vw - 2rem));
  max-width: 980px;
  max-height: calc(100vh - 2rem);
  overflow: auto;
  padding: 0;
}
.voucher-detail-modal-header {
  position: sticky;
  top: 0;
  z-index: 3;
  margin: 0;
  padding: 1.1rem 1.35rem 1rem;
  border-bottom: 1px solid #dce5ea;
  background: rgba(255,255,255,.97);
  backdrop-filter: blur(12px);
}
.voucher-detail-modal-header .modal-kicker {
  margin: 0 0 .2rem;
}
.voucher-detail-modal-header h2 {
  margin: 0;
  font-size: 1.45rem;
}
.voucher-detail-body {
  display: grid;
  gap: 1rem;
  padding: 1.1rem 1.35rem 1.2rem;
}
.voucher-detail-summary {
  display: grid;
  grid-template-columns: 92px minmax(0,1fr) auto;
  align-items: center;
  gap: 1rem;
  padding: .9rem;
  border: 1px solid #d8e4ea;
  border-radius: 14px;
  background: linear-gradient(135deg,#f7fbfc,#edf7f6);
}
.voucher-detail-number {
  display: grid;
  place-items: center;
  align-self: stretch;
  min-height: 78px;
  padding: .55rem;
  border-radius: 12px;
  background: var(--aqua);
  color: #08233e;
  box-shadow: inset 0 0 0 1px rgba(8,35,62,.1);
}
.voucher-detail-number span,
.voucher-detail-total span {
  display: block;
  color: #526879;
  font-size: .76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.voucher-detail-number strong {
  display: block;
  font-size: 2rem;
  line-height: 1;
}
.voucher-detail-summary__main {
  min-width: 0;
}
.voucher-detail-date {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: var(--muted);
  font-size: .85rem;
  font-weight: 700;
}
.voucher-detail-summary__main h3 {
  margin: .3rem 0 0;
  color: var(--ink);
  font-size: 1.15rem;
  line-height: 1.3;
}
.voucher-detail-total {
  text-align: right;
  white-space: nowrap;
}
.voucher-detail-total strong {
  display: block;
  margin-top: .25rem;
  color: var(--ink);
  font-size: 1.65rem;
  letter-spacing: -.035em;
}
.voucher-detail-section {
  display: grid;
  gap: .65rem;
}
.voucher-detail-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.voucher-detail-section-heading > div {
  display: flex;
  align-items: center;
  gap: .7rem;
}
.voucher-detail-section-icon {
  width: 2rem;
  height: 2rem;
  display: inline-grid;
  place-items: center;
  flex: 0 0 2rem;
  border-radius: 9px;
  background: #e8f5f4;
  color: #087b78;
}
.voucher-detail-section-heading h3 {
  margin: 0;
  font-size: 1rem;
}
.voucher-detail-section-heading p {
  margin: .08rem 0 0;
  color: var(--muted);
  font-size: .8rem;
}
.voucher-postings-wrap {
  border-radius: 12px;
  overflow: hidden;
}
.voucher-postings-table {
  min-width: 680px;
}
.voucher-postings-table th,
.voucher-postings-table td {
  padding: .62rem .75rem;
  vertical-align: middle;
}
.voucher-postings-table thead th {
  background: #f2f6f8;
  color: #40566b;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.voucher-postings-table tbody tr:nth-child(even) td {
  background: #fbfcfd;
}
.voucher-account-code,
.voucher-account-name {
  display: block;
}
.voucher-account-code {
  color: #0b4466;
  font-weight: 850;
}
.voucher-account-name {
  margin-top: .08rem;
  color: var(--muted);
  font-size: .8rem;
}
.voucher-money {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.voucher-money--debit {
  color: #0b5b78;
}
.voucher-money--credit {
  color: #5c4b79;
}
.voucher-postings-table tfoot th,
.voucher-postings-table tfoot td {
  padding: .65rem .75rem;
  border-top: 2px solid #cbd9e1;
  background: #f7f9fa;
  font-weight: 850;
}
.voucher-postings-table tfoot td {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.voucher-document-list {
  display: grid;
  gap: .5rem;
}
.document-link {
  display: grid;
  grid-template-columns: 2.35rem minmax(0,1fr) auto;
  align-items: center;
  gap: .7rem;
  margin: 0;
  padding: .65rem .75rem;
  border: 1px solid #d8e3e9;
  border-radius: 11px;
  background: #fff;
  text-decoration: none;
  color: inherit;
  transition: border-color .16s ease, background-color .16s ease, transform .16s ease;
}
.document-link:hover,
.document-link:focus-visible {
  border-color: #8bcfcb;
  background: #f5fbfa;
  transform: translateY(-1px);
  outline: none;
}
.document-link__icon {
  width: 2.35rem;
  height: 2.35rem;
  display: inline-grid;
  place-items: center;
  border-radius: 10px;
  background: #e8f5f4;
  color: #087b78;
}
.document-link__content {
  min-width: 0;
  display: grid;
  gap: .15rem;
}
.document-link__content strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.document-link__content small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--muted);
  font-family: ui-monospace,SFMono-Regular,Consolas,monospace;
  font-size: .68rem;
}
.document-link__open {
  color: #6b7e8c;
}
.voucher-empty-documents {
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: .8rem .9rem;
  border: 1px dashed #bdced8;
  border-radius: 11px;
  background: #fafcfd;
  color: #607381;
}
.voucher-empty-documents > i {
  font-size: 1.3rem;
  color: #7d94a3;
}
.voucher-empty-documents div {
  display: grid;
  gap: .1rem;
}
.voucher-empty-documents strong {
  color: #334d60;
  font-size: .9rem;
}
.voucher-empty-documents span {
  font-size: .8rem;
}
.voucher-detail-actions {
  position: sticky;
  bottom: 0;
  z-index: 3;
  justify-content: space-between;
  margin: 0;
  padding: .85rem 1.35rem;
  border-top: 1px solid #dce5ea;
  background: rgba(247,249,250,.98);
  backdrop-filter: blur(12px);
}
.voucher-detail-actions__right {
  display: flex;
  gap: .65rem;
}
@media (max-width: 700px) {
  .modal-dialog--voucher-detail {
    width: calc(100vw - 1rem);
    max-height: calc(100vh - 1rem);
  }
  .voucher-detail-modal-header,
  .voucher-detail-body,
  .voucher-detail-actions {
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .voucher-detail-summary {
    grid-template-columns: 72px minmax(0,1fr);
  }
  .voucher-detail-number {
    min-height: 68px;
  }
  .voucher-detail-number strong {
    font-size: 1.65rem;
  }
  .voucher-detail-total {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: .6rem;
    border-top: 1px solid #d6e2e8;
    text-align: left;
  }
  .voucher-detail-total strong {
    margin: 0;
    font-size: 1.35rem;
  }
  .voucher-detail-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .voucher-detail-actions__right {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .voucher-detail-actions .button {
    width: 100%;
    justify-content: center;
  }
}

/* Regnskab: dokumentlinks i bogføringsjournal og komplet bilagsarkiv. */
.accounting-journal-documents {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin-top: .25rem;
}
.accounting-journal-documents a,
.accounting-document-table-link {
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  color: #0b6686;
  font-size: .78rem;
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.accounting-journal-documents a:hover,
.accounting-document-table-link:hover {
  color: #084c66;
}
.accounting-journal-documents i,
.accounting-document-table-link i {
  color: #b4434d;
}
.accounting-document-missing {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  color: #8d5c12;
  font-size: .8rem;
  font-weight: 750;
  white-space: nowrap;
}
#accounting-documents-table tbody tr {
  cursor: pointer;
}
#accounting-documents-table td {
  vertical-align: middle;
}

/* Regnskab: skeln mellem primære og relaterede bilagsdokumenter. */
.accounting-journal-documents,
.accounting-document-table-links,
.voucher-document-groups {
  display: grid;
  gap: .45rem;
}
.accounting-related-document-link {
  position: relative;
  border: 0 !important;
  background: rgba(49, 210, 200, .08) !important;
}
.accounting-related-document-link small {
  display: inline-flex;
  margin-left: .35rem;
  color: #147d81;
  font-size: .68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.voucher-document-groups > section {
  display: grid;
  gap: .45rem;
}
.voucher-document-groups > section + section {
  margin-top: .35rem;
  padding-top: .75rem;
  border-top: 1px solid var(--line);
}
.voucher-document-groups h4 {
  margin: 0;
  color: #496176;
  font-size: .76rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.document-link--related {
  border-style: dashed;
  background: rgba(49, 210, 200, .08);
}

/* Administration > Virksomhed: lock each grid cell to the top of its row so
   helper text in one column never redistributes the label/control spacing in
   the opposite column. Keep one fixed vertical rhythm between every label and
   its single-line control. */
#business .admin-form-grid>.form-group{
  align-content:start;
  grid-auto-rows:max-content;
  row-gap:.38rem;
}
#business .admin-form-grid>.form-group>label{
  margin:0;
  line-height:1.25;
}
#business .admin-form-grid>.form-group>.field-hint{
  margin:0;
  line-height:1.35;
}
