/* BuildLink Tanzania — modern UI. Self-hosted fonts (Inter + Plus Jakarta Sans), gradient surfaces, no external requests. */
@font-face{font-family:"Inter";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/inter-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/inter-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/inter-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Jakarta";font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/plus-jakarta-sans-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Jakarta";font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/plus-jakarta-sans-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Jakarta";font-weight:800;font-style:normal;font-display:swap;src:url(../fonts/plus-jakarta-sans-latin-800-normal.woff2) format("woff2")}
:root{
--brand:#1d4ed8;--brand2:#0ea5e9;--brand-d:#0b1b4a;--violet:#6d4aff;--accent:#ff9f1c;--accent-d:#f27a0c;
--ok:#12a566;--bad:#e5484d;--warn:#e08a00;--info:#2563eb;
--ink:#14213d;--mute:#5d6a88;--line:#e3e9f6;--bg:#f1f5ff;--card:#ffffff;--r:16px;--r-sm:11px;
--g-brand:linear-gradient(135deg,#1d4ed8 0%,#0ea5e9 100%);
--g-hero:linear-gradient(130deg,#0b1b4a 0%,#1d3fb8 48%,#0b8fd6 100%);
--g-accent:linear-gradient(135deg,#ffb12b 0%,#ff7a18 100%);
--g-ok:linear-gradient(135deg,#12a566,#2dd4a3);--g-bad:linear-gradient(135deg,#e5484d,#ff7a7f);
--g-soft:linear-gradient(180deg,#f6f9ff 0%,#eaf1ff 100%);--g-violet:linear-gradient(135deg,#6d4aff,#1d4ed8);
--sh-sm:0 1px 2px rgba(20,33,61,.05),0 2px 8px rgba(29,78,216,.06);--sh:0 4px 14px rgba(20,33,61,.06),0 14px 34px rgba(29,78,216,.09);--sh-lg:0 22px 60px rgba(11,27,74,.22);
--font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--font-h:"Jakarta","Inter",system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-size:1.0625rem;line-height:1.65;color:var(--ink);-webkit-font-smoothing:antialiased;background:linear-gradient(180deg,#f3f7ff 0%,#eef2ff 40%,#f6f1ff 100%) fixed;min-height:100vh}
img{max-width:100%;height:auto}a{color:var(--brand);text-decoration:none;transition:color .15s}a:hover{color:var(--violet)}
h1,h2,h3,h4{font-family:var(--font-h);line-height:1.18;margin:0 0 .55em;color:var(--brand-d);letter-spacing:-.02em;font-weight:800}
h1{font-size:clamp(2.1rem,5.2vw,3.5rem)}h2{font-size:clamp(1.55rem,3.2vw,2.3rem)}h3{font-size:1.28rem;font-weight:700}h4{font-size:1.06rem;font-weight:700}
p{margin:0 0 1em}.muted{color:var(--mute)}.small,small{font-size:.9rem}.center{text-align:center}.right{text-align:right}.nowrap{white-space:nowrap}.mono{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;letter-spacing:.02em}
::selection{background:#c9dbff}
.grad-text{background:linear-gradient(90deg,#ffb12b,#ff7a18 45%,#ffd36b);-webkit-background-clip:text;background-clip:text;color:transparent}
.container{width:100%;max-width:1200px;margin:0 auto;padding:0 22px}.narrow{max-width:800px}.hide{display:none!important}.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.mt0{margin-top:0}.mt{margin-top:18px}.mt2{margin-top:32px}.mb0{margin-bottom:0}.mb{margin-bottom:18px}.mb2{margin-bottom:32px}.gap{gap:14px}.row{display:flex;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.grow{flex:1}.wrap{flex-wrap:wrap}.col{display:flex;flex-direction:column}
.grid{display:grid;gap:22px}.g2,.g3,.g4{grid-template-columns:1fr}@media(min-width:640px){.g2,.g3,.g4{grid-template-columns:repeat(2,1fr)}}@media(min-width:980px){.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}}
.ic{width:1.2em;height:1.2em;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.22em;flex:none}.ic-lg{width:2.1rem;height:2.1rem}.ic-xl{width:2.8rem;height:2.8rem}
/* ---------- buttons ---------- */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 24px;border-radius:12px;border:0;background:var(--g-brand);color:#fff;font:600 .98rem var(--font);letter-spacing:.005em;cursor:pointer;transition:transform .18s ease,box-shadow .2s ease,filter .2s;text-decoration:none;line-height:1.2;box-shadow:0 6px 18px rgba(29,78,216,.32),inset 0 1px 0 rgba(255,255,255,.25)}
.btn:after{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent);transform:skewX(-20deg);transition:left .55s ease}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(29,78,216,.38),inset 0 1px 0 rgba(255,255,255,.3);color:#fff;text-decoration:none;filter:saturate(1.08)}.btn:hover:after{left:140%}
.btn:active{transform:translateY(0) scale(.985);box-shadow:0 3px 10px rgba(29,78,216,.3)}.btn:focus-visible{outline:3px solid rgba(14,165,233,.45);outline-offset:2px}
.btn-accent{background:var(--g-accent);color:#3a1f00;box-shadow:0 6px 18px rgba(255,122,24,.38),inset 0 1px 0 rgba(255,255,255,.4)}.btn-accent:hover{color:#2b1500;box-shadow:0 12px 26px rgba(255,122,24,.46),inset 0 1px 0 rgba(255,255,255,.45)}
.btn-ghost{background:#fff;color:var(--brand);box-shadow:inset 0 0 0 1.5px #cfdcf8,var(--sh-sm)}.btn-ghost:hover{background:#f1f6ff;color:var(--brand);box-shadow:inset 0 0 0 1.5px var(--brand2),0 8px 20px rgba(29,78,216,.14)}
.btn-glass{background:rgba(255,255,255,.14);color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.45)}.btn-glass:hover{background:rgba(255,255,255,.26);color:#fff;box-shadow:inset 0 0 0 1.5px #fff,0 10px 24px rgba(0,0,0,.18)}
.btn-ok{background:var(--g-ok);box-shadow:0 6px 18px rgba(18,165,102,.34),inset 0 1px 0 rgba(255,255,255,.28)}.btn-ok:hover{box-shadow:0 12px 26px rgba(18,165,102,.42)}
.btn-bad{background:var(--g-bad);box-shadow:0 6px 18px rgba(229,72,77,.32),inset 0 1px 0 rgba(255,255,255,.28)}.btn-bad:hover{box-shadow:0 12px 26px rgba(229,72,77,.42)}
.btn-sm{padding:8px 15px;font-size:.86rem;border-radius:10px}.btn-lg{padding:15px 32px;font-size:1.08rem;border-radius:14px}.btn-block{display:flex;width:100%}.btn[disabled],.btn.disabled{opacity:.5;pointer-events:none;filter:grayscale(.3)}
/* ---------- header ---------- */
.topbar{background:linear-gradient(90deg,#0b1b4a,#17338f);color:#cdd9f7;font-size:.84rem}.topbar .container{display:flex;justify-content:space-between;align-items:center;min-height:38px;gap:10px;flex-wrap:wrap}.topbar a{color:#cdd9f7}.topbar a:hover{color:#fff}
.site-header{background:rgba(255,255,255,.82);backdrop-filter:saturate(1.6) blur(16px);-webkit-backdrop-filter:saturate(1.6) blur(16px);border-bottom:1px solid rgba(29,78,216,.1);position:sticky;top:0;z-index:50;transition:box-shadow .25s}.site-header.scrolled{box-shadow:0 8px 30px rgba(11,27,74,.12)}.site-header .container{display:flex;align-items:center;gap:22px;min-height:70px}
.logo{display:flex;align-items:center;gap:11px;font:800 1.32rem var(--font-h);color:var(--brand-d);text-decoration:none!important;letter-spacing:-.03em}.logo img,.logo svg{width:38px;height:38px;border-radius:11px;box-shadow:0 6px 16px rgba(29,78,216,.3)}.logo small{display:block;font:700 .6rem var(--font);color:var(--brand2);letter-spacing:.2em;text-transform:uppercase;margin-top:-4px}
.nav{display:none;gap:3px;margin-left:auto;align-items:center}.nav a{position:relative;color:var(--ink);padding:9px 14px;border-radius:10px;font-weight:600;font-size:.96rem;transition:background .15s,color .15s}.nav a:not(.btn):hover,.nav a.on{background:#e8f0ff;color:var(--brand);text-decoration:none}
.nav .btn{margin-left:6px;color:#3a1f00}.nav .btn-ghost{color:var(--brand)}.nav .btn:hover{color:#2b1500}.nav .btn-ghost:hover{color:var(--brand)}
.nav-toggle{margin-left:auto;background:#fff;border:1px solid var(--line);border-radius:11px;padding:9px 11px;cursor:pointer;color:var(--brand);box-shadow:var(--sh-sm)}
.nav.open{display:flex;position:absolute;left:0;right:0;top:100%;background:rgba(255,255,255,.97);flex-direction:column;align-items:stretch;padding:14px 20px 20px;border-bottom:1px solid var(--line);box-shadow:var(--sh-lg);gap:6px}.nav.open .btn{margin:4px 0 0}
@media(min-width:1020px){.nav{display:flex}.nav-toggle{display:none}}
.lang-sw{display:inline-flex;border-radius:10px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--line)}.lang-sw a{padding:5px 11px;font-size:.78rem;font-weight:700;color:var(--mute)}.lang-sw a.on{background:var(--g-brand);color:#fff}.topbar .lang-sw{box-shadow:inset 0 0 0 1px #3b57b5}.topbar .lang-sw a{color:#cdd9f7}.topbar .lang-sw a.on{background:var(--g-accent);color:#3a1f00}
/* ---------- hero (gradient + soft colour glows, no lines) ---------- */
.hero{position:relative;overflow:hidden;color:#fff;background:var(--g-hero)}
.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 85% 10%,rgba(109,74,255,.55),transparent 60%),radial-gradient(50% 70% at 5% 100%,rgba(14,165,233,.5),transparent 60%),radial-gradient(35% 45% at 60% 110%,rgba(255,159,28,.28),transparent 70%)}
.hero .orb{position:absolute;border-radius:50%;filter:blur(2px);opacity:.55;animation:float 9s ease-in-out infinite}.hero .o1{width:220px;height:220px;right:6%;top:-70px;background:radial-gradient(circle at 30% 30%,#ffb12b,rgba(255,122,24,.0) 70%)}.hero .o2{width:300px;height:300px;left:-100px;top:35%;background:radial-gradient(circle at 60% 40%,#35c3ff,rgba(14,165,233,0) 70%);animation-delay:-3s}.hero .o3{width:150px;height:150px;right:30%;bottom:-40px;background:radial-gradient(circle,#a58bff,rgba(109,74,255,0) 70%);animation-delay:-6s}
@keyframes float{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-22px) scale(1.06)}}
.hero .container{position:relative;padding-top:72px;padding-bottom:84px;display:grid;gap:44px;align-items:center}@media(min-width:980px){.hero .container{grid-template-columns:1.2fr .95fr}}
.hero h1{color:#fff;font-size:clamp(2.3rem,5.4vw,3.9rem);text-shadow:0 2px 24px rgba(0,0,0,.18)}.hero p.lead{font-size:1.22rem;color:#dbe7ff;max-width:580px;line-height:1.6}
.hero .pill{display:inline-flex;gap:8px;align-items:center;background:rgba(255,255,255,.14);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:99px;padding:7px 17px;font-size:.85rem;font-weight:600;margin-bottom:20px}
.hero-card{background:rgba(255,255,255,.96);color:var(--ink);border-radius:22px;padding:28px;box-shadow:0 30px 70px rgba(5,14,50,.45);position:relative}.hero-card:before{content:"";position:absolute;inset:-2px;border-radius:24px;background:linear-gradient(135deg,rgba(255,177,43,.9),rgba(109,74,255,.7),rgba(14,165,233,.9));z-index:-1;filter:blur(14px);opacity:.55}.hero-card h3{color:var(--brand-d);font-size:1.4rem}
.trust{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:30px;color:#dbe7ff;font-size:.95rem}.trust span{display:inline-flex;gap:8px;align-items:center}.trust .ic{color:#5eead4}
/* ---------- sections ---------- */
.section{padding:76px 0;position:relative}.section.alt{background:linear-gradient(180deg,#ffffff 0%,#f0f5ff 100%);border-top:1px solid rgba(29,78,216,.07);border-bottom:1px solid rgba(29,78,216,.07)}.section.tint{background:linear-gradient(135deg,#eef4ff,#f5efff)}
.sec-head{text-align:center;max-width:720px;margin:0 auto 44px}.sec-head h2:after{content:"";display:block;width:64px;height:5px;border-radius:9px;background:var(--g-accent);margin:14px auto 0}.sec-head p{color:var(--mute);font-size:1.1rem}
.card{background:var(--card);border:1px solid rgba(29,78,216,.08);border-radius:var(--r);padding:24px;box-shadow:var(--sh);transition:transform .22s ease,box-shadow .25s}.card.flat{box-shadow:none;background:#f8faff}.card h3{margin-bottom:.45em}.card-hd{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.card-hd h3{margin:0}
a.card:hover,.provider-card:hover{transform:translateY(-4px);box-shadow:var(--sh-lg)}
.tile{position:relative;display:flex;flex-direction:column;gap:9px;align-items:flex-start;background:#fff;border:1px solid rgba(29,78,216,.08);border-radius:var(--r);padding:22px;color:var(--ink);transition:transform .25s,box-shadow .25s,border-color .25s;box-shadow:var(--sh);text-decoration:none!important;overflow:hidden}
.tile:before{content:"";position:absolute;left:0;top:0;height:4px;width:0;background:var(--g-accent);transition:width .35s}.tile:hover:before{width:100%}.tile:hover{transform:translateY(-5px);box-shadow:var(--sh-lg);border-color:rgba(14,165,233,.35)}
.tile .ico{width:54px;height:54px;border-radius:15px;display:grid;place-items:center;background:var(--g-brand);color:#fff;box-shadow:0 8px 18px rgba(29,78,216,.3);transition:transform .3s}.tile:hover .ico{transform:rotate(-6deg) scale(1.08)}.tile .ico .ic{width:27px;height:27px}.tile b{color:var(--brand-d);font:700 1.08rem var(--font-h)}.tile span.d{font-size:.92rem;color:var(--mute);line-height:1.5}
.grid.g4>.tile:nth-child(4n+2) .ico{background:linear-gradient(135deg,#6d4aff,#1d4ed8)}.grid.g4>.tile:nth-child(4n+3) .ico{background:linear-gradient(135deg,#0ea5e9,#12a566)}.grid.g4>.tile:nth-child(4n) .ico{background:var(--g-accent);box-shadow:0 8px 18px rgba(255,122,24,.32)}
.step-card{text-align:center;padding:30px 22px}.step-card .n{width:56px;height:56px;border-radius:18px;background:var(--g-accent);color:#3a1f00;font:800 1.4rem var(--font-h);display:grid;place-items:center;margin:0 auto 16px;box-shadow:0 10px 22px rgba(255,122,24,.35);transform:rotate(-5deg)}
.stat{text-align:center;padding:26px 18px;background:linear-gradient(160deg,#fff,#eef4ff)}.stat b{display:block;font:800 2.5rem var(--font-h);line-height:1;background:var(--g-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.stat span{color:var(--mute);font-size:.95rem;font-weight:500}
.provider-card{display:flex;flex-direction:column;gap:12px}.avatar{width:58px;height:58px;border-radius:17px;background:var(--g-violet);color:#fff;display:grid;place-items:center;font:800 1.4rem var(--font-h);overflow:hidden;flex:none;box-shadow:0 8px 18px rgba(109,74,255,.32)}.avatar img{width:100%;height:100%;object-fit:cover}
.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{display:inline-flex;align-items:center;gap:5px;background:#e8f0ff;color:var(--brand);border-radius:99px;padding:4px 12px;font-size:.78rem;font-weight:600}.chip.gold{background:linear-gradient(135deg,#fff1d1,#ffe2a8);color:#8a4b00}.chip.green{background:linear-gradient(135deg,#d9f7e9,#c2f0dc);color:#0b6b43}
.stars{color:#d9deea;letter-spacing:1.5px;white-space:nowrap}.stars i{font-style:normal}.stars i.on{color:#ffab1a}.stars i.half{color:#ffcd70}
.badge{display:inline-block;padding:4px 12px;border-radius:99px;font-size:.74rem;font-weight:700;white-space:nowrap;letter-spacing:.01em}.b-ok{background:#d9f7e9;color:#0b6b43}.b-bad{background:#ffe3e4;color:#b42328}.b-warn{background:#fff0cc;color:#8a5200}.b-info{background:#dcebff;color:#14459e}.b-mute{background:#e9edf7;color:#4a5878}
/* ---------- forms ---------- */
.field{display:block;margin-bottom:16px}.field>span{display:block;font-weight:600;font-size:.9rem;margin-bottom:6px;color:#26345a}.field>span em{color:var(--bad);font-style:normal}.field small{display:block;color:var(--mute);margin-top:5px}
input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],input[type=date],input[type=datetime-local],input[type=search],input[type=url],select,textarea{width:100%;padding:13px 15px;border:1.5px solid #d6e0f5;border-radius:12px;font:inherit;font-size:1rem;background:#fbfcff;color:var(--ink);transition:border-color .15s,box-shadow .2s,background .15s}
input:hover,select:hover,textarea:hover{border-color:#b7c8ee}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand2);background:#fff;box-shadow:0 0 0 4px rgba(14,165,233,.18)}textarea{min-height:120px;resize:vertical}input[type=file]{width:100%;padding:12px;border:2px dashed #b6c8ef;border-radius:12px;background:linear-gradient(180deg,#fbfcff,#f1f6ff);font:inherit;cursor:pointer}input[type=file]:hover{border-color:var(--brand2)}
input[type=checkbox],input[type=radio]{width:19px;height:19px;accent-color:var(--brand);vertical-align:-4px;margin-right:7px}.check{display:flex;gap:9px;align-items:flex-start;margin-bottom:11px;font-size:.96rem;cursor:pointer}.check input{margin-top:3px;flex:none}
.form-grid{display:grid;gap:0 18px}@media(min-width:640px){.form-grid{grid-template-columns:repeat(2,1fr)}.form-grid .full{grid-column:1/-1}}.input-group{display:flex;gap:9px}.input-group .btn{flex:none}
.err{color:var(--bad);font-size:.85rem;margin-top:4px}
.alert{padding:14px 18px;border-radius:13px;margin-bottom:18px;border:1px solid;font-size:.96rem;box-shadow:var(--sh-sm)}.alert-ok{background:linear-gradient(135deg,#e6faf1,#f1fcf7);border-color:#9fe0c3;color:#0a5c38}.alert-bad{background:linear-gradient(135deg,#ffecec,#fff5f5);border-color:#ffb9bb;color:#9c1f24}.alert-warn{background:linear-gradient(135deg,#fff5dc,#fffaf0);border-color:#f5d28a;color:#7a4700}.alert-info{background:linear-gradient(135deg,#e5f0ff,#f1f7ff);border-color:#b7d1fa;color:#12408f}
.dev-otp{background:linear-gradient(135deg,#0b1b4a,#17338f);color:#ffd48a;border-radius:12px;padding:12px 16px;font-size:.88rem;margin:12px 0}.dev-otp b{font-size:1.25em;letter-spacing:.22em;color:#fff}
/* ---------- wizard ---------- */
.wizard-steps{display:flex;gap:6px;padding:0;margin:0 0 26px}.wizard-steps li{flex:1;list-style:none;text-align:center;font-size:.8rem;font-weight:600;color:var(--mute);position:relative;padding-top:42px}
.wizard-steps li:before{content:attr(data-n);position:absolute;top:0;left:50%;transform:translateX(-50%);width:34px;height:34px;border-radius:50%;background:#dfe7f8;color:#55638a;display:grid;place-items:center;font:700 .92rem var(--font-h);transition:.3s}
.wizard-steps li:after{content:"";position:absolute;top:16px;left:calc(50% + 24px);width:calc(100% - 48px);height:3px;border-radius:3px;background:#dfe7f8}.wizard-steps li:last-child:after{display:none}.wizard-steps li.done:after{background:var(--g-ok)}
.wizard-steps li.on:before{background:var(--g-accent);color:#3a1f00;box-shadow:0 6px 16px rgba(255,122,24,.45);transform:translateX(-50%) scale(1.12)}.wizard-steps li.done:before{background:var(--g-ok);color:#fff;content:"✓"}.wizard-steps li.on{color:var(--brand-d)}
.wz-step{display:none}.wz-step.on{display:block;animation:rise .35s ease}@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.budget-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}@media(min-width:640px){.budget-grid{grid-template-columns:repeat(4,1fr)}}
.opt{border:1.5px solid #d6e0f5;border-radius:13px;padding:14px 12px;text-align:center;cursor:pointer;font-weight:600;font-size:.92rem;background:#fff;transition:.2s;display:block}.opt:hover{border-color:var(--brand2);transform:translateY(-2px);box-shadow:var(--sh-sm)}.opt input{position:absolute;opacity:0}.opt:has(input:checked){border-color:transparent;background:var(--g-brand);color:#fff;box-shadow:0 10px 22px rgba(29,78,216,.32)}
.cat-pick{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}@media(min-width:640px){.cat-pick{grid-template-columns:repeat(3,1fr)}}@media(min-width:980px){.cat-pick{grid-template-columns:repeat(4,1fr)}}
/* ---------- tables ---------- */
.table-wrap{overflow-x:auto;border:1px solid rgba(29,78,216,.1);border-radius:var(--r);background:#fff;box-shadow:var(--sh)}table.table{width:100%;border-collapse:collapse;font-size:.94rem}.table th{background:linear-gradient(180deg,#f4f8ff,#e9f0ff);text-align:left;font:700 .74rem var(--font);text-transform:uppercase;letter-spacing:.07em;color:#4a5b86;padding:13px 16px;white-space:nowrap}.table td{padding:13px 16px;border-top:1px solid #edf1fb;vertical-align:top}.table tbody tr{transition:background .12s}.table tbody tr:hover td{background:#f5f8ff}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}
.kv{display:grid;grid-template-columns:140px 1fr;gap:10px 16px;font-size:.95rem}.kv dt{color:var(--mute);font-weight:500}.kv dd{margin:0;word-break:break-word}
.timeline{list-style:none;margin:0;padding:0 0 0 24px;border-left:3px solid #dfe7f8}.timeline li{position:relative;padding:0 0 20px 18px}.timeline li:before{content:"";position:absolute;left:-34px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid #b6c6ea}.timeline li.done:before{border-color:var(--ok);background:var(--ok)}.timeline li.now:before{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 6px rgba(255,159,28,.25)}.timeline b{display:block}.timeline small{color:var(--mute)}
.progress{height:10px;background:#e3eafa;border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--brand2),var(--ok));border-radius:99px;transition:width .8s ease}
.tabs{display:flex;gap:5px;margin-bottom:20px;overflow-x:auto;padding:5px;background:#e8efff;border-radius:14px;width:fit-content;max-width:100%}.tabs a{padding:9px 18px;font-weight:600;color:var(--mute);border-radius:10px;white-space:nowrap;font-size:.94rem}.tabs a.on{color:var(--brand);background:#fff;box-shadow:var(--sh-sm)}.tabs a:hover{text-decoration:none;color:var(--brand)}
.pager{display:flex;gap:7px;justify-content:center;margin:26px 0;flex-wrap:wrap}.pager a,.pager span{padding:8px 15px;border-radius:10px;background:#fff;color:var(--brand);font-weight:600;font-size:.92rem;box-shadow:inset 0 0 0 1px var(--line)}.pager a.active{background:var(--g-brand);color:#fff;box-shadow:0 6px 16px rgba(29,78,216,.3)}.pager a:hover{text-decoration:none;background:#eef4ff}
/* ---------- dashboards ---------- */
.shell{display:grid;min-height:100vh;grid-template-columns:1fr}@media(min-width:980px){.shell{grid-template-columns:268px 1fr}}
.sidebar{background:linear-gradient(185deg,#0b1b4a 0%,#13307f 55%,#1a3fa6 100%);color:#c9d6f5;padding:22px 16px;display:none;flex-direction:column;gap:3px;position:sticky;top:0;height:100vh;overflow-y:auto;box-shadow:6px 0 30px rgba(11,27,74,.18)}.sidebar.open{display:flex;position:fixed;inset:0 22% 0 0;z-index:90;height:100%;box-shadow:var(--sh-lg)}@media(min-width:980px){.sidebar{display:flex}}
.sidebar .logo{color:#fff;margin:2px 6px 22px}.sidebar .logo small{color:#7dd3fc}.sidebar a{color:#c9d6f5;display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;font-weight:500;font-size:.95rem;transition:background .15s,transform .15s}.sidebar a:hover{background:rgba(255,255,255,.1);text-decoration:none;color:#fff;transform:translateX(3px)}.sidebar a.on{background:var(--g-accent);color:#2f1800;font-weight:700;box-shadow:0 8px 20px rgba(255,122,24,.35)}.sidebar .sec{font:700 .68rem var(--font);letter-spacing:.16em;text-transform:uppercase;color:#7f95d6;margin:20px 14px 6px}.sidebar .cnt{margin-left:auto;background:#ff4d6d;color:#fff;border-radius:99px;padding:0 8px;font-size:.72rem;line-height:19px;font-weight:700}
.main{min-width:0}.dash-top{background:rgba(255,255,255,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(29,78,216,.08);padding:14px 26px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:40}.dash-top .menu-btn{display:inline-flex}@media(min-width:980px){.dash-top .menu-btn{display:none}}.dash-top h1{font-size:1.3rem;margin:0}.dash-body{padding:28px 26px 70px;max-width:1320px}
.notif-btn{position:relative;color:var(--brand);padding:8px;border-radius:11px;background:#eaf1ff;display:inline-grid}.notif-btn b{position:absolute;top:-5px;right:-5px;background:#ff4d6d;color:#fff;border-radius:99px;font-size:.66rem;padding:0 6px;line-height:17px;box-shadow:0 3px 8px rgba(255,77,109,.5)}
.kpi{display:grid;gap:16px;grid-template-columns:repeat(2,1fr);margin-bottom:26px}@media(min-width:980px){.kpi{grid-template-columns:repeat(4,1fr)}}
.kpi .card{position:relative;overflow:hidden;padding:20px 20px 18px;border:0;background:linear-gradient(160deg,#fff 0%,#f1f6ff 100%)}.kpi .card:before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:var(--g-brand)}.kpi .card:nth-child(4n+2):before{background:var(--g-violet)}.kpi .card:nth-child(4n+3):before{background:var(--g-ok)}.kpi .card:nth-child(4n):before{background:var(--g-accent)}
.kpi small{color:var(--mute);font-weight:600;display:block;font-size:.84rem}.kpi b{font:800 1.65rem var(--font-h);color:var(--brand-d);display:block;margin-top:5px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.kpi .card.hot{background:linear-gradient(160deg,#fff7e6,#ffeccc)}.kpi .card.hot:before{background:var(--g-accent)}.kpi a{text-decoration:none}
.chart{width:100%;height:160px;color:var(--mute)}
.filters{display:grid;gap:12px;grid-template-columns:1fr;margin-bottom:20px}@media(min-width:760px){.filters{grid-template-columns:repeat(4,1fr) auto;align-items:end}}.filters .field{margin:0}
.empty{text-align:center;padding:48px 22px;color:var(--mute)}.empty .ic{width:46px;height:46px;opacity:.45;margin-bottom:10px}
/* chat */
.chat{display:flex;flex-direction:column;gap:11px;max-height:440px;overflow-y:auto;padding:6px}.msg{max-width:84%;padding:12px 16px;border-radius:18px 18px 18px 5px;background:#eaf0ff;font-size:.95rem;align-self:flex-start}.msg.me{background:var(--g-brand);color:#fff;align-self:flex-end;border-radius:18px 18px 5px 18px;box-shadow:0 6px 16px rgba(29,78,216,.25)}.msg.pending{opacity:.7;border:1.5px dashed #8899cc}.msg small{display:block;opacity:.75;font-size:.72rem;margin-top:4px}
/* footer & misc */
.footer{background:linear-gradient(160deg,#091540 0%,#112a78 60%,#1b3a9c 100%);color:#b9c8ee;padding:60px 0 0;font-size:.95rem;position:relative;overflow:hidden}.footer:before{content:"";position:absolute;right:-120px;top:-120px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(109,74,255,.4),transparent 70%)}.footer .container{position:relative}.footer h4{color:#fff;font-size:1.02rem;margin-bottom:.9em}.footer a{color:#b9c8ee;display:block;padding:4px 0;transition:color .15s,transform .15s}.footer a:hover{color:#fff;transform:translateX(3px)}.footer .logo{display:flex;color:#fff}.footer .bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:38px;padding:20px 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:.86rem}
.ad{background:linear-gradient(120deg,#fff4dc,#ffe9f0,#e9f0ff);border:1px solid #f3d9a4;border-radius:var(--r);padding:18px 22px;display:flex;align-items:center;gap:14px;transition:transform .2s}.ad:hover{transform:translateY(-2px)}.ad small{color:var(--mute);text-transform:uppercase;font-size:.66rem;letter-spacing:.12em}
.wa-float{position:fixed;right:18px;bottom:18px;background:linear-gradient(135deg,#25d366,#128c7e);color:#fff;border-radius:99px;padding:13px 20px;font-weight:700;box-shadow:0 12px 28px rgba(18,140,126,.45);z-index:60;display:flex;gap:9px;align-items:center;text-decoration:none!important;transition:transform .2s}.wa-float:hover{transform:translateY(-3px) scale(1.04);color:#fff}
.calc-out{background:linear-gradient(135deg,#e9f1ff,#f3ecff);border:1px solid #cddcfb;border-radius:14px;padding:18px;font-size:1.05rem}.calc-out b{color:var(--brand);font:800 1.4rem var(--font-h)}
.flash-wrap{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:100;width:min(580px,92vw);animation:rise .4s}.flash-wrap .alert{box-shadow:var(--sh-lg)}
details>summary{list-style:none}details>summary::-webkit-details-marker{display:none}details[open]>summary.btn{margin-bottom:6px}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
@media print{.topbar,.site-header,.footer,.sidebar,.dash-top,.btn,.no-print,.wa-float,.nav-toggle{display:none!important}body{background:#fff!important}.shell{display:block}.card,.table-wrap{box-shadow:none}.dash-body{padding:0}.container{max-width:100%}}
.doc{background:#fff;max-width:840px;margin:24px auto;padding:42px;border:1px solid var(--line);border-radius:12px}.doc h1{font-size:1.6rem}.doc table{width:100%;border-collapse:collapse}.doc th,.doc td{padding:9px;border-bottom:1px solid #ddd;text-align:left}.doc .tot{font-weight:800}
