:root{--bg:#f4f7fb;--card:#fff;--ink:#172033;--muted:#667085;--brand:#2457d6;--ok:#067647;--warn:#b54708;--bad:#b42318;--line:#e4e7ec}*{box-sizing:border-box}body{margin:0;background:var(--bg);font:15px/1.5 Inter,Segoe UI,Arial,sans-serif;color:var(--ink)}a{color:var(--brand);text-decoration:none}.topbar{background:#0d1733;color:#fff;padding:16px 28px;display:flex;justify-content:space-between;align-items:center}.topbar nav{display:flex;gap:16px;align-items:center}.topbar a,.linkbtn{color:#fff}.tagline{color:#9fb0d9;margin-left:8px}.container{max-width:1180px;margin:28px auto;padding:0 18px}.hero{padding:28px;border-radius:18px;background:linear-gradient(135deg,#10224d,#2457d6);color:#fff;margin-bottom:22px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 5px 18px rgba(15,23,42,.04)}.metric{font-size:28px;font-weight:750}.muted{color:var(--muted)}table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:#f8fafc;font-size:13px;color:#475467}.status{display:inline-block;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700}.active{background:#ecfdf3;color:var(--ok)}.suspended{background:#fff7ed;color:var(--warn)}.revoked,.expired{background:#fef3f2;color:var(--bad)}.btn,button{border:0;border-radius:9px;padding:10px 14px;background:var(--brand);color:#fff;font-weight:650;cursor:pointer}.btn.secondary,button.secondary{background:#344054}.btn.danger,button.danger{background:var(--bad)}.linkbtn{background:none;padding:0}.inline{display:inline}.actions{display:flex;gap:8px;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field label{display:block;font-weight:650;margin-bottom:5px}.field input,.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid #d0d5dd;border-radius:9px;background:#fff}.field.full{grid-column:1/-1}.login{max-width:430px;margin:70px auto}.alert{padding:12px 14px;border-radius:10px;margin-bottom:16px}.alert.success{background:#ecfdf3;color:var(--ok)}.alert.error{background:#fef3f2;color:var(--bad)}.codebox{font:700 18px ui-monospace,SFMono-Regular,Consolas,monospace;background:#101828;color:#fff;padding:14px;border-radius:10px;letter-spacing:.5px}footer{text-align:center;color:var(--muted);padding:30px}@media(max-width:700px){.topbar{align-items:flex-start;gap:10px;flex-direction:column}.form-grid{grid-template-columns:1fr}.topbar nav{flex-wrap:wrap}table{display:block;overflow-x:auto}}
.card label{display:block;font-weight:650;margin:8px 0}.card input,.card select{width:100%;padding:10px 12px;border:1px solid #d0d5dd;border-radius:9px;background:#fff;margin-top:5px}.card button{margin-top:10px}.card button[disabled]{opacity:.45;cursor:not-allowed}
:root{--brand2:#7c3aed;--gold:#f59e0b;--soft:#eef4ff}.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.checkbox-row{display:flex;align-items:center;gap:22px}.checkbox-row label{display:flex;align-items:center;gap:7px}.checkbox-row input{width:auto}.sensitive{border-top:4px solid var(--gold)}.warning-card{border:2px solid #fdb022;background:#fffaeb}.recovery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:18px 0}.recovery-grid code{background:#101828;color:#fff;padding:12px;border-radius:8px;text-align:center}.authenticator-setup{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1fr);gap:28px;align-items:start}.qr-box{width:220px;min-height:220px;background:#fff;padding:10px;border:1px solid var(--line);border-radius:12px}.pricing-hero{background:radial-gradient(circle at top right,#4f46e5 0,#18264d 45%,#09152e 100%);border-radius:24px;color:#fff;padding:52px 38px;margin-bottom:20px}.pricing-hero h1{font-size:clamp(32px,5vw,58px);line-height:1.05;max-width:850px;margin:10px 0}.pricing-hero p{font-size:18px;max-width:700px;color:#dbe5ff}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-weight:800;color:#b9c9ff}.pricing-switch{text-align:center;color:var(--muted);margin:20px}.pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}.price-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 18px 50px rgba(15,23,42,.08)}.price-card.featured{border:2px solid var(--brand);transform:translateY(-8px)}.price-badge{position:absolute;top:18px;right:18px;background:#eef4ff;color:var(--brand);border-radius:999px;padding:5px 10px;font-weight:750;font-size:12px}.price-card h2{font-size:26px;margin:0}.tagline{color:var(--muted);min-height:45px}.mode-price{padding:15px;border-radius:14px;background:#f8fafc;margin:12px 0}.mode-price.online{background:#eef4ff}.mode-price span,.mode-price small{display:block;color:var(--muted)}.mode-price strong{display:block;font-size:25px;margin:3px 0}.feature-list{list-style:none;padding:0;margin:20px 0}.feature-list li{padding:7px 0;border-bottom:1px dashed var(--line)}.feature-list li:before{content:'âœ“';color:var(--ok);font-weight:900;margin-right:8px}.price-cta{display:block;text-align:center}.invoice-sheet{max-width:900px;margin:0 auto;background:#fff;padding:48px;border:1px solid var(--line);box-shadow:0 12px 40px rgba(15,23,42,.07)}.invoice-head,.invoice-meta{display:flex;justify-content:space-between;gap:30px}.invoice-title{text-align:right}.invoice-title span{display:block;font-size:34px;font-weight:900}.invoice-title strong,.invoice-title small{display:block}.invoice-meta{border-top:2px solid #101828;border-bottom:1px solid var(--line);padding:24px 0;margin:28px 0}.invoice-table{box-shadow:none}.invoice-totals{width:min(380px,100%);margin:25px 0 25px auto}.invoice-totals p{display:flex;justify-content:space-between;padding:8px;border-bottom:1px solid var(--line)}.invoice-totals .grand{font-size:20px;border-top:2px solid #101828}.invoice-note{margin-top:45px;color:var(--muted)}.ticket-thread{display:grid;gap:14px;margin:20px 0}.ticket-message{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;max-width:85%}.ticket-message header{display:flex;justify-content:space-between;margin-bottom:10px;color:var(--muted)}.ticket-message.customer-reply{justify-self:start;border-left:4px solid var(--brand)}.ticket-message.support-reply{justify-self:end;border-right:4px solid var(--ok);background:#f0fdf4}.waiting_support,.open{background:#eef4ff;color:var(--brand)}.waiting_customer{background:#fff7ed;color:var(--warn)}.resolved,.closed,.paid{background:#ecfdf3;color:var(--ok)}.pending,.draft{background:#fffaeb;color:var(--warn)}hr{border:0;border-top:1px solid var(--line);margin:24px 0}
@media(max-width:900px){.pricing-grid{grid-template-columns:1fr}.price-card.featured{transform:none}.two-col,.authenticator-setup{grid-template-columns:1fr}.invoice-head,.invoice-meta{flex-direction:column}.invoice-title{text-align:left}}
@media print{body{background:#fff}.topbar,footer,.no-print,.alert{display:none!important}.container{max-width:none;margin:0;padding:0}.invoice-sheet{box-shadow:none;border:0;padding:15mm}.warning-card{border:0}.recovery-grid{grid-template-columns:repeat(2,1fr)}}

.permission-grid{display:grid;gap:16px;margin:18px 0}.permission-module h2{margin-top:0}.permission-item{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid var(--line)}.permission-item input{width:auto;margin-top:5px}.permission-item span code,.override-row code{display:block;color:var(--brand);font-size:11px}.permission-item small,.role-choice small{display:block;color:var(--muted)}.permission-item em{font-style:normal;text-transform:uppercase;font-size:10px;padding:3px 7px;border-radius:999px;background:#f2f4f7}.risk-critical em{background:#fef3f2;color:var(--bad)}.risk-high em{background:#fff7ed;color:var(--warn)}.role-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px}.role-choice{display:flex!important;gap:10px;align-items:start;border:1px solid var(--line);padding:13px;border-radius:10px}.role-choice input{width:auto!important}.permission-table{max-height:620px;overflow:auto;border:1px solid var(--line);padding:12px;border-radius:10px}.override-row{display:grid;grid-template-columns:1fr 150px;gap:12px;align-items:center;padding:8px;border-bottom:1px solid var(--line)}.audit-json{white-space:pre-wrap;max-width:360px;max-height:120px;overflow:auto;font-size:11px}.disabled{background:#f2f4f7;color:#667085}@media(max-width:700px){.override-row{grid-template-columns:1fr}.permission-item{grid-template-columns:auto 1fr}.permission-item em{grid-column:2}}

/* v9 customer download library */
.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin:24px 0 14px}.section-heading h2,.section-heading h3{margin:0}.download-library{margin-top:30px}.download-library>.card{margin-top:16px}.resource-category{margin:26px 0}.resource-category>h2{margin-bottom:12px}.resource-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.resource-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;display:grid;grid-template-columns:48px 1fr;gap:14px;box-shadow:0 6px 20px rgba(15,23,42,.05)}.resource-card h3{margin:0 0 4px}.resource-icon{width:46px;height:46px;border-radius:13px;background:#eef4ff;color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:900}.resource-download{grid-column:1/-1;text-align:center;margin-top:4px}.resource-card code{word-break:break-all;font-size:11px}.status.draft,.status.pending{background:#fffaeb;color:var(--warn)}.status.published{background:#ecfdf3;color:var(--ok)}.status.disabled{background:#f2f4f7;color:#667085}
@media(max-width:700px){.section-heading{flex-direction:column}.resource-grid{grid-template-columns:1fr}}
/* v10 clickable dashboards, customer controls and support attachments */
.dashboard-card{display:block;color:var(--ink);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.dashboard-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(15,23,42,.11);border-color:#a9bdf6}.dashboard-open{display:block;margin-top:10px;color:var(--brand);font-weight:700}.danger-zone{margin-top:24px;border-left:5px solid var(--bad);background:#fffafa}.deleted{background:#fef3f2;color:var(--bad)}.ticket-attachments{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px;padding-top:12px;border-top:1px solid var(--line)}.ticket-attachments>strong{width:100%;font-size:13px}.attachment-chip{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;background:#eef4ff;border:1px solid #c7d7fe;border-radius:999px;font-size:13px}.attachment-chip small{color:var(--muted)}.internal-note{background:#fffaeb!important;border-color:#fdb022!important}.dashboard-grid .card{min-height:135px}


/* v11 customer-selected tenant and location URLs */
.url-builder{border-top:5px solid var(--brand);margin:22px 0}.selected-url{background:linear-gradient(135deg,#eef4ff,#f7f9ff);border:1px solid #c7d7fe;border-radius:14px;padding:18px;margin:16px 0}.selected-url span{display:block;color:var(--muted);font-size:13px}.selected-url strong{display:block;font-size:clamp(18px,3vw,29px);word-break:break-word}.url-suggestions{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 18px}.url-suggestions form{margin:0}.url-suggestion{background:#fff;color:var(--ink);border:1px solid #b9c9ef;padding:11px 14px;margin:0}.url-suggestion:hover{border-color:var(--brand);background:#eef4ff}.url-suggestion span{font-weight:850}.url-suggestion strong{color:var(--muted);font-weight:650}.custom-url-form{max-width:720px}.url-input-row{display:flex;align-items:center;border:1px solid #d0d5dd;border-radius:10px;background:#fff;overflow:hidden;margin-top:7px}.url-input-row input{border:0!important;border-radius:0!important;margin:0!important;min-width:0;flex:1}.url-input-row span{padding:10px 12px;background:#f8fafc;border-left:1px solid #e4e7ec;color:#475467;white-space:nowrap}.url-input-row.location span{border-left:0;border-right:1px solid #e4e7ec;font-weight:900}.url-preview{font-size:18px;word-break:break-word}.url-preview strong{color:var(--muted)}.landing-summary{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px}.landing-summary h3{margin:4px 0}.landing-summary p{margin:0;color:var(--muted)}.card textarea{width:100%;padding:10px 12px;border:1px solid #d0d5dd;border-radius:9px;background:#fff;margin-top:5px}
@media(max-width:700px){.landing-summary{align-items:flex-start;flex-direction:column}.url-input-row{align-items:stretch;flex-direction:column}.url-input-row span{border-left:0;border-top:1px solid #e4e7ec}.url-input-row.location{flex-direction:row}.url-input-row.location span{border-top:0}}

/* v17 invoice templates and tag editor */
.tag-palette{display:flex;flex-wrap:wrap;gap:8px}.tag-palette .tag-copy{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.82rem;padding:7px 10px}.invoice-info-block{margin:18px 0;padding:14px 16px;border:1px solid #dbe4f0;border-radius:10px;background:#f8fafc}.invoice-info-block h3{margin:0 0 7px}.invoice-info-block p{margin:0;white-space:normal}.invoice-modern-blue .invoice-head{background:linear-gradient(135deg,#102b68,#2458d5);color:#fff;padding:24px;border-radius:14px}.invoice-modern-blue .invoice-company p{color:#dbe7ff}.invoice-classic-formal{border:2px solid #222}.invoice-classic-formal .invoice-head{display:block;text-align:center;border-bottom:2px solid #222}.invoice-classic-formal .invoice-title{margin-top:15px}.invoice-classic-formal .invoice-info-block{border-radius:0;background:#fff;border-color:#777}.invoice-compact{font-size:.92rem;max-width:850px}.invoice-compact .invoice-head{padding-bottom:10px;border-bottom:1px solid #777}.invoice-compact .invoice-meta,.invoice-compact .invoice-info-block{margin:10px 0;padding:9px}.invoice-compact .invoice-table th,.invoice-compact .invoice-table td{padding:7px}.invoice-deployment .invoice-head{background:#0f1c34;color:#fff;padding:22px;border-left:8px solid #2d64e3}.invoice-deployment .invoice-info-block{border-left:5px solid #2d64e3;background:#eef4ff}.invoice-deployment .details-block{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}@media print{.invoice-sheet{box-shadow:none!important;border:none!important}.invoice-modern-blue .invoice-head,.invoice-deployment .invoice-head{background:#fff!important;color:#000!important;border:1px solid #000!important}.invoice-modern-blue .invoice-company p{color:#000!important}}

/* production HIVOTECH green A4 invoice */
.invoice-hivotech-green{position:relative;max-width:210mm;min-height:297mm;margin:0 auto;background:#fff;padding:18mm 16mm;color:#1d2939;border:0;box-shadow:0 14px 38px rgba(15,23,42,.08);font-size:13px}.invoice-green-header{display:flex;justify-content:space-between;gap:24px;border-bottom:2px solid #14915f;padding-bottom:18px;margin-bottom:20px}.invoice-brand{font-size:30px;font-weight:900;color:#14915f;letter-spacing:.08em}.invoice-ref{text-align:right}.invoice-ref h1{font-size:34px;line-height:1;margin:0 0 12px;color:#111827}.invoice-ref p,.invoice-green-header p{margin:2px 0}.invoice-parties{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:18px 0}.invoice-parties h2,.invoice-payment h2,.invoice-info-block h3{font-size:13px;color:#14915f;border-bottom:1px solid #14915f;padding-bottom:6px;margin:0 0 8px;letter-spacing:.04em}.invoice-product-table{border-radius:0;box-shadow:none;margin-top:18px}.invoice-product-table th{background:#14915f;color:#fff;border-bottom:0;font-size:12px}.invoice-product-table td{background:#f2f4f7;border-bottom:6px solid #fff}.invoice-summary{width:min(330px,100%);margin:18px 0 20px auto}.invoice-summary p{display:flex;justify-content:space-between;margin:0;padding:9px 12px;border-bottom:1px solid #d0d5dd}.invoice-summary .balance{background:#14915f;color:#fff;border-bottom:0;font-weight:800}.paid-stamp{position:absolute;right:36mm;top:112mm;transform:rotate(-18deg);border:4px solid #14915f;color:#14915f;font-size:26px;font-weight:900;padding:8px 18px;opacity:.72;letter-spacing:.08em}.invoice-payment{margin-top:16px}.invoice-footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #14915f;margin-top:22px;padding-top:12px;color:#667085;font-size:12px}.invoice-hivotech-green .invoice-info-block{border:0;border-left:3px solid #14915f;background:#f8fafc;border-radius:0;margin:14px 0;padding:10px 12px}.invoice-hivotech-green .details-block{font-family:Inter,Segoe UI,Arial,sans-serif;white-space:normal}.invoice-hivotech-green .details-block p{white-space:pre-line}.invoice-hivotech-green .footer-block{break-inside:avoid}.invoice-hivotech-green .notes-block{background:#fff}
@media(max-width:800px){.invoice-hivotech-green{min-height:auto;padding:20px}.invoice-green-header,.invoice-parties,.invoice-footer{display:block}.invoice-ref{text-align:left;margin-top:16px}.paid-stamp{position:static;display:inline-block;transform:rotate(-8deg);margin:12px 0}.invoice-product-table{display:block;overflow-x:auto}}
@media print{@page{size:A4 portrait;margin:10mm}body{background:#fff}.invoice-hivotech-green{width:auto;min-height:277mm;box-shadow:none;padding:0;border:0;font-size:11px}.invoice-green-header{margin-bottom:12px}.invoice-product-table th,.invoice-product-table td{padding:7px}.invoice-summary{margin-top:10px}.invoice-hivotech-green .invoice-info-block{margin:9px 0;padding:8px 10px}.paid-stamp{right:28mm;top:98mm}.invoice-footer{position:absolute;left:0;right:0;bottom:0}}
.app-shell{display:grid;grid-template-columns:230px minmax(0,1fr);align-items:start}.sidebar{position:sticky;top:0;min-height:calc(100vh - 74px);background:#fff;border-right:1px solid var(--line);padding:18px}.sidebar nav{display:grid;gap:4px}.sidebar a{display:block;padding:10px 12px;border-radius:8px;color:var(--ink);font-weight:650}.sidebar a:hover,.sidebar a.active-nav{background:#eef4ff;color:var(--brand)}.app-shell .container{width:100%;max-width:1180px}.topbar .linkbtn{font:inherit}@media(max-width:900px){.app-shell{display:block}.sidebar{position:static;min-height:auto;border-right:0;border-bottom:1px solid var(--line);padding:10px 14px;overflow:auto}.sidebar nav{display:flex;gap:6px}.sidebar a{white-space:nowrap}.container{margin:18px auto}.topbar{padding:12px 16px}}
