/* LicenseWatch CA. Type scale 12/14/16/20/24/32/48, 8px grid */
*{box-sizing:border-box}
:root{--navy:#0b1f3a;--navy2:#13305a;--ac:#f59e0b;--ac2:#b45309;--ink:#0f172a;--ink2:#334155;--mut:#64748b;--line:#e2e8f0;--bg:#f8fafc;--ok:#047857;--okb:#d1fae5;--bad:#b91c1c;--badb:#fee2e2;--warn:#92400e;--warnb:#fef3c7;--r:12px;--rs:8px;
--t12:12px;--t14:14px;--t16:16px;--t20:20px;--t24:24px;--t32:32px;--t48:48px}
html{scroll-behavior:smooth}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;margin:0;color:var(--ink);background:var(--bg);font-size:var(--t16);line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
body>main{flex:1}
a{color:#1d4ed8;text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,h4{text-wrap:balance;color:var(--ink);margin:0}p,li{text-wrap:pretty}
h1{font-size:var(--t48);line-height:1.1;letter-spacing:-.03em;font-weight:800}
h2{font-size:var(--t32);line-height:1.2;letter-spacing:-.02em;font-weight:700}
h3{font-size:var(--t20);line-height:1.3;letter-spacing:-.01em;font-weight:600}
p{margin:0 0 16px;max-width:65ch}
.wrap{max-width:1120px;margin:0 auto;padding:0 32px}main.wrap{padding-top:40px;padding-bottom:64px;width:100%}
/* header */
.top{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.9);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;gap:24px}
.logo{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:var(--t20);color:var(--navy);letter-spacing:-.02em;line-height:1}.logo:hover{text-decoration:none}.logo b{color:var(--ac2);font-weight:700}
.mark{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:var(--rs);background:var(--navy);color:#fff;font-size:var(--t12);font-weight:700;letter-spacing:0}
.top nav{display:flex;align-items:center;gap:24px;font-size:var(--t14);font-weight:500}.top nav a{color:var(--ink2)}
/* buttons */
.btn,.btn-sm,button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:var(--rs);font:600 var(--t14)/1 inherit;font-family:inherit;background:var(--navy);color:#fff!important;border:0;cursor:pointer;white-space:nowrap;transition:filter .2s,transform .2s}
.btn{height:48px;padding:0 24px;font-size:var(--t16)}
.btn:hover,.btn-sm:hover,button:hover{text-decoration:none;filter:brightness(1.15)}
.ac{background:var(--ac)!important;color:var(--navy)!important}.ghost{background:#fff!important;color:var(--ink)!important;box-shadow:inset 0 0 0 1px var(--line)}
/* page header */
.ph{margin-bottom:32px}.ph h1{max-width:20ch}.ph .sub{margin-top:16px}
.crumb{font-size:var(--t14);color:var(--mut);margin:0 0 16px}.crumb a{color:var(--mut)}
.sub{color:var(--mut);font-size:var(--t20);line-height:1.5;margin:0;max-width:60ch}
.meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--mut);font-size:var(--t14);margin-top:16px}
.eyebrow{display:block;font-size:var(--t14);font-weight:600;color:var(--ac2);margin:0 0 8px;letter-spacing:0}
.sec{margin:64px 0 24px;display:flex;justify-content:space-between;align-items:flex-end;gap:16px}.sec h2{max-width:24ch}.sec>a{font-size:var(--t14);font-weight:600;white-space:nowrap}
.sec.c{display:block;text-align:center}.sec.c h2{margin:0 auto}
/* cards */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px;margin:0 0 24px}
.card>h3{margin-bottom:16px}.card>p:last-child,.card ul:last-child{margin-bottom:0}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin:0 0 24px}
.five{grid-template-columns:repeat(5,1fr)}
.tile{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px;color:var(--ink);transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,border-color .25s}
.tile:hover{text-decoration:none;transform:translateY(-4px);border-color:#93c5fd;box-shadow:0 12px 32px -12px rgba(29,78,216,.35)}
.tile h3{font-size:var(--t16);line-height:1.4}.tile p{margin:0;color:var(--mut);font-size:var(--t14);line-height:1.5}.tile .row{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:8px}.tile .go{margin-top:auto;padding-top:8px;font-size:var(--t14);font-weight:600;color:#1d4ed8}
.tile .num{font-size:var(--t32);font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--navy);line-height:1.1}
/* badges */
.badge{display:inline-flex;align-items:center;gap:8px;height:24px;padding:0 8px;border-radius:999px;font-size:var(--t12);font-weight:600;line-height:1;white-space:nowrap;background:var(--warnb);color:var(--warn);align-self:flex-start}
.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.badge.ok{background:var(--okb);color:var(--ok)}.badge.bad{background:var(--badb);color:var(--bad)}.badge.soon{background:#e0e7ff;color:#3730a3}
/* tables */
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
td,th{padding:12px 16px;border-bottom:1px solid var(--line);text-align:left;font-size:var(--t14);line-height:1.5;vertical-align:middle}
th{font-size:var(--t12);color:var(--mut);font-weight:600;background:#f8fafc}
tr:last-child td{border-bottom:0}
.num,td.mono,th.r{text-align:right;font-variant-numeric:tabular-nums}.mono{color:var(--ink2)}
.kv th{width:32%;background:none;font-size:var(--t14);font-weight:500;color:var(--mut);padding-left:0}.kv td{font-weight:500;padding-right:0}
.tcard{padding:0;overflow:hidden}.tcard table{margin:0}
.dt tbody tr{transition:background .15s}.dt tbody tr:hover{background:#f8fafc}.dt td:first-child a{font-weight:600;color:var(--ink)}
.empty{text-align:center;padding:48px 24px;color:var(--mut)}.empty h3{color:var(--ink);margin-bottom:8px}.empty p{margin:0 auto 16px}
/* featured */
.feat{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border:1px dashed #fbbf24;background:#fffbeb}.feat p{margin:0;color:var(--ink2);font-size:var(--t14)}.feat b{display:block;font-size:var(--t16);color:var(--ink)}
/* newsletter */
.news{position:relative;overflow:hidden;text-align:center;background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;border:0;padding:48px 24px;margin:64px 0 24px}
.news h3{color:#fff;font-size:var(--t24);max-width:28ch;margin:0 auto 8px}.news p{color:#cbd5e1;margin:0 auto 24px;max-width:52ch}.news .eyebrow{color:#fcd34d}
.news iframe,.news .beehiiv-embed{margin:0 auto!important;display:block}.news>*{position:relative}
.news:before{content:"";position:absolute;width:480px;height:480px;right:-160px;top:-240px;background:radial-gradient(#f59e0b40,transparent 65%);animation:aur 18s ease-in-out infinite alternate}
.nlfoot{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px!important;margin-bottom:64px}.nlfoot b{display:block}.nlfoot span{color:var(--mut);font-size:var(--t14)}
/* hero */
.hero{position:relative;overflow:hidden;isolation:isolate;background:#0a1a33;color:#fff;border-radius:16px;padding:80px 32px;margin:0 0 24px;text-align:center}
.hero h1{color:#fff;max-width:16ch;margin:0 auto}.hero .sub{color:#cbd5e1;margin:24px auto 0;max-width:52ch}.hero .eyebrow{color:#fcd34d}
.hero:before{content:"";position:absolute;inset:-40%;z-index:-2;background:radial-gradient(35% 45% at 25% 30%,#f59e0b55,transparent 70%),radial-gradient(40% 50% at 75% 20%,#0ea5e955,transparent 70%),radial-gradient(45% 45% at 60% 80%,#1d4ed866,transparent 70%),radial-gradient(30% 35% at 15% 85%,#14b8a644,transparent 70%);filter:blur(32px);animation:aur 22s ease-in-out infinite alternate}
.hero:after{content:"";position:absolute;inset:0;z-index:-1;background-image:radial-gradient(#ffffff22 1px,transparent 1px);background-size:24px 24px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 85%);mask-image:linear-gradient(180deg,#000,transparent 85%)}
@keyframes aur{0%{transform:translate(0,0) rotate(0) scale(1)}50%{transform:translate(4%,-3%) rotate(8deg) scale(1.08)}100%{transform:translate(-4%,3%) rotate(-6deg) scale(1.02)}}
.search{position:relative;max-width:640px;margin:40px auto 0;text-align:left}.search input{width:100%;height:56px;padding:0 24px 0 56px;font:400 var(--t16) inherit;font-family:inherit;color:var(--ink);border-radius:var(--r);border:0;box-shadow:0 12px 32px rgba(0,0,0,.25);outline:none}.search input:focus{box-shadow:0 0 0 4px #f59e0b66,0 12px 32px rgba(0,0,0,.25)}.search svg{position:absolute;left:24px;top:18px}
#res{position:absolute;left:0;right:0;top:64px;z-index:5;background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:0 12px 32px rgba(0,0,0,.2)}#res a{display:flex;justify-content:space-between;gap:16px;padding:12px 24px;color:var(--ink);border-bottom:1px solid var(--line);font-size:var(--t14)}#res a:hover{background:#f1f5f9;text-decoration:none}#res small{color:var(--mut);white-space:nowrap}
.hstats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:880px;margin:48px auto 0}
.glass{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:var(--r);padding:16px}
.hstats b{display:block;font-size:var(--t32);line-height:1.2;font-weight:700;color:#fff;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.hstats span{color:#94a3b8;font-size:var(--t14)}
/* chips, pager */
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}.chips a{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:var(--t14);color:var(--ink2);transition:border-color .2s,color .2s}.chips a:hover{border-color:#93c5fd;text-decoration:none;color:#1d4ed8}.chips small{color:var(--mut);font-variant-numeric:tabular-nums}
.pager{display:flex;gap:8px;flex-wrap:wrap;padding:16px}.pager a,.pager b{display:inline-grid;place-items:center;min-width:32px;height:32px;padding:0 8px;border:1px solid var(--line);border-radius:var(--rs);font-size:var(--t14)}.pager b{background:var(--navy);color:#fff;border-color:var(--navy)}
.grid{columns:3;font-size:var(--t14);padding-left:16px}
/* layout helpers */
.two{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}.two>.card{margin:0 0 24px}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:8px 0 24px}.actions span{color:var(--mut);font-size:var(--t14)}
/* license verdict */
.hire{border-left:4px solid #94a3b8}.h-ok{border-left-color:var(--ok);background:#f0fdf4}.h-warn{border-left-color:var(--ac);background:#fffbeb}.h-bad{border-left-color:var(--bad);background:#fef2f2}.hire h3{margin-bottom:8px}.hire ul{margin:0;padding-left:24px}.hire li{margin:4px 0}.hire li.bad{color:var(--bad)}.hire li.warn{color:var(--warn)}.hire p{margin:0}
.mut{color:var(--mut)}
/* plans */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.plan{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:32px 24px}.plan.hl{border:2px solid var(--ac)}
.plan .p{font-size:var(--t32);font-weight:700;letter-spacing:-.02em;color:var(--navy);line-height:1.2}.plan .p small{font-size:var(--t14);font-weight:500;color:var(--mut)}.plan p{color:var(--mut);font-size:var(--t14);margin:0}.plan .btn-sm{margin-top:auto}.plan ul{margin:8px 0 16px}
.ticks{list-style:none;padding:0;margin:0}.ticks li{padding-left:24px;position:relative;margin:8px 0;font-size:var(--t14)}.ticks li:before{content:"✓";position:absolute;left:0;color:var(--ok);font-weight:700}
.center{text-align:center}.center p{margin-left:auto;margin-right:auto}
/* article */
article.card{max-width:760px;margin:0 auto 24px;padding:48px}article h1{font-size:var(--t32);margin-bottom:16px}article h2{font-size:var(--t24);margin:40px 0 16px}article p,article li{font-size:var(--t16);line-height:1.7}article ul,article ol{padding-left:24px;margin:0 0 16px}article table{margin:16px 0 24px}article td:nth-child(n+2),article th:nth-child(n+2){text-align:right}article td:last-child,article th:last-child{text-align:left}
.prose{max-width:760px}.prose li{margin:8px 0;max-width:65ch}
/* footer */
footer{background:var(--navy);color:#94a3b8;padding:64px 0 32px;font-size:var(--t14)}footer p{max-width:36ch;margin:16px 0 0}footer a{color:#cbd5e1;display:block;margin:8px 0}footer .logo{color:#fff;margin:0}footer h4{color:#fff;margin:0 0 16px;font-size:var(--t14);font-weight:600;line-height:32px}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;align-items:start}.legal{border-top:1px solid #1e3a5f;margin-top:48px;padding-top:24px!important;font-size:var(--t12);line-height:1.6;color:#94a3b8}.legal a{display:inline;color:#e2e8f0}
/* motion */
.rv{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}.rv.in{opacity:1;transform:none}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:radial-gradient(#0f172a0d 1px,transparent 1px);background-size:24px 24px}
/* responsive */
@media(max-width:1000px){.five{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}
@media(max-width:820px){:root{--t48:32px;--t32:24px;--t24:20px;--t20:18px}
.wrap{padding:0 16px}main.wrap{padding-top:24px}.top nav a:not(.btn-sm){display:none}.top .btn-sm{height:32px;padding:0 12px}
.hero{padding:48px 16px;border-radius:12px}.hero .sub{font-size:var(--t16)}.hstats{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:32px}.hstats b{font-size:var(--t24)}
.plans,.two,.fgrid{grid-template-columns:1fr}.two{gap:0}.grid{columns:2}.sec{margin-top:48px;display:block}.sec>a{display:inline-block;margin-top:8px}
article.card{padding:24px}.news{padding:40px 16px;margin-top:48px}.card{padding:16px}.sub{font-size:var(--t16)}
.dt thead{display:none}.dt,.dt tbody,.dt tr,.dt td{display:block;width:100%}.dt tr{border-bottom:1px solid var(--line);padding:16px}.dt tr:last-child{border:0}.dt td{border:0;padding:4px 0;display:flex;justify-content:space-between;align-items:center;gap:16px}.dt td:before{content:attr(data-l);color:var(--mut);font-size:var(--t12)}.dt td:first-child{font-size:var(--t16);padding-bottom:8px}.dt td:first-child:before{display:none}
.feat{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){*,:before,:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rv{opacity:1;transform:none}}
body>main{flex:none}footer{margin-top:auto}
body>.nlfoot{width:min(1056px,calc(100% - 32px));margin:0 auto 64px}
.plan h3{margin-top:32px}.plan .badge+h3{margin-top:0}
@media(max-width:820px){.actions{flex-direction:column;align-items:stretch}.actions .btn-sm{width:100%}}
/* search */
.hs{position:relative;flex:1;max-width:360px}.hs input{width:100%;height:40px;padding:0 16px 0 40px;border:1px solid var(--line);border-radius:var(--rs);background:#f1f5f9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2364748b' stroke-width='2.4' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") 14px 50% no-repeat;font:400 var(--t14) inherit;font-family:inherit;color:var(--ink);outline:none;transition:border-color .2s,background-color .2s}.hs input:focus{background-color:#fff;border-color:#93c5fd;box-shadow:0 0 0 3px #bfdbfe80}
.sdrop{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:60;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 16px 40px -12px rgba(15,23,42,.3);overflow:hidden;min-width:300px;text-align:left}.sdrop a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;color:var(--ink);font-size:var(--t14);border-bottom:1px solid var(--line)}.sdrop a:last-child{border:0}.sdrop a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdrop a small{color:var(--mut);white-space:nowrap;font-size:var(--t12)}.sdrop a:hover,.sdrop a.on{background:#eff6ff;text-decoration:none}.sdrop a.all{color:#1d4ed8;font-weight:600;background:#f8fafc}.sdrop .none{padding:16px;color:var(--mut);font-size:var(--t14)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;background:var(--ac);vertical-align:middle}.dot.ok{background:var(--ok)}.dot.bad{background:var(--bad)}
.sbar{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:8px;margin-bottom:16px}.sbar input,.sbar select{height:48px;border:1px solid var(--line);border-radius:var(--rs);padding:0 16px;font:400 var(--t16) inherit;font-family:inherit;background:#fff;color:var(--ink);min-width:0}.sbar input:focus,.sbar select:focus{outline:none;border-color:#93c5fd;box-shadow:0 0 0 3px #bfdbfe80}
#sinfo{color:var(--mut);font-size:var(--t14);margin:0 0 16px;min-height:21px}#ssug{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}#ssug a{font-size:var(--t14);font-weight:600}
.sr td small{display:block;font-size:var(--t12);color:var(--mut)}.pills{display:flex;flex-wrap:wrap;gap:4px}.pill{display:inline-block;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 8px;border-radius:999px;background:#f1f5f9;color:var(--ink2);font-size:var(--t12)}
.hirec{font-size:var(--t12);font-weight:600;color:var(--warn)}.hirec.ok{color:var(--ok)}.hirec.bad{color:var(--bad)}.hirec:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;margin-right:8px}
@media(max-width:820px){.hs{max-width:none}.top nav{gap:12px}.top .logo{font-size:0;gap:0}.top .logo b{font-size:0}.sbar{grid-template-columns:1fr 1fr}.sbar input{grid-column:1/-1}.sdrop{position:fixed;left:8px;right:8px;top:64px;min-width:0}.sr td small{display:inline;margin-left:8px}}
a.glass{display:block;color:inherit;transition:border-color .2s,background .2s}a.glass:hover{text-decoration:none;border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.12)}
.nwk{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.nwk h3{margin:8px 0 4px}.nwk p{margin:0;font-size:var(--t14)}.nwa{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:820px){.nwk{flex-direction:column;align-items:stretch}.nwa{flex-direction:column}.nwa .btn-sm{width:100%}}
@media(max-width:820px){.cg{grid-template-columns:repeat(2,1fr);gap:8px}.cg .tile{padding:16px}.cg .tile p{display:none}}
@media(max-width:820px){.cg .tile:last-child:nth-child(odd){grid-column:span 2}}
