:root{--ink:#0b1633;--muted:#5d6880;--blue:#1261d8;--blue2:#0a3f9d;--cyan:#10a8c9;--pale:#f3f7fc;--line:#dce4ef;--white:#fff;--green:#167a51;--danger:#b42318;--shadow:0 18px 45px rgba(16,35,67,.12);--radius:20px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:16px/1.65 system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:#fff}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.container{width:min(1180px,calc(100% - 40px));margin:auto}.narrow{max-width:850px}.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;z-index:999;background:#fff;padding:10px}.topbar{background:#07142f;color:#dce9ff;font-size:13px}.topbar .container{display:flex;justify-content:space-between;padding:6px 0}.topbar a{color:#fff}.navrow{display:flex;align-items:center;justify-content:space-between;min-height:78px}.site-header{background:#fff;position:sticky;top:0;z-index:50;box-shadow:0 1px 0 var(--line)}.brand{display:flex;flex-direction:column;color:var(--ink);line-height:1.05}.brand strong{font-size:25px}.brand small{font-size:12px;color:var(--muted);margin-top:5px}.brand:hover{text-decoration:none}nav{display:flex;align-items:center;gap:24px}nav a,.linkbutton{color:var(--ink);font-weight:650;font-size:14px}.inline{display:inline}.linkbutton{background:none;border:0;cursor:pointer}.menu-button{display:none}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;padding:13px 20px;font-weight:750;box-shadow:0 8px 20px rgba(18,97,216,.22);cursor:pointer}.button:hover{text-decoration:none;filter:brightness(1.05)}.button.secondary{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}.button.light{background:#fff;color:var(--ink)}.button.danger{background:var(--danger)}.button.small{padding:10px 15px}.button.full{width:100%}.hero{padding:82px 0 70px;background:radial-gradient(circle at 80% 10%,#e7f5ff 0,transparent 33%),linear-gradient(180deg,#fff,#f7faff)}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:var(--blue);font-size:12px;font-weight:850}.hero h1,.pagehero h1{font-size:clamp(40px,5vw,68px);line-height:1.03;letter-spacing:-.045em;margin:14px 0 22px;max-width:900px}.lead{font-size:20px;color:var(--muted);max-width:760px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0}.ticks{display:flex;gap:20px;flex-wrap:wrap;padding:0;list-style:none;color:#34425f}.ticks li:before{content:"✓";color:var(--green);font-weight:900;margin-right:7px}.hero-art{height:430px;border-radius:28px;background:linear-gradient(135deg,#07142f,#123b7a);position:relative;overflow:hidden;box-shadow:var(--shadow)}.hero-art:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(16,168,201,.45),transparent 25%),linear-gradient(120deg,transparent 30%,rgba(255,255,255,.08))}.screen{position:absolute;left:55px;top:70px;right:55px;height:230px;border:10px solid #17233c;border-radius:15px;background:#f7faff;padding:34px;display:flex;flex-direction:column;box-shadow:0 35px 60px rgba(0,0,0,.35)}.screen span{font-weight:850;font-size:28px}.screen small{margin-top:25px;color:var(--muted)}.screen b{margin-top:8px;color:var(--blue)}.status-card{position:absolute;right:20px;bottom:24px;background:#fff;border-radius:16px;padding:18px 22px;display:flex;flex-direction:column;box-shadow:var(--shadow)}.status-card em{color:var(--green);font-style:normal;font-weight:800}.section{padding:82px 0}.section.pale{background:var(--pale)}.section.dark{background:#081632;color:#fff}.split-heading{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:end;margin-bottom:35px}.split-heading h2,.center-heading h2,.dark h2{font-size:40px;line-height:1.1;margin:8px 0}.split-heading p{color:var(--muted)}.audience-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.audience{padding:38px;border-radius:var(--radius);min-height:330px;box-shadow:var(--shadow)}.audience h3{font-size:32px;margin:0}.audience.private{background:#fff;border:1px solid var(--line)}.audience.business{color:#fff;background:linear-gradient(135deg,#102c65,#411b87)}.audience.business .button{background:#fff;color:#281764}.center-heading{text-align:center;max-width:760px;margin:0 auto 36px}.problem-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.problem{background:#fff;border:1px solid var(--line);border-radius:14px;padding:23px;min-height:120px;display:flex;flex-direction:column;justify-content:space-between;color:var(--ink);transition:.2s}.problem:hover{transform:translateY(-3px);box-shadow:var(--shadow);text-decoration:none}.problem span{color:var(--blue);font-size:22px}.steps{padding:0;list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.steps li{padding:25px;border:1px solid var(--line);border-radius:16px;display:flex;flex-direction:column}.steps b{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff}.steps strong{font-size:20px;margin-top:18px}.steps span{color:var(--muted)}.center{text-align:center;margin-top:30px}.trust-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.metric-grid div{padding:25px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:16px}.metric-grid strong{display:block;font-size:30px}.pagehero{padding:75px 0;background:linear-gradient(135deg,#f8fbff,#eaf3ff)}.businesshero{background:linear-gradient(120deg,#eff5ff,#eee9ff)}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.card{border:1px solid var(--line);border-radius:16px;padding:25px;background:#fff}.card h2{font-size:20px}.two-col{display:grid;grid-template-columns:1.3fr .7fr;gap:45px}.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:14px}.feature-list div{padding:18px;border:1px solid var(--line);border-radius:13px}.feature-list span{color:var(--green);margin-right:8px}.sidebox{background:var(--pale);padding:30px;border-radius:var(--radius)}.pricing,.booking-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.pricing article,.booking-grid article{border:1px solid var(--line);border-radius:var(--radius);padding:30px}.pricing strong{font-size:24px}.notice{margin-top:30px;padding:20px;background:#fff6df;border:1px solid #f3d787;border-radius:12px}.timeline{display:grid;grid-template-columns:1fr 1fr;gap:18px}.timeline article{padding:25px;border-left:4px solid var(--blue);background:var(--pale)}.formwrap{max-width:880px}.form{display:grid;gap:18px}.form fieldset{border:1px solid var(--line);border-radius:16px;padding:25px}.form legend{font-weight:850;padding:0 8px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form label{display:grid;gap:7px;font-weight:700}.form input,.form textarea,.form select{width:100%;font:inherit;color:var(--ink);border:1px solid #bac6d8;border-radius:9px;padding:12px;background:#fff}.form input:focus,.form textarea:focus,.form select:focus{outline:3px solid rgba(18,97,216,.18);border-color:var(--blue)}.check{grid-template-columns:auto 1fr!important;align-items:start}.check input{width:auto}.authsection{min-height:70vh;display:grid;place-items:center;padding:60px 20px;background:var(--pale)}.authcard{width:min(500px,100%);background:#fff;padding:40px;border-radius:var(--radius);box-shadow:var(--shadow)}.muted{color:var(--muted)}.portal{background:#f2f5f9;min-height:70vh;padding:45px 0 80px}.portalhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.portalhead h1{font-size:38px;margin:4px 0}.portalnav{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:13px;padding:7px;margin-bottom:22px}.portalnav a{padding:10px 15px;border-radius:8px;white-space:nowrap}.portalnav a.active{background:#eaf2ff;color:var(--blue)}.dashboard-grid,.ticket-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:0 5px 15px rgba(16,35,67,.04)}.span2{grid-column:span 2}.panelhead{display:flex;justify-content:space-between;align-items:center}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px;border-bottom:1px solid var(--line);white-space:nowrap}.status{display:inline-block;background:#eaf2ff;color:#154f9e;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800}.status.large{font-size:14px;padding:9px 14px}.quick{display:block;padding:10px 0;border-bottom:1px solid var(--line)}.facts{display:grid;grid-template-columns:130px 1fr}.facts dt,.facts dd{padding:8px;border-bottom:1px solid var(--line);margin:0}.facts dt{font-weight:800}.timeline-small{display:grid;gap:13px}.timeline-small div{display:grid;grid-template-columns:155px 1fr;gap:10px;border-left:3px solid var(--blue);padding-left:14px}.timeline-small small{grid-column:2;color:var(--muted)}.quote{display:grid;grid-template-columns:1fr auto auto;gap:20px;align-items:center;border:1px solid var(--line);border-radius:13px;padding:20px}.messages{display:grid;gap:13px;margin-bottom:20px}.messages article{padding:17px;background:var(--pale);border-radius:12px}.messages article.internal{background:#fff6df}.messages time{float:right;color:var(--muted);font-size:13px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.stats article{background:#fff;padding:24px;border-radius:15px;border:1px solid var(--line)}.stats strong{display:block;font-size:32px}.back{display:inline-block;margin-bottom:15px}.flash{padding:12px 20px;text-align:center;font-weight:750}.flash.success{background:#dcf5e9;color:#075c3b}.flash.error{background:#fee4e2;color:#912018}.prose{max-width:850px}footer{background:#07142f;color:#d6e0f2;padding:60px 0 20px}.footergrid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:50px}.footergrid h2{font-size:16px;color:#fff}.footergrid a{display:block;color:#d6e0f2;margin:7px 0}.brand.invert strong{color:#fff}.brand.invert small{color:#b7c7e3}.copyright{margin-top:35px;border-top:1px solid rgba(255,255,255,.14);padding-top:20px;font-size:13px;color:#9eacc3}
@media(max-width:900px){.menu-button{display:block}.navrow nav{display:none;position:absolute;left:20px;right:20px;top:105px;background:#fff;padding:20px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch}.navrow nav.open{display:flex}.hero-grid,.split-heading,.audience-grid,.trust-grid,.two-col{grid-template-columns:1fr}.problem-grid,.cards{grid-template-columns:1fr 1fr}.steps{grid-template-columns:1fr 1fr}.hero-art{height:360px}.pricing,.booking-grid{grid-template-columns:1fr}.dashboard-grid,.ticket-grid{grid-template-columns:1fr}.span2{grid-column:auto}.stats{grid-template-columns:1fr 1fr}}@media(max-width:600px){.container{width:min(100% - 26px,1180px)}.topbar .container{flex-direction:column}.hero{padding-top:50px}.hero h1,.pagehero h1{font-size:39px}.hero-art{height:300px}.screen{left:22px;right:22px;top:35px}.status-card{display:none}.problem-grid,.cards,.steps,.feature-list,.formgrid,.timeline,.footergrid,.stats{grid-template-columns:1fr}.section{padding:58px 0}.audience{padding:27px}.portalhead{align-items:flex-start;gap:15px;flex-direction:column}.quote{grid-template-columns:1fr}.timeline-small div{grid-template-columns:1fr}.timeline-small small{grid-column:1}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.booking-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.slot-card{display:flex;flex-direction:column;gap:.75rem}.ticket-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin:1rem 0 1.5rem}.form-inline{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.admin-grid{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(0,1.6fr);gap:1.25rem}.secret-code{font-family:ui-monospace,monospace;font-size:1.1rem;letter-spacing:.12em;background:#eef5ff;padding:1rem;border-radius:.6rem;overflow-wrap:anywhere}.break-word{overflow-wrap:anywhere}.recovery-codes{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;list-style:none;padding:0}.recovery-codes code{display:block;padding:.7rem;background:#f3f6fa;border-radius:.4rem;text-align:center}.table-wrap{overflow:auto}@media(max-width:800px){.admin-grid{grid-template-columns:1fr}.recovery-codes{grid-template-columns:1fr}}

/* TL Teknik 1.3 – serviceplattform */
.ok{color:var(--green)}.bad{color:var(--danger)}.muted{color:var(--muted)}.muted-card{opacity:.72}.card-top{display:flex;justify-content:flex-end}.device-summary{display:flex;flex-direction:column;gap:.2rem;padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--pale);margin-bottom:1rem}.admin-split{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}.admin-split details{border:1px solid var(--line);border-radius:12px;padding:1rem}.admin-split summary{cursor:pointer;font-weight:750}.quote-editor{display:grid;gap:.55rem;margin:1rem 0}.quote-row{display:grid;grid-template-columns:minmax(220px,2fr) .55fr .8fr .6fr;gap:.6rem;align-items:center}.quote-row-head{font-size:.78rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:0 .2rem}.quote-row input,.quote-row select{width:100%}.quote-history{display:grid;gap:1rem;margin-top:1.5rem}.quote-detail{border:1px solid var(--line);border-radius:14px;padding:1rem;background:#fff}.quote-detail h3{margin:.1rem 0}.quote-detail small{display:block;color:var(--muted)}.checklist{border:1px solid var(--line);border-radius:14px;padding:1rem;margin-top:1rem}.check-row{display:grid;grid-template-columns:minmax(250px,.8fr) 1.2fr;gap:1rem;align-items:center;padding:.65rem 0;border-bottom:1px solid var(--line)}.check-row:last-of-type{border-bottom:0}.publish-form{border-top:1px solid var(--line);margin-top:1rem;padding-top:1rem}.report{display:grid;grid-template-columns:180px 1fr;gap:.75rem 1.2rem}.report dt{font-weight:800}.report dd{margin:0}.notice-list{display:grid;gap:.7rem}.notice-item{display:flex;justify-content:space-between;gap:1rem;align-items:center;border:1px solid var(--line);border-radius:12px;padding:1rem;background:#fff}.notice-item.unread{border-left:4px solid var(--blue);background:#f7fbff}.notice-item p{margin:.25rem 0;color:var(--muted)}.notice-list.compact .notice-item{font-size:.9rem;padding:.75rem}.document-list{display:grid;gap:1rem}.document-card{border:1px solid var(--line);border-radius:14px;padding:1.1rem}.document-card details{margin-top:.8rem}.filterbar{display:grid;grid-template-columns:2fr 1fr auto auto;gap:.8rem;align-items:end;margin-bottom:1rem}.filterbar label{display:grid;gap:.3rem}.portalnav{flex-wrap:wrap}.portalnav a{white-space:nowrap}
@media(max-width:900px){.admin-split,.quote-row,.check-row,.filterbar,.report{grid-template-columns:1fr}.quote-row-head{display:none}.notice-item{align-items:flex-start;flex-direction:column}}

/* TL Teknik 1.4 – fullbredds ärendekonversation */
.wide-container{width:min(96% - 24px,1440px)}
.ticket-workspace .ticket-heading{margin-bottom:10px}.ticket-details-grid{margin-top:24px}
.conversation-panel{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 14px 36px rgba(16,35,67,.08);overflow:hidden;margin:20px 0 28px}
.conversation-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding:28px 32px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#f8fbff,#eef5ff)}
.conversation-head h2{font-size:28px;margin:.25rem 0}.conversation-head p{margin:0;color:var(--muted);max-width:760px}.conversation-count{white-space:nowrap;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 13px;font-size:13px;font-weight:800}
.conversation-thread{padding:28px 32px;display:grid;gap:18px;background:#f6f8fb;max-height:none}
.mail-message{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;max-width:88%;align-items:start}.mail-message.customer-message{justify-self:start}.mail-message.admin-message{justify-self:end;grid-template-columns:minmax(0,1fr) 44px}.mail-message.admin-message .mail-avatar{grid-column:2}.mail-message.admin-message .mail-message-body{grid-column:1;grid-row:1}
.mail-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#dfe9f7;color:#154f9e;font-weight:900;font-size:13px}.admin-message .mail-avatar{background:#155bc4;color:#fff}
.mail-message-body{background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px 19px;min-width:260px;box-shadow:0 4px 12px rgba(16,35,67,.04)}.admin-message .mail-message-body{background:#eef5ff;border-color:#cfe0f7}
.mail-message-body header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border-bottom:1px solid rgba(16,35,67,.08);padding-bottom:10px;margin-bottom:12px}.mail-message-body header div{display:grid}.mail-message-body header span,.mail-message-body time{font-size:12px;color:var(--muted)}
.mail-text{white-space:normal;overflow-wrap:anywhere;word-break:normal;font-size:15.5px;line-height:1.72}.mail-message-body footer{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-top:14px;padding-top:10px;border-top:1px solid rgba(16,35,67,.08)}
.original-message .mail-message-body{border-left:4px solid var(--blue)}.reply-quote{margin:0 0 13px;padding:10px 12px;border-left:3px solid #8aa7cf;background:rgba(255,255,255,.65);display:grid;gap:3px;border-radius:6px}.reply-quote strong{font-size:12px}.reply-quote span{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.text-action{border:0;background:none;padding:0;color:var(--blue);font:inherit;font-weight:750;cursor:pointer}.text-action:hover{text-decoration:underline}.read-state{font-size:12px;color:var(--muted)}
.conversation-composer{padding:26px 32px 30px;border-top:1px solid var(--line);display:grid;gap:12px;background:#fff}.conversation-composer label{display:flex;justify-content:space-between;gap:16px;align-items:baseline}.conversation-composer textarea{width:100%;box-sizing:border-box;min-height:260px;resize:vertical;border:1px solid #aebcd0;border-radius:14px;padding:17px 18px;font:16px/1.65 system-ui;color:var(--ink);background:#fff}.conversation-composer textarea:focus{outline:3px solid rgba(18,97,216,.16);border-color:var(--blue)}.composer-footer{display:flex;justify-content:space-between;gap:16px;align-items:center}.character-count{font-size:13px;color:var(--muted)}
.reply-preview{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:12px 15px;border:1px solid #cddbf0;background:#f2f7ff;border-radius:10px}.reply-preview[hidden]{display:none}.reply-preview div{display:grid;gap:3px}.reply-preview span{font-size:13px;color:var(--muted)}
.internal-notes-panel{border-left:4px solid #e8b949}.internal-note-list{display:grid;gap:10px;margin:15px 0 20px}.internal-note-list article{padding:14px 16px;background:#fff8e7;border:1px solid #ead596;border-radius:11px}.internal-note-list header{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.internal-note-list time{color:var(--muted);font-size:12px}
.booking-admin-list{display:grid;gap:14px}.booking-admin-card{padding:20px}.booking-admin-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin:12px 0 18px}.booking-admin-facts span{overflow-wrap:anywhere}.booking-status-form{border-top:1px solid var(--line);padding-top:14px}.booking-status-form input{min-width:260px;flex:1}
.price-admin-list{display:grid;gap:16px}.price-admin-item{border:1px solid var(--line);border-radius:13px;padding:16px;background:#f9fbfd}.dynamic-pricing{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.dynamic-pricing small{color:var(--muted)}
@media(max-width:800px){.wide-container{width:min(100% - 24px,1440px)}.conversation-head{padding:22px 18px;flex-direction:column}.conversation-thread{padding:20px 12px}.mail-message,.mail-message.admin-message{max-width:100%;grid-template-columns:36px minmax(0,1fr)}.mail-message.admin-message{grid-template-columns:minmax(0,1fr) 36px}.mail-avatar{width:36px;height:36px}.mail-message-body{min-width:0;padding:14px}.mail-message-body header{flex-direction:column;gap:4px}.conversation-composer{padding:20px 15px}.conversation-composer label{align-items:flex-start;flex-direction:column;gap:3px}.conversation-composer textarea{min-height:220px}.booking-admin-facts{grid-template-columns:1fr}}
.price-picker{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line);background:#f7faff;border-radius:12px}.price-picker label{flex:1;min-width:260px}
.unread-badge{display:inline-block;background:#155bc4;color:#fff;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:850}.unread-badge:hover{color:#fff;text-decoration:none;background:#0f4fad}
.invoice-sheet{background:#fff;border:1px solid var(--line);border-radius:18px;padding:40px;box-shadow:0 10px 30px rgba(16,35,67,.06)}.invoice-header{display:flex;justify-content:space-between;gap:30px;border-bottom:2px solid var(--ink);padding-bottom:24px}.invoice-header h1{margin:.2rem 0}.invoice-meta{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:28px 0}.invoice-meta dl{display:grid;grid-template-columns:130px 1fr;margin:0}.invoice-meta dt{font-weight:800}.invoice-meta dd{margin:0}.invoice-meta dt,.invoice-meta dd{padding:5px 0}.invoice-total{margin:25px 0 0 auto;max-width:380px}.invoice-total div{display:flex;justify-content:space-between;gap:20px;padding:8px 0}.invoice-total .grand{border-top:2px solid var(--ink);font-size:20px;margin-top:6px}.invoice-notes{margin-top:30px;border-top:1px solid var(--line);padding-top:20px}.invoice-footer{margin-top:40px;border-top:1px solid var(--line);padding-top:16px;color:var(--muted);font-size:13px}@media print{.site-header,footer,.no-print,.flash{display:none!important}.portal.invoice-page{background:#fff;padding:0}.invoice-sheet{border:0;box-shadow:none;border-radius:0;padding:0}.container{width:100%;max-width:none}.invoice-page a{color:#000;text-decoration:none}}

/* TL Teknik 1.5 – bokningsadministration */
.booking-slots-page .portalhead{align-items:flex-start}.slot-admin-layout{display:grid;grid-template-columns:minmax(360px,.82fr) minmax(560px,1.45fr);gap:22px;align-items:start}.slot-editor-column{display:grid;gap:22px}.slot-form{padding:28px}.panel-title{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:20px}.panel-title h2{margin:.15rem 0;font-size:24px}.panel-title p{margin:.35rem 0 0;color:var(--muted)}.slot-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.slot-form .field{display:grid;align-content:start;gap:7px;font-weight:760;min-width:0}.slot-form .field>span{font-size:14px}.slot-form .field small{font-size:12px;font-weight:500;line-height:1.35;color:var(--muted)}.slot-form .field-wide{grid-column:1/-1}.slot-form input,.slot-form select,.slot-form textarea{display:block;width:100%;max-width:100%;min-height:46px;border:1px solid #b9c6d8;border-radius:10px;padding:10px 12px;background:#fff;color:var(--ink);font:inherit}.slot-form textarea{min-height:100px;resize:vertical}.slot-form input:focus,.slot-form select:focus,.slot-form textarea:focus{outline:3px solid rgba(18,97,216,.14);border-color:var(--blue)}.slot-form .form-actions{display:flex;justify-content:flex-start;margin-top:22px}.weekday-picker{border:1px solid var(--line);border-radius:12px;padding:14px 15px}.weekday-picker legend{font-weight:800;padding:0 6px}.weekday-picker>div{display:flex;gap:8px;flex-wrap:wrap}.weekday-picker label{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:7px 11px;background:#fff;font-size:13px;cursor:pointer}.weekday-picker input{width:auto;min-height:0;margin:0}.slot-list-panel{padding:0;overflow:hidden}.slot-list-head{padding:28px 28px 18px;margin:0;border-bottom:1px solid var(--line)}.slot-list{padding:12px 20px 24px}.slot-date-heading{font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:20px 6px 9px}.slot-row{display:grid;grid-template-columns:130px minmax(170px,1fr) 80px 100px auto;gap:14px;align-items:center;padding:14px 10px;border-top:1px solid var(--line)}.slot-row:first-of-type{border-top:0}.slot-time{display:grid}.slot-time strong{font-size:16px}.slot-time span,.slot-capacity span,.slot-meta small{font-size:12px;color:var(--muted)}.slot-meta{display:grid;min-width:0}.slot-meta>span,.slot-meta>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot-capacity{display:grid;text-align:center}.slot-action{justify-self:end}.slot-row.is-blocked{opacity:.65;background:#fafafa}.slot-row.is-full{background:#fffaf0}.status.status-ok{background:#e4f6ec;color:#11653f}.status.status-warn{background:#fff2d9;color:#895500}.status.status-neutral{background:#edf0f4;color:#515b6b}.empty-state{display:grid;gap:5px;padding:48px 28px;text-align:center;color:var(--muted)}.empty-state strong{color:var(--ink);font-size:18px}
@media(max-width:1080px){.slot-admin-layout{grid-template-columns:1fr}.slot-list-panel{order:2}}@media(max-width:720px){.slot-form-grid{grid-template-columns:1fr}.slot-form .field-wide{grid-column:auto}.slot-form{padding:20px}.slot-row{grid-template-columns:1fr auto;gap:8px 14px;padding:15px 6px}.slot-meta{grid-column:1/-1}.slot-capacity{text-align:left}.slot-action{grid-column:2;grid-row:1/3}.slot-list{padding:8px 14px 20px}.slot-list-head{padding:22px 20px 14px}.weekday-picker>div{gap:6px}}

/* TL Teknik 1.6 – företagsportal */
.business-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.business-card{display:flex;justify-content:space-between;gap:22px;align-items:flex-end;color:var(--ink);text-decoration:none;transition:transform .16s ease,box-shadow .16s ease}.business-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(16,35,67,.08);text-decoration:none}.business-card h2{margin:.55rem 0 .2rem}.business-card p{margin:0;color:var(--muted)}.business-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 22px}.metric{border:1px solid var(--line);background:#fff;border-radius:15px;padding:20px;display:grid;gap:3px}.metric strong{font-size:28px}.metric span{color:var(--muted);font-size:13px}.business-dashboard{align-items:start}.stack-list{display:grid;gap:10px}.stack-list article{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.stack-list article:last-child{border-bottom:0}.stack-list article>div,.stack-list article:not(:has(div)){min-width:0}.stack-list span{font-size:13px;color:var(--muted)}.member-list{display:grid;gap:12px}.member-list>article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.member-list>article:last-child{border-bottom:0}.member-list article>div:first-child{display:grid;min-width:0}.member-list article>div:first-child span{font-size:13px;color:var(--muted);overflow-wrap:anywhere}.member-actions{grid-column:1/-1;display:flex;gap:8px;align-items:center}.member-actions select{min-width:210px}.button.tiny{padding:7px 10px;font-size:12px}.inline-form{display:grid;grid-template-columns:minmax(220px,1fr) minmax(240px,1fr) auto;gap:14px;align-items:end}.inline-form label{display:grid;gap:6px;font-weight:750}.inline-form input,.inline-form select{min-height:45px;border:1px solid #b9c6d8;border-radius:10px;padding:9px 11px;background:#fff}.invite-panel{margin-top:30px;padding:34px}.notice-box{border:1px solid #cfe0f7;background:#f2f7ff;border-radius:12px;padding:15px 17px}.readonly-composer{background:#f7f9fc}.company-tag{display:inline-block;margin-top:5px;padding:4px 8px;border-radius:999px;background:#eef5ff;color:#155bc4;font-size:12px;font-weight:750}.table-sub{display:block;color:var(--muted);font-size:12px;font-weight:500;margin-top:2px}.admin-company-layout{display:grid;grid-template-columns:minmax(320px,.65fr) minmax(580px,1.35fr);gap:20px;align-items:start}.company-table-panel{min-width:0}
@media(max-width:980px){.admin-company-layout{grid-template-columns:1fr}.business-summary{grid-template-columns:1fr 1fr}.inline-form{grid-template-columns:1fr}}
@media(max-width:620px){.business-summary{grid-template-columns:1fr}.member-list>article{grid-template-columns:1fr}.member-list .status{justify-self:start}.business-card{align-items:flex-start;flex-direction:column}}
.metric-inline{display:flex;align-items:baseline;gap:10px;margin:12px 0}.metric-inline strong{font-size:34px}.metric-inline span{color:var(--muted)}
/* TL Teknik 1.7.0 */
.article-shell{max-width:860px}.article-shell h1{max-width:800px}.article-body{font-size:1.08rem;line-height:1.8;white-space:normal;margin:2rem 0}.article-cta{margin-top:2.5rem}.metric-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--border,#dbe3ef)}.metric-row:last-child{border-bottom:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-grid label{display:grid;gap:.45rem;font-weight:700}.form-grid input,.form-grid select,.form-grid textarea{width:100%;box-sizing:border-box}.form-grid .span2{grid-column:1/-1}@media(max-width:760px){.form-grid{grid-template-columns:1fr}.form-grid .span2{grid-column:auto}}

/* TL Teknik 1.8 – sammanhållet admin-UI, formulärsystem och cache-bustad layout */
.admin .container{width:min(1320px,calc(100% - 32px))}.admin .portalhead{gap:22px;align-items:flex-end}.admin .portalhead>div:first-child{min-width:0}.admin .portalhead h1{letter-spacing:-.03em}.admin .portalhead p{max-width:820px;margin:.35rem 0 0}
.admin .portalnav{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:9px;overflow:visible;background:transparent;border:0;border-radius:0;padding:0;margin:0 0 26px}.admin .portalnav a{display:flex;align-items:center;justify-content:center;min-height:58px;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:12px;color:var(--ink);font-weight:800;font-size:13px;text-align:center;white-space:normal;line-height:1.25;box-shadow:0 4px 12px rgba(16,35,67,.035);transition:.16s ease}.admin .portalnav a:hover{transform:translateY(-1px);border-color:#b8cae4;box-shadow:0 8px 20px rgba(16,35,67,.07);text-decoration:none}.admin .portalnav a.active{background:linear-gradient(135deg,#eaf3ff,#f5f8ff);border-color:#9fbfea;color:#0c56bc;box-shadow:inset 0 0 0 1px rgba(18,97,216,.08)}
.admin .panel{border-radius:18px}.admin .panel-title{margin-bottom:22px}.admin .panel-title h2{letter-spacing:-.02em}.admin .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-bottom:22px}.admin .stats article,.admin .stats a{min-height:126px;background:#fff;border:1px solid var(--line);border-radius:17px;padding:25px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 5px 15px rgba(16,35,67,.035)}.admin .stats strong{font-size:32px;line-height:1;margin-bottom:10px}.admin .stats span{color:var(--muted);font-weight:650}
.admin .form-grid,.admin .admin-form-grid,.admin .slot-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.admin .field,.admin .form-grid>label,.admin .admin-form-grid>label{display:grid;align-content:start;gap:7px;min-width:0;font-weight:760}.admin .field>span,.admin .form-grid>label{font-size:14px}.admin .field-wide,.admin .form-grid .span2,.admin .admin-form-grid .field-wide{grid-column:1/-1}.admin .field small,.admin .form-grid small,.admin .admin-form-grid small{font-size:12px;line-height:1.4;color:var(--muted);font-weight:500}
.admin input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),.admin select,.admin textarea{display:block;width:100%;max-width:100%;min-height:46px;border:1px solid #b7c4d6;border-radius:10px;background:#fff;color:var(--ink);padding:10px 12px;font:inherit;line-height:1.35;box-shadow:inset 0 1px 1px rgba(16,35,67,.025)}.admin textarea{min-height:110px;resize:vertical}.admin input:focus,.admin select:focus,.admin textarea:focus{outline:3px solid rgba(18,97,216,.14);border-color:var(--blue);box-shadow:none}.admin input[type="checkbox"],.admin input[type="radio"]{accent-color:var(--blue)}
.admin .form-actions,.admin .editor-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:22px}.admin .admin-split-grid{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(420px,1.2fr);gap:20px;align-items:start;margin-bottom:22px}.admin .admin-form-card{padding:28px}.admin .compact-field{display:grid;gap:5px;font-weight:750;font-size:12px}.admin .compact-field select{min-width:150px}.admin .report-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:end;justify-content:flex-end}
.admin .tablewrap{border-radius:12px}.admin table th{font-size:12px;text-transform:uppercase;letter-spacing:.045em;color:#52617a;background:#f8fafc}.admin table td,.admin table th{padding:14px 13px}.admin table tbody tr:hover{background:#fbfdff}
.admin .knowledge-editor{display:grid;gap:20px}.admin .editor-section{padding:30px}.admin .article-editor-panel{padding-bottom:32px}.admin .article-editor-textarea{min-height:540px!important;font:16px/1.7 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.admin .seo-editor-panel{background:linear-gradient(180deg,#fff,#f9fbff)}
.admin .api-token-once{border-color:#8cc7a8;background:#f1fbf5}.admin .api-token-once code{display:block;margin-top:14px;padding:16px;background:#092315;color:#d9ffeb;border-radius:10px;overflow:auto;white-space:nowrap;font:14px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.admin .code-sample{padding:14px;background:#0b1633;color:#e9f2ff;border-radius:10px;overflow:auto}.admin .endpoint-list{display:grid;gap:8px;margin:14px 0}.admin .endpoint-list code{display:block;padding:9px 11px;background:#f3f6fa;border:1px solid var(--line);border-radius:8px}
.admin.booking-slots-page .slot-form{padding:30px}.admin.booking-slots-page .slot-form-grid{gap:18px}.admin.booking-slots-page .slot-form .field>span{display:block;margin-bottom:1px}.admin.booking-slots-page .weekday-picker{grid-column:1/-1;margin:0;padding:16px}.admin.booking-slots-page .weekday-picker>div{display:flex;gap:8px;flex-wrap:wrap}.admin.booking-slots-page .weekday-picker label{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;background:#fff;border:1px solid var(--line);border-radius:999px;font-weight:700}.admin.booking-slots-page .weekday-picker input{width:auto!important;min-height:0!important;margin:0}.admin.booking-slots-page .slot-list-panel{min-width:0}
@media(max-width:980px){.admin .portalnav{grid-template-columns:repeat(4,minmax(0,1fr))}.admin .admin-split-grid{grid-template-columns:1fr}.admin .portalhead{align-items:flex-start;flex-direction:column}.admin .report-actions{justify-content:flex-start}.admin .stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.admin .container{width:min(100% - 22px,1320px)}.admin .portalnav{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.admin .portalnav a{min-height:52px;font-size:12px}.admin .form-grid,.admin .admin-form-grid,.admin .slot-form-grid{grid-template-columns:1fr}.admin .field-wide,.admin .form-grid .span2,.admin .admin-form-grid .field-wide{grid-column:auto}.admin .stats{grid-template-columns:1fr 1fr}.admin .editor-section,.admin .admin-form-card,.admin.booking-slots-page .slot-form{padding:21px}.admin .article-editor-textarea{min-height:380px!important}.admin .report-actions{display:grid;width:100%;grid-template-columns:1fr}.admin .report-actions .button{width:100%}}
@media(max-width:440px){.admin .portalnav{grid-template-columns:1fr 1fr}.admin .stats{grid-template-columns:1fr}}
/* TL Teknik 1.9.0 – serviceavtal, SLA och företagsrapporter */
.admin .contract-cards{display:grid;gap:12px}.admin .contract-card{border:1px solid var(--line);border-radius:14px;padding:18px;background:#fbfdff;display:grid;gap:14px}.admin .contract-card h3{margin:.25rem 0}.admin .compact-facts{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0}.admin .compact-facts dt{color:var(--muted);font-size:12px;font-weight:800}.admin .compact-facts dd{margin:0;font-weight:700}.admin .inline-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.admin .inline-actions select{width:auto;min-width:160px}.admin .checkbox-line{display:flex!important;align-items:center!important;gap:8px!important;align-self:end;min-height:46px}.admin .checkbox-line input{width:auto!important;min-height:0!important}.report-stack{margin-top:16px}.report-print-head{display:flex;justify-content:space-between;gap:20px;align-items:center}.portal .contract-card{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff}
@media print{header,footer,.portalnav,.back,.button{display:none!important}.portal{padding:0!important}.panel,.metric{box-shadow:none!important;break-inside:avoid}.container{width:100%!important;max-width:none!important}}
/* TL Teknik 2.0 - SLA/worklog */
.sla-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.sla-facts>div,.mini-stats>div{border:1px solid #dbe4f0;border-radius:14px;padding:14px;background:#f8fbff}.sla-facts strong,.sla-facts span,.mini-stats strong,.mini-stats span{display:block}.sla-facts span,.mini-stats span{margin-top:5px;color:#516078}.mini-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.mini-stats strong{font-size:1.6rem}.sla-ok,.sla-met{background:#eaf8ef!important;color:#166534!important}.sla-warning{background:#fff7df!important;color:#92400e!important}.sla-breached,.sla-missed{background:#fff0f0!important;color:#b42318!important}.sla-paused{background:#eef2ff!important;color:#3730a3!important}.sla-ticket-panel .inline-actions{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.sla-ticket-panel select{min-width:320px}.sla-summary-panel{margin:22px 0}@media(max-width:850px){.sla-facts,.mini-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.sla-facts,.mini-stats{grid-template-columns:1fr}.sla-ticket-panel select{min-width:0;width:100%}}
/* TL Teknik 2.1 - adminroller, behörigheter och kontolivscykel */
.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.permission-row{display:grid;grid-template-columns:minmax(130px,1fr) auto auto;align-items:center;gap:12px;border:1px solid var(--line);background:#f8fbff;border-radius:11px;padding:11px 13px}.permission-row label{display:inline-flex!important;align-items:center!important;grid-template-columns:none!important;gap:6px!important;font-size:13px!important;font-weight:700!important}.permission-row input{width:auto!important;min-height:0!important}.admin-account{border:1px solid var(--line);border-radius:15px;padding:18px;margin:14px 0;background:#fff}.admin-account.is-disabled{opacity:.65;background:#f7f7f7}.read-only-note{padding:13px 15px;margin:10px 0;background:#fff7df;border:1px solid #efd48a;border-radius:10px;color:#7a4c00;font-weight:700}.danger-zone{border-color:#f0b7b2!important;background:linear-gradient(180deg,#fff,#fffafa)!important}.danger-details{margin-top:18px;border-top:1px solid #f0c7c3;padding-top:16px}.danger-details summary{cursor:pointer;font-weight:850;color:var(--danger)}.ticket-admin-bar{margin-bottom:18px}.assignment-grid{display:grid;grid-template-columns:minmax(420px,1fr) auto;gap:18px;align-items:end}.assignment-grid form:last-child{justify-self:end}.admin code{font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#f1f5f9;padding:3px 6px;border-radius:6px}@media(max-width:850px){.permission-grid{grid-template-columns:1fr}.assignment-grid{grid-template-columns:1fr}.assignment-grid form:last-child{justify-self:start}}@media(max-width:560px){.permission-row{grid-template-columns:1fr auto auto}}
/* TL Teknik 2.2 - produktionsdrift, kalender, mailcenter och SEO */
.ops-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}.health-card{position:relative;min-height:170px}.health-card h2{margin:.25rem 0 .5rem}.health-card>strong{display:block;font-size:22px}.health-dot{position:absolute;right:18px;top:18px;width:12px;height:12px;border-radius:50%;background:#8793a8;box-shadow:0 0 0 5px #eef2f7}.health-dot.ok{background:#178b59;box-shadow:0 0 0 5px #e5f6ee}.health-dot.warn{background:#d89000;box-shadow:0 0 0 5px #fff4d8}.health-dot.bad{background:#c9382b;box-shadow:0 0 0 5px #ffe9e7}.admin-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-head{padding:18px 20px 10px}.calendar-head h2{margin:0 0 12px}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;color:var(--muted);font-size:12px;font-weight:850;text-align:center}.calendar-day{min-height:165px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:10px;display:flex;flex-direction:column;gap:7px;overflow:hidden}.calendar-day.outside{opacity:.48;background:#f8fafc}.calendar-day.today{outline:2px solid rgba(18,97,216,.45);background:#f8fbff}.calendar-day header{display:flex;justify-content:space-between;align-items:center}.calendar-day header strong{font-size:18px}.calendar-day header small{color:var(--muted);font-weight:700}.cal-event{display:block;padding:7px 8px;border-radius:8px;font-size:11px;line-height:1.28;text-decoration:none}.cal-event b,.cal-event span{display:block}.cal-event.booking{background:#eaf3ff;color:#124c9c;border:1px solid #bfd7f6}.cal-event.booking:hover{text-decoration:none;background:#dcecff}.cal-event.slot{background:#effaf4;color:#176242;border:1px solid #c3e7d2}.cal-event.slot.blocked{background:#f4f5f7;color:#7a8393;border-color:#d9dee7}.mail-error{white-space:pre-wrap;max-width:500px;max-height:180px;overflow:auto;background:#fff2f1;color:#8f2720;padding:10px;border-radius:8px;font-size:12px}.mail-failed{background:#feeceb!important;color:#a52b21!important}.mail-queued{background:#fff5d9!important;color:#855b00!important}.mail-sent{background:#e8f8ef!important;color:#176342!important}.code-sample{white-space:pre-wrap;word-break:break-word}.admin details summary{cursor:pointer;font-weight:750}.admin .portalhead .actions{margin:0}.admin .portalhead .actions .button{white-space:nowrap}@media(max-width:1050px){.ops-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-calendar{grid-template-columns:repeat(7,minmax(120px,1fr));overflow-x:auto;padding-bottom:8px}.calendar-head{overflow-x:auto}.calendar-weekdays{min-width:896px}}@media(max-width:700px){.ops-grid{grid-template-columns:1fr}.admin .portalhead .actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.admin .portalhead .actions .button{width:100%}.admin-calendar{grid-template-columns:1fr;overflow:visible}.calendar-weekdays{display:none}.calendar-day{min-height:auto}.calendar-day.outside{display:none}}

/* TL Teknik 2.3 – backup & driftfinish */
.stack-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.stack-actions form{margin:0}.checkbox-field{display:flex!important;gap:.7rem;align-items:flex-start}.checkbox-field input{width:auto!important;min-height:0!important;margin-top:.25rem}.status-pill.success{background:#eaf8ef;color:#17653a}.status-pill.failed{background:#fdecec;color:#9d1c1c}.status-pill.running{background:#eef5ff;color:#1d5fae}.status-pill.partial{background:#fff6dd;color:#7a5700}.panel code{overflow-wrap:anywhere}@media(max-width:720px){.stack-actions{flex-direction:column;align-items:stretch}.stack-actions form,.stack-actions button{width:100%}}

/* TL Teknik 2.4 – tillgänglighet, QA och säkerhetsöversikt */
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid rgba(18,97,216,.38);outline-offset:3px}
[aria-current="page"]{text-decoration-thickness:2px;text-underline-offset:4px}
.menu-button{min-width:48px;min-height:44px}.button,.linkbutton{min-height:44px}.linkbutton.danger{color:var(--danger)}
.admin .security-stats{margin:0 0 20px}.admin .tablewrap{contain:layout paint}.admin table tbody tr{content-visibility:auto;contain-intrinsic-size:48px}
@media (prefers-contrast:more){:root{--line:#8b96a8;--muted:#364156}.button{box-shadow:none}.panel,.card{border-width:2px}}
@media(max-width:560px){body{font-size:16px}.topbar .container{gap:8px;flex-wrap:wrap}.portalhead h1{font-size:32px}.tablewrap{border:1px solid var(--line);border-radius:12px}.facts{grid-template-columns:1fr}.facts dt{padding-bottom:0;border-bottom:0}.facts dd{padding-top:2px}}

/* TL Teknik 2.5 – QA/slutkontroll */
.qa-score{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem;padding:1rem 1.2rem;border:1px solid var(--line);border-radius:16px;background:var(--surface,#fff)}.qa-score strong{font-size:2rem;line-height:1}.qa-score span{font-size:.86rem;color:var(--muted)}.qa-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.qa-check{display:grid;gap:.45rem;align-content:start;border:1px solid var(--line);border-radius:14px;padding:1rem;background:#fff}.qa-check.is-ok{box-shadow:inset 3px 0 0 #18864b}.qa-check.is-warning{box-shadow:inset 3px 0 0 #b7791f}.qa-check small{color:var(--muted)}.checklist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.checklist-grid>div{border:1px solid var(--line);border-radius:14px;padding:1rem;background:#fff}.checklist-grid p{margin:.4rem 0 0;color:var(--muted)}@media(max-width:800px){.qa-check-grid,.checklist-grid{grid-template-columns:1fr}.qa-score{align-items:flex-start}}
/* TL Teknik 2.6 – Final Candidate / produktionsberedskap */
.release-banner{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 1.2rem;border-radius:14px;margin:0 0 1rem;border:1px solid var(--line)}.release-banner strong,.release-banner span{display:block}.release-banner.is-ready{background:#eaf8ef;border-color:#b8e2c9;color:#145c37}.release-banner.is-warning{background:#fff7df;border-color:#efd48a;color:#784d00}.readiness-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0}.readiness-list{display:grid;gap:.65rem}.readiness-item{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start;padding:.7rem .75rem;border-radius:10px;background:#f8fafc}.readiness-item strong,.readiness-item small{display:block}.readiness-item small{color:var(--muted);margin-top:.15rem}.readiness-dot{width:.72rem;height:.72rem;border-radius:50%;margin-top:.35rem;background:#8793a8}.readiness-item.is-ok .readiness-dot{background:#178b59}.readiness-item.is-bad .readiness-dot{background:#c9382b}.readiness-item.is-warn .readiness-dot{background:#d89000}.dns-records pre{white-space:pre-wrap;word-break:break-word;background:#f7f9fc;border:1px solid var(--line);padding:.8rem;border-radius:10px;max-height:170px;overflow:auto}.recovery-guide h2{margin-top:2rem}.recovery-guide code{white-space:normal}.recovery-guide li{margin:.4rem 0}@media(max-width:800px){.readiness-grid{grid-template-columns:1fr}.release-banner{align-items:flex-start;flex-direction:column}}

.admin-2fa-policy{grid-template-columns:minmax(260px,1fr) auto auto!important;align-items:center!important;margin:14px 0;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#f8fbff}.admin-2fa-policy label{display:flex!important;align-items:center!important;gap:9px!important}.admin-2fa-policy input[type=checkbox]{width:auto!important;min-height:0!important;margin:0!important;padding:0!important}@media(max-width:720px){.admin-2fa-policy{grid-template-columns:1fr!important;align-items:stretch!important}}

/* TL Teknik 2.7.3 – underhåll: saknade men använda CSS-klasser */
.update-warning{background:#fff6df;border-color:#f3d787}.update-warning h2{margin-top:0}
.alert{padding:16px 18px;border-radius:12px;margin:14px 0;border:1px solid var(--line)}.alert p,.alert ul{margin:.5rem 0 0}.alert.warning{background:#fff6df;border-color:#f3d787;color:#7a4c00}.alert.info{background:#f2f7ff;border-color:#cfe0f7;color:#124c9c}
.company-member-row{flex-wrap:wrap;gap:12px 16px}.company-member-row>div{min-width:180px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.tablewrap{background-color:#fff;background-repeat:no-repeat;background-image:linear-gradient(to right,#fff 30%,rgba(255,255,255,0)),linear-gradient(to left,#fff 30%,rgba(255,255,255,0)),radial-gradient(farthest-side at 0 50%,rgba(16,35,67,.22),rgba(16,35,67,0)),radial-gradient(farthest-side at 100% 50%,rgba(16,35,67,.22),rgba(16,35,67,0));background-position:left center,right center,left center,right center;background-size:32px 100%,32px 100%,12px 100%,12px 100%;background-attachment:local,local,scroll,scroll}
.tablewrap .inline-actions{position:sticky;right:0;background:#fff;box-shadow:-8px 0 8px -8px rgba(16,35,67,.18)}
.admin table tbody tr:hover .inline-actions{background:#fbfdff}
.stats a{color:inherit;text-decoration:none;display:block;transition:.16s ease}.stats a:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(16,35,67,.08);border-color:#b8cae4;text-decoration:none}.stats a:focus-visible{outline:3px solid rgba(18,97,216,.35);outline-offset:2px}
.form-stack{display:grid;gap:16px}.form-stack label{display:grid;gap:7px;font-weight:700}.form-stack input{width:100%;font:inherit;color:var(--ink);border:1px solid #bac6d8;border-radius:9px;padding:12px;background:#fff}.form-stack input:focus{outline:3px solid rgba(18,97,216,.18);border-color:var(--blue)}
.series-form{border-top:3px solid var(--cyan)}
.hero.compact{padding:52px 0 46px}
.text-link{display:inline-flex;align-items:center;gap:4px;font-weight:750;color:var(--blue)}.text-link:hover{text-decoration:underline}
@media(min-width:901px){.cards.three{grid-template-columns:repeat(3,1fr)}}
